Changes for W32

This commit is contained in:
Werner Koch 2007-07-12 15:25:20 +00:00
parent 2d9c4431b8
commit 906da085cf
10 changed files with 53 additions and 7 deletions

View 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> 2007-07-08 Marcus Brinkmann <marcus@g10code.de>
* assuan-defs.h (struct assuan_context_s): Have partial peercred * assuan-defs.h (struct assuan_context_s): Have partial peercred

View 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); n = ReadFile ((HANDLE)ctx->inbound.fd, buffer, size, &nread, NULL);
if (!n) 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; n = -1;
} }
else 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); n = WriteFile ((HANDLE)ctx->outbound.fd, buffer, size, &nwrite, NULL);
if (!n) 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; n = -1;
} }
else else

View File

@ -80,7 +80,7 @@ if test "$1" = "--build-w32"; then
./configure --enable-maintainer-mode --prefix=${w32root} \ ./configure --enable-maintainer-mode --prefix=${w32root} \
--host=i586-mingw32msvc --build=${build} \ --host=i586-mingw32msvc --build=${build} \
--with-gpg-error-prefix=${w32root} --without-gpgsm \ --with-gpg-error-prefix=${w32root} \
--enable-shared --enable-static --enable-w32-glib \ --enable-shared --enable-static --enable-w32-glib \
PKG_CONFIG_LIBDIR="$w32root/lib/pkgconfig" PKG_CONFIG_LIBDIR="$w32root/lib/pkgconfig"

View 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> 2007-06-05 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Advanced Key Editing): New section. * gpgme.texi (Advanced Key Editing): New section.

View File

@ -574,6 +574,10 @@ sub-systems, and for this reason alone it must be invoked early in
your program, before you make use of the other functions 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 If @var{required_version} is @code{NULL}, the function returns a
pointer to a statically allocated string containing the version number pointer to a statically allocated string containing the version number
of the library. of the library.

View 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> 2007-07-10 Marcus Brinkmann <marcus@g10code.de>
* priv-io.h (_gpgme_io_dup): New prototype. * priv-io.h (_gpgme_io_dup): New prototype.

View File

@ -72,7 +72,7 @@ extern "C" {
AM_PATH_GPGME macro) check that this header matches the installed AM_PATH_GPGME macro) check that this header matches the installed
library. Warning: Do not edit the next line. configure will do library. Warning: Do not edit the next line. configure will do
that for you! */ that for you! */
#define GPGME_VERSION "1.1.5-cvs1219" #define GPGME_VERSION "1.1.5-cvs1228"

View File

@ -25,6 +25,9 @@
#include <string.h> #include <string.h>
#include <limits.h> #include <limits.h>
#include <ctype.h> #include <ctype.h>
#ifdef HAVE_W32_SYSTEM
#include <winsock2.h>
#endif
#include "gpgme.h" #include "gpgme.h"
#include "priv-io.h" #include "priv-io.h"
@ -41,7 +44,7 @@
must be done once at startup. We can not guarantee this using a must be done once at startup. We can not guarantee this using a
lock, though, because the semaphore subsystem needs to be lock, though, because the semaphore subsystem needs to be
initialized itself before it can be used. So we expect that the initialized itself before it can be used. So we expect that the
user performs the necessary syncrhonization. */ user performs the necessary synchronization. */
static void static void
do_subsystem_inits (void) do_subsystem_inits (void)
{ {
@ -54,7 +57,15 @@ do_subsystem_inits (void)
_gpgme_io_subsystem_init (); _gpgme_io_subsystem_init ();
#ifdef HAVE_ASSUAN_H #ifdef HAVE_ASSUAN_H
assuan_set_assuan_err_source (GPG_ERR_SOURCE_GPGME); 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;
} }

View 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> 2007-02-26 Werner Koch <wk@g10code.com>
* gpg/t-verify.c (double_plaintext_sig): New. * gpg/t-verify.c (double_plaintext_sig): New.

View File

@ -91,9 +91,11 @@ init_gpgme (gpgme_protocol_t proto)
gpgme_error_t err; gpgme_error_t err;
gpgme_check_version (NULL); gpgme_check_version (NULL);
#ifndef HAVE_W32_SYSTEM
setlocale (LC_ALL, ""); setlocale (LC_ALL, "");
gpgme_set_locale (NULL, LC_CTYPE, setlocale (LC_CTYPE, NULL)); gpgme_set_locale (NULL, LC_CTYPE, setlocale (LC_CTYPE, NULL));
gpgme_set_locale (NULL, LC_MESSAGES, setlocale (LC_MESSAGES, NULL)); gpgme_set_locale (NULL, LC_MESSAGES, setlocale (LC_MESSAGES, NULL));
#endif
err = gpgme_engine_check_version (proto); err = gpgme_engine_check_version (proto);
fail_if_err (err); fail_if_err (err);