[issue7735] socket.create_connection() creates IPv6 DNS requests even when built with --disable-ipv6

Daniel Shahaf report at bugs.python.org
Mon Dec 31 05:51:36 CET 2012


Daniel Shahaf added the comment:

Victor, thanks for the summary.  I view things a little differently, so I'll offer my POV:

1. The OPs (Evan and Ralf) build with --disable-ipv6.
2. --disable-ipv6 disables support for IPv6 sockets.  (as per Martin, and AFAIK as per the common meaning of that flag in other configure scripts.)  It does not disable AAAA DNS queries in stdlib DNS client modules.  It does not disable IPv6 support in the 'ipaddress' module.  It does not signify that IPv6 is/isn't supported by libc.  It is orthogonal to whether any interface has IPv6 addresses configured.
3. socket.create_connection() requests IPv6 addresses when Python was built with --disable-ipv6.
4. The OPs claim that (3) is a bug, reasoning that, as create_connection() should not try to connect(2) to IPv6 addresses (per (2)), it's pointless, wasteful, or wrong for it to request them in the first place.
5. Ralf provided a one-line patch for (4):
https://github.com/SiteSupport/gevent/commit/9b1bccffc11455112076189f35023291cf97a2a2

In other words, the issue revolves around configuring Python not to create IPv6 sockets on IPv6-capable systems.

HTH

----------
nosy: +danielsh

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue7735>
_______________________________________


More information about the Python-bugs-list mailing list