set AD bit in dns queries, suppress for internal use
authorRich Felker <dalias@aerifal.cx>
Tue, 19 May 2020 01:17:34 +0000 (21:17 -0400)
committerRich Felker <dalias@aerifal.cx>
Tue, 19 May 2020 01:30:33 +0000 (21:30 -0400)
commitfd7ec068efd590c0393a612599a4fab9bb0a8633
treef7e4b3bf7e023ddfe8e464b5a71e0cb858bf4beb
parent593caa456309714402ca4cb77c3770f4c24da9da
set AD bit in dns queries, suppress for internal use

the AD (authenticated data) bit in outgoing dns queries is defined by
rfc3655 to request that the nameserver report (via the same bit in the
response) whether the result is authenticated by DNSSEC. while all
results returned by a DNSSEC conforming nameserver will be either
authenticated or cryptographically proven to lack DNSSEC protection,
for some applications it's necessary to be able to distinguish these
two cases. in particular, conforming and compatible handling of DANE
(TLSA) records requires enforcing them only in signed zones.

when the AD bit was first defined for queries, there were reports of
compatibility problems with broken firewalls and nameservers dropping
queries with it set. these problems are probably a thing of the past,
and broken nameservers are already unsupported. however, since there
is no use in the AD bit with the netdb.h interfaces, explicitly clear
it in the queries they make. this ensures that, even with broken
setups, the standard functions will work, and at most the res_*
functions break.
src/network/getnameinfo.c
src/network/lookup_name.c
src/network/res_mkquery.c