#include <rbt.h>
Data Fields | |
unsigned int | magic |
isc_mem_t * | mctx |
dns_rbtnode_t * | end |
The terminal node of the chain. It is not in levels[]. This is ostensibly private ... but in a pinch it could be used tell that the chain points nowhere without needing to call dns_rbtnodechain_current(). | |
dns_rbtnode_t * | levels [DNS_RBT_LEVELBLOCK] |
The maximum number of labels in a name is 128; bitstrings mean a conceptually very large number (which I have not bothered to compute) of logical levels because splitting can potentially occur at each bit. However, DNSSEC restricts the number of "logical" labels in a name to 255, meaning only 254 pointers are needed in the worst case. | |
unsigned int | level_count |
level_count indicates how deep the chain points into the tree of trees, and is the index into the levels[] array. Thus, levels[level_count - 1] is the last level node stored. A chain that points to the top level of the tree of trees has a level_count of 0, the first level has a level_count of 1, and so on. | |
unsigned int | level_matches |
level_matches tells how many levels matched above the node returned by dns_rbt_findnode(). A match (partial or exact) found in the first level thus results in level_matches being set to 1. This is used by the rbtdb to set the start point for a recursive search of superdomains until the RR it is looking for is found. |
Definition at line 220 of file rbt.h.
unsigned int dns_rbtnodechain::magic |
Definition at line 221 of file rbt.h.
Referenced by dns_rbtnodechain_init(), and dns_rbtnodechain_invalidate().
The terminal node of the chain. It is not in levels[]. This is ostensibly private ... but in a pinch it could be used tell that the chain points nowhere without needing to call dns_rbtnodechain_current().
Definition at line 229 of file rbt.h.
Referenced by chain_name(), dns_rbt_findnode(), dns_rbtnodechain_current(), dns_rbtnodechain_down(), dns_rbtnodechain_first(), dns_rbtnodechain_init(), dns_rbtnodechain_next(), dns_rbtnodechain_nextflat(), dns_rbtnodechain_prev(), dns_rbtnodechain_reset(), and move_chain_to_last().
dns_rbtnode_t* dns_rbtnodechain::levels[DNS_RBT_LEVELBLOCK] |
The maximum number of labels in a name is 128; bitstrings mean a conceptually very large number (which I have not bothered to compute) of logical levels because splitting can potentially occur at each bit. However, DNSSEC restricts the number of "logical" labels in a name to 255, meaning only 254 pointers are needed in the worst case.
Definition at line 238 of file rbt.h.
Referenced by chain_name(), dns_rbt_addnode(), dns_rbt_findnode(), dns_rbtnodechain_init(), dns_rbtnodechain_next(), dns_rbtnodechain_prev(), find_deepest_zonecut(), and find_wildcard().
unsigned int dns_rbtnodechain::level_count |
level_count indicates how deep the chain points into the tree of trees, and is the index into the levels[] array. Thus, levels[level_count - 1] is the last level node stored. A chain that points to the top level of the tree of trees has a level_count of 0, the first level has a level_count of 1, and so on.
Definition at line 247 of file rbt.h.
Referenced by chain_name(), dns_rbt_addnode(), dns_rbt_findnode(), dns_rbtnodechain_current(), dns_rbtnodechain_down(), dns_rbtnodechain_init(), dns_rbtnodechain_next(), dns_rbtnodechain_prev(), and dns_rbtnodechain_reset().
unsigned int dns_rbtnodechain::level_matches |
level_matches tells how many levels matched above the node returned by dns_rbt_findnode(). A match (partial or exact) found in the first level thus results in level_matches being set to 1. This is used by the rbtdb to set the start point for a recursive search of superdomains until the RR it is looking for is found.
Definition at line 255 of file rbt.h.
Referenced by dns_rbt_findnode(), dns_rbtnodechain_init(), dns_rbtnodechain_reset(), find_deepest_zonecut(), and find_wildcard().