]> git.ipfire.org Git - thirdparty/wireguard-go.git/commitdiff
wintun: call HrRenameConnection in another thread
authorJason A. Donenfeld <Jason@zx2c4.com>
Fri, 10 May 2019 19:31:37 +0000 (21:31 +0200)
committerJason A. Donenfeld <Jason@zx2c4.com>
Fri, 10 May 2019 19:31:37 +0000 (21:31 +0200)
tun/wintun/wintun_windows.go

index b48ff801b6b299b679f14c88ef313c170f4618a3..4dfc0bc1f2640620f0c97187ff4ed9b9f5beb486 100644 (file)
@@ -513,10 +513,11 @@ func (wintun *Wintun) GetInterfaceName() (string, error) {
 //
 func (wintun *Wintun) SetInterfaceName(ifname string) error {
        // We have to tell the various runtime COM services about the new name too. We ignore the
-       // error because netshell isn't available on servercore.
+       // error because netshell isn't available on servercore. It's also slow, so we run it in a
+       // separate thread.
        // TODO: netsh.exe falls back to NciSetConnection in this case. If somebody complains, maybe
        // we should do the same.
-       _ = netshell.HrRenameConnection(&wintun.CfgInstanceID, windows.StringToUTF16Ptr(ifname))
+       go netshell.HrRenameConnection(&wintun.CfgInstanceID, windows.StringToUTF16Ptr(ifname))
 
        // Set the interface name. The above line should have done this too, but in case it failed, we force it.
        key, err := registry.OpenKey(registry.LOCAL_MACHINE, wintun.GetNetRegKeyName(), registry.SET_VALUE)