gnupg/keyserver (7 files)

cvs user dshaw cvs at cvs.gnupg.org
Fri Jun 24 01:19:17 CEST 2005


    Date: Friday, June 24, 2005 @ 01:42:35
  Author: dshaw
    Path: /cvs/gnupg/gnupg/keyserver

Modified: ChangeLog curl-shim.c gpgkeys_curl.c gpgkeys_hkp.c
          gpgkeys_http.c gpgkeys_mailto.in gpgkeys_test.in

* gpgkeys_mailto.in, gpgkeys_test.in: Use @VERSION@ so version string
stays up to date.

* gpgkeys_http.c: Don't need to define HTTP_PROXY_ENV here since it's
in ksutil.h.

* gpgkeys_curl.c (get_key, main), gpgkeys_hkp.c (main): Pass AUTH
values to curl or curl-shim.

* curl-shim.c (curl_easy_perform), gpgkeys_curl.c (main),
gpgkeys_hkp.c (main): Use curl-style proxy semantics.


-------------------+
 ChangeLog         |   12 ++++++++++++
 curl-shim.c       |   19 +++++++++++++++++--
 gpgkeys_curl.c    |   33 +++++++++++++++++----------------
 gpgkeys_hkp.c     |   29 ++++++++++++++++++-----------
 gpgkeys_http.c    |    6 ------
 gpgkeys_mailto.in |    2 +-
 gpgkeys_test.in   |    2 +-
 7 files changed, 66 insertions(+), 37 deletions(-)


Index: gnupg/keyserver/ChangeLog
diff -u gnupg/keyserver/ChangeLog:1.135 gnupg/keyserver/ChangeLog:1.136
--- gnupg/keyserver/ChangeLog:1.135	Thu Jun 23 06:44:20 2005
+++ gnupg/keyserver/ChangeLog	Fri Jun 24 01:42:35 2005
@@ -1,5 +1,17 @@
 2005-06-23  David Shaw  <dshaw at jabberwocky.com>
 
+	* gpgkeys_mailto.in, gpgkeys_test.in: Use @VERSION@ so version
+	string stays up to date.
+
+	* gpgkeys_http.c: Don't need to define HTTP_PROXY_ENV here since
+	it's in ksutil.h.
+
+	* gpgkeys_curl.c (get_key, main), gpgkeys_hkp.c (main): Pass AUTH
+	values to curl or curl-shim.
+
+	* curl-shim.c (curl_easy_perform), gpgkeys_curl.c (main),
+	gpgkeys_hkp.c (main): Use curl-style proxy semantics.
+
 	* curl-shim.h, curl-shim.c (curl_easy_setopt, curl_easy_perform):
 	Add CURLOPT_USERPWD option for HTTP auth.
 
Index: gnupg/keyserver/curl-shim.c
diff -u gnupg/keyserver/curl-shim.c:1.7 gnupg/keyserver/curl-shim.c:1.8
--- gnupg/keyserver/curl-shim.c:1.7	Thu Jun 23 06:44:20 2005
+++ gnupg/keyserver/curl-shim.c	Fri Jun 24 01:42:35 2005
@@ -29,6 +29,7 @@
 #include <errno.h>
 #include "http.h"
 #include "util.h"
+#include "ksutil.h"
 #include "curl-shim.h"
 
 static CURLcode
@@ -142,10 +143,24 @@
   int rc;
   CURLcode err=CURLE_OK;
   const char *errstr=NULL;
