#include <ModXact.h>

Inheritance diagram for Adaptation::Icap::ModXact:
Collaboration diagram for Adaptation::Icap::ModXact:

Classes

class  State
 

Public Types

typedef CbcPointer< AsyncJobPointer
 
typedef CbcPointer< BodyProducerPointer
 
typedef CbcPointer< BodyConsumerPointer
 

Public Member Functions

 ModXact (Http::Message *virginHeader, HttpRequest *virginCause, AccessLogEntry::Pointer &alp, ServiceRep::Pointer &s)
 
virtual ~ModXact ()
 
virtual void noteMoreBodySpaceAvailable (BodyPipe::Pointer)
 
virtual void noteBodyConsumerAborted (BodyPipe::Pointer)
 
virtual void noteMoreBodyDataAvailable (BodyPipe::Pointer)
 
virtual void noteBodyProductionEnded (BodyPipe::Pointer)
 
virtual void noteBodyProducerAborted (BodyPipe::Pointer)
 
virtual void handleCommConnected ()
 
virtual void handleCommWrote (size_t size)
 
virtual void handleCommRead (size_t size)
 
void handleCommWroteHeaders ()
 
void handleCommWroteBody ()
 
void noteServiceReady ()
 
void noteServiceAvailable ()
 
virtual void callException (const std::exception &e)
 called when the job throws during an async call More...
 
virtual void detailError (int errDetail)
 record error detail in the virgin request if possible More...
 
virtual void clearError ()
 clear stored error details, if any; used for retries/repeats More...
 
virtual AccessLogEntry::Pointer masterLogEntry ()
 The master transaction log entry. More...
 
void disableRetries ()
 
void disableRepeats (const char *reason)
 
bool retriable () const
 
bool repeatable () const
 
void noteCommConnected (const CommConnectCbParams &io)
 
void noteCommWrote (const CommIoCbParams &io)
 
void noteCommRead (const CommIoCbParams &io)
 
void noteCommTimedout (const CommTimeoutCbParams &io)
 
void noteCommClosed (const CommCloseCbParams &io)
 
virtual void callEnd ()
 called right after the called job method More...
 
void dnsLookupDone (const ipcache_addrs *ia)
 
ServiceRepservice ()
 
void initiator (const CbcPointer< Initiator > &i)
 sets initiator More...
 
bool canBeCalled (AsyncCall &call) const
 whether we can be called More...
 
void callStart (AsyncCall &call)
 
virtual void * toCbdata ()=0
 

Static Public Member Functions

static Pointer Start (AsyncJob *job)
 starts a freshly created job (i.e., makes the job asynchronous) More...
 

Public Attributes

InOut virgin
 
InOut adapted
 
HttpRequesticapRequest
 sent (or at least created) ICAP request More...
 
HttpReply::Pointer icapReply
 received ICAP reply, if any More...
 
int attempts
 the number of times we tried to get to the service, including this time More...
 

Protected Member Functions

virtual void noteInitiatorAborted ()
 
virtual void handleCommTimedout ()
 
virtual void handleCommClosed ()
 
void handleSecuredPeer (Security::EncryptorAnswer &answer)
 
void openConnection ()
 
void closeConnection ()
 
void dieOnConnectionFailure ()
 
bool haveConnection () const
 
void scheduleRead ()
 
void scheduleWrite (MemBuf &buf)
 
void updateTimeout ()
 
void cancelRead ()
 
bool parseHttpMsg (Http::Message *msg)
 
bool mayReadMore () const
 
bool doneWithIo () const
 
virtual const char * status () const
 internal cleanup; do not call directly More...
 
void setOutcome (const XactOutcome &xo)
 
void tellQueryAborted (bool final)
 
void sendAnswer (const Answer &answer)
 
void clearInitiator ()
 
void deleteThis (const char *aReason)
 
void mustStop (const char *aReason)
 
bool done () const
 the job is destroyed in callEnd() when done() More...
 
void stopProducingFor (RefCount< BodyPipe > &, bool atEof)
 
void stopConsumingFrom (RefCount< BodyPipe > &)
 

Protected Attributes

Comm::ConnectionPointer connection
 ICAP server connection. More...
 
Adaptation::Icap::ServiceRep::Pointer theService
 
SBuf readBuf
 
bool commEof
 
bool reuseConnection
 
bool isRetriable
 can retry on persistent connection failures More...
 
bool isRepeatable
 can repeat if no or unsatisfactory response More...
 
bool ignoreLastWrite
 
const char * stopReason
 
AsyncCall::Pointer connector
 
AsyncCall::Pointer reader
 
AsyncCall::Pointer writer
 
AsyncCall::Pointer closer
 
AccessLogEntry::Pointer alep
 icap.log entry More...
 
AccessLogEntryal
 short for *alep More...
 
timeval icap_tr_start
 
timeval icap_tio_start
 
timeval icap_tio_finish
 
CbcPointer< InitiatortheInitiator
 
const char * typeName
 kid (leaf) class name, for debugging More...
 
AsyncCall::Pointer inCall
 the asynchronous call being handled, if any More...
 
const InstanceId< AsyncJobid
 job identifier More...
 

Private Member Functions

 CBDATA_CLASS (ModXact)
 
