>qos Client connection TOS/DSCP value set by Squid
>nfmark Client connection netfilter packet MARK set by Squid
+ transport::>connection_id Identifies a transport connection
+ accepted by Squid (e.g., a connection carrying the
+ logged HTTP request). Currently, Squid only supports
+ TCP transport connections.
+
+ The logged identifier is an unsigned integer. These
+ IDs are guaranteed to monotonically increase within a
+ single worker process lifetime, with higher values
+ corresponding to connections that were accepted later.
+ Many IDs are skipped (i.e. never logged). Concurrent
+ workers and restarted workers use similar, partially
+ overlapping sequences of IDs.
+
la Local listening IP address the client connection was connected to.
lp Local listening port number the client connection was connected to.
#include "SquidTime.h"
#include <ostream>
-InstanceIdDefinitions(Comm::Connection, "conn");
+InstanceIdDefinitions(Comm::Connection, "conn", uint64_t);
class CachePeer;
bool
Eui::Eui64 remoteEui64;
#endif
- InstanceId<Connection> id;
+ InstanceId<Connection, uint64_t> id;
private:
/** cache_peer data object (if any) */
LFT_CLIENT_LOCAL_TOS,
LFT_CLIENT_LOCAL_NFMARK,
+ LFT_TRANSPORT_CLIENT_CONNECTION_ID,
+
LFT_CLIENT_HANDSHAKE,
/* client connection local squid.conf details */
}
break;
+ case LFT_TRANSPORT_CLIENT_CONNECTION_ID:
+ if (al->tcpClient) {
+ outUint64 = al->tcpClient->id.value;
+ doUint64 = true;
+ }
+ break;
+
case LFT_CLIENT_LOCAL_NFMARK:
if (al->tcpClient) {
sb.appendf("0x%x", al->tcpClient->nfmark);
TokenTableEntry(">h", LFT_PROXY_PROTOCOL_RECEIVED_HEADER),
};
+static TokenTableEntry TokenTableTransport[] = {
+ TokenTableEntry(">connection_id", LFT_TRANSPORT_CLIENT_CONNECTION_ID),
+};
+
#if USE_ADAPTATION
static TokenTableEntry TokenTableAdapt[] = {
TokenTableEntry("all_trs", LFT_ADAPTATION_ALL_XACT_TIMES),
TheConfig.registerTokens(SBuf("ssl"),::Format::TokenTableSsl);
#endif
TheConfig.registerTokens(SBuf("proxy_protocol"), ::Format::TokenTableProxyProtocol);
+ TheConfig.registerTokens(SBuf("transport"), ::Format::TokenTableTransport);
}
/// Scans a token table to see if the next token exists there
void Comm::Connection::setPeer(CachePeer * p) STUB
ScopedId Comm::Connection::codeContextGist() const STUB_RETVAL(id.detach())
std::ostream &Comm::Connection::detailCodeContext(std::ostream &os) const STUB_RETVAL(os)
-InstanceIdDefinitions(Comm::Connection, "conn");
+InstanceIdDefinitions(Comm::Connection, "conn", uint64_t);
#include "comm/ConnOpener.h"
CBDATA_NAMESPACED_CLASS_INIT(Comm, ConnOpener);