From e3f40731d663ba09c57a023e7e7a1f164cfd8a7a Mon Sep 17 00:00:00 2001 From: Zoltan Papp Date: Tue, 23 Jun 2026 14:05:18 +0200 Subject: [PATCH] Revert "[client] Treat missing default route per protocol in next-hop check" This reverts commit 0fb531e4bc8227eaac7ca6d9c9dca34a89b8f531. --- client/internal/networkmonitor/monitor.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/client/internal/networkmonitor/monitor.go b/client/internal/networkmonitor/monitor.go index b3fa82e52..b80bf9b69 100644 --- a/client/internal/networkmonitor/monitor.go +++ b/client/internal/networkmonitor/monitor.go @@ -141,12 +141,14 @@ func (nw *NetworkMonitor) checkChanges(ctx context.Context, event chan struct{}, } // nexthopChanged reports whether the current default next hop differs from the -// given baseline, per protocol. A failed lookup is treated as an absent route -// (zero Nexthop), so a protocol that had no default route to begin with (e.g. -// IPv6 in a single-stack network) does not by itself count as a change. +// given baseline. A lookup error is treated as a change so we fail safe and +// restart rather than miss a real network change. func nexthopChanged(oldv4, oldv6 systemops.Nexthop) bool { - newv4, _ := systemops.GetNextHop(netip.IPv4Unspecified()) - newv6, _ := systemops.GetNextHop(netip.IPv6Unspecified()) + newv4, errv4 := systemops.GetNextHop(netip.IPv4Unspecified()) + newv6, errv6 := systemops.GetNextHop(netip.IPv6Unspecified()) + if errv4 != nil || errv6 != nil { + return true + } return !sameNexthop(oldv4, newv4) || !sameNexthop(oldv6, newv6) }