tun: freebsd: allow empty names

This change allows omitting the tun interface name setting. When the
name is not set, the kernel automatically picks up the tun name and
index.

Signed-off-by: Kay Diam <kay.diam@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Kay Diam 2021-03-07 17:21:31 +01:00 committed by Jason A. Donenfeld
parent 82f3e9e2af
commit 6005c573e2

View File

@ -346,6 +346,7 @@ func CreateTUN(name string, mtu int) (Device, error) {
return nil, fmt.Errorf("Unable to set nd6 flags for %s: %w", assignedName, errno) return nil, fmt.Errorf("Unable to set nd6 flags for %s: %w", assignedName, errno)
} }
if name != "" {
// Rename the interface // Rename the interface
var newnp [unix.IFNAMSIZ]byte var newnp [unix.IFNAMSIZ]byte
copy(newnp[:], name) copy(newnp[:], name)
@ -363,6 +364,7 @@ func CreateTUN(name string, mtu int) (Device, error) {
tunDestroy(assignedName) tunDestroy(assignedName)
return nil, fmt.Errorf("Failed to rename %s to %s: %w", assignedName, name, errno) return nil, fmt.Errorf("Failed to rename %s to %s: %w", assignedName, name, errno)
} }
}
return CreateTUNFromFile(tunFile, mtu) return CreateTUNFromFile(tunFile, mtu)
} }