[Pkg-gnupg-commit] [libassuan] 130/437: * autogen.sh: Add Option --build-w32.

Eric Dorland eric at moszumanska.debian.org
Fri May 22 05:33:33 UTC 2015


This is an automated email from the git hooks/post-receive script.

eric pushed a commit to branch master
in repository libassuan.

commit 4ccc9cadfe442f0ecd05f6e3b0fb11560861f70a
Author: Werner Koch <wk at gnupg.org>
Date:   Sat Dec 18 17:12:17 2004 +0000

    * autogen.sh: Add Option --build-w32.
    
    * assuan-logging.c (_assuan_w32_strerror): New.
    * assuan-defs.h (w32_strerror): new.
    * assuan-pipe-connect.c (assuan_pipe_connect2, fix_signals):
    Factored signal code out to new function.
    (build_w32_commandline, create_inheritable_pipe): New.  Taken
    from gnupg 1.9.
    (assuan_pipe_connect2) [W32]: Implemented for W32.
---
 ChangeLog                   |   4 +
 autogen.sh                  |  59 +++++++-
 build-w32.sh                |  10 --
 src/ChangeLog               |  15 ++
 src/assuan-defs.h           |   7 +-
 src/assuan-logging.c        |  24 +++-
 src/assuan-pipe-connect.c   | 324 +++++++++++++++++++++++++++++++++++++++++---
 src/assuan-socket-connect.c |  18 ++-
 src/assuan-util.c           |   3 +-
 9 files changed, 424 insertions(+), 40 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 5c5125d..ce2cff7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2004-12-18  Werner Koch  <wk at g10code.com>
+
+	* autogen.sh: Add Option --build-w32.
+
 2004-12-07  Werner Koch  <wk at g10code.com>
 
 	* configure.ac: Define HAVE_W32_SYSTEM and HAVE_DOSISH_SYSTEM.
diff --git a/autogen.sh b/autogen.sh
index 3e4c96c..fca588e 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -29,6 +29,63 @@ check_version () {
 }
 
 