virtual void start ()
 called by AsyncStart; do not call directly More...
 
const HttpRequestvirginRequest () const
 locates the request, either as a cause or as a virgin message itself More...
 
void estimateVirginBody ()
 
void makeAdaptedBodyPipe (const char *what)
 
void waitForService ()
 
bool doneSending () const
 
void startWriting ()
 
void writeMore ()
 
void writePreviewBody ()
 
void writePrimeBody ()
 
void writeSomeBody (const char *label, size_t size)
 
void decideWritingAfterPreview (const char *previewKind)
 determine state.writing after we wrote the entire preview More...
 
void startReading ()
 
void readMore ()
 
virtual bool doneReading () const
 
virtual bool doneWriting () const
 
size_t virginContentSize (const VirginBodyAct &act) const
 
const char * virginContentData (const VirginBodyAct &act) const
 
bool virginBodyEndReached (const VirginBodyAct &act) const
 
void makeRequestHeaders (MemBuf &buf)
 
void makeAllowHeader (MemBuf &buf)
 
void makeUsernameHeader (const HttpRequest *request, MemBuf &buf)
 
void addLastRequestChunk (MemBuf &buf)
 
void openChunk (MemBuf &buf, size_t chunkSize, bool ieof)
 
void closeChunk (MemBuf &buf)
 
void virginConsume ()
 
void finishNullOrEmptyBodyPreview (MemBuf &buf)
 
void decideOnPreview ()
 
void decideOnRetries ()
 
bool shouldAllow204 ()
 
bool shouldAllow206any ()
 
bool shouldAllow206in ()
 
bool shouldAllow206out ()
 
bool canBackupEverything () const
 
void prepBackup (size_t expectedSize)
 
void backup (const MemBuf &buf)
 
void parseMore ()
 
void parseHeaders ()
 
void parseIcapHead ()
 
void parseHttpHead ()
 
bool parseHead (Http::Message *head)
 
void decideOnParsingBody ()
 
void parseBody ()
 
void parseIcapTrailer ()
 
void maybeAllocateHttpMsg ()
 
void handle100Continue ()
 
bool validate200Ok ()
 
void handle200Ok ()
 
void handle204NoContent ()
 
void handle206PartialContent ()
 
void handleUnknownScode ()
 
void bypassFailure ()
 
void startSending ()
 
void disableBypass (const char *reason, bool includeGroupBypass)
 
void prepEchoing ()
 
void prepPartialBodyEchoing (uint64_t pos)
 
void echoMore ()
 
void updateSources ()
 Update the Http::Message sources. More...
 
virtual bool doneAll () const
 whether positive goal has been reached More...
 
virtual void swanSong ()
 
void stopReceiving ()
 
void stopSending (bool nicely)
 
void stopWriting (bool nicely)
 
void stopParsing (const bool checkUnparsedData=true)
 
void stopBackup ()
 
virtual void fillPendingStatus (MemBuf &buf) const
 
virtual void fillDoneStatus (MemBuf &buf) const
 
virtual bool fillVirginHttpHeader (MemBuf &) const
 
template<class Part >
bool parsePart (Part *part, const char *description)
 
void packHead (MemBuf &httpBuf, const Http::Message *head)
 
void encapsulateHead (MemBuf &icapBuf, const char *section, MemBuf &httpBuf, const Http::Message *head)
 
bool gotEncapsulated (const char *section) const
 
bool expectHttpHeader () const
 whether ICAP response header indicates HTTP header presence More...
 
bool expectHttpBody () const
 whether ICAP response header indicates HTTP body presence More...
 
bool expectIcapTrailers () const
 whether ICAP response header indicates ICAP trailers presence More...
 
void checkConsuming ()
 
virtual void finalizeLogInfo ()
 
void tellQueryAborted ()
 
void maybeLog ()
 

Private Attributes

SizedEstimate virginBody
 
VirginBodyAct virginBodyWriting
 
VirginBodyAct virginBodySending
 
uint64_t virginConsumed
 
Preview preview
 
Http1::TeChunkedParserbodyParser
 
bool canStartBypass
 
bool protectGroupBypass
 
int64_t replyHttpHeaderSize
 
int64_t replyHttpBodySize
 
int adaptHistoryId
 adaptation history slot reservation More...
 
TrailerParsertrailerParser
 
ChunkExtensionValueParser extensionParser
 
class Adaptation::Icap::ModXact::State state
 
AccessLogEntry::Pointer alMaster
 Master transaction AccessLogEntry. More...
 
Comm::ConnOpener::Pointer cs
 
AsyncCall::Pointer securer
 whether we are securing a connection More...
 

Detailed Description

Definition at line 141 of file ModXact.h.

Member Typedef Documentation

◆ Pointer [1/3]

Definition at line 25 of file BodyPipe.h.

◆ Pointer [2/3]

Definition at line 34 of file AsyncJob.h.

◆ Pointer [3/3]

Definition at line 45 of file BodyPipe.h.

Constructor & Destructor Documentation

◆ ModXact()

◆ ~ModXact()

Adaptation::Icap::ModXact::~ModXact ( )
virtual

Definition at line 1288 of file ModXact.cc.

Member Function Documentation

◆ addLastRequestChunk()

