mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-03 12:11:33 +01:00
W32 related keyserver fixes.
This commit is contained in:
parent
6e17d90e09
commit
08a612f26e
2
NEWS
2
NEWS
@ -7,6 +7,8 @@ Noteworthy changes in version 2.0.10 (unreleased)
|
|||||||
* New mechanisms "local" and "nodefault" for --auto-key-locate [gpg].
|
* New mechanisms "local" and "nodefault" for --auto-key-locate [gpg].
|
||||||
Fixed a few problems with this option.
|
Fixed a few problems with this option.
|
||||||
|
|
||||||
|
* [W32] Initialize the socket subsystem for all keyserver helpers.
|
||||||
|
|
||||||
|
|
||||||
Noteworthy changes in version 2.0.9 (2008-03-26)
|
Noteworthy changes in version 2.0.9 (2008-03-26)
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2008-04-21 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* http.c (http_wait_response) [W32]: Use DuplicateHandle because
|
||||||
|
it is a socket.
|
||||||
|
(cookie_read) [W32]: Use recv in place of read.
|
||||||
|
|
||||||
2008-04-08 Werner Koch <wk@g10code.com>
|
2008-04-08 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* i18n.c (i18n_switchto_utf8, i18n_switchback)
|
* i18n.c (i18n_switchto_utf8, i18n_switchback)
|
||||||
|
@ -396,7 +396,16 @@ http_wait_response (http_t hd)
|
|||||||
else
|
else
|
||||||
#endif /*HTTP_USE_ESTREAM*/
|
#endif /*HTTP_USE_ESTREAM*/
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_W32_SYSTEM
|
||||||
|
HANDLE handle = (HANDLE)hd->sock;
|
||||||
|
if (!DuplicateHandle (GetCurrentProcess(), handle,
|
||||||
|
GetCurrentProcess(), &handle, 0,
|
||||||
|
TRUE, DUPLICATE_SAME_ACCESS ))
|
||||||
|
return gpg_error_from_syserror ();
|
||||||
|
hd->sock = (int)handle;
|
||||||
|
#else
|
||||||
hd->sock = dup (hd->sock);
|
hd->sock = dup (hd->sock);
|
||||||
|
#endif
|
||||||
if (hd->sock == -1)
|
if (hd->sock == -1)
|
||||||
return gpg_error_from_syserror ();
|
return gpg_error_from_syserror ();
|
||||||
}
|
}
|
||||||
@ -1490,7 +1499,7 @@ start_server ()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Actually connect to a server. Returns the file descripto or -1 on
|
/* Actually connect to a server. Returns the file descriptor or -1 on
|
||||||
error. ERRNO is set on error. */
|
error. ERRNO is set on error. */
|
||||||
static int
|
static int
|
||||||
connect_server (const char *server, unsigned short port,
|
connect_server (const char *server, unsigned short port,
|
||||||
@ -1765,7 +1774,12 @@ cookie_read (void *cookie, void *buffer, size_t size)
|
|||||||
{
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_W32_SYSTEM
|
||||||
|
/* Under Windows we need to use recv for a socket. */
|
||||||
|
nread = recv (c->fd, buffer, size, 0);
|
||||||
|
#else
|
||||||
nread = read (c->fd, buffer, size);
|
nread = read (c->fd, buffer, size);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
while (nread == -1 && errno == EINTR);
|
while (nread == -1 && errno == EINTR);
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@ i18n_switchto_utf8 (void)
|
|||||||
{
|
{
|
||||||
#ifdef USE_SIMPLE_GETTEXT
|
#ifdef USE_SIMPLE_GETTEXT
|
||||||
gettext_select_utf8 (1);
|
gettext_select_utf8 (1);
|
||||||
#elif define(ENABLE_NLS)
|
#elif defined(ENABLE_NLS)
|
||||||
char *orig_codeset = bind_textdomain_codeset (PACKAGE_GT, NULL);
|
char *orig_codeset = bind_textdomain_codeset (PACKAGE_GT, NULL);
|
||||||
# ifdef HAVE_LANGINFO_CODESET
|
# ifdef HAVE_LANGINFO_CODESET
|
||||||
if (!orig_codeset)
|
if (!orig_codeset)
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
2008-04-21 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* ksutil.c (w32_init_sockets) [HAVE_W32_SYSTEM]: New.
|
||||||
|
* curl-shim.c (curl_easy_init) [HAVE_W32_SYSTEM]: Call it.
|
||||||
|
* gpgkeys_finger.c: s/_WIN32/HAVE_W32_SYSTEM/.
|
||||||
|
(init_sockets): Remove.
|
||||||
|
(connect_server) [HAVE_W32_SYSTEM]: Call new function.
|
||||||
|
|
||||||
2008-04-14 David Shaw <dshaw@jabberwocky.com>
|
2008-04-14 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
* gpgkeys_curl.c (main), gpgkeys_hkp.c (main): Make sure all
|
* gpgkeys_curl.c (main), gpgkeys_hkp.c (main): Make sure all
|
||||||
|
@ -89,6 +89,10 @@ curl_easy_init(void)
|
|||||||
{
|
{
|
||||||
CURL *handle;
|
CURL *handle;
|
||||||
|
|
||||||
|
#ifdef HAVE_W32_SYSTEM
|
||||||
|
w32_init_sockets ();
|
||||||
|
#endif
|
||||||
|
|
||||||
handle=calloc(1,sizeof(CURL));
|
handle=calloc(1,sizeof(CURL));
|
||||||
if(handle)
|
if(handle)
|
||||||
handle->errors=stderr;
|
handle->errors=stderr;
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef HAVE_W32_SYSTEM
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#else
|
#else
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
@ -46,7 +46,7 @@
|
|||||||
#include "ksutil.h"
|
#include "ksutil.h"
|
||||||
#include "iobuf.h"
|
#include "iobuf.h"
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef HAVE_W32_SYSTEM
|
||||||
#define sock_close(a) closesocket(a)
|
#define sock_close(a) closesocket(a)
|
||||||
#else
|
#else
|
||||||
#define sock_close(a) close(a)
|
#define sock_close(a) close(a)
|
||||||
@ -58,40 +58,6 @@ extern int optind;
|
|||||||
static FILE *input,*output,*console;
|
static FILE *input,*output,*console;
|
||||||
static struct ks_options *opt;
|
static struct ks_options *opt;
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
static void
|
|
||||||
deinit_sockets (void)
|
|
||||||
{
|
|
||||||
WSACleanup();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
init_sockets (void)
|
|
||||||
{
|
|
||||||
static int initialized;
|
|
||||||
static WSADATA wsdata;
|
|
||||||
|
|
||||||
if (initialized)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (WSAStartup (0x0101, &wsdata) )
|
|
||||||
{
|
|
||||||
fprintf (console, "error initializing socket library: ec=%d\n",
|
|
||||||
(int)WSAGetLastError () );
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (wsdata.wVersion < 0x0001)
|
|
||||||
{
|
|
||||||
fprintf (console, "socket library version is %x.%x - but 1.1 needed\n",
|
|
||||||
LOBYTE(wsdata.wVersion), HIBYTE(wsdata.wVersion));
|
|
||||||
WSACleanup();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
atexit (deinit_sockets);
|
|
||||||
initialized = 1;
|
|
||||||
}
|
|
||||||
#endif /*_WIN32*/
|
|
||||||
|
|
||||||
|
|
||||||
/* Connect to SERVER at PORT and return a file descriptor or -1 on
|
/* Connect to SERVER at PORT and return a file descriptor or -1 on
|
||||||
error. */
|
error. */
|
||||||
@ -100,12 +66,12 @@ connect_server (const char *server, unsigned short port)
|
|||||||
{
|
{
|
||||||
int sock = -1;
|
int sock = -1;
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef HAVE_W32_SYSTEM
|
||||||
struct hostent *hp;
|
struct hostent *hp;
|
||||||
struct sockaddr_in addr;
|
struct sockaddr_in addr;
|
||||||
unsigned long l;
|
unsigned long l;
|
||||||
|
|
||||||
init_sockets ();
|
w32_init_sockets ();
|
||||||
|
|
||||||
memset (&addr, 0, sizeof addr);
|
memset (&addr, 0, sizeof addr);
|
||||||
addr.sin_family = AF_INET;
|
addr.sin_family = AF_INET;
|
||||||
@ -201,7 +167,7 @@ write_server (int sock, const char *data, size_t length)
|
|||||||
{
|
{
|
||||||
int nwritten;
|
int nwritten;
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef HAVE_W32_SYSTEM
|
||||||
nwritten = send (sock, data, nleft, 0);
|
nwritten = send (sock, data, nleft, 0);
|
||||||
if ( nwritten == SOCKET_ERROR )
|
if ( nwritten == SOCKET_ERROR )
|
||||||
{
|
{
|
||||||
|
@ -35,6 +35,10 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_W32_SYSTEM
|
||||||
|
#include <windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_LIBCURL
|
#ifdef HAVE_LIBCURL
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
#else
|
#else
|
||||||
@ -83,6 +87,22 @@ register_timeout(void)
|
|||||||
|
|
||||||
#endif /* !HAVE_DOSISH_SYSTEM */
|
#endif /* !HAVE_DOSISH_SYSTEM */
|
||||||
|
|
||||||
|
#ifdef HAVE_W32_SYSTEM
|
||||||
|
void
|
||||||
|
w32_init_sockets (void)
|
||||||
|
{
|
||||||
|
static int initialized;
|
||||||
|
static WSADATA wsdata;
|
||||||
|
|
||||||
|
if (!initialized)
|
||||||
|
{
|
||||||
|
WSAStartup (0x0202, &wsdata);
|
||||||
|
initialized = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif /*HAVE_W32_SYSTEM*/
|
||||||
|
|
||||||
|
|
||||||
struct ks_options *
|
struct ks_options *
|
||||||
init_ks_options(void)
|
init_ks_options(void)
|
||||||
{
|
{
|
||||||
|
@ -79,6 +79,11 @@ struct keylist
|
|||||||
unsigned int set_timeout(unsigned int seconds);
|
unsigned int set_timeout(unsigned int seconds);
|
||||||
int register_timeout(void);
|
int register_timeout(void);
|
||||||
|
|
||||||
|
#ifdef HAVE_W32_SYSTEM
|
||||||
|
void w32_init_sockets (void);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
enum ks_action {KS_UNKNOWN=0,KS_GET,KS_GETNAME,KS_SEND,KS_SEARCH};
|
enum ks_action {KS_UNKNOWN=0,KS_GET,KS_GETNAME,KS_SEND,KS_SEARCH};
|
||||||
|
|
||||||
enum ks_search_type {KS_SEARCH_SUBSTR,KS_SEARCH_EXACT,
|
enum ks_search_type {KS_SEARCH_SUBSTR,KS_SEARCH_EXACT,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
2008-04-21 Werner Koch <wk@g10code.com>
|
2008-04-21 Moritz Schulte <mo@g10code.com> (wk)
|
||||||
|
|
||||||
* app-openpgp.c (verify_a_chv): Make use of the default CHV flag.
|
* app-openpgp.c (verify_a_chv): Make use of the default CHV flag.
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user