#include <client_side_request.h>

Inheritance diagram for ClientHttpRequest:
Collaboration diagram for ClientHttpRequest:

Classes

struct  Flags
 
struct  Out
 
struct  Redirect
 

Public Types

typedef CbcPointer< AsyncJobPointer
 
typedef CbcPointer< BodyConsumerPointer
 

Public Member Functions

void * operator new (size_t size)
 
void operator delete (void *address)
 
void * toCbdata () noexcept
 
 ClientHttpRequest (ConnStateData *csd)
 
 ~ClientHttpRequest ()
 
 ClientHttpRequest (ClientHttpRequest const &)
 
ClientHttpRequestoperator= (ClientHttpRequest const &)
 
String rangeBoundaryStr () const
 
void freeResources ()
 
void updateCounters ()
 
void logRequest ()
 
MemObjectmemObject () const
 
bool multipartRangeRequest () const
 
void processRequest ()
 
void httpStart ()
 
bool onlyIfCached () const
 
bool gotEnough () const
 
StoreEntrystoreEntry () const
 
void storeEntry (StoreEntry *)
 
StoreEntryloggingEntry () const
 
void loggingEntry (StoreEntry *)
 
ConnStateDatagetConn () const
 
void initRequest (HttpRequest *)
 
void resetRequest (HttpRequest *)
 
void updateLoggingTags (const LogTags_ot code)
 update the code in the transaction processing tags More...
 
const LogTagsloggingTags () const
 the processing tags associated with this request transaction. More...
 
int64_t mRangeCLen () const
 
void doCallouts ()
 
void setLogUriToRequestUri ()
 sets log_uri when we know the current request More...
 
void setLogUriToRawUri (const char *rawUri, const HttpRequestMethod &)
 
void setErrorUri (const char *errorUri)
 
int64_t prepPartialResponseGeneration ()
 
void calloutsError (const err_type error, const ErrorDetail::Pointer &errDetail)
 Build an error reply. For use with the callouts. More...
 
void updateError (const Error &error)
 if necessary, stores new error information (if any) More...
 
virtual bool doneAll () const
 whether positive goal has been reached More...
 
virtual void callException (const std::exception &ex)
 called when the job throws during an async call More...
 
Ssl::BumpMode sslBumpNeed () const
 returns raw sslBump mode value More...
 
bool sslBumpNeeded () const
 returns true if and only if the request needs to be bumped More...
 
void sslBumpNeed (Ssl::BumpMode mode)
 set the sslBumpNeeded state More...
 
void sslBumpStart ()
 
void sslBumpEstablish (Comm::Flag errflag)
 
void startAdaptation (const Adaptation::ServiceGroupPointer &g)
 Initiate an asynchronous adaptation transaction which will call us back. More...
 
bool requestSatisfactionMode () const
 
bool canBeCalled (AsyncCall &call) const
 whether we can be called More...
 
void callStart (AsyncCall &call)
 
virtual void callEnd ()
 called right after the called job method More...
 
void handleStopRequest ()
 process external request to terminate now (i.e. during this async call) More...
 

Static Public Member Functions

static void Start (const Pointer &job)
 

Public Attributes

Comm::ConnectionPointer clientConnection
 
HttpRequest *const request
 
char * uri
 
char *const log_uri
 
String store_id
 
struct ClientHttpRequest::Out out
 
HttpHdrRangeIter range_iter
 
size_t req_sz
 
const AccessLogEntry::Pointer al
 access.log entry More...
 
struct ClientHttpRequest::Flags flags
 
struct ClientHttpRequest::Redirect redirect
 
dlink_node active
 
dlink_list client_stream
 
ClientRequestContextcalloutContext
 
const InstanceId< AsyncJobid
 job identifier More...
 

Protected Member Functions

CbcPointer< Initiate > initiateAdaptation (Initiate *x)
 < starts freshly created initiate and returns a safe pointer to it More...
 
void clearAdaptation (CbcPointer< Initiate > &x)
 clears the pointer (does not call announceInitiatorAbort) More...
 
void announceInitiatorAbort (CbcPointer< Initiate > &x)
 inform the transaction about abnormal termination and clear the pointer More...
 
bool initiated (const CbcPointer< AsyncJob > &job) const
 Must(initiated(initiate)) instead of Must(initiate.set()), for clarity. More...
 
void deleteThis (const char *aReason)
 
void mustStop (const char *aReason)
 
