* Jonathan McDowell <noodles@earth.li>
*
* Copyright 2002 Project Purple
- *
- * $Id: lookup.c,v 1.15 2004/05/27 01:25:37 noodles Exp $
*/
#include <inttypes.h>
#include "armor.h"
#include "charfuncs.h"
+#include "cleankey.h"
+#include "cleanup.h"
+#include "config.h"
#include "getcgi.h"
#include "keydb.h"
#include "keyindex.h"
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) {
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) {
} 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("<pre>");
+ cleankeys(publickey);
flatten_publickey(publickey,
&packets,
&list_end);
packets);
puts("</pre>");
} else {
+ logthing(LOGTHING_NOTICE,
+ "Failed to fetch key.");
puts("Key not found");
}
break;
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);
default:
puts("Unknown operation!");
}
- cleanupdb();
+ config.dbbackend->cleanupdb();
cleanuplogthing();
cleanupconfig();
}
if (!mrhkp) {
puts("<hr>");
- puts("Produced by onak " VERSION " by Jonathan McDowell");
+ puts("Produced by onak " PACKAGE_VERSION
+ " by Jonathan McDowell");
end_html();
}