|
Squid Web Cache v8/master
|
#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. | |
| void | updateLoggingTags (const LogTags_ot code) |
| update the code in the transaction processing tags | |
| const LogTags & | loggingTags () const |
| the processing tags associated with this request transaction. | |
| int64_t | mRangeCLen () const |
| void | doCallouts () |
| void | setLogUriToRequestUri () |
| sets log_uri when we know the current request | |
| 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. | |
| void | updateError (const Error &) |
| if necessary, stores new error information (if any) | |
| Ssl::BumpMode | sslBumpNeed () const |
| returns raw sslBump mode value | |
| bool | sslBumpNeeded () const |
| returns true if and only if the request needs to be bumped | |
| void | sslBumpNeed (Ssl::BumpMode) |
| set the sslBumpNeeded state | |
| void | sslBumpStart () |
| void | sslBumpEstablish (Comm::Flag) |
| void | startAdaptation (const Adaptation::ServiceGroupPointer &) |
| Initiate an asynchronous adaptation transaction which will call us back. | |
| bool | requestSatisfactionMode () const |
| bool | doneAll () const override |
| whether positive goal has been reached | |
| void | callException (const std::exception &) override |
| called when the job throws during an async call | |
| bool | canBeCalled (AsyncCall &call) const |
| whether we can be called | |
| void | callStart (AsyncCall &call) |
| virtual void | callEnd () |
| called right after the called job method | |
| void | handleStopRequest () |
| process external request to terminate now (i.e. during this async call) | |
| 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 | |
| const AccessLogEntry::Pointer | al |
| access.log entry | |
| struct ClientHttpRequest::Flags | flags |
| struct ClientHttpRequest::Redirect | redirect |
| dlink_node | active |
| dlink_list | client_stream |
| ClientRequestContext * | calloutContext = nullptr |
| const InstanceId< AsyncJob > | id |
| job identifier | |
Protected Member Functions | |
| CbcPointer< Initiate > | initiateAdaptation (Initiate *x) |
| < starts freshly created initiate and returns a safe pointer to it | |
| void | clearAdaptation (CbcPointer< Initiate > &x) |
| clears the pointer (does not call announceInitiatorAbort) | |
| void | announceInitiatorAbort (CbcPointer< Initiate > &x) |
| inform the transaction about abnormal termination and clear the pointer | |
| bool | initiated (const CbcPointer< AsyncJob > &job) const |
| Must(initiated(initiate)) instead of Must(initiate.set()), for clarity. | |
| void | deleteThis (const char *aReason) |
| void | mustStop (const char *aReason) |
| bool | done () const |
| the job is destroyed in callEnd() when done() | |
| virtual void | start () |
| called by AsyncStart; do not call directly | |
| virtual void | swanSong () |
| virtual const char * | status () const |
| internal cleanup; do not call directly | |
| void | stopConsumingFrom (RefCount< BodyPipe > &) |
Static Protected Member Functions | |
| static void | ReportAllJobs (StoreEntry *) |
| writes a cache manager report about all jobs existing in this worker | |
Protected Attributes | |
| const char * | stopReason |
| reason for forcing done() to be true | |
| const char * | typeName |
| kid (leaf) class name, for debugging | |
| AsyncCall::Pointer | inCall |
| the asynchronous call being handled, if any | |
| bool | started_ = false |
| Start() has finished successfully. | |
| bool | swanSang_ = false |
| swanSong() was called | |
Private Member Functions | |
| CBDATA_CHILD (ClientHttpRequest) | |
| void | absorbLogUri (char *) |
| assigns log_uri with aUri without copying the entire C-string | |
| void | clearRequest () |
| resets the current request and log_uri to nil | |
| void | assignRequest (HttpRequest *) |
| void | handleAdaptationFailure (const ErrorDetail::Pointer &, bool bypassable=false) |
| void | handleAdaptedHeader (Http::Message *) |
| void | handleAdaptationBlock (const Adaptation::Answer &) |
| void | noteAdaptationAclCheckDone (Adaptation::ServiceGroupPointer) override |
| void | noteAdaptationAnswer (const Adaptation::Answer &) override |
| void | noteMoreBodyDataAvailable (BodyPipe::Pointer) override |
| void | noteBodyProductionEnded (BodyPipe::Pointer) override |
| void | noteBodyProducerAborted (BodyPipe::Pointer) override |
| void | endRequestSatisfaction () |
| void | resumeBodyStorage () |
| called by StoreEntry when it has more buffer space available | |
| virtual void | finalizedInCbdataChild ()=0 |
| hack: ensure CBDATA_CHILD() after a toCbdata()-defining CBDATA_INTERMEDIATE() | |
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 | |
| CbcPointer< Adaptation::Initiate > | virginHeadSource |
| BodyPipe::Pointer | adaptedBodySource |
| bool | receivedWholeAdaptedReply = false |
| noteBodyProductionEnded() was called | |
| bool | request_satisfaction_mode = false |
| int64_t | request_satisfaction_offset = 0 |
Definition at line 30 of file client_side_request.h.
|
inherited |
Definition at line 34 of file AsyncJob.h.
|
inherited |
Definition at line 45 of file BodyPipe.h.
| 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().
|
delete |
|
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.
|
private |
Definition at line 1756 of file client_side_request.cc.
References log_uri, and xfree.
Referenced by clearRequest(), setErrorUri(), setLogUriToRawUri(), and setLogUriToRequestUri().
|
protectedinherited |
Definition at line 38 of file Initiator.cc.
References CallJobHere.
Referenced by ~ClientHttpRequest(), and Client::cleanAdaptation().
|
private |
initializes the current unassigned request to the virgin request sets the current request, asserting that it was unset
Definition at line 1526 of file client_side_request.cc.
References assert, HTTPMSGLOCK(), request, and setLogUriToRequestUri().
Referenced by initRequest(), and resetRequestXXX().
|
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().
|
overridevirtual |
Reimplemented from AsyncJob.
Definition at line 2023 of file client_side_request.cc.
References DBG_IMPORTANT, debugs, getConn(), and Comm::IsConnOpen().
| void ClientHttpRequest::calloutsError | ( | const err_type | error, |
| const ErrorDetail::Pointer & | errDetail | ||
| ) |
Definition at line 2041 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().
|
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.
|
inherited |
Definition at line 117 of file AsyncJob.cc.
References AsyncCall::cancel(), debugs, and AsyncJob::inCall.
|
private |
| void ClientHttpRequest::checkForInternalAccess | ( | ) |
Definition at line 1502 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().
|
protectedinherited |
Definition at line 32 of file Initiator.cc.
References CbcPointer< Cbc >::clear().
Referenced by handleAdaptedHeader(), noteAdaptationAnswer(), and Client::noteAdaptationAnswer().
|
private |
Definition at line 1536 of file client_side_request.cc.
References absorbLogUri(), HTTPMSGUNLOCK(), and request.
Referenced by freeResources(), and resetRequestXXX().
|
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().
| void ClientHttpRequest::doCallouts | ( | ) |
Definition at line 1572 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, 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(), clientReplyContext::setReplyToStoreEntry(), 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(), clientProcessRequest(), ClientRequestContext::clientRedirectDone(), ClientRequestContext::clientStoreIdDone(), ConnStateData::fakeAConnectRequest(), handleAdaptationFailure(), handleAdaptedHeader(), ClientRequestContext::hostHeaderIpVerify(), ClientRequestContext::hostHeaderVerify(), ClientRequestContext::hostHeaderVerifyFailed(), noteAdaptationAclCheckDone(), and ClientRequestContext::sslBumpAccessCheckDone().
|
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().
|
inlineoverridevirtual |
Reimplemented from AsyncJob.
Definition at line 214 of file client_side_request.h.
References AsyncJob::doneAll().
|
private |
Definition at line 1958 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().
|
privatepure virtualinherited |
| void ClientHttpRequest::freeResources | ( | ) |
Definition at line 463 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().
|
inline |
Definition at line 68 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(), 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().
| bool ClientHttpRequest::gotEnough | ( | ) | const |
Definition at line 1431 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().
|
private |
Definition at line 1884 of file client_side_request.cc.
References assert, Adaptation::Answer::blockedToChecklistAnswer(), calloutContext, ClientRequestContext::clientAccessCheckDone(), HttpRequest::detailError(), ERR_ACCESS_DENIED, MakeNamedErrorDetail(), and request.
Referenced by noteAdaptationAnswer().
|
private |
Handles an adaptation client request failure. Bypasses the error if possible, or build an error reply.
Definition at line 1995 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().
|
private |
Definition at line 1842 of file client_side_request.cc.
References adaptedBodySource, al, assert, Adaptation::Initiator::clearAdaptation(), client_stream, clientGetMoreData, StoreEntry::complete(), clientReplyContext::createStoreEntry(), 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().
|
inlineinherited |
Definition at line 73 of file AsyncJob.h.
References AsyncJob::mustStop().
| void ClientHttpRequest::httpStart | ( | ) |
Definition at line 1338 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().
|
protectedinherited |
Definition at line 23 of file Initiator.cc.
References Adaptation::Initiate::initiator().
Referenced by startAdaptation(), and Client::startAdaptation().
|
inlineprotectedinherited |
Definition at line 52 of file Initiator.h.
References CbcPointer< Cbc >::set().
Referenced by startAdaptation(), and Client::startAdaptation().
| 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 1463 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(), and Ftp::Server::parseOneRequest().
|
inline |
Definition at line 65 of file client_side_request.h.
References loggingEntry_.
Referenced by ~ClientHttpRequest(), logRequest(), and clientReplyContext::processReplyAccessResult().
| void ClientHttpRequest::loggingEntry | ( | StoreEntry * | newEntry | ) |
Definition at line 1451 of file client_side_request.cc.
References StoreEntry::lock(), loggingEntry_, and StoreEntry::unlock().
|
inline |
Definition at line 94 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().
| void ClientHttpRequest::logRequest | ( | ) |
Definition at line 374 of file client_side.cc.
References SquidConfig::accessList, accessLogLog(), AccessLogEntry::adapted_request, NotePairs::add(), 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, 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(), ACLFilledChecklist::updateAle(), updateCounters(), and AccessLogEntry::url.
Referenced by ~ClientHttpRequest().
|
inline |
Definition at line 55 of file client_side_request.h.
References storeEntry().
Referenced by gotEnough(), and 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 actual assembly will be exactly the same as the headers when clientMRangeCLen() is called
Definition at line 740 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().
| bool ClientHttpRequest::multipartRangeRequest | ( | ) | const |
Definition at line 696 of file client_side.cc.
References HttpRequest::multipartRangeRequest(), and request.
|
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(), AsyncJob::handleStopRequest(), HttpStateData::httpStateConnClosed(), HttpStateData::httpTimeout(), HttpStateData::proceedAfter1xx(), ConnStateData::proxyProtocolError(), HttpStateData::readReply(), HttpStateData::start(), and HttpStateData::wroteLast().
|
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 665 of file client_side_request.cc.
References debugs, doCallouts(), fd_table, getConn(), HttpRequest::icapHistory(), ConnStateData::isOpen(), log_uri, req_sz, request, sslGetUserEmail(), and startAdaptation().
|
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 1819 of file client_side_request.cc.
References adaptedBodySource, Adaptation::Answer::akBlock, Adaptation::Answer::akError, Adaptation::Answer::akForward, assert, Adaptation::Initiator::clearAdaptation(), Adaptation::Answer::final, RefCount< C >::getRaw(), handleAdaptationBlock(), handleAdaptationFailure(), handleAdaptedHeader(), Adaptation::Answer::kind, MakeNamedErrorDetail(), Adaptation::Answer::message, and virginHeadSource.
|
overrideprivatevirtual |
Implements BodyConsumer.
Definition at line 1976 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.
|
overrideprivatevirtual |
Implements BodyConsumer.
Definition at line 1944 of file client_side_request.cc.
References adaptedBodySource, assert, endRequestSatisfaction(), BodyPipe::exhausted(), receivedWholeAdaptedReply, and virginHeadSource.
|
overrideprivatevirtual |
Implements BodyConsumer.
Definition at line 1902 of file client_side_request.cc.
References adaptedBodySource, assert, asyncCall(), BodyPipeCheckout::buf, BodyPipe::buf(), StoreEntry::bytesWanted(), BodyPipeCheckout::checkIn(), MemBuf::consume(), MemBuf::contentSize(), debugs, StoreEntry::deferProducer(), endRequestSatisfaction(), BodyPipe::exhausted(), Important, StoreIOBuffer::length, receivedWholeAdaptedReply, request_satisfaction_mode, request_satisfaction_offset, resumeBodyStorage(), storeEntry(), and StoreEntry::write().
Referenced by resumeBodyStorage().
| 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().
| 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.
Definition at line 1780 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.
| void ClientHttpRequest::processRequest | ( | ) |
Definition at line 1314 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().
| String ClientHttpRequest::rangeBoundaryStr | ( | ) | const |
generates a "unique" boundary string for multipart responses the caller is responsible for cleaning the string
Definition at line 780 of file client_side.cc.
References String::append(), StoreEntry::getMD5Text(), storeEntry(), and visible_appname_string.
Referenced by prepPartialResponseGeneration().
|
staticinherited |
Definition at line 215 of file AsyncJob.cc.
References Mgr::RegisterAction(), and AsyncJob::ReportAllJobs().
Referenced by mainInitialize().
|
staticprotectedinherited |
Definition at line 198 of file AsyncJob.cc.
References AllJobs().
Referenced by AsyncJob::RegisterWithCacheManager().
|
inline |
Definition at line 211 of file client_side_request.h.
References request_satisfaction_mode.
Referenced by clientReplyContext::buildReplyHeader().
| 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 1480 of file client_side_request.cc.
References HttpRequest::effectiveRequestUri(), request, and resetRequestXXX().
Referenced by handleAdaptedHeader().
| void ClientHttpRequest::resetRequestXXX | ( | HttpRequest * | newRequest, |
| bool | uriChanged | ||
| ) |
resetRequest() variation for callers with custom URI change detection logic
| uriChanged | whether the new request URI differs from the current request URI |
Definition at line 1487 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().
|
private |
Definition at line 1893 of file client_side_request.cc.
References adaptedBodySource, and noteMoreBodyDataAvailable().
Referenced by noteMoreBodyDataAvailable().
| 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 1763 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().
| 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 1740 of file client_side_request.cc.
References absorbLogUri(), al, assert, AnyP::Uri::cleanup(), AccessLogEntry::setVirginUrlForMissingRequest(), urlCanonicalCleanWithoutRequest(), and xfree.
Referenced by Http::One::Server::buildHttpRequest().
| void ClientHttpRequest::setLogUriToRequestUri | ( | ) |
Definition at line 1732 of file client_side_request.cc.
References absorbLogUri(), assert, HttpRequest::canonicalCleanUrl(), MAX_URL, request, and xstrndup().
Referenced by assignRequest(), and checkForInternalAccess().
| void ClientHttpRequest::sslBumpEstablish | ( | Comm::Flag | errflag | ) |
Definition at line 1370 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().
|
inline |
Definition at line 195 of file client_side_request.h.
References sslBumpNeed_.
Referenced by doCallouts(), ClientRequestContext::sslBumpAccessCheck(), and ClientRequestContext::sslBumpAccessCheckDone().
| void ClientHttpRequest::sslBumpNeed | ( | Ssl::BumpMode | mode | ) |
Definition at line 1354 of file client_side_request.cc.
References Ssl::bumpMode(), debugs, and sslBumpNeed_.
|
inline |
Definition at line 197 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().
| void ClientHttpRequest::sslBumpStart | ( | ) |
Definition at line 1393 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().
|
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().
|
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(), and Rock::SwapDir::updateHeaders().
| void ClientHttpRequest::startAdaptation | ( | const Adaptation::ServiceGroupPointer & | g | ) |
Definition at line 1805 of file client_side_request.cc.
References adaptedBodySource, al, assert, debugs, Adaptation::Initiator::initiateAdaptation(), Adaptation::Initiator::initiated(), Must, request, and virginHeadSource.
Referenced by noteAdaptationAclCheckDone().
|
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().
Definition at line 118 of file BodyPipe.cc.
References assert, and debugs.
Referenced by ~ClientHttpRequest(), Client::checkAdaptationWithBodyCompletion(), Client::cleanAdaptation(), Client::doneSendingRequestBody(), endRequestSatisfaction(), Client::handleRequestBodyProducerAborted(), BodySink::noteBodyProducerAborted(), noteBodyProducerAborted(), BodySink::noteBodyProductionEnded(), Client::serverComplete(), and Client::swanSong().
|
inline |
Definition at line 63 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(), handleAdaptationFailure(), handleAdaptedHeader(), clientReplyContext::handleIMSReply(), Http::One::Server::handleReply(), 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(), and clientReplyContext::triggerInitialStoreRead().
| void ClientHttpRequest::storeEntry | ( | StoreEntry * | newEntry | ) |
Definition at line 1445 of file client_side_request.cc.
References entry_.
|
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(), Ftp::Relay::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().
|
pure virtualinherited |
Referenced by AsyncJob::callException(), and AsyncJob::callStart().
| void ClientHttpRequest::updateCounters | ( | ) |
Definition at line 308 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().
| void ClientHttpRequest::updateError | ( | const Error & | error | ) |
Definition at line 1422 of file client_side_request.cc.
References al, error(), HttpRequest::error, request, Error::update(), and AccessLogEntry::updateError().
Referenced by ConnStateData::checkLogging().
|
inline |
Definition at line 91 of file client_side_request.h.
References al, AccessLogEntry::cache, 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::sendClientOldEntry(), clientReplyContext::sendNotModified(), clientReplyContext::sendPreconditionFailedError(), and tunnelStart().
| dlink_node ClientHttpRequest::active |
Definition at line 173 of file client_side_request.h.
Referenced by ClientHttpRequest(), ~ClientHttpRequest(), and clientReplyContext::makeThisHead().
|
private |
Definition at line 244 of file client_side_request.h.
Referenced by ~ClientHttpRequest(), endRequestSatisfaction(), handleAdaptedHeader(), noteAdaptationAnswer(), noteBodyProducerAborted(), noteBodyProductionEnded(), noteMoreBodyDataAvailable(), resumeBodyStorage(), and startAdaptation().
| const AccessLogEntry::Pointer ClientHttpRequest::al |
Definition at line 161 of file client_side_request.h.
Referenced by ClientHttpRequest(), TunnelStateData::TunnelStateData(), ~ClientHttpRequest(), ConnStateData::buildFakeRequest(), clientReplyContext::buildReplyHeader(), calloutsError(), ClientRequestContext::clientAccessCheckDone(), clientAclChecklistFill(), clientFollowXForwardedForCheck(), clientProcessRequest(), ClientRequestContext::clientRedirectDone(), ClientRequestContext::clientRedirectStart(), ClientRequestContext::clientStoreIdDone(), clientReplyContext::cloneReply(), constructHelperQuery(), doCallouts(), 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::setReplyToError(), clientReplyContext::setReplyToReply(), ClientRequestContext::sslBumpAccessCheck(), ClientRequestContext::sslBumpAccessCheckDone(), sslBumpStart(), startAdaptation(), ConnStateData::startPeekAndSplice(), statClientRequests(), tunnelStart(), updateCounters(), updateError(), updateLoggingTags(), and Http::One::Server::writeControlMsgAndCall().
| ClientRequestContext* ClientHttpRequest::calloutContext = nullptr |
Definition at line 176 of file client_side_request.h.
Referenced by ~ClientHttpRequest(), Downloader::buildRequest(), calloutsError(), clientProcessRequest(), doCallouts(), ConnStateData::fakeAConnectRequest(), handleAdaptationBlock(), and handleAdaptationFailure().
| dlink_list ClientHttpRequest::client_stream |
Definition at line 174 of file client_side_request.h.
Referenced by ConnStateData::abortRequestParsing(), ConnStateData::buildFakeRequest(), Downloader::buildRequest(), 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().
|
private |
Definition at line 190 of file client_side_request.h.
Referenced by ~ClientHttpRequest(), and getConn().
|
private |
Definition at line 188 of file client_side_request.h.
Referenced by storeEntry(), and storeEntry().
| struct ClientHttpRequest::Flags ClientHttpRequest::flags |
|
inherited |
Definition at line 75 of file AsyncJob.h.
|
protectedinherited |
Definition at line 86 of file AsyncJob.h.
Referenced by AsyncJob::callEnd(), AsyncJob::callStart(), AsyncJob::canBeCalled(), AsyncJob::deleteThis(), and AsyncJob::mustStop().
| 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 141 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().
|
private |
Definition at line 189 of file client_side_request.h.
Referenced by loggingEntry(), and loggingEntry().
|
private |
Definition at line 187 of file client_side_request.h.
| struct ClientHttpRequest::Out ClientHttpRequest::out |
Referenced by TunnelStateData::TunnelStateData(), clientProcessRequest(), clientReplyContext::doGetMoreData(), gotEnough(), Downloader::handleReply(), httpStart(), logRequest(), prepPartialResponseGeneration(), clientReplyContext::processExpired(), clientReplyContext::processMiss(), clientReplyContext::replyStatus(), clientReplyContext::sendMoreData(), ConnStateData::serveDelayedError(), statClientRequests(), clientReplyContext::storeNotOKTransferDone(), clientReplyContext::storeOKTransferDone(), and tunnelConnectedWriteDone().
| HttpHdrRangeIter ClientHttpRequest::range_iter |
Definition at line 158 of file client_side_request.h.
Referenced by freeResources(), mRangeCLen(), and prepPartialResponseGeneration().
|
private |
Definition at line 247 of file client_side_request.h.
Referenced by endRequestSatisfaction(), noteBodyProductionEnded(), and noteMoreBodyDataAvailable().
| struct ClientHttpRequest::Redirect ClientHttpRequest::redirect |
| size_t ClientHttpRequest::req_sz = 0 |
Definition at line 159 of file client_side_request.h.
Referenced by ConnStateData::abortRequestParsing(), Downloader::buildRequest(), ConnStateData::checkLogging(), logRequest(), noteAdaptationAclCheckDone(), ConnStateData::parseHttpRequest(), Ftp::Server::parseOneRequest(), and statClientRequests().
| 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 130 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(), ConnStateData::fakeAConnectRequest(), gotEnough(), guaranteedRequest(), 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().
|
private |
Definition at line 249 of file client_side_request.h.
Referenced by endRequestSatisfaction(), handleAdaptedHeader(), noteBodyProducerAborted(), noteMoreBodyDataAvailable(), and requestSatisfactionMode().
|
private |
Definition at line 250 of file client_side_request.h.
Referenced by handleAdaptedHeader(), and noteMoreBodyDataAvailable().
|
private |
Definition at line 205 of file client_side_request.h.
Referenced by sslBumpEstablish(), sslBumpNeed(), sslBumpNeed(), sslBumpNeeded(), and sslBumpStart().
|
protectedinherited |
Definition at line 88 of file AsyncJob.h.
Referenced by AsyncJob::~AsyncJob(), AsyncJob::callEnd(), and AsyncJob::Start().
|
protectedinherited |
Definition at line 84 of file AsyncJob.h.
Referenced by AsyncJob::deleteThis(), AsyncJob::done(), AsyncJob::mustStop(), AsyncJob::status(), and HappyConnOpener::status().
| String ClientHttpRequest::store_id |
Definition at line 143 of file client_side_request.h.
Referenced by ClientRequestContext::clientStoreIdDone(), and clientReplyContext::storeId().
|
protectedinherited |
Definition at line 89 of file AsyncJob.h.
Referenced by AsyncJob::~AsyncJob(), and AsyncJob::callEnd().
|
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().
| 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 135 of file client_side_request.h.
Referenced by TunnelStateData::TunnelStateData(), ~ClientHttpRequest(), ConnStateData::abortChunkedRequestBody(), ConnStateData::buildFakeRequest(), Http::One::Server::buildHttpRequest(), Downloader::buildRequest(), clientReplyContext::cacheHit(), ClientRequestContext::clientAccessCheckDone(), ClientRequestContext::clientRedirectDone(), ClientRequestContext::clientRedirectStart(), ClientRequestContext::clientStoreIdDone(), ClientRequestContext::clientStoreIdStart(), constructHelperQuery(), 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().
|
private |
Definition at line 243 of file client_side_request.h.
Referenced by ~ClientHttpRequest(), handleAdaptedHeader(), noteAdaptationAnswer(), noteBodyProducerAborted(), noteBodyProductionEnded(), and startAdaptation().