mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-03 22:08:25 -04:00
Add better ZEROTTL handling in bindrdataset()
If we know that the header has ZEROTTL set, the server should never send
stale records for it and the TTL should never be anything else than 0.
The comment was already there, but the code was not matching the
comment.
(cherry picked from commit cfee6aa565)
This commit is contained in:
parent
b32512a232
commit
4b114838de
2 changed files with 4 additions and 3 deletions
|
|
@ -1058,7 +1058,7 @@ bindrdataset(qpcache_t *qpdb, qpcnode_t *node, dns_slabheader_t *header,
|
|||
* (these records should not be cached anyway).
|
||||
*/
|
||||
|
||||
if (KEEPSTALE(qpdb) && stale_ttl > now) {
|
||||
if (!ZEROTTL(header) && KEEPSTALE(qpdb) && stale_ttl > now) {
|
||||
stale = true;
|
||||
} else {
|
||||
/*
|
||||
|
|
@ -1073,6 +1073,7 @@ bindrdataset(qpcache_t *qpdb, qpcnode_t *node, dns_slabheader_t *header,
|
|||
rdataset->rdclass = qpdb->common.rdclass;
|
||||
rdataset->type = DNS_TYPEPAIR_TYPE(header->type);
|
||||
rdataset->covers = DNS_TYPEPAIR_COVERS(header->type);
|
||||
rdataset->ttl = !ZEROTTL(header) ? header->ttl - now : 0;
|
||||
rdataset->ttl = header->ttl - now;
|
||||
rdataset->trust = header->trust;
|
||||
rdataset->resign = 0;
|
||||
|
|
|
|||
|
|
@ -2150,7 +2150,7 @@ dns__rbtdb_bindrdataset(dns_rbtdb_t *rbtdb, dns_rbtnode_t *node,
|
|||
* (these records should not be cached anyway).
|
||||
*/
|
||||
|
||||
if (KEEPSTALE(rbtdb) && stale_ttl > now) {
|
||||
if (!ZEROTTL(header) && KEEPSTALE(rbtdb) && stale_ttl > now) {
|
||||
stale = true;
|
||||
} else {
|
||||
/*
|
||||
|
|
@ -2165,7 +2165,7 @@ dns__rbtdb_bindrdataset(dns_rbtdb_t *rbtdb, dns_rbtnode_t *node,
|
|||
rdataset->rdclass = rbtdb->common.rdclass;
|
||||
rdataset->type = DNS_TYPEPAIR_TYPE(header->type);
|
||||
rdataset->covers = DNS_TYPEPAIR_COVERS(header->type);
|
||||
rdataset->ttl = header->ttl - now;
|
||||
rdataset->ttl = !ZEROTTL(header) ? header->ttl - now : 0;
|
||||
rdataset->trust = header->trust;
|
||||
|
||||
if (NEGATIVE(header)) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue