aboutsummaryrefslogtreecommitdiffstats
path: root/keyserver/gpgkeys_ldap.c
diff options
context:
space:
mode:
authorDavid Shaw <[email protected]>2005-08-18 04:17:20 +0000
committerDavid Shaw <[email protected]>2005-08-18 04:17:20 +0000
commite9b444a9d09de8ccbe0295dae33e6abcf8e79b77 (patch)
treeebf51c02682e8d3af3ec2077c10f40d181bc8931 /keyserver/gpgkeys_ldap.c
parentExperimental code to improve AES performance. Got about 25% on ia32. (diff)
downloadgnupg-e9b444a9d09de8ccbe0295dae33e6abcf8e79b77.tar.gz
gnupg-e9b444a9d09de8ccbe0295dae33e6abcf8e79b77.zip
* ksutil.h, ksutil.c (parse_ks_options): New keyserver-option
exact-email. * gpgkeys_ldap.c (search_key), gpgkeys_hkp.c (search_key): Use it here to do an email-only search.
Diffstat (limited to 'keyserver/gpgkeys_ldap.c')
-rw-r--r--keyserver/gpgkeys_ldap.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/keyserver/gpgkeys_ldap.c b/keyserver/gpgkeys_ldap.c
index da7b2c7e2..3931ef2bb 100644
--- a/keyserver/gpgkeys_ldap.c
+++ b/keyserver/gpgkeys_ldap.c
@@ -1141,7 +1141,7 @@ search_key(char *searchkey)
struct keylist *dupelist=NULL;
/* The maximum size of the search, including the optional stuff and
the trailing \0 */
- char search[2+12+MAX_LINE+2+15+14+1+1];
+ char search[2+12+1+MAX_LINE+1+2+15+14+1+1];
char *attrs[]={"pgpcertid","pgpuserid","pgprevoked","pgpdisabled",
"pgpkeycreatetime","pgpkeyexpiretime","modifytimestamp",
"pgpkeysize","pgpkeytype",NULL};
@@ -1150,9 +1150,11 @@ search_key(char *searchkey)
/* Build the search string */
- sprintf(search,"%s(pgpuserid=*%s*)%s%s%s",
+ sprintf(search,"%s(pgpuserid=*%s%s%s*)%s%s%s",
(!(opt->flags.include_disabled&&opt->flags.include_revoked))?"(&":"",
+ opt->flags.exact_email?"<":"",
searchkey,
+ opt->flags.exact_email?">":"",
opt->flags.include_disabled?"":"(pgpdisabled=0)",
opt->flags.include_revoked?"":"(pgprevoked=0)",
!(opt->flags.include_disabled&&opt->flags.include_revoked)?")":"");
@@ -1198,7 +1200,12 @@ search_key(char *searchkey)
}
if(err==LDAP_SIZELIMIT_EXCEEDED)
- fprintf(console,"gpgkeys: search results exceeded server limit. First %d results shown.\n",count);
+ {
+ if(count==1)
+ fprintf(console,"gpgkeys: search results exceeded server limit. First %d result shown.\n",count);
+ else
+ fprintf(console,"gpgkeys: search results exceeded server limit. First %d results shown.\n",count);
+ }
free_keylist(dupelist);
dupelist=NULL;