+DIE=no
+
+
+# ***** W32 build script *******
+# Used to cross-compile for Windows.
+if test "$1" = "--build-w32"; then
+    tmp=`dirname $0`
+    tsdir=`cd "$tmp"; pwd`
+    shift
+    if [ ! -f $tsdir/config.guess ]; then
+        echo "$tsdir/config.guess not found" >&2
+        exit 1
+    fi
+    build=`$tsdir/config.guess`
+
+    [ -z "$w32root" ] && w32root="$HOME/w32root"
+    echo "Using $w32root as standard install directory" >&2
+    
+    # See whether we have the Debian cross compiler package or the
+    # old mingw32/cpd system
+    if i586-mingw32msvc-gcc --version >/dev/null 2>&1 ; then
+        host=i586-mingw32msvc
+        crossbindir=/usr/$host/bin
+    else
+       host=i386--mingw32
+       if ! mingw32 --version >/dev/null; then
+          echo "We need at least version 0.3 of MingW32/CPD" >&2
+          exit 1
+       fi
+       crossbindir=`mingw32 --install-dir`/bin
+       # Old autoconf version required us to setup the environment
+       # with the proper tool names.
+       CC=`mingw32 --get-path gcc`
+       CPP=`mingw32 --get-path cpp`
+       AR=`mingw32 --get-path ar`
+       RANLIB=`mingw32 --get-path ranlib`
+       export CC CPP AR RANLIB 
+    fi
+   
+    if [ -f "$tsdir/config.log" ]; then
+        if ! head $tsdir/config.log | grep "$host" >/dev/null; then
+            echo "Pease run a 'make distclean' first" >&2
+            exit 1
+        fi
+    fi
+
+    ./configure --enable-maintainer-mode  --prefix=${w32root}  \
+            --host=i586-mingw32msvc --build=${build} \
+            --disable-shared    
+
+    exit $?
+fi
+# ***** end W32 build script *******
+
+
+
+
 # Grep the required versions from configure.ac
 autoconf_vers=`sed -n '/^AC_PREREQ(/ { 
 s/^.*(\(.*\))/\1/p
@@ -65,8 +122,6 @@ ACLOCAL=${AUTOMAKE_PREFIX}${ACLOCAL:-aclocal}${AUTOMAKE_SUFFIX}
 #GETTEXT=${GETTEXT_PREFIX}${GETTEXT:-gettext}${GETTEXT_SUFFIX}
 #MSGMERGE=${GETTEXT_PREFIX}${MSGMERGE:-msgmerge}${GETTEXT_SUFFIX}
 
-DIE=no
-
 
 if check_version $AUTOCONF $autoconf_vers_num $autoconf_vers ; then
     check_version $AUTOHEADER $autoconf_vers_num $autoconf_vers autoconf
diff --git a/build-w32.sh b/build-w32.sh
deleted file mode 100644
index 264d157..0000000
--- a/build-w32.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-[ -z "$w32root" ] && w32root="$HOME/w32root"
-
- ./configure --enable-maintainer-mode --prefix=${w32root}  \
-             --host=i586-mingw32msvc --build=`./config.guess` 
-
- 
-	     
- 
diff --git a/src/ChangeLog b/src/ChangeLog
index f46d346..8ebb394 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,18 @@
+2004-12-18  Werner Koch  <wk at g10code.com>
+
+	* assuan-logging.c (_assuan_w32_strerror): New. 
+	* assuan-defs.h (w32_strerror): new.
+	* assuan-pipe-connect.c (assuan_pipe_connect2, fix_signals):
+	Factored signal code out to new function.
+	(build_w32_commandline, create_inheritable_pipe): New.  Taken
+	from gnupg 1.9.
+	(assuan_pipe_connect2) [W32]: Implemented for W32.
+
+2004-12-14  Werner Koch  <wk at g10code.com>
+
+	* assuan-socket-connect.c (assuan_socket_connect): Always allow
+	NAME to start with a froward slash.
+
 2004-12-07  Werner Koch  <wk at g10code.com>
 
 	* assuan-logging.c, assuan-io.c: Include config.h
diff --git a/src/assuan-defs.h b/src/assuan-defs.h
index 6e23771..0cb5400 100644
--- a/src/assuan-defs.h
+++ b/src/assuan-defs.h
@@ -207,6 +207,12 @@ void  _assuan_free (void *p);
 void _assuan_log_print_buffer (FILE *fp, const void *buffer, size_t  length);
 void _assuan_log_sanitized_string (const char *string);
 
+#ifdef HAVE_W32_SYSTEM
+const char *_assuan_w32_strerror (int ec);
+#define w32_strerror(e) _assuan_w32_strerror ((e))
+#endif /*HAVE_W32_SYSTEM*/
+
+
 /*-- assuan-logging.c --*/
 void _assuan_set_default_log_stream (FILE *fp);
 
@@ -216,7 +222,6 @@ void _assuan_log_printf (const char *format, ...)
 #endif
      ;
 
-
 /*-- assuan-io.c --*/
 ssize_t _assuan_simple_read (ASSUAN_CONTEXT ctx, void *buffer, size_t size);
 ssize_t _assuan_simple_write (ASSUAN_CONTEXT ctx, const void *buffer,
diff --git a/src/assuan-logging.c b/src/assuan-logging.c
index d677664..7c65d57 100644
--- a/src/assuan-logging.c
+++ b/src/assuan-logging.c
@@ -21,11 +21,14 @@
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
-
-#include "assuan-defs.h"
 #include <stdio.h>
 #include <string.h>
 #include <stdarg.h>
+#ifdef HAVE_W32_SYSTEM
+#include <windows.h>
+#endif /*HAVE_W32_SYSTEM*/
+
+#include "assuan-defs.h"
 
 static char prefix_buffer[80];
 static FILE *_assuan_log;
@@ -90,3 +93,20 @@ _assuan_log_printf (const char *format, ...)
   vfprintf (fp, format, arg_ptr );
   va_end (arg_ptr);
 }
+
+
+
+#ifdef HAVE_W32_SYSTEM
+const char *
+_assuan_w32_strerror (int ec)
+{
+  static char strerr[256];
+  
+  if (ec == -1)
+    ec = (int)GetLastError ();
+  FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM, NULL, ec,
+                 MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
+                 strerr, sizeof (strerr)-1, NULL);
+  return strerr;    
+}
+#endif /*HAVE_W32_SYSTEM*/
diff --git a/src/assuan-pipe-connect.c b/src/assuan-pipe-connect.c
index db23648..4deb83d 100644
--- a/src/assuan-pipe-connect.c
+++ b/src/assuan-pipe-connect.c
@@ -44,6 +44,44 @@
 #define MAX_OPEN_FDS 20
 #endif
 
+#ifdef HAVE_W32_SYSTEM
+/* We assume that a HANDLE can be represented by an int which should
+   be true for all i386 systems (HANDLE is defined as void *) and
+   these are the only systems for which Windows is available.  Further
+   we assume that -1 denotes an invalid handle.  */
+#define fd_to_handle(a)  ((HANDLE)(a))
+#define handle_to_fd(a)  ((int)(a))
+#define pid_to_handle(a) ((HANDLE)(a))
+#define handle_to_pid(a) ((int)(a))
+#endif /*HAVE_W32_SYSTEM*/
+
+
+/* This should be called to make sure that SIGPIPE gets ignored.  */
+static void
+fix_signals (void)
+{
+#ifndef HAVE_DOSISH_SYSTEM  /* No SIGPIPE for these systems.  */
+  static int fixed_signals;
+
+  if (!fixed_signals)
+    { 
+      struct sigaction act;
+        
+      sigaction (SIGPIPE, NULL, &act);
+      if (act.sa_handler == SIG_DFL)
+	{
+	  act.sa_handler = SIG_IGN;
+	  sigemptyset (&act.sa_mask);
+	  act.sa_flags = 0;
+	  sigaction (SIGPIPE, &act, NULL);
+        }
+      fixed_signals = 1;
+      /* FIXME: This is not MT safe */
+    }
+#endif /*HAVE_DOSISH_SYSTEM*/
+}
+
+
 #ifndef HAVE_W32_SYSTEM
 static int
 writen (int fd, const char *buffer, size_t length)
@@ -65,7 +103,6 @@ writen (int fd, const char *buffer, size_t length)
 }
 #endif
 
-#ifndef HAVE_W32_SYSTEM
 static int
 do_finish (assuan_context_t ctx)
 {
@@ -81,20 +118,122 @@ do_finish (assuan_context_t ctx)
     }
   if (ctx->pid != -1 && ctx->pid)
     {
+#ifdef HAVE_W32_SYSTEM
+      /* fixme: We need to check whether -1 is an invalid HANDLE and
+         what the heck a pid of Zero means. */
+#else /*!HAVE_W32_SYSTEM*/
+      /* FIXME: Does it really make sense to use the waitpid?  What
+         about using a double fork and forget abnout it. */
       waitpid (ctx->pid, NULL, 0);  /* FIXME Check return value.  */
       ctx->pid = -1;
+#endif /*!HAVE_W32_SYSTEM*/
     }
   return 0;
 }
-#endif
 
-#ifndef HAVE_W32_SYSTEM
 static void
 do_deinit (assuan_context_t ctx)
 {
   do_finish (ctx);
 }
-#endif
+
+
+#ifdef HAVE_W32_SYSTEM
+/* Build a command line for use with W32's CreateProcess.  On success
+   CMDLINE gets the address of a newly allocated string.  */
+static int
+build_w32_commandline (const char *pgmname, char * const *argv, char **cmdline)
+{
+  int i, n;
+  const char *s;
+  char *buf, *p;
+
+  *cmdline = NULL;
+  n = strlen (pgmname);
+  for (i=0; (s=argv[i]); i++)
+    {
+      n += strlen (s) + 1 + 2;  /* (1 space, 2 quoting */
+      for (; *s; s++)
+        if (*s == '\"')
+          n++;  /* Need to double inner quotes.  */
+    }
+  n++;
+
+  buf = p = xtrymalloc (n);
+  if (!buf)
+    return -1;
+
+  /* fixme: PGMNAME may not contain spaces etc. */
+  p = stpcpy (p, pgmname);
+  for (i=0; argv[i]; i++) 
+    {
+      if (!*argv[i]) /* Empty string. */
+        p = stpcpy (p, " \"\"");
+      else if (strpbrk (argv[i], " \t\n\v\f\""))
+        {
+          p = stpcpy (p, " \"");
+          for (s=argv[i]; *s; s++)
+            {
+              *p++ = *s;
+              if (*s == '\"')
+                *p++ = *s;
+            }
+          *p++ = '\"';
+          *p = 0;
+        }
+      else
+        p = stpcpy (stpcpy (p, " "), argv[i]);
+    }
+
+  *cmdline= buf;
+  return 0;
+}
+#endif /*HAVE_W32_SYSTEM*/
+
+
+#ifdef HAVE_W32_SYSTEM
+/* Create pipe where one end end is inheritable.  */
+static int
+create_inheritable_pipe (int filedes[2], int for_write)
+{
+  HANDLE r, w, h;
+  SECURITY_ATTRIBUTES sec_attr;
+
+  memset (&sec_attr, 0, sizeof sec_attr );
+  sec_attr.nLength = sizeof sec_attr;
+  sec_attr.bInheritHandle = FALSE;
+    
+  if (!CreatePipe (&r, &w, &sec_attr, 0))
+    {
+      _assuan_log_printf ("CreatePipe failed: %s\n", w32_strerror (-1));
+      return -1;
+    }
+
+  if (!DuplicateHandle (GetCurrentProcess(), for_write? r : w,
+                        GetCurrentProcess(), &h, 0,
+                        TRUE, DUPLICATE_SAME_ACCESS ))
+    {
+      _assuan_log_printf ("DuplicateHandle failed: %s\n", w32_strerror (-1));
+      CloseHandle (r);
+      CloseHandle (w);
+      return -1;
+    }
+  if (for_write)
+    {
+      CloseHandle (r);
+      r = h;
+    }
+  else
+    {
+      CloseHandle (w);
+      w = h;
+    }
+
+  filedes[0] = handle_to_fd (r);
+  filedes[1] = handle_to_fd (w);
+  return 0;
+}
+#endif /*HAVE_W32_SYSTEM*/
 
 
 /* Connect to a server over a pipe, creating the assuan context and
@@ -112,32 +251,172 @@ assuan_pipe_connect2 (assuan_context_t *ctx,
                       void *atforkvalue)
 {
 #ifdef HAVE_W32_SYSTEM
-  return ASSUAN_Not_Implemented;
-#else
-  static int fixed_signals = 0;
   assuan_error_t err;
   int rp[2];
   int wp[2];
   char mypidstr[50];
+  char *cmdline;
+  SECURITY_ATTRIBUTES sec_attr;
+  PROCESS_INFORMATION pi = 
+    {
+      NULL,      /* Returns process handle.  */
+      0,         /* Returns primary thread handle.  */
+      0,         /* Returns pid.  */
+      0          /* Returns tid.  */
+    };
+  STARTUPINFO si;
+  int fd, *fdp;
+  HANDLE nullfd = INVALID_HANDLE_VALUE;
 
   if (!ctx || !name || !argv || !argv[0])
     return ASSUAN_Invalid_Value;
 
-  if (!fixed_signals)
-    { 
-      struct sigaction act;
-        
-      sigaction (SIGPIPE, NULL, &act);
-      if (act.sa_handler == SIG_DFL)
-	{
-	  act.sa_handler = SIG_IGN;
-	  sigemptyset (&act.sa_mask);
-	  act.sa_flags = 0;
-	  sigaction (SIGPIPE, &act, NULL);
+  fix_signals ();
+
+  sprintf (mypidstr, "%lu", (unsigned long)getpid ());
+
+  /* Build the command line.  */
+  if (build_w32_commandline (name, argv, &cmdline))
+    return ASSUAN_Out_Of_Core;
+
+  /* Create thew two pipes. */
+  if (create_inheritable_pipe (rp, 0))
+    {
+      xfree (cmdline);
+      return ASSUAN_General_Error;
+    }
+  
+  if (create_inheritable_pipe (wp, 1))
+    {
+      CloseHandle (fd_to_handle (rp[0]));
+      CloseHandle (fd_to_handle (rp[1]));
+      xfree (cmdline);
+      return ASSUAN_General_Error;
+    }
+
+  
+  err = _assuan_new_context (ctx);
+  if (err)
+    {
+      CloseHandle (fd_to_handle (rp[0]));
+      CloseHandle (fd_to_handle (rp[1]));
+      CloseHandle (fd_to_handle (wp[0]));
+      CloseHandle (fd_to_handle (wp[1]));
+      xfree (cmdline);
+      return ASSUAN_General_Error;
+    }
+
+  (*ctx)->pipe_mode = 1;
+  (*ctx)->inbound.fd  = rp[0];  /* Our inbound is read end of read pipe. */
+  (*ctx)->outbound.fd = wp[1];  /* Our outbound is write end of write pipe. */
+  (*ctx)->deinit_handler = do_deinit;
+  (*ctx)->finish_handler = do_finish;
+
+
+  /* fixme: Actually we should set the "_assuan_pipe_connect_pid" env
+     variable.  However this requires us to write a full environment
+     handler, because the strings are expected in sorted order.  The
+     suggestion given in the MS Reference Library, to save the old
+     value, changeit, create proces and restore it, is not thread
+     safe.  */
+
+  /* Start the process.  */
+  memset (&sec_attr, 0, sizeof sec_attr );
+  sec_attr.nLength = sizeof sec_attr;
+  sec_attr.bInheritHandle = FALSE;
+  
+  memset (&si, 0, sizeof si);
+  si.cb = sizeof (si);
+  si.dwFlags = STARTF_USESTDHANDLES;
+  si.hStdInput  = fd_to_handle (wp[0]);
+  si.hStdOutput = fd_to_handle (rp[1]);
+
+  /* Dup stderr to /dev/null unless it is in the list of FDs to be
+     passed to the child. */
+  fd = fileno (stderr);
+  fdp = fd_child_list;
+  if (fdp)
+    {
+      for (; *fdp != -1 && *fdp != fd; fdp++)
+        ;
+    }
+  if (!fdp || *fdp == -1)
+    {
+      nullfd = CreateFile ("nul", GENERIC_WRITE,
+                       FILE_SHARE_READ | FILE_SHARE_WRITE,
+                       NULL, OPEN_EXISTING, 0, NULL);
+      if (nullfd == INVALID_HANDLE_VALUE)
+        {
+          _assuan_log_printf ("can't open `/dev/nul': %s\n",
+                              w32_strerror (-1));
+          CloseHandle (fd_to_handle (rp[0]));
+          CloseHandle (fd_to_handle (rp[1]));
+          CloseHandle (fd_to_handle (wp[0]));
+          CloseHandle (fd_to_handle (wp[1]));
+          xfree (cmdline);
+          _assuan_release_context (*ctx); 
+          return -1;
         }
