dns_rbtnodechain Struct Reference

#include <rbt.h>


Data Fields

unsigned int magic
isc_mem_tmctx
dns_rbtnode_tend
 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_tlevels [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.


Detailed Description

Definition at line 220 of file rbt.h.


Field Documentation

unsigned int dns_rbtnodechain::magic

Definition at line 221 of file rbt.h.

Referenced by dns_rbtnodechain_init(), and dns_rbtnodechain_invalidate().

isc_mem_t* dns_rbtnodechain::mctx

Definition at line 222 of file rbt.h.

Referenced by dns_rbtnodechain_init(), and sync_keyzone().

dns_rbtnode_t* dns_rbtnodechain::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().

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().


The documentation for this struct was generated from the following file:
Generated on Tue Apr 28 17:41:20 2015 by Doxygen 1.5.4 for BIND9 Internals 9.11.0pre-alpha