aboutsummaryrefslogtreecommitdiffstats
path: root/conn
diff options
context:
space:
mode:
Diffstat (limited to 'conn')
-rw-r--r--conn/conn_default.go1
-rw-r--r--conn/conn_linux.go1
2 files changed, 2 insertions, 0 deletions
diff --git a/conn/conn_default.go b/conn/conn_default.go
index 2360068..82a1e42 100644
--- a/conn/conn_default.go
+++ b/conn/conn_default.go
@@ -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
}
diff --git a/conn/conn_linux.go b/conn/conn_linux.go
index 716028f..f07c3bb 100644
--- a/conn/conn_linux.go
+++ b/conn/conn_linux.go
@@ -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
}