Changes for W32
authorWerner Koch <wk@gnupg.org>
Thu, 12 Jul 2007 15:25:20 +0000 (15:25 +0000)
committerWerner Koch <wk@gnupg.org>
Thu, 12 Jul 2007 15:25:20 +0000 (15:25 +0000)
assuan/ChangeLog
assuan/assuan-io.c
autogen.sh
doc/ChangeLog
doc/gpgme.texi
gpgme/ChangeLog
gpgme/gpgme.h
gpgme/version.c
tests/ChangeLog
tests/gpgsm/t-support.h

index 0df0a79..9bad1ee 100644 (file)
@@ -1,3 +1,8 @@
+2007-07-12  Werner Koch  <wk@g10code.com>
+
+       * assuan-io.c (_assuan_simple_write, _assuan_simple_read): Map
+       ERROR_BROKEN_PIPE to EPIPE.
+
 2007-07-08  Marcus Brinkmann  <marcus@g10code.de>
 
        * assuan-defs.h (struct assuan_context_s): Have partial peercred
 2007-07-08  Marcus Brinkmann  <marcus@g10code.de>
 
        * assuan-defs.h (struct assuan_context_s): Have partial peercred
index 6d89579..066231f 100644 (file)
@@ -65,7 +65,11 @@ _assuan_simple_read (assuan_context_t ctx, void *buffer, size_t size)
       n = ReadFile ((HANDLE)ctx->inbound.fd, buffer, size, &nread, NULL);
       if (!n)
         {
       n = ReadFile ((HANDLE)ctx->inbound.fd, buffer, size, &nread, NULL);
       if (!n)
         {
-          errno = EIO; /* FIXME:  We should have a proper mapping.  */
+          switch (GetLastError())
+            {
+            case ERROR_BROKEN_PIPE: errno = EPIPE; break;
+            default: errno = EIO; 
+            }
           n = -1;
         }
       else
           n = -1;
         }
       else
@@ -94,7 +98,12 @@ _assuan_simple_write (assuan_context_t ctx, const void *buffer, size_t size)
       n = WriteFile ((HANDLE)ctx->outbound.fd, buffer, size, &nwrite, NULL);
       if (!n)
         {
       n = WriteFile ((HANDLE)ctx->outbound.fd, buffer, size, &nwrite, NULL);
       if (!n)
         {
-          errno = EIO; /* FIXME:  We should have a proper mapping.  */
+          switch (GetLastError ())
+            {
+            case ERROR_BROKEN_PIPE: 
+            case ERROR_NO_DATA: errno = EPIPE; break;
+            default:            errno = EIO;   break;
+            }
           n = -1;
         }
       else
           n = -1;
         }
       else
index fc61c5f..ffe46b4 100755 (executable)
@@ -80,7 +80,7 @@ if test "$1" = "--build-w32"; then
 
     ./configure --enable-maintainer-mode  --prefix=${w32root}  \
             --host=i586-mingw32msvc --build=${build} \
 
     ./configure --enable-maintainer-mode  --prefix=${w32root}  \
             --host=i586-mingw32msvc --build=${build} \
-            --with-gpg-error-prefix=${w32root} --without-gpgsm \
+            --with-gpg-error-prefix=${w32root} \
             --enable-shared --enable-static --enable-w32-glib \
             PKG_CONFIG_LIBDIR="$w32root/lib/pkgconfig"
 
             --enable-shared --enable-static --enable-w32-glib \
             PKG_CONFIG_LIBDIR="$w32root/lib/pkgconfig"
 
index 2b5f500..1109437 100644 (file)
@@ -1,3 +1,8 @@
+2007-07-12  Werner Koch  <wk@g10code.com>
+
+       * gpgme.texi (Library Version Check): Add remark that the socket
+       layer will get initialized.
+
 2007-06-05  Marcus Brinkmann  <marcus@g10code.de>
 
        * gpgme.texi (Advanced Key Editing): New section.
 2007-06-05  Marcus Brinkmann  <marcus@g10code.de>
 
        * gpgme.texi (Advanced Key Editing): New section.
index 5c56046..61db9cf 100644 (file)
@@ -572,7 +572,11 @@ can verify that the version number is higher than a certain required
 version number.  In either case, the function initializes some
 sub-systems, and for this reason alone it must be invoked early in
 your program, before you make use of the other functions in
 version number.  In either case, the function initializes some
 sub-systems, and for this reason alone it must be invoked early in
 your program, before you make use of the other functions in
-@acronym{GPGME}.
+@acronym{GPGME}. 
+
+As a side effect for W32 based systems, the socket layer will get
+initialized.
+
 
 If @var{required_version} is @code{NULL}, the function returns a
 pointer to a statically allocated string containing the version number
 
 If @var{required_version} is @code{NULL}, the function returns a
 pointer to a statically allocated string containing the version number
