Client.cc
Go to the documentation of this file.
365 debugs(11, 5, "sentRequestBody: FD " << io.fd << ": size " << io.size << ": errflag " << io.flag << ".");
388 debugs(11, DBG_IMPORTANT, "ERROR: sentRequestBody failure: FD " << io.fd << ": " << xstrerr(io.xerrno));
475 purgeEntriesByHeader(HttpRequest *req, const char *reqUrl, Http::Message *rep, Http::HdrType hdr)
903 const auto err = new ErrorState(ERR_ICAP_FAILURE, Http::scInternalServerError, request.getRaw(), fwd->al);
void handleMoreRequestBodyAvailable()
Definition: Client.cc:318
Definition: AsyncJob.h:31
virtual bool getMoreRequestBody(MemBuf &buf)
either fill buf with available [encoded] request body bytes or return false
Definition: Client.cc:437
void noteAdaptationAnswer(const Adaptation::Answer &answer) override
Definition: Client.cc:695
bool expectingBody(const HttpRequestMethod &, int64_t &) const override
Definition: HttpReply.cc:528
void noteAdaptationAclCheckDone(Adaptation::ServiceGroupPointer group) override
Definition: Client.cc:956
Definition: FilledChecklist.h:33
bool initiated(const CbcPointer< AsyncJob > &job) const
Must(initiated(initiate)) instead of Must(initiate.set()), for clarity.
Definition: Initiator.h:52
void fd_bytes(const int fd, const int len, const IoDirection direction)
Definition: fd.cc:226
void endAdaptedBodyConsumption()
called when the entire adapted response body is consumed
Definition: Client.cc:828
void adaptVirginReplyBody(const char *buf, ssize_t len)
Definition: Client.cc:627
bool waitingForDelayAwareReadChance
whether we are waiting for MemObject::delayRead() to call us back
Definition: Client.h:198
struct SquidConfig::@98 accessList
void noteMoreBodyDataAvailable(BodyPipe::Pointer) override
Definition: Client.cc:269
void noteBodyConsumerAborted(BodyPipe::Pointer) override
Definition: Client.cc:683
struct StatCounters::@112::@122 all
virtual void handleRequestBodyProducerAborted()=0
Definition: Client.cc:350
virtual void abortAll(const char *reason)=0
abnormal transaction termination; reason is for debugging only
static void purgeEntriesByHeader(HttpRequest *req, const char *reqUrl, Http::Message *rep, Http::HdrType hdr)
Definition: Client.cc:475
struct StatCounters::@112 server
virtual const Comm::ConnectionPointer & dataConnection() const =0
void adjustBodyBytesRead(const int64_t delta)
initializes bodyBytesRead stats if needed and applies delta
Definition: Client.cc:1013
void replaceHttpReply(const HttpReplyPointer &, const bool andStartWriting=true)
Definition: store.cc:1705
void detailError(const err_type c, const ErrorDetail::Pointer &d)
sets error detail if no earlier detail was available
Definition: HttpRequest.h:101
CbcPointer< Initiate > initiateAdaptation(Initiate *x)
< starts freshly created initiate and returns a safe pointer to it
Definition: Initiator.cc:23
virtual void haveParsedReplyHeaders()
called when we have final (possibly adapted) reply headers; kids extend
Definition: Client.cc:536
bool setConsumerIfNotLate(const Consumer::Pointer &aConsumer)
Definition: BodyPipe.cc:228
static const size_type maxSize
Maximum size of a SBuf. By design it MUST be < MAX(size_type)/2. Currently 256Mb.
Definition: SBuf.h:103
RefCount< AsyncCallT< Dialer > > asyncCall(int aDebugSection, int aDebugLevel, const char *aName, const Dialer &aDialer)
Definition: AsyncCall.h:156
virtual bool mayReadVirginReplyBody() const =0
whether we may receive more virgin response body bytes
Definition: BodyPipe.h:90
void updateReply(const HttpReply::Pointer &)
Definition: FilledChecklist.cc:254
err_type FindDenyInfoPage(const Acl::Answer &answer, const bool redirect_allowed)
Definition: Gadgets.cc:34
Definition: Range.h:18
void handleMoreAdaptedBodyAvailable()
Definition: Client.cc:766
Definition: HttpRequest.h:48
Definition: AsyncJobCalls.h:91
Definition: StoreIOBuffer.h:15
void noteBodyProductionEnded(BodyPipe::Pointer) override
Definition: Client.cc:283
void resumeBodyStorage()
called by StoreEntry when it has more buffer space available
Definition: Client.cc:750
void stopConsumingFrom(RefCount< BodyPipe > &)
Definition: BodyPipe.cc:118
Http::StatusCode status() const
retrieve the status code for this status line
Definition: StatusLine.h:45
iterates services in ServiceGroup, starting adaptation launchers
Definition: Iterator.h:31
bool blockCaching()
whether to prevent caching of an otherwise cachable response
Definition: Client.cc:551
virtual void processReplyBody()=0
void clearAdaptation(CbcPointer< Initiate > &x)
clears the pointer (does not call announceInitiatorAbort)
Definition: Initiator.cc:32
Definition: MemBuf.h:23
Definition: CommCalls.h:113
void handleAdaptedBodyProducerAborted()
Definition: Client.cc:843
void purgeEntriesByUrl(HttpRequest *req, const char *url)
Definition: client_side_reply.cc:871
virtual HttpRequestPointer originalRequest()
a hack to reach HttpStateData::orignal_request
Definition: Client.cc:568
Definition: CommCalls.h:165
#define JobCallback(dbgSection, dbgLevel, Dialer, job, method)
Convenience macro to create a Dialer-based job callback.
Definition: AsyncJobCalls.h:70
Definition: FwdState.h:86
static const int64_t UnknownPosition
Definition: HttpHeaderRange.h:32
void Write(const Comm::ConnectionPointer &conn, const char *buf, int size, AsyncCall::Pointer &callback, FREE *free_func)
Definition: Write.cc:33
size_t bytesWanted(Range< size_t > const aRange, bool ignoreDelayPool=false) const
Definition: store.cc:213
virtual void noteDelayAwareReadChance()=0
bool abortOnBadEntry(const char *abortReason)
Entry-dependent callbacks use this check to quit if the entry went bad.
Definition: Client.cc:257
summarizes adaptation service answer for the noteAdaptationAnswer() API
Definition: Answer.h:24
void markParsedVirginReplyAsWhole(const char *reasonWeAreSure)
Definition: Client.cc:158
int64_t bodyBytesRead
number of body bytes received from the next hop or -1
Definition: HierarchyLogEntry.h:60
Definition: HttpReply.h:24
size_t calcBufferSpaceToReserve(const size_t space, const size_t wantSpace) const
determine how much space the buffer needs to reserve
Definition: Client.cc:1065
void startAdaptation(const Adaptation::ServiceGroupPointer &group, HttpRequest *cause)
Initiate an asynchronous adaptation transaction which will call us back.
Definition: Client.cc:576
void handleAdaptationAborted(bool bypassable=false)
Definition: Client.cc:883
void addVirginReplyBody(const char *buf, ssize_t len)
Definition: Client.cc:1040
virtual void sentRequestBody(const CommIoCbParams &io)=0
Definition: Client.cc:363
Acl::Answer blockedToChecklistAnswer() const
creates an Acl::Answer from akBlock answer
Definition: Answer.cc:44
void announceInitiatorAbort(CbcPointer< Initiate > &x)
inform the transaction about abnormal termination and clear the pointer
Definition: Initiator.cc:38
void noteBodyProducerAborted(BodyPipe::Pointer) override
Definition: Client.cc:297
void handleRequestBodyProductionEnded()
Definition: Client.cc:328
void stopProducingFor(RefCount< BodyPipe > &, bool atEof)
Definition: BodyPipe.cc:107
virtual void closeServer()=0
void handleAdaptedBodyProductionEnded()
Definition: Client.cc:813
Definition: errorpage.h:88
@ Write
void deferProducer(const AsyncCall::Pointer &producer)
call back producer when more buffer space is available
Definition: store.cc:366
void markStoredReplyAsWhole(const char *whyWeAreSure)
Definition: FwdState.cc:575
void consume(mb_size_t sz)
removes sz bytes and "packs" by moving content left
Definition: MemBuf.cc:168
CbcPointer< Adaptation::Initiate > adaptedHeadSource
Definition: Client.h:186
size_t replyBodySpace(const MemBuf &readBuf, const size_t minSpace) const
Definition: Client.cc:1100
const SBuf & effectiveRequestUri() const
RFC 7230 section 5.5 - Effective Request URI.
Definition: HttpRequest.cc:744
void handleAdaptationBlocked(const Adaptation::Answer &answer)
Definition: Client.cc:922
Definition: BodyPipe.h:61
void updateAle(const AccessLogEntry::Pointer &)
Definition: FilledChecklist.cc:242
void noteMoreBodySpaceAvailable(BodyPipe::Pointer) override
Definition: Client.cc:669
static bool Start(Method method, VectPoint vp, HttpRequest *req, HttpReply *, const AccessLogEntryPointer &, Adaptation::Initiator *)
Definition: AccessCheck.cc:30
ErrorDetail::Pointer MakeNamedErrorDetail(const char *name)
Definition: Detail.cc:54
virtual bool doneWithServer() const =0
Introduction
- About Squid
- Why Squid?
- Squid Developers
- How to Donate
- How to Help Out
- Getting Squid
- Squid Source Packages
- Squid Deployment Case-Studies
- Squid Software Foundation
Documentation
- Quick Setup
- Configuration:
- FAQ and Wiki
- Guide Books:
- Non-English
- More...
Support
- Security Advisories
- Bugzilla Database
- Mailing lists
- Contacting us
- Commercial services
- Project Sponsors
- Squid-based products