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/net/netmon
Jonathan Nobels fa1303d632
net/netmon: swap to swift-derived defaultRoute on macos (#11936)
Updates tailscale/corp#18960

iOS uses Apple's NetworkMonitor to track the default interface and
there's no reason we shouldn't also use this on macOS, for the same
reasons noted in the comments for why this change was made on iOS.

This eliminates the need to load and parse the routing table when
querying the defaultRouter() in almost all cases.

A slight modification here (on both platforms) to fallback to the default
BSD logic in the unhappy-path rather than making assumptions that
may not hold.  If netmon is eventually parsing AF_ROUTE and able
to give a consistently correct answer for the  default interface index,
we can fall back to that and eliminate the Swift dependency.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
2 years ago
..
defaultroute_bsd.go net/netmon: swap to swift-derived defaultRoute on macos (#11936) 2 years ago
defaultroute_darwin.go net/netmon: swap to swift-derived defaultRoute on macos (#11936) 2 years ago
interfaces_android.go net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
interfaces_bsd.go net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
interfaces_darwin.go net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
interfaces_darwin_test.go net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
interfaces_default_route_test.go net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
interfaces_defaultrouteif_todo.go net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
interfaces_freebsd.go net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
interfaces_linux.go net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
interfaces_linux_test.go net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
interfaces_test.go net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
interfaces_windows.go net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
interfaces_windows_test.go net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
netmon.go net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
netmon_darwin.go all: move network monitoring from wgengine/monitor to net/netmon 3 years ago
netmon_darwin_test.go all: move network monitoring from wgengine/monitor to net/netmon 3 years ago
netmon_freebsd.go all: move network monitoring from wgengine/monitor to net/netmon 3 years ago
netmon_linux.go all: adjust case of "IPv4" and "IPv6" 2 years ago
netmon_linux_test.go all: move network monitoring from wgengine/monitor to net/netmon 3 years ago
netmon_polling.go all: move network monitoring from wgengine/monitor to net/netmon 3 years ago
netmon_test.go net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
netmon_windows.go all: cleanup unused code, part 2 (#10670) 2 years ago
polling.go net/netmon: factor out debounce loop, simplify polling impl 2 years ago
state.go net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago