* mainproc.c (check_sig_and_print): Use two different preferred keyserver
authorDavid Shaw <dshaw@jabberwocky.com>
Tue, 26 Aug 2003 03:56:47 +0000 (03:56 +0000)
committerDavid Shaw <dshaw@jabberwocky.com>
Tue, 26 Aug 2003 03:56:47 +0000 (03:56 +0000)
displays - one if the key is not present (to tell the user where to get
the key), the other if it is present (to tell the user where the key can
be refreshed).

* packet.h, parse-packet.c (parse_signature): Set flag if a preferred
keyserver is present.

* keylist.c (list_keyblock_print): Show keyserver url in listings with
list-option show-keyserver-url.

g10/ChangeLog
g10/keylist.c
g10/mainproc.c
g10/packet.h
g10/parse-packet.c

index bd66c64..8a6a15e 100644 (file)
@@ -1,3 +1,16 @@
+2003-08-25  David Shaw  <dshaw@jabberwocky.com>
+
+       * mainproc.c (check_sig_and_print): Use two different preferred
+       keyserver displays - one if the key is not present (to tell the
+       user where to get the key), the other if it is present (to tell
+       the user where the key can be refreshed).
+
+       * packet.h, parse-packet.c (parse_signature): Set flag if a
+       preferred keyserver is present.
+
+       * keylist.c (list_keyblock_print): Show keyserver url in listings
+       with list-option show-keyserver-url.
+
 2003-08-24  David Shaw  <dshaw@jabberwocky.com>
 
        * Makefile.am: Use NETLIBS instead of EGDLIBS.
index e01d8d9..dace1e7 100644 (file)
@@ -845,6 +845,9 @@ list_keyblock_print ( KBNODE keyblock, int secret, int fpr, void *opaque )
            if(sig->flags.notation && (opt.list_options&LIST_SHOW_NOTATION))
              show_notation(sig,3,0);
 
+           if(sig->flags.pref_ks && (opt.list_options&LIST_SHOW_KEYSERVER))
+             show_keyserver_url(sig,3,0);
+
            /* fixme: check or list other sigs here */
        }
     }
index 1762497..f92181e 100644 (file)
@@ -1287,7 +1287,7 @@ check_sig_and_print( CTX c, KBNODE node )
     /* If the key still isn't found, try to inform the user where it
        can be found. */
 
-    if(rc==G10ERR_NO_PUBKEY && opt.verify_options&VERIFY_SHOW_KEYSERVER)
+    if(rc==G10ERR_NO_PUBKEY && sig->flags.pref_ks)
       {
        const byte *p;
        int seq=0;
@@ -1457,6 +1457,11 @@ check_sig_and_print( CTX c, KBNODE node )
            else
              show_policy_url(sig,0,2);
 
+           if(opt.verify_options&VERIFY_SHOW_KEYSERVER)
+             show_keyserver_url(sig,0,1);
+           else
+             show_keyserver_url(sig,0,2);
+
            if(opt.verify_options&VERIFY_SHOW_NOTATION)
              show_notation(sig,0,1);
            else
index 9d0e361..d75ff41 100644 (file)
@@ -129,8 +129,9 @@ typedef struct {
        unsigned unknown_critical:1;
         unsigned exportable:1;
         unsigned revocable:1;
-        unsigned policy_url:1; /* Policy URL is present */
+        unsigned policy_url:1; /* At least one policy URL is present */
         unsigned notation:1; /* At least one notation is present */
+        unsigned pref_ks:1;  /* At least one preferred keyserver is present */
         unsigned expired:1;
     } flags;
     u32     keyid[2];      /* 64 bit keyid */
index 1ba8f32..0831d26 100644 (file)
@@ -1305,6 +1305,10 @@ parse_signature( IOBUF inp, int pkttype, unsigned long pktlen,
        if(p)
          sig->flags.policy_url=1;
 
+       p=parse_sig_subpkt(sig->hashed,SIGSUBPKT_PREF_KS,NULL);
+       if(p)
+         sig->flags.pref_ks=1;
+
        p=parse_sig_subpkt(sig->hashed,SIGSUBPKT_NOTATION,NULL);
        if(p)
          sig->flags.notation=1;