void Adaptation::Icap::ModXact::addLastRequestChunk ( MemBuf buf)
private

Definition at line 372 of file ModXact.cc.

References buf.

◆ backup()

void Adaptation::Icap::ModXact::backup ( const MemBuf buf)
private

◆ bypassFailure()

void Adaptation::Icap::ModXact::bypassFailure ( )
private

Definition at line 694 of file ModXact.cc.

References debugs, HERE(), and Must.

◆ callEnd()

void Adaptation::Icap::Xaction::callEnd ( )
virtualinherited

called right after the called job method

Reimplemented from AsyncJob.

Definition at line 408 of file Xaction.cc.

References AsyncJob::callEnd(), debugs, and HERE().

◆ callException()

void Adaptation::Icap::ModXact::callException ( const std::exception &  e)
virtual

◆ callStart()

void AsyncJob::callStart ( AsyncCall call)
inherited

◆ canBackupEverything()

bool Adaptation::Icap::ModXact::canBackupEverything ( ) const
private

Definition at line 1687 of file ModXact.cc.

References TheBackupLimit.

◆ canBeCalled()

bool AsyncJob::canBeCalled ( AsyncCall call) const
inherited

Definition at line 101 of file AsyncJob.cc.

References AsyncCall::cancel(), debugs, HERE(), AsyncJob::inCall, and NULL.

◆ cancelRead()

void Adaptation::Icap::Xaction::cancelRead ( )
protectedinherited

Definition at line 513 of file Xaction.cc.

References Must, NULL, and Comm::ReadCancel().

◆ CBDATA_CLASS()

Adaptation::Icap::ModXact::CBDATA_CLASS ( ModXact  )
private

◆ checkConsuming()

void Adaptation::Icap::ModXact::checkConsuming ( )
private

Definition at line 643 of file ModXact.cc.

References debugs, and HERE().

◆ clearError()

void Adaptation::Icap::ModXact::clearError ( )
virtual

Reimplemented from Adaptation::Icap::Xaction.

Definition at line 1997 of file ModXact.cc.

References request().

◆ clearInitiator()

void Adaptation::Initiate::clearInitiator ( )
protectedinherited

Definition at line 74 of file Initiate.cc.

◆ closeChunk()

void Adaptation::Icap::ModXact::closeChunk ( MemBuf buf)
private

Definition at line 384 of file ModXact.cc.

References buf, and crlf.

◆ closeConnection()

void Adaptation::Icap::Xaction::closeConnection ( )
protectedinherited

◆ decideOnParsingBody()

void Adaptation::Icap::ModXact::decideOnParsingBody ( )
private

◆ decideOnPreview()

void Adaptation::Icap::ModXact::decideOnPreview ( )
private

◆ decideOnRetries()

void Adaptation::Icap::ModXact::decideOnRetries ( )
private

Definition at line 1704 of file ModXact.cc.

◆ decideWritingAfterPreview()

void Adaptation::Icap::ModXact::decideWritingAfterPreview ( const char *  previewKind)
private

Definition at line 295 of file ModXact.cc.

References debugs, and HERE().

◆ deleteThis()

void AsyncJob::deleteThis ( const char *  aReason)
protectedinherited

◆ detailError()

void Adaptation::Icap::ModXact::detailError ( int  errDetail)
virtual

Reimplemented from Adaptation::Icap::Xaction.

Definition at line 1985 of file ModXact.cc.

References ERR_ICAP_FAILURE, and request().

◆ dieOnConnectionFailure()

void Adaptation::Icap::Xaction::dieOnConnectionFailure ( )
protectedinherited

Definition at line 322 of file Xaction.cc.

References debugs, ERR_DETAIL_ICAP_XACT_START, HERE(), and TexcHere.

◆ disableBypass()

void Adaptation::Icap::ModXact::disableBypass ( const char *  reason,
bool  includeGroupBypass 
)
private

Definition at line 720 of file ModXact.cc.

References debugs, and HERE().

◆ disableRepeats()

void Adaptation::Icap::Xaction::disableRepeats ( const char *  reason)
inherited

Definition at line 136 of file Xaction.cc.

References debugs.

Referenced by Adaptation::Icap::Launcher::launchXaction().

◆ disableRetries()

void Adaptation::Icap::Xaction::disableRetries ( )
inherited

Definition at line 129 of file Xaction.cc.

References debugs.

Referenced by Adaptation::Icap::Launcher::launchXaction().

◆ dnsLookupDone()

◆ done()

bool AsyncJob::done ( ) const
protectedinherited

◆ doneAll()

bool Adaptation::Icap::ModXact::doneAll ( ) const
privatevirtual

Reimplemented from Adaptation::Icap::Xaction.

Definition at line 531 of file ModXact.cc.

References Adaptation::Icap::Xaction::doneAll().

◆ doneReading()

virtual bool Adaptation::Icap::ModXact::doneReading ( ) const
inlineprivatevirtual

◆ doneSending()

bool Adaptation::Icap::ModXact::doneSending ( ) const
private

Definition at line 611 of file ModXact.cc.

◆ doneWithIo()

bool Adaptation::Icap::Xaction::doneWithIo ( ) const
protectedinherited

Definition at line 559 of file Xaction.cc.

