dirmngr: Add a background task framework.
authorWerner Koch <wk@gnupg.org>
Tue, 14 Nov 2017 12:42:18 +0000 (13:42 +0100)
committerWerner Koch <wk@gnupg.org>
Mon, 11 Dec 2017 10:30:45 +0000 (11:30 +0100)
commitf2997adee0455c8c0fa391a853ec1b0c9fc43342
tree806bfaca7f4700c446e5963573f1a81c087c8917
parent7a663c296e687f12ccd9a21d414de780feb4dfcf
dirmngr: Add a background task framework.

* dirmngr/workqueue.c: New.
* dirmngr/Makefile.am (dirmngr_SOURCES): Add new file.
* dirmngr/server.c (server_local_s): New field session_id.
(cmd_wkd_get): Add a task.
(task_check_wkd_support): New stub function.
(cmd_getinfo): New sub-commands "session_id" and "workqueue".
(start_command_handler): Add arg session_id and store it in
SERVER_LOCAL.
(dirmngr_status_helpf): New.
* dirmngr/dirmngr.h (wqtask_t): New type.
* dirmngr/dirmngr.c (main): Pass 0 as session_id to
start_command_handler.
(start_connection_thread): Introduce a session_id and pass it to
start_command_handler.  Run post session tasks.
(housekeeping_thread): Run global workqueue tasks.
--

Signed-off-by: Werner Koch <wk@gnupg.org>
(cherry picked from commit 96a4fbecd1acf946dcde20bef4752c539dae196b)
dirmngr/Makefile.am
dirmngr/dirmngr.c
dirmngr/dirmngr.h
dirmngr/server.c
dirmngr/workqueue.c [new file with mode: 0644]