-      fixed_signals = 1;
-      /* FIXME: This is not MT safe */
+      si.hStdError = nullfd;
     }
+  else
+    si.hStdError = fd_to_handle (_get_osfhandle (fd));
+
+
+  /* Note: We inherit all handles flagged as inheritable.  This seems
+     to be a security flaw but there seems to be no way of selecting
+     handles to inherit. */
+  _assuan_log_printf ("CreateProcess, path=`%s' cmdline=`%s'",
+                      name, cmdline);
+  if (!CreateProcess (name,                 /* Program to start.  */
+                      cmdline,              /* Command line arguments.  */
+                      &sec_attr,            /* Process security attributes.  */
+                      &sec_attr,            /* Thread security attributes.  */
+                      TRUE,                 /* Inherit handles.  */
+                      (CREATE_DEFAULT_ERROR_MODE
+                       | GetPriorityClass (GetCurrentProcess ()))
+                       ,                    /* Creation flags.  */
+                      NULL,                 /* Environment.  */
+                      NULL,                 /* Use current drive/directory.  */
+                      &si,                  /* Startup information. */
+                      &pi                   /* Returns process information.  */
+                      ))
+    {
+      _assuan_log_printf ("CreateProcess failed: %s\n", w32_strerror (-1));
+      CloseHandle (fd_to_handle (rp[0]));
+      CloseHandle (fd_to_handle (rp[1]));
+      CloseHandle (fd_to_handle (wp[0]));
+      CloseHandle (fd_to_handle (wp[1]));
+      if (nullfd != INVALID_HANDLE_VALUE)
+        CloseHandle (nullfd);
+      xfree (cmdline);
+      _assuan_release_context (*ctx); 
+      return ASSUAN_General_Error;
+    }
+  xfree (cmdline);
+  cmdline = NULL;
+  if (nullfd != INVALID_HANDLE_VALUE)
+    {
+      CloseHandle (nullfd);
+      nullfd = INVALID_HANDLE_VALUE;
+    }
+
+  CloseHandle (fd_to_handle (rp[1]));
+  CloseHandle (fd_to_handle (wp[0]));
+
+  CloseHandle (pi.hThread); 
+  (*ctx)->pid = handle_to_pid (pi.hProcess);
+
+#else /*!HAVE_W32_SYSTEM*/
+  assuan_error_t err;
+  int rp[2];
+  int wp[2];
+  char mypidstr[50];
+
+  if (!ctx || !name || !argv || !argv[0])
+    return ASSUAN_Invalid_Value;
+
+  fix_signals ();
 
   sprintf (mypidstr, "%lu", (unsigned long)getpid ());
 
