From 11da0baab14af44ff6781616a5d0d8f6b5beda49 Mon Sep 17 00:00:00 2001 From: Ryan Huber Date: Tue, 4 Nov 2025 04:21:27 +0000 Subject: [PATCH] quick fix --- main.go | 22 ++++++++++++---------- overlay/tun_linux.go | 7 +++++-- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/main.go b/main.go index 4aa7444..d9666ce 100644 --- a/main.go +++ b/main.go @@ -5,6 +5,7 @@ import ( "fmt" "net" "net/netip" + "runtime" "time" "github.com/sirupsen/logrus" @@ -162,17 +163,18 @@ func Main(c *config.C, configTest bool, buildVersion string, logger *logrus.Logg listenHost = ips[0].Unmap() } - useWG := c.GetBool("listen.use_wireguard_stack", false) - var mkListener func(*logrus.Logger, netip.Addr, int, bool, int) (udp.Conn, error) - if useWG { - mkListener = udp.NewWireguardListener - } else { - mkListener = udp.NewListener - } + useWGDefault := runtime.GOOS == "linux" + useWG := c.GetBool("listen.use_wireguard_stack", useWGDefault) + var mkListener func(*logrus.Logger, netip.Addr, int, bool, int) (udp.Conn, error) + if useWG { + mkListener = udp.NewWireguardListener + } else { + mkListener = udp.NewListener + } - for i := 0; i < routines; i++ { - l.Infof("listening on %v", netip.AddrPortFrom(listenHost, uint16(port))) - udpServer, err := mkListener(l, listenHost, port, routines > 1, c.GetInt("listen.batch", 64)) + for i := 0; i < routines; i++ { + l.Infof("listening on %v", netip.AddrPortFrom(listenHost, uint16(port))) + udpServer, err := mkListener(l, listenHost, port, routines > 1, c.GetInt("listen.batch", 64)) if err != nil { return nil, util.NewContextualError("Failed to open udp listener", m{"queue": i}, err) } diff --git a/overlay/tun_linux.go b/overlay/tun_linux.go index 64b400f..70ae3f6 100644 --- a/overlay/tun_linux.go +++ b/overlay/tun_linux.go @@ -9,6 +9,7 @@ import ( "net" "net/netip" "os" + "runtime" "strings" "sync/atomic" "time" @@ -70,7 +71,8 @@ type ifreqQLEN struct { func newTunFromFd(c *config.C, l *logrus.Logger, deviceFd int, vpnNetworks []netip.Prefix) (*tun, error) { file := os.NewFile(uintptr(deviceFd), "/dev/net/tun") - useWG := c.GetBool("tun.use_wireguard_stack", c.GetBool("listen.use_wireguard_stack", false)) + useWGDefault := runtime.GOOS == "linux" + useWG := c.GetBool("tun.use_wireguard_stack", c.GetBool("listen.use_wireguard_stack", useWGDefault)) t, err := newTunGeneric(c, l, file, vpnNetworks, useWG) if err != nil { return nil, err @@ -116,7 +118,8 @@ func newTun(c *config.C, l *logrus.Logger, vpnNetworks []netip.Prefix, multiqueu name := strings.Trim(string(req.Name[:]), "\x00") file := os.NewFile(uintptr(fd), "/dev/net/tun") - useWG := c.GetBool("tun.use_wireguard_stack", c.GetBool("listen.use_wireguard_stack", false)) + useWGDefault := runtime.GOOS == "linux" + useWG := c.GetBool("tun.use_wireguard_stack", c.GetBool("listen.use_wireguard_stack", useWGDefault)) t, err := newTunGeneric(c, l, file, vpnNetworks, useWG) if err != nil { return nil, err