1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-02 22:46:30 +02:00

* ksutil.h, ksutil.c (parse_ks_options): Remove exact-name and

exact-email.  (classify_ks_search): Mimic the gpg search modes instead
with *, =, <, and @.

* gpgkeys_ldap.c (search_key), gpgkeys_hkp.c (search_key): Call them
here.  Suggested by Jason Harris.
This commit is contained in:
David Shaw 2005-08-26 04:24:46 +00:00
parent a21fedf555
commit aec65a94d8
5 changed files with 60 additions and 72 deletions

View file

@ -283,54 +283,22 @@ get_key(char *getkey)
return KEYSERVER_OK;
}
int
search_key(char *searchkey)
static int
search_key(const char *searchkey)
{
CURLcode res;
char *request=NULL;
char *searchkey_encoded=NULL;
int ret=KEYSERVER_INTERNAL_ERROR;
enum ks_search_type search_type;
if(opt->flags.exact_name)
{
char *bracketed;
search_type=classify_ks_search(&searchkey);
bracketed=malloc(strlen(searchkey)+2+1);
if(!bracketed)
{
fprintf(console,"gpgkeys: out of memory\n");
ret=KEYSERVER_NO_MEMORY;
goto fail;
}
strcpy(bracketed,searchkey);
strcat(bracketed," <");
searchkey_encoded=curl_escape(bracketed,0);
free(bracketed);
}
else if(opt->flags.exact_email)
{
char *bracketed;
bracketed=malloc(1+strlen(searchkey)+1+1);
if(!bracketed)
{
fprintf(console,"gpgkeys: out of memory\n");
ret=KEYSERVER_NO_MEMORY;
goto fail;
}
strcpy(bracketed,"<");
strcat(bracketed,searchkey);
strcat(bracketed,">");
searchkey_encoded=curl_escape(bracketed,0);
free(bracketed);
}
else
searchkey_encoded=curl_escape(searchkey,0);
if(opt->debug)
fprintf(console,"gpgkeys: search type is %d, and key is \"%s\"\n",
search_type,searchkey);
searchkey_encoded=curl_escape(searchkey,0);
if(!searchkey_encoded)
{
fprintf(console,"gpgkeys: out of memory\n");
@ -359,7 +327,7 @@ search_key(char *searchkey)
append_path(request,"/pks/lookup?op=index&options=mr&search=");
strcat(request,searchkey_encoded);
if(opt->flags.exact_name || opt->flags.exact_email)
if(search_type!=KS_SEARCH_SUBSTR)
strcat(request,"&exact=on");
if(opt->verbose>2)