X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=lookup.c;h=d48bc3f7cdbd30dfb428c1814d83e72c77ceb6ae;hb=3561aed8483fe3076c7689f93fbc94ca63de77b3;hp=5d638eab6ef224100a691bff9f8c170ee9498be5;hpb=42d43e0ec08e249cecf74ec448cb6405b3c89d84;p=onak.git diff --git a/lookup.c b/lookup.c index 5d638ea..d48bc3f 100644 --- a/lookup.c +++ b/lookup.c @@ -4,8 +4,6 @@ * Jonathan McDowell * * Copyright 2002 Project Purple - * - * $Id: lookup.c,v 1.15 2004/05/27 01:25:37 noodles Exp $ */ #include @@ -17,6 +15,9 @@ #include "armor.h" #include "charfuncs.h" +#include "cleankey.h" +#include "cleanup.h" +#include "config.h" #include "getcgi.h" #include "keydb.h" #include "keyindex.h" @@ -39,9 +40,9 @@ void find_keys(char *search, uint64_t keyid, bool ishex, int count = 0; if (ishex) { - count = fetch_key(keyid, &publickey, false); + count = config.dbbackend->fetch_key(keyid, &publickey, false); } else { - count = fetch_key_text(search, &publickey); + count = config.dbbackend->fetch_key_text(search, &publickey); } if (publickey != NULL) { if (mrhkp) { @@ -103,7 +104,7 @@ int main(int argc, char *argv[]) search = params[i+1]; params[i+1] = NULL; if (search != NULL) { - keyid = strtoul(search, &end, 16); + keyid = strtoull(search, &end, 16); if (*search != 0 && end != NULL && *end == 0) { @@ -157,13 +158,16 @@ int main(int argc, char *argv[]) } else { readconfig(NULL); initlogthing("lookup", config.logfile); - initdb(true); + catchsignals(); + config.dbbackend->initdb(true); switch (op) { case OP_GET: - logthing(LOGTHING_NOTICE, "Getting keyid %llX", + logthing(LOGTHING_NOTICE, "Getting keyid 0x%llX", keyid); - if (fetch_key(keyid, &publickey, false)) { + if (config.dbbackend->fetch_key(keyid, &publickey, + false)) { puts("
");
+				cleankeys(publickey);
 				flatten_publickey(publickey,
 							&packets,
 							&list_end);
@@ -172,6 +176,8 @@ int main(int argc, char *argv[])
 						packets);
 				puts("
"); } else { + logthing(LOGTHING_NOTICE, + "Failed to fetch key."); puts("Key not found"); } break; @@ -184,13 +190,15 @@ int main(int argc, char *argv[]) true, mrhkp); break; case OP_PHOTO: - if (fetch_key(keyid, &publickey, false)) { - struct openpgp_packet *photo = NULL; - photo = getphoto(publickey, 0); - if (photo != NULL) { - fwrite(photo->data+19, + if (config.dbbackend->fetch_key(keyid, &publickey, + false)) { + unsigned char *photo = NULL; + size_t length = 0; + + if (getphoto(publickey, 0, &photo, &length)) { + fwrite(photo, 1, - (photo->length - 19), + length, stdout); } free_publickey(publickey); @@ -200,13 +208,14 @@ int main(int argc, char *argv[]) default: puts("Unknown operation!"); } - cleanupdb(); + config.dbbackend->cleanupdb(); cleanuplogthing(); cleanupconfig(); } if (!mrhkp) { puts("
"); - puts("Produced by onak " VERSION " by Jonathan McDowell"); + puts("Produced by onak " PACKAGE_VERSION + " by Jonathan McDowell"); end_html(); }