From 3160bc5018338e7a541fc1134943708d675e902e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=9A=84=E7=BF=8A?= Date: Tue, 9 Sep 2025 09:32:17 +0000 Subject: [PATCH 1/3] update services/netmanagernative/include/netsys/netlink_socket_diag.h. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 陈暄翊 --- services/netmanagernative/include/netsys/netlink_socket_diag.h | 1 - 1 file changed, 1 deletion(-) diff --git a/services/netmanagernative/include/netsys/netlink_socket_diag.h b/services/netmanagernative/include/netsys/netlink_socket_diag.h index ebcb72389..5e73ac183 100644 --- a/services/netmanagernative/include/netsys/netlink_socket_diag.h +++ b/services/netmanagernative/include/netsys/netlink_socket_diag.h @@ -55,7 +55,6 @@ public: */ int32_t SetSocketDestroyType(const std::string &netCapabilities); void DestroyLiveSocketsWithUid(const std::string &ipAddr, uint32_t uid); - void DestroyLiveSocketsWithUid(uint32_t uid); private: static bool InLookBack(uint32_t a); -- Gitee From 98818774de3581c1fd7b3948be209c9073e872f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=9A=84=E7=BF=8A?= Date: Tue, 9 Sep 2025 09:35:24 +0000 Subject: [PATCH 2/3] update services/netmanagernative/src/manager/vnic_manager.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 陈暄翊 --- services/netmanagernative/src/manager/vnic_manager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/netmanagernative/src/manager/vnic_manager.cpp b/services/netmanagernative/src/manager/vnic_manager.cpp index a359c781c..989127613 100644 --- a/services/netmanagernative/src/manager/vnic_manager.cpp +++ b/services/netmanagernative/src/manager/vnic_manager.cpp @@ -329,7 +329,7 @@ int32_t VnicManager::CreateVnic(uint16_t mtu, const std::string &tunAddr, int32_ nmd::NetLinkSocketDiag socketDiag; for (auto const &uid : uidRanges) { NETNATIVE_LOG_D("CreateVnic uid %{public}d", (uint32_t)uid.begin_); - socketDiag.DestroyLiveSocketsWithUid((uint32_t)uid.begin_); + socketDiag.DestroyLiveSocketsWithUid("", (uint32_t)uid.begin_); } return NETMANAGER_SUCCESS; @@ -344,7 +344,7 @@ int32_t VnicManager::DestroyVnic() DestroyVnicInterface(); for (auto const &uid : uidRanges) { NETNATIVE_LOG_D("DestroyVnic uid %{public}d", (uint32_t)uid.begin_); - socketDiag.DestroyLiveSocketsWithUid((uint32_t)uid.begin_); + socketDiag.DestroyLiveSocketsWithUid("", (uint32_t)uid.begin_); } uidRanges.clear(); return NETMANAGER_SUCCESS; -- Gitee From 971f6d3c3c0337d97516b81aab337d5cda8b773b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=9A=84=E7=BF=8A?= Date: Tue, 9 Sep 2025 09:39:04 +0000 Subject: [PATCH 3/3] update frameworks/js/napi/netstats/src/netlink_socket_diag.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 陈暄翊 --- .../napi/netstats/src/netlink_socket_diag.cpp | 38 ++++--------------- 1 file changed, 8 insertions(+), 30 deletions(-) diff --git a/frameworks/js/napi/netstats/src/netlink_socket_diag.cpp b/frameworks/js/napi/netstats/src/netlink_socket_diag.cpp index 9dd1d7d09..f7ef7ba36 100644 --- a/frameworks/js/napi/netstats/src/netlink_socket_diag.cpp +++ b/frameworks/js/napi/netstats/src/netlink_socket_diag.cpp @@ -362,38 +362,15 @@ void NetLinkSocketDiag::DestroyLiveSocketsWithUid(const std::string &ipAddr, uin return; } auto needDestroy = [&] (const inet_diag_msg *msg) { - return msg != nullptr && uid == msg->idiag_uid && IsMatchNetwork(msg, ipAddr) && !IsLoopbackSocket(msg); - }; - const int32_t proto = IPPROTO_TCP; - const uint32_t states = (1 << TCP_ESTABLISHED) | (1 << TCP_SYN_SENT) | (1 << TCP_SYN_RECV); - for (const int family : {AF_INET, AF_INET6}) { - int32_t ret = SendSockDiagDumpRequest(proto, family, states); - if (ret != NETMANAGER_SUCCESS) { - NETNATIVE_LOGE("Failed to dump %{public}s sockets", family == AF_INET ? "IPv4" : "IPv6"); - break; - } - ret = ProcessSockDiagUidDumpResponse(proto, needDestroy); - if (ret != NETMANAGER_SUCCESS) { - NETNATIVE_LOGE("Failed to destroy %{public}s sockets", family == AF_INET ? "IPv4" : "IPv6"); - break; + bool isMatchNetwork = true; + if (ipAddr != "") { + isMatchNetwork == IsMatchNetwork(msg, ipAddr); } - } - - NETNATIVE_LOG_D("TCP-RST Destroyed %{public}d sockets", socketsDestroyed_); -} - -void NetLinkSocketDiag::DestroyLiveSocketsWithUid(uint32_t uid) -{ - NETNATIVE_LOG_D("TCP-RST DestroyLiveSocketsWithUid, uid:%{public}d", uid); - if (!CreateNetlinkSocket()) { - NETNATIVE_LOGE("Create netlink diag socket failed."); - return; - } - auto needDestroy = [&] (const inet_diag_msg *msg) -> bool { - return msg != nullptr && uid == msg->idiag_uid && !IsLoopbackSocket(msg); + return msg != nullptr && uid == msg->idiag_uid && isMatchNetwork && !IsLoopbackSocket(msg); }; const int32_t proto = IPPROTO_TCP; - const uint32_t states = (1 << TCP_ESTABLISHED) | (1 << TCP_SYN_SENT) | (1 << TCP_SYN_RECV); + const uint32_t states = (1 << TCP_ESTABLISHED) | (1 << TCP_SYN_SENT) | (1 << TCP_SYN_RECV) | (1 << TCP_CLOSE_WAIT) + | (1 << TCP_FIN_WAIT1) | (1 << TCP_FIN_WAIT2) | (1 << TCP_TIME_WAIT) | (1 << TCP_LAST_ACK); for (const int family : {AF_INET, AF_INET6}) { int32_t ret = SendSockDiagDumpRequest(proto, family, states); if (ret != NETMANAGER_SUCCESS) { @@ -407,7 +384,8 @@ void NetLinkSocketDiag::DestroyLiveSocketsWithUid(uint32_t uid) } } - NETNATIVE_LOG_D("TCP-RST Destroyed %{public}d sockets", socketsDestroyed_); + NETNATIVE_LOGI("TCP-RST Destroyed %{public}d sockets for uid:%{public}d", socketsDestroyed_, uid); } + } // namespace nmd } // namespace OHOS \ No newline at end of file -- Gitee