From fff806c53d91ab778df854d1e782cd333e82d235 Mon Sep 17 00:00:00 2001 From: Owen Date: Wed, 6 May 2026 22:06:03 -0700 Subject: [PATCH] Guard add peer with is registered` --- olm/peer.go | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/olm/peer.go b/olm/peer.go index 9c1c165..1d45044 100644 --- a/olm/peer.go +++ b/olm/peer.go @@ -20,6 +20,12 @@ func (o *Olm) handleWgPeerAdd(msg websocket.WSMessage) { return } + // Check if connection setup is complete + if !o.registered { + logger.Warn("Not connected, ignoring add-peer message") + return + } + pm := o.getPeerManager() if pm == nil { logger.Debug("Ignoring add-peer message: peerManager is nil (shutdown in progress)") @@ -82,6 +88,12 @@ func (o *Olm) handleWgPeerRemove(msg websocket.WSMessage) { return } + // Check if connection setup is complete + if !o.registered { + logger.Warn("Not connected, ignoring remove-peer message") + return + } + pm := o.getPeerManager() if pm == nil { logger.Debug("Ignoring remove-peer message: peerManager is nil (shutdown in progress)") @@ -125,6 +137,12 @@ func (o *Olm) handleWgPeerUpdate(msg websocket.WSMessage) { return } + // Check if connection setup is complete + if !o.registered { + logger.Warn("Not connected, ignoring update-peer message") + return + } + pm := o.getPeerManager() if pm == nil { logger.Debug("Ignoring update-peer message: peerManager is nil (shutdown in progress)") @@ -180,8 +198,10 @@ func (o *Olm) handleWgPeerUpdate(msg websocket.WSMessage) { // If the endpoint changed, trigger holepunch to refresh NAT mappings if updateData.Endpoint != "" && updateData.Endpoint != existingPeer.Endpoint { logger.Info("Endpoint changed for site %d, triggering holepunch to refresh NAT mappings", updateData.SiteId) - _ = o.holePunchManager.TriggerHolePunch() - o.holePunchManager.ResetServerHolepunchInterval() + if o.holePunchManager != nil { + _ = o.holePunchManager.TriggerHolePunch() + o.holePunchManager.ResetServerHolepunchInterval() + } } logger.Info("Successfully updated peer for site %d", updateData.SiteId)