@@ -246,7 +525,7 @@ assuan_pipe_connect2 (assuan_context_t *ctx,
 	    {
 	      while (*fdp != -1 && *fdp != i)
 		fdp++;
-	    }
+`	    }
 
           if (!(fdp && *fdp != -1))
             close(i);
@@ -272,6 +551,8 @@ assuan_pipe_connect2 (assuan_context_t *ctx,
   close (rp[1]);
   close (wp[0]);
 
+#endif /*!HAVE_W32_SYSTEM*/
+
   /* initial handshake */
   {
     int okay, off;
@@ -295,7 +576,6 @@ assuan_pipe_connect2 (assuan_context_t *ctx,
     }
 
   return err;
-#endif
 }
 
 
diff --git a/src/assuan-socket-connect.c b/src/assuan-socket-connect.c
index 1902f13..0a60133 100644
--- a/src/assuan-socket-connect.c
+++ b/src/assuan-socket-connect.c
@@ -86,13 +86,17 @@ assuan_socket_connect (ASSUAN_CONTEXT *r_ctx,
   struct sockaddr_un srvr_addr;
   size_t len;
 
+#ifdef HAVE_W32_SYSTEM
+  _assuan_log_printf ("%s: name =`%s'\n", __FUNCTION__, name);
+#endif
+
   if (!r_ctx || !name)
     return ASSUAN_Invalid_Value;
   *r_ctx = NULL;
 
-  /* we require that the name starts with a slash, so that we can
+  /* We require that the name starts with a slash, so that we can
      alter reuse this function for other socket types */
-  if (*name != DIRSEP_C)
+  if (*name != DIRSEP_C && *name != '/')
     return ASSUAN_Invalid_Value;
   if (strlen (name)+1 >= sizeof srvr_addr.sun_path)
     return ASSUAN_Invalid_Value;
@@ -102,6 +106,9 @@ assuan_socket_connect (ASSUAN_CONTEXT *r_ctx,
       return err;
   ctx->deinit_handler = do_deinit;
   ctx->finish_handler = do_finish;
+#ifdef HAVE_W32_SYSTEM
+  _assuan_log_printf ("%s: got context\n", __FUNCTION__ );
+#endif
 
   fd = _assuan_sock_new (PF_LOCAL, SOCK_STREAM, 0);
   if (fd == -1)
@@ -117,6 +124,10 @@ assuan_socket_connect (ASSUAN_CONTEXT *r_ctx,
   srvr_addr.sun_path[sizeof (srvr_addr.sun_path) - 1] = 0;
   len = SUN_LEN (&srvr_addr);
 
+#ifdef HAVE_W32_SYSTEM
+  _assuan_log_printf ("%s: about to connect\n", __FUNCTION__ );
+#endif
+
   if (_assuan_sock_connect (fd, (struct sockaddr *) &srvr_addr, len) == -1)
     {
       _assuan_log_printf ("can't connect to `%s': %s\n",
@@ -125,6 +136,9 @@ assuan_socket_connect (ASSUAN_CONTEXT *r_ctx,
       _assuan_close (fd);
       return ASSUAN_Connect_Failed;
     }
+#ifdef HAVE_W32_SYSTEM
+  _assuan_log_printf ("%s: connected\n", __FUNCTION__ );
+#endif
 
   ctx->inbound.fd = fd;
   ctx->outbound.fd = fd;
diff --git a/src/assuan-util.c b/src/assuan-util.c
index b300b43..43fa91e 100644
--- a/src/assuan-util.c
+++ b/src/assuan-util.c
@@ -1,5 +1,5 @@
 /* assuan-util.c - Utility functions for Assuan 
- *	Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+ * Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
  *
  * This file is part of Assuan.
  *
@@ -218,3 +218,4 @@ _assuan_log_sanitized_string (const char *string)
   funlockfile (fp);
 #endif
 }
+

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/libassuan.git



More information about the Pkg-gnupg-commit mailing list