/[winpt]/trunk/Src/wptKeyserver.cpp
ViewVC logotype

Diff of /trunk/Src/wptKeyserver.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 180 by twoaday, Mon Mar 6 14:41:58 2006 UTC revision 181 by twoaday, Tue Mar 14 11:01:22 2006 UTC
# Line 37  Line 37 
37  #include "wptGPG.h"  #include "wptGPG.h"
38  #include "wptRegistry.h"  #include "wptRegistry.h"
39    
40    /* just map net_errno to a winsock error. */
41  #define net_errno ((int)WSAGetLastError ())  #define net_errno ((int)WSAGetLastError ())
42    
 static char base64code[] =  
   "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";  
43    
44  keyserver server[MAX_KEYSERVERS] = {0};  keyserver server[MAX_KEYSERVERS] = {0};
45  keyserver_proxy_s proxy = {0};  keyserver_proxy_s proxy = {0};
# Line 70  static DWORD conf_timestamp = 0;/* times Line 69  static DWORD conf_timestamp = 0;/* times
69  char *default_keyserver = NULL;  char *default_keyserver = NULL;
70  WORD default_keyserver_port = 0;  WORD default_keyserver_port = 0;
71    
72    /* Default socket timeout. */
73    static int default_socket_timeout = 10;
74    
75  /* Basic64 encode the input @inbuf to @outbuf. */  /* Basic64 encode the input @inbuf to @outbuf. */
76  static void  static void
77  base64_encode (const char *inbuf, char *outbuf)  base64_encode (const char *inbuf, char *outbuf)
78  {        {
79        char base64code[] =
80            "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
81      int index = 0, temp = 0, res = 0;      int index = 0, temp = 0, res = 0;
82      int i = 0, inputlen = 0, len = 0;      int i = 0, inputlen = 0, len = 0;
83            
# Line 213  sock_select (int fd, int nsecs) Line 216  sock_select (int fd, int nsecs)
216     Return value: 0 on success. */     Return value: 0 on success. */
217  static int  static int
218  sock_read (int fd, char *buf, int buflen, int *nbytes)  sock_read (int fd, char *buf, int buflen, int *nbytes)
219  {        {
220      DWORD nread;      DWORD nread;
221      int nleft = buflen;      int nleft = buflen;
222      int rc, n = 0;      int rc, n = 0;
223    
224      while (nleft > 0) {      while (nleft > 0) {
225          if (n >= 10)          if (n >= default_socket_timeout)
226              return WPTERR_WINSOCK_TIMEOUT;              return WPTERR_WINSOCK_TIMEOUT;
227          rc = sock_select (fd, 1);          rc = sock_select (fd, 1);
228          if (rc == SOCKET_ERROR)          if (rc == SOCKET_ERROR)
# Line 304  sock_write (int fd, const char *buf, int Line 307  sock_write (int fd, const char *buf, int
307  }  }
308    
309    
 /* Set the default keyserver. */  
 void  
 set_default_kserver (void)  
 {  
     char *p = get_reg_entry_keyserver ("Default");  
     free_if_alloc (default_keyserver);  
     default_keyserver = p && *p != ' ' ? p : m_strdup (DEF_HKP_KEYSERVER);  
     p = get_reg_entry_keyserver ("Default_Port");  
     if (p && *p) {  
         default_keyserver_port = (WORD)strtoul (p, NULL, 10);  
         free_if_alloc (p);  
     }  
     else  
         default_keyserver_port = HKP_PORT;  
 }  
   
   
310  /* Initialize the Winsock2 interface.*/  /* Initialize the Winsock2 interface.*/
311  int  int
312  wsock_init (void)  wsock_init (void)
# Line 331  wsock_init (void) Line 317  wsock_init (void)
317          log_debug ("wsock_init: WSAStartup failed ec=%d\r\n", net_errno);          log_debug ("wsock_init: WSAStartup failed ec=%d\r\n", net_errno);
318          return WPTERR_WINSOCK_INIT;          return WPTERR_WINSOCK_INIT;
319      }      }
     set_default_kserver ();  
320      return 0;      return 0;
321  }  }
322    
# Line 348  wsock_end (void) Line 333  wsock_end (void)
333      free_if_alloc (p);      free_if_alloc (p);
334      free_if_alloc (default_keyserver);      free_if_alloc (default_keyserver);
335      for (i=0; i < MAX_KEYSERVERS; i++) {      for (i=0; i < MAX_KEYSERVERS; i++) {
336          if (server[i].used)          if (server[i].used && server[i].name != NULL)
337              free_if_alloc (server[i].name);              free_if_alloc (server[i].name);
338      }      }
339      kserver_proxy_release (&proxy);      kserver_proxy_release (&proxy);
# Line 378  wsock_strerror (void) Line 363  wsock_strerror (void)
363  }  }
364    
365    
366    /* Set default socket timeout for all reading operations. */
367    void
368    kserver_set_socket_timeout (int nsec)
369    {
370        if (nsec < 0)
371            nsec = 0;
372        default_socket_timeout = nsec;
373    }
374    
375    
376  /* Return the last keyserver error as a string. */  /* Return the last keyserver error as a string. */
377  const char*  const char*
378  kserver_strerror (void)  kserver_strerror (void)
# Line 504  proto_from_URL (const char *buf) Line 499  proto_from_URL (const char *buf)
499  void  void
500  keyserver_set_default (const char *hostname, WORD port)  keyserver_set_default (const char *hostname, WORD port)
501  {  {
502      if (hostname) {      if (hostname != NULL) {
503          free_if_alloc (default_keyserver);          free_if_alloc (default_keyserver);
504          default_keyserver = m_strdup (hostname);          default_keyserver = m_strdup (hostname);
505          if (!default_keyserver)          if (!default_keyserver)
506              BUG (0);              BUG (0);
507          default_keyserver_port = port;          default_keyserver_port = port;
508      }      }
509        if (!port)
510            port = HKP_PORT;
511        if (!default_keyserver)
512            default_keyserver = m_strdup (DEF_HKP_KEYSERVER);
513      server[0].name =  m_strdup (default_keyserver);      server[0].name =  m_strdup (default_keyserver);
514      server[0].used = 1;      server[0].used = 1;
515      server[0].port = port;      server[0].port = port;

Legend:
Removed from v.180  
changed lines
  Added in v.181

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26