Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann Leboulanger <asterix@lagaule.org>2008-12-04 23:44:42 +0300
committerYann Leboulanger <asterix@lagaule.org>2008-12-04 23:44:42 +0300
commit200a29e06c263673bec596e0b73cfa785967c251 (patch)
treec6073f542366d453e8530381907edfa20527268d
parent7e2f44bee50e475917b6723b145d85fa4a07b5a3 (diff)
Under vista, we can listen on both ipv4 and ipv6. Fixes #4452
-rw-r--r--src/common/socks5.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/common/socks5.py b/src/common/socks5.py
index f45593093..55f5982e7 100644
--- a/src/common/socks5.py
+++ b/src/common/socks5.py
@@ -805,6 +805,13 @@ class Socks5Listener(IdleObject):
self._serv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self._serv.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
self._serv.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
+ # Under windows Vista, we need that to listen on ipv6 AND ipv4
+ # Doesn't work under windows XP
+ if os.name == 'nt':
+ ver = os.sys.getwindowsversion()
+ if (ver[3], ver[0], ver[1]) == (2, 6, 0):
+ # 27 is socket.IPV6_V6ONLY under windows, but not defined ...
+ self._serv.setsockopt(socket.IPPROTO_IPV6, 27, 1)
# will fail when port as busy, or we don't have rights to bind
try:
self._serv.bind(ai[4])