wgengine/router: take a link monitor

Prep for #1591 which will need to make Linux's router react to changes
that the link monitor observes.

The router package already depended on the monitor package
transitively. Now it's explicit.

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2021-07-20 13:28:06 -07:00
committed by Brad Fitzpatrick
parent 24db1a3c9b
commit ed8587f90d
11 changed files with 56 additions and 18 deletions

View File

@@ -18,6 +18,8 @@ import (
"github.com/google/go-cmp/cmp"
"golang.zx2c4.com/wireguard/tun"
"inet.af/netaddr"
"tailscale.com/types/logger"
"tailscale.com/wgengine/monitor"
)
func TestRouterStates(t *testing.T) {
@@ -314,8 +316,15 @@ ip route add throw 192.168.0.0/24 table 52` + basic,
},
}
mon, err := monitor.New(logger.Discard)
if err != nil {
t.Fatal(err)
}
mon.Start()
defer mon.Close()
fake := NewFakeOS(t)
router, err := newUserspaceRouterAdvanced(t.Logf, "tailscale0", fake.netfilter4, fake.netfilter6, fake, true, true)
router, err := newUserspaceRouterAdvanced(t.Logf, "tailscale0", mon, fake.netfilter4, fake.netfilter6, fake, true, true)
if err != nil {
t.Fatalf("failed to create router: %v", err)
}
@@ -659,7 +668,14 @@ func TestDelRouteIdempotent(t *testing.T) {
}
}
r, err := newUserspaceRouter(logf, tun)
mon, err := monitor.New(logger.Discard)
if err != nil {
t.Fatal(err)
}
mon.Start()
defer mon.Close()
r, err := newUserspaceRouter(logf, tun, mon)
if err != nil {
t.Fatal(err)
}