firstIndexIterator = map->d_map.project<OrderedTag>(i);
// When serving stale, we consider expired records
- if (i->isEntryUsable(now, serveStale)) {
+ if (!i->isEntryUsable(now, serveStale)) {
moveCacheItemToFront<SequencedTag>(map->d_map, firstIndexIterator);
continue;
}
firstIndexIterator = map->d_map.project<OrderedTag>(i);
// When serving stale, we consider expired records
- if (i->isEntryUsable(now, serveStale)) {
+ if (!i->isEntryUsable(now, serveStale)) {
moveCacheItemToFront<SequencedTag>(map->d_map, firstIndexIterator);
continue;
}
bool isEntryUsable(time_t now, bool serveStale) const
{
// When serving stale, we consider expired records
- return d_ttd <= now && !serveStale && d_servedStale == 0;
+ return d_ttd > now || serveStale || d_servedStale != 0;
}
bool shouldReplace(time_t now, bool auth, vState state, bool refresh);