diff options
| author | Brad Fitzpatrick <bradfitz@tailscale.com> | 2020-08-06 21:24:31 -0700 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@tailscale.com> | 2020-08-07 12:33:20 -0700 |
| commit | bbb912b883c63be5f0eb1ac0fb6133cb8e9fed26 (patch) | |
| tree | 428cdef4fcd1e32666ba74028360ec9a3de1219f | |
| parent | aac1068fb350edb70bc2cac4d97b2ce947bcffe9 (diff) | |
| download | tailscale-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.go | 20 |
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 |
