]> git.ipfire.org Git - thirdparty/wireguard-go.git/commitdiff
tun: allow darwin to auto assign names
authorJason A. Donenfeld <Jason@zx2c4.com>
Fri, 4 May 2018 19:11:38 +0000 (21:11 +0200)
committerJason A. Donenfeld <Jason@zx2c4.com>
Fri, 4 May 2018 19:11:51 +0000 (21:11 +0200)
main.go
tun_darwin.go

diff --git a/main.go b/main.go
index 41231bf3fd69169b58a91bb7c4e1a5335b012a4c..8562bf6e18c62cf58a7285c70dd1a0ac6ed6b94b 100644 (file)
--- a/main.go
+++ b/main.go
@@ -115,13 +115,6 @@ func main() {
                return LogLevelInfo
        }()
 
-       logger := NewLogger(
-               logLevel,
-               fmt.Sprintf("(%s) ", interfaceName),
-       )
-
-       logger.Debug.Println("Debug log enabled")
-
        // open TUN device (or use supplied fd)
 
        tun, err := func() (TUNDevice, error) {
@@ -141,6 +134,21 @@ func main() {
                return CreateTUNFromFile(file)
        }()
 
+       if err == nil {
+               realInterfaceName, err2 := tun.Name()
+               if err2 == nil {
+                       interfaceName = realInterfaceName
+               }
+       }
+
+       logger := NewLogger(
+               logLevel,
+               fmt.Sprintf("(%s) ", interfaceName),
+       )
+
+       logger.Debug.Println("Debug log enabled")
+
+
        if err != nil {
                logger.Error.Println("Failed to create TUN device:", err)
                os.Exit(ExitSetupFailed)
index a03347f34a031ccb6691451997aff83a8a9aa61f..4d9b06d92327eecd765400e82f22706348961ed4 100644 (file)
@@ -46,9 +46,11 @@ var sockaddrCtlSize uintptr = 32
 
 func CreateTUN(name string) (TUNDevice, error) {
        ifIndex := -1
-       fmt.Sscanf(name, "utun%d", &ifIndex)
-       if ifIndex < 0 {
-               return nil, fmt.Errorf("error parsing interface name %s, must be utun[0-9]+", name)
+       if (name != "utun") {
+               fmt.Sscanf(name, "utun%d", &ifIndex)
+               if ifIndex < 0 {
+                       return nil, fmt.Errorf("Interface name must be utun[0-9]*")
+               }
        }
 
        fd, err := unix.Socket(unix.AF_SYSTEM, unix.SOCK_DGRAM, 2)