aboutsummaryrefslogtreecommitdiffstats
path: root/dirmngr/ks-engine-hkp.c
diff options
context:
space:
mode:
Diffstat (limited to 'dirmngr/ks-engine-hkp.c')
-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 653e164ea..b31557b60 100644
--- a/dirmngr/ks-engine-hkp.c
+++ b/dirmngr/ks-engine-hkp.c
@@ -479,7 +479,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. */
@@ -652,6 +665,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)
{