diff options
author | Werner Koch <[email protected]> | 2022-03-21 21:38:22 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2022-03-21 21:41:09 +0000 |
commit | 6d30fb6940d57237392f9196a4de5c7246ffefdf (patch) | |
tree | de61b4be29e0cb0d868393b1fc4a481167c6783f | |
parent | gpgtar: Finally use a pipe for decryption. (diff) | |
download | gnupg-6d30fb6940d57237392f9196a4de5c7246ffefdf.tar.gz gnupg-6d30fb6940d57237392f9196a4de5c7246ffefdf.zip |
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
-rw-r--r-- | dirmngr/server.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/dirmngr/server.c b/dirmngr/server.c index 7b7a087dd..7d62f1c58 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 (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++) |