diff --git a/api/api.go b/api/api.go index 468bfbc..d74e9c9 100644 --- a/api/api.go +++ b/api/api.go @@ -214,6 +214,13 @@ func (s *API) SetTerminated(terminated bool) { s.isTerminated = terminated } +// ClearPeerStatuses clears all peer statuses +func (s *API) ClearPeerStatuses() { + s.statusMu.Lock() + defer s.statusMu.Unlock() + s.peerStatuses = make(map[int]*PeerStatus) +} + // SetVersion sets the olm version func (s *API) SetVersion(version string) { s.statusMu.Lock() diff --git a/olm/olm.go b/olm/olm.go index 5d0056b..30da9ca 100644 --- a/olm/olm.go +++ b/olm/olm.go @@ -748,6 +748,8 @@ func StartTunnel(config TunnelConfig) { olm.RegisterHandler("olm/terminate", func(msg websocket.WSMessage) { logger.Info("Received terminate message") apiServer.SetTerminated(true) + apiServer.SetConnectionStatus(false) + apiServer.SetRegistered(false) Close() if globalConfig.OnTerminated != nil { @@ -909,6 +911,7 @@ func StopTunnel() error { apiServer.SetRegistered(false) network.ClearNetworkSettings() + apiServer.ClearPeerStatuses() logger.Info("Tunnel process stopped")