On Tue, Jan 24, 2006 at 01:59:38PM -0500, Michael Stone wrote: > >Ok, let's clarify some things here. resolv.conf(5) describes the > >behaviour of a _single_ resolver query. If you look at > >resolv/nss_dns/dns-host.c in the glibc source, you'll see that > >gethostbyname(3) is implemented as _two_ distinct resolver invocations. > >Since it is nowhere specified how many resolver invocations > >gethostbyname(3) should cause, the glibc behaviour is correct and will > >result in the second list of DNS queries you specified. > > ISTM that's an issue the user user shouldn't have to care about. > gethostbyname(3) could be implemented as _four_ distinct resolver > invocations: > > if (inputname doesn't end in ".") { > resolve(inputname., AAAA) > return if found > resolve(inputname., A) > return if found > } > resolve(inputname, AAAA) > return if found > resolve(inputname, A) > return if found > > Which would make the results match the requested behavior without a major > rewrite. "The code does something that makes sense if you look at the > code" isn't, in itself, a very good reason not to do something different. > > Mike Stone
Ack with that, though I looked at the glibc code, such a patch (that also was my first idea) is far from trivial sadly in the current state of the glibc resolver design. Given that I fear that Ullrich would just discard the bug if there is no patch with it. I do not know the libc internals enough yet to do a good patch by myself :| -- ·O· Pierre Habouzit ··O [EMAIL PROTECTED] OOO http://www.madism.org
pgpn0J26kKNP7.pgp
Description: PGP signature