bool done () const
 the job is destroyed in callEnd() when done() More...
 
virtual void start ()
 called by AsyncStart; do not call directly More...
 
virtual void swanSong ()
 
virtual const char * status () const
 internal cleanup; do not call directly More...
 
void stopConsumingFrom (RefCount< BodyPipe > &)
 

Protected Attributes

const char * stopReason
 reason for forcing done() to be true More...
 
const char * typeName
 kid (leaf) class name, for debugging More...
 
AsyncCall::Pointer inCall
 the asynchronous call being handled, if any More...
 
bool started_ = false
 Start() has finished successfully. More...
 
bool swanSang_ = false
 swanSong() was called More...
 

Private Member Functions

void absorbLogUri (char *aUri)
 assigns log_uri with aUri without copying the entire C-string More...
 
void clearRequest ()
 resets the current request and log_uri to nil More...
 
void assignRequest (HttpRequest *aRequest)
 
void handleAdaptationFailure (const ErrorDetail::Pointer &errDetail, bool bypassable=false)
 
virtual void noteAdaptationAnswer (const Adaptation::Answer &answer)
 
void handleAdaptedHeader (Http::Message *msg)
 
void handleAdaptationBlock (const Adaptation::Answer &answer)
 
virtual void noteAdaptationAclCheckDone (Adaptation::ServiceGroupPointer group)
 
virtual void noteMoreBodyDataAvailable (BodyPipe::Pointer)
 
virtual void noteBodyProductionEnded (BodyPipe::Pointer)
 
virtual void noteBodyProducerAborted (BodyPipe::Pointer)
 
void endRequestSatisfaction ()
 
void resumeBodyStorage ()
 called by StoreEntry when it has more buffer space available More...
 

Private Attributes

int64_t maxReplyBodySize_
 
StoreEntryentry_
 
StoreEntryloggingEntry_
 
ConnStateDataconn_
 
Ssl::BumpMode sslBumpNeed_
 whether (and how) the request needs to be bumped More...
 
CbcPointer< Adaptation::InitiatevirginHeadSource
 
BodyPipe::Pointer adaptedBodySource
 
bool receivedWholeAdaptedReply
 noteBodyProductionEnded() was called More...
 
bool request_satisfaction_mode
 
int64_t request_satisfaction_offset
 

Static Private Attributes

static cbdata_type CBDATA_ClientHttpRequest = CBDATA_UNKNOWN
 

Detailed Description

Definition at line 33 of file client_side_request.h.

Member Typedef Documentation

◆ Pointer [1/2]

Definition at line 34 of file AsyncJob.h.

◆ Pointer [2/2]

Definition at line 45 of file BodyPipe.h.

Constructor & Destructor Documentation

◆ ClientHttpRequest() [1/2]

◆ ~ClientHttpRequest()

◆ ClientHttpRequest() [2/2]

ClientHttpRequest::ClientHttpRequest ( ClientHttpRequest const &  )

Member Function Documentation

◆ absorbLogUri()

void ClientHttpRequest::absorbLogUri ( char *  aUri)
private

Definition at line 1925 of file client_side_request.cc.

References log_uri, and xfree.

Referenced by clearRequest(), setErrorUri(), setLogUriToRawUri(), and setLogUriToRequestUri().

◆ announceInitiatorAbort()

void Adaptation::Initiator::announceInitiatorAbort ( CbcPointer< Initiate > &  x)
protectedinherited

Definition at line 38 of file Initiator.cc.

References CallJobHere.

Referenced by ~ClientHttpRequest(), and Client::cleanAdaptation().

◆ assignRequest()

void ClientHttpRequest::assignRequest ( HttpRequest aRequest)
private

initializes the current unassigned request to the virgin request sets the current request, asserting that it was unset

Definition at line 1685 of file client_side_request.cc.

References assert, HTTPMSGLOCK(), request, and setLogUriToRequestUri().

Referenced by initRequest(), and resetRequest().

◆ callEnd()

void AsyncJob::callEnd ( )
virtualinherited

◆ callException()

void ClientHttpRequest::callException ( const std::exception &  e)
virtual

Reimplemented from AsyncJob.

Definition at line 2193 of file client_side_request.cc.

References clientConnection, DBG_IMPORTANT, debugs, getConn(), and Comm::IsConnOpen().

◆ calloutsError()

◆ callStart()

void AsyncJob::callStart ( AsyncCall call)
inherited

