summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@tailscale.com>2020-08-06 21:24:31 -0700
committerBrad Fitzpatrick <bradfitz@tailscale.com>2020-08-07 12:33:20 -0700
commitbbb912b883c63be5f0eb1ac0fb6133cb8e9fed26 (patch)
tree428cdef4fcd1e32666ba74028360ec9a3de1219f
parentaac1068fb350edb70bc2cac4d97b2ce947bcffe9 (diff)
downloadtailscale-bradfitz/release-branch-1.0.tar.xz
tailscale-bradfitz/release-branch-1.0.zip
control/controlclient: reset timeout timer on non-keepalive map updatesv1.0.4bradfitz/release-branch-1.0
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com> (cherry picked from commit 5590daa97d4bc07b791f9813bd9924285b6bd6f8)
-rw-r--r--control/controlclient/direct.go20
1 files changed, 11 insertions, 9 deletions
diff --git a/control/controlclient/direct.go b/control/controlclient/direct.go
index e5d69e373..ffe0bb1f3 100644
--- a/control/controlclient/direct.go
+++ b/control/controlclient/direct.go
@@ -596,17 +596,19 @@ func (c *Direct) PollNetMap(ctx context.Context, maxPolls int, cb func(*NetworkM
}
if resp.KeepAlive {
vlogf("netmap: got keep-alive")
- select {
- case timeoutReset <- struct{}{}:
- vlogf("netmap: sent keep-alive timer reset")
- case <-ctx.Done():
- c.logf("netmap: not resetting timer for keep-alive due to: %v", ctx.Err())
- return ctx.Err()
- }
+ } else {
+ vlogf("netmap: got new map")
+ }
+ select {
+ case timeoutReset <- struct{}{}:
+ vlogf("netmap: sent timer reset")
+ case <-ctx.Done():
+ c.logf("netmap: not resetting timer; context done: %v", ctx.Err())
+ return ctx.Err()
+ }
+ if resp.KeepAlive {
continue
}
- vlogf("netmap: got new map")
-
if resp.DERPMap != nil {
vlogf("netmap: new map contains DERP map")
lastDERPMap = resp.DERPMap