#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!=().