tailscale/wgengine
James Tucker 1aa75b1c9e wgengine/netstack: always set TCP keepalive
Setting keepalive ensures that idle connections will eventually be
closed. In userspace mode, any application configured TCP keepalive is
effectively swallowed by the host kernel, and is not easy to detect.
Failure to close connections when a peer tailscaled goes offline or
restarts may result in an otherwise indefinite connection for any
protocol endpoint that does not initiate new traffic.

This patch does not take any new opinion on a sensible default for the
keepalive timers, though as noted in the TODO, doing so likely deserves
further consideration.

Update #4522

Signed-off-by: James Tucker <james@tailscale.com>
2022-04-26 19:29:08 -07:00
..
bench types/netmap: use key.NodePublic instead of tailcfg.NodeKey. 2021-11-01 17:07:40 -07:00
filter all: add arbitrary capability support 2022-04-17 09:01:53 -07:00
magicsock wgengine/{,magicsock}: add metrics for rebinds and restuns 2022-04-22 11:55:46 -07:00
monitor wgengine/monitor: do not ignore changes to pdp_ip* 2022-04-25 12:17:00 -07:00
netstack wgengine/netstack: always set TCP keepalive 2022-04-26 19:29:08 -07:00
router Revert "wgengine/router,util/kmod: load & log xt_mark" 2022-04-21 09:53:23 -07:00
wgcfg all: use any instead of interface{} 2022-03-17 11:35:09 -07:00
wglog all: use any instead of interface{} 2022-03-17 11:35:09 -07:00
winnet all: gofmt -w -s (simplify) tests 2021-12-15 08:43:41 -08:00
mem_ios.go go.mod: upgrade wireguard-windows, de-fork wireguard-go 2021-05-25 13:18:21 -07:00
pendopen.go util/mak: move tailssh's mapSet into a new package for reuse elsewhere 2022-04-21 21:20:10 -07:00
userspace.go wgengine/{,magicsock}: add metrics for rebinds and restuns 2022-04-22 11:55:46 -07:00
userspace_ext_test.go go.mod: upgrade wireguard-windows, de-fork wireguard-go 2021-05-25 13:18:21 -07:00
userspace_test.go all: gofmt -w -s (simplify) tests 2021-12-15 08:43:41 -08:00
watchdog.go all: use any instead of interface{} 2022-03-17 11:35:09 -07:00
watchdog_test.go all: use any instead of interface{} 2022-03-17 11:35:09 -07:00
wgengine.go ipn/ipnlocal: do not process old status messages received out of order 2022-03-26 20:23:50 -07:00