◆ canBeCalled()

bool AsyncJob::canBeCalled ( AsyncCall call) const
inherited

Definition at line 102 of file AsyncJob.cc.

References AsyncCall::cancel(), debugs, HERE(), AsyncJob::inCall, and NULL.

◆ clearAdaptation()

void Adaptation::Initiator::clearAdaptation ( CbcPointer< Initiate > &  x)
protectedinherited

◆ clearRequest()

void ClientHttpRequest::clearRequest ( )
private

Definition at line 1695 of file client_side_request.cc.

References absorbLogUri(), HTTPMSGUNLOCK(), and request.

Referenced by freeResources(), and resetRequest().

◆ deleteThis()

void AsyncJob::deleteThis ( const char *  aReason)
protectedinherited

◆ doCallouts()

void ClientHttpRequest::doCallouts ( )

Definition at line 1736 of file client_side_request.cc.

References SquidConfig::accessList, aclFindNfMarkConfig(), aclMapTOS(), ClientRequestContext::adaptation_acl_check_done, ClientRequestContext::adapted_http_access_done, ACLFilledChecklist::al, al, assert, Ssl::bumpClientFirst, SBuf::c_str(), RequestFlags::cachable, calloutContext, cbdataReferenceDone, ClientRequestContext::checkNoCache(), HttpRequest::client_addr, client_stream, ClientRequestContext::clientAccessCheck(), ClientRequestContext::clientAccessCheck2(), clientConnection, clientInterpretRequestHeaders(), ClientRequestContext::clientRedirectStart(), ClientRequestContext::clientStoreIdStart(), clientStreamRead(), Config, dlink_node::data, debugs, Ip::Qos::dirAccepted, ClientRequestContext::error, errorAppendEntry(), ConnStateData::flags, HttpRequest::flags, getConn(), HERE(), ClientRequestContext::host_header_verify_done, ClientRequestContext::hostHeaderVerify(), ClientRequestContext::http, ClientRequestContext::http_access_done, HttpRequest::icapHistory(), ClientRequestContext::interpreted_req_hdrs, Comm::IsConnOpen(), log_uri, loggingTags(), HttpRequest::method, Adaptation::methodReqmod, ACLFilledChecklist::my_addr, HttpRequest::my_addr, ClientRequestContext::no_cache_done, SquidConfig::noCache, NULL, Adaptation::pointPreCache, dlink_node::prev, processRequest(), SquidConfig::Program, ConnStateData::readMore, ClientRequestContext::readNextRequest, SquidConfig::redirect, ClientRequestContext::redirect_done, REDIRECT_PENDING, ClientRequestContext::redirect_state, request, Ip::Qos::setNfConnmark(), ConnStateData::setServerBump(), Ip::Qos::setSockNfmark(), Ip::Qos::setSockTos(), ACLFilledChecklist::src_addr, ClientRequestContext::sslBumpAccessCheck(), ClientRequestContext::sslBumpCheckDone, sslBumpNeed(), sslBumpNeeded(), Adaptation::AccessCheck::Start(), SquidConfig::store_id, ClientRequestContext::store_id_done, ClientRequestContext::store_id_state, storeCreateEntry(), HttpRequest::storeId(), ACLFilledChecklist::syncAle(), dlink_list::tail, Ip::Qos::TheConfig, ClientRequestContext::toClientMarkingDone, and StoreEntry::unlock().

Referenced by Downloader::buildRequest(), ClientRequestContext::checkNoCacheDone(), ClientRequestContext::clientAccessCheckDone(), clientBeginRequest(), clientProcessRequest(), ClientRequestContext::clientRedirectDone(), ClientRequestContext::clientStoreIdDone(), ConnStateData::fakeAConnectRequest(), handleAdaptationFailure(), handleAdaptedHeader(), ClientRequestContext::hostHeaderIpVerify(), ClientRequestContext::hostHeaderVerify(), ClientRequestContext::hostHeaderVerifyFailed(), ConnStateData::initiateTunneledRequest(), noteAdaptationAclCheckDone(), and ClientRequestContext::sslBumpAccessCheckDone().

◆ done()

bool AsyncJob::done ( ) const
protectedinherited

◆ doneAll()

virtual bool ClientHttpRequest::doneAll ( ) const
inlinevirtual

Reimplemented from AsyncJob.

Definition at line 177 of file client_side_request.h.

References AsyncJob::doneAll().

