This is the mail archive of the
libc-help@sourceware.org
mailing list for the glibc project.
Re: Name resolution of dot terminated hostnames
- From: Florian Weimer <fweimer at redhat dot com>
- To: Etienne Buira <etienne dot buira at free dot fr>
- Cc: libc-help at sourceware dot org
- Date: Fri, 24 May 2019 23:11:37 +0200
- Subject: Re: Name resolution of dot terminated hostnames
- References: <20190524185325.GB3662@Z926fQmE5jqhFMgp6> <87imtzoe14.fsf@oldenburg2.str.redhat.com> <20190524203641.GC3662@Z926fQmE5jqhFMgp6>
* Etienne Buira:
> On Fri, May 24, 2019 at 09:20:23PM +0200, Florian Weimer wrote:
>> * Etienne Buira:
>>
>> > On a Gentoo box (with Gentoo packaged glibc 2.29-r2), libc was unable to
>> > resolve 'localhost.' (with the trailing dot), although it can resolve
>> > 'localhost', and conf looks fine.
>> >
>> > With older libcs, (at least 2.28 based), libc can resolve the dot
>> > terminated hostname just fine.
>>
>> What's your /etc/nsswitch.conf file? What's in /etc/hosts?
>
> In nsswitch.conf, the only line regarding hosts is:
> hosts: file dns
Presumably this?
hosts: files dns
> In hosts, the only non-comment line is:
> 127.0.0.1 localhost
>
> Some nameservers are set in resolv.conf, but the box didn't send any dns
> query.
That's odd. I think localhost. queries would have always gone out over
DNS unless localhost. (with the trailing dot) is listed in /etc/hosts.
We made quite a few changes to the hosts implementation of nss_files in
the recent times, but I don't remember removing the trailing-dot
stripping. It's always been a straight strcasecmp (which is arguably
wrong for several reasons).
> The same conf with the older libc versions are resolving dotted form.
With or without DNS queries?
>> > hostname(7) man page reads 'If the input name ends with a trailing dot,
>> > the trailing dot is removed, and the remaining name is looked up with no
>> > further processing.'
>>
>> This covers DNS processing (“Internet name resolver”) only. A newer
>> version of the manpage should reflect that more
>
> Manpage took from the Linux man-pages project 5.01, currently online. But
> reading it again, it is clear it is about DNS-based name resolver. Are
> you aware of any normative reference about this dotted form of names
> which are not part of a dns hierarchy?
There is RFC 6761 for special-use names. The trailing dot is mentioned
in RFC 3986. The behavior regarding trailing dots is varied; one major
DNS implementation suppressed search list processing with the trailing
dot, but had a single cache entry for domain with and without the
trailing dot.
Thanks,
Florian