◆ doneWriting()

virtual bool Adaptation::Icap::ModXact::doneWriting ( ) const
inlineprivatevirtual

Reimplemented from Adaptation::Icap::Xaction.

Definition at line 207 of file ModXact.h.

References Adaptation::Icap::ModXact::State::doneWriting(), and state.

◆ echoMore()

void Adaptation::Icap::ModXact::echoMore ( )
private

Definition at line 578 of file ModXact.cc.

References debugs, HERE(), Must, NULL, and size.

◆ encapsulateHead()

◆ estimateVirginBody()

void Adaptation::Icap::ModXact::estimateVirginBody ( )
private

◆ expectHttpBody()

bool Adaptation::Icap::ModXact::expectHttpBody ( ) const
private

Definition at line 1126 of file ModXact.cc.

◆ expectHttpHeader()

bool Adaptation::Icap::ModXact::expectHttpHeader ( ) const
private

Definition at line 1121 of file ModXact.cc.

◆ expectIcapTrailers()

bool Adaptation::Icap::ModXact::expectIcapTrailers ( ) const
private

Definition at line 1131 of file ModXact.cc.

References Http::ALLOW, DBG_IMPORTANT, debugs, Must, String::size(), and Http::TRAILER.

◆ fillDoneStatus()

void Adaptation::Icap::ModXact::fillDoneStatus ( MemBuf buf) const
privatevirtual

Reimplemented from Adaptation::Icap::Xaction.

Definition at line 1778 of file ModXact.cc.

References buf, and Adaptation::Icap::Xaction::fillDoneStatus().

◆ fillPendingStatus()

void Adaptation::Icap::ModXact::fillPendingStatus ( MemBuf buf) const
privatevirtual

Reimplemented from Adaptation::Icap::Xaction.

Definition at line 1738 of file ModXact.cc.

References buf, Adaptation::Icap::Xaction::fillPendingStatus(), and NULL.

◆ fillVirginHttpHeader()

bool Adaptation::Icap::ModXact::fillVirginHttpHeader ( MemBuf mb) const
privatevirtual

Reimplemented from Adaptation::Icap::Xaction.

Definition at line 1975 of file ModXact.cc.

References NULL.

◆ finalizeLogInfo()

◆ finishNullOrEmptyBodyPreview()

void Adaptation::Icap::ModXact::finishNullOrEmptyBodyPreview ( MemBuf buf)
private

Definition at line 1724 of file ModXact.cc.

References Must.

◆ gotEncapsulated()

bool Adaptation::Icap::ModXact::gotEncapsulated ( const char *  section) const
private

Definition at line 1803 of file ModXact.cc.

◆ handle100Continue()

void Adaptation::Icap::ModXact::handle100Continue ( )
private

Definition at line 899 of file ModXact.cc.

References Must.

◆ handle200Ok()

void Adaptation::Icap::ModXact::handle200Ok ( )
private

Definition at line 918 of file ModXact.cc.

◆ handle204NoContent()

void Adaptation::Icap::ModXact::handle204NoContent ( )
private

Definition at line 926 of file ModXact.cc.

◆ handle206PartialContent()

void Adaptation::Icap::ModXact::handle206PartialContent ( )
private

Definition at line 932 of file ModXact.cc.

References debugs, HERE(), and Must.

◆ handleCommClosed()

void Adaptation::Icap::Xaction::handleCommClosed ( )
protectedvirtualinherited

Definition at line 395 of file Xaction.cc.

References ERR_DETAIL_ICAP_XACT_CLOSE.

◆ handleCommConnected()

void Adaptation::Icap::ModXact::handleCommConnected ( )
virtual

◆ handleCommRead()

void Adaptation::Icap::ModXact::handleCommRead ( size_t  size)
virtual

Implements Adaptation::Icap::Xaction.

Definition at line 570 of file ModXact.cc.

References current_time, and Must.

◆ handleCommTimedout()

void Adaptation::Icap::Xaction::handleCommTimedout ( )
protectedvirtualinherited

Definition at line 367 of file Xaction.cc.

References assert, debugs, HERE(), NULL, and TexcHere.

◆ handleCommWrote()

void Adaptation::Icap::ModXact::handleCommWrote ( size_t  size)
virtual

Implements Adaptation::Icap::Xaction.

Definition at line 209 of file ModXact.cc.

References debugs, HERE(), and sz.

◆ handleCommWroteBody()

void Adaptation::Icap::ModXact::handleCommWroteBody ( )

Definition at line 481 of file ModXact.cc.

◆ handleCommWroteHeaders()

void Adaptation::Icap::ModXact::handleCommWroteHeaders ( )

Definition at line 219 of file ModXact.cc.

References Must.

◆ handleSecuredPeer()

◆ handleUnknownScode()

void Adaptation::Icap::ModXact::handleUnknownScode ( )
private

Definition at line 1054 of file ModXact.cc.

References TexcHere.

◆ haveConnection()

bool Adaptation::Icap::Xaction::haveConnection ( ) const
protectedinherited

Definition at line 566 of file Xaction.cc.

References NULL.

◆ initiator()

void Adaptation::Initiate::initiator ( const CbcPointer< Initiator > &  i)
inherited

