From def6608a44b02a8b45db01cd7c54cf466f39bdca Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Fri, 17 Apr 2015 23:09:05 +1000 Subject: [PATCH] don't set rdh_ttl in init_rdataset --- lib/dns/rbtdb.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c index aadb481ba9..0782a8fb71 100644 --- a/lib/dns/rbtdb.c +++ b/lib/dns/rbtdb.c @@ -1031,12 +1031,15 @@ set_ttl(dns_rbtdb_t *rbtdb, rdatasetheader_t *header, dns_ttl_t newttl) { isc_heap_t *heap; dns_ttl_t oldttl; + + if (!IS_CACHE(rbtdb)) { + header->rdh_ttl = newttl; + return; + } + oldttl = header->rdh_ttl; header->rdh_ttl = newttl; - if (!IS_CACHE(rbtdb)) - return; - /* * It's possible the rbtdb is not a cache. If this is the case, * we will not have a heap, and we move on. If we do, though, @@ -1555,7 +1558,6 @@ static inline void init_rdataset(dns_rbtdb_t *rbtdb, rdatasetheader_t *h) { ISC_LINK_INIT(h, link); h->heap_index = 0; - h->rdh_ttl = 0; h->is_mmapped = 0; h->next_is_relative = 0; h->node_is_relative = 0; @@ -1605,6 +1607,7 @@ new_rdataset(dns_rbtdb_t *rbtdb, isc_mem_t *mctx) { #endif memset(h->upper, 0xeb, sizeof(h->upper)); init_rdataset(rbtdb, h); + h->rdh_ttl = 0; return (h); }