aboutsummaryrefslogtreecommitdiffstats
path: root/sm/server.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2024-10-02 14:44:04 +0000
committerWerner Koch <[email protected]>2024-10-02 14:45:09 +0000
commit241971fac0fc52efc87ed5753a01d18b0672d900 (patch)
tree0811e77ec581ab80aa5cb7942a3253ca56eb2420 /sm/server.c
parentgpgsm: Use a cache for ISTRUSTED queries. (diff)
downloadgnupg-241971fac0fc52efc87ed5753a01d18b0672d900.tar.gz
gnupg-241971fac0fc52efc87ed5753a01d18b0672d900.zip
gpgsm: Implement a cache for the KEYINFO queries.
* sm/gpgsm.h (struct keyinfo_cache_item_s): New. (struct server_control_s): Add keyinfo_cache and keyinfo_cache_valid. * sm/call-agent.c (keyinfo_cache_disabled): New flag. (release_a_keyinfo_cache): New. (gpgsm_flush_keyinfo_cache): New. (struct keyinfo_status_parm_s): New. (keyinfo_status_cb): Implement a fill mode. (gpgsm_agent_keyinfo): Implement a cache. * sm/server.c (reset_notify): Flush the cache. * sm/gpgsm.c (gpgsm_deinit_default_ctrl): Ditto. -- In almost all cases we have just a few private keys in the agent and thus it is better to fetch them early. This does not work in a restricted connection but we take care and disable the cache in this case. This cache gives a a minor speed up. GnuPG-bug-id: 7308
Diffstat (limited to 'sm/server.c')
-rw-r--r--sm/server.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sm/server.c b/sm/server.c
index f00b70d38..cb3fae24d 100644
--- a/sm/server.c
+++ b/sm/server.c
@@ -327,6 +327,7 @@ reset_notify (assuan_context_t ctx, char *line)
(void) line;
+ gpgsm_flush_keyinfo_cache (ctrl);
gpgsm_release_certlist (ctrl->server_local->recplist);
gpgsm_release_certlist (ctrl->server_local->signerlist);
ctrl->server_local->recplist = NULL;