diff options
author | Ling Li <liling@gmail.com> | 2023-03-16 17:34:51 -0700 |
---|---|---|
committer | Jens Geyer <Jens-G@users.noreply.github.com> | 2023-03-17 23:57:54 +0100 |
commit | ae3e96bd33777e75e92f8947d51240fae5beeaa8 (patch) | |
tree | 663a30c4ae599dcac0d8571e120dc6670b353bdc | |
parent | f377dd3445362b5d5f051f549a12424663801894 (diff) | |
download | thrift-ae3e96bd33777e75e92f8947d51240fae5beeaa8.tar.gz |
py TSocket: Only disable socket.IPV6_V6ONLY when the family is AF_INET6
-rw-r--r-- | lib/py/src/transport/TSocket.py | 15 |
1 files 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() |