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
This commit is contained in:
Werner Koch 2022-03-21 22:38:22 +01:00
parent e5ef5e3b91
commit 92c8ae720e
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
1 changed files with 8 additions and 1 deletions

View File

@ -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++)