]> git.sommitrealweird.co.uk Git - onak.git/blobdiff - hash.c
cscvs to tla changeset 93
[onak.git] / hash.c
diff --git a/hash.c b/hash.c
index e29017cda8a98e286dbcb3ab1c7e81537276328b..9ee8b9bd62e9d4203743d3fd16f635b268340845 100644 (file)
--- a/hash.c
+++ b/hash.c
@@ -4,16 +4,18 @@
  * Jonathan McDowell <noodles@earth.li>
  *
  * Copyright 2000-2002 Project Purple
  * Jonathan McDowell <noodles@earth.li>
  *
  * Copyright 2000-2002 Project Purple
+ *
+ * $Id: hash.c,v 1.8 2003/06/04 20:57:08 noodles Exp $
  */
 
 #include <stdio.h>
 #include <stdlib.h>
  */
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 
 #include "hash.h"
 
 #include "hash.h"
-#include "keydb.h"
-#include "keyid.h"
+#include "keystructs.h"
 #include "ll.h"
 #include "ll.h"
-#include "stats.h"
+#include "mem.h"
 
 /**
  *     hashtable - the hash table array.
 
 /**
  *     hashtable - the hash table array.
@@ -48,20 +50,14 @@ void destroyhash(void)
 {
        int i;
        struct ll *curll = NULL;
 {
        int i;
        struct ll *curll = NULL;
-       struct ll *nextll = NULL;
 
        for (i = 0; i < HASHSIZE; i++) {
                curll = hashtable[i];
 
        for (i = 0; i < HASHSIZE; i++) {
                curll = hashtable[i];
-               while (curll != NULL) {
-                       nextll = curll->next;
-                       /*
-                        * TODO: The problem is the object has pointers that
-                        * need freed too.
-                        */
-                       free(curll->object);
-                       free(curll);
-                       curll = nextll;
-               }
+               /*
+                * TODO: The problem is the object has pointers that
+                * need freed too.
+                */
+               llfree(curll, free_statskey);
                hashtable[i] = NULL;
        }
        elements = 0;
                hashtable[i] = NULL;
        }
        elements = 0;
@@ -131,38 +127,3 @@ struct ll *gethashtableentry(int entry)
 {
        return hashtable[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;
-}