aboutsummaryrefslogtreecommitdiffstats
path: root/dirmngr/dns-stuff.c
diff options
context:
space:
mode:
Diffstat (limited to 'dirmngr/dns-stuff.c')
-rw-r--r--dirmngr/dns-stuff.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/dirmngr/dns-stuff.c b/dirmngr/dns-stuff.c
index 28ecb1857..eae888bf9 100644
--- a/dirmngr/dns-stuff.c
+++ b/dirmngr/dns-stuff.c
@@ -478,7 +478,16 @@ libdns_init (void)
if (err)
{
log_error ("failed to load '%s': %s\n", fname, gpg_strerror (err));
- goto leave;
+ /* not fatal, nsswitch.conf is not used on all systems; assume
+ * classic behavior instead. Our dns library states "bf" which tries
+ * DNS then Files, which is not classic; FreeBSD
+ * /usr/src/lib/libc/net/gethostnamadr.c defines default_src[] which
+ * is Files then DNS, which is. */
+ log_debug ("dns: fallback resolution order, files then DNS");
+ ld.resolv_conf->lookup[0] = 'f';
+ ld.resolv_conf->lookup[1] = 'b';
+ ld.resolv_conf->lookup[2] = '\0';
+ err = GPG_ERR_NO_ERROR;
}
#endif /* Unix */