diff options
| author | Павел <88343304+BlackkkMaster@users.noreply.github.com> | 2025-04-29 16:32:54 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-29 16:32:54 +0300 |
| commit | 255ff9cc209155f1bb3878cf86b99d2d9269f52f (patch) | |
| tree | 1abea8c87a0b2d2bd0972b8ab163277f68a3f9f7 | |
| parent | 2fbb1ca6c97cb4124910caf7d32ec21ff3ca87ab (diff) | |
refactror: add check ipv6 path
fix issues #1669 #2882
| -rw-r--r-- | util/sys/sys_linux.go | 17 |
1 files 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) +} |
