summaryrefslogtreecommitdiff
path: root/internal/wireguard/wireguard.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/wireguard/wireguard.go')
-rw-r--r--internal/wireguard/wireguard.go17
1 files changed, 13 insertions, 4 deletions
diff --git a/internal/wireguard/wireguard.go b/internal/wireguard/wireguard.go
index 3c293b4..e250dab 100644
--- a/internal/wireguard/wireguard.go
+++ b/internal/wireguard/wireguard.go
@@ -98,15 +98,17 @@ func StartTunnel(cfg *wgconf.Config, dnsServer string) (t *Tunnel, err error) {
return nil, fmt.Errorf("failed to configure network interface %s: %w", tunName, err)
}
+ var dnsFile string
if path, err := ConfigureResolvConf(dnsServer); err != nil {
fmt.Printf("warning: failed to configure DNS resolver: %v\n", err)
} else {
- t.dnsFile = path
+ dnsFile = path
}
return &Tunnel{
- Device: wgDev,
- Tun: tunDev,
+ Device: wgDev,
+ Tun: tunDev,
+ dnsFile: dnsFile,
}, nil
}
@@ -194,10 +196,17 @@ func configureInterface(name, address string, mtu int) error {
}
}
+ var dst *net.IPNet
+ if addr.IP.To4() != nil {
+ _, dst, _ = net.ParseCIDR("0.0.0.0/0")
+ } else {
+ _, dst, _ = net.ParseCIDR("::/0")
+ }
+
route := &netlink.Route{
Scope: netlink.SCOPE_UNIVERSE,
LinkIndex: link.Attrs().Index,
- Dst: nil,
+ Dst: dst,
}
if err := netlink.RouteAdd(route); err != nil {