summaryrefslogtreecommitdiff
path: root/bufferevent_openssl.c
diff options
context:
space:
mode:
authorYury Korzhetsky <Korzhetsky.Yury@acronis.com>2019-02-26 12:33:49 +0300
committerAzat Khuzhin <azat@libevent.org>2019-02-26 22:30:26 +0300
commita30d6d85219ea80c16df6da4f6a9430254e5a0da (patch)
tree288b2be6ac98677c5f958a503dd5641422abefd3 /bufferevent_openssl.c
parentb34192bae6f511b91a2fc01409676b2df2fd8a31 (diff)
downloadlibevent-a30d6d85219ea80c16df6da4f6a9430254e5a0da.tar.gz
Don't loose top error in SSL
Closes: #775 (cherry-picked)
Diffstat (limited to 'bufferevent_openssl.c')
-rw-r--r--bufferevent_openssl.c3
1 files changed, 3 insertions, 0 deletions
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: