aboutsummaryrefslogtreecommitdiffstats
path: root/keyserver/gpgkeys_ldap.c
diff options
context:
space:
mode:
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;