On 24-sep-2007, at 4:16, Keith Moore wrote:
Obviously this should be fixed. But: you may ask yourself: why is
your
system doing AAAA lookups when you obviously don't have IPv6
connectivity?
Because the application asked it to do them?
Did it?
If you look up the getaddrinfo() man page (see top Google hits for a
link to the implementation in your favorite OS) you'll see that it's
possible to specify a protocol family or "accept any protocol family
supported by the operating system".
(But: protocol family? Didn't we call these things address families?)
In my opinion, when the application says "unspecified", it's entirely
reasonable for the OS to only supply addresses of a type that
currently has reachability.
Here's the thing. I don't want getnameinfo() or any other API that
does
DNS lookup to act differently depending on whether the system seems to
have external IPv6 connectivity or not (unless the app explicitly
asked
for this), because my app might have a valid reason for wanting to
know
if there's an AAAA record associated with a name even if the system
doesn't have external IPv6 connectivity.
I agree that if an application specifically asks for something the OS
etc shouldn't pretend it doesn't exist if it does, but I disagree
that there are significant valid cases where this is required.
The view of DNS needs to be
consistent from one host to another and one query to another if we
want
applications to work reliably.
Sure. (Hence the evilness of two-faced DNS. Yes, flame away.)
However, that doesn't apply here: there is no requirement that if
someone asks for one record type, she is informed of all other record
types as well.
Following your logic, the Windows logic of always asking for AAAA
records when IPv6 is enabled doesn't go far enough: it should ask for
AAAA records even when IPv6 is disabled administratively. And MX
records, TXT records...
_______________________________________________
Ietf@xxxxxxxx
https://www1.ietf.org/mailman/listinfo/ietf