X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=hash.c;h=9ee8b9bd62e9d4203743d3fd16f635b268340845;hb=4843e5290f2e7060ca5777c64b96e680080644f2;hp=f07017a669d7e65342ce81637d801d0548bb9f59;hpb=e01d2e2d07392eb03e4268fdc4f0f1339a9a9461;p=onak.git diff --git a/hash.c b/hash.c index f07017a..9ee8b9b 100644 --- a/hash.c +++ b/hash.c @@ -4,16 +4,18 @@ * Jonathan McDowell * * Copyright 2000-2002 Project Purple + * + * $Id: hash.c,v 1.8 2003/06/04 20:57:08 noodles Exp $ */ #include #include +#include #include "hash.h" -#include "keydb.h" -#include "keyid.h" +#include "keystructs.h" #include "ll.h" -#include "stats.h" +#include "mem.h" /** * hashtable - the hash table array. @@ -55,7 +57,7 @@ void destroyhash(void) * TODO: The problem is the object has pointers that * need freed too. */ - llfree(curll, free); + llfree(curll, free_statskey); hashtable[i] = NULL; } elements = 0; @@ -125,38 +127,3 @@ struct ll *gethashtableentry(int entry) { return hashtable[entry]; } - -/** - * hash_getkeysigs - Gets the signatures on a key. - * @keyid: The key we want the signatures for. - * - * This function gets the signatures on a key. It's the same as the - * getkeysigs function from the keydb module except we also cache the data - * so that if we need it again we already have it available. - */ -struct ll *hash_getkeysigs(uint64_t keyid) -{ - struct stats_key *key = NULL; - - key = findinhash(keyid); - if (key == NULL) { - key = malloc(sizeof(*key)); - if (key != NULL) { - key->keyid = keyid; - key->colour = 0; - key->parent = 0; - key->sigs = NULL; - key->gotsigs = false; - addtohash(key); - } else { - perror("hash_getkeysigs()"); - return NULL; - } - } - if (key->gotsigs == false) { - key->sigs = getkeysigs(key->keyid); - key->gotsigs = true; - } - - return key->sigs; -}