From: Jason A. Donenfeld Date: Thu, 19 Apr 2018 13:54:33 +0000 (+0200) Subject: We can determine the interface name ourselves X-Git-Tag: 0.0.20180514~54 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=676bb9143461ae25304c414fb19595fef9c310db;p=thirdparty%2Fwireguard-go.git We can determine the interface name ourselves --- diff --git a/main.go b/main.go index b12bb09..7742eef 100644 --- a/main.go +++ b/main.go @@ -90,7 +90,7 @@ func main() { } file := os.NewFile(uintptr(fd), "") - return CreateTUNFromFile(interfaceName, file) + return CreateTUNFromFile(file) }() if err != nil { diff --git a/tun_linux.go b/tun_linux.go index 06b5af4..ac9824f 100644 --- a/tun_linux.go +++ b/tun_linux.go @@ -308,18 +308,22 @@ func (tun *NativeTun) Close() error { return tun.fd.Close() } -func CreateTUNFromFile(name string, fd *os.File) (TUNDevice, error) { +func CreateTUNFromFile(fd *os.File) (TUNDevice, error) { device := &NativeTun{ fd: fd, - name: name, events: make(chan TUNEvent, 5), errors: make(chan error, 5), nopi: false, } + var err error + + _, err = device.Name() + if err != nil { + return nil, err + } // start event listener - var err error device.index, err = getIFIndex(device.name) if err != nil { return nil, err