Definition at line 54 of file Initiate.cc.

References i, and Must.

Referenced by Adaptation::Initiator::initiateAdaptation().

◆ makeAdaptedBodyPipe()

void Adaptation::Icap::ModXact::makeAdaptedBodyPipe ( const char *  what)
private

Definition at line 1852 of file ModXact.cc.

References debugs, HERE(), and Must.

◆ makeAllowHeader()

void Adaptation::Icap::ModXact::makeAllowHeader ( MemBuf buf)
private

Definition at line 1522 of file ModXact.cc.

References buf, and debugs.

◆ makeRequestHeaders()

◆ makeUsernameHeader()

◆ masterLogEntry()

virtual AccessLogEntry::Pointer Adaptation::Icap::ModXact::masterLogEntry ( )
inlinevirtual

Reimplemented from Adaptation::Icap::Xaction.

Definition at line 181 of file ModXact.h.

References alMaster.

◆ maybeAllocateHttpMsg()

void Adaptation::Icap::ModXact::maybeAllocateHttpMsg ( )
private

◆ maybeLog()

void Adaptation::Icap::Xaction::maybeLog ( )
privateinherited

Definition at line 632 of file Xaction.cc.

References IcapLogfileStatus, icapLogLog(), and LOG_ENABLE.

◆ mayReadMore()

bool Adaptation::Icap::Xaction::mayReadMore ( ) const
protectedinherited

Definition at line 543 of file Xaction.cc.

◆ mustStop()

◆ noteBodyConsumerAborted()

void Adaptation::Icap::ModXact::noteBodyConsumerAborted ( BodyPipe::Pointer  )
virtual

Implements BodyProducer.

Definition at line 1282 of file ModXact.cc.

References ERR_DETAIL_ICAP_XACT_BODY_CONSUMER_ABORT.

◆ noteBodyProducerAborted()

void Adaptation::Icap::ModXact::noteBodyProducerAborted ( BodyPipe::Pointer  )
virtual

Implements BodyConsumer.

Definition at line 1258 of file ModXact.cc.

References Must.

◆ noteBodyProductionEnded()

void Adaptation::Icap::ModXact::noteBodyProductionEnded ( BodyPipe::Pointer  )
virtual

Implements BodyConsumer.

Definition at line 1245 of file ModXact.cc.

References Must.

◆ noteCommClosed()

void Adaptation::Icap::Xaction::noteCommClosed ( const CommCloseCbParams io)
inherited

Definition at line 385 of file Xaction.cc.

References NULL.

Referenced by Adaptation::Icap::Xaction::noteCommConnected().

◆ noteCommConnected()

◆ noteCommRead()

◆ noteCommTimedout()

void Adaptation::Icap::Xaction::noteCommTimedout ( const CommTimeoutCbParams io)
inherited

◆ noteCommWrote()

void Adaptation::Icap::Xaction::noteCommWrote ( const CommIoCbParams io)
inherited

◆ noteInitiatorAborted()

void Adaptation::Icap::Xaction::noteInitiatorAborted ( )
protectedvirtualinherited

Implements Adaptation::Initiate.

Definition at line 572 of file Xaction.cc.

References debugs, ERR_DETAIL_ICAP_INIT_GONE, HERE(), and Adaptation::Icap::xoGone.

◆ noteMoreBodyDataAvailable()

void Adaptation::Icap::ModXact::noteMoreBodyDataAvailable ( BodyPipe::Pointer  )
virtual

Implements BodyConsumer.

Definition at line 1236 of file ModXact.cc.

◆ noteMoreBodySpaceAvailable()

void Adaptation::Icap::ModXact::noteMoreBodySpaceAvailable ( BodyPipe::Pointer  )
virtual

Implements BodyProducer.

Definition at line 1271 of file ModXact.cc.

References Must.

◆ noteServiceAvailable()

void Adaptation::Icap::ModXact::noteServiceAvailable ( )

Definition at line 168 of file ModXact.cc.

References Must.

Referenced by waitForService().

◆ noteServiceReady()

void Adaptation::Icap::ModXact::noteServiceReady ( )

Definition at line 151 of file ModXact.cc.

References Must, and TexcHere.

Referenced by waitForService().

◆ openChunk()

void Adaptation::Icap::ModXact::openChunk ( MemBuf buf,
size_t  chunkSize,
bool  ieof 
)
private

Definition at line 379 of file ModXact.cc.

References buf.

◆ openConnection()

◆ packHead()

void Adaptation::Icap::ModXact::packHead ( MemBuf httpBuf,
const Http::Message head 
)
private

Definition at line 1621 of file ModXact.cc.

References head.

◆ parseBody()

void Adaptation::Icap::ModXact::parseBody ( )
private

Definition at line 1164 of file ModXact.cc.

References debugs, HERE(), and Must.

◆ parseHead()

bool Adaptation::Icap::ModXact::parseHead ( Http::Message head)
private

Definition at line 1112 of file ModXact.cc.

References head.

◆ parseHeaders()

void Adaptation::Icap::ModXact::parseHeaders ( )
private

Definition at line 749 of file ModXact.cc.

References debugs, HERE(), and Must.

◆ parseHttpHead()

void Adaptation::Icap::ModXact::parseHttpHead ( )
private

