#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 ()
 
 ~AccessLogEntry () override
 
std::ostream & detailCodeContext (std::ostream &os) const override
 appends human-friendly context description line(s) to a cache.log record More...
 
ScopedId codeContextGist () const override
 
void getLogClientIp (char *buf, size_t bufsz) const
 
const char * getLogClientFqdn (char *buf, size_t bufSize) 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...
 
const Errorerror () const
 
void updateError (const Error &)
 sets (or updates the already stored) transaction error as needed 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
 
int requestAttempts = 0
 
ProxyProtocol::HeaderPointer proxyProtocolHeader
 see ConnStateData::proxyProtocolHeader_ More...
 
class AccessLogEntry::IcapLogEntry icap
 
Stopwatch busyTime
 time spent in this context (see also: busy_time) More...
 

Static Private Member Functions

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

Private Attributes

Error error_
 
SBuf virginUrlForMissingRequest_
 

Detailed Description

Definition at line 40 of file AccessLogEntry.h.

Member Typedef Documentation

◆ Pointer

Definition at line 44 of file AccessLogEntry.h.

Constructor & Destructor Documentation

◆ AccessLogEntry()

AccessLogEntry::AccessLogEntry ( )

Definition at line 123 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 146 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 189 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 55 of file CodeContext.cc.

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

Referenced by CodeContext::Reset().

◆ error()

const Error * AccessLogEntry::error ( ) const
Returns
stored transaction error information (or nil)

Definition at line 201 of file AccessLogEntry.cc.

References HttpRequest::error, error_, and request.

Referenced by Format::Format::assemble().

◆ 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, and Instance().

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

◆ getClientIdent()

◆ getExtUser()

◆ getLogClientFqdn()

const char * AccessLogEntry::getLogClientFqdn ( char *  buf,
size_t  bufSize 
) const

%>A: Compute client FQDN if possible, using the supplied buf if needed.

Returns
result for immediate logging (not necessarily pointing to buf) Side effect: Enables reverse DNS lookups of future client addresses.

Definition at line 51 of file AccessLogEntry.cc.

References cache, AccessLogEntry::CacheDetails::caddr, FQDN_LOOKUP_IF_MISS, fqdncache_gethostbyaddr(), and Dns::ResolveClientAddressesAsap.

Referenced by Format::Format::assemble(), and Log::Format::SquidIcap().

◆ 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 68 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()

◆ updateError()

Member Data Documentation

◆ adapt

◆ adapted_request

◆ busyTime

Stopwatch CodeContext::busyTime
inherited

Definition at line 76 of file CodeContext.h.

Referenced by Format::Format::assemble(), and CodeContext::Entering().

◆ cache

◆ error_

Error AccessLogEntry::error_
private

transaction problem if set, overrides (and should eventually replace) request->error

Definition at line 279 of file AccessLogEntry.h.

Referenced by error(), and updateError().

◆ headers

◆ hier

◆ htcp

◆ http

◆ icap

◆ icp

◆ lastAclData

SBuf AccessLogEntry::lastAclData

Definition at line 192 of file AccessLogEntry.h.

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

◆ lastAclName

const char* AccessLogEntry::lastAclName = nullptr

Definition at line 191 of file AccessLogEntry.h.

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

◆ 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 201 of file AccessLogEntry.h.

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

◆ proxyProtocolHeader

◆ reply

◆ request

◆ requestAttempts

int AccessLogEntry::requestAttempts = 0

The total number of finished attempts to establish a connection. Excludes discarded HappyConnOpener attempts. Includes failed HappyConnOpener attempts and [always successful] persistent connection reuse. See request_attempts.

Definition at line 207 of file AccessLogEntry.h.

Referenced by Format::Format::assemble(), FwdState::updateAttempts(), and TunnelStateData::updateAttempts().

◆ 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 283 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