mirror of https://github.com/python/cpython
[Patch #982681] Apply this patch correctly; makes set_reuse_addr() work on Windows
This commit is contained in:
parent
7323f08422
commit
5336f8caa4
|
@ -263,14 +263,20 @@ class dispatcher:
|
|||
def set_reuse_addr(self):
|
||||
# try to re-use a server port if possible
|
||||
try:
|
||||
# Windows SO_REUSEADDR is very broken (from a unixy perspective)
|
||||
if sys.platform == 'win32':
|
||||
reuse_constant = socket.SO_EXCLUSIVEADDRUSE
|
||||
else:
|
||||
reuse_constant = socket.SO_REUSEADDR
|
||||
|
||||
self.socket.setsockopt(
|
||||
socket.SOL_SOCKET, socket.SO_REUSEADDR,
|
||||
socket.SOL_SOCKET, reuse_constant,
|
||||
self.socket.getsockopt(socket.SOL_SOCKET,
|
||||
socket.SO_REUSEADDR) | 1
|
||||
reuse_constant) | 1
|
||||
)
|
||||
except socket.error:
|
||||
pass
|
||||
|
||||
|
||||
# ==================================================
|
||||
# predicates for select()
|
||||
# these are used as filters for the lists of sockets
|
||||
|
|
Loading…
Reference in New Issue