#include <RequestFlags.h>
Public Member Functions | |
RequestFlags | cloneAdaptationImmune () const |
bool | doneFollowXff () const |
bool | noCacheHack () const |
void | disableCacheUse (const char *reason) |
Public Attributes | |
bool | noCache = false |
bool | ims = false |
bool | auth = false |
bool | auth_no_keytab = false |
SupportOrVeto | cachable |
whether the response may be stored in the cache More... | |
bool | hierarchical = false |
bool | loopDetected = false |
bool | proxyKeepalive = false |
bool | refresh = false |
bool | redirected = false |
bool | needValidation = false |
bool | failOnValidationError = false |
bool | staleIfHit = false |
bool | nocacheHack = false |
bool | accelerated = false |
bool | ignoreCc = false |
bool | intercepted = false |
bool | hostVerified = false |
bool | interceptTproxy = false |
Set for requests handled by a "tproxy" port. More... | |
bool | spoofClientIp = false |
bool | internal = false |
bool | mustKeepalive = false |
bool | connectionAuth = false |
bool | connectionAuthDisabled = false |
bool | connectionProxyAuth = false |
bool | pinned = false |
bool | authSent = false |
bool | noDirect = false |
bool | chunkedReply = false |
bool | streamError = false |
bool | sslPeek = false |
bool | done_follow_x_forwarded_for = false |
bool | sslBumped = false |
bool | ftpNative = false |
carries a representation of an FTP command [received on ftp_port] More... | |
bool | destinationIpLookedUp = false |
bool | resetTcp = false |
bool | isRanged = false |
bool | forceTunnel = false |
whether to forward via TunnelStateData (instead of FwdState) More... | |
Detailed Description
request-related flags
Contains both flags marking a request's current state, and flags requesting some processing to be done at a later stage. TODO: better distinguish the two cases.
Definition at line 22 of file RequestFlags.h.
Member Function Documentation
◆ cloneAdaptationImmune()
RequestFlags RequestFlags::cloneAdaptationImmune | ( | ) | const |
clone the flags, resetting to default those which are not safe in a related (e.g. ICAP-adapted) request.
Definition at line 21 of file RequestFlags.cc.
Referenced by HttpRequest::inheritProperties().
◆ disableCacheUse()
void RequestFlags::disableCacheUse | ( | const char * | reason | ) |
ban satisfying the request from the cache and ban storing the response in the cache
- Parameters
-
reason summarizes the marking decision context (for debugging)
Definition at line 30 of file RequestFlags.cc.
References cachable, debugs, noCache, and SupportOrVeto::veto().
Referenced by ClientHttpRequest::checkForInternalAccess(), ClientRequestContext::checkNoCacheDone(), and Ftp::Server::setReply().
◆ doneFollowXff()
|
inline |
Definition at line 128 of file RequestFlags.h.
References done_follow_x_forwarded_for.
Referenced by ClientRequestContext::clientAccessCheck().
◆ noCacheHack()
|
inline |
Definition at line 133 of file RequestFlags.h.
References nocacheHack.
Referenced by clientReplyContext::cacheHit(), clientReplyContext::identifyFoundObject(), and refreshCheck().
Member Data Documentation
◆ accelerated
bool RequestFlags::accelerated = false |
this request is accelerated (reverse-proxy)
Definition at line 62 of file RequestFlags.h.
Referenced by clientReplyContext::buildReplyHeader(), clientBeginRequest(), clientInterpretRequestHeaders(), clientProcessRequest(), HttpStateData::continueAfterParsingHeader(), HttpStateData::httpBuildRequestHeader(), and HttpStateData::processSurrogateControl().
◆ auth
bool RequestFlags::auth = false |
request is authenticated
Definition at line 30 of file RequestFlags.h.
Referenced by clientCheckPinning(), clientHierarchical(), clientInterpretRequestHeaders(), copyOneHeaderFromClientsideRequestToUpstreamRequest(), HttpStateData::reusableReply(), FwdState::usePinned(), and TunnelStateData::usePinned().
◆ auth_no_keytab
bool RequestFlags::auth_no_keytab = false |
do not use keytabs for peer Kerberos authentication
Definition at line 32 of file RequestFlags.h.
Referenced by httpFixupAuthentication(), HttpRequest::prepForDirect(), and HttpRequest::prepForPeering().
◆ authSent
bool RequestFlags::authSent = false |
Authentication was already sent upstream (e.g. due tcp-level auth)
Definition at line 94 of file RequestFlags.h.
Referenced by HttpStateData::buildRequestPrefix(), HttpStateData::processReplyBody(), and HttpStateData::reusableReply().
◆ cachable
SupportOrVeto RequestFlags::cachable |
Definition at line 35 of file RequestFlags.h.
Referenced by CheckQuickAbortIsReasonable(), clientInterpretRequestHeaders(), copyOneHeaderFromClientsideRequestToUpstreamRequest(), TestRock::createEntry(), clientReplyContext::createStoreEntry(), HttpStateData::decideIfWeDoRanges(), disableCacheUse(), ClientHttpRequest::doCallouts(), ClientRequestContext::hostHeaderVerifyFailed(), HttpStateData::httpBuildRequestHeader(), httpMaybeRemovePublic(), peerDigestRequest(), storeCreateEntry(), storeDigestRewriteStart(), and TestUfs::testUfsSearch().
◆ chunkedReply
bool RequestFlags::chunkedReply = false |
Reply with chunked transfer encoding
Definition at line 99 of file RequestFlags.h.
Referenced by clientReplyContext::buildReplyHeader(), clientReplyContext::checkTransferDone(), and Http::One::Server::handleReply().
◆ connectionAuth
bool RequestFlags::connectionAuth = false |
set if the request wants connection oriented auth
Definition at line 85 of file RequestFlags.h.
Referenced by clientReplyContext::buildReplyHeader(), HttpStateData::buildRequestPrefix(), clientCheckPinning(), HttpStateData::decideIfWeDoRanges(), ConnStateData::pinConnection(), and HttpStateData::processReplyBody().
◆ connectionAuthDisabled
bool RequestFlags::connectionAuthDisabled = false |
set if connection oriented auth can not be supported
Definition at line 87 of file RequestFlags.h.
Referenced by clientReplyContext::buildReplyHeader(), clientCheckPinning(), and HttpStateData::processReplyHeader().
◆ connectionProxyAuth
bool RequestFlags::connectionProxyAuth = false |
Request wants connection oriented auth
Definition at line 90 of file RequestFlags.h.
Referenced by clientCheckPinning().
◆ destinationIpLookedUp
bool RequestFlags::destinationIpLookedUp = false |
Definition at line 113 of file RequestFlags.h.
Referenced by ACLDestinationIP::match().
◆ done_follow_x_forwarded_for
bool RequestFlags::done_follow_x_forwarded_for = false |
set if X-Forwarded-For checking is complete
do not read directly; use doneFollowXff for reading
Definition at line 108 of file RequestFlags.h.
Referenced by clientFollowXForwardedForCheck(), and doneFollowXff().
◆ failOnValidationError
bool RequestFlags::failOnValidationError = false |
whether we should fail if validation fails
Definition at line 52 of file RequestFlags.h.
Referenced by clientReplyContext::handleIMSReply(), and refreshCheck().
◆ forceTunnel
bool RequestFlags::forceTunnel = false |
Definition at line 120 of file RequestFlags.h.
Referenced by TunnelStateData::clientExpectsConnectResponse(), ConnStateData::initiateTunneledRequest(), ClientHttpRequest::processRequest(), and ClientRequestContext::sslBumpAccessCheck().
◆ ftpNative
bool RequestFlags::ftpNative = false |
Definition at line 112 of file RequestFlags.h.
Referenced by FwdState::dispatch(), and FwdState::start().
◆ hierarchical
bool RequestFlags::hierarchical = false |
the request can be forwarded through the hierarchy
Definition at line 38 of file RequestFlags.h.
Referenced by clientInterpretRequestHeaders(), ClientRequestContext::hostHeaderVerifyFailed(), neighborsDigestSelect(), peerSelectIcpPing(), peerWouldBePinged(), PeerSelector::selectMore(), and storeCreateEntry().
◆ hostVerified
bool RequestFlags::hostVerified = false |
set if the Host: header passed verification
Definition at line 68 of file RequestFlags.h.
Referenced by clientHierarchical(), ClientRequestContext::hostHeaderIpVerify(), ClientRequestContext::hostHeaderVerify(), HttpRequest::maybeCacheable(), PeerSelector::resolveSelected(), and FwdState::start().
◆ ignoreCc
bool RequestFlags::ignoreCc = false |
if set, ignore Cache-Control headers
Definition at line 64 of file RequestFlags.h.
Referenced by clientInterpretRequestHeaders(), HttpRequest::manager(), HttpRequest::maybeCacheable(), and refreshCheck().
◆ ims
bool RequestFlags::ims = false |
request is if-modified-since
Definition at line 28 of file RequestFlags.h.
Referenced by clientHierarchical(), clientInterpretRequestHeaders(), HttpRequest::conditional(), clientReplyContext::handleIMSReply(), clientReplyContext::processConditional(), refreshCheck(), and clientReplyContext::sendNotModified().
◆ intercepted
bool RequestFlags::intercepted = false |
set for intercepted requests
Definition at line 66 of file RequestFlags.h.
Referenced by clientReplyContext::buildReplyHeader(), TunnelStateData::clientExpectsConnectResponse(), clientHierarchical(), FindGoodListeningPortAddress(), ClientRequestContext::hostHeaderVerify(), HttpRequest::manager(), ACLDestinationIP::match(), HttpRequest::maybeCacheable(), PeerSelector::resolveSelected(), ClientHttpRequest::sslBumpStart(), and FwdState::start().
◆ interceptTproxy
bool RequestFlags::interceptTproxy = false |
Definition at line 70 of file RequestFlags.h.
Referenced by TunnelStateData::clientExpectsConnectResponse(), clientHierarchical(), FindGoodListeningPortAddress(), ClientRequestContext::hostHeaderVerify(), HttpRequest::manager(), ACLDestinationIP::match(), HttpRequest::maybeCacheable(), PeerSelector::resolveSelected(), ClientHttpRequest::sslBumpStart(), and FwdState::start().
◆ internal
bool RequestFlags::internal = false |
whether the request targets a /squid-internal- resource (e.g., a MIME icon or a cache manager page) served by this Squid instance TODO: Rename to avoid a false implication that this flag is true for requests for /squid-internal- resources served by other Squid instances.
Definition at line 80 of file RequestFlags.h.
Referenced by clientReplyContext::blockedHit(), clientReplyContext::cacheHit(), ClientHttpRequest::checkForInternalAccess(), ClientRequestContext::hostHeaderVerify(), clientReplyContext::identifyStoreObject(), internalStart(), and FwdState::Start().
◆ isRanged
bool RequestFlags::isRanged = false |
set if the request is ranged
Definition at line 117 of file RequestFlags.h.
Referenced by clientInterpretRequestHeaders(), StoreEntry::hasIfNoneMatchEtag(), and HttpStateData::httpBuildRequestHeader().
◆ loopDetected
bool RequestFlags::loopDetected = false |
a loop was detected on this request
Definition at line 40 of file RequestFlags.h.
Referenced by clientHierarchical(), clientInterpretRequestHeaders(), netdbExchangeStart(), peerAllowedToUse(), clientReplyContext::processMiss(), and PeerSelector::selectMore().
◆ mustKeepalive
bool RequestFlags::mustKeepalive = false |
if set, request to try very hard to keep the connection alive
Definition at line 83 of file RequestFlags.h.
Referenced by clientReplyContext::buildReplyHeader(), and HttpStateData::sendRequest().
◆ needValidation
bool RequestFlags::needValidation = false |
the requested object needs to be validated. See client_side_reply.cc for further information.
Definition at line 50 of file RequestFlags.h.
Referenced by clientReplyContext::cacheHit(), clientReplyContext::createStoreEntry(), HappyConnOpener::makeError(), ErrorState::NewForwarding(), and peerAllowedToUse().
◆ noCache
bool RequestFlags::noCache = false |
true if the response to this request may not be READ from cache
Definition at line 26 of file RequestFlags.h.
Referenced by clientReplyContext::cacheHit(), clientInterpretRequestHeaders(), disableCacheUse(), clientReplyContext::identifyFoundObject(), clientReplyContext::identifyStoreObject(), peerAllowedToUse(), and refreshCheck().
◆ nocacheHack
bool RequestFlags::nocacheHack = false |
request to override no-cache directives
always use noCacheHack() for reading.
- Note
- only meaningful if USE_HTTP_VIOLATIONS is defined at build time
Definition at line 60 of file RequestFlags.h.
Referenced by clientInterpretRequestHeaders(), and noCacheHack().
◆ noDirect
bool RequestFlags::noDirect = false |
Deny direct forwarding unless overridden by always_direct Used in accelerator mode
Definition at line 97 of file RequestFlags.h.
Referenced by clientProcessRequest(), and PeerSelector::selectMore().
◆ pinned
bool RequestFlags::pinned = false |
set if the request was sent on a pinned connection
Definition at line 92 of file RequestFlags.h.
Referenced by HttpStateData::buildRequestPrefix(), FwdState::checkRetry(), HttpStateData::peerSupportsConnectionPinning(), FwdState::pinnedCanRetry(), HttpStateData::processReplyBody(), FwdState::reforward(), FwdState::secureConnectionToPeerIfNeeded(), HttpStateData::sendRequest(), FwdState::start(), FwdState::usePinned(), and TunnelStateData::usePinned().
◆ proxyKeepalive
bool RequestFlags::proxyKeepalive = false |
the connection can be kept alive
Definition at line 42 of file RequestFlags.h.
Referenced by clientReplyContext::buildReplyHeader(), clientSetKeepaliveFlag(), ConnStateData::quitAfterError(), clientReplyContext::replyStatus(), and clientReplyContext::setReplyToError().
◆ redirected
bool RequestFlags::redirected = false |
request was redirected by redirectors
Definition at line 46 of file RequestFlags.h.
Referenced by copyOneHeaderFromClientsideRequestToUpstreamRequest(), ClientHttpRequest::resetRequestXXX(), PeerSelector::resolveSelected(), and FwdState::start().
◆ refresh
bool RequestFlags::refresh = false |
content has expired, need to refresh it
Definition at line 44 of file RequestFlags.h.
Referenced by Store::Controller::allowCollapsing(), peerAllowedToUse(), peerDigestRequest(), and clientReplyContext::processExpired().
◆ resetTcp
bool RequestFlags::resetTcp = false |
request to reset the TCP stream
Definition at line 115 of file RequestFlags.h.
Referenced by clientProcessRequestFinished(), and errorAppendEntry().
◆ spoofClientIp
bool RequestFlags::spoofClientIp = false |
The client IP address should be spoofed when connecting to the web server. This applies to TPROXY traffic that has not had spoofing disabled through the spoof_client_ip squid.conf ACL.
Definition at line 74 of file RequestFlags.h.
Referenced by getOutgoingAddress(), HttpRequest::manager(), PeerSelector::noteIp(), and HttpStateData::processReplyBody().
◆ sslBumped
bool RequestFlags::sslBumped = false |
set for ssl-bumped requests
Definition at line 110 of file RequestFlags.h.
Referenced by HttpStateData::HttpStateData(), clientReplyContext::buildReplyHeader(), ClientRequestContext::clientAccessCheckDone(), clientProcessRequest(), ACLProxyAuth::matchProxyAuth(), FwdState::noteConnection(), FwdState::pinnedCanRetry(), FwdState::secureConnectionToPeerIfNeeded(), HttpStateData::sendRequest(), and HappyConnOpener::startConnecting().
◆ sslPeek
bool RequestFlags::sslPeek = false |
internal ssl-bump request to get server cert
Definition at line 103 of file RequestFlags.h.
Referenced by FwdState::completed(), FwdState::dispatch(), FwdState::noteConnection(), FwdState::secureConnectionToPeer(), and FwdState::secureConnectionToPeerIfNeeded().
◆ staleIfHit
bool RequestFlags::staleIfHit = false |
reply is stale if it is a hit
Definition at line 54 of file RequestFlags.h.
Referenced by clientReplyContext::handleIMSReply(), and refreshCheckHTTP().
◆ streamError
bool RequestFlags::streamError = false |
set if stream error has occurred
Definition at line 101 of file RequestFlags.h.
Referenced by Http::One::Server::handleReply(), and clientReplyContext::sendStreamError().
The documentation for this class was generated from the following files:
- src/RequestFlags.h
- src/RequestFlags.cc