It was discovered that an expired header could sit on top of the heap
a little longer than desireable. Remove expired headers (headers with
rdh_ttl set to 0) from the heap completely, so they don't block the next
TTL-based cleaning.
(cherry picked from commit
a9383e4b95256a65f9f05e64a79b086a9a1ed035)
} else {
isc_heap_decreased(heap, header->heap_index);
}
+
+ if (newttl == 0) {
+ isc_heap_delete(heap, header->heap_index);
+ }
}
static bool