[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[Libevent-users] bufferevent_openssl: readcb not always called for last partial read
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 majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users in the body.