On Tue, Aug 21, 2012 at 8:02 PM, Hochhaus, Andrew <[email protected]> wrote: > Hello, > > In libevent-2.0.19-stable, do_read can return 0 (stalled) when some > progress has been made reading. This can occur, for example, when > space[0].iov_len > 0 and the 2nd read attempt returns > SSL_ERROR_WANT_READ. Then consider_reading may not call > _bufferevent_run_readcb if no additional data arrives. > > Should do_read return 1 (progress) if it makes any progress at all?
Andrew, this might also explain https://github.com/libevent/libevent/issues/17 Good find! Diwaker > --- a/third_party/libevent/upstream/bufferevent_openssl.c > +++ b/third_party/libevent/upstream/bufferevent_openssl.c > @@ -606,7 +606,7 @@ do_read(struct bufferevent_openssl *bev_ssl, int > n_to_read) > conn_closed(bev_ssl, err, r); > break; > } > - blocked = 1; > + blocked = n_used == 0; > break; /* out of the loop */ > } > } > > Thanks, > -Andy > *********************************************************************** > To unsubscribe, send an e-mail to [email protected] with > unsubscribe libevent-users in the body. -- http://maginatics.com *********************************************************************** To unsubscribe, send an e-mail to [email protected] with unsubscribe libevent-users in the body.