+  char *proxy=NULL;
+
+  /* Emulate the libcurl proxy behavior.  If the calling program set a
+     proxy, use it.  If it didn't set a proxy or set it to NULL, check
+     for one in the environment.  If the calling program explicitly
+     set a null-string proxy, don't set a proxy at all. */
+
+  if(curl->proxy)
+    {
+      if(*curl->proxy)
+	proxy=curl->proxy;
+    }
+  else
+    proxy=getenv(HTTP_PROXY_ENV);
 
   if(curl->flags.post)
     {
-      rc=http_open(&curl->hd,HTTP_REQ_POST,curl->url,curl->auth,0,curl->proxy);
+      rc=http_open(&curl->hd,HTTP_REQ_POST,curl->url,curl->auth,0,proxy);
       if(rc==0)
 	{
 	  char content_len[50];
@@ -166,7 +181,7 @@
     }
   else
     {
-      rc=http_open(&curl->hd,HTTP_REQ_GET,curl->url,curl->auth,0,curl->proxy);
+      rc=http_open(&curl->hd,HTTP_REQ_GET,curl->url,curl->auth,0,proxy);
       if(rc==0)
 	{
 	  rc=http_wait_response(&curl->hd,&curl->status);
Index: gnupg/keyserver/gpgkeys_curl.c
diff -u gnupg/keyserver/gpgkeys_curl.c:1.18 gnupg/keyserver/gpgkeys_curl.c:1.19
--- gnupg/keyserver/gpgkeys_curl.c:1.18	Tue May 31 10:39:15 2005
+++ gnupg/keyserver/gpgkeys_curl.c	Fri Jun 24 01:42:35 2005
@@ -58,11 +58,8 @@
 
   fprintf(output,"KEY 0x%s BEGIN\n",getkey);
 
-  sprintf(request,"%s://%s%s%s%s%s%s",opt->scheme,
-	  opt->auth?opt->auth:"",
-	  opt->auth?"@":"",opt->host,
-	  opt->port?":":"",opt->port?opt->port:"",
-	  opt->path?opt->path:"/");
+  sprintf(request,"%s://%s%s%s%s",opt->scheme,opt->host,
+	  opt->port?":":"",opt->port?opt->port:"",opt->path?opt->path:"/");
 
   curl_easy_setopt(curl,CURLOPT_URL,request);
   curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,curl_writer);
@@ -98,7 +95,7 @@
   char line[MAX_LINE];
   char *thekey=NULL;
   long follow_redirects=5;
-  char proxy[MAX_PROXY+1];
+  char *proxy=NULL;
 
   console=stderr;
 
@@ -193,20 +190,19 @@
 
 	  if(strncasecmp(start,"http-proxy",10)==0)
 	    {
+	      /* Safe to not check the return code of strdup() here.
+		 If it fails, we simply won't use a proxy. */
 	      if(no)
-		proxy[0]='\0';
-	      else if(start[10]=='=')
 		{
-		  strncpy(proxy,&start[11],MAX_PROXY);
-		  proxy[MAX_PROXY]='\0';
+		  free(proxy);
+		  proxy=strdup("");
 		}
-	      else if(start[10]=='\0')
+	      else if(start[10]=='=')
 		{
-		  char *http_proxy=getenv(HTTP_PROXY_ENV);
-		  if(http_proxy)
+		  if(strlen(&start[11])<MAX_PROXY)
 		    {
-		      strncpy(proxy,http_proxy,MAX_PROXY);
-		      proxy[MAX_PROXY]='\0';
+		      free(proxy);
+		      proxy=strdup(&start[11]);
 		    }
 		}
 	    }
@@ -280,6 +276,9 @@
 	curl_easy_setopt(curl,CURLOPT_MAXREDIRS,follow_redirects);
     }
 
+  if(opt->auth)
+    curl_easy_setopt(curl,CURLOPT_USERPWD,opt->auth);
+
   if(opt->debug)
     {
       curl_easy_setopt(curl,CURLOPT_STDERR,console);
@@ -289,7 +288,7 @@
   curl_easy_setopt(curl,CURLOPT_SSL_VERIFYPEER,opt->flags.check_cert);
   curl_easy_setopt(curl,CURLOPT_CAINFO,opt->ca_cert_file);
 
-  if(proxy[0])
+  if(proxy)
     curl_easy_setopt(curl,CURLOPT_PROXY,proxy);
 
   /* If it's a GET or a SEARCH, the next thing to come in is the
@@ -372,6 +371,8 @@
   if(curl)
     curl_easy_cleanup(curl);
 
+  free(proxy);
+
   curl_global_cleanup();
 
   return ret;
Index: gnupg/keyserver/gpgkeys_hkp.c
diff -u gnupg/keyserver/gpgkeys_hkp.c:1.55 gnupg/keyserver/gpgkeys_hkp.c:1.56
--- gnupg/keyserver/gpgkeys_hkp.c:1.55	Tue Jun 21 06:24:10 2005
+++ gnupg/keyserver/gpgkeys_hkp.c	Fri Jun 24 01:42:35 2005
@@ -39,7 +39,6 @@
 extern char *optarg;
 extern int optind;
 
-static char proxy[MAX_PROXY+1];
 static FILE *input,*output,*console;
 static CURL *curl;
 static struct ks_options *opt;
@@ -384,6 +383,7 @@
   char line[MAX_LINE];
   int failed=0;
   struct keylist *keylist=NULL,*keyptr=NULL;
+  char *proxy=NULL;
 
   console=stderr;
 
@@ -479,19 +479,16 @@
 	  if(strncasecmp(start,"http-proxy",10)==0)
 	    {
 	      if(no)
-		proxy[0]='\0';
-	      else if(start[10]=='=')
 		{
-		  strncpy(proxy,&start[11],MAX_PROXY);
-		  proxy[MAX_PROXY]='\0';
+		  free(proxy);
+		  proxy=strdup("");
 		}
-	      else if(start[10]=='\0')
+	      else if(start[10]=='=')
 		{
-		  char *http_proxy=getenv(HTTP_PROXY_ENV);
-		  if(http_proxy)
+		  if(strlen(&start[11])<MAX_PROXY)
 		    {
-		      strncpy(proxy,http_proxy,MAX_PROXY);
-		      proxy[MAX_PROXY]='\0';
+		      free(proxy);
+		      proxy=strdup(&start[11]);
 		    }
 		}
 	    }
@@ -531,13 +528,16 @@
 
   curl_easy_setopt(curl,CURLOPT_ERRORBUFFER,errorbuffer);
 
+  if(opt->auth)
+    curl_easy_setopt(curl,CURLOPT_USERPWD,opt->auth);
+
   if(opt->debug)
     {
       curl_easy_setopt(curl,CURLOPT_STDERR,console);
       curl_easy_setopt(curl,CURLOPT_VERBOSE,1);
     }
 
-  if(proxy[0])
+  if(proxy)
     curl_easy_setopt(curl,CURLOPT_PROXY,proxy);
 
 #if 0
@@ -704,5 +704,12 @@
   if(output!=stdout)
     fclose(output);
 
+  free_ks_options(opt);
+
+  if(curl)
+    curl_easy_cleanup(curl);
+
+  free(proxy);
+
   return ret;
 }
Index: gnupg/keyserver/gpgkeys_http.c
diff -u gnupg/keyserver/gpgkeys_http.c:1.18 gnupg/keyserver/gpgkeys_http.c:1.19
--- gnupg/keyserver/gpgkeys_http.c:1.18	Thu Jun 23 06:26:01 2005
+++ gnupg/keyserver/gpgkeys_http.c	Fri Jun 24 01:42:35 2005
@@ -48,12 +48,6 @@
 static char path[URLMAX_PATH+1];
 static FILE *input,*output,*console;
 
-#ifdef __riscos__
-#define HTTP_PROXY_ENV           "GnuPG$HttpProxy"
-#else
-#define HTTP_PROXY_ENV           "http_proxy"
-#endif
-
 static int
 get_key(char *getkey)
 {
Index: gnupg/keyserver/gpgkeys_mailto.in
diff -u gnupg/keyserver/gpgkeys_mailto.in:1.8 gnupg/keyserver/gpgkeys_mailto.in:1.9
--- gnupg/keyserver/gpgkeys_mailto.in:1.8	Tue May 31 10:39:15 2005
+++ gnupg/keyserver/gpgkeys_mailto.in	Fri Jun 24 01:42:35 2005
@@ -27,7 +27,7 @@
 
 sub VERSION_MESSAGE ()
 {
-    print STDOUT "gpgkeys_mailto (GnuPG) 1.3.91-cvs\n";
+    print STDOUT "gpgkeys_mailto (GnuPG) @VERSION@\n";
 }
 
 sub HELP_MESSAGE ()
Index: gnupg/keyserver/gpgkeys_test.in
diff -u gnupg/keyserver/gpgkeys_test.in:1.4 gnupg/keyserver/gpgkeys_test.in:1.5
--- gnupg/keyserver/gpgkeys_test.in:1.4	Tue May 31 10:39:14 2005
+++ gnupg/keyserver/gpgkeys_test.in	Fri Jun 24 01:42:35 2005
@@ -26,7 +26,7 @@
 
 sub VERSION_MESSAGE ()
 {
-    print STDOUT "gpgkeys_test (GnuPG) 1.3.91-cvs\n";
+    print STDOUT "gpgkeys_test (GnuPG) @VERSION@\n";
 }
 
 sub HELP_MESSAGE ()




More information about the Gnupg-commits mailing list