From: Jason A. Donenfeld Date: Thu, 18 Jul 2019 10:26:57 +0000 (+0200) Subject: tun: windows: switch to NDIS device object X-Git-Tag: 0.0.20190805~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c50fedd8eecc6cb06d8da47514794eb211d5b3a;p=thirdparty%2Fwireguard-go.git tun: windows: switch to NDIS device object --- diff --git a/tun/tun_windows.go b/tun/tun_windows.go index d22e130..21bc382 100644 --- a/tun/tun_windows.go +++ b/tun/tun_windows.go @@ -146,13 +146,17 @@ func CreateTUNWithRequestedGUID(ifname string, requestedGUID *windows.GUID) (Dev } func (tun *NativeTun) openTUN() error { + filename, err := tun.wt.NdisFileName() + if err != nil { + return err + } + retries := maybeRetry(retryTimeout * retryRate) if tun.close { return os.ErrClosed } - var err error - name, err := windows.UTF16PtrFromString(tun.wt.DataFileName()) + name, err := windows.UTF16PtrFromString(filename) if err != nil { return err } diff --git a/tun/wintun/wintun_windows.go b/tun/wintun/wintun_windows.go index 160d51f..e8eadf5 100644 --- a/tun/wintun/wintun_windows.go +++ b/tun/wintun/wintun_windows.go @@ -612,11 +612,6 @@ func (wintun *Wintun) deviceData() (setupapi.DevInfo, *setupapi.DevInfoData, err return 0, nil, windows.ERROR_OBJECT_NOT_FOUND } -// DataFileName returns the Wintun device data pipe name. -func (wintun *Wintun) DataFileName() string { - return fmt.Sprintf("\\\\.\\Global\\WINTUN%d", wintun.luidIndex) -} - // NdisFileName returns the Wintun NDIS device object name. func (wintun *Wintun) NdisFileName() (string, error) { key, err := registry.OpenKey(registry.LOCAL_MACHINE, wintun.netRegKeyName(), registry.QUERY_VALUE)