diff options
author | Werner Koch <[email protected]> | 2022-03-21 21:38:22 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2022-03-21 21:38:22 +0000 |
commit | 92c8ae720e69216a2f51d2c7d3cd72340b782fb3 (patch) | |
tree | b14d4fc058337bf397504b22a282998cd3735fe2 /dirmngr/server.c | |
parent | gpgtar: Finally use a pipe for decryption. (diff) | |
download | gnupg-92c8ae720e69216a2f51d2c7d3cd72340b782fb3.tar.gz gnupg-92c8ae720e69216a2f51d2c7d3cd72340b782fb3.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
Diffstat (limited to 'dirmngr/server.c')
-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 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++) |