monitor: refactor for architecture-specific connection implementations

Signed-off-by: wardn <wardn@users.noreply.github.com>
This commit is contained in:
wardn
2020-02-12 12:53:55 -08:00
committed by Dave Anderson
parent aa73b7972c
commit 2cafbd74c7
5 changed files with 216 additions and 119 deletions

View File

@ -20,20 +20,20 @@ import (
"github.com/tailscale/wireguard-go/wgcfg"
"tailscale.com/atomicfile"
"tailscale.com/logger"
"tailscale.com/wgengine/rtnlmon"
"tailscale.com/wgengine/monitor"
)
type linuxRouter struct {
logf func(fmt string, args ...interface{})
tunname string
mon *rtnlmon.Mon
mon *monitor.Mon
netChanged func()
local wgcfg.CIDR
routes map[wgcfg.CIDR]struct{}
}
func NewUserspaceRouter(logf logger.Logf, tunname string, dev *device.Device, tuntap tun.Device, netChanged func()) Router {
mon, err := rtnlmon.New(logf, netChanged)
mon, err := monitor.New(logf, netChanged)
if err != nil {
log.Fatalf("rtnlmon.New() failed: %v", err)
}