[svn] GnuPG - r5069 - trunk/keyserver

svn author dshaw cvs at cvs.gnupg.org
Wed Jul 8 06:01:13 CEST 2009


Author: dshaw
Date: 2009-07-08 06:01:13 +0200 (Wed, 08 Jul 2009)
New Revision: 5069

Modified:
   trunk/keyserver/ChangeLog
   trunk/keyserver/gpgkeys_hkp.c
Log:
* gpgkeys_hkp.c (main, srv_replace): Minor tweaks to use the DNS-SD
names ("pgpkey-http" and "pgpkey-https") in SRV lookups instead of
"hkp" and "hkps".


Modified: trunk/keyserver/ChangeLog
===================================================================
--- trunk/keyserver/ChangeLog	2009-07-08 03:50:26 UTC (rev 5068)
+++ trunk/keyserver/ChangeLog	2009-07-08 04:01:13 UTC (rev 5069)
@@ -1,3 +1,9 @@
+2009-07-06  David Shaw  <dshaw at jabberwocky.com>
+
+	* gpgkeys_hkp.c (main, srv_replace): Minor tweaks to use the
+	DNS-SD names ("pgpkey-http" and "pgpkey-https") in SRV lookups
+	instead of "hkp" and "hkps".
+
 2009-06-24  Werner Koch  <wk at g10code.com>
 
 	* gpgkeys_ldap.c (send_key): Do not deep free a NULL modlist.

Modified: trunk/keyserver/gpgkeys_hkp.c
===================================================================
--- trunk/keyserver/gpgkeys_hkp.c	2009-07-08 03:50:26 UTC (rev 5068)
+++ trunk/keyserver/gpgkeys_hkp.c	2009-07-08 04:01:13 UTC (rev 5069)
@@ -489,18 +489,21 @@
 /* If there is a SRV record, take the highest ranked possibility.
    This is a hack, as we don't proceed downwards. */
 static void
-srv_replace(void)
+srv_replace(const char *srvtag)
 {
 #ifdef USE_DNS_SRV
   struct srventry *srvlist=NULL;
   int srvcount;
 
-  if(1+strlen(opt->scheme)+6+strlen(opt->host)+1<=MAXDNAME)
+  if(!srvtag)
+    return;
+
+  if(1+strlen(srvtag)+6+strlen(opt->host)+1<=MAXDNAME)
     {
       char srvname[MAXDNAME];
 
       strcpy(srvname,"_");
-      strcat(srvname,opt->scheme);
+      strcat(srvname,srvtag);
       strcat(srvname,"._tcp.");
       strcat(srvname,opt->host);
       srvcount=getsrv(srvname,&srvlist);
@@ -714,17 +717,26 @@
     port=opt->port;
   else if(try_srv)
     {
+      char *srvtag;
+
+      if(ks_strcasecmp(opt->scheme,"hkp")==0)
+	srvtag="pgpkey-http";
+      else if(ks_strcasecmp(opt->scheme,"hkps")==0)
+	srvtag="pgpkey-https";
+      else
+	srvtag=NULL;
+
 #ifdef HAVE_LIBCURL
       /* We're using libcurl, so fake SRV support via our wrapper.
 	 This isn't as good as true SRV support, as we do not try all
 	 possible targets at one particular level and work our way
 	 down the list, but it's better than nothing. */      
-      srv_replace();
+      srv_replace(srvtag);
 #else
       /* We're using our internal curl shim, so we can use its (true)
 	 SRV support.  Obviously, CURLOPT_SRVTAG_GPG_HACK isn't a real
 	 libcurl option.  It's specific to our shim. */
-      curl_easy_setopt(curl,CURLOPT_SRVTAG_GPG_HACK,opt->scheme);
+      curl_easy_setopt(curl,CURLOPT_SRVTAG_GPG_HACK,srvtag);
 #endif
     }
 




More information about the Gnupg-commits mailing list