◆ endRequestSatisfaction()

◆ freeResources()

◆ getConn()

◆ gotEnough()

bool ClientHttpRequest::gotEnough ( ) const

◆ handleAdaptationBlock()

◆ handleAdaptationFailure()

void ClientHttpRequest::handleAdaptationFailure ( const ErrorDetail::Pointer errDetail,
bool  bypassable = false 
)
private

Handles an adaptation client request failure. Bypasses the error if possible, or build an error reply.

Definition at line 2165 of file client_side_request.cc.

References assert, Http::Message::body_pipe, calloutContext, calloutsError(), client_stream, BodyPipe::consumedSize(), dlink_node::data, debugs, doCallouts(), ERR_ICAP_FAILURE, HERE(), StoreEntry::isEmpty(), NULL, dlink_node::prev, request, storeEntry(), and dlink_list::tail.

Referenced by noteAdaptationAnswer(), and noteBodyProducerAborted().

◆ handleAdaptedHeader()

◆ handleStopRequest()

void AsyncJob::handleStopRequest ( )
inlineinherited

Definition at line 71 of file AsyncJob.h.

References AsyncJob::mustStop().

◆ httpStart()

◆ initiateAdaptation()

CbcPointer< Adaptation::Initiate > Adaptation::Initiator::initiateAdaptation ( Initiate x)
protectedinherited

Definition at line 23 of file Initiator.cc.

References Adaptation::Initiate::initiator(), and Ident::Start().

Referenced by startAdaptation(), and Client::startAdaptation().

◆ initiated()

bool Adaptation::Initiator::initiated ( const CbcPointer< AsyncJob > &  job) const
inlineprotectedinherited

Definition at line 52 of file Initiator.h.

References CbcPointer< Cbc >::set().

Referenced by startAdaptation(), and Client::startAdaptation().

◆ initRequest()

void ClientHttpRequest::initRequest ( HttpRequest aRequest)

Initializes the current request with the virgin request. Call this method when the virgin request becomes known. To update the current request later, use resetRequest().

Definition at line 1658 of file client_side_request.cc.

References al, NotePairs::appendNewOnly(), assert, assignRequest(), getConn(), HTTPMSGLOCK(), HttpRequest::notes(), and request.

Referenced by ConnStateData::buildFakeRequest(), Http::One::Server::buildHttpRequest(), Downloader::buildRequest(), clientBeginRequest(), and Ftp::Server::parseOneRequest().

◆ loggingEntry() [1/2]

StoreEntry* ClientHttpRequest::loggingEntry ( ) const
inline

◆ loggingEntry() [2/2]

void ClientHttpRequest::loggingEntry ( StoreEntry newEntry)

Definition at line 1646 of file client_side_request.cc.

References StoreEntry::lock(), loggingEntry_, and StoreEntry::unlock().

◆ loggingTags()

◆ logRequest()

◆ memObject()

MemObject* ClientHttpRequest::memObject ( ) const
inline

Definition at line 52 of file client_side_request.h.

References storeEntry().

Referenced by clientReplyContext::buildReplyHeader(), gotEnough(), and mRangeCLen().

◆ mRangeCLen()

int64_t ClientHttpRequest::mRangeCLen ( ) const

returns expected content length for multi-range replies note: assumes that httpHdrRangeCanonize has already been called warning: assumes that HTTP headers for individual ranges at the time of the actuall assembly will be exactly the same as the headers when clientMRangeCLen() is called

Definition at line 757 of file client_side.cc.

References assert, HttpHdrRange::begin(), HttpHdrRangeIter::boundary, MemBuf::clean(), clientPackRangeHdr(), clientPackTermBound(), debugs, HttpHdrRange::end(), MemBuf::init(), memObject(), HttpRequest::range, range_iter, request, MemBuf::reset(), MemBuf::size, and storeEntry().

Referenced by prepPartialResponseGeneration().

◆ multipartRangeRequest()

bool ClientHttpRequest::multipartRangeRequest ( ) const

Definition at line 713 of file client_side.cc.

References HttpRequest::multipartRangeRequest(), and request.

◆ mustStop()

◆ noteAdaptationAclCheckDone()

void ClientHttpRequest::noteAdaptationAclCheckDone ( Adaptation::ServiceGroupPointer  group)
privatevirtual

AccessCheck calls this back with a possibly nil service group to signal whether adaptation is needed and where it should start.

