]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
cleaning up
authorYuri Schaeffer <yuri@nlnetlabs.nl>
Sun, 13 Oct 2013 19:05:51 +0000 (19:05 +0000)
committerYuri Schaeffer <yuri@nlnetlabs.nl>
Sun, 13 Oct 2013 19:05:51 +0000 (19:05 +0000)
git-svn-id: file:///svn/unbound/branches/edns-subnet@2977 be551aaa-1e26-0410-a405-d3ace91eadb9

edns-subnet/addrtree.c
edns-subnet/addrtree.h

index d19d7baf0e3c20e99041d380bae910bd5fdb1aab..c8899b28ba6df20daecf23b1dd95ed70f1360298 100644 (file)
@@ -18,6 +18,8 @@
  * @param node: Child node this edge will connect to.
  * @param addr: full key to this edge.
  * @param addrlen: length of relevant part of key for this node
+ * @param parent_node: Parent node for node
+ * @param parent_index: Index of child node at parent node
  * @return new addredge or NULL on failure
  */
 static struct addredge * 
@@ -254,19 +256,19 @@ bits_common(const addrkey_t* s1, addrlen_t l1,
  * @return 1 for substring, 0 otherwise 
  */
 static int 
-issub(const addrkey_ts1, addrlen_t l1, 
-       const addrkey_ts2, addrlen_t l2,  addrlen_t skip)
+issub(const addrkey_t *s1, addrlen_t l1, 
+       const addrkey_t *s2, addrlen_t l2,  addrlen_t skip)
 {
        return bits_common(s1, l1, s2, l2, skip) == l1;
 }
 
 void
-addrtree_insert(struct addrtree* tree, const addrkey_t* addr, 
-       addrlen_t sourcemask, addrlen_t scope, voidelem, time_t ttl, 
+addrtree_insert(struct addrtree *tree, const addrkey_t *addr, 
+       addrlen_t sourcemask, addrlen_t scope, void *elem, time_t ttl, 
        time_t now)
 {
-       struct addrnodenewnode, *node;
-       struct addredge* edge, *newedge;
+       struct addrnode *newnode, *node;
+       struct addredge *edge;
        uint8_t index;
        addrlen_t common, depth;
 
@@ -304,7 +306,7 @@ addrtree_insert(struct addrtree* tree, const addrkey_t* addr,
                if (!edge) {
                        newnode = node_create(tree, elem, scope, ttl);
                        if (!newnode) return;
-                       if (!edge_create(newnode, addr, sourcemask, node, index)) {
+                       if (!edge_create(newnode, addr, sourcemask, node, (int)index)) {
                                clean_node(tree, newnode);
                                free(newnode);
                                return;
@@ -325,7 +327,7 @@ addrtree_insert(struct addrtree* tree, const addrkey_t* addr,
                /* Case 4: split. */
                if (!(newnode = node_create(tree, NULL, 0, 0)))
                        return;
-               if (!edge_create(newnode, addr, common, node, index)) {
+               if (!edge_create(newnode, addr, common, node, (int)index)) {
                        clean_node(tree, newnode);
                        free(newnode);
                        return;
@@ -345,7 +347,7 @@ addrtree_insert(struct addrtree* tree, const addrkey_t* addr,
                        /* Data is stored in other leafnode */
                        node = newnode;
                        newnode = node_create(tree, elem, scope, ttl);
-                       if (!edge_create(newnode, addr, sourcemask, node, index^1)) {
+                       if (!edge_create(newnode, addr, sourcemask, node, (int)index^1)) {
                                clean_node(tree, newnode);
                                free(newnode);
                                return;
index b909f156ff241b6dfaf1518dea99e94d2171ddb3..bf2ae81663e105f22ece03bd3e5be58067ad225d 100644 (file)
@@ -43,14 +43,19 @@ struct addrtree {
        unsigned int elem_count;
        /** Maximum prefix length we are willing to cache. */
        addrlen_t max_depth;
+       /** External function to delete elem. Called as 
+        * delfunc(addrnode->elem, addrtree->env) */
        void (*delfunc)(void *, void *);
-       size_t (*sizefunc)(void *);
+       /** Environment for delfunc */
        void *env;
+       /** External function returning size of elem. Called as
+        * sizefunc(addrnode->elem) */
+       size_t (*sizefunc)(void *);
 };
 
 struct addrnode {
        /** Payload of node, may be NULL */
-       struct reply_info* elem;
+       void* elem;
        /** Abs time in seconds in which elem is meaningful */
        time_t ttl;
        /** Number of significant bits in address. */
@@ -68,8 +73,9 @@ struct addredge {
        addrlen_t len;
        /** child node this edge is connected to */
        struct addrnode* node;
-       /** Ptr in parent node to self */
+       /** Parent node this ege is connected to */
        struct addrnode* parent_node;
+       /** Index of this edge in parent_node */
        int parent_index;
 };