2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-09-02 15:45:25 +00:00

rndc dumpdb -expired: print when RRsets expired

When calling 'rndc dumpdb -expired', also print when the RRset expired.
This commit is contained in:
Matthijs Mekking
2020-09-22 16:09:44 +02:00
parent 1728599684
commit d14c2d0d73
3 changed files with 15 additions and 7 deletions

View File

@@ -1245,7 +1245,7 @@ if [ $ret != 0 ]; then echo_i "failed"; fi
status=$((status+ret)) status=$((status+ret))
# Check that expired records are not dumped. # Check that expired records are not dumped.
ret=0 ret=0
grep "; expired (awaiting cleanup)" ns5/named_dump.db.test$n && ret=1 grep "; expired since .* (awaiting cleanup)" ns5/named_dump.db.test$n && ret=1
if [ $ret != 0 ]; then echo_i "failed"; fi if [ $ret != 0 ]; then echo_i "failed"; fi
status=$((status+ret)) status=$((status+ret))
@@ -1261,13 +1261,13 @@ status=$((status+ret))
echo_i "check rndc dump expired data.example ($n)" echo_i "check rndc dump expired data.example ($n)"
ret=0 ret=0
awk '/; expired/ { x=$0; getline; print x, $0}' ns5/named_dump.db.test$n | awk '/; expired/ { x=$0; getline; print x, $0}' ns5/named_dump.db.test$n |
grep "; expired (awaiting cleanup) data\.example\..*A text record with a 2 second ttl" > /dev/null 2>&1 || ret=1 grep "; expired since .* (awaiting cleanup) data\.example\..*A text record with a 2 second ttl" > /dev/null 2>&1 || ret=1
awk '/; expired/ { x=$0; getline; print x, $0}' ns5/named_dump.db.test$n | awk '/; expired/ { x=$0; getline; print x, $0}' ns5/named_dump.db.test$n |
grep "; expired (awaiting cleanup) nodata\.example\." > /dev/null 2>&1 || ret=1 grep "; expired since .* (awaiting cleanup) nodata\.example\." > /dev/null 2>&1 || ret=1
awk '/; expired/ { x=$0; getline; print x, $0}' ns5/named_dump.db.test$n | awk '/; expired/ { x=$0; getline; print x, $0}' ns5/named_dump.db.test$n |
grep "; expired (awaiting cleanup) nxdomain\.example\." > /dev/null 2>&1 || ret=1 grep "; expired since .* (awaiting cleanup) nxdomain\.example\." > /dev/null 2>&1 || ret=1
awk '/; expired/ { x=$0; getline; print x, $0}' ns5/named_dump.db.test$n | awk '/; expired/ { x=$0; getline; print x, $0}' ns5/named_dump.db.test$n |
grep "; expired (awaiting cleanup) othertype\.example\." > /dev/null 2>&1 || ret=1 grep "; expired since .* (awaiting cleanup) othertype\.example\." > /dev/null 2>&1 || ret=1
# Also make sure the not expired data does not have an expired comment. # Also make sure the not expired data does not have an expired comment.
awk '/; answer/ { x=$0; getline; print x, $0}' ns5/named_dump.db.test$n | awk '/; answer/ { x=$0; getline; print x, $0}' ns5/named_dump.db.test$n |
grep "; answer longttl\.example.*A text record with a 600 second ttl" > /dev/null 2>&1 || ret=1 grep "; answer longttl\.example.*A text record with a 600 second ttl" > /dev/null 2>&1 || ret=1

View File

@@ -1114,7 +1114,15 @@ again:
(rds->stale_ttl - (rds->stale_ttl -
ctx->serve_stale_ttl)); ctx->serve_stale_ttl));
} else if (ANCIENT(rds)) { } else if (ANCIENT(rds)) {
fprintf(f, "; expired (awaiting cleanup)\n"); 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->stale_ttl, &b);
fprintf(f,
"; expired since %s "
"(awaiting cleanup)\n",
buf);
} }
result = dump_rdataset(mctx, name, rds, ctx, buffer, f); result = dump_rdataset(mctx, name, rds, ctx, buffer, f);
if (result != ISC_R_SUCCESS) { if (result != ISC_R_SUCCESS) {

View File

@@ -3146,7 +3146,7 @@ bind_rdataset(dns_rbtdb_t *rbtdb, dns_rbtnode_t *node, rdatasetheader_t *header,
rdataset->ttl = 0; rdataset->ttl = 0;
} else if (header->rdh_ttl < now) { } else if (header->rdh_ttl < now) {
rdataset->attributes |= DNS_RDATASETATTR_ANCIENT; rdataset->attributes |= DNS_RDATASETATTR_ANCIENT;
rdataset->stale_ttl = 0; rdataset->stale_ttl = header->rdh_ttl;
rdataset->ttl = 0; rdataset->ttl = 0;
} }