mirror of
git://git.gnupg.org/gnupg.git
synced 2025-03-24 22:09:57 +01:00
* options.h, keyserver.c (parse_keyserver_uri): Properly parse auth data
from URLs and pass to keyserver helpers.
This commit is contained in:
parent
0361c6f01b
commit
f3c33b8768
@ -1,5 +1,8 @@
|
||||
2004-12-22 David Shaw <dshaw@jabberwocky.com>
|
||||
|
||||
* options.h, keyserver.c (parse_keyserver_uri): Properly parse
|
||||
auth data from URLs and pass to keyserver helpers.
|
||||
|
||||
* 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.
|
||||
|
@ -218,6 +218,23 @@ parse_keyserver_uri(const char *uri,int require_scheme,
|
||||
if(!assume_hkp)
|
||||
uri+=2;
|
||||
|
||||
/* Do we have userinfo auth data present? */
|
||||
for(idx=uri,count=0;*idx && *idx!='@' && *idx!='/';idx++)
|
||||
count++;
|
||||
|
||||
/* We found a @ before the slash, so that means everything
|
||||
before the @ is auth data. */
|
||||
if(*idx=='@')
|
||||
{
|
||||
if(count==0)
|
||||
goto fail;
|
||||
|
||||
keyserver->auth=m_alloc(count+1);
|
||||
strncpy(keyserver->auth,uri,count);
|
||||
keyserver->auth[count]='\0';
|
||||
uri+=count+1;
|
||||
}
|
||||
|
||||
for(idx=uri,count=0;*idx && *idx!=':' && *idx!='/';idx++)
|
||||
count++;
|
||||
|
||||
@ -846,6 +863,9 @@ keyserver_spawn(int action,STRLIST list,KEYDB_SEARCH_DESC *desc,
|
||||
fprintf(spawn->tochild,"OPAQUE %s\n",keyserver->opaque);
|
||||
else
|
||||
{
|
||||
if(keyserver->auth)
|
||||
fprintf(spawn->tochild,"AUTH %s\n",keyserver->auth);
|
||||
|
||||
if(keyserver->host)
|
||||
fprintf(spawn->tochild,"HOST %s\n",keyserver->host);
|
||||
|
||||
|
@ -129,6 +129,7 @@ struct
|
||||
{
|
||||
char *uri;
|
||||
char *scheme;
|
||||
char *auth;
|
||||
char *host;
|
||||
char *port;
|
||||
char *path;
|
||||
|
Loading…
x
Reference in New Issue
Block a user