From: Nick Mathewson Date: Fri, 14 Aug 2009 20:07:17 +0000 (+0000) Subject: Disable whichever struct event we don't want during ssl handshaking. X-Git-Tag: release-2.0.3-alpha~121 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=46a61869ca066405c47ac5d8036e8c9c5a676f52;p=libevent Disable whichever struct event we don't want during ssl handshaking. svn:r1417 --- diff --git a/bufferevent_openssl.c b/bufferevent_openssl.c index 90d72283..f099f30b 100644 --- a/bufferevent_openssl.c +++ b/bufferevent_openssl.c @@ -808,16 +808,16 @@ do_handshake(struct bufferevent_openssl *bev_ssl) print_err(err); switch (err) { case SSL_ERROR_WANT_WRITE: - /* XXXX we only want to do this for the socket case. - stop_reading(bev_ssl); - start_writing(bev_ssl); - */ + if (!bev_ssl->underlying) { + stop_reading(bev_ssl); + start_writing(bev_ssl); + } return 0; case SSL_ERROR_WANT_READ: - /* XXXX we only want to do this for the socket case. - stop_reading(bev_ssl); - start_writing(bev_ssl); - */ + if (!bev_ssl->underlying) { + stop_writing(bev_ssl); + start_reading(bev_ssl); + } return 0; default: conn_closed(bev_ssl, err, r);