summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluwenpeng <[email protected]>2022-12-28 17:35:43 +0800
committerluwenpeng <[email protected]>2022-12-28 17:35:43 +0800
commit326864841480f2b764547b75fd5bc890b7204c48 (patch)
tree219c4171dfa95558b4712739ebe34bb920b63bd1
parent38cb6a56e7e10c2586de2d38df21a03effc8f5e7 (diff)
TSG-13196 STAT_FD_CLOSE字段不统计Decrypted Traffic Steering的FD
-rw-r--r--platform/src/tcp_stream.cpp19
1 files 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)