* Wietse Venema:

> Florian Weimer:
>> * Wietse Venema:
>> 
>> > Florian Weimer:
>> >> * Wietse Venema:
>> >> 
>> >> > Florian Weimer:
>> >> >> * Rich Felker:
>> >> >> 
>> >> >> > A solution that would work with existing and future versions of musl
>> >> >> > as well as glibc, and would (I think) avoid the need to poke at _res
>> >> >> > to set the glibc trustad flag, would be replacing the call to
>> >> >> > res_query with res_mkquery, |='ing the AD bit into place, then
>> >> >> > res_send.
>> >> >> 
>> >> >> This will not give the result that Postfix programmers want on newer
>> >> >> glibc versions (not without the trust-ad flag in /etc/resolv.conf).
>> >> >
>> >> > The problem with using low-level res_*mkquery() is that Postfix
>> >> > would have to re-implement all the high-level res_search() features
>> >> > such as RES_DEFNAMES, RES_DNSRCH, retries over TCP after receiving
>> >> > a truncated response, and so on.
>> >> 
>> >> I don't think this is actually an issue: TCP fallback is still
>> >> performed with res_send.  If you care about DNSSEC validation, you
>> >> cannot really use search list processing anyway because you might not
>> >> get back the name you wanted after an unauthenticated query failure,
>> >> so the lack thereof with res_send actually avoids the cumbersome flags
>> >> manipulation.
>> >
>> > Fine, so res_*send() does retry.
>> >
>> > As for RES_DEFNAMES and RES_DNSRCH, these might be needed for lookups
>> > other than DNSSEC, so I can't simply drop support for them.
>> 
>> I think the way you manipulate the flags essentially turns res_search
>> into res_query, so why not call res_query directly?
>
> Did you mean that res_search with BOTH flags off == res_query?  Why
> would I want to add extra code for the case that BOTH flags are off?

I looked at the Postfix history behind this, and it seems that as part
of the fix for unexpected search list processing, the (more or less)
internal resolver flags were exposed via the Postfix configuration,
instead a new flag to choose between res_search and res_query.

This is an interesting data point because the interaction between
RES_DEFNAMES, RES_DNSRCH, and the ndots and no-tld-query options are
far from obvious.  Even the exact impact of RES_DEFNAMES and
RES_DNSRCH probably varies between code written from scratch and the
BIND stub resolver codebase, which seems to have gone from one search
list entry to multiple entries at one point (I wasn't around back
then).  It's not merely of historic interest because with the current
set of flags we expose in the glibc /etc/resolv.conf parser, it is not
possible to adhere to the ICANN recommendations for search list
processing.  I will take the Postfix use case into account when
changing this.  Thanks.

> If I may ask a stupid question: my post says Reply-to: postfix-users,
> Please do not send me an extra copy of your resoponse.

Hmm.  I see this:

Reply-To: i...@porcupine.org, res_qu...@porcupine.org

I've dropped everything but the list for this reply.

Reply via email to