mirror of
https://github.com/isc-projects/bind9.git
synced 2026-02-28 20:41:18 -05:00
Add extra checks for !ANCIENT(header)
There are some occurrences where we check if a header exists in the rbtdb. These cases require that the header is also not marked as ancient (aka ready for cleanup). These cases involve finding certain data in cache.
This commit is contained in:
parent
322626ab5b
commit
e2d4896864
1 changed files with 12 additions and 6 deletions
|
|
@ -3523,7 +3523,9 @@ find_wildcard(rbtdb_search_t *search, dns_rbtnode_t **nodep,
|
|||
for (header = node->data; header != NULL; header = header->next)
|
||||
{
|
||||
if (header->serial <= search->serial &&
|
||||
!IGNORE(header) && EXISTS(header)) {
|
||||
!IGNORE(header) && EXISTS(header) &&
|
||||
!ANCIENT(header))
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -3582,7 +3584,9 @@ find_wildcard(rbtdb_search_t *search, dns_rbtnode_t **nodep,
|
|||
for (header = wnode->data; header != NULL;
|
||||
header = header->next) {
|
||||
if (header->serial <= search->serial &&
|
||||
!IGNORE(header) && EXISTS(header)) {
|
||||
!IGNORE(header) && EXISTS(header) &&
|
||||
!ANCIENT(header))
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -4677,11 +4681,13 @@ cache_zonecut_callback(dns_rbtnode_t *node, dns_name_t *name, void *arg) {
|
|||
&header_prev)) {
|
||||
/* Do nothing. */
|
||||
} else if (header->type == dns_rdatatype_dname &&
|
||||
EXISTS(header)) {
|
||||
EXISTS(header) && !ANCIENT(header))
|
||||
{
|
||||
dname_header = header;
|
||||
header_prev = header;
|
||||
} else if (header->type == RBTDB_RDATATYPE_SIGDNAME &&
|
||||
EXISTS(header)) {
|
||||
EXISTS(header) && !ANCIENT(header))
|
||||
{
|
||||
sigdname_header = header;
|
||||
header_prev = header;
|
||||
} else {
|
||||
|
|
@ -4751,7 +4757,7 @@ find_deepest_zonecut(rbtdb_search_t *search, dns_rbtnode_t *node,
|
|||
if (check_stale_header(node, header, &locktype, lock,
|
||||
search, &header_prev)) {
|
||||
/* Do nothing. */
|
||||
} else if (EXISTS(header)) {
|
||||
} else if (EXISTS(header) && !ANCIENT(header)) {
|
||||
/*
|
||||
* We've found an extant rdataset. See if
|
||||
* we're interested in it.
|
||||
|
|
@ -5373,7 +5379,7 @@ cache_findzonecut(dns_db_t *db, const dns_name_t *name, unsigned int options,
|
|||
if (check_stale_header(node, header, &locktype, lock, &search,
|
||||
&header_prev)) {
|
||||
/* Do nothing. */
|
||||
} else if (EXISTS(header)) {
|
||||
} else if (EXISTS(header) && !ANCIENT(header)) {
|
||||
/*
|
||||
* If we found a type we were looking for, remember
|
||||
* it.
|
||||
|
|
|
|||
Loading…
Reference in a new issue