diff options
author | David Shaw <[email protected]> | 2005-08-18 04:17:20 +0000 |
---|---|---|
committer | David Shaw <[email protected]> | 2005-08-18 04:17:20 +0000 |
commit | e9b444a9d09de8ccbe0295dae33e6abcf8e79b77 (patch) | |
tree | ebf51c02682e8d3af3ec2077c10f40d181bc8931 /keyserver/gpgkeys_ldap.c | |
parent | Experimental code to improve AES performance. Got about 25% on ia32. (diff) | |
download | gnupg-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.c | 13 |
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; |