mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-31 06:25:31 +00:00
QNAME miminimization should create a separate fetch context for each fetch -
this makes the cache more efficient and eliminates duplicates queries.
This commit is contained in:
@@ -4024,7 +4024,7 @@ fetch_name(dns_adbname_t *adbname, bool start_at_zone,
|
||||
adbname);
|
||||
name = dns_fixedname_initname(&fixed);
|
||||
result = dns_view_findzonecut(adb->view, &adbname->name, name,
|
||||
0, 0, true, false,
|
||||
NULL, 0, 0, true, false,
|
||||
&rdataset, NULL);
|
||||
if (result != ISC_R_SUCCESS && result != DNS_R_HINT)
|
||||
goto cleanup;
|
||||
@@ -4032,14 +4032,6 @@ fetch_name(dns_adbname_t *adbname, bool start_at_zone,
|
||||
options |= DNS_FETCHOPT_UNSHARED;
|
||||
}
|
||||
|
||||
if (adb->view->qminimization) {
|
||||
options |= DNS_FETCHOPT_QMINIMIZE;
|
||||
options |= DNS_FETCHOPT_QMIN_SKIP_IP6A;
|
||||
if (adb->view->qmin_strict) {
|
||||
options |= DNS_FETCHOPT_QMIN_STRICT;
|
||||
}
|
||||
}
|
||||
|
||||
fetch = new_adbfetch(adb);
|
||||
if (fetch == NULL) {
|
||||
result = ISC_R_NOMEMORY;
|
||||
@@ -4047,6 +4039,14 @@ fetch_name(dns_adbname_t *adbname, bool start_at_zone,
|
||||
}
|
||||
fetch->depth = depth;
|
||||
|
||||
/*
|
||||
* We're not minimizing this query, as nothing user-related should
|
||||
* be leaked here.
|
||||
* However, if we'd ever want to change it we'd have to modify
|
||||
* createfetch to find deepest cached name when we're providing
|
||||
* domain and nameservers.
|
||||
*/
|
||||
|
||||
result = dns_resolver_createfetch(adb->view->resolver, &adbname->name,
|
||||
type, name, nameservers, NULL,
|
||||
NULL, 0, options, depth, qc,
|
||||
|
Reference in New Issue
Block a user