aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2020-09-10 08:19:44 +0000
committerWerner Koch <[email protected]>2020-09-10 09:04:46 +0000
commit72e04b03b1a7aee5521156c6d549ca10a81ac529 (patch)
tree216816d1de140b02fc2218a36ad1ac23bce2c9b4
parentdirmngr: Align the gnutls use of CAs with the ntbtls code. (diff)
downloadgnupg-72e04b03b1a7aee5521156c6d549ca10a81ac529.tar.gz
gnupg-72e04b03b1a7aee5521156c6d549ca10a81ac529.zip
dirmngr: Fix the pool keyserver case for a single host in the pool.
* dirmngr/ks-engine-hkp.c (map_host): Set R_HOSTNAME also for localhost and if there is no pool.
-rw-r--r--dirmngr/ks-engine-hkp.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/dirmngr/ks-engine-hkp.c b/dirmngr/ks-engine-hkp.c
index fef752cd3..14859c7e7 100644
--- a/dirmngr/ks-engine-hkp.c
+++ b/dirmngr/ks-engine-hkp.c
@@ -476,7 +476,20 @@ map_host (ctrl_t ctrl, const char *name, const char *srvtag, int force_reselect,
if (!name || !*name)
{
*r_host = xtrystrdup ("localhost");
- return *r_host? 0 : gpg_error_from_syserror ();
+ if (!*r_host)
+ return gpg_error_from_syserror ();
+ if (r_httphost)
+ {
+ *r_httphost = xtrystrdup (*r_host);
+ if (!*r_httphost)
+ {
+ err = gpg_error_from_syserror ();
+ xfree (*r_host);
+ *r_host = NULL;
+ return err;
+ }
+ }
+ return 0;
}
/* See whether the host is in our table. */
@@ -648,6 +661,12 @@ map_host (ctrl_t ctrl, const char *name, const char *srvtag, int force_reselect,
}
free_dns_addrinfo (aibuf);
}
+ else if (r_httphost)
+ {
+ *r_httphost = xtrystrdup (hi->name);
+ if (!*r_httphost)
+ return gpg_error_from_syserror ();
+ }
if (hi->dead)
{