2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 05:57:52 +00:00

Reuse rdatset->ttl when dumping ancient RRsets

Rather than having an expensive 'expired' (fka 'stale_ttl') in the
rdataset structure, that is only used to be printed in a comment on
ancient RRsets, reuse the TTL field of the RRset.
This commit is contained in:
Matthijs Mekking 2021-05-27 09:43:21 +02:00 committed by Evan Hunt
parent 0cdf85d204
commit f7f543d99b
3 changed files with 3 additions and 12 deletions

View File

@ -130,13 +130,6 @@ struct dns_rdataset {
*/
isc_stdtime_t resign;
/*
* When a cache rdataset's TTL has expired but it hasn't been
* cleaned up yet, it will have this value set so that the time
* it expired can be printed by dns_master_dump*().
*/
isc_stdtime_t expired;
/*@{*/
/*%
* These are for use by the rdataset implementation, and MUST NOT

View File

@ -1109,12 +1109,12 @@ again:
isc_result_t result;
if (STALE(rds)) {
fprintf(f, "; stale\n");
} else if (ANCIENT(rds) && rds->expired != 0) {
} else if (ANCIENT(rds)) {
isc_buffer_t b;
char buf[sizeof("YYYYMMDDHHMMSS")];
memset(buf, 0, sizeof(buf));
isc_buffer_init(&b, buf, sizeof(buf) - 1);
dns_time64_totext((uint64_t)rds->expired, &b);
dns_time64_totext((uint64_t)rds->ttl, &b);
fprintf(f,
"; expired since %s "
"(awaiting cleanup)\n",

View File

@ -3135,7 +3135,6 @@ bind_rdataset(dns_rbtdb_t *rbtdb, dns_rbtnode_t *node, rdatasetheader_t *header,
rdataset->type = RBTDB_RDATATYPE_BASE(header->type);
rdataset->covers = RBTDB_RDATATYPE_EXT(header->type);
rdataset->ttl = header->rdh_ttl - now;
rdataset->expired = 0;
rdataset->trust = header->trust;
if (NEGATIVE(header)) {
@ -3164,8 +3163,7 @@ bind_rdataset(dns_rbtdb_t *rbtdb, dns_rbtnode_t *node, rdatasetheader_t *header,
rdataset->attributes |= DNS_RDATASETATTR_STALE;
} else if (IS_CACHE(rbtdb) && !ACTIVE(header, now)) {
rdataset->attributes |= DNS_RDATASETATTR_ANCIENT;
rdataset->expired = header->rdh_ttl;
rdataset->ttl = 0;
rdataset->ttl = header->rdh_ttl;
}
rdataset->private1 = rbtdb;