You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/ipn/ipnlocal
Andrew Dunham fe33b17db3 ipn/ipnlocal: handle more edge cases in netmap expiry timer
We now handle the case where the NetworkMap.SelfNode has already expired
and do not return an expiry time in the past (which causes an ~infinite
loop of timers to fire).

Additionally, we now add an explicit check to ensure that the next
expiry time is never before the current local-to-the-system time, to
ensure that we don't end up in a similar situation due to clock skew.

Finally, we add more tests for this logic to ensure that we don't
regress on these edge cases.

Fixes #7193

Change-Id: Iaf8e3d83be1d133a7aab7f8d62939e508cc53f9c
Signed-off-by: Andrew Dunham <andrew@du.nham.ca>
(cherry picked from commit 6d84f3409b)
3 years ago
..
c2n.go envknob, hostinfo, ipn/ipnlocal: add start of opt-in remote update support 3 years ago
cert.go ipn/{ipnlocal,localapi}: move most of cert.go to ipnlocal 3 years ago
cert_js.go ipn/ipnlocal, wgengine/netstack: start handling ports for future serving 3 years ago
cert_test.go ipn/{ipnlocal,localapi}: move most of cert.go to ipnlocal 3 years ago
dnsconfig_test.go ipn/ipnlocal: use ipn.PrefsView 3 years ago
expiry.go ipn/ipnlocal: handle more edge cases in netmap expiry timer 3 years ago
expiry_test.go ipn/ipnlocal: handle more edge cases in netmap expiry timer 3 years ago
local.go ipn/ipnlocal: handle more edge cases in netmap expiry timer 3 years ago
local_test.go ipn/{ipnlocal,localapi}: ensure watcher is installed before /watch-ipn-bus/ responds with 200 3 years ago
loglines_test.go ipn/ipnlocal: add support for multiple user profiles 3 years ago
network-lock.go health,ipn/ipnlocal: report the node being locked out as a health issue 3 years ago
network-lock_test.go cmd/tailscale,tka: make KeyID return an error instead of panicking 3 years ago
peerapi.go ipn/ipnlocal: disallow unsigned peers from WoL 3 years ago
peerapi_h2c.go all: remove old +build tags 3 years ago
peerapi_macios_ext.go all: remove old +build tags 3 years ago
peerapi_test.go ipn/ipnlocal: improve redactErr to handle more cases 3 years ago
profiles.go ipn/ipnlocal: use presence of NodeID to identify logins 3 years ago
profiles_test.go ipn/ipnlocal: use presence of NodeID to identify logins 3 years ago
serve.go ipn/ipnlocal: [serve] listen on all-interfaces for macOS sandboxed (#6771) 3 years ago
serve_test.go ipn/ipnlocal: support serving files/directories too 3 years ago
ssh.go ssh/tailssh: add OpenBSD support for Tailscale SSH 3 years ago
ssh_stub.go ssh/tailssh: add OpenBSD support for Tailscale SSH 3 years ago
ssh_test.go ipn/ipnlocal: add support for multiple user profiles 3 years ago
state_test.go ipn/ipnlocal: use presence of NodeID to identify logins 3 years ago