#include "squid.h"#include "client_side.h"#include "client_side_request.h"#include "clientStream.h"#include "comm/Connection.h"#include "errorpage.h"#include "esi/Assign.h"#include "esi/Attempt.h"#include "esi/Context.h"#include "esi/Element.h"#include "esi/Esi.h"#include "esi/Except.h"#include "esi/Expression.h"#include "esi/Segment.h"#include "esi/VarState.h"#include "FadingCounter.h"#include "fatal.h"#include "http/Stream.h"#include "HttpHdrSc.h"#include "HttpHdrScTarget.h"#include "HttpReply.h"#include "HttpRequest.h"#include "ip/Address.h"#include "log/forward.h"#include "MemBuf.h"#include "SquidConfig.h"#include "esi/Literal.h"#include "esi/Sequence.h"#include "esi/Include.h"#include "esi/Var.h"
Go to the source code of this file.
Classes | |
| class | esiComment |
| class | esiRemove |
| class | esiTry |
| class | esiChoose |
| class | esiWhen |
| struct | esiOtherwise |
Typedefs | |
| typedef ESIContext::esiKick_t | esiKick_t |
Functions | |
| static bool | operator== (ESIElement const *lhs, ESIElement::Pointer const &rhs) |
| CBDATA_CLASS_INIT (ESIContext) | |
| static ESIContext * | ESIContextNew (HttpReply *, clientStreamNode *, ClientHttpRequest *) |
| void | esiStreamRead (clientStreamNode *thisNode, ClientHttpRequest *http) |
| clientStream_status_t | esiStreamStatus (clientStreamNode *thisNode, ClientHttpRequest *http) |
| static int | esiAlwaysPassthrough (Http::StatusCode sline) |
| void | esiStreamDetach (clientStreamNode *thisNode, ClientHttpRequest *http) |
| void | esiProcessStream (clientStreamNode *thisNode, ClientHttpRequest *http, HttpReply *rep, StoreIOBuffer receivedData) |
| ErrorState * | clientBuildError (err_type, Http::StatusCode, char const *, const ConnStateData *, HttpRequest *, const AccessLogEntryPointer &) |
| void | FinishAnElement (ESIElement::Pointer &element, int pos) |
| void | FinishAllElements (Esi::Elements &elements) |
| int | esiEnableProcessing (HttpReply *rep) |
Typedef Documentation
◆ esiKick_t
| typedef ESIContext::esiKick_t esiKick_t |
Function Documentation
◆ CBDATA_CLASS_INIT()
| CBDATA_CLASS_INIT | ( | ESIContext | ) |
◆ clientBuildError()
| ErrorState * clientBuildError | ( | err_type | page_id, |
| Http::StatusCode | status, | ||
| char const * | url, | ||
| const ConnStateData * | conn, | ||
| HttpRequest * | request, | ||
| const AccessLogEntryPointer & | al | ||
| ) |
Definition at line 2134 of file client_side_reply.cc.
References conn, Ip::Address::NoAddr(), and xstrdup.
Referenced by ESIContext::fail(), clientReplyContext::processMiss(), clientReplyContext::processOnlyIfCachedMiss(), clientReplyContext::processReplyAccessResult(), clientReplyContext::purgeDoPurge(), clientReplyContext::purgeRequest(), clientReplyContext::sendBodyTooLargeError(), clientReplyContext::sendPreconditionFailedError(), and clientReplyContext::setReplyToError().
◆ esiAlwaysPassthrough()
|
static |
Definition at line 492 of file Esi.cc.
References Http::scContinue, Http::scNoContent, Http::scNotModified, Http::scProcessing, and Http::scSwitchingProtocols.
Referenced by ESIContextNew().
◆ ESIContextNew()
|
static |
Definition at line 822 of file Esi.cc.
References Http::ACCEPT_RANGES, assert, ESIContext::cbdataLocker, ESIContext::clientwantsdata, Http::CONTENT_LENGTH, Http::CONTENT_MD5, debugs, HttpHeader::delById(), esiAlwaysPassthrough(), Http::ETAG, ESIContext::flags, Http::Message::header, ESIContext::http, ESIContext::passthrough, ESIContext::rep, ClientHttpRequest::request, HttpReply::sline, Http::StatusLine::status(), ESIContext::thisNode, ESIContext::tree, ClientHttpRequest::uri, and ESIContext::varState.
Referenced by esiProcessStream().
◆ esiEnableProcessing()
Definition at line 2239 of file Esi.cc.
References SquidConfig::Accel, Config, HttpHdrScTarget::content(), HttpHdrSc::getMergedTarget(), HttpHdrScTarget::hasContent(), String::pos(), HttpReply::surrogate_control, and SquidConfig::surrogate_id.
Referenced by clientReplyContext::processReplyAccessResult().
◆ esiProcessStream()
| void esiProcessStream | ( | clientStreamNode * | thisNode, |
| ClientHttpRequest * | http, | ||
| HttpReply * | rep, | ||
| StoreIOBuffer | receivedData | ||
| ) |
Definition at line 669 of file Esi.cc.
References assert, ESISegment::buf, ESIContext::buffered, ESIContext::cachedASTInUse, cbdataReferenceValid(), clientStreamCallback(), clientStreamRead(), clientStreamNode::data, StoreIOBuffer::data, debugs, ESIContext::ESI_KICK_FAILED, ESIContext::ESI_KICK_INPROGRESS, ESIContext::ESI_KICK_PENDING, ESIContext::ESI_KICK_SENT, ESIContextNew(), ESIContext::finishedtemplate, ESIContext::finishRead(), ESIContext::flags, RefCount< C >::getRaw(), HTTP_REQBUF_SZ, ESIContext::incoming, ESIContext::kick(), ESISegment::len, StoreIOBuffer::length, min(), dlink_node::next, ESISegment::next, clientStreamNode::node, StoreIOBuffer::offset, ESIContext::passthrough, clientStreamNode::readBuffer, ESIContext::reading(), ESIContext::readpos, and ESIContext::startRead().
◆ esiStreamDetach()
| void esiStreamDetach | ( | clientStreamNode * | thisNode, |
| ClientHttpRequest * | http | ||
| ) |
Definition at line 635 of file Esi.cc.
References assert, ESIContext::cbdataLocker, cbdataReferenceValid(), clientStreamDetach(), clientStreamNode::data, ESIContext::detached, ESIContext::finishChildren(), ESIContext::flags, RefCount< C >::getRaw(), ESIContext::parserState, ESIContext::ParserState::stack, and ESIContext::thisNode.
◆ esiStreamRead()
| void esiStreamRead | ( | clientStreamNode * | thisNode, |
| ClientHttpRequest * | http | ||
| ) |
Definition at line 373 of file Esi.cc.
References assert, ESISegment::buf, ESIContext::buffered, ESIContext::cachedASTInUse, cbdataReferenceValid(), clientStreamCallback(), clientStreamRead(), ESIContext::clientwantsdata, clientStreamNode::data, StoreIOBuffer::data, debugs, ESIContext::ESI_KICK_FAILED, ESIContext::ESI_KICK_INPROGRESS, ESIContext::ESI_KICK_PENDING, ESIContext::ESI_KICK_SENT, ESIContext::finished, ESIContext::finishedtemplate, ESIContext::flags, RefCount< C >::getRaw(), HTTP_REQBUF_SZ, ESIContext::incoming, ESIContext::kick(), ESISegment::len, StoreIOBuffer::length, clientStreamNode::next(), dlink_node::next, clientStreamNode::node, StoreIOBuffer::offset, ESIContext::oktosend, ESIContext::outbound, ESIContext::passthrough, dlink_node::prev, clientStreamNode::readBuffer, ESIContext::reading(), ESIContext::readpos, and ESIContext::startRead().
◆ esiStreamStatus()
| clientStream_status_t esiStreamStatus | ( | clientStreamNode * | thisNode, |
| ClientHttpRequest * | http | ||
| ) |
Definition at line 466 of file Esi.cc.
References assert, cbdataReferenceValid(), clientStreamStatus(), clientStreamNode::data, debugs, ESIContext::finished, ESIContext::flags, RefCount< C >::getRaw(), ESISegment::len, dlink_node::next, clientStreamNode::node, ESIContext::oktosend, ESIContext::outbound, ESIContext::outbound_offset, ESIContext::passthrough, dlink_node::prev, STREAM_NONE, and STREAM_UNPLANNED_COMPLETE.
◆ FinishAllElements()
| void FinishAllElements | ( | Esi::Elements & | elements | ) |
Definition at line 1983 of file Esi.cc.
References FinishAnElement().
Referenced by esiChoose::~esiChoose(), esiSequence::~esiSequence(), esiChoose::fail(), esiSequence::fail(), esiChoose::finish(), esiSequence::finish(), esiChoose::NULLUnChosen(), and esiSequence::process().
◆ FinishAnElement()
| void FinishAnElement | ( | ESIElement::Pointer & | element, |
| int | pos = -1 |
||
| ) |
Call finish() and set to nil the given element. Element may already be nil. When element is part of a set, use pos to indicate position/ID for debugging.
Definition at line 1973 of file Esi.cc.
References debugs, ESIElement::finish(), and RefCount< C >::getRaw().
Referenced by FinishAllElements(), esiChoose::NULLUnChosen(), esiSequence::provideData(), and esiSequence::render().
◆ operator==()
|
static |
Definition at line 78 of file Esi.cc.
References RefCount< C >::getRaw().
Referenced by Ip::Address::operator!=().
