diff options
author | Marcus Brinkmann <mb@g10code.com> | 2001-12-19 01:18:11 +0100 |
---|---|---|
committer | Marcus Brinkmann <mb@g10code.com> | 2001-12-19 01:18:11 +0100 |
commit | 84b6169de761ddd41be04d4cb8b9fa79fd73cdce (patch) | |
tree | 47e1c3b9548bb50c2d6e8dbef3e37d55c310c7a8 /assuan | |
parent | * Makefile.am (AM_CPPFLAGS): Add flags for libksba (diff) | |
download | gnupg2-84b6169de761ddd41be04d4cb8b9fa79fd73cdce.tar.xz gnupg2-84b6169de761ddd41be04d4cb8b9fa79fd73cdce.zip |
assuan/
2001-12-14 Marcus Brinkmann <marcus@g10code.de>
* assuan-buffer.c (_assuan_read_line): New variable ATTICLEN, use
it to save the length of the attic line.
Rediddle the code a bit to make it more clear what happens.
agent/
2001-12-19 Marcus Brinkmann <marcus@g10code.de>
* query.c (start_pinentry): Add new argument to assuan_pipe_connect.
sm/
2001-12-19 Marcus Brinkmann <marcus@g10code.de>
* call-agent.c (start_agent): Add new argument to assuan_pipe_connect.
Diffstat (limited to 'assuan')
-rw-r--r-- | assuan/ChangeLog | 6 | ||||
-rw-r--r-- | assuan/assuan-connect.c | 17 |
2 files changed, 20 insertions, 3 deletions
diff --git a/assuan/ChangeLog b/assuan/ChangeLog index f85e22042..911fa983c 100644 --- a/assuan/ChangeLog +++ b/assuan/ChangeLog @@ -1,3 +1,9 @@ +2001-12-14 Marcus Brinkmann <marcus@g10code.de> + + * assuan-buffer.c (_assuan_read_line): New variable ATTICLEN, use + it to save the length of the attic line. + Rediddle the code a bit to make it more clear what happens. + 2001-12-14 Werner Koch <wk@gnupg.org> * assuan-listen.c (assuan_close_input_fd): New. diff --git a/assuan/assuan-connect.c b/assuan/assuan-connect.c index 683c7f060..613b54a13 100644 --- a/assuan/assuan-connect.c +++ b/assuan/assuan-connect.c @@ -71,9 +71,11 @@ writen ( int fd, const char *buffer, size_t length ) /* Connect to a server over a pipe, creating the assuan context and returning it in CTX. The server filename is NAME, the argument - vector in ARGV. */ + vector in ARGV. FD_CHILD_LIST is a -1 terminated list of file + descriptors not to close in the child. */ AssuanError -assuan_pipe_connect (ASSUAN_CONTEXT *ctx, const char *name, char *const argv[]) +assuan_pipe_connect (ASSUAN_CONTEXT *ctx, const char *name, char *const argv[], + int *fd_child_list) { static int fixed_signals = 0; AssuanError err; @@ -149,7 +151,16 @@ assuan_pipe_connect (ASSUAN_CONTEXT *ctx, const char *name, char *const argv[]) n = MAX_OPEN_FDS; for (i=0; i < n; i++) { - if (i != fileno (stderr) + int *fdp = fd_child_list; + + if (fdp) + { + while (*fdp != -1 && *fdp != i) + fdp++; + } + + if (!(fdp && *fdp != -1) + && i != fileno (stderr) #ifdef HAVE_JNLIB_LOGGING && i != log_fd #endif |