ancestor/level history no longer kept in rbt structure; node_chain structure was created for this purpose, and each dns_rbt_deletename call will pass the chain structure to dns_rbt_findnode. color enum removed from rbtnode structure; single bit used instead length of name in rbtnode no longer kept as int in rbtnode structure; stored as single byte just past end of rbtnode, and the actual name data starts two bytes past the end. dns_rbt_create takes additional argument that is a pointer to a function which is responsible for deleting the space pointed to by an rbtnode's data pointer when the node is removed. dns_rbt_addnode renamed to dns_rbt_addonlevel so that dns_rbt_addnode could be a public function that can provide the address of the new node back to the caller. removed several #if 0 blocks that were held over from when parent pointers were used.
Showing with 424 additions and 174 deletions