gnupg/g10 (ChangeLog build-packet.c keyserver.c)

cvs user dshaw cvs at cvs.gnupg.org
Wed Dec 22 18:44:39 CET 2004


    Date: Wednesday, December 22, 2004 @ 18:49:44
  Author: dshaw
    Path: /cvs/gnupg/gnupg/g10

Modified: ChangeLog build-packet.c keyserver.c

* keyserver.c (keyserver_typemap): New.  Map certain keyserver types to a
common type (e.g. ldaps -> ldap).  If we are building with curl, map both
http and ftp to curl.

* build-packet.c (build_sig_subpkt): Only allow one preferred keyserver
subpacket at a time.


----------------+
 ChangeLog      |    9 +++++++++
 build-packet.c |    1 -
 keyserver.c    |   34 ++++++++++++++++++++++++----------
 3 files changed, 33 insertions(+), 11 deletions(-)


Index: gnupg/g10/ChangeLog
diff -u gnupg/g10/ChangeLog:1.669 gnupg/g10/ChangeLog:1.670
--- gnupg/g10/ChangeLog:1.669	Tue Dec 21 16:49:56 2004
+++ gnupg/g10/ChangeLog	Wed Dec 22 18:49:44 2004
@@ -1,3 +1,12 @@
+2004-12-22  David Shaw  <dshaw at jabberwocky.com>
+
+	* keyserver.c (keyserver_typemap): New.  Map certain keyserver
+	types to a common type (e.g. ldaps -> ldap).  If we are building
+	with curl, map both http and ftp to curl.
+
+	* build-packet.c (build_sig_subpkt): Only allow one preferred
+	keyserver subpacket at a time.
+
 2004-12-21  David Shaw  <dshaw at jabberwocky.com>
 
 	* keyedit.c (menu_set_keyserver_url): Make sure we only operate on
Index: gnupg/g10/build-packet.c
diff -u gnupg/g10/build-packet.c:1.89 gnupg/g10/build-packet.c:1.90
--- gnupg/g10/build-packet.c:1.89	Thu Oct 28 05:14:55 2004
+++ gnupg/g10/build-packet.c	Wed Dec 22 18:49:44 2004
@@ -658,7 +658,6 @@
       case SIGSUBPKT_POLICY:
       case SIGSUBPKT_REV_KEY:
       case SIGSUBPKT_SIGNATURE:
-      case SIGSUBPKT_PREF_KS:
 	/* we do allow multiple subpackets */
 	break;
 
Index: gnupg/g10/keyserver.c
diff -u gnupg/g10/keyserver.c:1.73 gnupg/g10/keyserver.c:1.74
--- gnupg/g10/keyserver.c:1.73	Tue Dec 14 08:49:26 2004
+++ gnupg/g10/keyserver.c	Wed Dec 22 18:49:44 2004
@@ -759,6 +759,24 @@
   m_free(line);
 }
 
+/* We sometimes want to use a different gpgkeys_xxx for a given
+   protocol (for example, ldaps is handled by gpgkeys_ldap).  Map
+   these here. */
+static const char *
+keyserver_typemap(const char *type)
+{
+  if(strcmp(type,"ldaps")==0)
+    return "ldap";
+#ifdef HAVE_LIBCURL
+  else if(strcmp(type,"ftp")==0)
+    return "curl";
+  else if(strcmp(type,"http")==0)
+    return "curl";
+#endif /* HAVE_LIBCURL */
+  else
+    return type;
+}
+
 #define KEYSERVER_ARGS_KEEP " -o \"%O\" \"%I\""
 #define KEYSERVER_ARGS_NOKEEP " -o \"%o\" \"%i\""
 
@@ -773,6 +791,7 @@
   byte *line=NULL;
   struct parse_options *kopts;
   struct exec_info *spawn;
+  const char *scheme;
 
   assert(keyserver);
 
@@ -789,14 +808,10 @@
 #endif
 
   /* Build the filename for the helper to execute */
-  /* Note that we don't use a symlink for "ldaps" anymore because this
-     won't work under MS Windows. */
-  command=m_alloc(strlen("gpgkeys_")+strlen(keyserver->scheme)+1);
+  scheme=keyserver_typemap(keyserver->scheme);
+  command=m_alloc(strlen("gpgkeys_")+strlen(scheme)+1);
   strcpy(command,"gpgkeys_"); 
-  if (!strcmp (keyserver->scheme, "ldaps"))
-    strcat(command, "ldap");
-  else
-    strcat(command,keyserver->scheme);
+  strcat(command,scheme);
   
   if(opt.keyserver_options.options&KEYSERVER_USE_TEMP_FILES)
     {
@@ -1252,9 +1267,8 @@
 
 	case KEYSERVER_VERSION_ERROR:
 	  log_error(_("gpgkeys_%s does not support handler version %d\n"),
-		    !strcmp (keyserver->scheme,"ldaps")?
-                    "ldap": keyserver->scheme, 
-                    KEYSERVER_PROTO_VERSION);
+		    keyserver_typemap(keyserver->scheme),
+		    KEYSERVER_PROTO_VERSION);
 	  break;
 
 	case KEYSERVER_TIMEOUT:




More information about the Gnupg-commits mailing list