Permalink
Browse files

Merge remote-tracking branch 'origin/patches-2.0'

Conflicts:
	bufferevent_openssl.c
  • Loading branch information...
2 parents f2050e7 + 1ff2c24 commit cda69d0df00b8ee28755731b225123d10a999acc Nick Mathewson committed Oct 25, 2012
Showing with 12 additions and 4 deletions.
  1. +6 −4 bufferevent_openssl.c
  2. +6 −0 bufferevent_sock.c
View
10 bufferevent_openssl.c
@@ -934,11 +934,12 @@ be_openssl_readeventcb(evutil_socket_t fd, short what, void *ptr)
{
struct bufferevent_openssl *bev_ssl = ptr;
bufferevent_incref_and_lock_(&bev_ssl->bev.bev);
- if (what & EV_TIMEOUT) {
+ if (what == EV_TIMEOUT) {
bufferevent_run_eventcb_(&bev_ssl->bev.bev,
BEV_EVENT_TIMEOUT|BEV_EVENT_READING);
- } else
+ } else {
consider_reading(bev_ssl);
+ }
bufferevent_decref_and_unlock_(&bev_ssl->bev.bev);
}
@@ -947,11 +948,12 @@ be_openssl_writeeventcb(evutil_socket_t fd, short what, void *ptr)
{
struct bufferevent_openssl *bev_ssl = ptr;
bufferevent_incref_and_lock_(&bev_ssl->bev.bev);
- if (what & EV_TIMEOUT) {
+ if (what == EV_TIMEOUT) {
bufferevent_run_eventcb_(&bev_ssl->bev.bev,
BEV_EVENT_TIMEOUT|BEV_EVENT_WRITING);
+ } else {
+ consider_writing(bev_ssl);
}
- consider_writing(bev_ssl);
bufferevent_decref_and_unlock_(&bev_ssl->bev.bev);
}
View
6 bufferevent_sock.c
@@ -134,6 +134,9 @@ bufferevent_readcb(evutil_socket_t fd, short event, void *arg)
bufferevent_incref_and_lock_(bufev);
if (event == EV_TIMEOUT) {
+ /* Note that we only check for event==EV_TIMEOUT. If
+ * event==EV_TIMEOUT|EV_READ, we can safely ignore the
+ * timeout, since a read has occurred */
what |= BEV_EVENT_TIMEOUT;
goto error;
}
@@ -210,6 +213,9 @@ bufferevent_writecb(evutil_socket_t fd, short event, void *arg)
bufferevent_incref_and_lock_(bufev);
if (event == EV_TIMEOUT) {
+ /* Note that we only check for event==EV_TIMEOUT. If
+ * event==EV_TIMEOUT|EV_WRITE, we can safely ignore the
+ * timeout, since a read has occurred */
what |= BEV_EVENT_TIMEOUT;
goto error;
}

0 comments on commit cda69d0

Please sign in to comment.