refresh.h File Reference
#include "http/forward.h"
#include "store/forward.h"
Include dependency graph for refresh.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


void refreshAddToList (const char *, int, time_t, int, time_t)
bool refreshIsCachable (const StoreEntry *)
int refreshCheckHTTP (const StoreEntry *, HttpRequest *)
int refreshCheckICP (const StoreEntry *, HttpRequest *)
int refreshCheckHTCP (const StoreEntry *, HttpRequest *)
int refreshCheckDigest (const StoreEntry *, time_t delta)
time_t getMaxAge (const char *url)
void refreshInit (void)
const RefreshPatternrefreshLimits (const char *url)

Function Documentation

◆ getMaxAge()

time_t getMaxAge ( const char *  url)

Get the configured maximum caching time for objects with this URL according to refresh_pattern.

Used by when generating a upstream requests to ensure that responses it is given are fresh enough to be worth caching.

Return values
pattern-maxif there is a refresh_pattern matching the URL configured.
REFRESH_DEFAULT_MAXif there are no explicit limits configured

Definition at line 633 of file

References debugs, RefreshPattern::max, REFRESH_DEFAULT_MAX, and refreshLimits().

Referenced by HttpStateData::httpBuildRequestHeader().

◆ refreshAddToList()

void refreshAddToList ( const char *  ,
int  ,
time_t  ,
int  ,

◆ refreshCheckDigest()

◆ refreshCheckHTCP()

int refreshCheckHTCP ( const StoreEntry entry,
HttpRequest request 

◆ refreshCheckHTTP()

int refreshCheckHTTP ( const StoreEntry entry,
HttpRequest request 

Protocol-specific wrapper around refreshCheck() function.

Note the reason for STALE/FRESH then return true/false respectively.

Return values

Definition at line 575 of file

References Config, HttpRequest::flags, SquidConfig::offline, SquidConfig::onoff, rcHTTP, refreshCheck(), refreshCounts, refreshIsStaleIfHit(), RequestFlags::staleIfHit, RefreshCounts::status, and RefreshCounts::total.

Referenced by clientReplyContext::cacheHit().

◆ refreshCheckICP()

◆ refreshInit()

void refreshInit ( void  )

◆ refreshIsCachable()

bool refreshIsCachable ( const StoreEntry entry)

This is called by once it has received and parsed the origin server's response headers. It uses the result as part of its algorithm to decide whether a response should be cached.

Return values
trueif the entry is cacheable, regardless of whether FRESH or STALE
falseif the entry is not cacheable

TODO: this algorithm seems a bit odd and might not be quite right. Verify against HTTPbis.

Definition at line 519 of file

References MemObject::baseReply(), Config, Http::Message::content_length, StoreEntry::lastModified(), StoreEntry::mem_obj, SquidConfig::minimum_expiry_time, rcStore, refreshCheck(), refreshCounts, STALE_MUST_REVALIDATE, RefreshCounts::status, and RefreshCounts::total.

Referenced by HttpStateData::reusableReply().

◆ refreshLimits()

const RefreshPattern * refreshLimits ( const char *  url)

Locate the first refresh_pattern rule that matches the given URL by regex.

A pointer to the refresh_pattern parameters to use, or nullptr if there is no match.

Definition at line 92 of file

References Config, RefreshPattern::next, and SquidConfig::Refresh.

Referenced by getMaxAge(), and refreshCheck().






Web Site Translations