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? --- 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 majord...@freehaven.net with unsubscribe libevent-users in the body.