From b4c1db17e458569e8422a45b39e5e7b96df193f6 Mon Sep 17 00:00:00 2001 From: mlsmaycon Date: Tue, 23 Jun 2026 14:19:20 +0200 Subject: [PATCH] Improve peer location update logic and posture check condition handling --- management/server/peer.go | 6 +++--- management/server/posture/checks.go | 10 +++++++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/management/server/peer.go b/management/server/peer.go index 86637980e..742ff7e8a 100644 --- a/management/server/peer.go +++ b/management/server/peer.go @@ -201,14 +201,14 @@ func (am *DefaultAccountManager) resolvePeerLocation(ctx context.Context, peer * if am.geo == nil || realIP == nil { return nil } - if peer.Location.ConnectionIP != nil && peer.Location.ConnectionIP.Equal(realIP) { - return nil - } location, err := am.geo.Lookup(realIP) if err != nil { log.WithContext(ctx).Warnf("failed to get location for peer %s realip: [%s]: %v", peer.ID, realIP.String(), err) return nil } + if peer.Location.ConnectionIP != nil && peer.Location.ConnectionIP.Equal(realIP) && peer.Location.GeoNameID == location.City.GeonameID { + return nil + } return &nbpeer.Location{ ConnectionIP: realIP, CountryCode: location.Country.ISOCode, diff --git a/management/server/posture/checks.go b/management/server/posture/checks.go index 6a98edb99..f7e6991d4 100644 --- a/management/server/posture/checks.go +++ b/management/server/posture/checks.go @@ -74,7 +74,15 @@ func AffectsPosture(diff *nbpeer.MetaDiff, checks []*Checks) bool { return true } if c.Checks.PeerNetworkRangeCheck != nil && diff.NetworkAddresses { - return true + if diff.LocationChanged { + return true + } + for _, r := range c.Checks.PeerNetworkRangeCheck.Ranges { + if r.Addr().IsPrivate() { + return true + } + } + return false } } return false