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 + + * 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 * 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,