tailscale/wgengine
Andrew Dunham 80b138f0df wgengine/magicsock: keep advertising endpoints after we stop discovering them
Previously, when updating endpoints we would immediately stop
advertising any endpoint that wasn't discovered during
determineEndpoints. This could result in, for example, a case where we
performed an incremental netcheck, didn't get any of our three STUN
packets back, and then dropped our STUN endpoint from the set of
advertised endpoints... which would result in clients falling back to a
DERP connection until the next call to determineEndpoints.

Instead, let's cache endpoints that we've discovered and continue
reporting them to clients until a timeout expires. In the above case
where we temporarily don't have a discovered STUN endpoint, we would
continue reporting the old value, then re-discover the STUN endpoint
again and continue reporting it as normal, so clients never see a
withdrawal.

Updates tailscale/coral#108

Signed-off-by: Andrew Dunham <andrew@du.nham.ca>
Change-Id: I42de72e7418ab328a6c732bdefc74549708cf8b9
2023-04-17 11:26:02 -04:00
..
bench all: update copyright and license headers 2023-01-27 15:36:29 -08:00
capture net, wgengine/capture: encode NAT addresses in pcap stream 2023-04-06 13:26:00 -07:00
filter all: use tstest.Replace more 2023-03-04 12:24:55 -08:00
magicsock wgengine/magicsock: keep advertising endpoints after we stop discovering them 2023-04-17 11:26:02 -04:00
monitor net/sockstats: remove explicit dependency on wgengine/monitor 2023-03-03 08:37:14 -08:00
netlog sockstats: add labels for netlog and sockstatlog packages 2023-03-29 14:53:07 -07:00
netstack wgengine/netstack: fix data-race on startup 2023-04-10 09:13:21 -07:00
router envknob,net/tstun,wgengine: use TS_DEBUG_MTU consistently 2023-03-30 14:26:10 -07:00
wgcfg tailcfg: make SelfNodeV4MasqAddrForThisPeer a pointer 2023-04-13 11:28:33 -07:00
wgint all: update copyright and license headers 2023-01-27 15:36:29 -08:00
wglog all: update copyright and license headers 2023-01-27 15:36:29 -08:00
winnet all: update copyright and license headers 2023-01-27 15:36:29 -08:00
mem_ios.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
pendopen.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
userspace.go net/tstun,wgengine/*: add support for NAT to routes 2023-03-29 12:30:18 -07:00
userspace_ext_test.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
userspace_test.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
watchdog.go wgengine: start logging DISCO frames to pcap stream 2023-02-10 11:22:34 -10:00
watchdog_js.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
watchdog_test.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
wgengine.go wgengine: start logging DISCO frames to pcap stream 2023-02-10 11:22:34 -10:00