Skip to content
Snippets Groups Projects
Commit d24eb3bb authored by kali's avatar kali
Browse files

lock start/stop

parent 434f5b03
No related branches found
No related tags found
No related merge requests found
......@@ -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
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment