X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=stats.c;h=da1f13c54e007b70fd8046b95b62f327fd58b602;hb=a047e3e158d560af079bec920460711d8222317c;hp=61b527826c95f3b3fbb47fffea06b434d66aab91;hpb=e3ee7975fc8f8b343390272663b8c644030b17c1;p=onak.git diff --git a/stats.c b/stats.c index 61b5278..da1f13c 100644 --- a/stats.c +++ b/stats.c @@ -9,6 +9,7 @@ #include #include +#include "cleanup.h" #include "getcgi.h" #include "hash.h" #include "keydb.h" @@ -24,7 +25,7 @@ */ void initcolour(bool parent) { - unsigned long loop; + unsigned int loop; struct ll *curkey; /* @@ -60,21 +61,22 @@ unsigned long findpath(struct stats_key *have, struct stats_key *want) struct ll *sigs = NULL; struct ll *nextkeys = NULL; long curdegree = 0; - long count = 0; + unsigned long count = 0; curdegree = 1; keys = lladd(NULL, want); oldkeys = keys; - while (keys != NULL && have->colour == 0) { + while ((!cleanup()) && keys != NULL && have->colour == 0) { sigs = 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. */ if (!((struct stats_key *)sigs->object)->disabled && + !((struct stats_key *)sigs->object)->revoked && ((struct stats_key *)sigs->object)->colour == 0) { count++; ((struct stats_key *)sigs->object)->colour = @@ -132,8 +134,8 @@ void dofindpath(uint64_t have, uint64_t want, bool html, int count) /* * Make sure the keys we have and want are in the cache. */ - cached_getkeysigs(fullhave); - cached_getkeysigs(fullwant); + (void) cached_getkeysigs(fullhave); + (void) cached_getkeysigs(fullwant); if ((keyinfoa = findinhash(fullhave)) == NULL) { printf("Couldn't find key 0x%llX.\n", have); @@ -146,7 +148,7 @@ void dofindpath(uint64_t have, uint64_t want, bool html, int count) pathnum = 0; - while (pathnum < count) { + while ((!cleanup()) && (pathnum < count)) { /* * Fill the tree info up. */ @@ -160,11 +162,17 @@ void dofindpath(uint64_t have, uint64_t want, bool html, int count) hashelements(), html ? "
" : ""); if (keyinfoa->colour == 0) { - printf("Can't find a link from 0x%08llX to 0x%08llX" - "%s\n", + if (pathnum == 0) { + printf("Can't find a link from 0x%08llX to " + "0x%08llX%s\n", have, want, html ? "
" : ""); + } else { + printf("Can't find any further paths%s\n", + html ? "
" : ""); + } + pathnum = count; } else { printf("%d steps from 0x%08llX to 0x%08llX%s\n", keyinfoa->colour, have & 0xFFFFFFFF, @@ -222,13 +230,6 @@ void dofindpath(uint64_t have, uint64_t want, bool html, int count) curkey = findinhash(curkey->parent); } putchar('\n'); - if (html) { - printf("
" - "Find reverse path\n", - want, - have); - } } pathnum++; }