diff options
author | David Shaw <[email protected]> | 2005-08-26 04:24:46 +0000 |
---|---|---|
committer | David Shaw <[email protected]> | 2005-08-26 04:24:46 +0000 |
commit | aec65a94d8df51606cc75516c7693cdf8b1d6787 (patch) | |
tree | 7cf6fce0f43ef016d377c6d40bb54930a08847d8 /keyserver/gpgkeys_hkp.c | |
parent | * gpg.sgml: Fix documentation for setpref/updpref, document (diff) | |
download | gnupg-aec65a94d8df51606cc75516c7693cdf8b1d6787.tar.gz gnupg-aec65a94d8df51606cc75516c7693cdf8b1d6787.zip |
* 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.
Diffstat (limited to 'keyserver/gpgkeys_hkp.c')
-rw-r--r-- | keyserver/gpgkeys_hkp.c | 50 |
1 files changed, 9 insertions, 41 deletions
diff --git a/keyserver/gpgkeys_hkp.c b/keyserver/gpgkeys_hkp.c index a0ea31081..dc05a619e 100644 --- a/keyserver/gpgkeys_hkp.c +++ b/keyserver/gpgkeys_hkp.c @@ -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) |