From c7102948c58ec797995297699bac64748d168bfd Mon Sep 17 00:00:00 2001
From: Jonathan McDowell <noodles@meepok>
Date: Thu, 24 Apr 2008 21:12:09 +0100
Subject: [PATCH] Allow the use of search text for gets, rather than just
 keyids

  Apparently PGP Desktop sends a get with search text rather than a
  specific key id, so add support for that. Reported by Timothy Legge.
---
 lookup.c | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/lookup.c b/lookup.c
index d48bc3f..3431690 100644
--- a/lookup.c
+++ b/lookup.c
@@ -87,6 +87,7 @@ int main(int argc, char *argv[])
 	struct openpgp_publickey *publickey = NULL;
 	struct openpgp_packet_list *packets = NULL;
 	struct openpgp_packet_list *list_end = NULL;
+	int result;
 
 	params = getcgivars(argc, argv);
 	for (i = 0; params != NULL && params[i] != NULL; i += 2) {
@@ -162,10 +163,21 @@ int main(int argc, char *argv[])
 		config.dbbackend->initdb(true);
 		switch (op) {
 		case OP_GET:
-			logthing(LOGTHING_NOTICE, "Getting keyid 0x%llX",
+			if (ishex) {
+				logthing(LOGTHING_NOTICE, 
+					"Getting keyid 0x%llX",
 					keyid);
-			if (config.dbbackend->fetch_key(keyid, &publickey,
-					false)) {
+				result = config.dbbackend->fetch_key(keyid,
+					&publickey, false);
+			} else {
+				logthing(LOGTHING_NOTICE, 
+					"Getting key(s) for search text %s",
+					search);
+				result = config.dbbackend->fetch_key_text(
+					search,
+					&publickey);
+			}
+			if (result) {
 				puts("<pre>");
 				cleankeys(publickey);
 				flatten_publickey(publickey,
-- 
2.39.5