diff options
Diffstat (limited to '')
-rw-r--r-- | external/unbound/iterator/iter_hints.h | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/external/unbound/iterator/iter_hints.h b/external/unbound/iterator/iter_hints.h deleted file mode 100644 index 06b4b9667..000000000 --- a/external/unbound/iterator/iter_hints.h +++ /dev/null @@ -1,161 +0,0 @@ -/* - * iterator/iter_hints.h - iterative resolver module stub and root hints. - * - * Copyright (c) 2007, NLnet Labs. All rights reserved. - * - * This software is open source. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * Neither the name of the NLNET LABS nor the names of its contributors may - * be used to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/** - * \file - * - * This file contains functions to assist the iterator module. - * Keep track of stub and root hints, and read those from config. - */ - -#ifndef ITERATOR_ITER_HINTS_H -#define ITERATOR_ITER_HINTS_H -#include "util/storage/dnstree.h" -struct iter_env; -struct config_file; -struct delegpt; - -/** - * Iterator hints structure - */ -struct iter_hints { - /** - * Hints are stored in this tree. Sort order is specially chosen. - * first sorted on qclass. Then on dname in nsec-like order, so that - * a lookup on class, name will return an exact match or the closest - * match which gives the ancestor needed. - * contents of type iter_hints_stub. The class IN root is in here. - * uses name_tree_node from dnstree.h. - */ - rbtree_type tree; -}; - -/** - * Iterator hints for a particular stub. - */ -struct iter_hints_stub { - /** tree sorted by name, class */ - struct name_tree_node node; - /** delegation point with hint information for this stub. malloced. */ - struct delegpt* dp; - /** does the stub need to forego priming (like on other ports) */ - uint8_t noprime; -}; - -/** - * Create hints - * @return new hints or NULL on error. - */ -struct iter_hints* hints_create(void); - -/** - * Delete hints. - * @param hints: to delete. - */ -void hints_delete(struct iter_hints* hints); - -/** - * Process hints config. Sets default values for root hints if no config. - * @param hints: where to store. - * @param cfg: config options. - * @return 0 on error. - */ -int hints_apply_cfg(struct iter_hints* hints, struct config_file* cfg); - -/** - * Find root hints for the given class. - * @param hints: hint storage. - * @param qclass: class for which root hints are requested. host order. - * @return: NULL if no hints, or a ptr to stored hints. - */ -struct delegpt* hints_lookup_root(struct iter_hints* hints, uint16_t qclass); - -/** - * Find next root hints (to cycle through all root hints). - * @param hints: hint storage - * @param qclass: class for which root hints are sought. - * 0 means give the first available root hints class. - * x means, give class x or a higher class if any. - * returns the found class in this variable. - * @return true if a root hint class is found. - * false if not root hint class is found (qclass may have been changed). - */ -int hints_next_root(struct iter_hints* hints, uint16_t* qclass); - -/** - * Given a qname/qclass combination, and the delegation point from the cache - * for this qname/qclass, determine if this combination indicates that a - * stub hint exists and must be primed. - * - * @param hints: hint storage. - * @param qname: The qname that generated the delegation point. - * @param qclass: The qclass that generated the delegation point. - * @param dp: The cache generated delegation point. - * @return: A priming delegation point if there is a stub hint that must - * be primed, otherwise null. - */ -struct iter_hints_stub* hints_lookup_stub(struct iter_hints* hints, - uint8_t* qname, uint16_t qclass, struct delegpt* dp); - -/** - * Get memory in use by hints - * @param hints: hint storage. - * @return bytes in use - */ -size_t hints_get_mem(struct iter_hints* hints); - -/** - * Add stub to hints structure. For external use since it recalcs - * the tree parents. - * @param hints: the hints data structure - * @param c: class of zone - * @param dp: delegation point with name and target nameservers for new - * hints stub. malloced. - * @param noprime: set noprime option to true or false on new hint stub. - * @return false on failure (out of memory); - */ -int hints_add_stub(struct iter_hints* hints, uint16_t c, struct delegpt* dp, - int noprime); - -/** - * Remove stub from hints structure. For external use since it - * recalcs the tree parents. - * @param hints: the hints data structure - * @param c: class of stub zone - * @param nm: name of stub zone (in uncompressed wireformat). - */ -void hints_delete_stub(struct iter_hints* hints, uint16_t c, uint8_t* nm); - -#endif /* ITERATOR_ITER_HINTS_H */ |