mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
gpg: First rough implementation of keyboxd access for key lookup.
* g10/Makefile.am: Add nPth flags. * g10/gpg.c: Include npth.h. (gpg_deinit_default_ctrl): Deinit call-keyboxd local data. (main): Init nPth. * g10/keydb-private.h (struct keydb_handle_s): Add field 'kbl' and remove the search result and the assuan context. * g10/call-keyboxd.c (struct keyboxd_local_s): Add more fields. (lock_datastream, unlock_datastream): New. (gpg_keyboxd_deinit_session_data): Adjust for changed data structures. (prepare_data_pipe): New. (open_context): Return kbl instead of an Assuan context. Init mutexes etc. (close_context): Merge into ... (keydb_release): here. Adjust for changed data structures. (datastream_thread): New. (keydb_get_keyblock): Implement datastream stuff. (keydb_search): Ditto. * common/asshelp.c (wait_for_sock): Add arg connect_flags. (start_new_service): Set FDPASSING flag for the keyboxd. -- This code as a lot of rough edges, in particular it relies on a well behaving keyboxd. We need to add code to shutdown the datastream reader thread in case of errors and to properly get it up again. We also need to make really sure that both threads run in lockstep so that the datastream thread is only active while we are sending a command to the keyboxd. We should also see whether we can depend nPth initialization on the --use-keyboxd option to avoid any problems with nPth. And we need to test on Windows. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
6c327b4dd6
commit
ce9906b008
6 changed files with 382 additions and 106 deletions
|
@ -165,6 +165,9 @@ is_in_klist (struct key_item *k, PKT_signature *sig)
|
|||
|
||||
/*-- call-keyboxd.c --*/
|
||||
|
||||
/* Release all open contexts to the keyboxd. */
|
||||
void gpg_keyboxd_deinit_session_data (ctrl_t ctrl);
|
||||
|
||||
/* Create a new database handle. Returns NULL on error, sets ERRNO,
|
||||
* and prints an error diagnostic. */
|
||||
KEYDB_HANDLE keydb_new (ctrl_t ctrl);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue