diff options
author | David Shaw <[email protected]> | 2005-08-18 21:14:16 +0000 |
---|---|---|
committer | David Shaw <[email protected]> | 2005-08-18 21:14:16 +0000 |
commit | 70bf6d92046033e3ac66b8daf1f11a6478b0563c (patch) | |
tree | adb4cafce8430c589a9b26a6df702ec177f6c772 /keyserver/gpgkeys_hkp.c | |
parent | * gpgkeys_ldap.c (ldap_quote): \-quote a string for LDAP. (diff) | |
download | gnupg-70bf6d92046033e3ac66b8daf1f11a6478b0563c.tar.gz gnupg-70bf6d92046033e3ac66b8daf1f11a6478b0563c.zip |
* ksutil.h, ksutil.c (parse_ks_options): New keyserver-option exact-name.
The last of exact-name and exact-email overrides the earlier.
* gpgkeys_ldap.c (search_key), gpgkeys_hkp.c (search_key): Use it here to
do a name-only search.
Diffstat (limited to 'keyserver/gpgkeys_hkp.c')
-rw-r--r-- | keyserver/gpgkeys_hkp.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/keyserver/gpgkeys_hkp.c b/keyserver/gpgkeys_hkp.c index b231420e9..a0ea31081 100644 --- a/keyserver/gpgkeys_hkp.c +++ b/keyserver/gpgkeys_hkp.c @@ -291,7 +291,25 @@ search_key(char *searchkey) char *searchkey_encoded=NULL; int ret=KEYSERVER_INTERNAL_ERROR; - if(opt->flags.exact_email) + if(opt->flags.exact_name) + { + char *bracketed; + + 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; @@ -341,7 +359,7 @@ search_key(char *searchkey) append_path(request,"/pks/lookup?op=index&options=mr&search="); strcat(request,searchkey_encoded); - if(opt->flags.exact_email) + if(opt->flags.exact_name || opt->flags.exact_email) strcat(request,"&exact=on"); if(opt->verbose>2) |