Reimplemented from Adaptation::Initiator.

Definition at line 823 of file client_side_request.cc.

References clientConnection, Server::clientConnection, debugs, doCallouts(), Comm::Connection::fd, fd_table, getConn(), HERE(), HttpRequest::icapHistory(), Comm::Connection::isOpen(), log_uri, NULL, req_sz, request, Comm::Connection::rfc931, sslGetUserEmail(), and startAdaptation().

◆ noteAdaptationAnswer()

void ClientHttpRequest::noteAdaptationAnswer ( const Adaptation::Answer answer)
privatevirtual

◆ noteBodyProducerAborted()

◆ noteBodyProductionEnded()

void ClientHttpRequest::noteBodyProductionEnded ( BodyPipe::Pointer  )
privatevirtual

◆ noteMoreBodyDataAvailable()

◆ onlyIfCached()

bool ClientHttpRequest::onlyIfCached ( ) const

◆ operator delete()

void ClientHttpRequest::operator delete ( void *  address)
inline

Definition at line 39 of file client_side_request.h.

◆ operator new()

void* ClientHttpRequest::operator new ( size_t  size)
inline

Definition at line 39 of file client_side_request.h.

◆ operator=()

ClientHttpRequest& ClientHttpRequest::operator= ( ClientHttpRequest const &  )

◆ prepPartialResponseGeneration()

int64_t ClientHttpRequest::prepPartialResponseGeneration ( )

Prepares to satisfy a Range request with a generated HTTP 206 response. Initializes range_iter state to allow raw range_iter access.

Returns
Content-Length value for the future response; never negative

Definition at line 1949 of file client_side_request.cc.

References assert, HttpHdrRange::begin(), HttpHdrRangeIter::boundary, HttpHdrRangeIter::debt_size, HttpHdrRange::end(), HttpHdrRangeIter::end, mRangeCLen(), ClientHttpRequest::Out::offset, out, HttpHdrRangeIter::pos, HttpRequest::range, range_iter, rangeBoundaryStr(), request, HttpHdrRange::specs, HttpHdrRangeIter::updateSpec(), and HttpHdrRangeIter::valid.

◆ processRequest()

◆ rangeBoundaryStr()

String ClientHttpRequest::rangeBoundaryStr ( ) const

generates a "unique" boundary string for multipart responses the caller is responsible for cleaning the string

Definition at line 797 of file client_side.cc.

References APP_FULLNAME, String::append(), StoreEntry::getMD5Text(), and storeEntry().

Referenced by prepPartialResponseGeneration().

◆ requestSatisfactionMode()

bool ClientHttpRequest::requestSatisfactionMode ( ) const
inline

Definition at line 217 of file client_side_request.h.

References request_satisfaction_mode.

Referenced by clientReplyContext::buildReplyHeader().

◆ resetRequest()

void ClientHttpRequest::resetRequest ( HttpRequest newRequest)

Resets the current request to the latest adapted or redirected request. Call this every time adaptation or redirection changes the request. To set the virgin request, use initRequest().

Definition at line 1675 of file client_side_request.cc.

References assert, assignRequest(), clearRequest(), HttpRequest::effectiveRequestUri(), request, SBufToCstring(), uri, and xfree.

Referenced by ClientRequestContext::clientRedirectDone(), and handleAdaptedHeader().

◆ resumeBodyStorage()

void ClientHttpRequest::resumeBodyStorage ( )
private

Definition at line 2068 of file client_side_request.cc.

References adaptedBodySource, and noteMoreBodyDataAvailable().

Referenced by noteMoreBodyDataAvailable().

◆ setErrorUri()

void ClientHttpRequest::setErrorUri ( const char *  errorUri)

sets log_uri and uri to an internally-generated "error:..." URI when neither the current request nor the parsed request URI are known

Definition at line 1932 of file client_side_request.cc.

References absorbLogUri(), al, assert, MAX_URL, uri, urlCanonicalCleanWithoutRequest(), xstrdup, and xstrndup().

Referenced by ConnStateData::abortRequestParsing(), and ConnStateData::checkLogging().

◆ setLogUriToRawUri()

void ClientHttpRequest::setLogUriToRawUri ( const char *  rawUri,
const HttpRequestMethod method 
)

sets log_uri to a parsed request URI when Squid fails to parse or validate other request components, yielding no current request

Definition at line 1909 of file client_side_request.cc.

