From 3011a392843f4a34587309187793cda8eb388475 Mon Sep 17 00:00:00 2001 From: David Shaw Date: Tue, 11 Apr 2006 03:00:50 +0000 Subject: * ksutil.h, ksutil.c (classify_ks_search): Add KS_SEARCH_KEYID_SHORT and KS_SEARCH_KEYID_LONG to search for a key ID. * gpgkeys_ldap.c (search_key): Use it here to flip from pgpUserID searches to pgpKeyID or pgpCertID. --- keyserver/ksutil.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'keyserver/ksutil.c') diff --git a/keyserver/ksutil.c b/keyserver/ksutil.c index 53fa294c2..9bd697fff 100644 --- a/keyserver/ksutil.c +++ b/keyserver/ksutil.c @@ -346,8 +346,6 @@ classify_ks_search(const char **search) { switch(**search) { - default: - return KS_SEARCH_SUBSTR; case '*': (*search)++; return KS_SEARCH_SUBSTR; @@ -355,10 +353,30 @@ classify_ks_search(const char **search) (*search)++; return KS_SEARCH_EXACT; case '<': + (*search)++; return KS_SEARCH_MAIL; case '@': (*search)++; return KS_SEARCH_MAILSUB; + case '0': + if((*search)[1]=='x') + { + if(strlen(*search)==10 + && strspn(*search,"abcdefABCDEF1234567890x")==10) + { + (*search)+=2; + return KS_SEARCH_KEYID_SHORT; + } + else if(strlen(*search)==18 + && strspn(*search,"abcdefABCDEF1234567890x")==18) + { + (*search)+=2; + return KS_SEARCH_KEYID_LONG; + } + } + /* fall through */ + default: + return KS_SEARCH_SUBSTR; } } -- cgit v1.2.3