tailscale/wgengine/monitor
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
..
monitor_darwin_test.go wgengine/monitor: add skipped failing test for Darwin route message bug 2021-03-02 09:53:36 -08:00
monitor_darwin.go wgengine/monitor: skip more route messages on darwin 2021-03-16 12:59:26 -07:00
monitor_freebsd.go wgengine/monitor: on unsupported platforms, use a polling implementation 2021-03-02 21:49:27 -08:00
monitor_linux.go wgengine/monitor: on unsupported platforms, use a polling implementation 2021-03-02 21:49:27 -08:00
monitor_polling.go wgengine/monitor: on unsupported platforms, use a polling implementation 2021-03-02 21:49:27 -08:00
monitor_test.go wgengine{,/monitor}: restore Engine.LinkChange, add Mon.InjectEvent 2021-03-03 22:09:02 -08:00
monitor_windows.go wgengine/monitor: simplify the Windows monitor to make it more reliable 2021-03-08 14:54:57 -08:00
monitor.go net/interfaces: remove mutating methods, add EqualFiltered instead 2021-03-26 09:11:48 -07:00