summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2018-01-31 16:57:19 +0100
committerWerner Koch <wk@gnupg.org>2018-02-22 20:46:51 +0100
commitecfc4db3a2f8bc2652ba4ac4de5ca1cd13bfcbec (patch)
tree57f258f665a96b71961f4bcedaa67e2c0830c2c2
parentdoc: Fix recently introduced typo in gpgsm.texi. (diff)
downloadgnupg2-ecfc4db3a2f8bc2652ba4ac4de5ca1cd13bfcbec.tar.xz
gnupg2-ecfc4db3a2f8bc2652ba4ac4de5ca1cd13bfcbec.zip
dirmngr: Handle failures related to missing IPv6 gracefully
* dirmngr/ks-engine-hkp.c (handle_send_request_error): Handle two more error codes. -- Handle the two possible connect failures related to missing IPv6 support gracefully by marking the host dead and retrying with another one. If IPv6 is disabled via procfs, connect() will return EADDRNOTAVAIL. If IPv6 is not compiled into the kernel, it will return EAFNOSUPPORT. This makes it possible to use dual-stack hkp servers on hosts not having IPv6 without random connection failures. GnuPG-bug-id: 3331 -- The above description seems to be for Linux, so it is possible that other systems might behave different. However, it is worth to try this patch. Signed-off-by: Werner Koch <wk@gnupg.org>
-rw-r--r--dirmngr/ks-engine-hkp.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/dirmngr/ks-engine-hkp.c b/dirmngr/ks-engine-hkp.c
index 4a0b08f4f..a9bb93666 100644
--- a/dirmngr/ks-engine-hkp.c
+++ b/dirmngr/ks-engine-hkp.c
@@ -1353,6 +1353,8 @@ handle_send_request_error (ctrl_t ctrl, gpg_error_t err, const char *request,
case GPG_ERR_UNKNOWN_HOST:
case GPG_ERR_NETWORK:
case GPG_ERR_EIO: /* Sometimes used by estream cookie functions. */
+ case GPG_ERR_EADDRNOTAVAIL: /* e.g. when IPv6 is disabled */
+ case GPG_ERR_EAFNOSUPPORT: /* e.g. when IPv6 is not compiled in */
if (mark_host_dead (request) && *tries_left)
retry = 1;
break;