From: Yury Korzhetsky Date: Tue, 26 Feb 2019 09:33:49 +0000 (+0300) Subject: Don't loose top error in SSL X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a30d6d85219ea80c16df6da4f6a9430254e5a0da;p=libevent Don't loose top error in SSL Closes: #775 (cherry-picked) --- diff --git a/bufferevent_openssl.c b/bufferevent_openssl.c index beebe071..b51b834b 100644 --- a/bufferevent_openssl.c +++ b/bufferevent_openssl.c @@ -511,12 +511,15 @@ conn_closed(struct bufferevent_openssl *bev_ssl, int when, int errcode, int ret) /* IO error; possibly a dirty shutdown. */ if ((ret == 0 || ret == -1) && ERR_peek_error() == 0) dirty_shutdown = 1; + put_error(bev_ssl, errcode); break; case SSL_ERROR_SSL: /* Protocol error. */ + put_error(bev_ssl, errcode); break; case SSL_ERROR_WANT_X509_LOOKUP: /* XXXX handle this. */ + put_error(bev_ssl, errcode); break; case SSL_ERROR_NONE: case SSL_ERROR_WANT_READ: