aboutsummaryrefslogtreecommitdiffstats
path: root/dirmngr
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2017-01-11 15:43:30 +0000
committerWerner Koch <[email protected]>2017-01-11 15:43:30 +0000
commit76fb2febde10da8237bbe7613830b51af2a45139 (patch)
tree84f15e92622ab4b67b8a71a68fe77d5c6acb62df /dirmngr
parentdirmngr: Fix Tor access for v6 addresses. (diff)
downloadgnupg-76fb2febde10da8237bbe7613830b51af2a45139.tar.gz
gnupg-76fb2febde10da8237bbe7613830b51af2a45139.zip
dirmngr: Mark hosts dead on ENETDOWN.
* dirmngr/ks-engine-hkp.c (handle_send_request_error): Take care of ENETDOWN. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'dirmngr')
-rw-r--r--dirmngr/ks-engine-hkp.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/dirmngr/ks-engine-hkp.c b/dirmngr/ks-engine-hkp.c
index 5f6e5f45d..ddeba45ae 100644
--- a/dirmngr/ks-engine-hkp.c
+++ b/dirmngr/ks-engine-hkp.c
@@ -1132,10 +1132,14 @@ handle_send_request_error (gpg_error_t err, const char *request,
{
int retry = 0;
+ /* Fixme: Should we disable all hosts of a protocol family if a
+ * request for an address of that familiy returned ENETDOWN? */
+
switch (gpg_err_code (err))
{
case GPG_ERR_ECONNREFUSED:
case GPG_ERR_ENETUNREACH:
+ case GPG_ERR_ENETDOWN:
case GPG_ERR_UNKNOWN_HOST:
case GPG_ERR_NETWORK:
if (mark_host_dead (request) && *tries_left)
@@ -1148,6 +1152,7 @@ handle_send_request_error (gpg_error_t err, const char *request,
log_info ("selecting a different host due to a timeout\n");
retry = 1;
}
+ break;
default:
break;