]> granicus.if.org Git - libevent/commitdiff
Use SSL_do_handshake in place of SSL_connect/SSL_accept
authorNick Mathewson <nickm@torproject.org>
Thu, 30 Jul 2009 20:40:40 +0000 (20:40 +0000)
committerNick Mathewson <nickm@torproject.org>
Thu, 30 Jul 2009 20:40:40 +0000 (20:40 +0000)
svn:r1393

bufferevent_openssl.c

index b856cacf53e8772582d0f8e7ef3c2365463fa3c6..5347b03e6009682375ef228fe04fa60e05cb0652 100644 (file)
@@ -776,10 +776,8 @@ do_handshake(struct bufferevent_openssl *bev_ssl)
                assert(0);
                break;
        case BUFFEREVENT_SSL_CONNECTING:
-               r = SSL_connect(bev_ssl->ssl);
-               break;
        case BUFFEREVENT_SSL_ACCEPTING:
-               r = SSL_accept(bev_ssl->ssl);
+               r = SSL_do_handshake(bev_ssl->ssl);
                break;
        }
 
@@ -1046,9 +1044,11 @@ bufferevent_openssl_new_impl(struct event_base *base,
 
        switch (state) {
        case BUFFEREVENT_SSL_ACCEPTING:
+               SSL_set_accept_state(bev_ssl->ssl);
                set_handshake_callbacks(bev_ssl, fd);
                break;
        case BUFFEREVENT_SSL_CONNECTING:
+               SSL_set_connect_state(bev_ssl->ssl);
                set_handshake_callbacks(bev_ssl, fd);
                break;
        case BUFFEREVENT_SSL_OPEN: