From 1e3dbb15affd6d75a477aa17715d8e5470988c08 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Mon, 16 Nov 2015 18:18:25 +0100 Subject: [PATCH] dirmngr: Fix specifying keyservers by IP address. * dirmngr/ks-engine-hkp.c (map_host): Update the original 'hosttable' entry instead of creating another one. -- Previously, if a keyserver was given using its IP address (e.g. 'hkp://127.0.0.1'), 'map_host' would create two entries in the 'hosttable', one with the name '127.0.0.1', and the second one with the name 'localhost' and 'v4addr' being set to '127.0.0.1'. But the first entry is the one being used for lookups, and since the 'v4' flag is not set, the 'HTTP_FLAG_IGNORE_IPv4' is used when doing the http request, making it fail. Signed-off-by: Justus Winter GnuPG-bug-id: 2012 --- dirmngr/ks-engine-hkp.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dirmngr/ks-engine-hkp.c b/dirmngr/ks-engine-hkp.c index c856d6c95..7bb4ffe39 100644 --- a/dirmngr/ks-engine-hkp.c +++ b/dirmngr/ks-engine-hkp.c @@ -378,7 +378,11 @@ map_host (ctrl_t ctrl, const char *name, int force_reselect, } else { - tmpidx = find_hostinfo (tmphost); + if (!is_pool && is_ip_address (name)) + /* Update the original entry. */ + tmpidx = idx; + else + tmpidx = find_hostinfo (tmphost); log_info ("resolve_dns_addr for '%s': '%s'%s\n", name, tmphost, tmpidx == -1? "" : " [already known]");