From f7f543d99bcb7008808e0c55e35ccd6788cb32a7 Mon Sep 17 00:00:00 2001 From: Matthijs Mekking Date: Thu, 27 May 2021 09:43:21 +0200 Subject: [PATCH] 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. --- lib/dns/include/dns/rdataset.h | 7 ------- lib/dns/masterdump.c | 4 ++-- lib/dns/rbtdb.c | 4 +--- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/lib/dns/include/dns/rdataset.h b/lib/dns/include/dns/rdataset.h index 906edd0aa3..2569e40d23 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 74ec7972ba..c66eb7cceb 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 f1074d3fd4..4d37a36ba3 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;