]> git.ipfire.org Git - thirdparty/wireguard-go.git/commitdiff
conn: close old fd before trying again
authorJason A. Donenfeld <Jason@zx2c4.com>
Tue, 9 Feb 2021 23:43:31 +0000 (00:43 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Tue, 9 Feb 2021 23:43:31 +0000 (00:43 +0100)
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
conn/conn_default.go
conn/conn_linux.go

index 2360068ed1932fe0939d94e33d21c06f67faff74..82a1e4220d3e74f2488a034c6e8bc05419a794eb 100644 (file)
@@ -99,6 +99,7 @@ again:
 
        bind.ipv6, port, err = listenNet("udp6", port)
        if uport == 0 && err != nil && errors.Is(err, syscall.EADDRINUSE) && tries < 100 {
+               bind.ipv4.Close()
                tries++
                goto again
        }
index 716028f1676b8fbc1ab048e90d064a88cac52dea..f07c3bbbb0f9d3b153204136565f9f454fae1d8c 100644 (file)
@@ -123,6 +123,7 @@ again:
        bind.sock4, newPort, err = create4(port)
        if err != nil {
                if originalPort == 0 && err == syscall.EADDRINUSE && tries < 100 {
+                       unix.Close(bind.sock6)
                        tries++
                        goto again
                }