diff options
author | Dag-Erling Smørgrav <des@FreeBSD.org> | 2016-09-03 15:08:13 +0000 |
---|---|---|
committer | Dag-Erling Smørgrav <des@FreeBSD.org> | 2016-09-03 15:08:13 +0000 |
commit | a6533d88996e7570cf04db0d99b6012d25a953d3 (patch) | |
tree | cb1552d6fa59b30201907edc56208f6fe720c283 /iterator/iter_utils.c | |
parent | 21d2013cbd382bc99b9c1a31146ec76a2792b92c (diff) |
Notes
Diffstat (limited to 'iterator/iter_utils.c')
-rw-r--r-- | iterator/iter_utils.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/iterator/iter_utils.c b/iterator/iter_utils.c index 58e62fbeb27b..a5aefa9602c2 100644 --- a/iterator/iter_utils.c +++ b/iterator/iter_utils.c @@ -590,6 +590,27 @@ iter_dp_is_useless(struct query_info* qinfo, uint16_t qflags, return 1; } +int +iter_indicates_dnssec_fwd(struct module_env* env, struct query_info *qinfo) +{ + struct trust_anchor* a; + if(!env || !env->anchors || !qinfo || !qinfo->qname) + return 0; + /* a trust anchor exists above the name? */ + if((a=anchors_lookup(env->anchors, qinfo->qname, qinfo->qname_len, + qinfo->qclass))) { + if(a->numDS == 0 && a->numDNSKEY == 0) { + /* insecure trust point */ + lock_basic_unlock(&a->lock); + return 0; + } + lock_basic_unlock(&a->lock); + return 1; + } + /* no trust anchor above it. */ + return 0; +} + int iter_indicates_dnssec(struct module_env* env, struct delegpt* dp, struct dns_msg* msg, uint16_t dclass) |