From 92c8ae720e69216a2f51d2c7d3cd72340b782fb3 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 21 Mar 2022 22:38:22 +0100 Subject: [PATCH] dirmngr: Make WKD_GET work even for servers not handling SRV RRs. * dirmngr/server.c (proc_wkd_get): Take care of DNS server failures -- Unfortunately there are resolver setups which don't handle SRV records but return a server error. We let a not found error pass, because that merely means the domain does not exists. GnuPG-bug-id: 4729 --- dirmngr/server.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dirmngr/server.c b/dirmngr/server.c index c65e0633e..2702d32f9 100644 --- a/dirmngr/server.c +++ b/dirmngr/server.c @@ -924,7 +924,14 @@ proc_wkd_get (ctrl_t ctrl, assuan_context_t ctx, char *line) err = get_dns_srv (ctrl, domain, "openpgpkey", NULL, &srvs, &srvscount); if (err) - goto leave; + { + /* Ignore server failed becuase there are too many resolvers + * which do not work as expected. */ + if (gpg_err_code (err) == GPG_ERR_SERVER_FAILED) + err = 0; /*(srvcount is guaranteed to be 0)*/ + else + goto leave; + } /* Check for rogue DNS names. */ for (i = 0; i < srvscount; i++)