Definition at line 1064 of file ModXact.cc.

References Must.

◆ parseHttpMsg()

bool Adaptation::Icap::Xaction::parseHttpMsg ( Http::Message msg)
protectedinherited

◆ parseIcapHead()

◆ parseIcapTrailer()

void Adaptation::Icap::ModXact::parseIcapTrailer ( )
private

Parses ICAP trailers and stops parsing, if all trailer data have been received.

Definition at line 881 of file ModXact.cc.

References debugs.

◆ parseMore()

void Adaptation::Icap::ModXact::parseMore ( )
private

Definition at line 653 of file ModXact.cc.

References debugs.

◆ parsePart()

template<class Part >
bool Adaptation::Icap::ModXact::parsePart ( Part *  part,
const char *  description 
)
private

parses a message header or trailer

Returns
true on success
false if more data is needed
Exceptions
TextExceptionon unrecoverable error

Definition at line 1094 of file ModXact.cc.

References debugs, error(), Must, and Http::scNone.

◆ prepBackup()

void Adaptation::Icap::ModXact::prepBackup ( size_t  expectedSize)
private

◆ prepEchoing()

◆ prepPartialBodyEchoing()

void Adaptation::Icap::ModXact::prepPartialBodyEchoing ( uint64_t  pos)
private

Called when we received use-original-body chunk extension in 206 response. We actually start sending (echoing or not) in startSending().

Definition at line 1025 of file ModXact.cc.

References debugs, HERE(), Must, NULL, and Adaptation::Icap::xoPartEcho.

◆ readMore()

void Adaptation::Icap::ModXact::readMore ( )
private

Definition at line 549 of file ModXact.cc.

References debugs, HERE(), and NULL.

◆ repeatable()

bool Adaptation::Icap::Xaction::repeatable ( ) const
inlineinherited

Definition at line 47 of file Xaction.h.

References Adaptation::Icap::Xaction::isRepeatable.

◆ retriable()

bool Adaptation::Icap::Xaction::retriable ( ) const
inlineinherited

Definition at line 46 of file Xaction.h.

References Adaptation::Icap::Xaction::isRetriable.

◆ scheduleRead()

void Adaptation::Icap::Xaction::scheduleRead ( )
protectedinherited

Definition at line 440 of file Xaction.cc.

References JobCallback, Must, Adaptation::Icap::Xaction::noteCommRead(), and Comm::Read().

◆ scheduleWrite()

void Adaptation::Icap::Xaction::scheduleWrite ( MemBuf buf)
protectedinherited

◆ sendAnswer()

void Adaptation::Initiate::sendAnswer ( const Answer answer)
protectedinherited

Definition at line 79 of file Initiate.cc.

References Adaptation::Initiator::noteAdaptationAnswer(), and ScheduleCallHere.

◆ service()

Adaptation::Icap::ServiceRep & Adaptation::Icap::Xaction::service ( )
inherited

Definition at line 123 of file Xaction.cc.

References Must, and NULL.

Referenced by Adaptation::Icap::ConnWaiterDialer::ConnWaiterDialer().

◆ setOutcome()

void Adaptation::Icap::Xaction::setOutcome ( const XactOutcome xo)
protectedinherited

Definition at line 585 of file Xaction.cc.

References debugs, HERE(), and Adaptation::Icap::xoUnknown.

◆ shouldAllow204()

bool Adaptation::Icap::ModXact::shouldAllow204 ( )
private

Definition at line 1659 of file ModXact.cc.

◆ shouldAllow206any()

bool Adaptation::Icap::ModXact::shouldAllow206any ( )
private

◆ shouldAllow206in()

bool Adaptation::Icap::ModXact::shouldAllow206in ( )
private

Definition at line 1675 of file ModXact.cc.

◆ shouldAllow206out()

bool Adaptation::Icap::ModXact::shouldAllow206out ( )
private

Definition at line 1681 of file ModXact.cc.

◆ start()

void Adaptation::Icap::ModXact::start ( )
privatevirtual

◆ Start()

◆ startReading()

void Adaptation::Icap::ModXact::startReading ( )
private

Definition at line 538 of file ModXact.cc.

References Must.

◆ startSending()

void Adaptation::Icap::ModXact::startSending ( )
private

Definition at line 772 of file ModXact.cc.

References Adaptation::Answer::Forward().

◆ startWriting()

void Adaptation::Icap::ModXact::startWriting ( )
private

Definition at line 179 of file ModXact.cc.

◆ status()

const char * Adaptation::Icap::Xaction::status ( ) const
protectedvirtualinherited

for debugging, starts with space

Reimplemented from Adaptation::Initiate.

Definition at line 663 of file Xaction.cc.

References buf.

Referenced by ModXact().

◆ stopBackup()

void Adaptation::Icap::ModXact::stopBackup ( )
private

Definition at line 521 of file ModXact.cc.

References debugs, and HERE().

◆ stopConsumingFrom()

◆ stopParsing()

void Adaptation::Icap::ModXact::stopParsing ( const bool  checkUnparsedData = true)
private

Definition at line 1216 of file ModXact.cc.

References debugs, and Must.

◆ stopProducingFor()

