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