diff --git a/ipn/ipnlocal/local.go b/ipn/ipnlocal/local.go index 265d1889d..4bc905d55 100644 --- a/ipn/ipnlocal/local.go +++ b/ipn/ipnlocal/local.go @@ -852,6 +852,13 @@ func (b *LocalBackend) setClientStatus(st controlclient.Status) { } } + // Ensure that we also fire this timer if our own node key expires. + if st.NetMap.SelfNode != nil { + if selfExpiry := st.NetMap.SelfNode.KeyExpiry; !selfExpiry.IsZero() && selfExpiry.Before(nextExpiry) { + nextExpiry = selfExpiry + } + } + if !nextExpiry.IsZero() { tmrDuration := nextExpiry.Sub(now) + 10*time.Second b.nmExpiryTimer = time.AfterFunc(tmrDuration, func() {