echo_i "checking negative validation NXDOMAIN NSEC3 ($n)"
ret=0
-dig_with_opts +noauth a.b.c.d.e.f.g.h.i.j.nsec3.example. \
+dig_with_opts +noauth q.nsec3.example. \
@10.53.0.3 a >dig.out.ns3.test$n || ret=1
-dig_with_opts +noauth a.b.c.d.e.f.g.h.i.j.nsec3.example. \
+dig_with_opts +noauth q.nsec3.example. \
@10.53.0.4 a >dig.out.ns4.test$n || ret=1
digcomp dig.out.ns3.test$n dig.out.ns4.test$n || ret=1
grep "flags:.*ad.*QUERY" dig.out.ns4.test$n >/dev/null || ret=1
: DNS_R_NXDOMAIN;
}
} else {
- bool wantpartial = (options & DNS_DBFIND_WANTPARTIAL) !=
- 0;
- result = active ? DNS_R_EMPTYNAME
- : wantpartial ? DNS_R_PARTIALMATCH
- : DNS_R_NXDOMAIN;
+ result = active ? DNS_R_EMPTYNAME : DNS_R_NXDOMAIN;
}
goto tree_exit;
} else if (result != ISC_R_SUCCESS) {
: DNS_R_NXDOMAIN;
}
} else {
- bool wantpartial = (options & DNS_DBFIND_WANTPARTIAL) !=
- 0;
- result = active ? DNS_R_EMPTYNAME
- : wantpartial ? DNS_R_PARTIALMATCH
- : DNS_R_NXDOMAIN;
+ result = active ? DNS_R_EMPTYNAME : DNS_R_NXDOMAIN;
}
goto tree_exit;
} else if (result != ISC_R_SUCCESS) {
* Find the closest encloser.
*/
dns_name_copy(name, cname);
- bool once = true;
while (result == DNS_R_NXDOMAIN) {
labels = dns_name_countlabels(cname) - 1;
/*
goto cleanup;
}
dns_name_split(cname, labels, NULL, cname);
- result = dns_db_findext(
- qctx->db, cname, qctx->version,
- dns_rdatatype_nsec,
- options | (once ? DNS_DBFIND_WANTPARTIAL : 0),
- 0, NULL, fname, &cm, &ci, NULL, NULL);
- if (result == DNS_R_PARTIALMATCH && once) {
- unsigned int flabels =
- dns_name_countlabels(fname);
- if (labels > flabels + 1) {
- dns_name_split(cname, flabels + 1, NULL,
- cname);
- }
- result = DNS_R_NXDOMAIN;
- }
- once = false;
+ result = dns_db_findext(qctx->db, cname, qctx->version,
+ dns_rdatatype_nsec, options, 0,
+ NULL, fname, &cm, &ci, NULL,
+ NULL);
}
/*
* Add closest (provable) encloser NSEC3.