diff options
author | NIIBE Yutaka <[email protected]> | 2023-05-30 04:25:00 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2023-05-30 04:25:00 +0000 |
commit | f032935ffaf9c91fd0144da6a93dea831af62f4b (patch) | |
tree | c74a19174313c1bb146d8e5410c69500e4ce2763 /agent/call-pinentry.c | |
parent | agent,dirmngr: Shutdown fix for supervised mode. (diff) | |
download | gnupg-gniibe/t6487.tar.gz gnupg-gniibe/t6487.zip |
agent: Use new libassuan API for pipe server process.gniibe/t6487
* agent/call-daemon.c (struct wait_child_thread_parm_s): Remove PID
field.
(wait_child_thread): Don't touch the internals but call
assuan_pipe_wait_server_termination.
(daemon_start): Don't use PID.
(agent_daemon_dump_state): Don't use PID.
* agent/call-pinentry.c (watch_sock): Call assuan_pipe_kill_server.
(agent_popup_message_stop): Likewise.
--
Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to '')
-rw-r--r-- | agent/call-pinentry.c | 37 |
1 files changed, 4 insertions, 33 deletions
diff --git a/agent/call-pinentry.c b/agent/call-pinentry.c index 656d5f623..88b284bfe 100644 --- a/agent/call-pinentry.c +++ b/agent/call-pinentry.c @@ -1287,8 +1287,6 @@ build_cmd_setdesc (char *line, size_t linelen, const char *desc) static void * watch_sock (void *arg) { - pid_t pid = assuan_get_pid (entry_ctx); - while (1) { int err; @@ -1316,17 +1314,7 @@ watch_sock (void *arg) break; } - if (pid == (pid_t)(-1)) - ; /* No pid available can't send a kill. */ -#ifdef HAVE_W32_SYSTEM - /* Older versions of assuan set PID to 0 on Windows to indicate an - invalid value. */ - else if (pid != (pid_t) INVALID_HANDLE_VALUE && pid != 0) - TerminateProcess ((HANDLE)pid, 1); -#else - else if (pid > 0) - kill (pid, SIGINT); -#endif + assuan_pipe_kill_server (entry_ctx); return NULL; } @@ -2121,7 +2109,6 @@ void agent_popup_message_stop (ctrl_t ctrl) { int rc; - pid_t pid; (void)ctrl; @@ -2134,26 +2121,10 @@ agent_popup_message_stop (ctrl_t ctrl) return; } - pid = assuan_get_pid (entry_ctx); - if (pid == (pid_t)(-1)) - ; /* No pid available can't send a kill. */ - else if (popup_finished) + if (popup_finished) ; /* Already finished and ready for joining. */ -#ifdef HAVE_W32_SYSTEM - /* Older versions of assuan set PID to 0 on Windows to indicate an - invalid value. */ - else if (pid != (pid_t) INVALID_HANDLE_VALUE - && pid != 0) - { - HANDLE process = (HANDLE) pid; - - /* Arbitrary error code. */ - TerminateProcess (process, 1); - } -#else - else if (pid > 0) - kill (pid, SIGINT); -#endif + else + assuan_pipe_kill_server (entry_ctx); /* Now wait for the thread to terminate. */ rc = npth_join (popup_tid, NULL); |