From: Azat Khuzhin Date: Wed, 2 Sep 2015 09:42:29 +0000 (+0300) Subject: be_openssl: introduce be_openssl_auto_fd() helper X-Git-Tag: release-2.1.6-beta~90^2~54^2~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2a8a7112a5918387c015658af347b6b8f692c6b2;p=libevent be_openssl: introduce be_openssl_auto_fd() helper --- diff --git a/bufferevent_openssl.c b/bufferevent_openssl.c index 7d7c426a..3eb5a0fe 100644 --- a/bufferevent_openssl.c +++ b/bufferevent_openssl.c @@ -955,6 +955,18 @@ be_openssl_writeeventcb(evutil_socket_t fd, short what, void *ptr) bufferevent_decref_and_unlock_(&bev_ssl->bev.bev); } +static int +be_openssl_auto_fd(struct bufferevent_openssl *bev_ssl, int fd) +{ + if (!bev_ssl->underlying) { + struct bufferevent *bev = &bev_ssl->bev.bev; + if (event_initialized(&bev->ev_read) && fd < 0) { + fd = event_get_fd(&bev->ev_read); + } + } + return fd; +} + static int set_open_callbacks(struct bufferevent_openssl *bev_ssl, evutil_socket_t fd) { @@ -994,12 +1006,7 @@ set_open_callbacks(struct bufferevent_openssl *bev_ssl, evutil_socket_t fd) static int set_open_callbacks_auto(struct bufferevent_openssl *bev_ssl, evutil_socket_t fd) { - if (!bev_ssl->underlying) { - struct bufferevent *bev = &bev_ssl->bev.bev; - if (event_initialized(&bev->ev_read) && fd < 0) { - fd = event_get_fd(&bev->ev_read); - } - } + fd = be_openssl_auto_fd(bev_ssl, fd); return set_open_callbacks(bev_ssl, fd); } @@ -1108,12 +1115,7 @@ set_handshake_callbacks(struct bufferevent_openssl *bev_ssl, evutil_socket_t fd) static int set_handshake_callbacks_auto(struct bufferevent_openssl *bev_ssl, evutil_socket_t fd) { - if (!bev_ssl->underlying) { - struct bufferevent *bev = &bev_ssl->bev.bev; - if (event_initialized(&bev->ev_read) && fd < 0) { - fd = event_get_fd(&bev->ev_read); - } - } + fd = be_openssl_auto_fd(bev_ssl, fd); return set_handshake_callbacks(bev_ssl, fd); }