|
Electroneum
|
#include "util/rbtree.h"

Go to the source code of this file.
Classes | |
| struct | name_tree_node |
| struct | addr_tree_node |
Functions | |
| void | name_tree_init (rbtree_type *tree) |
| int | name_tree_insert (rbtree_type *tree, struct name_tree_node *node, uint8_t *name, size_t len, int labs, uint16_t dclass) |
| void | name_tree_init_parents (rbtree_type *tree) |
| struct name_tree_node * | name_tree_find (rbtree_type *tree, uint8_t *name, size_t len, int labs, uint16_t dclass) |
| struct name_tree_node * | name_tree_lookup (rbtree_type *tree, uint8_t *name, size_t len, int labs, uint16_t dclass) |
| int | name_tree_next_root (rbtree_type *tree, uint16_t *dclass) |
| void | addr_tree_init (rbtree_type *tree) |
| int | addr_tree_insert (rbtree_type *tree, struct addr_tree_node *node, struct sockaddr_storage *addr, socklen_t addrlen, int net) |
| void | addr_tree_init_parents (rbtree_type *tree) |
| struct addr_tree_node * | addr_tree_lookup (rbtree_type *tree, struct sockaddr_storage *addr, socklen_t addrlen) |
| struct addr_tree_node * | addr_tree_find (rbtree_type *tree, struct sockaddr_storage *addr, socklen_t addrlen, int net) |
| int | name_tree_compare (const void *k1, const void *k2) |
| int | addr_tree_compare (const void *k1, const void *k2) |
This file contains structures combining types and functions to manipulate those structures that help building DNS lookup trees.
Definition in file dnstree.h.
| int addr_tree_compare | ( | const void * | k1, |
| const void * | k2 | ||
| ) |
compare addr tree nodes
| struct addr_tree_node* addr_tree_find | ( | rbtree_type * | tree, |
| struct sockaddr_storage * | addr, | ||
| socklen_t | addrlen, | ||
| int | net | ||
| ) |
Find element in addr tree. (search a netblock, not a match for an address)
| tree | addr tree |
| addr | netblock to lookup. |
| addrlen | length of addr |
| net | size of subnet |
| void addr_tree_init | ( | rbtree_type * | tree | ) |
Init addr tree to be empty.
| tree | to init. |
| void addr_tree_init_parents | ( | rbtree_type * | tree | ) |
Initialize parent pointers in addr tree. Should be performed after insertions are done, before lookups
| tree | addr tree |
| int addr_tree_insert | ( | rbtree_type * | tree, |
| struct addr_tree_node * | node, | ||
| struct sockaddr_storage * | addr, | ||
| socklen_t | addrlen, | ||
| int | net | ||
| ) |
insert element into addr tree.
| tree | addr tree |
| node | node element (at start of a structure that caller has allocated). |
| addr | to insert (copied). |
| addrlen | length of addr |
| net | size of subnet. |
| struct addr_tree_node* addr_tree_lookup | ( | rbtree_type * | tree, |
| struct sockaddr_storage * | addr, | ||
| socklen_t | addrlen | ||
| ) |
Lookup closest encloser in addr tree.
| tree | addr tree |
| addr | to lookup. |
| addrlen | length of addr |
| int name_tree_compare | ( | const void * | k1, |
| const void * | k2 | ||
| ) |
compare name tree nodes
| struct name_tree_node* name_tree_find | ( | rbtree_type * | tree, |
| uint8_t * | name, | ||
| size_t | len, | ||
| int | labs, | ||
| uint16_t | dclass | ||
| ) |
Lookup exact match in name tree
| tree | name tree |
| name | wireformat name |
| len | length of name |
| labs | labels in name |
| dclass | class of name |
| void name_tree_init | ( | rbtree_type * | tree | ) |
Init a name tree to be empty
| tree | to init. |
| void name_tree_init_parents | ( | rbtree_type * | tree | ) |
Initialize parent pointers in name tree. Should be performed after insertions are done, before lookups
| tree | name tree |
| int name_tree_insert | ( | rbtree_type * | tree, |
| struct name_tree_node * | node, | ||
| uint8_t * | name, | ||
| size_t | len, | ||
| int | labs, | ||
| uint16_t | dclass | ||
| ) |
insert element into name tree.
| tree | name tree |
| node | node element (at start of a structure that caller has allocated). |
| name | name to insert (wireformat) this node has been allocated by the caller and it itself inserted. |
| len | length of name |
| labs | labels in name |
| dclass | class of name |
| struct name_tree_node* name_tree_lookup | ( | rbtree_type * | tree, |
| uint8_t * | name, | ||
| size_t | len, | ||
| int | labs, | ||
| uint16_t | dclass | ||
| ) |
Lookup closest encloser in name tree.
| tree | name tree |
| name | wireformat name |
| len | length of name |
| labs | labels in name |
| dclass | class of name |
| int name_tree_next_root | ( | rbtree_type * | tree, |
| uint16_t * | dclass | ||
| ) |
Find next root item in name tree.
| tree | the nametree. |
| dclass | the class to look for next (or higher). |