mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-31 22:45:39 +00:00
Reduce the number of fetches we make when looking up addresses
If there are more that 5 NS record for a zone only perform a maximum of 4 address lookups for all the name servers. This limits the amount of remote lookup performed for server addresses at each level for a given query.
This commit is contained in:
committed by
Michał Kępień
parent
e7abb07030
commit
3ee5ea2fdb
@@ -440,6 +440,7 @@ log_quota(dns_adbentry_t *entry, const char *fmt, ...) ISC_FORMAT_PRINTF(2, 3);
|
||||
#define FIND_GLUEOK(fn) (((fn)->options & DNS_ADBFIND_GLUEOK) != 0)
|
||||
#define FIND_HAS_ADDRS(fn) (!ISC_LIST_EMPTY((fn)->list))
|
||||
#define FIND_RETURNLAME(fn) (((fn)->options & DNS_ADBFIND_RETURNLAME) != 0)
|
||||
#define FIND_NOFETCH(fn) (((fn)->options & DNS_ADBFIND_NOFETCH) != 0)
|
||||
|
||||
/*
|
||||
* These are currently used on simple unsigned ints, so they are
|
||||
@@ -3234,7 +3235,9 @@ fetch:
|
||||
} else {
|
||||
have_address = false;
|
||||
}
|
||||
if (wanted_fetches != 0 && !(FIND_AVOIDFETCHES(find) && have_address)) {
|
||||
if (wanted_fetches != 0 && !(FIND_AVOIDFETCHES(find) && have_address) &&
|
||||
!FIND_NOFETCH(find))
|
||||
{
|
||||
/*
|
||||
* We're missing at least one address family. Either the
|
||||
* caller hasn't instructed us to avoid fetches, or we don't
|
||||
|
Reference in New Issue
Block a user