]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
set SO_EXCLUSIVEADDRUSER on Windows instead of SO_REUSEADDR
authorMinRK <benjaminrk@gmail.com>
Thu, 28 Jun 2012 04:08:12 +0000 (21:08 -0700)
committerMinRK <benjaminrk@gmail.com>
Thu, 28 Jun 2012 05:55:56 +0000 (22:55 -0700)
closes #550

tornado/netutil.py

index d06a176b41c44de31232566054c7b3a415d310e2..80918e7976a6546d15f8803ca33903786a8fe194 100644 (file)
@@ -252,7 +252,10 @@ def bind_sockets(port, address=None, family=socket.AF_UNSPEC, backlog=128):
         af, socktype, proto, canonname, sockaddr = res
         sock = socket.socket(af, socktype, proto)
         set_close_exec(sock.fileno())
-        sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+        if os.name == 'nt':
+            sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1)
+        else:
+            sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
         if af == socket.AF_INET6:
             # On linux, ipv6 sockets accept ipv4 too by default,
             # but this makes it impossible to bind to both