References absorbLogUri(), al, assert, AnyP::Uri::cleanup(), urlCanonicalCleanWithoutRequest(), and xfree.

Referenced by Http::One::Server::buildHttpRequest().

◆ setLogUriToRequestUri()

void ClientHttpRequest::setLogUriToRequestUri ( )

◆ sslBumpEstablish()

◆ sslBumpNeed() [1/2]

Ssl::BumpMode ClientHttpRequest::sslBumpNeed ( ) const
inline

◆ sslBumpNeed() [2/2]

void ClientHttpRequest::sslBumpNeed ( Ssl::BumpMode  mode)

Definition at line 1547 of file client_side_request.cc.

References Ssl::bumpMode(), debugs, HERE(), and sslBumpNeed_.

◆ sslBumpNeeded()

bool ClientHttpRequest::sslBumpNeeded ( ) const
inline

◆ sslBumpStart()

◆ start()

◆ Start()

◆ startAdaptation()

◆ status()

◆ stopConsumingFrom()

◆ storeEntry() [1/2]

StoreEntry* ClientHttpRequest::storeEntry ( ) const
inline

Definition at line 60 of file client_side_request.h.

References entry_.

Referenced by clientReplyContext::blockedHit(), clientReplyContext::buildReplyHeader(), clientReplyContext::cacheHit(), clientReplyContext::checkTransferDone(), clientGetMoreData(), clientIfRangeMatch(), clientReplyContext::cloneReply(), clientReplyContext::createStoreEntry(), clientReplyContext::doGetMoreData(), Ftp::Server::doProcessRequest(), endRequestSatisfaction(), clientReplyContext::errorInStream(), clientReplyContext::forgetHit(), ESIContext::getCachedAST(), handleAdaptationFailure(), handleAdaptedHeader(), clientReplyContext::handleIMSReply(), Http::One::Server::handleReply(), ESIContext::hasCachedAST(), clientReplyContext::identifyFoundObject(), memObject(), mRangeCLen(), noteMoreBodyDataAvailable(), clientReplyContext::processConditional(), clientReplyContext::processExpired(), clientReplyContext::processMiss(), clientReplyContext::processReplyAccessResult(), clientReplyContext::purgeDoPurge(), rangeBoundaryStr(), clientReplyContext::removeClientStoreReference(), clientReplyContext::replyStatus(), clientReplyContext::restoreState(), clientReplyContext::saveState(), clientReplyContext::sendClientOldEntry(), clientReplyContext::sendClientUpstreamResponse(), clientReplyContext::sendMoreData(), clientReplyContext::sendNotModified(), Ftp::Server::setReply(), clientReplyContext::setReplyToError(), clientReplyContext::setReplyToReply(), clientReplyContext::setReplyToStoreEntry(), clientReplyContext::startError(), statClientRequests(), clientReplyContext::storeNotOKTransferDone(), clientReplyContext::storeOKTransferDone(), clientReplyContext::traceReply(), clientReplyContext::triggerInitialStoreRead(), and ESIContext::updateCachedAST().

◆ storeEntry() [2/2]

void ClientHttpRequest::storeEntry ( StoreEntry newEntry)

Definition at line 1640 of file client_side_request.cc.

References entry_.

◆ swanSong()

◆ toCbdata()

void* ClientHttpRequest::toCbdata ( )
inlinevirtualnoexcept

Implements CbdataParent.

Definition at line 39 of file client_side_request.h.

◆ updateCounters()

◆ updateError()

void ClientHttpRequest::updateError ( const Error error)

Definition at line 1617 of file client_side_request.cc.

References al, error(), HttpRequest::error, request, and Error::update().

Referenced by ConnStateData::checkLogging().

◆ updateLoggingTags()

Member Data Documentation

◆ active

dlink_node ClientHttpRequest::active

◆ adaptedBodySource

◆ al

const AccessLogEntry::Pointer ClientHttpRequest::al

Definition at line 128 of file client_side_request.h.

