aboutsummaryrefslogtreecommitdiffstats
path: root/common/asshelp.c
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2019-07-24 06:32:13 +0000
committerNIIBE Yutaka <[email protected]>2019-07-24 06:32:13 +0000
commit044379772fc5b0f39c6a36809722e702808b6ec3 (patch)
tree8395cd398f6e58e7ee6c4eaf8b83e0165b31bd56 /common/asshelp.c
parentcommon: Use gnupg_spawn_process_fd to invoke gpg-agent/dirmngr. (diff)
downloadgnupg-044379772fc5b0f39c6a36809722e702808b6ec3.tar.gz
gnupg-044379772fc5b0f39c6a36809722e702808b6ec3.zip
common: Fix the previous commit.
* common/asshelp.c [HAVE_W32_SYSTEM] (start_new_gpg_agent): Use gnupg_spawn_process_detached. (start_new_dirmngr): Likewise. Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to 'common/asshelp.c')
-rw-r--r--common/asshelp.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/common/asshelp.c b/common/asshelp.c
index 600774330..88d18478d 100644
--- a/common/asshelp.c
+++ b/common/asshelp.c
@@ -492,6 +492,10 @@ start_new_gpg_agent (assuan_context_t *r_ctx,
if (!(err = lock_spawning (&lock, gnupg_homedir (), "agent", verbose))
&& assuan_socket_connect (ctx, sockname, 0, 0))
{
+#ifdef HAVE_W32_SYSTEM
+ err = gnupg_spawn_process_detached (program? program : agent_program,
+ argv, NULL);
+#else
pid_t pid;
err = gnupg_spawn_process_fd (program? program : agent_program,
@@ -499,6 +503,7 @@ start_new_gpg_agent (assuan_context_t *r_ctx,
if (!err)
err = gnupg_wait_process (program? program : agent_program,
pid, 1, NULL);
+#endif
if (err)
log_error ("failed to start agent '%s': %s\n",
agent_program, gpg_strerror (err));
@@ -632,12 +637,16 @@ start_new_dirmngr (assuan_context_t *r_ctx,
if (!(err = lock_spawning (&lock, gnupg_homedir (), "dirmngr", verbose))
&& assuan_socket_connect (ctx, sockname, 0, 0))
{
+#ifdef HAVE_W32_SYSTEM
+ err = gnupg_spawn_process_detached (dirmngr_program, argv, NULL);
+#else
pid_t pid;
err = gnupg_spawn_process_fd (dirmngr_program, argv,
-1, -1, -1, &pid);
if (!err)
err = gnupg_wait_process (dirmngr_program, pid, 1, NULL);
+#endif
if (err)
log_error ("failed to start the dirmngr '%s': %s\n",
dirmngr_program, gpg_strerror (err));