void BodyProducer::stopProducingFor ( RefCount< BodyPipe > &  p,
bool  atEof 
)
protectedinherited

◆ stopReceiving()

void Adaptation::Icap::ModXact::stopReceiving ( )
private

◆ stopSending()

void Adaptation::Icap::ModXact::stopSending ( bool  nicely)
private

Definition at line 617 of file ModXact.cc.

References debugs, HERE(), Must, and NULL.

◆ stopWriting()

void Adaptation::Icap::ModXact::stopWriting ( bool  nicely)
private

Definition at line 489 of file ModXact.cc.

References debugs, HERE(), and NULL.

◆ swanSong()

void Adaptation::Icap::ModXact::swanSong ( )
privatevirtual

◆ tellQueryAborted() [1/2]

void Adaptation::Icap::Xaction::tellQueryAborted ( )
privateinherited

Definition at line 619 of file Xaction.cc.

References CallJobHere1.

◆ tellQueryAborted() [2/2]

void Adaptation::Initiate::tellQueryAborted ( bool  final)
protectedinherited

Definition at line 87 of file Initiate.cc.

References Adaptation::Answer::Error().

◆ toCbdata()

virtual void* CbdataParent::toCbdata ( )
pure virtualinherited

◆ updateSources()

void Adaptation::Icap::ModXact::updateSources ( )
private

Definition at line 2008 of file ModXact.cc.

References Must, Http::Message::srcIcap, and Http::Message::srcIcaps.

◆ updateTimeout()

void Adaptation::Icap::Xaction::updateTimeout ( )
protectedinherited

◆ validate200Ok()

bool Adaptation::Icap::ModXact::validate200Ok ( )
private

Definition at line 890 of file ModXact.cc.

References method, Adaptation::methodReqmod, and Adaptation::methodRespmod.

◆ virginBodyEndReached()

bool Adaptation::Icap::ModXact::virginBodyEndReached ( const VirginBodyAct act) const
private

◆ virginConsume()

void Adaptation::Icap::ModXact::virginConsume ( )
private

◆ virginContentData()

const char * Adaptation::Icap::ModXact::virginContentData ( const VirginBodyAct act) const
private

◆ virginContentSize()

size_t Adaptation::Icap::ModXact::virginContentSize ( const VirginBodyAct act) const
private

◆ virginRequest()

const HttpRequest & Adaptation::Icap::ModXact::virginRequest ( ) const
private

Definition at line 389 of file ModXact.cc.

References Must, and request().

◆ waitForService()

void Adaptation::Icap::ModXact::waitForService ( )
private

◆ writeMore()

void Adaptation::Icap::ModXact::writeMore ( )
private

Definition at line 239 of file ModXact.cc.

References debugs, HERE(), Must, NULL, and TexcHere.

◆ writePreviewBody()

void Adaptation::Icap::ModXact::writePreviewBody ( )
private

Definition at line 277 of file ModXact.cc.

References debugs, HERE(), min(), Must, NULL, size, and size_t.

◆ writePrimeBody()

void Adaptation::Icap::ModXact::writePrimeBody ( )
private

Definition at line 308 of file ModXact.cc.

References debugs, HERE(), Must, size, and size_t.

◆ writeSomeBody()

void Adaptation::Icap::ModXact::writeSomeBody ( const char *  label,
size_t  size 
)
private

Member Data Documentation

◆ adapted

InOut Adaptation::Icap::ModXact::adapted

Definition at line 171 of file ModXact.h.

◆ adaptHistoryId

int Adaptation::Icap::ModXact::adaptHistoryId
private

Definition at line 318 of file ModXact.h.

◆ al

AccessLogEntry& Adaptation::Icap::Xaction::al
protectedinherited

Definition at line 149 of file Xaction.h.

◆ alep

AccessLogEntry::Pointer Adaptation::Icap::Xaction::alep
protectedinherited

Definition at line 148 of file Xaction.h.

◆ alMaster

AccessLogEntry::Pointer Adaptation::Icap::ModXact::alMaster
private

Definition at line 372 of file ModXact.h.

Referenced by masterLogEntry().

◆ attempts

int Adaptation::Icap::Xaction::attempts
inherited

Definition at line 61 of file Xaction.h.

Referenced by Adaptation::Icap::Launcher::launchXaction().

◆ bodyParser

Http1::TeChunkedParser* Adaptation::Icap::ModXact::bodyParser
private

Definition at line 302 of file ModXact.h.

◆ canStartBypass

bool Adaptation::Icap::ModXact::canStartBypass
private

Definition at line 304 of file ModXact.h.

◆ closer

AsyncCall::Pointer Adaptation::Icap::Xaction::closer
protectedinherited

Definition at line 146 of file Xaction.h.

◆ commEof

bool Adaptation::Icap::Xaction::commEof
protectedinherited

Definition at line 134 of file Xaction.h.

Referenced by Adaptation::Icap::OptXact::doneReading(), and doneReading().

◆ connection

Comm::ConnectionPointer Adaptation::Icap::Xaction::connection
protectedinherited

Definition at line 130 of file Xaction.h.

◆ connector

AsyncCall::Pointer Adaptation::Icap::Xaction::connector
protectedinherited

Definition at line 143 of file Xaction.h.

◆ cs

