Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--util/sys/sys_linux.go17
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)
+}