tailscale/net/interfaces
Brad Fitzpatrick 7f174e84e6 net/interfaces: remove mutating methods, add EqualFiltered instead
Now callers (wgengine/monitor) don't need to mutate the state to remove
boring interfaces before calling State.Equal. Instead, the methods
to remove boring interfaces from the State are removed, as is
the reflect-using Equal method itself, and in their place is
a new EqualFiltered method that takes a func predicate to match
interfaces to compare.

And then the FilterInteresting predicate is added for use
with EqualFiltered to do the job that that wgengine/monitor
previously wanted.

Now wgengine/monitor can keep the full interface state around,
including the "boring" interfaces, which we'll need for peerapi on
macOS/iOS to bind to the interface index of the utunN device.

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-03-26 09:11:48 -07:00
..
interfaces.go net/interfaces: remove mutating methods, add EqualFiltered instead 2021-03-26 09:11:48 -07:00
interfaces_darwin.go net/interfaces: rewrite the darwin likelyHomeRouterIP from C to Go 2021-03-15 13:27:36 -07:00
interfaces_darwin_test.go net/interfaces: rewrite the darwin likelyHomeRouterIP from C to Go 2021-03-15 13:27:36 -07:00
interfaces_default_route_test.go net/{interfaces,netns}: add some new tests, missed from prior commit 2021-02-14 21:18:27 -08:00
interfaces_defaultrouteif_todo.go net/interfaces: merge darwin files for DefaultRouteInterface in sandbox 2021-03-02 21:15:25 -08:00
interfaces_linux.go net/netns, net/interfaces: move defaultRouteInterface, add Android fallback 2020-08-10 13:02:47 -07:00
interfaces_linux_test.go net/netns, net/interfaces: move defaultRouteInterface, add Android fallback 2020-08-10 13:02:47 -07:00
interfaces_test.go net/interfaces: remove mutating methods, add EqualFiltered instead 2021-03-26 09:11:48 -07:00
interfaces_windows.go net/interfaces: use windows API to get the default route instead of parsing `route print` output 2021-03-19 14:07:36 +01:00
interfaces_windows_test.go net/interfaces: quiet PAC detection logging in no-PAC case, add benchmark 2020-10-01 22:02:39 -07:00
route.h net/interfaces: use syscalls to find private gateway IP address 2020-08-04 15:45:56 -07:00