Lines Matching +full:in +full:- +full:tree
2 * util/storage/dnstree.h - support for rbtree types suitable for DNS code.
8 * Redistribution and use in source and binary forms, with or without
15 * Redistributions in binary form must reproduce the above copyright notice,
16 * this list of conditions and the following disclaimer in the documentation
26 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
48 * Tree of domain names. Sorted first by class then by name.
52 * The tree itself is a rbtree_type.
53 * This is the element node put as first entry in the client structure.
58 /** parent in tree */
60 /** name in uncompressed wireformat */
64 /** labels in name */
71 * Tree of IP addresses. Sorted first by protocol, then by bits.
74 * The tree itself is a rbtree_type.
75 * This is the element node put as first entry in the client structure.
80 /** parent in tree */
91 * Init a name tree to be empty
92 * @param tree: to init.
94 void name_tree_init(rbtree_type* tree);
97 * insert element into name tree.
98 * @param tree: name tree
104 * @param labs: labels in name
108 int name_tree_insert(rbtree_type* tree, struct name_tree_node* node,
112 * Initialize parent pointers in name tree.
114 * @param tree: name tree
116 void name_tree_init_parents(rbtree_type* tree);
119 * Lookup exact match in name tree
120 * @param tree: name tree
123 * @param labs: labels in name
127 struct name_tree_node* name_tree_find(rbtree_type* tree, uint8_t* name,
131 * Lookup closest encloser in name tree.
132 * @param tree: name tree
135 * @param labs: labels in name
139 struct name_tree_node* name_tree_lookup(rbtree_type* tree, uint8_t* name,
143 * Find next root item in name tree.
144 * @param tree: the nametree.
148 int name_tree_next_root(rbtree_type* tree, uint16_t* dclass);
151 * Init addr tree to be empty.
152 * @param tree: to init.
154 void addr_tree_init(rbtree_type* tree);
157 * Init addr tree to be empty.
159 * @param tree: to init.
161 void addr_tree_addrport_init(rbtree_type* tree);
164 * insert element into addr tree.
165 * @param tree: addr tree
173 int addr_tree_insert(rbtree_type* tree, struct addr_tree_node* node,
177 * Initialize parent pointers in addr tree.
179 * @param tree: addr tree
181 void addr_tree_init_parents(rbtree_type* tree);
184 * Initialize parent pointers in partial addr tree.
185 * Reinitialize pointer for part of tree, used after node deletion
191 * Lookup closest encloser in addr tree.
192 * @param tree: addr tree
197 struct addr_tree_node* addr_tree_lookup(rbtree_type* tree,
201 * Find element in addr tree. (search a netblock, not a match for an address)
202 * @param tree: addr tree
206 * @return addr tree element, or NULL if not found.
208 struct addr_tree_node* addr_tree_find(rbtree_type* tree,
211 /** compare name tree nodes */
214 /** compare addr tree nodes */
217 /** compare addr tree nodes (address and port only) */