mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-10 13:04:23 +01:00
* http.c (connect_server, send_request): Use the URI scheme as the SRV tag
rather than hard-coding _hkp.
This commit is contained in:
parent
901f13aeda
commit
83d3914317
@ -1,3 +1,8 @@
|
|||||||
|
2004-10-18 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
|
* http.c (connect_server, send_request): Use the URI scheme as the
|
||||||
|
SRV tag rather than hard-coding _hkp.
|
||||||
|
|
||||||
2004-10-16 David Shaw <dshaw@jabberwocky.com>
|
2004-10-16 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
* http.c (connect_server): [_WIN32] actually fill in the sin_addr
|
* http.c (connect_server): [_WIN32] actually fill in the sin_addr
|
||||||
|
28
util/http.c
28
util/http.c
@ -72,7 +72,8 @@ static int send_request( HTTP_HD hd, const char *proxy );
|
|||||||
static byte *build_rel_path( PARSED_URI uri );
|
static byte *build_rel_path( PARSED_URI uri );
|
||||||
static int parse_response( HTTP_HD hd );
|
static int parse_response( HTTP_HD hd );
|
||||||
|
|
||||||
static int connect_server(const char *server, ushort port, unsigned int flags);
|
static int connect_server( const char *server, ushort port, unsigned int flags,
|
||||||
|
const char *srvtag );
|
||||||
static int write_server( int sock, const char *data, size_t length );
|
static int write_server( int sock, const char *data, size_t length );
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
@ -309,10 +310,9 @@ do_parse_uri( PARSED_URI uri, int only_local_part )
|
|||||||
*p2++ = 0;
|
*p2++ = 0;
|
||||||
strlwr( p );
|
strlwr( p );
|
||||||
uri->scheme = p;
|
uri->scheme = p;
|
||||||
|
if(strcmp(uri->scheme,"http")==0)
|
||||||
uri->port = 80;
|
uri->port = 80;
|
||||||
if( !strcmp( uri->scheme, "http" ) )
|
else if(strcmp(uri->scheme,"hkp")==0)
|
||||||
;
|
|
||||||
else if( !strcmp( uri->scheme, "x-hkp" ) ) /* same as HTTP */
|
|
||||||
uri->port = 11371;
|
uri->port = 11371;
|
||||||
else
|
else
|
||||||
return G10ERR_INVALID_URI; /* Unsupported scheme */
|
return G10ERR_INVALID_URI; /* Unsupported scheme */
|
||||||
@ -525,7 +525,7 @@ send_request( HTTP_HD hd, const char *proxy )
|
|||||||
return G10ERR_NETWORK;
|
return G10ERR_NETWORK;
|
||||||
}
|
}
|
||||||
hd->sock = connect_server( *uri->host? uri->host : "localhost",
|
hd->sock = connect_server( *uri->host? uri->host : "localhost",
|
||||||
uri->port? uri->port : 80, 0 );
|
uri->port? uri->port : 80, 0, NULL );
|
||||||
if(uri->auth)
|
if(uri->auth)
|
||||||
{
|
{
|
||||||
char *x=make_radix64_string(uri->auth,strlen(uri->auth));
|
char *x=make_radix64_string(uri->auth,strlen(uri->auth));
|
||||||
@ -538,7 +538,7 @@ send_request( HTTP_HD hd, const char *proxy )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
hd->sock = connect_server( server, port, hd->flags );
|
hd->sock = connect_server( server, port, hd->flags, hd->uri->scheme );
|
||||||
if(hd->uri->auth)
|
if(hd->uri->auth)
|
||||||
{
|
{
|
||||||
char *x=make_radix64_string(hd->uri->auth,strlen(hd->uri->auth));
|
char *x=make_radix64_string(hd->uri->auth,strlen(hd->uri->auth));
|
||||||
@ -755,7 +755,8 @@ start_server()
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
connect_server( const char *server, ushort port, unsigned int flags )
|
connect_server( const char *server, ushort port, unsigned int flags,
|
||||||
|
const char *srvtag )
|
||||||
{
|
{
|
||||||
int sock=-1,srv,srvcount=0,connected=0,hostfound=0;
|
int sock=-1,srv,srvcount=0,connected=0,hostfound=0;
|
||||||
struct srventry *srvlist=NULL;
|
struct srventry *srvlist=NULL;
|
||||||
@ -794,15 +795,20 @@ connect_server( const char *server, ushort port, unsigned int flags )
|
|||||||
|
|
||||||
#ifdef USE_DNS_SRV
|
#ifdef USE_DNS_SRV
|
||||||
/* Do the SRV thing */
|
/* Do the SRV thing */
|
||||||
if(flags&HTTP_FLAG_TRY_SRV)
|
if(flags&HTTP_FLAG_TRY_SRV && srvtag)
|
||||||
{
|
{
|
||||||
/* We're using SRV, so append the tags */
|
/* We're using SRV, so append the tags */
|
||||||
|
if(1+strlen(srvtag)+6+strlen(server)+1<=MAXDNAME)
|
||||||
|
{
|
||||||
char srvname[MAXDNAME];
|
char srvname[MAXDNAME];
|
||||||
strcpy(srvname,"_hkp._tcp.");
|
|
||||||
strncat(srvname,server,MAXDNAME-11);
|
strcpy(srvname,"_");
|
||||||
srvname[MAXDNAME-1]='\0';
|
strcat(srvname,srvtag);
|
||||||
|
strcat(srvname,"._tcp.");
|
||||||
|
strcat(srvname,server);
|
||||||
srvcount=getsrv(srvname,&srvlist);
|
srvcount=getsrv(srvname,&srvlist);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(srvlist==NULL)
|
if(srvlist==NULL)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user