2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 14:07:59 +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; 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 * These are for use by the rdataset implementation, and MUST NOT

View File

@@ -1109,12 +1109,12 @@ again:
isc_result_t result; isc_result_t result;
if (STALE(rds)) { if (STALE(rds)) {
fprintf(f, "; stale\n"); fprintf(f, "; stale\n");
} else if (ANCIENT(rds) && rds->expired != 0) { } else if (ANCIENT(rds)) {
isc_buffer_t b; isc_buffer_t b;
char buf[sizeof("YYYYMMDDHHMMSS")]; char buf[sizeof("YYYYMMDDHHMMSS")];
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
isc_buffer_init(&b, buf, sizeof(buf) - 1); 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, fprintf(f,
"; expired since %s " "; expired since %s "
"(awaiting cleanup)\n", "(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->type = RBTDB_RDATATYPE_BASE(header->type);
rdataset->covers = RBTDB_RDATATYPE_EXT(header->type); rdataset->covers = RBTDB_RDATATYPE_EXT(header->type);
rdataset->ttl = header->rdh_ttl - now; rdataset->ttl = header->rdh_ttl - now;
rdataset->expired = 0;
rdataset->trust = header->trust; rdataset->trust = header->trust;
if (NEGATIVE(header)) { 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; rdataset->attributes |= DNS_RDATASETATTR_STALE;
} else if (IS_CACHE(rbtdb) && !ACTIVE(header, now)) { } else if (IS_CACHE(rbtdb) && !ACTIVE(header, now)) {
rdataset->attributes |= DNS_RDATASETATTR_ANCIENT; rdataset->attributes |= DNS_RDATASETATTR_ANCIENT;
rdataset->expired = header->rdh_ttl; rdataset->ttl = header->rdh_ttl;
rdataset->ttl = 0;
} }
rdataset->private1 = rbtdb; rdataset->private1 = rbtdb;