Skip to content

Commit ac85941

Browse files
committed
Fix for missing IPPROTO_V6 on Windows.
1 parent 569255a commit ac85941

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

nengo_gui/server.py

+14-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,19 @@
2828
WS_MAGIC = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'
2929

3030

31+
if socket.has_ipv6:
32+
if hasattr(socket, 'IPPROTO_IPV6'):
33+
IPPROTO_IPV6 = socket.IPPROTO_IPV6
34+
elif sys.platform.startswith('win'):
35+
# See <https://bugs.python.org/issue29515>.
36+
IPPROTO_IPV6 = 41
37+
else:
38+
raise RuntimeError(
39+
"System does not define IPPROTO_IPV6 despite IPv6 support.")
40+
else:
41+
IPPROTO_IPV6 = None
42+
43+
3144
class SocketClosedError(IOError):
3245
pass
3346

@@ -120,7 +133,7 @@ def __init__(self, address_family, address):
120133
self.address_family, socket.SOCK_STREAM)
121134
if self.address_family is socket.AF_INET6:
122135
self.socket.setsockopt(
123-
socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 1)
136+
IPPROTO_IPV6, socket.IPV6_V6ONLY, 1)
124137

125138
def bind(self):
126139
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

0 commit comments

Comments
 (0)