New submission from Evan Teran <[email protected]>:
I have encountered an issue where python will do a AAAA request even when built
without IPv6. This becomes an issue because on some configurations this seems
to cause a 5 second delay on DNS lookups (that is a separate issue of course).
Basically here is what I am seeing:
#!/usr/bin/python
import urllib2
print urllib2.urlopen('http://python.org/').read(100)
results in the following:
0.000000 10.102.0.79 -> 8.8.8.8 DNS Standard query A python.org
0.000023 10.102.0.79 -> 8.8.8.8 DNS Standard query AAAA python.org
0.005369 8.8.8.8 -> 10.102.0.79 DNS Standard query response A
82.94.164.162
5.004494 10.102.0.79 -> 8.8.8.8 DNS Standard query A python.org
5.010540 8.8.8.8 -> 10.102.0.79 DNS Standard query response A
82.94.164.162
5.010599 10.102.0.79 -> 8.8.8.8 DNS Standard query AAAA python.org
5.015832 8.8.8.8 -> 10.102.0.79 DNS Standard query response AAAA
2001:888:2000:d::a2
looking at socket.py in create_connection() (line 500 on my python 2.6.4
stdlib) the code is like this:
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
af, socktype, proto, canonname, sa = res
sock = None
try:
sock = socket(af, socktype, proto)
if timeout is not _GLOBAL_DEFAULT_TIMEOUT:
sock.settimeout(timeout)
sock.connect(sa)
return sock
except error, msg:
if sock is not None:
sock.close()
The 3rd argument is the socket type, which is set to 0 which apparently means
unspecified. It seems to me that if python is built without IPv6 support it
should instead pass AF_INET since even if it does get an IPv6 response it can't
possibly use it.
----------
components: None
messages: 98036
nosy: Evan.Teran
severity: normal
status: open
title: python creates IPv6 DNS requests even when built with --disable-ipv6
versions: Python 2.5, Python 2.6, Python 2.7, Python 3.1, Python 3.2
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue7735>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com