From b27a978b590986054f7b4f555214a6d37354ef96 Mon Sep 17 00:00:00 2001 From: Amos Jeffries Date: Tue, 2 Jun 2026 20:20:46 +1200 Subject: [PATCH 1/4] Add format codes for local FQDN --- src/format/ByteCode.h | 2 ++ src/format/Format.cc | 13 +++++++++++++ src/format/Token.cc | 7 +++++-- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/format/ByteCode.h b/src/format/ByteCode.h index 442f77d29e6..006dbe5111c 100644 --- a/src/format/ByteCode.h +++ b/src/format/ByteCode.h @@ -43,6 +43,7 @@ typedef enum { /* client TCP connection local end details */ LFT_CLIENT_LOCAL_IP, + LFT_CLIENT_LOCAL_FQDN, LFT_CLIENT_LOCAL_PORT, /*LFT_CLIENT_LOCAL_FQDN, (rDNS) */ LFT_CLIENT_LOCAL_TOS, @@ -64,6 +65,7 @@ typedef enum { /* server TCP connection local end details */ LFT_SERVER_LOCAL_IP, + LFT_SERVER_LOCAL_FQDN, LFT_SERVER_LOCAL_IP_OLD_27, LFT_SERVER_LOCAL_PORT, LFT_SERVER_LOCAL_TOS, diff --git a/src/format/Format.cc b/src/format/Format.cc index 445a20712f3..2e860e3d7f1 100644 --- a/src/format/Format.cc +++ b/src/format/Format.cc @@ -17,6 +17,7 @@ #include "format/Format.h" #include "format/Quoting.h" #include "format/Token.h" +#include "fqdncache.h" #include "http/Stream.h" #include "HttpRequest.h" #include "MemBuf.h" @@ -491,6 +492,12 @@ Format::Format::assemble(MemBuf &mb, const AccessLogEntry::Pointer &al, int logS out = al->tcpClient->local.toStr(tmp, sizeof(tmp)); break; + case LFT_CLIENT_LOCAL_FQDN: + // May be too late for ours, but FQDN_LOOKUP_IF_MISS might help the next caller. + if (al->tcpClient) + out = fqdncache_gethostbyaddr(al->tcpClient->local, FQDN_LOOKUP_IF_MISS); + break; + case LFT_CLIENT_LOCAL_TOS: if (al->tcpClient) { sb.appendf("0x%x", static_cast(al->tcpClient->tos)); @@ -532,6 +539,12 @@ Format::Format::assemble(MemBuf &mb, const AccessLogEntry::Pointer &al, int logS out = al->hier.tcpServer->local.toStr(tmp, sizeof(tmp)); break; + case LFT_SERVER_LOCAL_FQDN: + // May be too late for ours, but FQDN_LOOKUP_IF_MISS might help the next caller. + if (al->hier.tcpServer) + out = fqdncache_gethostbyaddr(al->hier.tcpServer->local, FQDN_LOOKUP_IF_MISS); + break; + case LFT_SERVER_LOCAL_PORT: if (al->hier.tcpServer) { outint = al->hier.tcpServer->local.port(); diff --git a/src/format/Token.cc b/src/format/Token.cc index 36b6a351562..2a06e317fed 100644 --- a/src/format/Token.cc +++ b/src/format/Token.cc @@ -49,12 +49,15 @@ static TokenTableEntry TokenTable1C[] = { static TokenTableEntry TokenTable2C[] = { TokenTableEntry(">la", LFT_CLIENT_LOCAL_IP), - TokenTableEntry("la", LFT_LOCAL_LISTENING_IP), + TokenTableEntry(">lA", LFT_CLIENT_LOCAL_FQDN), TokenTableEntry(">lp", LFT_CLIENT_LOCAL_PORT), - TokenTableEntry("lp", LFT_LOCAL_LISTENING_PORT), + + TokenTableEntry("la", LFT_LOCAL_LISTENING_IP), /*TokenTableEntry( "lA", LFT_LOCAL_NAME ), */ + TokenTableEntry("lp", LFT_LOCAL_LISTENING_PORT), TokenTableEntry(" Date: Tue, 2 Jun 2026 20:28:16 +1200 Subject: [PATCH 2/4] Add documentation --- src/cf.data.pre | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/cf.data.pre b/src/cf.data.pre index 51c90a376e8..dcea849a877 100644 --- a/src/cf.data.pre +++ b/src/cf.data.pre @@ -4781,6 +4781,7 @@ DOC_START >p Client source port >eui Client source EUI (MAC address, EUI-48 or EUI-64 identifier) >la Local IP address the client connected to + >lA Local FQDN for address the client connected to >lp Local port number the client connected to >qos Client connection TOS/DSCP value set by Squid >nfmark Client connection netfilter packet MARK set by Squid @@ -4805,6 +4806,7 @@ DOC_START Date: Fri, 12 Jun 2026 20:48:12 +1200 Subject: [PATCH 3/4] Apply suggestion from @rousskov Co-authored-by: Alex Rousskov --- src/format/ByteCode.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/format/ByteCode.h b/src/format/ByteCode.h index 006dbe5111c..744ce2707a5 100644 --- a/src/format/ByteCode.h +++ b/src/format/ByteCode.h @@ -45,7 +45,6 @@ typedef enum { LFT_CLIENT_LOCAL_IP, LFT_CLIENT_LOCAL_FQDN, LFT_CLIENT_LOCAL_PORT, - /*LFT_CLIENT_LOCAL_FQDN, (rDNS) */ LFT_CLIENT_LOCAL_TOS, LFT_CLIENT_LOCAL_NFMARK, From e136b03efa5657589a157712fc59003a993d6c62 Mon Sep 17 00:00:00 2001 From: Amos Jeffries Date: Fri, 12 Jun 2026 20:50:59 +1200 Subject: [PATCH 4/4] Apply suggestion from @rousskov Co-authored-by: Alex Rousskov --- src/format/Token.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/src/format/Token.cc b/src/format/Token.cc index 2a06e317fed..baccd9cac16 100644 --- a/src/format/Token.cc +++ b/src/format/Token.cc @@ -53,7 +53,6 @@ static TokenTableEntry TokenTable2C[] = { TokenTableEntry(">lp", LFT_CLIENT_LOCAL_PORT), TokenTableEntry("la", LFT_LOCAL_LISTENING_IP), - /*TokenTableEntry( "lA", LFT_LOCAL_NAME ), */ TokenTableEntry("lp", LFT_LOCAL_LISTENING_PORT), TokenTableEntry("