From: Matthijs Mekking Date: Thu, 27 May 2021 07:43:21 +0000 (+0200) Subject: Reuse rdatset->ttl when dumping ancient RRsets X-Git-Tag: v9.17.14~15^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f7f543d99bcb7008808e0c55e35ccd6788cb32a7;p=thirdparty%2Fbind9.git 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. --- diff --git a/lib/dns/include/dns/rdataset.h b/lib/dns/include/dns/rdataset.h index 906edd0aa3a..2569e40d23a 100644 --- a/lib/dns/include/dns/rdataset.h +++ b/lib/dns/include/dns/rdataset.h @@ -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 diff --git a/lib/dns/masterdump.c b/lib/dns/masterdump.c index 74ec7972baf..c66eb7ccebc 100644 --- a/lib/dns/masterdump.c +++ b/lib/dns/masterdump.c @@ -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", diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c index f1074d3fd4d..4d37a36ba32 100644 --- a/lib/dns/rbtdb.c +++ b/lib/dns/rbtdb.c @@ -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;