index d2b021d..43e4145 100644 (file)
@@ -1,3 +1,8 @@
+2007-07-12  Werner Koch  <wk@g10code.com>
+
+       * version.c (do_subsystem_inits) [W32]: Make sure that the socket
+       system has been started.
+
 2007-07-10  Marcus Brinkmann  <marcus@g10code.de>
 
        * priv-io.h (_gpgme_io_dup): New prototype.
 2007-07-10  Marcus Brinkmann  <marcus@g10code.de>
 
        * priv-io.h (_gpgme_io_dup): New prototype.
index 41e7491..666041b 100644 (file)
@@ -72,7 +72,7 @@ extern "C" {
    AM_PATH_GPGME macro) check that this header matches the installed
    library.  Warning: Do not edit the next line.  configure will do
    that for you!  */
    AM_PATH_GPGME macro) check that this header matches the installed
    library.  Warning: Do not edit the next line.  configure will do
    that for you!  */
-#define GPGME_VERSION "1.1.5-cvs1219"
+#define GPGME_VERSION "1.1.5-cvs1228"
 
 
 \f
 
 
 \f
index a54c0d4..ad893d8 100644 (file)
@@ -25,6 +25,9 @@
 #include <string.h>
 #include <limits.h>
 #include <ctype.h>
 #include <string.h>
 #include <limits.h>
 #include <ctype.h>
+#ifdef HAVE_W32_SYSTEM
+#include <winsock2.h>
+#endif
 
 #include "gpgme.h"
 #include "priv-io.h"
 
 #include "gpgme.h"
 #include "priv-io.h"
@@ -41,7 +44,7 @@
    must be done once at startup.  We can not guarantee this using a
    lock, though, because the semaphore subsystem needs to be
    initialized itself before it can be used.  So we expect that the
    must be done once at startup.  We can not guarantee this using a
    lock, though, because the semaphore subsystem needs to be
    initialized itself before it can be used.  So we expect that the
-   user performs the necessary syncrhonization.  */
+   user performs the necessary synchronization.  */
 static void
 do_subsystem_inits (void)
 {
 static void
 do_subsystem_inits (void)
 {
@@ -54,7 +57,15 @@ do_subsystem_inits (void)
   _gpgme_io_subsystem_init ();
 #ifdef HAVE_ASSUAN_H
   assuan_set_assuan_err_source (GPG_ERR_SOURCE_GPGME);
   _gpgme_io_subsystem_init ();
 #ifdef HAVE_ASSUAN_H
   assuan_set_assuan_err_source (GPG_ERR_SOURCE_GPGME);
-#endif
+#ifdef HAVE_W32_SYSTEM
+  /* We need to make sure that the sockets are initialized.  */
+  {
+    WSADATA wsadat;
+    
+    WSAStartup (0x202, &wsadat);
+  }
+#endif /*HAVE_W32_SYSTEM*/
+#endif /*HAVE_ASSUAN_H*/
 
   done = 1;
 }
 
   done = 1;
 }
index f83207f..48a41c2 100644 (file)
@@ -1,3 +1,8 @@
+2007-07-12  Werner Koch  <wk@g10code.com>
+
+       * gpgsm/t-support.h (init_gpgme) [W32]: Do not init the locales as
+       the constants are not available.
+
 2007-02-26  Werner Koch  <wk@g10code.com>
 
        * gpg/t-verify.c (double_plaintext_sig): New.
 2007-02-26  Werner Koch  <wk@g10code.com>
 
        * gpg/t-verify.c (double_plaintext_sig): New.
index 671317f..07f00c3 100644 (file)
@@ -91,9 +91,11 @@ init_gpgme (gpgme_protocol_t proto)
   gpgme_error_t err;
 
   gpgme_check_version (NULL);
   gpgme_error_t err;
 
   gpgme_check_version (NULL);
+#ifndef HAVE_W32_SYSTEM
   setlocale (LC_ALL, "");
   gpgme_set_locale (NULL, LC_CTYPE, setlocale (LC_CTYPE, NULL));
   gpgme_set_locale (NULL, LC_MESSAGES, setlocale (LC_MESSAGES, NULL));
   setlocale (LC_ALL, "");
   gpgme_set_locale (NULL, LC_CTYPE, setlocale (LC_CTYPE, NULL));
   gpgme_set_locale (NULL, LC_MESSAGES, setlocale (LC_MESSAGES, NULL));
+#endif
 
   err = gpgme_engine_check_version (proto);
   fail_if_err (err);
 
   err = gpgme_engine_check_version (proto);
   fail_if_err (err);