allow reuse of port for UDP (#379)

This commit is contained in:
gpicron 2023-06-01 16:02:33 +02:00 committed by GitHub
parent e436f20b33
commit 5be223e92c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 0 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@ nimcache/
nimble.develop
nimble.paths
/build/
nimbledeps

View File

@ -318,6 +318,13 @@ when defined(windows):
closeSocket(localSock)
raiseTransportOsError(err)
if ServerFlags.ReusePort in flags:
if not setSockOpt(localSock, osdefs.SOL_SOCKET, osdefs.SO_REUSEPORT, 1):
let err = osLastError()
if sock == asyncInvalidSocket:
closeSocket(localSock)
raiseTransportOsError(err)
if ServerFlags.Broadcast in flags:
if not setSockOpt(localSock, osdefs.SOL_SOCKET, osdefs.SO_BROADCAST, 1):
let err = osLastError()
@ -524,6 +531,13 @@ else:
closeSocket(localSock)
raiseTransportOsError(err)
if ServerFlags.ReusePort in flags:
if not setSockOpt(localSock, osdefs.SOL_SOCKET, osdefs.SO_REUSEPORT, 1):
let err = osLastError()
if sock == asyncInvalidSocket:
closeSocket(localSock)
raiseTransportOsError(err)
if ServerFlags.Broadcast in flags:
if not setSockOpt(localSock, osdefs.SOL_SOCKET, osdefs.SO_BROADCAST, 1):
let err = osLastError()