diff options
Diffstat (limited to 'tests/fdpassing.c')
-rw-r--r-- | tests/fdpassing.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/tests/fdpassing.c b/tests/fdpassing.c index 0e23ffc..6323a41 100644 --- a/tests/fdpassing.c +++ b/tests/fdpassing.c @@ -25,10 +25,8 @@ #include <string.h> #include <assert.h> #include <sys/stat.h> -#include <sys/socket.h> #include <unistd.h> #include <errno.h> -#include <sys/wait.h> /* Used by main driver. */ #include "../src/assuan.h" #include "common.h" @@ -62,11 +60,11 @@ cmd_echo (assuan_context_t ctx, char *line) nbytes = 0; while ( (c=getc (fp)) != -1) { - putc (c, stdout); + putc (c, stderr); nbytes++; } - fflush (stdout); - log_info ("done printing %d bytes to stdout\n", nbytes); + fflush (stderr); + log_info ("done printing %d bytes to stderr\n", nbytes); fclose (fp); return 0; @@ -104,14 +102,18 @@ server (void) { int rc; assuan_context_t ctx; + assuan_fd_t filedes[2]; log_info ("server started\n"); + filedes[0] = _get_osfhandle (0); + filedes[1] = _get_osfhandle (1); + rc = assuan_new (&ctx); if (rc) log_fatal ("assuan_new failed: %s\n", gpg_strerror (rc)); - rc = assuan_init_pipe_server (ctx, NULL); + rc = assuan_init_pipe_server (ctx, filedes); if (rc) log_fatal ("assuan_init_pipe_server failed: %s\n", gpg_strerror (rc)); @@ -119,7 +121,7 @@ server (void) if (rc) log_fatal ("register_commands failed: %s\n", gpg_strerror(rc)); - assuan_set_log_stream (ctx, stderr); + // assuan_set_log_stream (ctx, stderr); for (;;) { @@ -278,11 +280,11 @@ main (int argc, char **argv) { const char *loc; - no_close_fds[0] = 2; + no_close_fds[0] = _get_osfhandle (fileno (stderr)); no_close_fds[1] = -1; if (with_exec) { - arglist[0] = "fdpassing"; + arglist[0] = "fdpassing.exe"; arglist[1] = "--server"; arglist[2] = verbose? "--verbose":NULL; arglist[3] = NULL; @@ -292,7 +294,9 @@ main (int argc, char **argv) if (err) log_fatal ("assuan_new failed: %s\n", gpg_strerror (err)); - err = assuan_pipe_connect (ctx, with_exec? "./fdpassing":NULL, + assuan_set_log_stream (ctx, stderr); + + err = assuan_pipe_connect (ctx, with_exec? "./fdpassing.exe":NULL, with_exec ? arglist : &loc, no_close_fds, NULL, NULL, 1); if (err) |