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 0df0a7946c70e85b6c283735d6a21148bdcc6528..9bad1ee2969925e6e36f05e3eecdd83e056ab051 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
index 6d895791fea90677f250711f047f78409c1d1b28..066231fbd3e0c3bad9a3f997bd4c2d5631b25cd2 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)
         {
-          errno = EIO; /* FIXME:  We should have a proper mapping.  */
+          switch (GetLastError())
+            {
+            case ERROR_BROKEN_PIPE: errno = EPIPE; break;
+            default: errno = EIO; 
+            }
           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)
         {
-          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
index fc61c5f3fb8b55d5424f44fffd3e8e69ace242a4..ffe46b4d189ca9ff282f7a8db7452eb8ddc5a41a 100755 (executable)
@@ -80,7 +80,7 @@ if test "$1" = "--build-w32"; then
 
     ./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"
 
index 2b5f50014c28f9cdba09a86e28318738369cfe55..1109437b199d52778cb9cf506bf3083c5ddaace9 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.
index 5c56046dc2443f33637a5f8b1b8f7c05aa6dab4f..61db9cf861663bebec7b7a1657ae8cf3869a42e9 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
-@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
index d2b021d63684c986dd27bb25c330a9d01c908fe2..43e414517f3f6cc47fcb5f5fc45a2b998e833623 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.
index 41e749145f345618c67e766ef64b88c21d21773c..666041b4d2f72683a798bb957dd94cbb4c6738b6 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!  */
-#define GPGME_VERSION "1.1.5-cvs1219"
+#define GPGME_VERSION "1.1.5-cvs1228"
 
 
 \f
index a54c0d4daa2487d2cbb44d1d66427ef290f25320..ad893d848ac4039669a192ea9f2b62e2b8045d97 100644 (file)
@@ -25,6 +25,9 @@
 #include <string.h>
 #include <limits.h>
 #include <ctype.h>
+#ifdef HAVE_W32_SYSTEM
+#include <winsock2.h>
+#endif
 
 #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
-   user performs the necessary syncrhonization.  */
+   user performs the necessary synchronization.  */
 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);
-#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;
 }
index f83207fd6771376e93670c932a8d526a9c254518..48a41c24448ae992207604dd2504fbcb72594a3d 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.
index 671317ff9b87eb00e717a91f65456c4c7ba10736..07f00c387cf65003ab28d1d82c0e8292e8797d82 100644 (file)
@@ -91,9 +91,11 @@ init_gpgme (gpgme_protocol_t proto)
   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));
+#endif
 
   err = gpgme_engine_check_version (proto);
   fail_if_err (err);