assuan/
authorMarcus Brinkmann <mb@g10code.com>
Wed, 19 Dec 2001 00:18:11 +0000 (00:18 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Wed, 19 Dec 2001 00:18:11 +0000 (00:18 +0000)
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.

agent/ChangeLog
agent/query.c
assuan/ChangeLog
assuan/assuan-connect.c
sm/ChangeLog
sm/call-agent.c

index f34849a..288953d 100644 (file)
@@ -1,3 +1,7 @@
+2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
+
+       * query.c (start_pinentry): Add new argument to assuan_pipe_connect.
+
 2001-12-18  Werner Koch  <wk@gnupg.org>
 
        * Makefile.am: Use LIBGCRYPT macros
index 98a5b26..9195f0a 100644 (file)
@@ -84,7 +84,7 @@ start_pinentry (void)
   argv[1] = NULL;
 
   /* connect to the pinentry and perform initial handshaking */
-  rc = assuan_pipe_connect (&ctx, opt.pinentry_program, (char**)argv);
+  rc = assuan_pipe_connect (&ctx, opt.pinentry_program, (char**)argv, 0);
   if (rc)
     {
       log_error ("can't connect to the PIN entry module: %s\n",
index f85e220..911fa98 100644 (file)
@@ -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.
index 683c7f0..613b54a 100644 (file)
@@ -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
index 654b4e9..e9b8bfa 100644 (file)
@@ -1,3 +1,7 @@
+2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
+
+       * call-agent.c (start_agent): Add new argument to assuan_pipe_connect.
+
 2001-12-18  Werner Koch  <wk@gnupg.org>
 
        * verify.c (print_integer_sexp): Renamed from print_integer and
index 6952e22..bbabe83 100644 (file)
@@ -163,7 +163,7 @@ start_agent (void)
       argv[2] = NULL;
 
       /* connect to the agent and perform initial handshaking */
-      rc = assuan_pipe_connect (&ctx, opt.agent_program, (char**)argv);
+      rc = assuan_pipe_connect (&ctx, opt.agent_program, (char**)argv, 0);
       if (rc)
         {
           log_error ("can't connect to the agent: %s\n", assuan_strerror (rc));