Make HKP kyeserver engine work again.
authorWerner Koch <wk@gnupg.org>
Thu, 24 Nov 2011 14:48:24 +0000 (15:48 +0100)
committerWerner Koch <wk@gnupg.org>
Thu, 24 Nov 2011 14:48:24 +0000 (15:48 +0100)
We had some debug code here which prevented it from working.
The host selection code still needs a review!

* ks-engine-http.c (ks_http_help): Do not print help for hkp.
* ks-engine-hkp.c (ks_hkp_help): Print help only for hkp.
(send_request): Remove test code.
(map_host): Use xtrymalloc.

* certcache.c (classify_pattern): Remove unused variable and make
explicit substring search work.

dirmngr/ChangeLog
dirmngr/certcache.c
dirmngr/ks-action.c
dirmngr/ks-engine-hkp.c
dirmngr/ks-engine-http.c
dirmngr/ldap.c

index a06558c..0968b41 100644 (file)
@@ -1,3 +1,13 @@
+2011-11-24  Werner Koch  <wk@g10code.com>
+
+       * ks-engine-http.c (ks_http_help): Do not print help for hkp.
+       * ks-engine-hkp.c (ks_hkp_help): Print help only for hkp.
+       (send_request): Remove test code.
+       (map_host): Use xtrymalloc.
+
+       * certcache.c (classify_pattern): Remove unused variable and make
+       explicit substring search work.
+
 2011-06-01  Marcus Brinkmann  <mb@g10code.com>
 
        * Makefile.am (dirmngr_ldap_CFLAGS): Add $(LIBGCRYPT_CFLAGS),
index 3ada60d..a8b84e6 100644 (file)
@@ -681,11 +681,10 @@ get_cert_bysubject (const char *subject_dn, unsigned int seq)
 static enum pattern_class
 classify_pattern (const char *pattern, size_t *r_offset, size_t *r_sn_offset)
 {
-  enum pattern_class result = PATTERN_UNKNOWN;
+  enum pattern_class result;
   const char *s;
   int hexprefix = 0;
   int hexlength;
-  int mode = 0;
 
   *r_offset = *r_sn_offset = 0;
 
@@ -718,7 +717,7 @@ classify_pattern (const char *pattern, size_t *r_offset, size_t *r_sn_offset)
       break;
 
     case '*':  /* Case insensitive substring search.  */
-      mode = PATTERN_SUBSTR;
+      result = PATTERN_SUBSTR;
       s++;
       break;
 
index 14de4d6..9ebf69b 100644 (file)
@@ -87,7 +87,7 @@ ks_action_help (ctrl_t ctrl, const char *url)
 
   if (!parsed_uri)
     ks_print_help (ctrl,
-                   "(Use the schema followed by a colon for specific help.)");
+                   "(Use an URL for engine specific help.)");
   else
     http_release_parsed_uri (parsed_uri);
   return err;
index d4a1211..98187ab 100644 (file)
@@ -209,7 +209,7 @@ map_host (const char *name)
       int refidx;
 
       reftblsize = 100;
-      reftbl = xmalloc (reftblsize * sizeof *reftbl);
+      reftbl = xtrymalloc (reftblsize * sizeof *reftbl);
       if (!reftbl)
         return NULL;
       refidx = 0;
@@ -280,7 +280,7 @@ map_host (const char *name)
                       else
                         {
                           if (ai->ai_family == AF_INET)
-                        hosttable[tmpidx]->v4 = 1;
+                            hosttable[tmpidx]->v4 = 1;
                           if (ai->ai_family == AF_INET6)
                             hosttable[tmpidx]->v6 = 1;
 
@@ -409,7 +409,7 @@ ks_hkp_help (ctrl_t ctrl, parsed_uri_t uri)
 
   if (!uri)
     err = ks_print_help (ctrl, "  hkp");
-  else if (uri->is_http)
+  else if (uri->is_http && !strcmp (uri->scheme, "hkp"))
     err = ks_print_help (ctrl, data);
   else
     err = 0;
@@ -472,7 +472,7 @@ send_request (ctrl_t ctrl, const char *request, const char *hostportstr,
   char *request_buffer = NULL;
 
   *r_fp = NULL;
-  return gpg_error (GPG_ERR_NOT_SUPPORTED);
+
  once_more:
   err = http_open (&http,
                    post_cb? HTTP_REQ_POST : HTTP_REQ_GET,
index 2ce1b19..b0e2e14 100644 (file)
@@ -43,7 +43,7 @@ ks_http_help (ctrl_t ctrl, parsed_uri_t uri)
 
   if (!uri)
     err = ks_print_help (ctrl, "  http");
-  else if (uri->is_http)
+  else if (uri->is_http && strcmp (uri->scheme, "hkp"))
     err = ks_print_help (ctrl, data);
   else
     err = 0;
index 87121fd..638348b 100644 (file)
@@ -666,7 +666,7 @@ fetch_next_cert_ldap (cert_fetch_context_t context,
   char *p, *pend;
   int n;
   int okay = 0;
-  int is_cms = 0;
+  /* int is_cms = 0; */
 
   *value = NULL;
   *valuelen = 0;
@@ -758,7 +758,7 @@ fetch_next_cert_ldap (cert_fetch_context_t context,
             {
               p = context->tmpbuf;
               p[n] = 0; /*(we allocated one extra byte for this.)*/
-              is_cms = 0;
+              /* fixme: is_cms = 0; */
               if ( (pend = strchr (p, ';')) )
                 *pend = 0; /* Strip off the extension. */
               if (!ascii_strcasecmp (p, USERCERTIFICATE))