tailscale/wgengine
Mihai Parparita bdc45b9066 wgengine/magicsock: fix panic when rebinding fails
We would replace the existing real implementation of nettype.PacketConn
with a blockForeverConn, but that violates the contract of atomic.Value
(where the type cannot change). Fix by switching to a pointer value
(atomic.Pointer[nettype.PacketConn]).

A longstanding issue, but became more prevalent when we started binding
connections to interfaces on macOS and iOS (#6566), which could lead to
the bind call failing if the interface was no longer available.

Fixes #6641

Signed-off-by: Mihai Parparita <mihai@tailscale.com>
2022-12-08 16:34:14 -08:00
..
bench all: fix more resource leaks found by staticmajor 2022-10-10 20:46:56 -07:00
filter all: fix spelling mistakes 2022-09-29 13:36:13 -07:00
magicsock wgengine/magicsock: fix panic when rebinding fails 2022-12-08 16:34:14 -08:00
monitor util/set: add new set package for SetHandle type 2022-11-28 10:44:17 -08:00
netlog net/connstats: invert network logging data flow (#6272) 2022-11-28 15:59:33 -08:00
netstack ipn/ipnlocal: call checkPrefs in Start too 2022-11-22 15:13:00 +05:00
router cmd/tailscaled, wgengine/router: use wingoes/com for COM initialization instead of go-ole 2022-11-24 14:52:23 -06:00
wgcfg types/logid: move logtail ID types here (#6336) 2022-11-28 15:25:47 -08:00
wgint go.mod, wgengine/wgint: bump wireguard-go 2022-09-06 11:34:30 -07:00
wglog all: use syncs.AtomicValue 2022-08-04 11:52:16 -07:00
winnet all: remove old +build tags 2022-11-04 07:25:42 -07:00
mem_ios.go go.mod: upgrade wireguard-windows, de-fork wireguard-go 2021-05-25 13:18:21 -07:00
pendopen.go wgengine: remove all peer status from open timeout diagnostics 2022-08-29 15:54:33 -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: convert more code to use net/netip directly 2022-07-25 21:53:49 -07:00
userspace.go wgengine: respect --no-logs-no-support flag for network logging (#6172) 2022-11-02 12:57:04 -07:00
watchdog_js.go wasm: drop pprof dependency 2022-06-07 12:16:16 -07:00
watchdog_test.go wgengine: remove all peer status from open timeout diagnostics 2022-08-29 15:54:33 -07:00
watchdog.go all: remove old +build tags 2022-11-04 07:25:42 -07:00
wgengine.go wgengine: fix typo in Engine.PeerForIP (#5912) 2022-10-12 14:14:22 -07:00