]> git.ipfire.org Git - thirdparty/wireguard-go.git/commitdiff
wintun: simplify rename logic
authorJason A. Donenfeld <Jason@zx2c4.com>
Thu, 29 Aug 2019 01:31:20 +0000 (19:31 -0600)
committerJason A. Donenfeld <Jason@zx2c4.com>
Thu, 29 Aug 2019 01:31:20 +0000 (19:31 -0600)
tun/wintun/wintun_windows.go

index b558fd63e85b9cc0b9f48decc876259088a4ae41..5624525bfd9437564d710346bfb0ff6d67cc86e5 100644 (file)
@@ -568,12 +568,8 @@ func (wintun *Wintun) InterfaceName() (string, error) {
 func (wintun *Wintun) SetInterfaceName(ifname string) error {
        const maxSuffix = 1000
        availableIfname := ifname
-setloop:
        for i := 0; ; i++ {
                err := nci.SetConnectionName(&wintun.cfgInstanceID, availableIfname)
-               if err == nil {
-                       break
-               }
                if err == windows.ERROR_DUP_NAME {
                        duplicateGuid, err2 := iphlpapi.InterfaceGUIDFromAlias(availableIfname)
                        if err2 == nil {
@@ -589,13 +585,16 @@ setloop:
                                        if err2 == nil {
                                                err = nci.SetConnectionName(&wintun.cfgInstanceID, availableIfname)
                                                if err == nil {
-                                                       break setloop
+                                                       break
                                                }
                                        }
                                        break
                                }
                        }
                }
+               if err == nil {
+                       break
+               }
 
                if i > maxSuffix || err != windows.ERROR_DUP_NAME {
                        return fmt.Errorf("NciSetConnectionName failed: %v", err)