switch (type) {
case dns_rdatatype_ns:
+ if (name_external(name, dns_rdatatype_ns, rctx))
+ {
+ continue;
+ }
/*
* NS or RRSIG NS.
*
return ISC_R_SUCCESS;
}
+ if (name_external(rctx->ns_name, dns_rdatatype_ns, rctx)) {
+ log_formerr(fctx, "external referral");
+ rctx->result = DNS_R_FORMERR;
+ return ISC_R_COMPLETE;
+ }
+
+ if (ISFORWARDER(fctx->addrinfo) &&
+ dns_name_equal(fctx->fwdname, dns_rootname))
+ {
+ log_formerr(fctx, "referral from global forwarder");
+ rctx->result = DNS_R_FORMERR;
+ return ISC_R_COMPLETE;
+ }
+
/*
* We already know ns_name is a subdomain of fctx->domain.
* If ns_name is equal to fctx->domain, we're not making