control/controlclient: reset timeout timer on non-keepalive map updates
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>reviewable/pr653/r1
parent
b840e7dd5b
commit
5590daa97d
|
@ -596,17 +596,19 @@ func (c *Direct) PollNetMap(ctx context.Context, maxPolls int, cb func(*NetworkM
|
||||||
}
|
}
|
||||||
if resp.KeepAlive {
|
if resp.KeepAlive {
|
||||||
vlogf("netmap: got keep-alive")
|
vlogf("netmap: got keep-alive")
|
||||||
|
} else {
|
||||||
|
vlogf("netmap: got new map")
|
||||||
|
}
|
||||||
select {
|
select {
|
||||||
case timeoutReset <- struct{}{}:
|
case timeoutReset <- struct{}{}:
|
||||||
vlogf("netmap: sent keep-alive timer reset")
|
vlogf("netmap: sent timer reset")
|
||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
c.logf("netmap: not resetting timer for keep-alive due to: %v", ctx.Err())
|
c.logf("netmap: not resetting timer; context done: %v", ctx.Err())
|
||||||
return ctx.Err()
|
return ctx.Err()
|
||||||
}
|
}
|
||||||
|
if resp.KeepAlive {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
vlogf("netmap: got new map")
|
|
||||||
|
|
||||||
if resp.DERPMap != nil {
|
if resp.DERPMap != nil {
|
||||||
vlogf("netmap: new map contains DERP map")
|
vlogf("netmap: new map contains DERP map")
|
||||||
lastDERPMap = resp.DERPMap
|
lastDERPMap = resp.DERPMap
|
||||||
|
|
Loading…
Reference in New Issue