From c35aec1eb7910b1561d63e31a9742dc394ad5110 Mon Sep 17 00:00:00 2001 From: afeiszli Date: Wed, 27 Jul 2022 17:25:22 -0400 Subject: [PATCH 1/3] removing windows from pid call and fixing nil pointer in mac --- netclient/ncutils/pid.go | 19 ++++++++++--------- netclient/wireguard/mac.go | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/netclient/ncutils/pid.go b/netclient/ncutils/pid.go index 24cf300d..522c12d3 100644 --- a/netclient/ncutils/pid.go +++ b/netclient/ncutils/pid.go @@ -33,14 +33,15 @@ func SavePID() error { func ReadPID() (int, error) { if IsWindows() { return 0, &WindowsPIDError{} + } else { + bytes, err := os.ReadFile(PIDFILE) + if err != nil { + return 0, fmt.Errorf("could not read pid file %w", err) + } + pid, err := strconv.Atoi(string(bytes)) + if err != nil { + return 0, fmt.Errorf("pid file contents invalid %w", err) + } + return pid, nil } - bytes, err := os.ReadFile(PIDFILE) - if err != nil { - return 0, fmt.Errorf("could not read pid file %w", err) - } - pid, err := strconv.Atoi(string(bytes)) - if err != nil { - return 0, fmt.Errorf("pid file contents invalid %w", err) - } - return pid, nil } diff --git a/netclient/wireguard/mac.go b/netclient/wireguard/mac.go index e7f0b441..5d65e1b4 100644 --- a/netclient/wireguard/mac.go +++ b/netclient/wireguard/mac.go @@ -151,7 +151,7 @@ func deleteInterface(iface string, realIface string) error { os.Remove("/var/run/wireguard/" + iface + ".name") } out, err = ncutils.RunCmd("ifconfig "+realIface+" down", false) - if strings.Contains(err.Error(), "does not exist") { + if err != nil && strings.Contains(err.Error(), "does not exist") { err = nil } else if err != nil && out != "" { err = errors.New(out) From 884d1938e64b463591b50d261fc3d374d409c786 Mon Sep 17 00:00:00 2001 From: afeiszli Date: Wed, 27 Jul 2022 17:28:32 -0400 Subject: [PATCH 2/3] moved if/else to correct function --- netclient/daemon/common.go | 25 +++++++++++++------------ netclient/ncutils/pid.go | 19 +++++++++---------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/netclient/daemon/common.go b/netclient/daemon/common.go index 6e8930d6..6c03f807 100644 --- a/netclient/daemon/common.go +++ b/netclient/daemon/common.go @@ -36,19 +36,20 @@ func Restart() error { if ncutils.IsWindows() { RestartWindowsDaemon() return nil + } else { + pid, err := ncutils.ReadPID() + if err != nil { + return fmt.Errorf("failed to find pid %w", err) + } + p, err := os.FindProcess(pid) + if err != nil { + return fmt.Errorf("failed to find running process for pid %d -- %w", pid, err) + } + if err := p.Signal(syscall.SIGHUP); err != nil { + return fmt.Errorf("SIGHUP failed -- %w", err) + } + return nil } - pid, err := ncutils.ReadPID() - if err != nil { - return fmt.Errorf("failed to find pid %w", err) - } - p, err := os.FindProcess(pid) - if err != nil { - return fmt.Errorf("failed to find running process for pid %d -- %w", pid, err) - } - if err := p.Signal(syscall.SIGHUP); err != nil { - return fmt.Errorf("SIGHUP failed -- %w", err) - } - return nil } // Start - starts system daemon diff --git a/netclient/ncutils/pid.go b/netclient/ncutils/pid.go index 522c12d3..24cf300d 100644 --- a/netclient/ncutils/pid.go +++ b/netclient/ncutils/pid.go @@ -33,15 +33,14 @@ func SavePID() error { func ReadPID() (int, error) { if IsWindows() { return 0, &WindowsPIDError{} - } else { - bytes, err := os.ReadFile(PIDFILE) - if err != nil { - return 0, fmt.Errorf("could not read pid file %w", err) - } - pid, err := strconv.Atoi(string(bytes)) - if err != nil { - return 0, fmt.Errorf("pid file contents invalid %w", err) - } - return pid, nil } + bytes, err := os.ReadFile(PIDFILE) + if err != nil { + return 0, fmt.Errorf("could not read pid file %w", err) + } + pid, err := strconv.Atoi(string(bytes)) + if err != nil { + return 0, fmt.Errorf("pid file contents invalid %w", err) + } + return pid, nil } From 1a49db79ab2b0cf184b846daf5e6a9114f783ec4 Mon Sep 17 00:00:00 2001 From: afeiszli Date: Wed, 27 Jul 2022 17:44:14 -0400 Subject: [PATCH 3/3] returning nil for windows pid --- netclient/daemon/common.go | 25 ++++++++++++------------- netclient/ncutils/pid.go | 4 ++-- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/netclient/daemon/common.go b/netclient/daemon/common.go index 6c03f807..6e8930d6 100644 --- a/netclient/daemon/common.go +++ b/netclient/daemon/common.go @@ -36,20 +36,19 @@ func Restart() error { if ncutils.IsWindows() { RestartWindowsDaemon() return nil - } else { - pid, err := ncutils.ReadPID() - if err != nil { - return fmt.Errorf("failed to find pid %w", err) - } - p, err := os.FindProcess(pid) - if err != nil { - return fmt.Errorf("failed to find running process for pid %d -- %w", pid, err) - } - if err := p.Signal(syscall.SIGHUP); err != nil { - return fmt.Errorf("SIGHUP failed -- %w", err) - } - return nil } + pid, err := ncutils.ReadPID() + if err != nil { + return fmt.Errorf("failed to find pid %w", err) + } + p, err := os.FindProcess(pid) + if err != nil { + return fmt.Errorf("failed to find running process for pid %d -- %w", pid, err) + } + if err := p.Signal(syscall.SIGHUP); err != nil { + return fmt.Errorf("SIGHUP failed -- %w", err) + } + return nil } // Start - starts system daemon diff --git a/netclient/ncutils/pid.go b/netclient/ncutils/pid.go index 24cf300d..88491aa0 100644 --- a/netclient/ncutils/pid.go +++ b/netclient/ncutils/pid.go @@ -20,7 +20,7 @@ func (*WindowsPIDError) Error() string { // SavePID - saves the pid of running program to disk func SavePID() error { if IsWindows() { - return &WindowsPIDError{} + return nil } pid := os.Getpid() if err := os.WriteFile(PIDFILE, []byte(fmt.Sprintf("%d", pid)), 0644); err != nil { @@ -32,7 +32,7 @@ func SavePID() error { // ReadPID - reads a previously saved pid from disk func ReadPID() (int, error) { if IsWindows() { - return 0, &WindowsPIDError{} + return 0, nil } bytes, err := os.ReadFile(PIDFILE) if err != nil {