Skip to content

test_net: figure out the proper IP protocol for localhost

On some systems, localhost is only defined for 127.0.0.1 (e.g. Ubuntu and Debian containers). However, there is code that hardcodes possible values for localhost, making it possible to open an IPv6 socket for localhost.

On those systems, the socket will be open but urllib3 will resolve localhost only to 127.0.0.1, thus failing miserably to connect.

To resolve the situation, rather than defaulting to IPv6 we actually resolve localhost and use the socket family of the first result. On my current system (upcoming Ubuntu Plucky) if localhost=::1 is defined in /etc/hosts it will come up as the first result, if not 127.0.0.1 will.

Fixes: f01628ca "fix localhost network tests on systems with IPv6"

Merge request reports

Loading