Referenced by ClientHttpRequest(), TunnelStateData::TunnelStateData(), ~ClientHttpRequest(), ConnStateData::buildFakeRequest(), clientReplyContext::buildReplyHeader(), calloutsError(), ClientRequestContext::clientAccessCheckDone(), clientAclChecklistFill(), clientBeginRequest(), clientFollowXForwardedForCheck(), clientProcessRequest(), ClientRequestContext::clientRedirectDone(), ClientRequestContext::clientRedirectStart(), ClientRequestContext::clientStoreIdDone(), clientReplyContext::cloneReply(), constructHelperQuery(), doCallouts(), ESIContext::fail(), handleAdaptedHeader(), clientReplyContext::handleIMSReply(), Ftp::Server::handleUploadRequest(), initRequest(), clientReplyContext::loggingTags(), loggingTags(), logRequest(), ConnStateData::parseTlsHandshake(), clientReplyContext::processExpired(), clientReplyContext::processMiss(), clientReplyContext::processOnlyIfCachedMiss(), Http::One::Server::processParsedRequest(), clientReplyContext::processReplyAccessResult(), clientReplyContext::purgeDoPurge(), clientReplyContext::purgeRequest(), clientReplyContext::sendBodyTooLargeError(), clientReplyContext::sendPreconditionFailedError(), ConnStateData::serveDelayedError(), setErrorUri(), setLogUriToRawUri(), clientReplyContext::setReplyToError(), clientReplyContext::setReplyToReply(), ClientRequestContext::sslBumpAccessCheck(), ClientRequestContext::sslBumpAccessCheckDone(), sslBumpStart(), startAdaptation(), ConnStateData::startPeekAndSplice(), statClientRequests(), tunnelStart(), updateCounters(), updateError(), updateLoggingTags(), and Http::One::Server::writeControlMsgAndCall().

◆ calloutContext

◆ CBDATA_ClientHttpRequest

cbdata_type ClientHttpRequest::CBDATA_ClientHttpRequest = CBDATA_UNKNOWN
staticprivate

Definition at line 39 of file client_side_request.h.

◆ client_stream

◆ clientConnection

Comm::ConnectionPointer ClientHttpRequest::clientConnection

Details of the client socket which produced us. Treat as read-only for the lifetime of this HTTP request.

Definition at line 88 of file client_side_request.h.

Referenced by ClientHttpRequest(), ~ClientHttpRequest(), callException(), doCallouts(), logRequest(), noteAdaptationAclCheckDone(), and sslBumpStart().

◆ conn_

ConnStateData* ClientHttpRequest::conn_
private

Definition at line 196 of file client_side_request.h.

Referenced by ~ClientHttpRequest(), and getConn().

◆ entry_

StoreEntry* ClientHttpRequest::entry_
private

Definition at line 194 of file client_side_request.h.

Referenced by storeEntry().

◆ flags

◆ id

const InstanceId<AsyncJob> AsyncJob::id
inherited

Definition at line 73 of file AsyncJob.h.

◆ inCall

AsyncCall::Pointer AsyncJob::inCall
protectedinherited

◆ log_uri

char* const ClientHttpRequest::log_uri

◆ loggingEntry_

StoreEntry* ClientHttpRequest::loggingEntry_
private

Definition at line 195 of file client_side_request.h.

Referenced by loggingEntry().

◆ maxReplyBodySize_

int64_t ClientHttpRequest::maxReplyBodySize_
private

Definition at line 193 of file client_side_request.h.

◆ out

◆ range_iter

HttpHdrRangeIter ClientHttpRequest::range_iter

Definition at line 125 of file client_side_request.h.

Referenced by freeResources(), mRangeCLen(), and prepPartialResponseGeneration().

◆ receivedWholeAdaptedReply

bool ClientHttpRequest::receivedWholeAdaptedReply
private

Definition at line 244 of file client_side_request.h.

Referenced by endRequestSatisfaction(), and noteBodyProductionEnded().

◆ redirect

◆ req_sz

◆ request

HttpRequest* const ClientHttpRequest::request

Request currently being handled by ClientHttpRequest. Usually remains nil until the virgin request header is parsed or faked. Starts as a virgin request; see initRequest(). Adaptation and redirections replace it; see resetRequest().

Definition at line 94 of file client_side_request.h.

