From: Nick Mathewson Date: Fri, 14 Aug 2009 20:07:09 +0000 (+0000) Subject: Only send a connected event _after_ we've adjusted the SSL state. X-Git-Tag: release-2.0.3-alpha~122 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=58b0708e1881e82a4abf660c7cd8693b17cb594a;p=libevent Only send a connected event _after_ we've adjusted the SSL state. This is important if the callback adjusts it to something else. svn:r1416 --- diff --git a/bufferevent_openssl.c b/bufferevent_openssl.c index aa38f44f..90d72283 100644 --- a/bufferevent_openssl.c +++ b/bufferevent_openssl.c @@ -796,12 +796,12 @@ do_handshake(struct bufferevent_openssl *bev_ssl) if (r==1) { /* We're done! */ - _bufferevent_run_eventcb(&bev_ssl->bev.bev, - BEV_EVENT_CONNECTED); bev_ssl->state = BUFFEREVENT_SSL_OPEN; set_open_callbacks(bev_ssl, -1); /* Call do_read and do_write as needed */ bufferevent_enable(&bev_ssl->bev.bev, bev_ssl->bev.bev.enabled); + _bufferevent_run_eventcb(&bev_ssl->bev.bev, + BEV_EVENT_CONNECTED); return 1; } else { int err = SSL_get_error(bev_ssl->ssl, r);