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 6d84f3409b 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>
2 years ago
..
c2n.go all: update copyright and license headers 2 years ago
cert.go ipn/ipnlocal: add support to store certs in k8s secrets 2 years ago
cert_js.go all: update copyright and license headers 2 years ago
cert_test.go all: update copyright and license headers 2 years ago
dnsconfig_test.go all: update copyright and license headers 2 years ago
expiry.go ipn/ipnlocal: handle more edge cases in netmap expiry timer 2 years ago
expiry_test.go ipn/ipnlocal: handle more edge cases in netmap expiry timer 2 years ago
local.go ipn/ipnlocal: handle more edge cases in netmap expiry timer 2 years ago
local_test.go ipn/ipnlocal: drop not required StateKey parameter 2 years ago
loglines_test.go ipn/ipnlocal: drop not required StateKey parameter 2 years ago
network-lock.go all: update copyright and license headers 2 years ago
network-lock_test.go ipn/ipnlocal: drop not required StateKey parameter 2 years ago
peerapi.go all: update to Go 1.20, use strings.CutPrefix/Suffix instead of our fork 2 years ago
peerapi_h2c.go all: update copyright and license headers 2 years ago
peerapi_macios_ext.go all: update copyright and license headers 2 years ago
peerapi_test.go ipn/ipnlocal: drop not required StateKey parameter 2 years ago
profiles.go all: update to Go 1.20, use strings.CutPrefix/Suffix instead of our fork 2 years ago
profiles_test.go ipn/ipnlocal: drop not required StateKey parameter 2 years ago
serve.go all: update to Go 1.20, use strings.CutPrefix/Suffix instead of our fork 2 years ago
serve_test.go all: update copyright and license headers 2 years ago
ssh.go all: update copyright and license headers 2 years ago
ssh_stub.go all: update copyright and license headers 2 years ago
ssh_test.go ipn/ipnlocal: drop not required StateKey parameter 2 years ago
state_test.go ipn/ipnlocal: drop not required StateKey parameter 2 years ago