g10: Fix card-edit/fetch to use keyserver_fetch.
authorNIIBE Yutaka <gniibe@fsij.org>
Thu, 23 Jun 2016 03:12:43 +0000 (12:12 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Fri, 24 Jun 2016 01:22:55 +0000 (10:22 +0900)
* g10/card-util.c (fetch_url): Call keyserver_fetch instead of
keyserver_import_fprint.

--
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
GnuPG-bug-id: 1828
(backport of master
commit 6f5ff1cfe449cf1f4cb7287bc57570eb794216b2)

g10/card-util.c

index 2198cb2..745ba1d 100644 (file)
@@ -729,28 +729,18 @@ fetch_url(void)
     log_error("error retrieving URL from card: %s\n",gpg_strerror(rc));
   else
     {
-      struct keyserver_spec *spec=NULL;
-
       rc=agent_scd_getattr("KEY-FPR",&info);
       if(rc)
        log_error("error retrieving key fingerprint from card: %s\n",
                  gpg_strerror(rc));
       else if (info.pubkey_url && *info.pubkey_url)
-       {
-         spec=parse_keyserver_uri(info.pubkey_url,1,NULL,0);
-         if(spec && info.fpr1valid)
-           {
-             /* This is not perfectly right.  Currently, all card
-                fingerprints are 20 digits, but what about
-                fingerprints for a future v5 key?  We should get the
-                length from somewhere lower in the code.  In any
-                event, the fpr/keyid is not meaningful for straight
-                HTTP fetches, but using it allows the card to point
-                to HKP and LDAP servers as well. */
-             rc=keyserver_import_fprint(info.fpr1,20,spec);
-             free_keyserver_spec(spec);
-           }
-       }
+        {
+          strlist_t sl = NULL;
+
+          add_to_strlist (&sl, info.pubkey_url);
+          rc = keyserver_fetch (sl);
+          free_strlist (sl);
+        }
       else if (info.fpr1valid)
        {
           rc = keyserver_import_fprint (info.fpr1, 20, opt.keyserver);