Referenced by Ssl::ServerBump::ServerBump(), TunnelStateData::TunnelStateData(), ~ClientHttpRequest(), ConnStateData::abortChunkedRequestBody(), assignRequest(), clientReplyContext::buildReplyHeader(), clientReplyContext::cacheHit(), calloutsError(), ClientRequestContext::checkNoCacheDone(), clientReplyContext::checkTransferDone(), clearRequest(), ClientRequestContext::clientAccessCheck(), ClientRequestContext::clientAccessCheckDone(), clientAclChecklistFill(), clientCheckPinning(), clientFollowXForwardedForCheck(), clientGetMoreData(), clientHierarchical(), clientIfRangeMatch(), clientInterpretRequestHeaders(), clientProcessRequest(), ClientRequestContext::clientRedirectDone(), ClientRequestContext::clientRedirectStart(), clientSetKeepaliveFlag(), ClientRequestContext::clientStoreIdDone(), constructHelperQuery(), clientReplyContext::createStoreEntry(), DelayId::DelayClient(), doCallouts(), clientReplyContext::doGetMoreData(), Ftp::Server::doProcessRequest(), esiBufferRecipient(), ESIContextNew(), ESIContext::fail(), ConnStateData::fakeAConnectRequest(), gotEnough(), handleAdaptationBlock(), handleAdaptationFailure(), handleAdaptedHeader(), clientReplyContext::handleIMSReply(), Http::One::Server::handleReply(), Ftp::Server::handleUploadRequest(), ClientRequestContext::hostHeaderIpVerify(), ClientRequestContext::hostHeaderVerify(), ClientRequestContext::hostHeaderVerifyFailed(), clientReplyContext::identifyFoundObject(), clientReplyContext::identifyStoreObject(), ConnStateData::initiateTunneledRequest(), initRequest(), logRequest(), mRangeCLen(), multipartRangeRequest(), noteAdaptationAclCheckDone(), noteBodyProducerAborted(), Ftp::Server::notePeerConnection(), onlyIfCached(), prepPartialResponseGeneration(), clientReplyContext::processConditional(), clientReplyContext::processExpired(), clientReplyContext::processMiss(), clientReplyContext::processOnlyIfCachedMiss(), Http::One::Server::processParsedRequest(), clientReplyContext::processReplyAccess(), clientReplyContext::processReplyAccessResult(), processRequest(), clientReplyContext::purgeAllCached(), clientReplyContext::purgeDoPurge(), clientReplyContext::purgeEntry(), clientReplyContext::purgeRequest(), clientReplyContext::replyStatus(), resetRequest(), clientReplyContext::restoreState(), clientReplyContext::saveState(), clientReplyContext::sendBodyTooLargeError(), clientReplyContext::sendMoreData(), clientReplyContext::sendNotModified(), clientReplyContext::sendNotModifiedOrPreconditionFailedError(), clientReplyContext::sendPreconditionFailedError(), clientReplyContext::sendStreamError(), ConnStateData::serveDelayedError(), Ftp::Server::setDataCommand(), setLogUriToRequestUri(), Ftp::Server::setReply(), clientReplyContext::setReplyToError(), clientReplyContext::setReplyToReply(), clientReplyContext::setReplyToStoreEntry(), ConnStateData::splice(), ClientRequestContext::sslBumpAccessCheck(), sslBumpEstablish(), sslBumpStart(), startAdaptation(), clientReplyContext::startError(), statClientRequests(), clientReplyContext::storeNotOKTransferDone(), ConnStateData::switchToHttps(), clientReplyContext::traceReply(), tunnelStart(), updateCounters(), updateError(), and Http::One::Server::writeControlMsgAndCall().

◆ request_satisfaction_mode

bool ClientHttpRequest::request_satisfaction_mode
private

◆ request_satisfaction_offset

int64_t ClientHttpRequest::request_satisfaction_offset
private

Definition at line 247 of file client_side_request.h.

Referenced by handleAdaptedHeader(), and noteMoreBodyDataAvailable().

◆ sslBumpNeed_

Ssl::BumpMode ClientHttpRequest::sslBumpNeed_
private

Definition at line 200 of file client_side_request.h.

Referenced by sslBumpEstablish(), sslBumpNeed(), sslBumpNeeded(), and sslBumpStart().

◆ started_

bool AsyncJob::started_ = false
protectedinherited

Definition at line 83 of file AsyncJob.h.

Referenced by AsyncJob::~AsyncJob(), AsyncJob::callEnd(), and AsyncJob::Start().

◆ stopReason

const char* AsyncJob::stopReason
protectedinherited

◆ store_id

String ClientHttpRequest::store_id

◆ swanSang_

bool AsyncJob::swanSang_ = false
protectedinherited

Definition at line 84 of file AsyncJob.h.

Referenced by AsyncJob::~AsyncJob(), and AsyncJob::callEnd().

◆ typeName

◆ uri

◆ virginHeadSource


The documentation for this class was generated from the following files:

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors