From 326864841480f2b764547b75fd5bc890b7204c48 Mon Sep 17 00:00:00 2001 From: luwenpeng Date: Wed, 28 Dec 2022 17:35:43 +0800 Subject: [PATCH] =?UTF-8?q?TSG-13196=20STAT=5FFD=5FCLOSE=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E4=B8=8D=E7=BB=9F=E8=AE=A1Decrypted=20Traffic=20Steering?= =?UTF-8?q?=E7=9A=84FD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platform/src/tcp_stream.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/platform/src/tcp_stream.cpp b/platform/src/tcp_stream.cpp index 2d124da..cef8f48 100644 --- a/platform/src/tcp_stream.cpp +++ b/platform/src/tcp_stream.cpp @@ -423,15 +423,21 @@ static void __conn_private_destory(struct tfe_conn_private * conn) free(conn); (void)ret; - TFE_PROXY_STAT_INCREASE(STAT_FD_CLOSE, 1); } static void __conn_private_destory_with_ssl(struct event_base * ev_base, struct tfe_conn_private * conn, struct ssl_stream * ssl_stream) { - if (ssl_stream == NULL) return __conn_private_destory(conn); + if (ssl_stream == NULL) + { + __conn_private_destory(conn); + TFE_PROXY_STAT_INCREASE(STAT_FD_CLOSE, 1); + return; + } + ssl_stream_free(ssl_stream, ev_base, conn->bev); - return __conn_private_destory(conn); + __conn_private_destory(conn); + TFE_PROXY_STAT_INCREASE(STAT_FD_CLOSE, 1); } static void __stream_bev_passthrough_readcb(struct bufferevent * bev, void * arg) @@ -481,6 +487,7 @@ static void __stream_bev_passthrough_writecb(struct bufferevent * bev, void * ar { __conn_private_destory(*ref_this_conn); *ref_this_conn = NULL; + TFE_PROXY_STAT_INCREASE(STAT_FD_CLOSE, 1); } if (*ref_peer_conn == NULL && *ref_this_conn == NULL) @@ -557,6 +564,7 @@ __close_connection: { __conn_private_destory(*ref_peer_conn); *ref_peer_conn = NULL; + TFE_PROXY_STAT_INCREASE(STAT_FD_CLOSE, 1); } } @@ -564,6 +572,7 @@ __close_connection: { __conn_private_destory(*ref_this_conn); *ref_this_conn = NULL; + TFE_PROXY_STAT_INCREASE(STAT_FD_CLOSE, 1); } if (*ref_this_conn == NULL && *ref_peer_conn == NULL) @@ -1349,24 +1358,28 @@ void tfe_stream_destory(struct tfe_stream_private * stream) { assert(stream->defer_fd_upstream <= 0); __conn_private_destory(stream->conn_upstream); + TFE_PROXY_STAT_INCREASE(STAT_FD_CLOSE, 1); } if (stream->conn_downstream) { assert(stream->defer_fd_downstream <= 0); __conn_private_destory(stream->conn_downstream); + TFE_PROXY_STAT_INCREASE(STAT_FD_CLOSE, 1); } if (stream->conn_fake_c) { assert(stream->fd_fake_c <= 0); __conn_private_destory(stream->conn_fake_c); + // fd_fake_c need't use TFE_PROXY_STAT_INCREASE(STAT_FD_CLOSE, 1); } if (stream->conn_fake_s) { assert(stream->fd_fake_s <= 0); __conn_private_destory(stream->conn_fake_s); + // conn_fake_s need't use TFE_PROXY_STAT_INCREASE(STAT_FD_CLOSE, 1); } if (stream->fd_fake_c)