| 342 | namespace { |
| 343 | |
| 344 | bool shouldRevalidateCache(const CacheItem& cacheItem) { |
| 345 | std::optional<ResponseCacheControl> cacheControl = |
| 346 | ResponseCacheControl::parseFromResponseHeaders( |
| 347 | cacheItem.cacheResponse.headers); |
| 348 | if (cacheControl && cacheControl->noCache()) |
| 349 | return true; |
| 350 | |
| 351 | // Always revalidate if cache is stale. We always assume online scenarios. |
| 352 | // A must-revalidate directive doesn't change this logic. |
| 353 | return isCacheStale(cacheItem); |
| 354 | } |
| 355 | |
| 356 | bool isCacheStale(const CacheItem& cacheItem) noexcept { |
| 357 | const std::time_t currentTime = std::time(nullptr); |
no test coverage detected