Bläddra i källkod

put back the previous darwin interface naming

Jay Wren 1 år sedan
förälder
incheckning
4c0aad1b1f
1 ändrade filer med 16 tillägg och 1 borttagningar
  1. 16 1
      overlay/tun_darwin.go

+ 16 - 1
overlay/tun_darwin.go

@@ -68,7 +68,22 @@ func newTunFromFd(_ *config.C, _ *logrus.Logger, _ int, _ []netip.Prefix) (*wgTu
 }
 }
 
 
 func newTun(c *config.C, l *logrus.Logger, vpnNetworks []netip.Prefix, _ bool) (*wgTun, error) {
 func newTun(c *config.C, l *logrus.Logger, vpnNetworks []netip.Prefix, _ bool) (*wgTun, error) {
-	deviceName := c.GetString("tun.dev", "utun")
+	name := c.GetString("tun.dev", "")
+	deviceName := "utun"
+
+	// Parse device name to handle utun[0-9]+ format
+	if name != "" && name != "utun" {
+		ifIndex := -1
+		_, err := fmt.Sscanf(name, "utun%d", &ifIndex)
+		if err != nil || ifIndex < 0 {
+			// NOTE: we don't make this error so we don't break existing
+			// configs that set a name before it was used.
+			l.Warn("interface name must be utun[0-9]+ on Darwin, ignoring")
+		} else {
+			deviceName = name
+		}
+	}
+
 	mtu := c.GetInt("tun.mtu", DefaultMTU)
 	mtu := c.GetInt("tun.mtu", DefaultMTU)
 
 
 	// Create WireGuard TUN device
 	// Create WireGuard TUN device