#include <client_side_request.h>
Classes | |
struct | Flags |
struct | Out |
struct | Redirect |
Public Types | |
typedef CbcPointer< AsyncJob > | Pointer |
typedef CbcPointer< BodyConsumer > | Pointer |
Public Member Functions | |
ClientHttpRequest (ConnStateData *) | |
ClientHttpRequest (ClientHttpRequest &&)=delete | |
~ClientHttpRequest () override | |
String | rangeBoundaryStr () const |
void | freeResources () |
void | updateCounters () |
void | logRequest () |
MemObject * | memObject () const |
bool | multipartRangeRequest () const |
void | processRequest () |
void | httpStart () |
bool | onlyIfCached () const |
bool | gotEnough () const |
StoreEntry * | storeEntry () const |
void | storeEntry (StoreEntry *) |
StoreEntry * | loggingEntry () const |
void | loggingEntry (StoreEntry *) |
ConnStateData * | getConn () const |
void | initRequest (HttpRequest *) |
void | resetRequest (HttpRequest *) |
void | resetRequestXXX (HttpRequest *, bool uriChanged) |
void | checkForInternalAccess () |
Checks whether the current request is internal and adjusts it accordingly. More... | |
void | updateLoggingTags (const LogTags_ot code) |
update the code in the transaction processing tags More... | |
const LogTags & | loggingTags () 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 *, const HttpRequestMethod &) |
void | setErrorUri (const char *) |
int64_t | prepPartialResponseGeneration () |
void | calloutsError (const err_type, const ErrorDetail::Pointer &) |
Build an error reply. For use with the callouts. More... | |
void | updateError (const Error &) |
if necessary, stores new error information (if any) 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) |
set the sslBumpNeeded state More... | |
void | sslBumpStart () |
void | sslBumpEstablish (Comm::Flag) |
void | startAdaptation (const Adaptation::ServiceGroupPointer &) |
Initiate an asynchronous adaptation transaction which will call us back. More... | |
bool | requestSatisfactionMode () const |
bool | doneAll () const override |
whether positive goal has been reached More... | |
void | callException (const std::exception &) override |
called when the job throws during an async call More... | |
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... | |
virtual void * | toCbdata ()=0 |
Static Public Member Functions | |
static void | Start (const Pointer &job) |
static void | RegisterWithCacheManager () |
Public Attributes | |
HttpRequest *const | request = nullptr |
char * | uri = nullptr |
char *const | log_uri = nullptr |
String | store_id |
struct ClientHttpRequest::Out | out |
HttpHdrRangeIter | range_iter |
size_t | req_sz = 0 |
raw request size on input, not current request size More... | |
const AccessLogEntry::Pointer | al |
access.log entry More... | |
struct ClientHttpRequest::Flags | flags |
struct ClientHttpRequest::Redirect | redirect |
dlink_node | active |
dlink_list | client_stream |
ClientRequestContext * | calloutContext = nullptr |
const InstanceId< AsyncJob > | id |
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 > &) |
Static Protected Member Functions | |
static void | ReportAllJobs (StoreEntry *) |
writes a cache manager report about all jobs existing in this worker More... | |
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 Attributes | |
int64_t | maxReplyBodySize_ = 0 |
StoreEntry * | entry_ = nullptr |
StoreEntry * | loggingEntry_ = nullptr |
ConnStateData * | conn_ = nullptr |
Ssl::BumpMode | sslBumpNeed_ = Ssl::bumpEnd |
whether (and how) the request needs to be bumped More... | |
CbcPointer< Adaptation::Initiate > | virginHeadSource |
BodyPipe::Pointer | adaptedBodySource |
bool | receivedWholeAdaptedReply = false |
noteBodyProductionEnded() was called More... | |
bool | request_satisfaction_mode = false |
int64_t | request_satisfaction_offset = 0 |
Detailed Description
Definition at line 33 of file client_side_request.h.
Member Typedef Documentation
◆ Pointer [1/2]
|
inherited |
Definition at line 34 of file AsyncJob.h.
◆ Pointer [2/2]
|
inherited |
Definition at line 45 of file BodyPipe.h.
Constructor & Destructor Documentation
◆ ClientHttpRequest() [1/2]
ClientHttpRequest::ClientHttpRequest | ( | ConnStateData * | aConn | ) |
Definition at line 123 of file client_side_request.cc.
References active, al, ConnStateData::bareError, AccessLogEntry::cache, AccessLogEntry::CacheDetails::caddr, ClientActiveRequests, Server::clientConnection, current_time, dlinkAdd(), Comm::Connection::fd, fd_table, Comm::Connection::isOpen(), ConnStateData::log_addr, AccessLogEntry::CacheDetails::port, ConnStateData::port, AccessLogEntry::proxyProtocolHeader, ConnStateData::proxyProtocolHeader(), CodeContext::Reset(), Security::LockingPointer< T, UnLocker, Locker >::resetWithoutLocking(), AccessLogEntry::CacheDetails::sslClientCert, AccessLogEntry::CacheDetails::start_time, AccessLogEntry::tcpClient, and AccessLogEntry::updateError().
◆ ClientHttpRequest() [2/2]
|
delete |
◆ ~ClientHttpRequest()
|
override |
Definition at line 230 of file client_side_request.cc.
References active, adaptedBodySource, al, Adaptation::Initiator::announceInitiatorAbort(), calloutContext, Error::category, cbdataReferenceDone, checkFailureRatio(), ClientActiveRequests, HierarchyLogEntry::code, conn_, debugs, dlinkDelete(), HttpRequest::error, freeResources(), AccessLogEntry::hier, loggingEntry(), logRequest(), request, BodyConsumer::stopConsumingFrom(), uri, and virginHeadSource.
Member Function Documentation
◆ absorbLogUri()
|
private |
Definition at line 1908 of file client_side_request.cc.
References log_uri, and xfree.
Referenced by clearRequest(), setErrorUri(), setLogUriToRawUri(), and setLogUriToRequestUri().
◆ announceInitiatorAbort()
|
protectedinherited |
Definition at line 38 of file Initiator.cc.
References CallJobHere.
Referenced by ~ClientHttpRequest(), and Client::cleanAdaptation().
◆ assignRequest()
|
private |
initializes the current unassigned request to the virgin request sets the current request, asserting that it was unset
Definition at line 1672 of file client_side_request.cc.
References assert, HTTPMSGLOCK(), request, and setLogUriToRequestUri().
Referenced by initRequest(), and resetRequestXXX().
◆ callEnd()
|
virtualinherited |
called right after the called job method
Reimplemented in Adaptation::Icap::Xaction.
Definition at line 152 of file AsyncJob.cc.
References assert, AsyncCall::debugLevel, debugs, AsyncCall::debugSection, AsyncJob::done(), AsyncJob::inCall, AsyncJob::started_, AsyncJob::status(), AsyncJob::swanSang_, AsyncJob::swanSong(), and AsyncJob::typeName.
Referenced by Adaptation::Icap::Xaction::callEnd(), and AsyncJob::deleteThis().
◆ callException()
|
overridevirtual |
Reimplemented from AsyncJob.
Definition at line 2178 of file client_side_request.cc.
References DBG_IMPORTANT, debugs, getConn(), and Comm::IsConnOpen().
◆ calloutsError()
void ClientHttpRequest::calloutsError | ( | const err_type | error, |
const ErrorDetail::Pointer & | errDetail | ||
) |
Definition at line 2196 of file client_side_request.cc.
References al, ErrorState::auth_user_request, HttpRequest::auth_user_request, calloutContext, clientBuildError(), ErrorState::detailError(), error(), ClientRequestContext::error, ConnStateData::expectNoForwarding(), ConnStateData::getAuth(), getConn(), ClientRequestContext::readNextRequest, request, and Http::scInternalServerError.
Referenced by ClientRequestContext::clientRedirectDone(), and handleAdaptationFailure().
◆ callStart()
|
inherited |
called just before the called method
Definition at line 130 of file AsyncJob.cc.
References cbdataReferenceValid(), AsyncCall::debugLevel, debugs, AsyncCall::debugSection, AsyncJob::inCall, Must, AsyncJob::status(), CbdataParent::toCbdata(), and AsyncJob::typeName.
◆ canBeCalled()
|
inherited |
Definition at line 117 of file AsyncJob.cc.
References AsyncCall::cancel(), debugs, and AsyncJob::inCall.
◆ CBDATA_CHILD()
|
private |
◆ checkForInternalAccess()
void ClientHttpRequest::checkForInternalAccess | ( | ) |
Definition at line 1648 of file client_side_request.cc.
References AnyP::Uri::authority(), Config, debugs, RequestFlags::disableCacheUse(), HttpRequest::flags, ForSomeCacheManager(), getMyPort(), AnyP::Uri::getScheme(), SquidConfig::global_internal_static, AnyP::Uri::host(), RequestFlags::internal, internalCheck(), internalHostname(), internalHostnameIs(), internalStaticCheck(), SquidConfig::onoff, AnyP::Uri::path(), AnyP::Uri::port(), AnyP::PROTO_HTTP, request, setLogUriToRequestUri(), AnyP::Uri::setScheme(), and HttpRequest::url.
Referenced by clientProcessRequest(), and resetRequestXXX().
◆ clearAdaptation()
|
protectedinherited |
Definition at line 32 of file Initiator.cc.
References CbcPointer< Cbc >::clear().
Referenced by handleAdaptedHeader(), noteAdaptationAnswer(), and Client::noteAdaptationAnswer().
◆ clearRequest()
|
private |
Definition at line 1682 of file client_side_request.cc.
References absorbLogUri(), HTTPMSGUNLOCK(), and request.
Referenced by freeResources(), and resetRequestXXX().
◆ deleteThis()
|
protectedinherited |
Definition at line 65 of file AsyncJob.cc.
References asyncCall(), AsyncJob::callEnd(), debugs, AsyncJob::deleteThis(), AsyncJob::inCall, JobMemFun(), Must, AsyncJob::stopReason, and AsyncJob::typeName.
Referenced by ConnStateData::connStateClosed(), and AsyncJob::deleteThis().
◆ doCallouts()
void ClientHttpRequest::doCallouts | ( | ) |
Definition at line 1723 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(), clientInterpretRequestHeaders(), ClientRequestContext::clientRedirectStart(), ClientRequestContext::clientStoreIdStart(), clientStreamRead(), Config, dlink_node::data, debugs, Ip::Qos::dirAccepted, ClientRequestContext::error, errorAppendEntry(), ConnStateData::flags, HttpRequest::flags, getConn(), 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, 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(), noteAdaptationAclCheckDone(), and ClientRequestContext::sslBumpAccessCheckDone().
◆ done()
|
protectedinherited |
Definition at line 106 of file AsyncJob.cc.
References AsyncJob::doneAll(), and AsyncJob::stopReason.
Referenced by AsyncJob::callEnd(), HappyConnOpener::checkForNewConnection(), Downloader::downloadFinished(), and HappyConnOpener::maybeOpenPrimeConnection().
◆ doneAll()
|
inlineoverridevirtual |
Reimplemented from AsyncJob.
Definition at line 217 of file client_side_request.h.
References AsyncJob::doneAll().
◆ endRequestSatisfaction()
|
private |
Definition at line 2113 of file client_side_request.cc.
References adaptedBodySource, assert, StoreEntry::completeSuccessfully(), StoreEntry::completeTruncated(), debugs, receivedWholeAdaptedReply, request_satisfaction_mode, BodyConsumer::stopConsumingFrom(), and storeEntry().
Referenced by noteBodyProductionEnded(), and noteMoreBodyDataAvailable().
◆ finalizedInCbdataChild()
|
privatepure virtualinherited |
◆ freeResources()
void ClientHttpRequest::freeResources | ( | ) |
Definition at line 487 of file client_side.cc.
References HttpHdrRangeIter::boundary, String::clean(), clearRequest(), client_stream, clientStreamAbort(), dlink_node::data, ClientHttpRequest::Redirect::location, range_iter, redirect, safe_free, dlink_list::tail, and uri.
Referenced by ~ClientHttpRequest().
◆ getConn()
|
inline |
Definition at line 71 of file client_side_request.h.
References cbdataReferenceValid(), and conn_.
Referenced by TunnelStateData::TunnelStateData(), clientReplyContext::buildReplyHeader(), callException(), calloutsError(), ClientRequestContext::clientAccessCheckDone(), clientAclChecklistFill(), clientCheckPinning(), TunnelStateData::clientExpectsConnectResponse(), clientFollowXForwardedForCheck(), ClientRequestContext::clientRedirectDone(), clientSocketRecipient(), ClientRequestContext::clientStoreIdDone(), constructHelperQuery(), clientReplyContext::createStoreEntry(), doCallouts(), clientReplyContext::doGetMoreData(), esiBufferRecipient(), ESIContext::fail(), ClientRequestContext::hostHeaderIpVerify(), ClientRequestContext::hostHeaderVerify(), ClientRequestContext::hostHeaderVerifyFailed(), initRequest(), logRequest(), noteAdaptationAclCheckDone(), noteBodyProducerAborted(), clientReplyContext::processExpired(), clientReplyContext::processMiss(), clientReplyContext::processOnlyIfCachedMiss(), clientReplyContext::processReplyAccessResult(), processRequest(), clientReplyContext::purgeDoPurge(), clientReplyContext::purgeRequest(), clientReplyContext::sendBodyTooLargeError(), clientReplyContext::sendMoreData(), clientReplyContext::sendPreconditionFailedError(), ClientRequestContext::sslBumpAccessCheck(), ClientRequestContext::sslBumpAccessCheckDone(), sslBumpEstablish(), sslBumpStart(), statClientRequests(), tunnelStart(), and tunnelStartShoveling().
◆ gotEnough()
bool ClientHttpRequest::gotEnough | ( | ) | const |
Definition at line 1577 of file client_side_request.cc.
References assert, MemObject::baseReply(), HttpReply::bodySize(), memObject(), HttpRequest::method, ClientHttpRequest::Out::offset, out, and request.
Referenced by clientReplyContext::replyStatus().
◆ handleAdaptationBlock()
|
private |
Definition at line 2037 of file client_side_request.cc.
References ACCESS_DENIED, AclMatchedName, assert, calloutContext, ClientRequestContext::clientAccessCheckDone(), HttpRequest::detailError(), ERR_ACCESS_DENIED, MakeNamedErrorDetail(), request, Adaptation::Answer::ruleId, and String::termedBuf().
Referenced by noteAdaptationAnswer().
◆ handleAdaptationFailure()
|
private |
Handles an adaptation client request failure. Bypasses the error if possible, or build an error reply.
Definition at line 2150 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, StoreEntry::isEmpty(), dlink_node::prev, request, storeEntry(), and dlink_list::tail.
Referenced by noteAdaptationAnswer(), and noteBodyProducerAborted().
◆ handleAdaptedHeader()
|
private |
Definition at line 1995 of file client_side_request.cc.
References adaptedBodySource, al, assert, Adaptation::Initiator::clearAdaptation(), client_stream, clientGetMoreData, StoreEntry::complete(), dlink_node::data, debugs, doCallouts(), HttpRequest::flags, HttpRequestMethod::id(), HttpRequest::method, dlink_node::prev, StoreEntry::replaceHttpReply(), AccessLogEntry::reply, request, request_satisfaction_mode, request_satisfaction_offset, resetRequest(), BodyPipe::setConsumerIfNotLate(), storeEntry(), dlink_list::tail, StoreEntry::timestampsSet(), and virginHeadSource.
Referenced by noteAdaptationAnswer().
◆ handleStopRequest()
|
inlineinherited |
Definition at line 73 of file AsyncJob.h.
References AsyncJob::mustStop().
◆ httpStart()
void ClientHttpRequest::httpStart | ( | ) |
Definition at line 1482 of file client_side_request.cc.
References assert, client_stream, clientStreamRead(), dlink_node::data, debugs, LOG_TAG_NONE, loggingTags(), ClientHttpRequest::Out::offset, out, dlink_list::tail, updateLoggingTags(), and uri.
Referenced by processRequest().
◆ initiateAdaptation()
|
protectedinherited |
Definition at line 23 of file Initiator.cc.
References Adaptation::Initiate::initiator(), and Ident::Start().
Referenced by startAdaptation(), and Client::startAdaptation().
◆ initiated()
|
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 1609 of file client_side_request.cc.
References al, NotePairs::appendNewOnly(), assert, assignRequest(), getConn(), HTTPMSGLOCK(), HttpRequest::notes(), AccessLogEntry::request, request, and AccessLogEntry::syncNotes().
Referenced by ConnStateData::buildFakeRequest(), Http::One::Server::buildHttpRequest(), Downloader::buildRequest(), clientBeginRequest(), and Ftp::Server::parseOneRequest().
◆ loggingEntry() [1/2]
|
inline |
Definition at line 68 of file client_side_request.h.
References loggingEntry_.
Referenced by ~ClientHttpRequest(), logRequest(), and clientReplyContext::processReplyAccessResult().
◆ loggingEntry() [2/2]
void ClientHttpRequest::loggingEntry | ( | StoreEntry * | newEntry | ) |
Definition at line 1597 of file client_side_request.cc.
References StoreEntry::lock(), loggingEntry_, and StoreEntry::unlock().
◆ loggingTags()
|
inline |
Definition at line 97 of file client_side_request.h.
References al, AccessLogEntry::cache, and AccessLogEntry::CacheDetails::code.
Referenced by clientReplyContext::buildReplyHeader(), clientReplyContext::cacheHit(), doCallouts(), clientReplyContext::doGetMoreData(), httpStart(), logRequest(), clientReplyContext::processMiss(), clientReplyContext::processReplyAccess(), clientReplyContext::sendMoreData(), statClientRequests(), and updateCounters().
◆ logRequest()
void ClientHttpRequest::logRequest | ( | ) |
Definition at line 387 of file client_side.cc.
References SquidConfig::accessList, accessLogLog(), AccessLogEntry::adapted_request, NotePairs::add(), ACLFilledChecklist::al, al, Acl::Answer::allowed(), Http::Message::body_pipe, AccessLogEntry::cache, clientdbUpdate(), AccessLogEntry::HttpDetails::clientReplySz, AccessLogEntry::HttpDetails::clientRequestSz, AccessLogEntry::HttpDetails::code, Config, AccessLogEntry::HttpDetails::content_type, StoreEntry::contentLen(), current_time, debugs, ACLChecklist::fastCheck(), fd_table, getConn(), RefCount< C >::getRaw(), MessageSizes::header, ClientHttpRequest::Out::headers_sz, AccessLogEntry::CacheDetails::highOffset, AccessLogEntry::http, HTTPMSGLOCK(), HTTPMSGUNLOCK(), AccessLogEntry::icp, ICP_INVALID, LOG_TAG_NONE, log_uri, loggingEntry(), loggingTags(), HttpRequest::notes(), SquidConfig::notes, NULL, AccessLogEntry::CacheDetails::objectSize, ClientHttpRequest::Out::offset, AccessLogEntry::IcpDetails::opcode, out, MessageSizes::payloadData, prepareLogWithRequestDetails(), BodyPipe::producedSize(), AnyP::PROTO_HTTP, AccessLogEntry::reply, ACLFilledChecklist::reply, req_sz, AccessLogEntry::request, request, ClientHttpRequest::Out::size, sslGetUserEmail(), AccessLogEntry::CacheDetails::ssluser, AccessLogEntry::CacheDetails::start_time, SquidConfig::stats_collection, AccessLogEntry::syncNotes(), AccessLogEntry::CacheDetails::trTime, tvSub(), updateCounters(), and AccessLogEntry::url.
Referenced by ~ClientHttpRequest().
◆ memObject()
|
inline |
Definition at line 58 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 764 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 720 of file client_side.cc.
References HttpRequest::multipartRangeRequest(), and request.
◆ mustStop()
|
protectedinherited |
Definition at line 85 of file AsyncJob.cc.
References debugs, AsyncJob::inCall, Must, AsyncJob::stopReason, and AsyncJob::typeName.
Referenced by HttpStateData::abortAll(), AsyncJob::callException(), HttpStateData::continueAfterParsingHeader(), HttpStateData::drop1xx(), HttpStateData::handleMoreRequestBodyAvailable(), AsyncJob::handleStopRequest(), HttpStateData::httpStateConnClosed(), HttpStateData::httpTimeout(), HttpStateData::proceedAfter1xx(), ConnStateData::proxyProtocolError(), HttpStateData::readReply(), HttpStateData::start(), and HttpStateData::wroteLast().
◆ noteAdaptationAclCheckDone()
|
overrideprivatevirtual |
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 785 of file client_side_request.cc.
References Server::clientConnection, debugs, doCallouts(), fd_table, getConn(), HttpRequest::icapHistory(), ConnStateData::isOpen(), log_uri, req_sz, request, Comm::Connection::rfc931, sslGetUserEmail(), and startAdaptation().
◆ noteAdaptationAnswer()
|
overrideprivatevirtual |
called with the initial adaptation decision (adapt, block, error); virgin and/or adapted body transmission may continue after this
Implements Adaptation::Initiator.
Definition at line 1971 of file client_side_request.cc.
References adaptedBodySource, Adaptation::Answer::akBlock, Adaptation::Answer::akError, Adaptation::Answer::akForward, assert, cbdataReferenceValid(), Adaptation::Initiator::clearAdaptation(), Adaptation::Answer::final, RefCount< C >::getRaw(), handleAdaptationBlock(), handleAdaptationFailure(), handleAdaptedHeader(), Adaptation::Answer::kind, MakeNamedErrorDetail(), Adaptation::Answer::message, and virginHeadSource.
◆ noteBodyProducerAborted()
|
overrideprivatevirtual |
Implements BodyConsumer.
Definition at line 2131 of file client_side_request.cc.
References adaptedBodySource, assert, Server::clientConnection, Comm::Connection::close(), debugs, HttpRequest::detailError(), ERR_ICAP_FAILURE, getConn(), handleAdaptationFailure(), Comm::IsConnOpen(), MakeNamedErrorDetail(), Must, request, request_satisfaction_mode, BodyConsumer::stopConsumingFrom(), and virginHeadSource.
◆ noteBodyProductionEnded()
|
overrideprivatevirtual |
Implements BodyConsumer.
Definition at line 2099 of file client_side_request.cc.
References adaptedBodySource, assert, endRequestSatisfaction(), BodyPipe::exhausted(), receivedWholeAdaptedReply, and virginHeadSource.
◆ noteMoreBodyDataAvailable()
|
overrideprivatevirtual |
Implements BodyConsumer.
Definition at line 2057 of file client_side_request.cc.
References adaptedBodySource, assert, asyncCall(), BodyPipeCheckout::buf, BodyPipe::buf(), StoreEntry::bytesWanted(), BodyPipeCheckout::checkIn(), MemBuf::consume(), MemBuf::contentSize(), DBG_IMPORTANT, debugs, StoreEntry::deferProducer(), endRequestSatisfaction(), BodyPipe::exhausted(), StoreIOBuffer::length, receivedWholeAdaptedReply, request_satisfaction_mode, request_satisfaction_offset, resumeBodyStorage(), storeEntry(), and StoreEntry::write().
Referenced by resumeBodyStorage().
◆ onlyIfCached()
bool ClientHttpRequest::onlyIfCached | ( | ) | const |
Definition at line 154 of file client_side_request.cc.
References assert, Http::Message::cache_control, HttpHdrCc::hasOnlyIfCached(), and request.
Referenced by clientReplyContext::processExpired(), and clientReplyContext::processMiss().
◆ 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 1932 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()
void ClientHttpRequest::processRequest | ( | ) |
Definition at line 1458 of file client_side_request.cc.
References assert, debugs, HttpRequest::flags, RequestFlags::forceTunnel, getConn(), httpStart(), HttpRequest::method, Http::METHOD_CONNECT, redirect, request, sslBumpNeeded(), sslBumpStart(), ClientHttpRequest::Redirect::status, Server::stopReading(), tunnelStart(), and uri.
Referenced by doCallouts().
◆ rangeBoundaryStr()
String ClientHttpRequest::rangeBoundaryStr | ( | ) | const |
generates a "unique" boundary string for multipart responses the caller is responsible for cleaning the string
Definition at line 804 of file client_side.cc.
References String::append(), StoreEntry::getMD5Text(), storeEntry(), and visible_appname_string.
Referenced by prepPartialResponseGeneration().
◆ RegisterWithCacheManager()
|
staticinherited |
Definition at line 215 of file AsyncJob.cc.
References Mgr::RegisterAction(), and AsyncJob::ReportAllJobs().
Referenced by mainInitialize().
◆ ReportAllJobs()
|
staticprotectedinherited |
Definition at line 198 of file AsyncJob.cc.
References AllJobs().
Referenced by AsyncJob::RegisterWithCacheManager().
◆ requestSatisfactionMode()
|
inline |
Definition at line 214 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 1626 of file client_side_request.cc.
References HttpRequest::effectiveRequestUri(), request, and resetRequestXXX().
Referenced by handleAdaptedHeader().
◆ resetRequestXXX()
void ClientHttpRequest::resetRequestXXX | ( | HttpRequest * | newRequest, |
bool | uriChanged | ||
) |
resetRequest() variation for callers with custom URI change detection logic
- Parameters
-
uriChanged whether the new request URI differs from the current request URI
Definition at line 1633 of file client_side_request.cc.
References assert, assignRequest(), checkForInternalAccess(), clearRequest(), HttpRequest::effectiveRequestUri(), HttpRequest::flags, RequestFlags::redirected, request, SBufToCstring(), uri, and xfree.
Referenced by ClientRequestContext::clientRedirectDone(), and resetRequest().
◆ resumeBodyStorage()
|
private |
Definition at line 2048 of file client_side_request.cc.
References adaptedBodySource, and noteMoreBodyDataAvailable().
Referenced by noteMoreBodyDataAvailable().
◆ setErrorUri()
void ClientHttpRequest::setErrorUri | ( | const char * | aUri | ) |
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 1915 of file client_side_request.cc.
References absorbLogUri(), al, assert, MAX_URL, AccessLogEntry::setVirginUrlForMissingRequest(), 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 1892 of file client_side_request.cc.
References absorbLogUri(), al, assert, AnyP::Uri::cleanup(), AccessLogEntry::setVirginUrlForMissingRequest(), urlCanonicalCleanWithoutRequest(), and xfree.
Referenced by Http::One::Server::buildHttpRequest().
◆ setLogUriToRequestUri()
void ClientHttpRequest::setLogUriToRequestUri | ( | ) |
Definition at line 1884 of file client_side_request.cc.
References absorbLogUri(), assert, HttpRequest::canonicalCleanUrl(), MAX_URL, request, and xstrndup().
Referenced by assignRequest(), and checkForInternalAccess().
◆ sslBumpEstablish()
void ClientHttpRequest::sslBumpEstablish | ( | Comm::Flag | errflag | ) |
Definition at line 1516 of file client_side_request.cc.
References assert, HttpRequest::auth_user_request, Server::clientConnection, Comm::Connection::close(), debugs, Comm::ERR_CLOSING, getConn(), request, ConnStateData::setAuth(), sslBumpNeed_, sslBumpNeeded(), and ConnStateData::switchToHttps().
Referenced by SslBumpEstablish().
◆ sslBumpNeed() [1/2]
|
inline |
Definition at line 198 of file client_side_request.h.
References sslBumpNeed_.
Referenced by doCallouts(), ClientRequestContext::sslBumpAccessCheck(), and ClientRequestContext::sslBumpAccessCheckDone().
◆ sslBumpNeed() [2/2]
void ClientHttpRequest::sslBumpNeed | ( | Ssl::BumpMode | mode | ) |
Definition at line 1498 of file client_side_request.cc.
References Ssl::bumpMode(), debugs, and sslBumpNeed_.
◆ sslBumpNeeded()
|
inline |
Definition at line 200 of file client_side_request.h.
References Ssl::bumpBump, Ssl::bumpClientFirst, Ssl::bumpPeek, Ssl::bumpServerFirst, Ssl::bumpStare, and sslBumpNeed_.
Referenced by doCallouts(), processRequest(), and sslBumpEstablish().
◆ sslBumpStart()
void ClientHttpRequest::sslBumpStart | ( | ) |
Definition at line 1539 of file client_side_request.cc.
References al, Ssl::bumpMode(), Server::clientConnection, commCbCall(), CommCommonCbParams::conn, debugs, CommCommonCbParams::flag, HttpRequest::flags, getConn(), RequestFlags::intercepted, RequestFlags::interceptTproxy, HttpReply::MakeConnectionEstablished(), Comm::OK, HttpReply::pack(), AccessLogEntry::reply, request, ScheduleCallHere, SslBumpEstablish(), ConnStateData::sslBumpMode, sslBumpNeed_, and Comm::Write().
Referenced by processRequest().
◆ start()
|
protectedvirtualinherited |
Reimplemented in Adaptation::AccessCheck, Adaptation::Ecap::XactionRep, Adaptation::Icap::Launcher, Adaptation::Icap::ModXact, Adaptation::Icap::OptXact, Adaptation::Icap::Xaction, Adaptation::Iterator, ConnStateData, Ftp::Client, Ftp::Gateway, Ftp::Relay, Http::Tunneler, Comm::ConnOpener, Comm::TcpAcceptor, Downloader, Rock::HeaderUpdater, Rock::Rebuild, HappyConnOpener, HttpStateData, Ipc::Coordinator, Ipc::Forwarder, Ipc::Inquirer, Ipc::Strand, Ipc::UdsSender, Log::TcpLogger, Mgr::ActionWriter, Mgr::Filler, Mgr::Inquirer, Mgr::StoreToCommWriter, PeerPoolMgr, Security::PeerConnector, Ftp::Server, Http::One::Server, Server, Snmp::Inquirer, and Ipc::Port.
Definition at line 59 of file AsyncJob.cc.
Referenced by Adaptation::AccessCheck::start(), Adaptation::Icap::Launcher::start(), Adaptation::Icap::Xaction::start(), Adaptation::Iterator::start(), ConnStateData::start(), Http::Tunneler::start(), Ipc::UdsSender::start(), PeerPoolMgr::start(), Security::PeerConnector::start(), Ipc::Port::start(), and AsyncJob::Start().
◆ Start()
|
staticinherited |
Promises to start the configured job (eventually). The job is deemed to be running asynchronously beyond this point, so the caller should only access the job object via AsyncCalls rather than directly.
swanSong() is only called for jobs for which this method has returned successfully (i.e. without throwing).
Definition at line 37 of file AsyncJob.cc.
References CallJobHere, AsyncJob::start(), and AsyncJob::started_.
Referenced by Ftp::Server::AcceptCtrlConnection(), clientListenerConnectionOpened(), Ipc::Coordinator::handleCacheMgrRequest(), Ipc::Coordinator::handleSnmpRequest(), httpAccept(), httpsAccept(), httpStart(), idnsInitVC(), Ftp::Gateway::listenForDataChannel(), Ftp::Server::listenForDataConnection(), Log::TcpLogger::Open(), peerProbeConnect(), Mgr::FunAction::respond(), Mgr::InfoAction::respond(), Ipc::SendMessage(), Mgr::Inquirer::sendResponse(), snmpConstructReponse(), SquidMain(), CacheManager::start(), Adaptation::AccessCheck::Start(), Rock::Rebuild::Start(), JobWaitBase::start_(), BodyPipe::startAutoConsumptionIfNeeded(), Ftp::StartGateway(), Ftp::StartRelay(), PeerPoolMgrsRr::syncConfig(), and Rock::SwapDir::updateHeaders().
◆ startAdaptation()
void ClientHttpRequest::startAdaptation | ( | const Adaptation::ServiceGroupPointer & | g | ) |
Definition at line 1957 of file client_side_request.cc.
References adaptedBodySource, al, assert, debugs, Adaptation::Initiator::initiateAdaptation(), Adaptation::Initiator::initiated(), Must, request, and virginHeadSource.
Referenced by noteAdaptationAclCheckDone().
◆ status()
|
protectedvirtualinherited |
for debugging, starts with space
Reimplemented in Adaptation::Ecap::XactionRep, Adaptation::Icap::ServiceRep, Adaptation::Icap::Xaction, Adaptation::Initiate, Http::Tunneler, Comm::TcpAcceptor, HappyConnOpener, Ipc::Inquirer, and Security::PeerConnector.
Definition at line 182 of file AsyncJob.cc.
References MemBuf::append(), Packable::appendf(), MemBuf::content(), MemBuf::reset(), AsyncJob::stopReason, and MemBuf::terminate().
Referenced by AsyncJob::callEnd(), AsyncJob::callStart(), Adaptation::Initiate::status(), and Comm::TcpAcceptor::status().
◆ stopConsumingFrom()
Definition at line 118 of file BodyPipe.cc.
References assert, BodyPipe::clearConsumer(), and debugs.
Referenced by ~ClientHttpRequest(), Client::cleanAdaptation(), Client::doneSendingRequestBody(), Client::endAdaptedBodyConsumption(), endRequestSatisfaction(), Client::handleAdaptedBodyProducerAborted(), Client::handleRequestBodyProducerAborted(), BodySink::noteBodyProducerAborted(), noteBodyProducerAborted(), BodySink::noteBodyProductionEnded(), Client::serverComplete(), and Client::swanSong().
◆ storeEntry() [1/2]
|
inline |
Definition at line 66 of file client_side_request.h.
References entry_.
Referenced by clientReplyContext::blockedHit(), clientReplyContext::buildReplyHeader(), clientReplyContext::cacheHit(), clientReplyContext::checkTransferDone(), 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::requestMoreBodyFromStore(), 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 1591 of file client_side_request.cc.
References entry_.
◆ swanSong()
|
inlineprotectedvirtualinherited |
Reimplemented in Adaptation::Ecap::XactionRep, Adaptation::Icap::Launcher, Adaptation::Icap::ModXact, Adaptation::Icap::ModXactLauncher, Adaptation::Icap::OptXact, Adaptation::Icap::Xaction, Adaptation::Initiate, Adaptation::Iterator, ConnStateData, Client, Ftp::Relay, Http::Tunneler, Comm::ConnOpener, Comm::TcpAcceptor, Downloader, Rock::HeaderUpdater, Rock::Rebuild, HappyConnOpener, Ipc::Forwarder, Ipc::Inquirer, Ipc::UdsSender, Log::TcpLogger, Mgr::Filler, Mgr::Forwarder, Mgr::StoreToCommWriter, PeerPoolMgr, Security::PeerConnector, Server, and Snmp::Forwarder.
Definition at line 61 of file AsyncJob.h.
Referenced by AsyncJob::callEnd(), Client::swanSong(), Http::Tunneler::swanSong(), Comm::ConnOpener::swanSong(), Comm::TcpAcceptor::swanSong(), Rock::HeaderUpdater::swanSong(), HappyConnOpener::swanSong(), Ipc::UdsSender::swanSong(), Log::TcpLogger::swanSong(), PeerPoolMgr::swanSong(), Security::PeerConnector::swanSong(), and Server::swanSong().
◆ toCbdata()
|
pure virtualinherited |
Referenced by AsyncJob::callException(), and AsyncJob::callStart().
◆ updateCounters()
void ClientHttpRequest::updateCounters | ( | ) |
Definition at line 321 of file client_side.cc.
References al, AccessLogEntry::cache, StatCounters::client_http, clientUpdateHierCounters(), clientUpdateStatCounters(), clientUpdateStatHistCounters(), current_time, HttpRequest::error, StatCounters::errors, HttpRequest::hier, loggingTags(), request, AccessLogEntry::CacheDetails::start_time, statCounter, and tvSubMsec().
Referenced by logRequest().
◆ updateError()
void ClientHttpRequest::updateError | ( | const Error & | error | ) |
Definition at line 1568 of file client_side_request.cc.
References al, error(), HttpRequest::error, request, Error::update(), and AccessLogEntry::updateError().
Referenced by ConnStateData::checkLogging().
◆ updateLoggingTags()
|
inline |
Definition at line 94 of file client_side_request.h.
References al, AccessLogEntry::cache, code, AccessLogEntry::CacheDetails::code, and LogTags::update().
Referenced by clientReplyContext::cacheHit(), ClientRequestContext::clientAccessCheckDone(), clientGetMoreData(), clientReplyContext::handleIMSReply(), httpStart(), clientReplyContext::identifyFoundObject(), clientReplyContext::processConditional(), clientReplyContext::processExpired(), clientReplyContext::processMiss(), clientReplyContext::processReplyAccessResult(), clientReplyContext::purgeDoPurge(), clientReplyContext::purgeRequest(), clientReplyContext::sendBodyTooLargeError(), clientReplyContext::sendNotModified(), clientReplyContext::sendPreconditionFailedError(), and tunnelStart().
Member Data Documentation
◆ active
dlink_node ClientHttpRequest::active |
Definition at line 176 of file client_side_request.h.
Referenced by ClientHttpRequest(), ~ClientHttpRequest(), and clientReplyContext::makeThisHead().
◆ adaptedBodySource
|
private |
Definition at line 247 of file client_side_request.h.
Referenced by ~ClientHttpRequest(), endRequestSatisfaction(), handleAdaptedHeader(), noteAdaptationAnswer(), noteBodyProducerAborted(), noteBodyProductionEnded(), noteMoreBodyDataAvailable(), resumeBodyStorage(), and startAdaptation().
◆ al
const AccessLogEntry::Pointer ClientHttpRequest::al |
Definition at line 164 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(), loggingTags(), clientReplyContext::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
ClientRequestContext* ClientHttpRequest::calloutContext = nullptr |
Definition at line 179 of file client_side_request.h.
Referenced by ~ClientHttpRequest(), Downloader::buildRequest(), calloutsError(), clientBeginRequest(), clientProcessRequest(), doCallouts(), ConnStateData::fakeAConnectRequest(), handleAdaptationBlock(), and handleAdaptationFailure().
◆ client_stream
dlink_list ClientHttpRequest::client_stream |
Definition at line 177 of file client_side_request.h.
Referenced by ConnStateData::abortRequestParsing(), ConnStateData::buildFakeRequest(), Downloader::buildRequest(), clientBeginRequest(), clientInterpretRequestHeaders(), constructHelperQuery(), doCallouts(), freeResources(), handleAdaptationFailure(), handleAdaptedHeader(), ClientRequestContext::hostHeaderVerifyFailed(), httpStart(), clientReplyContext::next(), ConnStateData::parseHttpRequest(), Ftp::Server::parseOneRequest(), clientReplyContext::processReplyAccessResult(), clientReplyContext::pushStreamData(), clientReplyContext::sendMoreData(), and clientReplyContext::sendStreamError().
◆ conn_
|
private |
Definition at line 193 of file client_side_request.h.
Referenced by ~ClientHttpRequest(), and getConn().
◆ entry_
|
private |
Definition at line 191 of file client_side_request.h.
Referenced by storeEntry().
◆ flags
struct ClientHttpRequest::Flags ClientHttpRequest::flags |
◆ id
|
inherited |
Definition at line 75 of file AsyncJob.h.
◆ inCall
|
protectedinherited |
Definition at line 86 of file AsyncJob.h.
Referenced by AsyncJob::callEnd(), AsyncJob::callStart(), AsyncJob::canBeCalled(), AsyncJob::deleteThis(), and AsyncJob::mustStop().
◆ log_uri
char* const ClientHttpRequest::log_uri = nullptr |
Cleaned up URI of the current (virgin or adapted/redirected) request, computed URI of an internally-generated requests, or one of the hard-coded "error:..." URIs.
Definition at line 144 of file client_side_request.h.
Referenced by absorbLogUri(), Http::One::Server::buildHttpRequest(), clientAclChecklistFill(), clientReplyContext::createStoreEntry(), doCallouts(), clientReplyContext::doGetMoreData(), Ftp::Server::handleUploadRequest(), logRequest(), noteAdaptationAclCheckDone(), ConnStateData::postHttpsAccept(), clientReplyContext::processExpired(), Http::One::Server::processParsedRequest(), and tunnelStart().
◆ loggingEntry_
|
private |
Definition at line 192 of file client_side_request.h.
Referenced by loggingEntry().
◆ maxReplyBodySize_
|
private |
Definition at line 190 of file client_side_request.h.
◆ out
struct ClientHttpRequest::Out ClientHttpRequest::out |
Referenced by TunnelStateData::TunnelStateData(), clientProcessRequest(), clientReplyContext::doGetMoreData(), esiBufferRecipient(), gotEnough(), Downloader::handleReply(), httpStart(), logRequest(), prepPartialResponseGeneration(), clientReplyContext::processExpired(), clientReplyContext::processMiss(), clientReplyContext::replyStatus(), clientReplyContext::sendMoreData(), ConnStateData::serveDelayedError(), statClientRequests(), clientReplyContext::storeNotOKTransferDone(), clientReplyContext::storeOKTransferDone(), and tunnelConnectedWriteDone().
◆ range_iter
HttpHdrRangeIter ClientHttpRequest::range_iter |
Definition at line 161 of file client_side_request.h.
Referenced by freeResources(), mRangeCLen(), and prepPartialResponseGeneration().
◆ receivedWholeAdaptedReply
|
private |
Definition at line 250 of file client_side_request.h.
Referenced by endRequestSatisfaction(), noteBodyProductionEnded(), and noteMoreBodyDataAvailable().
◆ redirect
struct ClientHttpRequest::Redirect ClientHttpRequest::redirect |
◆ req_sz
size_t ClientHttpRequest::req_sz = 0 |
Definition at line 162 of file client_side_request.h.
Referenced by ConnStateData::abortRequestParsing(), Downloader::buildRequest(), ConnStateData::checkLogging(), clientBeginRequest(), logRequest(), noteAdaptationAclCheckDone(), ConnStateData::parseHttpRequest(), Ftp::Server::parseOneRequest(), and statClientRequests().
◆ request
HttpRequest* const ClientHttpRequest::request = nullptr |
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 133 of file client_side_request.h.
Referenced by Ssl::ServerBump::ServerBump(), TunnelStateData::TunnelStateData(), ~ClientHttpRequest(), ConnStateData::abortChunkedRequestBody(), assignRequest(), clientReplyContext::blockedHit(), clientReplyContext::buildReplyHeader(), clientReplyContext::cacheHit(), calloutsError(), checkForInternalAccess(), 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(), 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(), 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(), resetRequestXXX(), 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
|
private |
Definition at line 252 of file client_side_request.h.
Referenced by endRequestSatisfaction(), handleAdaptedHeader(), noteBodyProducerAborted(), noteMoreBodyDataAvailable(), and requestSatisfactionMode().
◆ request_satisfaction_offset
|
private |
Definition at line 253 of file client_side_request.h.
Referenced by handleAdaptedHeader(), and noteMoreBodyDataAvailable().
◆ sslBumpNeed_
|
private |
Definition at line 208 of file client_side_request.h.
Referenced by sslBumpEstablish(), sslBumpNeed(), sslBumpNeeded(), and sslBumpStart().
◆ started_
|
protectedinherited |
Definition at line 88 of file AsyncJob.h.
Referenced by AsyncJob::~AsyncJob(), AsyncJob::callEnd(), and AsyncJob::Start().
◆ stopReason
|
protectedinherited |
Definition at line 84 of file AsyncJob.h.
Referenced by AsyncJob::deleteThis(), AsyncJob::done(), AsyncJob::mustStop(), AsyncJob::status(), and HappyConnOpener::status().
◆ store_id
String ClientHttpRequest::store_id |
Definition at line 146 of file client_side_request.h.
Referenced by ClientRequestContext::clientStoreIdDone(), and clientReplyContext::storeId().
◆ swanSang_
|
protectedinherited |
Definition at line 89 of file AsyncJob.h.
Referenced by AsyncJob::~AsyncJob(), and AsyncJob::callEnd().
◆ typeName
|
protectedinherited |
Definition at line 85 of file AsyncJob.h.
Referenced by AsyncJob::AsyncJob(), Adaptation::Icap::Xaction::Xaction(), AsyncJob::~AsyncJob(), AsyncJob::callEnd(), AsyncJob::callStart(), AsyncJob::deleteThis(), and AsyncJob::mustStop().
◆ uri
char* ClientHttpRequest::uri = nullptr |
Usually starts as a URI received from the client, with scheme and host added if needed. Is used to create the virgin request for initRequest(). URIs of adapted/redirected requests replace it via resetRequest().
Definition at line 138 of file client_side_request.h.
Referenced by TunnelStateData::TunnelStateData(), ~ClientHttpRequest(), ConnStateData::abortChunkedRequestBody(), ConnStateData::buildFakeRequest(), Http::One::Server::buildHttpRequest(), clientReplyContext::buildReplyHeader(), Downloader::buildRequest(), clientReplyContext::cacheHit(), ClientRequestContext::clientAccessCheckDone(), clientBeginRequest(), ClientRequestContext::clientRedirectDone(), ClientRequestContext::clientRedirectStart(), ClientRequestContext::clientStoreIdDone(), ClientRequestContext::clientStoreIdStart(), constructHelperQuery(), ESIContextNew(), freeResources(), httpStart(), ConnStateData::parseHttpRequest(), Ftp::Server::parseOneRequest(), clientReplyContext::processExpired(), clientReplyContext::processMiss(), clientReplyContext::processOnlyIfCachedMiss(), Http::One::Server::processParsedRequest(), clientReplyContext::processReplyAccessResult(), processRequest(), redirectStart(), resetRequestXXX(), clientReplyContext::sendMoreData(), ConnStateData::serveDelayedError(), setErrorUri(), statClientRequests(), clientReplyContext::storeId(), storeIdStart(), and tunnelStart().
◆ virginHeadSource
|
private |
Definition at line 246 of file client_side_request.h.
Referenced by ~ClientHttpRequest(), handleAdaptedHeader(), noteAdaptationAnswer(), noteBodyProducerAborted(), noteBodyProductionEnded(), and startAdaptation().
The documentation for this class was generated from the following files: