/[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 13 by twoaday, Mon Apr 25 07:15:30 2005 UTC revision 22 by twoaday, Wed Aug 10 11:33:35 2005 UTC
# Line 289  wsock_strerror( void ) Line 289  wsock_strerror( void )
289    
290    
291  const char*  const char*
292  kserver_strerror( void )  kserver_strerror (void)
293  {        {      
294      if( hkp_err )      if (hkp_err)
295          return hkp_errmsg;          return hkp_errmsg;
296      return NULL;      return NULL;
297  } /* kserver_strerror */  } /* kserver_strerror */
# Line 351  static void Line 351  static void
351  kserver_update_proxyuser (const char *proxy_user, const char *proxy_pass)  kserver_update_proxyuser (const char *proxy_user, const char *proxy_pass)
352  {  {
353      char t[257]; /* user:pass = 127+1+127+1 = 257 */      char t[257]; /* user:pass = 127+1+127+1 = 257 */
354        int n = 0;
355    
356        n = 4*strlen (proxy_user) / 3 + 32 + strlen (proxy_pass) + 2;
357      free_if_alloc (proxy.base64_user);      free_if_alloc (proxy.base64_user);
358      proxy.base64_user = new char[4*strlen (proxy_user) / 3 + 32 + strlen (proxy_pass)];      proxy.base64_user = new char[n];
359      if (!proxy.base64_user)      if (!proxy.base64_user)
360          BUG (0);          BUG (0);
361      _snprintf (t, sizeof (t)-1, "%s:%s", proxy_user, proxy_pass);      _snprintf (t, sizeof (t)-1, "%s:%s", proxy_user, proxy_pass);
# Line 380  check_URL (const char * buf) Line 382  check_URL (const char * buf)
382            
383    
384  static int  static int
385    port_from_proto (int proto)
386    {
387        switch (proto) {
388        case KSPROTO_LDAP: return 0;
389        case KSPROTO_FINGER: return FINGER_PORT;
390        case KSPROTO_HTTP: return HKP_PORT;
391        }
392        return 0;
393    }
394    
395    
396    static int
397  proto_from_URL (const char * buf)  proto_from_URL (const char * buf)
398  {  {
399      if (strstr( buf, "ldap"))      if (strstr( buf, "ldap"))
# Line 400  keyserver_set_default (const char * host Line 414  keyserver_set_default (const char * host
414              BUG (0);              BUG (0);
415          default_keyserver_port = port;          default_keyserver_port = port;
416      }      }
417      server[0].name =  default_keyserver;      server[0].name =  m_strdup (default_keyserver);
418      server[0].used = 1;      server[0].used = 1;
419      server[0].port = port;      server[0].port = port;
420      server[0].proto = proto_from_URL (default_keyserver);      server[0].proto = proto_from_URL (default_keyserver);
# Line 434  kserver_load_conf (const char * conf) Line 448  kserver_load_conf (const char * conf)
448      char buf[1024], * s, * p;      char buf[1024], * s, * p;
449      char *user = NULL, *pass = NULL;          char *user = NULL, *pass = NULL;    
450      int pos, proxy_auth = 0;      int pos, proxy_auth = 0;
451      int no_config=0;      int no_config=0, chk_pos=0;
452            
453      for (pos = 0; pos < MAX_KEYSERVERS; pos++) {      for (pos = 0; pos < MAX_KEYSERVERS; pos++) {
454          server[pos].used = 0;          server[pos].used = 0;
# Line 445  kserver_load_conf (const char * conf) Line 459  kserver_load_conf (const char * conf)
459      if (!fp) {      if (!fp) {
460          for (pos = 0; server_list[pos]; pos++) {          for (pos = 0; server_list[pos]; pos++) {
461              server[pos].used = 1;              server[pos].used = 1;
462              server[pos].name = (char *)server_list[pos];              server[pos].name = m_strdup (server_list[pos]);
463              server[pos].proto = proto_from_URL( server_list[pos] );              server[pos].proto = proto_from_URL (server_list[pos]);
464          }          }
465          no_config=1;          no_config=1;
466      }      }
# Line 488  kserver_load_conf (const char * conf) Line 502  kserver_load_conf (const char * conf)
502                               _("Keyserver Error"), MB_ERR);                               _("Keyserver Error"), MB_ERR);
503              continue;              continue;
504          }          }
505          p = strchr (s+6, ':');          chk_pos=6;
506            if (strstr (s, "finger"))
507                chk_pos = 10;
508            p = strchr (s+chk_pos, ':');
509          server[pos].used = 1;          server[pos].used = 1;
510          server[pos].proto = proto_from_URL (s);          server[pos].proto = proto_from_URL (s);
511            server[pos].port = port_from_proto (server[pos].proto);
512          if (!p)          if (!p)
513              server[pos].name = m_strdup (s);              server[pos].name = m_strdup (s);
514          else {                else {      
# Line 611  kserver_connect (const char *hostname, u Line 629  kserver_connect (const char *hostname, u
629    
630    
631  static char*  static char*
632  kserver_urlencode (const char *pubkey, int octets, int *newlen)  kserver_urlencode (const char *pubkey, size_t octets, size_t *newlen)
633  {  {
634      char *p, numbuf[5];      char *p, numbuf[5];
635      size_t j = 0;      size_t j = 0;
636      int i, size;      size_t i, size;
637            
638      p = new char [2*octets];      p = new char [2*octets];
639      if (!p)      if (!p)
640          BUG (0);          BUG (0);
641    
642      for (size=0, i=0; i<octets; i++) {      for (size=0, i=0; i < octets; i++) {
643          if (isalnum (pubkey[i]) || pubkey[i] == '-') {          if (isalnum (pubkey[i]) || pubkey[i] == '-') {
644              p[size] = pubkey[i];              p[size] = pubkey[i];
645              size++;              size++;
# Line 651  static char* Line 669  static char*
669  kserver_send_request (const char *hostname, u16 port, const char *pubkey, int octets)  kserver_send_request (const char *hostname, u16 port, const char *pubkey, int octets)
670  {  {
671      char *request = NULL, *enc_pubkey = NULL;      char *request = NULL, *enc_pubkey = NULL;
672      int reqlen, enc_octets;      int reqlen;
673        size_t enc_octets;
674            
675      if (debug)      if (debug)
676          log_f ("kserver_send_request: %s:%d\n", hostname, port);          log_f ("kserver_send_request: %s:%d\n", hostname, port);
# Line 1242  finger_recvkey (const char * host, const Line 1261  finger_recvkey (const char * host, const
1261          rc = WPTERR_WINSOCK_RECVKEY;          rc = WPTERR_WINSOCK_RECVKEY;
1262      return rc;      return rc;
1263  }  }
1264    
1265    
1266    int
1267    check_IP_or_hostname (const char *name)
1268    {
1269        const char *not_allowed = "=!�$%&@#*~\\/}][{<>|,;:'";
1270        size_t i, j;
1271    
1272        for (i=0; i < strlen (name); i++) {
1273            for (j =0; j < strlen (not_allowed); j++) {
1274                if (name[i] == not_allowed[j])
1275                    return -1;
1276            }
1277        }
1278        return 0;
1279    }

Legend:
Removed from v.13  
changed lines
  Added in v.22

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26