From 0a2bf7b711bb3d185083b82342c9dd0b8d22c0f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B4=94=E4=B8=80=E9=B8=A3?= Date: Fri, 19 Jul 2019 17:38:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9shutdown=E5=BC=95=E8=B5=B7?= =?UTF-8?q?=E7=9A=84=E5=86=85=E5=AD=98=E6=B3=84=E6=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platform/src/ssl_stream.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/platform/src/ssl_stream.cpp b/platform/src/ssl_stream.cpp index 1535c68..14c4297 100644 --- a/platform/src/ssl_stream.cpp +++ b/platform/src/ssl_stream.cpp @@ -80,7 +80,7 @@ enum ssl_stream_stat SSL_DOWN_NEW, SSL_DOWN_ERR, SSL_DOWN_ERR_NO_CERT, - SSL_DOWN_ERR_INAPPROPRIATE_FALLBACK, + SSL_DOWN_ERR_INAPPROPRIATE_FALLBACK, SSL_DOWN_CLOSING, SSL_DOWN_CLOSED, @@ -1998,7 +1998,10 @@ static void pxy_ssl_shutdown_cb(evutil_socket_t fd, short what, void * arg) ctx->ev = NULL; } - TFE_PROXY_STAT_INCREASE(STAT_FD_DEFER_CLOSE_IN_QUEUE, 1); + if(what == 0) + { + TFE_PROXY_STAT_INCREASE(STAT_FD_DEFER_CLOSE_IN_QUEUE, 1); + } /* * Use the new (post-2008) semantics for SSL_shutdown() on a @@ -2009,6 +2012,10 @@ static void pxy_ssl_shutdown_cb(evutil_socket_t fd, short what, void * arg) * This is a good collection of recent and relevant documents: * http://bugs.python.org/issue8108 */ + if(what == EV_TIMEOUT) + { + SSL_set_shutdown(ctx->s_stream->ssl, SSL_RECEIVED_SHUTDOWN); + } rv = SSL_shutdown(ctx->s_stream->ssl); if (rv == 1) @@ -2063,7 +2070,7 @@ retry: if (ctx->ev) { - event_add(ctx->ev, NULL); + event_add(ctx->ev, &retry_delay); } else {