2009-04-02 Marcus Brinkmann <marcus@g10code.de>
[gpg4win.git] / patches / gnupg2-2.0.9 / 04-ks-w32init.patch
1 #! /bin/sh
2 cd keyserver && patch -p0 -f $* < $0
3 exit $?
4
5
6 2008-04-21  Werner Koch  <wk@g10code.com>
7
8         * ksutil.c (w32_init_sockets) [HAVE_W32_SYSTEM]: New.
9         * curl-shim.c (curl_easy_init) [HAVE_W32_SYSTEM]: Call it.
10         * gpgkeys_finger.c: s/_WIN32/HAVE_W32_SYSTEM/.
11         (init_sockets): Remove.
12         (connect_server) [HAVE_W32_SYSTEM]: Call new function.  
13
14
15 Index: ksutil.h
16 ===================================================================
17 --- ksutil.h    (revision 4750)
18 +++ ksutil.h    (working copy)
19 @@ -79,6 +79,11 @@
20  unsigned int set_timeout(unsigned int seconds);
21  int register_timeout(void);
22  
23 +#ifdef HAVE_W32_SYSTEM
24 +void w32_init_sockets (void);
25 +#endif
26 +
27 +
28  enum ks_action {KS_UNKNOWN=0,KS_GET,KS_GETNAME,KS_SEND,KS_SEARCH};
29  
30  enum ks_search_type {KS_SEARCH_SUBSTR,KS_SEARCH_EXACT,
31 Index: curl-shim.c
32 ===================================================================
33 --- curl-shim.c (revision 4750)
34 +++ curl-shim.c (working copy)
35 @@ -89,6 +89,10 @@
36  {
37    CURL *handle;
38  
39 +#ifdef HAVE_W32_SYSTEM
40 +  w32_init_sockets ();
41 +#endif
42 +
43    handle=calloc(1,sizeof(CURL));
44    if(handle)
45      handle->errors=stderr;
46 Index: gpgkeys_finger.c
47 ===================================================================
48 --- gpgkeys_finger.c    (revision 4750)
49 +++ gpgkeys_finger.c    (working copy)
50 @@ -27,7 +27,7 @@
51  #include <getopt.h>
52  #endif
53  
54 -#ifdef _WIN32
55 +#ifdef HAVE_W32_SYSTEM
56  #include <windows.h>
57  #else
58  #include <unistd.h>
59 @@ -46,7 +46,7 @@
60  #include "ksutil.h"
61  #include "iobuf.h"
62  
63 -#ifdef _WIN32
64 +#ifdef HAVE_W32_SYSTEM
65  #define sock_close(a)  closesocket(a)
66  #else
67  #define sock_close(a)  close(a)
68 @@ -58,41 +58,7 @@
69  static FILE *input,*output,*console;
70  static struct ks_options *opt;
71  
72 -#ifdef _WIN32
73 -static void
74 -deinit_sockets (void)
75 -{
76 -  WSACleanup();
77 -}
78  
79 -static void
80 -init_sockets (void)
81 -{
82 -  static int initialized;
83 -  static WSADATA wsdata;
84 -
85 -  if (initialized)
86 -    return;
87 -
88 -  if (WSAStartup (0x0101, &wsdata) )
89 -    {
90 -      fprintf (console, "error initializing socket library: ec=%d\n", 
91 -               (int)WSAGetLastError () );
92 -      return;
93 -    }
94 -  if (wsdata.wVersion < 0x0001)
95 -    {
96 -      fprintf (console, "socket library version is %x.%x - but 1.1 needed\n",
97 -               LOBYTE(wsdata.wVersion), HIBYTE(wsdata.wVersion));
98 -      WSACleanup();
99 -      return;
100 -    }
101 -  atexit  (deinit_sockets);
102 -  initialized = 1;
103 -}
104 -#endif /*_WIN32*/
105 -
106 -
107  /* Connect to SERVER at PORT and return a file descriptor or -1 on
108     error. */
109  static int
110 @@ -100,12 +66,12 @@
111  {
112    int sock = -1;
113  
114 -#ifdef _WIN32
115 +#ifdef HAVE_W32_SYSTEM
116    struct hostent *hp;
117    struct sockaddr_in addr;
118    unsigned long l;
119  
120 -  init_sockets ();
121 +  w32_init_sockets ();
122  
123    memset (&addr, 0, sizeof addr);
124    addr.sin_family = AF_INET;
125 @@ -201,7 +167,7 @@
126      {
127        int nwritten;
128        
129 -#ifdef _WIN32  
130 +#ifdef HAVE_W32_SYSTEM  
131        nwritten = send (sock, data, nleft, 0);
132        if ( nwritten == SOCKET_ERROR )
133          {
134
135
136
137 Index: ksutil.c
138 ===================================================================
139 --- ksutil.c    (revision 4750)
140 +++ ksutil.c    (working copy)
141 @@ -35,6 +35,11 @@
142  #include <string.h>
143  #include <stdlib.h>
144  
145 +#ifdef HAVE_W32_SYSTEM
146 +
147 +#include <windows.h>
148 +#endif
149 +
150  #ifdef HAVE_LIBCURL
151  #include <curl/curl.h>
152  #else
153 @@ -83,6 +88,22 @@
154  
155  #endif /* !HAVE_DOSISH_SYSTEM */
156  
157 +#ifdef HAVE_W32_SYSTEM
158 +void
159 +w32_init_sockets (void)
160 +{
161 +  static int initialized;
162 +  static WSADATA wsdata;
163 +
164 +  if (!initialized)
165 +    {
166 +      WSAStartup (0x0202, &wsdata);
167 +      initialized = 1;
168 +    }
169 +}
170 +#endif /*HAVE_W32_SYSTEM*/
171 +
172 +
173  struct ks_options *
174  init_ks_options(void)
175  {