}
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
}
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)