aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gpgme/ChangeLog5
-rw-r--r--gpgme/engine-gpgsm.c7
2 files changed, 11 insertions, 1 deletions
diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog
index 38846b0d..9da7d708 100644
--- a/gpgme/ChangeLog
+++ b/gpgme/ChangeLog
@@ -1,3 +1,8 @@
+2001-12-19 Marcus Brinkmann <[email protected]>
+
+ * engine-gpgsm.c (_gpgme_gpgsm_new): New variable CHILD_FDS.
+ Fill it with the servers fds, and pass it to assuan_pipe_connect.
+
2001-12-18 Marcus Brinkmann <[email protected]>
* keylist.c (gpgme_op_keylist_end): New function.
diff --git a/gpgme/engine-gpgsm.c b/gpgme/engine-gpgsm.c
index 9ecac07c..1eb1d81c 100644
--- a/gpgme/engine-gpgsm.c
+++ b/gpgme/engine-gpgsm.c
@@ -133,6 +133,7 @@ _gpgme_gpgsm_new (GpgsmObject *r_gpgsm)
GpgsmObject gpgsm;
char *argv[] = { "gpgsm", "--server", NULL };
int fds[2];
+ int child_fds[4];
*r_gpgsm = NULL;
gpgsm = xtrycalloc (1, sizeof *gpgsm);
@@ -179,8 +180,12 @@ _gpgme_gpgsm_new (GpgsmObject *r_gpgsm)
gpgsm->message_fd = fds[1];
gpgsm->message_fd_server = fds[0];
+ child_fds[0] = gpgsm->input_fd_server;
+ child_fds[1] = gpgsm->output_fd_server;
+ child_fds[2] = gpgsm->message_fd_server;
+ child_fds[3] = -1;
err = assuan_pipe_connect (&gpgsm->assuan_ctx,
- _gpgme_get_gpgsm_path (), argv);
+ _gpgme_get_gpgsm_path (), argv, child_fds);
if (!err &&
(_gpgme_io_set_close_notify (gpgsm->input_fd,