1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-22 10:19:57 +01:00

dirmngr: Add FLUSHCRLs command

Summary:
* dirmngr/crlcache.c (crl_cache_flush): Also deinit the cache.
* dirmngr/server.c (hlp_flushcrls, cmd_flushcrls): New.
(register_commands): Add FLUSHCRLS.

--
This allows it to flush the CRL cache of a running dirmngr
server. This can be useful to debug / analyze CRL issues.

GnuPG-Bug-Id: T3967

Differential Revision: https://dev.gnupg.org/D469

Signed-off-by: Andre Heinecke <aheinecke@intevation.de>
This commit is contained in:
Andre Heinecke 2018-10-24 10:40:42 +02:00
parent 10157b4179
commit 00321a025f
No known key found for this signature in database
GPG Key ID: 2978E9D40CBABA5C
2 changed files with 18 additions and 1 deletions

View File

@ -1250,13 +1250,15 @@ crl_cache_deinit (void)
} }
/* Delete the cache from disk. Return 0 on success.*/ /* Delete the cache from disk and memory. Return 0 on success.*/
int int
crl_cache_flush (void) crl_cache_flush (void)
{ {
int rc; int rc;
crl_cache_deinit ();
rc = cleanup_cache_dir (0)? -1 : 0; rc = cleanup_cache_dir (0)? -1 : 0;
crl_cache_init ();
return rc; return rc;
} }

View File

@ -2689,6 +2689,20 @@ cmd_reloaddirmngr (assuan_context_t ctx, char *line)
} }
static const char hlp_flushcrls[] =
"FLUSHCRLS\n"
"\n"
"Remove all cached CRLs from memory and\n"
"the file system.";
static gpg_error_t
cmd_flushcrls (assuan_context_t ctx, char *line)
{
(void)line;
return leave_cmd (ctx, crl_cache_flush () ? GPG_ERR_GENERAL : 0);
}
/* Tell the assuan library about our commands. */ /* Tell the assuan library about our commands. */
static int static int
@ -2719,6 +2733,7 @@ register_commands (assuan_context_t ctx)
{ "LOADSWDB", cmd_loadswdb, hlp_loadswdb }, { "LOADSWDB", cmd_loadswdb, hlp_loadswdb },
{ "KILLDIRMNGR",cmd_killdirmngr,hlp_killdirmngr }, { "KILLDIRMNGR",cmd_killdirmngr,hlp_killdirmngr },
{ "RELOADDIRMNGR",cmd_reloaddirmngr,hlp_reloaddirmngr }, { "RELOADDIRMNGR",cmd_reloaddirmngr,hlp_reloaddirmngr },
{ "FLUSHCRLS", cmd_flushcrls, hlp_flushcrls },
{ NULL, NULL } { NULL, NULL }
}; };
int i, j, rc; int i, j, rc;