From ae3e96bd33777e75e92f8947d51240fae5beeaa8 Mon Sep 17 00:00:00 2001 From: Ling Li Date: Thu, 16 Mar 2023 17:34:51 -0700 Subject: py TSocket: Only disable socket.IPV6_V6ONLY when the family is AF_INET6 --- lib/py/src/transport/TSocket.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/py/src/transport/TSocket.py b/lib/py/src/transport/TSocket.py index a24d8fb71..50ee67e76 100644 --- a/lib/py/src/transport/TSocket.py +++ b/lib/py/src/transport/TSocket.py @@ -228,13 +228,14 @@ class TServerSocket(TSocketBase, TServerTransportBase): if eno == errno.ECONNREFUSED: os.unlink(res[4]) - self.handle = socket.socket(res[0], res[1]) - self.handle.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0) - self.handle.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - if hasattr(self.handle, 'settimeout'): - self.handle.settimeout(None) - self.handle.bind(res[4]) - self.handle.listen(self._backlog) + self.handle = s = socket.socket(res[0], res[1]) + if s.family is socket.AF_INET6: + s.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0) + s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + if hasattr(s, 'settimeout'): + s.settimeout(None) + s.bind(res[4]) + s.listen(self._backlog) def accept(self): client, addr = self.handle.accept() -- cgit v1.2.1