From a71b83b91b19ec1b607d74e3197b3f09195b0d3d Mon Sep 17 00:00:00 2001 From: Giel van Schijndel Date: Wed, 6 May 2009 19:29:56 +0000 Subject: [PATCH] On platforms that don't support IPV6_V6ONLY, just ignore it and hope the platform doesn't automatically enable IPv6 mapped IPv4 addresses This allows the lobby server to be used on platforms that don't support IPV6_V6ONLY socket option. Thanks to Buginator for reporting this. git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7342 4a71c877-e1ca-e34f-864e-861f7616d084 --- tools/masterserver/wzmasterserver.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/masterserver/wzmasterserver.py b/tools/masterserver/wzmasterserver.py index f730bafd1..dfd33a582 100755 --- a/tools/masterserver/wzmasterserver.py +++ b/tools/masterserver/wzmasterserver.py @@ -261,7 +261,13 @@ class TCP6Server(SocketServer.TCPServer): Overridden to enable IPV6_V6ONLY. """ - self.socket.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 1) + try: + self.socket.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 1) + except AttributeError: + # Apparently IPV6_V6ONLY isn't supported on this + # platform. Lets hope that IPv6 mapping of IPv4 + # addresses isn't supported either... + pass SocketServer.TCPServer.server_bind(self) class ThreadingTCP6Server(SocketServer.ThreadingMixIn, TCP6Server): pass