diff --git a/main.go b/main.go index c479923..0ab4a33 100644 --- a/main.go +++ b/main.go @@ -220,6 +220,17 @@ func main() { var connected bool var wgData WgData + client.RegisterHandler("newt/terminate", func(msg websocket.WSMessage) { + logger.Info("Received terminate message") + if pm != nil { + pm.Stop() + } + if dev != nil { + dev.Close() + } + client.Close() + }) + // Register handlers for different message types client.RegisterHandler("newt/wg/connect", func(msg websocket.WSMessage) { logger.Info("Received registration message") diff --git a/websocket/client.go b/websocket/client.go index c89e88c..408b981 100644 --- a/websocket/client.go +++ b/websocket/client.go @@ -86,6 +86,10 @@ func (c *Client) Close() error { if c.conn != nil { return c.conn.Close() } + + // stop the ping monitor + c.setConnected(false) + return nil }