#include <AccessLogEntry.h>

Inheritance diagram for AccessLogEntry:
Collaboration diagram for AccessLogEntry:

Classes

class  AdaptationDetails
 This subclass holds general adaptation log info. TODO: Inner class declarations should be moved outside. More...
 
class  CacheDetails
 This subclass holds log info for Squid internal stats TODO: Inner class declarations should be moved outside TODO: some details relevant to particular protocols need shuffling to other sub-classes TODO: this object field need renaming to 'squid' or something. More...
 
class  Headers
 This subclass holds log info for various headers in raw format TODO: shuffle this to the relevant protocol section. More...
 
class  HtcpDetails
 This subclass holds log info for HTCP protocol TODO: Inner class declarations should be moved outside. More...
 
class  HttpDetails
 This subclass holds log info for HTTP protocol TODO: Inner class declarations should be moved outside TODO: details of HTTP held in the parent class need moving into here. More...
 
class  IcapLogEntry
 This subclass holds log info for ICAP part of request TODO: Inner class declarations should be moved outside. More...
 
class  IcpDetails
 This subclass holds log info for ICP protocol TODO: Inner class declarations should be moved outside. More...
 
class  SslDetails
 logging information specific to the SSL protocol More...
 

Public Types

typedef RefCount< AccessLogEntryPointer
 

Public Member Functions

 AccessLogEntry ()
 
virtual ~AccessLogEntry ()
 
virtual std::ostream & detailCodeContext (std::ostream &os) const override
 appends human-friendly context description line(s) to a cache.log record More...
 
virtual ScopedId codeContextGist () const override
 
void getLogClientIp (char *buf, size_t bufsz) const
 
const char * getClientIdent () const
 Fetch the client IDENT string, or nil if none is available. More...
 
const char * getExtUser () const
 Fetch the external ACL provided 'user=' string, or nil if none is available. More...
 
bool hasLogMethod () const
 whether we know what the request method is More...
 
SBuf getLogMethod () const
 Fetch the transaction method string (ICP opcode, HTCP opcode or HTTP method) More...
 
void syncNotes (HttpRequest *request)
 
void packReplyHeaders (MemBuf &mb) const
 dump all reply headers (for sending or risky logging) More...
 
const SBufeffectiveVirginUrl () const
 
void setVirginUrlForMissingRequest (const SBuf &vu)
 Remember Client URI (or equivalent) when there is no HttpRequest. More...
 

Static Public Member Functions

static const PointerCurrent ()
 
static void Reset ()
 forgets the current context, setting it to nil/unknown More...
 
static void Reset (const Pointer)
 changes the current context; nil argument sets it to nil/unknown More...
 

Public Attributes

SBuf url
 
Comm::ConnectionPointer tcpClient
 TCP/IP level details about the client connection. More...
 
class AccessLogEntry::HttpDetails http
 
class AccessLogEntry::IcpDetails icp
 
class AccessLogEntry::HtcpDetails htcp
 
class AccessLogEntry::SslDetails ssl
 
class AccessLogEntry::CacheDetails cache
 
class AccessLogEntry::Headers headers
 
class AccessLogEntry::AdaptationDetails adapt
 
const char * lastAclName = nullptr
 string for external_acl_type ACL format code More...
 
SBuf lastAclData
 string for external_acl_type DATA format code More...
 
HierarchyLogEntry hier
 
HttpReplyPointer reply
 
HttpRequestrequest = nullptr
 
HttpRequestadapted_request = nullptr
 
NotePairs::Pointer notes
 
ProxyProtocol::HeaderPointer proxyProtocolHeader
 see ConnStateData::proxyProtocolHeader_ More...
 
class AccessLogEntry::IcapLogEntry icap
 

Static Private Member Functions

static void ForgetCurrent ()
 
static void Entering (const Pointer &codeCtx)
 
static void Leaving ()
 

Private Attributes

SBuf virginUrlForMissingRequest_
 

Detailed Description

Definition at line 39 of file AccessLogEntry.h.

Member Typedef Documentation

◆ Pointer

Definition at line 43 of file AccessLogEntry.h.

Constructor & Destructor Documentation

◆ AccessLogEntry()

AccessLogEntry::AccessLogEntry ( )

Definition at line 101 of file AccessLogEntry.cc.

◆ ~AccessLogEntry()

Member Function Documentation

◆ codeContextGist()

