quick fix

This commit is contained in:
Ryan Huber
2025-11-04 04:21:27 +00:00
parent 608904b9dd
commit 11da0baab1
2 changed files with 17 additions and 12 deletions

22
main.go
View File

@@ -5,6 +5,7 @@ import (
"fmt" "fmt"
"net" "net"
"net/netip" "net/netip"
"runtime"
"time" "time"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
@@ -162,17 +163,18 @@ func Main(c *config.C, configTest bool, buildVersion string, logger *logrus.Logg
listenHost = ips[0].Unmap() listenHost = ips[0].Unmap()
} }
useWG := c.GetBool("listen.use_wireguard_stack", false) useWGDefault := runtime.GOOS == "linux"
var mkListener func(*logrus.Logger, netip.Addr, int, bool, int) (udp.Conn, error) useWG := c.GetBool("listen.use_wireguard_stack", useWGDefault)
if useWG { var mkListener func(*logrus.Logger, netip.Addr, int, bool, int) (udp.Conn, error)
mkListener = udp.NewWireguardListener if useWG {
} else { mkListener = udp.NewWireguardListener
mkListener = udp.NewListener } else {
} mkListener = udp.NewListener
}
for i := 0; i < routines; i++ { for i := 0; i < routines; i++ {
l.Infof("listening on %v", netip.AddrPortFrom(listenHost, uint16(port))) l.Infof("listening on %v", netip.AddrPortFrom(listenHost, uint16(port)))
udpServer, err := mkListener(l, listenHost, port, routines > 1, c.GetInt("listen.batch", 64)) udpServer, err := mkListener(l, listenHost, port, routines > 1, c.GetInt("listen.batch", 64))
if err != nil { if err != nil {
return nil, util.NewContextualError("Failed to open udp listener", m{"queue": i}, err) return nil, util.NewContextualError("Failed to open udp listener", m{"queue": i}, err)
} }

View File

@@ -9,6 +9,7 @@ import (
"net" "net"
"net/netip" "net/netip"
"os" "os"
"runtime"
"strings" "strings"
"sync/atomic" "sync/atomic"
"time" "time"
@@ -70,7 +71,8 @@ type ifreqQLEN struct {
func newTunFromFd(c *config.C, l *logrus.Logger, deviceFd int, vpnNetworks []netip.Prefix) (*tun, error) { func newTunFromFd(c *config.C, l *logrus.Logger, deviceFd int, vpnNetworks []netip.Prefix) (*tun, error) {
file := os.NewFile(uintptr(deviceFd), "/dev/net/tun") 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) t, err := newTunGeneric(c, l, file, vpnNetworks, useWG)
if err != nil { if err != nil {
return nil, err 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") name := strings.Trim(string(req.Name[:]), "\x00")
file := os.NewFile(uintptr(fd), "/dev/net/tun") 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) t, err := newTunGeneric(c, l, file, vpnNetworks, useWG)
if err != nil { if err != nil {
return nil, err return nil, err