mirror of
git://git.gnupg.org/gnupg.git
synced 2025-04-17 15:44:34 +02:00
* keyserver.c (curl_can_handle): New. Do a runtime check against libcurl
to see if it can handle a particular protocol. (keyserver_typemap): Call it here. * Makefile.am: Pull in libcurl for curl_version_info() if used.
This commit is contained in:
parent
431de51f10
commit
a918d63fd5
@ -1,3 +1,11 @@
|
|||||||
|
2005-07-20 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
|
* keyserver.c (curl_can_handle): New. Do a runtime check against
|
||||||
|
libcurl to see if it can handle a particular protocol.
|
||||||
|
(keyserver_typemap): Call it here.
|
||||||
|
|
||||||
|
* Makefile.am: Pull in libcurl for curl_version_info() if used.
|
||||||
|
|
||||||
2005-07-19 Werner Koch <wk@g10code.com>
|
2005-07-19 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* g10.c, options.h: New option --limit-card-insert-tries.
|
* g10.c, options.h: New option --limit-card-insert-tries.
|
||||||
|
@ -124,7 +124,8 @@ gpgv_SOURCES = gpgv.c \
|
|||||||
verify.c
|
verify.c
|
||||||
|
|
||||||
LDADD = $(needed_libs) $(other_libs) @ZLIBS@ @W32LIBS@ @LIBREADLINE@
|
LDADD = $(needed_libs) $(other_libs) @ZLIBS@ @W32LIBS@ @LIBREADLINE@
|
||||||
gpg_LDADD = $(LDADD) @DLLIBS@ @NETLIBS@ @LIBUSB@
|
gpg_LDADD = $(LDADD) @DLLIBS@ @NETLIBS@ @LIBUSB@ @LIBCURL@
|
||||||
|
##gpg_CPPFLAGS = @LIBCURL_CPPFLAGS@
|
||||||
|
|
||||||
$(PROGRAMS): $(needed_libs)
|
$(PROGRAMS): $(needed_libs)
|
||||||
|
|
||||||
|
@ -25,6 +25,9 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#ifdef HAVE_LIBCURL
|
||||||
|
#include <curl/curl.h>
|
||||||
|
#endif
|
||||||
#include "filter.h"
|
#include "filter.h"
|
||||||
#include "keydb.h"
|
#include "keydb.h"
|
||||||
#include "status.h"
|
#include "status.h"
|
||||||
@ -155,6 +158,10 @@ free_keyserver_spec(struct keyserver_spec *keyserver)
|
|||||||
m_free(keyserver);
|
m_free(keyserver);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* TODO: once we cut over to an all-curl world, we don't need this
|
||||||
|
parser any longer so it can be removed, or at least moved to
|
||||||
|
keyserver/ksutil.c for limited use in gpgkeys_ldap or the like. */
|
||||||
|
|
||||||
struct keyserver_spec *
|
struct keyserver_spec *
|
||||||
parse_keyserver_uri(const char *uri,int require_scheme,
|
parse_keyserver_uri(const char *uri,int require_scheme,
|
||||||
const char *configname,unsigned int configlineno)
|
const char *configname,unsigned int configlineno)
|
||||||
@ -822,6 +829,31 @@ keyserver_search_prompt(IOBUF buffer,const char *searchstr)
|
|||||||
m_free(line);
|
m_free(line);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
curl_can_handle(const char *scheme)
|
||||||
|
{
|
||||||
|
#if defined(HAVE_LIBCURL)
|
||||||
|
|
||||||
|
const char * const *proto;
|
||||||
|
curl_version_info_data *data=curl_version_info(CURLVERSION_NOW);
|
||||||
|
|
||||||
|
assert(data);
|
||||||
|
|
||||||
|
for(proto=data->protocols;*proto;proto++)
|
||||||
|
if(strcasecmp(*proto,scheme)==0)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
#elif defined(FAKE_CURL)
|
||||||
|
|
||||||
|
/* If we're faking curl, then we only support HTTP */
|
||||||
|
if(strcasecmp(scheme,"http")==0)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* We sometimes want to use a different gpgkeys_xxx for a given
|
/* We sometimes want to use a different gpgkeys_xxx for a given
|
||||||
protocol (for example, ldaps is handled by gpgkeys_ldap). Map
|
protocol (for example, ldaps is handled by gpgkeys_ldap). Map
|
||||||
these here. */
|
these here. */
|
||||||
@ -830,22 +862,8 @@ keyserver_typemap(const char *type)
|
|||||||
{
|
{
|
||||||
if(strcmp(type,"ldaps")==0)
|
if(strcmp(type,"ldaps")==0)
|
||||||
return "ldap";
|
return "ldap";
|
||||||
#ifdef FTP_VIA_LIBCURL
|
else if(curl_can_handle(type))
|
||||||
else if(strcmp(type,"ftp")==0)
|
|
||||||
return "curl";
|
return "curl";
|
||||||
#endif
|
|
||||||
#ifdef FTPS_VIA_LIBCURL
|
|
||||||
else if(strcmp(type,"ftps")==0)
|
|
||||||
return "curl";
|
|
||||||
#endif
|
|
||||||
#ifdef HTTP_VIA_LIBCURL
|
|
||||||
else if(strcmp(type,"http")==0)
|
|
||||||
return "curl";
|
|
||||||
#endif
|
|
||||||
#ifdef HTTPS_VIA_LIBCURL
|
|
||||||
else if(strcmp(type,"https")==0)
|
|
||||||
return "curl";
|
|
||||||
#endif
|
|
||||||
else
|
else
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user