ScopedId AccessLogEntry::codeContextGist ( ) const
overridevirtual
Returns
a small, permanent ID of the current context gists persist forever and are suitable for passing to other SMP workers

Implements CodeContext.

Definition at line 124 of file AccessLogEntry.cc.

References HttpRequest::masterXaction, and request.

Referenced by htcpSpecifier::codeContextGist().

◆ Current()

◆ detailCodeContext()

std::ostream & AccessLogEntry::detailCodeContext ( std::ostream &  os) const
overridevirtual

◆ effectiveVirginUrl()

const SBuf * AccessLogEntry::effectiveVirginUrl ( ) const

Effective URI of the received client (or equivalent) HTTP request or, in rare cases where that information was not collected, a nil pointer. Receiving errors are represented by "error:..." URIs. Adaptations and redirections do not affect this URI.

Definition at line 167 of file AccessLogEntry.cc.

References HttpRequest::effectiveRequestUri(), SBuf::isEmpty(), request, and virginUrlForMissingRequest_.

Referenced by Format::Format::assemble(), and detailCodeContext().

◆ Entering()

void CodeContext::Entering ( const Pointer codeCtx)
staticprivateinherited

Switches the current context to the given known context. Improves debugging output by replacing omni-directional "Reset" with directional "Entering".

Definition at line 54 of file CodeContext.cc.

References CodeContext::codeContextGist(), debugs, CodeContext::ForgetCurrent(), and Instance().

Referenced by CodeContext::Reset().

◆ ForgetCurrent()

void CodeContext::ForgetCurrent ( )
staticprivateinherited

Forgets the current known context, possibly triggering its destruction. Preserves the gist of the being-forgotten context during its destruction. Knows nothing about the next context – the caller must set it.

Definition at line 42 of file CodeContext.cc.

References assert, FadingCodeContext::gist, and Instance().

Referenced by CodeContext::Entering(), and CodeContext::Leaving().

◆ getClientIdent()

◆ getExtUser()

◆ getLogClientIp()

void AccessLogEntry::getLogClientIp ( char *  buf,
size_t  bufsz 
) const

◆ getLogMethod()

◆ hasLogMethod()

bool AccessLogEntry::hasLogMethod ( ) const
inline

◆ Leaving()

void CodeContext::Leaving ( )
staticprivateinherited

Forgets the current known context. Improves debugging output by replacing omni-directional "Reset" with directional "Leaving".

Definition at line 66 of file CodeContext.cc.

References debugs, CodeContext::ForgetCurrent(), and Instance().

Referenced by CodeContext::Reset().

◆ packReplyHeaders()

void AccessLogEntry::packReplyHeaders ( MemBuf mb) const

◆ Reset() [1/2]

◆ Reset() [2/2]

void CodeContext::Reset ( const Pointer  codeCtx)
staticinherited

◆ setVirginUrlForMissingRequest()

void AccessLogEntry::setVirginUrlForMissingRequest ( const SBuf vu)
inline

◆ syncNotes()

Member Data Documentation

◆ adapt

◆ adapted_request

◆ cache

◆ headers

◆ hier

◆ htcp

◆ http

◆ icap

◆ icp

◆ lastAclData

SBuf AccessLogEntry::lastAclData

Definition at line 186 of file AccessLogEntry.h.

Referenced by Format::Format::assemble(), and makeExternalAclKey().

◆ lastAclName

const char* AccessLogEntry::lastAclName = nullptr

Definition at line 185 of file AccessLogEntry.h.

Referenced by Format::Format::assemble(), makeExternalAclKey(), and ~AccessLogEntry().

◆ notes

NotePairs::Pointer AccessLogEntry::notes

key:value pairs set by squid.conf note directive and key=value pairs returned from URL rewrite/redirect helper

Definition at line 195 of file AccessLogEntry.h.

Referenced by Format::Format::assemble(), and syncNotes().

◆ proxyProtocolHeader

◆ reply

◆ request

◆ ssl

◆ tcpClient

◆ url

◆ virginUrlForMissingRequest_

SBuf AccessLogEntry::virginUrlForMissingRequest_
private

Client URI (or equivalent) for effectiveVirginUrl() when HttpRequest is missing. This member is ignored unless the request member is nil.

Definition at line 261 of file AccessLogEntry.h.

Referenced by effectiveVirginUrl(), and setVirginUrlForMissingRequest().


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

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors