X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/blobdiff_plain/6bf59599ecd9e30e91c5eefa22472ee080315c30..584b44f3613a29ce27fc8b87cdd8654d3357ed4f:/gpgwww.c?ds=sidebyside diff --git a/gpgwww.c b/gpgwww.c index f2551ed..984aab4 100644 --- a/gpgwww.c +++ b/gpgwww.c @@ -4,8 +4,6 @@ * Jonathan McDowell * * Copyright 2001-2002 Project Purple. - * - * $Id: gpgwww.c,v 1.14 2004/05/26 18:53:14 noodles Exp $ */ #include @@ -15,6 +13,8 @@ #include "armor.h" #include "charfuncs.h" +#include "cleanup.h" +#include "config.h" #include "getcgi.h" #include "hash.h" #include "keydb.h" @@ -61,14 +61,14 @@ int getkeyspath(uint64_t have, uint64_t want, int count) int rec; int pathlen = 0; - fullhave = getfullkeyid(have); - fullwant = getfullkeyid(want); + fullhave = config.dbbackend->getfullkeyid(have); + fullwant = config.dbbackend->getfullkeyid(want); /* * Make sure the keys we have and want are in the cache. */ - cached_getkeysigs(fullhave); - cached_getkeysigs(fullwant); + config.dbbackend->cached_getkeysigs(fullhave); + config.dbbackend->cached_getkeysigs(fullwant); if ((keyinfoa = findinhash(fullhave)) == NULL) { return 1; @@ -77,7 +77,7 @@ int getkeyspath(uint64_t have, uint64_t want, int count) return 1; } - while (pathlen < count) { + while ((!cleanup()) && (pathlen < count)) { /* * Fill the tree info up. */ @@ -93,9 +93,10 @@ int getkeyspath(uint64_t have, uint64_t want, int count) */ curkey = findinhash(keyinfoa->parent); while (curkey != NULL && curkey->keyid != 0) { - if (curkey->keyid != fullwant && fetch_key( + if (curkey->keyid != fullwant && + config.dbbackend->fetch_key( curkey->keyid, - &publickey, false)) { + &publickey, false)) { flatten_publickey(publickey, &packets, &list_end); @@ -114,7 +115,7 @@ int getkeyspath(uint64_t have, uint64_t want, int count) /* * Add the destination key to the list of returned keys. */ - if (fetch_key(fullwant, &publickey, false)) { + if (config.dbbackend->fetch_key(fullwant, &publickey, false)) { flatten_publickey(publickey, &packets, &list_end); @@ -167,7 +168,8 @@ int main(int argc, char *argv[]) readconfig(NULL); initlogthing("gpgwww", config.logfile); - initdb(true); + catchsignals(); + config.dbbackend->initdb(true); inithash(); logthing(LOGTHING_NOTICE, "Looking for path from 0x%llX to 0x%llX.", from, @@ -178,13 +180,13 @@ int main(int argc, char *argv[]) dofindpath(from, to, true, 3); } destroyhash(); - cleanupdb(); + config.dbbackend->cleanupdb(); cleanuplogthing(); cleanupconfig(); if (op != OP_GET) { puts("
"); - puts("Produced by gpgwww " VERSION ", part of onak. " + puts("Produced by gpgwww " PACKAGE_VERSION ", part of onak. " "" "Jonathan McDowell"); end_html();