Comm::ConnOpener::Pointer Adaptation::Icap::Xaction::cs
privateinherited

Definition at line 156 of file Xaction.h.

◆ extensionParser

ChunkExtensionValueParser Adaptation::Icap::ModXact::extensionParser
private

Definition at line 322 of file ModXact.h.

◆ icap_tio_finish

timeval Adaptation::Icap::Xaction::icap_tio_finish
protectedinherited

Definition at line 153 of file Xaction.h.

Referenced by Adaptation::Icap::Xaction::Xaction().

◆ icap_tio_start

timeval Adaptation::Icap::Xaction::icap_tio_start
protectedinherited

Definition at line 152 of file Xaction.h.

Referenced by Adaptation::Icap::Xaction::Xaction().

◆ icap_tr_start

timeval Adaptation::Icap::Xaction::icap_tr_start
protectedinherited

Definition at line 151 of file Xaction.h.

Referenced by Adaptation::Icap::Xaction::Xaction().

◆ icapReply

HttpReply::Pointer Adaptation::Icap::Xaction::icapReply
inherited

Definition at line 58 of file Xaction.h.

Referenced by ModXact().

◆ icapRequest

HttpRequest* Adaptation::Icap::Xaction::icapRequest
inherited

Definition at line 57 of file Xaction.h.

Referenced by Adaptation::Icap::Xaction::Xaction().

◆ id

const InstanceId<AsyncJob> AsyncJob::id
protectedinherited

Definition at line 72 of file AsyncJob.h.

◆ ignoreLastWrite

bool Adaptation::Icap::Xaction::ignoreLastWrite
protectedinherited

Definition at line 138 of file Xaction.h.

◆ inCall

AsyncCall::Pointer AsyncJob::inCall
protectedinherited

◆ isRepeatable

bool Adaptation::Icap::Xaction::isRepeatable
protectedinherited

Definition at line 137 of file Xaction.h.

Referenced by Adaptation::Icap::Xaction::repeatable().

◆ isRetriable

bool Adaptation::Icap::Xaction::isRetriable
protectedinherited

Definition at line 136 of file Xaction.h.

Referenced by Adaptation::Icap::Xaction::retriable().

◆ preview

Preview Adaptation::Icap::ModXact::preview
private

Definition at line 300 of file ModXact.h.

◆ protectGroupBypass

bool Adaptation::Icap::ModXact::protectGroupBypass
private

Definition at line 305 of file ModXact.h.

◆ readBuf

SBuf Adaptation::Icap::Xaction::readBuf
protectedinherited

Definition at line 133 of file Xaction.h.

◆ reader

AsyncCall::Pointer Adaptation::Icap::Xaction::reader
protectedinherited

Definition at line 144 of file Xaction.h.

◆ replyHttpBodySize

int64_t Adaptation::Icap::ModXact::replyHttpBodySize
private

size of dechunked HTTP body in ICAP reply or -1 if there is not any encapsulated message data

Definition at line 316 of file ModXact.h.

◆ replyHttpHeaderSize

int64_t Adaptation::Icap::ModXact::replyHttpHeaderSize
private

size of HTTP header in ICAP reply or -1 if there is not any encapsulated message data

Definition at line 311 of file ModXact.h.

◆ reuseConnection

bool Adaptation::Icap::Xaction::reuseConnection
protectedinherited

Definition at line 135 of file Xaction.h.

◆ securer

AsyncCall::Pointer Adaptation::Icap::Xaction::securer
privateinherited

Definition at line 157 of file Xaction.h.

◆ state

class Adaptation::Icap::ModXact::State Adaptation::Icap::ModXact::state
private

Referenced by doneReading(), and doneWriting().

◆ stopReason

const char* Adaptation::Icap::Xaction::stopReason
protectedinherited

Definition at line 140 of file Xaction.h.

◆ theInitiator

CbcPointer<Initiator> Adaptation::Initiate::theInitiator
protectedinherited

Definition at line 51 of file Initiate.h.

◆ theService

Adaptation::Icap::ServiceRep::Pointer Adaptation::Icap::Xaction::theService
protectedinherited

Definition at line 131 of file Xaction.h.

◆ trailerParser

TrailerParser* Adaptation::Icap::ModXact::trailerParser
private

Definition at line 320 of file ModXact.h.

◆ typeName

◆ virgin

InOut Adaptation::Icap::ModXact::virgin

Definition at line 170 of file ModXact.h.

Referenced by ModXact().

◆ virginBody

SizedEstimate Adaptation::Icap::ModXact::virginBody
private

Definition at line 296 of file ModXact.h.

◆ virginBodySending

VirginBodyAct Adaptation::Icap::ModXact::virginBodySending
private

Definition at line 298 of file ModXact.h.

◆ virginBodyWriting

VirginBodyAct Adaptation::Icap::ModXact::virginBodyWriting
private

Definition at line 297 of file ModXact.h.

◆ virginConsumed

uint64_t Adaptation::Icap::ModXact::virginConsumed
private

Definition at line 299 of file ModXact.h.

◆ writer

AsyncCall::Pointer Adaptation::Icap::Xaction::writer
protectedinherited

Definition at line 145 of file Xaction.h.


The documentation for this class was generated from the following files:

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors