mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
agent: Use new libassuan API for pipe server process.
* 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. -- GnuPG-bug-id: 6487 Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
0821ceebfb
commit
ed4050e011
2 changed files with 6 additions and 78 deletions
|
@ -1288,8 +1288,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;
|
||||
|
@ -1317,17 +1315,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;
|
||||
}
|
||||
|
@ -2122,7 +2110,6 @@ void
|
|||
agent_popup_message_stop (ctrl_t ctrl)
|
||||
{
|
||||
int rc;
|
||||
pid_t pid;
|
||||
|
||||
(void)ctrl;
|
||||
|
||||
|
@ -2135,26 +2122,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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue