summaryrefslogtreecommitdiff
path: root/iterator/iter_fwd.c
diff options
context:
space:
mode:
Diffstat (limited to 'iterator/iter_fwd.c')
-rw-r--r--iterator/iter_fwd.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/iterator/iter_fwd.c b/iterator/iter_fwd.c
index 0b3b6525c26b6..b84e5eff60d09 100644
--- a/iterator/iter_fwd.c
+++ b/iterator/iter_fwd.c
@@ -325,6 +325,20 @@ forwards_apply_cfg(struct iter_forwards* fwd, struct config_file* cfg)
}
struct delegpt*
+forwards_find(struct iter_forwards* fwd, uint8_t* qname, uint16_t qclass)
+{
+ rbnode_t* res = NULL;
+ struct iter_forward_zone key;
+ key.node.key = &key;
+ key.dclass = qclass;
+ key.name = qname;
+ key.namelabs = dname_count_size_labels(qname, &key.namelen);
+ res = rbtree_search(fwd->tree, &key);
+ if(res) return ((struct iter_forward_zone*)res)->dp;
+ return NULL;
+}
+
+struct delegpt*
forwards_lookup(struct iter_forwards* fwd, uint8_t* qname, uint16_t qclass)
{
/* lookup the forward zone in the tree */