From 33c5bcc6561be51a4181ba0b60f83b0e1087118d Mon Sep 17 00:00:00 2001 From: Gesh Markov Date: Thu, 2 Nov 2023 08:53:52 +0100 Subject: [PATCH] Debug host processes that already support IPv6. This change will allow pydevd to start with `--client ` and connect to them. --- _pydevd_bundle/pydevd_comm.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/_pydevd_bundle/pydevd_comm.py b/_pydevd_bundle/pydevd_comm.py index b9ac9053..f7063554 100644 --- a/_pydevd_bundle/pydevd_comm.py +++ b/_pydevd_bundle/pydevd_comm.py @@ -112,8 +112,9 @@ from _pydevd_bundle.pydevd_comm_constants import * # @UnusedWildImport # Socket import aliases: -AF_INET, SOCK_STREAM, SHUT_WR, SOL_SOCKET, IPPROTO_TCP, socket = ( +AF_INET, AF_INET6, SOCK_STREAM, SHUT_WR, SOL_SOCKET, IPPROTO_TCP, socket = ( socket_module.AF_INET, + socket_module.AF_INET6, socket_module.SOCK_STREAM, socket_module.SHUT_WR, socket_module.SOL_SOCKET, @@ -463,7 +464,14 @@ def start_client(host, port): ''' connects to a host/port ''' pydev_log.info("Connecting to %s:%s", host, port) - s = socket(AF_INET, SOCK_STREAM) + address_family = AF_INET + for res in socket_module.getaddrinfo(host, port, 0, SOCK_STREAM): + if res[0] == AF_INET6: + # Prefer IPv6 addresses. + address_family = res[0] + break + + s = socket(address_family, SOCK_STREAM) # Set TCP keepalive on an open socket. # It activates after 1 second (TCP_KEEPIDLE,) of idleness,