X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/blobdiff_plain/e02c731dfbb288c736f2cd09a9b6df0507c59ddd..44169bea490150f3c2bb2b20ba086cae77d89041:/gpgwww.c?ds=sidebyside diff --git a/gpgwww.c b/gpgwww.c index dc79135..fa8ea4f 100644 --- a/gpgwww.c +++ b/gpgwww.c @@ -4,93 +4,22 @@ * Jonathan McDowell * * Copyright 2001-2002 Project Purple. + * + * $Id: gpgwww.c,v 1.13 2004/03/23 12:33:46 noodles Exp $ */ -// #include #include #include #include +#include #include "getcgi.h" #include "hash.h" #include "keydb.h" +#include "log.h" #include "onak-conf.h" #include "stats.h" -void dofindpath(uint64_t have, uint64_t want, bool html) -{ - struct stats_key *keyinfoa, *keyinfob, *curkey; - int rec; - char *uid; - - have = getfullkeyid(have); - want = getfullkeyid(want); - - /* - * Make sure the keys we have and want are in the cache. - */ - hash_getkeysigs(have); - hash_getkeysigs(want); - - if ((keyinfoa = findinhash(have)) == NULL) { - printf("Couldn't find key 0x%llX.\n", have); - return; - } - if ((keyinfob = findinhash(want)) == NULL) { - printf("Couldn't find key 0x%llX.\n", want); - return; - } - - /* - * Fill the tree info up. - */ - initcolour(true); - rec = findpath(keyinfoa, keyinfob); - keyinfob->parent = 0; - - printf("%d nodes examined. %ld elements in the hash\n", rec, - hashelements()); - if (keyinfoa->colour == 0) { - printf("Can't find a link from 0x%llX to 0x%llX\n", - have, - want); - } else { - printf("%d steps from 0x%llX to 0x%llX\n", - keyinfoa->colour, have & 0xFFFFFFFF, - want & 0xFFFFFFFF); - curkey = keyinfoa; - while (curkey != NULL && curkey->keyid != 0) { - uid = keyid2uid(curkey->keyid); - if (html && uid == NULL) { - printf("" - "0x%llX ([User id not found])%s)%s\n", - curkey->keyid & 0xFFFFFFFF, - curkey->keyid & 0xFFFFFFFF, - (curkey->keyid == want) ? "" : - " signs"); - } else if (html && uid != NULL) { - printf("" - "0x%llX (%s)%s\n", - curkey->keyid & 0xFFFFFFFF, - curkey->keyid & 0xFFFFFFFF, - curkey->keyid & 0xFFFFFFFF, - txt2html(keyid2uid(curkey->keyid)), - (curkey->keyid == want) ? "" : - " signs"); - } else { - printf("0x%llX (%s)%s\n", - curkey->keyid & 0xFFFFFFFF, - (uid == NULL) ? "[User id not found]" : - uid, - (curkey->keyid == want) ? "" : - " signs"); - } - curkey = findinhash(curkey->parent); - } - } -} - void parsecgistuff(char **cgiparams, uint64_t *from, uint64_t *to) { int i = 0; @@ -117,13 +46,7 @@ int main(int argc, char *argv[]) cgiparams = getcgivars(argc, argv); - puts("Content-Type: text/html\n"); - puts(""); - puts(""); - puts("Experimental PGP key path finder results"); - puts(""); - puts(""); - puts(""); + start_html("Experimental PGP key path finder results"); parsecgistuff(cgiparams, &from, &to); @@ -133,17 +56,30 @@ int main(int argc, char *argv[]) exit(1); } - printf("

Looking for path from 0x%llX to 0x%llX

\n", from, to); - puts("
");
-	initdb();
+	printf("

Looking for path from 0x%llX to 0x%llX.\n", from, to); + printf("" + "Find reverse path

\n", + to, + from); + + readconfig(NULL); + initlogthing("gpgwww", config.logfile); + initdb(true); inithash(); - dofindpath(from, to, true); + dofindpath(from, to, true, 3); + destroyhash(); cleanupdb(); - puts("
"); + cleanuplogthing(); + cleanupconfig(); puts("
"); - puts("Produced by gpgwww " VERSION ", part of onak. Jonathan McDowell"); - puts(""); + puts("Produced by gpgwww " VERSION ", part of onak. " + "" + "Jonathan McDowell"); + end_html(); + + cleanupcgi(cgiparams); + cgiparams = NULL; return EXIT_SUCCESS; }