From 45d687e213216c1590128fc7556d77adfcce179e Mon Sep 17 00:00:00 2001 From: David Crawshaw Date: Wed, 19 Feb 2020 11:53:35 -0500 Subject: [PATCH] wgengine: fix build on linux/freebsd/openbsd/windows Signed-off-by: David Crawshaw --- wgengine/ifconfig_windows.go | 12 ++++++++---- wgengine/router_freebsd.go | 5 ++--- wgengine/router_linux.go | 3 +-- wgengine/router_openbsd.go | 5 ++--- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/wgengine/ifconfig_windows.go b/wgengine/ifconfig_windows.go index 6ac368f88..e4b082305 100644 --- a/wgengine/ifconfig_windows.go +++ b/wgengine/ifconfig_windows.go @@ -237,7 +237,7 @@ func setFirewall(ifcGUID *windows.GUID) (bool, error) { return false, nil } -func ConfigureInterface(m *wgcfg.Config, tun *tun.NativeTun, dns []net.IP, dnsDomains []string) error { +func ConfigureInterface(m *wgcfg.Config, tun *tun.NativeTun, dns []wgcfg.IP, dnsDomains []string) error { const mtu = 0 guid := tun.GUID() log.Printf("wintun GUID is %v\n", guid) @@ -268,8 +268,8 @@ func ConfigureInterface(m *wgcfg.Config, tun *tun.NativeTun, dns []net.IP, dnsDo routes := []winipcfg.RouteData{} var firstGateway4 *net.IP var firstGateway6 *net.IP - addresses := make([]*net.IPNet, len(m.Interface.Addresses)) - for i, addr := range m.Interface.Addresses { + addresses := make([]*net.IPNet, len(m.Addresses)) + for i, addr := range m.Addresses { ipnet := addr.IPNet() addresses[i] = ipnet gateway := ipnet.IP @@ -361,7 +361,11 @@ func ConfigureInterface(m *wgcfg.Config, tun *tun.NativeTun, dns []net.IP, dnsDo errAcc = err } - err = iface.SetDNS(dns) + var dnsIPs []net.IP + for _, ip := range dns { + dnsIPs = append(dnsIPs, ip.IP()) + } + err = iface.SetDNS(dnsIPs) if err != nil && errAcc == nil { log.Printf("setdns: %v\n", err) errAcc = err diff --git a/wgengine/router_freebsd.go b/wgengine/router_freebsd.go index 6c9b37a00..e4c696265 100644 --- a/wgengine/router_freebsd.go +++ b/wgengine/router_freebsd.go @@ -7,7 +7,6 @@ package wgengine import ( "fmt" "log" - "net" "os/exec" "github.com/tailscale/wireguard-go/device" @@ -154,5 +153,5 @@ func (r *freebsdRouter) Close() error { // TODO(mbaillie): these are no-ops for now. They could re-use the Linux funcs // (sans systemd parts), but I note Linux DNS is disabled(?) so leaving for now. -func (r *freebsdRouter) replaceResolvConf(_ []net.IP, _ []string) error { return nil } -func (r *freebsdRouter) restoreResolvConf() error { return nil } +func (r *freebsdRouter) replaceResolvConf(_ []wgcfg.IP, _ []string) error { return nil } +func (r *freebsdRouter) restoreResolvConf() error { return nil } diff --git a/wgengine/router_linux.go b/wgengine/router_linux.go index 7f0417317..97930e0b6 100644 --- a/wgengine/router_linux.go +++ b/wgengine/router_linux.go @@ -9,7 +9,6 @@ import ( "fmt" "io/ioutil" "log" - "net" "os" "os/exec" "path/filepath" @@ -177,7 +176,7 @@ const ( resolvConf = "/etc/resolv.conf" ) -func (r *linuxRouter) replaceResolvConf(servers []net.IP, domains []string) error { +func (r *linuxRouter) replaceResolvConf(servers []wgcfg.IP, domains []string) error { if len(servers) == 0 { return r.restoreResolvConf() } diff --git a/wgengine/router_openbsd.go b/wgengine/router_openbsd.go index 2deadc8b6..68ad331a7 100644 --- a/wgengine/router_openbsd.go +++ b/wgengine/router_openbsd.go @@ -7,7 +7,6 @@ package wgengine import ( "fmt" "log" - "net" "os/exec" "github.com/tailscale/wireguard-go/device" @@ -175,5 +174,5 @@ func (r *openbsdRouter) Close() error { // TODO(mbaillie): these are no-ops for now. They could re-use the Linux funcs // (sans systemd parts), but I note Linux DNS is disabled(?) so leaving for now. -func (r *openbsdRouter) replaceResolvConf(_ []net.IP, _ []string) error { return nil } -func (r *openbsdRouter) restoreResolvConf() error { return nil } +func (r *openbsdRouter) replaceResolvConf(_ []wgcfg.IP, _ []string) error { return nil } +func (r *openbsdRouter) restoreResolvConf() error { return nil }