mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
* gpgkeys_hkp.c (main, srv_replace): Minor tweaks to use the DNS-SD
names ("pgpkey-http" and "pgpkey-https") in SRV lookups instead of "hkp" and "hkps".
This commit is contained in:
parent
2193992559
commit
2e835fd6ab
@ -1,3 +1,9 @@
|
||||
2009-07-06 David Shaw <dshaw@jabberwocky.com>
|
||||
|
||||
* gpgkeys_hkp.c (main, srv_replace): Minor tweaks to use the
|
||||
DNS-SD names ("pgpkey-http" and "pgpkey-https") in SRV lookups
|
||||
instead of "hkp" and "hkps".
|
||||
|
||||
2009-06-24 Werner Koch <wk@g10code.com>
|
||||
|
||||
* gpgkeys_ldap.c (send_key): Do not deep free a NULL modlist.
|
||||
|
@ -489,18 +489,21 @@ fail_all(struct keylist *keylist,int err)
|
||||
/* If there is a SRV record, take the highest ranked possibility.
|
||||
This is a hack, as we don't proceed downwards. */
|
||||
static void
|
||||
srv_replace(void)
|
||||
srv_replace(const char *srvtag)
|
||||
{
|
||||
#ifdef USE_DNS_SRV
|
||||
struct srventry *srvlist=NULL;
|
||||
int srvcount;
|
||||
|
||||
if(1+strlen(opt->scheme)+6+strlen(opt->host)+1<=MAXDNAME)
|
||||
if(!srvtag)
|
||||
return;
|
||||
|
||||
if(1+strlen(srvtag)+6+strlen(opt->host)+1<=MAXDNAME)
|
||||
{
|
||||
char srvname[MAXDNAME];
|
||||
|
||||
strcpy(srvname,"_");
|
||||
strcat(srvname,opt->scheme);
|
||||
strcat(srvname,srvtag);
|
||||
strcat(srvname,"._tcp.");
|
||||
strcat(srvname,opt->host);
|
||||
srvcount=getsrv(srvname,&srvlist);
|
||||
@ -714,17 +717,26 @@ main(int argc,char *argv[])
|
||||
port=opt->port;
|
||||
else if(try_srv)
|
||||
{
|
||||
char *srvtag;
|
||||
|
||||
if(ks_strcasecmp(opt->scheme,"hkp")==0)
|
||||
srvtag="pgpkey-http";
|
||||
else if(ks_strcasecmp(opt->scheme,"hkps")==0)
|
||||
srvtag="pgpkey-https";
|
||||
else
|
||||
srvtag=NULL;
|
||||
|
||||
#ifdef HAVE_LIBCURL
|
||||
/* We're using libcurl, so fake SRV support via our wrapper.
|
||||
This isn't as good as true SRV support, as we do not try all
|
||||
possible targets at one particular level and work our way
|
||||
down the list, but it's better than nothing. */
|
||||
srv_replace();
|
||||
srv_replace(srvtag);
|
||||
#else
|
||||
/* We're using our internal curl shim, so we can use its (true)
|
||||
SRV support. Obviously, CURLOPT_SRVTAG_GPG_HACK isn't a real
|
||||
libcurl option. It's specific to our shim. */
|
||||
curl_easy_setopt(curl,CURLOPT_SRVTAG_GPG_HACK,opt->scheme);
|
||||
curl_easy_setopt(curl,CURLOPT_SRVTAG_GPG_HACK,srvtag);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user