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].
|
||||
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)
|
||||
------------------------------------------------
|
||||
|
@ -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>
|
||||
|
||||
* i18n.c (i18n_switchto_utf8, i18n_switchback)
|
||||
|
@ -396,7 +396,16 @@ http_wait_response (http_t hd)
|
||||
else
|
||||
#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);
|
||||
#endif
|
||||
if (hd->sock == -1)
|
||||
return gpg_error_from_syserror ();
|
||||
}
|
||||
@ -1490,7 +1499,7 @@ start_server ()
|
||||
}
|
||||
#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. */
|
||||
static int
|
||||
connect_server (const char *server, unsigned short port,
|
||||
@ -1765,7 +1774,12 @@ cookie_read (void *cookie, void *buffer, size_t size)
|
||||
{
|
||||
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);
|
||||
#endif
|
||||
}
|
||||
while (nread == -1 && errno == EINTR);
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ i18n_switchto_utf8 (void)
|
||||
{
|
||||
#ifdef USE_SIMPLE_GETTEXT
|
||||
gettext_select_utf8 (1);
|
||||
#elif define(ENABLE_NLS)
|
||||
#elif defined(ENABLE_NLS)
|
||||
char *orig_codeset = bind_textdomain_codeset (PACKAGE_GT, NULL);
|
||||
# ifdef HAVE_LANGINFO_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>
|
||||
|
||||
* gpgkeys_curl.c (main), gpgkeys_hkp.c (main): Make sure all
|
||||
|
@ -89,6 +89,10 @@ curl_easy_init(void)
|
||||
{
|
||||
CURL *handle;
|
||||
|
||||
#ifdef HAVE_W32_SYSTEM
|
||||
w32_init_sockets ();
|
||||
#endif
|
||||
|
||||
handle=calloc(1,sizeof(CURL));
|
||||
if(handle)
|
||||
handle->errors=stderr;
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include <getopt.h>
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#ifdef HAVE_W32_SYSTEM
|
||||
#include <windows.h>
|
||||
#else
|
||||
#include <unistd.h>
|
||||
@ -46,7 +46,7 @@
|
||||
#include "ksutil.h"
|
||||
#include "iobuf.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#ifdef HAVE_W32_SYSTEM
|
||||
#define sock_close(a) closesocket(a)
|
||||
#else
|
||||
#define sock_close(a) close(a)
|
||||
@ -58,40 +58,6 @@ extern int optind;
|
||||
static FILE *input,*output,*console;
|
||||
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
|
||||
error. */
|
||||
@ -100,12 +66,12 @@ connect_server (const char *server, unsigned short port)
|
||||
{
|
||||
int sock = -1;
|
||||
|
||||
#ifdef _WIN32
|
||||
#ifdef HAVE_W32_SYSTEM
|
||||
struct hostent *hp;
|
||||
struct sockaddr_in addr;
|
||||
unsigned long l;
|
||||
|
||||
init_sockets ();
|
||||
w32_init_sockets ();
|
||||
|
||||
memset (&addr, 0, sizeof addr);
|
||||
addr.sin_family = AF_INET;
|
||||
@ -201,7 +167,7 @@ write_server (int sock, const char *data, size_t length)
|
||||
{
|
||||
int nwritten;
|
||||
|
||||
#ifdef _WIN32
|
||||
#ifdef HAVE_W32_SYSTEM
|
||||
nwritten = send (sock, data, nleft, 0);
|
||||
if ( nwritten == SOCKET_ERROR )
|
||||
{
|
||||
|
@ -35,6 +35,10 @@
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef HAVE_W32_SYSTEM
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_LIBCURL
|
||||
#include <curl/curl.h>
|
||||
#else
|
||||
@ -83,6 +87,22 @@ register_timeout(void)
|
||||
|
||||
#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 *
|
||||
init_ks_options(void)
|
||||
{
|
||||
|
@ -79,6 +79,11 @@ struct keylist
|
||||
unsigned int set_timeout(unsigned int seconds);
|
||||
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_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.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user