summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhil Pennock <pdp@exim.org>2020-04-21 18:59:15 -0400
committerPhil Pennock <pdp@exim.org>2020-04-21 18:59:15 -0400
commitdce58c04af4439fec7269f83886e22b503756a8f (patch)
tree306a28dd1fea27591f0f4deb19e2e408ed7946b1 /src
parent47aaa9d6df68458c03a9fa65c6f2fd2bdee898f9 (diff)
stop-gap: doc glibc 2.31 RES_TRUSTAD/trust-ad
In glibc from release 2.31 onwards (change added in their commit 446997ff14) setting `dns_dnssec_ok` will not be sufficient. glibc has added a new `options trust-ad` toggle for `/etc/resolv.conf` and a C macro `RES_TRUSTAD`. This will break existing deployments and binaries. Our current mechanism for enabling DNSSEC is with an option named to closely match the DNS feature required, so it is probably inappropriate to tinker with a second option there. Instead we probably need a new meta-option for the concept of DNSSEC, add the second new flag there, and move `dns_dnssec_ok` to a legacy deprecated option. That will only work if the machine Exim is built on has the new C macro, but will need to be conditional upon that macro being defined, so binaries built aren't going to be forward-compatible to other systems with newer glibc. There is no good solution to solve this. In the meantime, document the issue and point administrators at how to work around the issue with a setting in `/etc/resolv.conf` Thanks to Viktor Dukhovni for highlighting the existence of this problem.
Diffstat (limited to 'src')
-rw-r--r--src/src/dns.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/src/dns.c b/src/src/dns.c
index d036162cb..e13aa74e2 100644
--- a/src/src/dns.c
+++ b/src/src/dns.c
@@ -501,6 +501,8 @@ const uschar * auth_name;
const uschar * trusted;
if (dnsa->answerlen < 0) return FALSE;
+/* Beware that newer versions of glibc on Linux will filter out the ad bit
+unless their shiny new RES_TRUSTAD bit is set for the resolver. */
if (h->ad) return TRUE;
/* If the resolver we ask is authoritative for the domain in question, it may