From d24eb3bb8d008dd5eca15cc6565f0e3821129bdc Mon Sep 17 00:00:00 2001 From: kali <kali@nowhere> Date: Fri, 14 Apr 2023 19:50:29 +0200 Subject: [PATCH] lock start/stop --- client/client.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/client/client.go b/client/client.go index 81bb058..8cb71d8 100644 --- a/client/client.go +++ b/client/client.go @@ -7,6 +7,7 @@ import ( "fmt" "log" "net" + "sync" "0xacab.org/leap/obfsvpn/obfsvpn" "github.com/kalikaneko/socks5" @@ -25,6 +26,7 @@ type Client struct { obfs4Cert string server *socks5.Server EventLogger EventLogger + mux sync.Mutex } type EventLogger interface { @@ -41,7 +43,10 @@ func NewClient(kcp bool, socksAddr, obfs4Cert string) *Client { } func (c *Client) Start() (bool, error) { + c.mux.Lock() + defer func() { + c.mux.Unlock() c.log("STOPPED", "") }() @@ -84,6 +89,9 @@ func (c *Client) Stop() (bool, error) { return false, ErrNotRunning } + c.mux.Lock() + defer c.mux.Unlock() + if err := c.server.Close(); err != nil { c.error("error while stopping: %v\n", err) return false, err @@ -118,5 +126,7 @@ func (c *Client) error(format string, a ...interface{}) { } func (c *Client) IsStarted() bool { + c.mux.Lock() + defer c.mux.Unlock() return c.server != nil } -- GitLab