mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-09 12:54:23 +01:00
* gpgkeys_curl.c (get_key, writer): New function to wrap around fwrite to
avoid DLL access problem on win32. * gpgkeys_http.c (main, get_key): Properly pass authentication info through to the http library.
This commit is contained in:
parent
b96038387b
commit
0361c6f01b
@ -1,5 +1,11 @@
|
|||||||
2004-12-22 David Shaw <dshaw@jabberwocky.com>
|
2004-12-22 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
|
* gpgkeys_curl.c (get_key, writer): New function to wrap around
|
||||||
|
fwrite to avoid DLL access problem on win32.
|
||||||
|
|
||||||
|
* gpgkeys_http.c (main, get_key): Properly pass authentication
|
||||||
|
info through to the http library.
|
||||||
|
|
||||||
* Makefile.am: Build gpgkeys_http or gpgkeys_curl as needed.
|
* Makefile.am: Build gpgkeys_http or gpgkeys_curl as needed.
|
||||||
|
|
||||||
* gpgkeys_curl.c (main, get_key): Minor tweaks to work with either
|
* gpgkeys_curl.c (main, get_key): Minor tweaks to work with either
|
||||||
|
@ -62,6 +62,14 @@ curl_err_to_gpg_err(CURLcode error)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* We wrap fwrite so to avoid DLL problems on Win32 (see curl faq for
|
||||||
|
more). */
|
||||||
|
static size_t
|
||||||
|
writer(const void *ptr,size_t size,size_t nmemb,void *stream)
|
||||||
|
{
|
||||||
|
return fwrite(ptr,size,nmemb,stream);
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
get_key(char *getkey)
|
get_key(char *getkey)
|
||||||
{
|
{
|
||||||
@ -77,7 +85,7 @@ get_key(char *getkey)
|
|||||||
host,port[0]?":":"",port[0]?port:"",path[0]?"":"/",path);
|
host,port[0]?":":"",port[0]?port:"",path[0]?"":"/",path);
|
||||||
|
|
||||||
curl_easy_setopt(curl,CURLOPT_URL,request);
|
curl_easy_setopt(curl,CURLOPT_URL,request);
|
||||||
curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,fwrite);
|
curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,writer);
|
||||||
curl_easy_setopt(curl,CURLOPT_FILE,output);
|
curl_easy_setopt(curl,CURLOPT_FILE,output);
|
||||||
curl_easy_setopt(curl,CURLOPT_ERRORBUFFER,errorbuffer);
|
curl_easy_setopt(curl,CURLOPT_ERRORBUFFER,errorbuffer);
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ extern int optind;
|
|||||||
|
|
||||||
static int verbose=0;
|
static int verbose=0;
|
||||||
static unsigned int http_flags=0;
|
static unsigned int http_flags=0;
|
||||||
static char host[80]={'\0'},proxy[80]={'\0'},port[10]={'\0'},path[1024]={'\0'};
|
static char auth[128]={'\0'},host[80]={'\0'},proxy[80]={'\0'},port[10]={'\0'},path[1024]={'\0'};
|
||||||
static FILE *input=NULL,*output=NULL,*console=NULL;
|
static FILE *input=NULL,*output=NULL,*console=NULL;
|
||||||
|
|
||||||
#define BEGIN "-----BEGIN PGP PUBLIC KEY BLOCK-----"
|
#define BEGIN "-----BEGIN PGP PUBLIC KEY BLOCK-----"
|
||||||
@ -72,8 +72,8 @@ get_key(char *getkey)
|
|||||||
return KEYSERVER_NO_MEMORY;
|
return KEYSERVER_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
sprintf(request,"http://%s%s%s%s%s",host,port[0]?":":"",
|
sprintf(request,"http://%s%s%s%s%s%s%s",auth[0]?auth:"",auth[0]?"@":"",
|
||||||
port[0]?port:"",path[0]?"":"/",path);
|
host,port[0]?":":"",port[0]?port:"",path[0]?"":"/",path);
|
||||||
|
|
||||||
rc=http_open_document(&hd,request,http_flags,proxy[0]?proxy:NULL);
|
rc=http_open_document(&hd,request,http_flags,proxy[0]?proxy:NULL);
|
||||||
if(rc!=0)
|
if(rc!=0)
|
||||||
@ -219,6 +219,12 @@ main(int argc,char *argv[])
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(sscanf(line,"AUTH %127s\n",auth)==1)
|
||||||
|
{
|
||||||
|
auth[127]='\0';
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if(sscanf(line,"HOST %79s\n",host)==1)
|
if(sscanf(line,"HOST %79s\n",host)==1)
|
||||||
{
|
{
|
||||||
host[79]='\0';
|
host[79]='\0';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user