From 0938564038c6e50f9b0bba166f79f9f2ab3a366a Mon Sep 17 00:00:00 2001 From: Owen Date: Sat, 31 Jan 2026 16:58:05 -0800 Subject: [PATCH] Dont go unregistered when low power mode --- olm/connect.go | 4 ++-- olm/data.go | 2 +- olm/olm.go | 11 ++++------- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/olm/connect.go b/olm/connect.go index 90ad567..dc05d1f 100644 --- a/olm/connect.go +++ b/olm/connect.go @@ -36,7 +36,7 @@ func (o *Olm) handleConnect(msg websocket.WSMessage) { var wgData WgData - if o.connected { + if o.registered { logger.Info("Already connected. Ignoring new connection request.") return } @@ -208,7 +208,7 @@ func (o *Olm) handleConnect(msg websocket.WSMessage) { o.apiServer.SetRegistered(true) - o.connected = true + o.registered = true // Start ping monitor now that we are registered and connected o.websocket.StartPingMonitor() diff --git a/olm/data.go b/olm/data.go index 050a23f..8bd0997 100644 --- a/olm/data.go +++ b/olm/data.go @@ -157,7 +157,7 @@ func (o *Olm) handleWgPeerUpdateData(msg websocket.WSMessage) { func (o *Olm) handleSync(msg websocket.WSMessage) { logger.Debug("Received sync message: %v", msg.Data) - if !o.connected { + if !o.registered { logger.Warn("Not connected, ignoring sync request") return } diff --git a/olm/olm.go b/olm/olm.go index e3a9d77..0625a63 100644 --- a/olm/olm.go +++ b/olm/olm.go @@ -32,7 +32,7 @@ type Olm struct { privateKey wgtypes.Key logFile *os.File - connected bool + registered bool tunnelRunning bool uapiListener net.Listener @@ -386,10 +386,10 @@ func (o *Olm) StartTunnel(config TunnelConfig) { o.apiServer.SetConnectionStatus(true) - if o.connected { + if o.registered { o.websocket.StartPingMonitor() - logger.Debug("Already connected, skipping registration") + logger.Debug("Already registered, skipping registration") return nil } @@ -615,7 +615,7 @@ func (o *Olm) StopTunnel() error { } // Reset the running state BEFORE cleanup to prevent callbacks from accessing nil pointers - o.connected = false + o.registered = false o.tunnelRunning = false // Cancel the tunnel context if it exists @@ -739,9 +739,6 @@ func (o *Olm) SetPowerMode(mode string) error { logger.Info("Switching to low power mode") - // Mark as disconnected so we re-register on reconnect - o.connected = false - // Update API server connection status if o.apiServer != nil { o.apiServer.SetConnectionStatus(false)