From 6fa7a9a055253e5151b787bfcc233ad6f55a1628 Mon Sep 17 00:00:00 2001 From: Mike Kramlich Date: Tue, 11 Aug 2020 11:04:07 -0600 Subject: [PATCH] wgengine/router/router_userspace_bsd: on Mac the route program syntax expects delete not del -- this had caused router reconfig to fail in some cases. Fixes #673 Signed-off-by: Mike Kramlich --- wgengine/router/router_userspace_bsd.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/wgengine/router/router_userspace_bsd.go b/wgengine/router/router_userspace_bsd.go index dc75a381b..b177a34a9 100644 --- a/wgengine/router/router_userspace_bsd.go +++ b/wgengine/router/router_userspace_bsd.go @@ -16,6 +16,7 @@ import ( "github.com/tailscale/wireguard-go/tun" "inet.af/netaddr" "tailscale.com/types/logger" + "tailscale.com/version" "tailscale.com/wgengine/router/dns" ) @@ -114,8 +115,12 @@ func (r *userspaceBSDRouter) Set(cfg *Config) error { net := route.IPNet() nip := net.IP.Mask(net.Mask) nstr := fmt.Sprintf("%v/%d", nip, route.Bits) + del := "del" + if version.OS() == "macOS" { + del = "delete" + } routedel := []string{"route", "-q", "-n", - "del", "-inet", nstr, + del, "-inet", nstr, "-iface", r.tunname} out, err := cmd(routedel...).CombinedOutput() if err != nil {