From 255ff9cc209155f1bb3878cf86b99d2d9269f52f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B0=D0=B2=D0=B5=D0=BB?= <88343304+BlackkkMaster@users.noreply.github.com> Date: Tue, 29 Apr 2025 16:32:54 +0300 Subject: [PATCH] refactror: add check ipv6 path fix issues #1669 #2882 --- util/sys/sys_linux.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/util/sys/sys_linux.go b/util/sys/sys_linux.go index 097ff7c7..d4e6e8ae 100644 --- a/util/sys/sys_linux.go +++ b/util/sys/sys_linux.go @@ -44,11 +44,11 @@ func getLinesNum(filename string) (int, error) { func GetTCPCount() (int, error) { root := HostProc() - tcp4, err := getLinesNum(fmt.Sprintf("%v/net/tcp", root)) + tcp4, err := safeGetLinesNum(fmt.Sprintf("%v/net/tcp", root)) if err != nil { return 0, err } - tcp6, err := getLinesNum(fmt.Sprintf("%v/net/tcp6", root)) + tcp6, err := safeGetLinesNum(fmt.Sprintf("%v/net/tcp6", root)) if err != nil { return 0, err } @@ -59,14 +59,23 @@ func GetTCPCount() (int, error) { func GetUDPCount() (int, error) { root := HostProc() - udp4, err := getLinesNum(fmt.Sprintf("%v/net/udp", root)) + udp4, err := safeGetLinesNum(fmt.Sprintf("%v/net/udp", root)) if err != nil { return 0, err } - udp6, err := getLinesNum(fmt.Sprintf("%v/net/udp6", root)) + udp6, err := safeGetLinesNum(fmt.Sprintf("%v/net/udp6", root)) if err != nil { return 0, err } return udp4 + udp6, nil } + +func safeGetLinesNum(path string) (int, error) { + if _, err := os.Stat(path); os.IsNotExist(err) { + return 0, nil + } else if err != nil { + return 0, err + } + return getLinesNum(path) +}