mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-23 10:29:58 +01:00
* keyserver.c (parse_keyserver_uri): Allow RFC-2732 IPv6 [literal
address] syntax in keyserver URLs. (keyserver_typemap): Map ftps if we are supporting it.
This commit is contained in:
parent
eb0ee0ba44
commit
e6cbb88f61
@ -1,3 +1,9 @@
|
|||||||
|
2005-01-26 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
|
* keyserver.c (parse_keyserver_uri): Allow RFC-2732 IPv6 [literal
|
||||||
|
address] syntax in keyserver URLs.
|
||||||
|
(keyserver_typemap): Map ftps if we are supporting it.
|
||||||
|
|
||||||
2005-01-25 Werner Koch <wk@g10code.com>
|
2005-01-25 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* keygen.c (do_generate_keypair): Don't continue after an error;
|
* keygen.c (do_generate_keypair): Don't continue after an error;
|
||||||
|
@ -166,12 +166,26 @@ parse_keyserver_uri(const char *uri,int require_scheme,
|
|||||||
/* Get the scheme */
|
/* Get the scheme */
|
||||||
|
|
||||||
for(idx=uri,count=0;*idx && *idx!=':';idx++)
|
for(idx=uri,count=0;*idx && *idx!=':';idx++)
|
||||||
|
{
|
||||||
count++;
|
count++;
|
||||||
|
|
||||||
|
/* Do we see the start of an RFC-2732 ipv6 address here? If so,
|
||||||
|
there clearly isn't a scheme so get out early. */
|
||||||
|
if(*idx=='[')
|
||||||
|
{
|
||||||
|
/* Was the '[' the first thing in the string? If not, we
|
||||||
|
have a mangled scheme with a [ in it so fail. */
|
||||||
|
if(count==1)
|
||||||
|
break;
|
||||||
|
else
|
||||||
|
goto fail;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(count==0)
|
if(count==0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
if(*idx=='\0')
|
if(*idx=='\0' || *idx=='[')
|
||||||
{
|
{
|
||||||
if(require_scheme)
|
if(require_scheme)
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -237,6 +251,20 @@ parse_keyserver_uri(const char *uri,int require_scheme,
|
|||||||
uri+=count+1;
|
uri+=count+1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Is it an RFC-2732 ipv6 [literal address] ? */
|
||||||
|
if(*uri=='[')
|
||||||
|
{
|
||||||
|
for(idx=uri+1,count=1;*idx
|
||||||
|
&& (isxdigit(*idx) || *idx==':' || *idx=='.');idx++)
|
||||||
|
count++;
|
||||||
|
|
||||||
|
/* Is the ipv6 literal address terminated? */
|
||||||
|
if(*idx==']')
|
||||||
|
count++;
|
||||||
|
else
|
||||||
|
goto fail;
|
||||||
|
}
|
||||||
|
else
|
||||||
for(idx=uri,count=0;*idx && *idx!=':' && *idx!='/';idx++)
|
for(idx=uri,count=0;*idx && *idx!=':' && *idx!='/';idx++)
|
||||||
count++;
|
count++;
|
||||||
|
|
||||||
@ -790,6 +818,10 @@ keyserver_typemap(const char *type)
|
|||||||
else if(strcmp(type,"ftp")==0)
|
else if(strcmp(type,"ftp")==0)
|
||||||
return "curl";
|
return "curl";
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef FTPS_VIA_LIBCURL
|
||||||
|
else if(strcmp(type,"ftps")==0)
|
||||||
|
return "curl";
|
||||||
|
#endif
|
||||||
#ifdef HTTP_VIA_LIBCURL
|
#ifdef HTTP_VIA_LIBCURL
|
||||||
else if(strcmp(type,"http")==0)
|
else if(strcmp(type,"http")==0)
|
||||||
return "curl";
|
return "curl";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user