dirmngr: On SIGHUP mark all keyservers alive.

* dirmngr/ks-engine-hkp.c (ks_hkp_reload): New.
* dirmngr/dirmngr.c (dirmngr_sighup_action): Call it.

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2017-01-23 13:07:54 +01:00
parent d4c0187dd9
commit 3ca3da8fc4
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
3 changed files with 25 additions and 0 deletions

View File

@ -1702,6 +1702,7 @@ dirmngr_sighup_action (void)
cert_cache_init ();
crl_cache_init ();
reload_dns_stuff (0);
ks_hkp_reload ();
}

View File

@ -194,6 +194,7 @@ const char* dirmngr_get_current_socket_name (void);
/*-- Various housekeeping functions. --*/
void ks_hkp_housekeeping (time_t curtime);
void ks_hkp_reload (void);
/*-- server.c --*/

View File

@ -1003,6 +1003,29 @@ ks_hkp_housekeeping (time_t curtime)
}
/* Reload (SIGHUP) action for this module. We mark all host alive
* even those which have been manually shot. */
void
ks_hkp_reload (void)
{
int idx, count;
hostinfo_t hi;
for (idx=count=0; idx < hosttable_size; idx++)
{
hi = hosttable[idx];
if (!hi)
continue;
if (!hi->dead)
continue;
hi->dead = 0;
count++;
}
if (count)
log_info ("number of resurrected hosts: %d", count);
}
/* Send an HTTP request. On success returns an estream object at
R_FP. HOSTPORTSTR is only used for diagnostics. If HTTPHOST is
not NULL it will be used as HTTP "Host" header. If POST_CB is not