Deleted Added
full compact
dnstree.c (356345) dnstree.c (361435)
1/*
2 * util/storage/dnstree.c - support for rbtree types suitable for DNS code.
3 *
4 * Copyright (c) 2008, NLnet Labs. All rights reserved.
5 *
6 * This software is open source.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 90 unchanged lines hidden (view full) ---

99 node->node.key = node;
100 memcpy(&node->addr, addr, addrlen);
101 node->addrlen = addrlen;
102 node->net = net;
103 node->parent = NULL;
104 return rbtree_insert(tree, &node->node) != NULL;
105}
106
1/*
2 * util/storage/dnstree.c - support for rbtree types suitable for DNS code.
3 *
4 * Copyright (c) 2008, NLnet Labs. All rights reserved.
5 *
6 * This software is open source.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 90 unchanged lines hidden (view full) ---

99 node->node.key = node;
100 memcpy(&node->addr, addr, addrlen);
101 node->addrlen = addrlen;
102 node->net = net;
103 node->parent = NULL;
104 return rbtree_insert(tree, &node->node) != NULL;
105}
106
107void addr_tree_init_parents(rbtree_type* tree)
107void addr_tree_init_parents_node(struct addr_tree_node* node)
108{
108{
109 struct addr_tree_node* node, *prev = NULL, *p;
109 struct addr_tree_node* prev = NULL, *p;
110 int m;
110 int m;
111 RBTREE_FOR(node, struct addr_tree_node*, tree) {
111 for(; (rbnode_type*)node != RBTREE_NULL;
112 node = (struct addr_tree_node*)rbtree_next((rbnode_type*)node)) {
112 node->parent = NULL;
113 if(!prev || prev->addrlen != node->addrlen) {
114 prev = node;
115 continue;
116 }
117 m = addr_in_common(&prev->addr, prev->net, &node->addr,
118 node->net, node->addrlen);
119 /* sort order like: ::/0, 1::/2, 1::/4, ... 2::/2 */

--- 5 unchanged lines hidden (view full) ---

125 * this one is a (grand)parent */
126 node->parent = p;
127 break;
128 }
129 prev = node;
130 }
131}
132
113 node->parent = NULL;
114 if(!prev || prev->addrlen != node->addrlen) {
115 prev = node;
116 continue;
117 }
118 m = addr_in_common(&prev->addr, prev->net, &node->addr,
119 node->net, node->addrlen);
120 /* sort order like: ::/0, 1::/2, 1::/4, ... 2::/2 */

--- 5 unchanged lines hidden (view full) ---

126 * this one is a (grand)parent */
127 node->parent = p;
128 break;
129 }
130 prev = node;
131 }
132}
133
134void addr_tree_init_parents(rbtree_type* tree)
135{
136 addr_tree_init_parents_node(
137 (struct addr_tree_node*)rbtree_first(tree));
138}
139
133void name_tree_init_parents(rbtree_type* tree)
134{
135 struct name_tree_node* node, *prev = NULL, *p;
136 int m;
137 RBTREE_FOR(node, struct name_tree_node*, tree) {
138 node->parent = NULL;
139 if(!prev || prev->dclass != node->dclass) {
140 prev = node;

--- 155 unchanged lines hidden ---
140void name_tree_init_parents(rbtree_type* tree)
141{
142 struct name_tree_node* node, *prev = NULL, *p;
143 int m;
144 RBTREE_FOR(node, struct name_tree_node*, tree) {
145 node->parent = NULL;
146 if(!prev || prev->dclass != node->dclass) {
147 prev = node;

--- 155 unchanged lines hidden ---