Commit 5336f8ca authored by Andrew M. Kuchling's avatar Andrew M. Kuchling

[Patch #982681] Apply this patch correctly; makes set_reuse_addr() work on Windows

parent 7323f084
...@@ -263,10 +263,16 @@ class dispatcher: ...@@ -263,10 +263,16 @@ class dispatcher:
def set_reuse_addr(self): def set_reuse_addr(self):
# try to re-use a server port if possible # try to re-use a server port if possible
try: 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( self.socket.setsockopt(
socket.SOL_SOCKET, socket.SO_REUSEADDR, socket.SOL_SOCKET, reuse_constant,
self.socket.getsockopt(socket.SOL_SOCKET, self.socket.getsockopt(socket.SOL_SOCKET,
socket.SO_REUSEADDR) | 1 reuse_constant) | 1
) )
except socket.error: except socket.error:
pass pass
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment