[9.18] fix: dev: Revert "Improve performance when looking for the closest encloser"

Revert "fix: chg: Improve performance when looking for the closest encloser when returning NSEC3 proofs"

This reverts merge request !9436

Closes #4950

Backport of MR !9611

Merge branch 'backport-revert-78d48f7a-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!9614
This commit is contained in:
Matthijs Mekking
2024-10-10 12:26:51 +00:00
4 changed files with 7 additions and 24 deletions
+2 -2
View File
@@ -386,9 +386,9 @@ status=$((status + ret))
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
-1
View File
@@ -244,7 +244,6 @@ struct dns_dbonupdatelistener {
#define DNS_DBFIND_FORCENSEC3 0x0080
#define DNS_DBFIND_ADDITIONALOK 0x0100
#define DNS_DBFIND_NOZONECUT 0x0200
#define DNS_DBFIND_WANTPARTIAL 0x0400
/*
* DNS_DBFIND_STALEOK: This flag is set when BIND fails to refresh a RRset due
+1 -5
View File
@@ -4134,11 +4134,7 @@ zone_find(dns_db_t *db, const dns_name_t *name, dns_dbversion_t *version,
: 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) {
+4 -16
View File
@@ -11569,7 +11569,6 @@ again:
* Find the closest encloser.
*/
dns_name_copy(name, cname);
bool once = true;
while (result == DNS_R_NXDOMAIN) {
labels = dns_name_countlabels(cname) - 1;
/*
@@ -11579,21 +11578,10 @@ again:
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.