Rich Felker:
[dnssec end-to-end probe, log a warning if for any reason results
do not have the authentic data' bit set]'.
> This sounds like a great plan that will also mitigate the problem of
> glibc's AD-stripping by default. FYI I've raised concerns about that
> again on libc-alpha:
> 
> https://sourceware.org/pipermail/libc-alpha/2020-May/114174.html
> 
> > Postfix would still disable the res_nxxx() calls into libc-musl, but
> > that would be safe, even if those calls end up to get added later.
> 
> Can you do this via the published __RES API version in resolv.h,
> rather than probing ldd? The latter is flaky and will get wrong result
> in various cases I mentioned before.

The test for res_nxxx() support needs to be at build time, because
the build fails when the library does not define the res_nxxx()
API.

(Also, you stated that runtime libraries may arbitrarily differ in
feature set from the build-time library. In that light, the only
safe choice is to never call the res_nxxx() API.)

Given that __RES is a number, how would one encode that MUSL
supports the res_nxxx() API, and not screw up other code??

The __RES value varies wildly between different platforms.  __RES
never changes for glibc, but it does change on other platforms.

#define __RES   19991006        // Fedora 30, glibc 2.29
#define __RES   19991006        // Alpine 3.11.5, pretends-to-be glibc 2.29
#define __RES   19991006        // Fedora 32beta, glibc 2.31
#define __RES   20030124        // FreeBSD 8
#define __RES   20090302        // FreeBSD 12

All of the above implement res_nxxx() except the pretends-to-be glibc 2.29.

        Wietse

Reply via email to