X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/blobdiff_plain/394938c479925750ffe56c28d281945ba4003a14..d27407c824b63bd0b9c78479453c3ce4799afac8:/stats.c?ds=sidebyside diff --git a/stats.c b/stats.c index 7b516c6..e009de5 100644 --- a/stats.c +++ b/stats.c @@ -9,10 +9,12 @@ #include #include +#include "cleanup.h" #include "getcgi.h" #include "hash.h" #include "keydb.h" #include "ll.h" +#include "onak-conf.h" #include "stats.h" /** @@ -66,10 +68,10 @@ unsigned long findpath(struct stats_key *have, struct stats_key *want) keys = lladd(NULL, want); oldkeys = keys; - while (keys != NULL && have->colour == 0) { - sigs = cached_getkeysigs(((struct stats_key *) + while ((!cleanup()) && keys != NULL && have->colour == 0) { + sigs = config.dbbackend->cached_getkeysigs(((struct stats_key *) keys->object)->keyid); - while (sigs != NULL && have->colour == 0) { + while ((!cleanup()) && sigs != NULL && have->colour == 0) { /* * Check if we've seen this key before and if not mark * it and add its sigs to the list we want to look at. @@ -127,27 +129,27 @@ void dofindpath(uint64_t have, uint64_t want, bool html, int count) int pathnum; char *uid; - 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. */ - (void) cached_getkeysigs(fullhave); - (void) cached_getkeysigs(fullwant); + (void) config.dbbackend->cached_getkeysigs(fullhave); + (void) config.dbbackend->cached_getkeysigs(fullwant); if ((keyinfoa = findinhash(fullhave)) == NULL) { - printf("Couldn't find key 0x%llX.\n", have); + printf("Couldn't find key 0x%" PRIX64 ".\n", have); return; } if ((keyinfob = findinhash(fullwant)) == NULL) { - printf("Couldn't find key 0x%llX.\n", want); + printf("Couldn't find key 0x%" PRIX64 ".\n", want); return; } pathnum = 0; - while (pathnum < count) { + while ((!cleanup()) && (pathnum < count)) { /* * Fill the tree info up. */ @@ -162,8 +164,8 @@ void dofindpath(uint64_t have, uint64_t want, bool html, int count) html ? "
" : ""); if (keyinfoa->colour == 0) { if (pathnum == 0) { - printf("Can't find a link from 0x%08llX to " - "0x%08llX%s\n", + printf("Can't find a link from 0x%08" PRIX64 + " to 0x%08" PRIX64 "%s\n", have, want, html ? "
" : ""); @@ -173,16 +175,19 @@ void dofindpath(uint64_t have, uint64_t want, bool html, int count) } pathnum = count; } else { - printf("%d steps from 0x%08llX to 0x%08llX%s\n", + printf("%d steps from 0x%08" PRIX64 " to 0x%08" PRIX64 + "%s\n", keyinfoa->colour, have & 0xFFFFFFFF, want & 0xFFFFFFFF, html ? "
" : ""); curkey = keyinfoa; while (curkey != NULL && curkey->keyid != 0) { - uid = keyid2uid(curkey->keyid); + uid = config.dbbackend->keyid2uid( + curkey->keyid); if (html && uid == NULL) { printf("0x%08llX ([" + "0x%08" PRIX64 "\">0x%08" PRIX64 + " ([" "User id not found])%s
\n", curkey->keyid & 0xFFFFFFFF, curkey->keyid & 0xFFFFFFFF, @@ -190,9 +195,11 @@ void dofindpath(uint64_t have, uint64_t want, bool html, int count) "" : " signs"); } else if (html && uid != NULL) { printf("0x%08llX" + "0x%08" PRIX64 "\">0x%08" + PRIX64 "" " (%s)%s" + "search=0x%08" PRIX64 + "\">%s)%s" "
\n", curkey->keyid & 0xFFFFFFFF, curkey->keyid & 0xFFFFFFFF, @@ -201,7 +208,7 @@ void dofindpath(uint64_t have, uint64_t want, bool html, int count) (curkey->keyid == fullwant) ? "" : " signs"); } else { - printf("0x%08llX (%s)%s\n", + printf("0x%08" PRIX64 " (%s)%s\n", curkey->keyid & 0xFFFFFFFF, (uid == NULL) ? "[User id not found]" : @@ -225,7 +232,8 @@ void dofindpath(uint64_t have, uint64_t want, bool html, int count) } curkey = keyinfoa; while (curkey != NULL && curkey->keyid != 0) { - printf("0x%08llX ", curkey->keyid & 0xFFFFFFFF); + printf("0x%08" PRIX64 " ", + curkey->keyid & 0xFFFFFFFF); curkey = findinhash(curkey->parent); } putchar('\n'); @@ -255,7 +263,7 @@ struct stats_key *furthestkey(struct stats_key *have) curll = lladd(NULL, have); while (curll != NULL) { - sigs = cached_getkeysigs(((struct stats_key *) + sigs = config.dbbackend->cached_getkeysigs(((struct stats_key *) curll->object)->keyid); while (sigs != NULL) { if (((struct stats_key *) sigs->object)->colour == 0) {