aboutsummaryrefslogtreecommitdiffstats
path: root/tests/fdpassing.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/fdpassing.c')
-rw-r--r--tests/fdpassing.c24
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)