From df7f19eb8c4a8b2b43efd7a0d08457a7f15fd600 Mon Sep 17 00:00:00 2001 From: Stanislav Chzhen Date: Mon, 15 Apr 2024 15:07:58 +0300 Subject: [PATCH] Pull request 2199: 5812-query-log-client-id Updates #5812. Squashed commit of the following: commit 43aa147fe125f85af4767f413c3c73cea5a4db6c Merge: 97ab71284 36986a8be Author: Stanislav Chzhen Date: Mon Apr 15 15:00:36 2024 +0300 Merge branch 'master' into 5812-query-log-client-id commit 97ab71284e6e215d0e8e9c4dd9d2ba97ef791ad3 Author: Stanislav Chzhen Date: Thu Apr 11 14:22:58 2024 +0300 all: upd chlog commit 525ac91977cfb36dc8f862fb36df11071f77c29d Merge: 5d4db3f2e ff7c715c5 Author: Stanislav Chzhen Date: Thu Apr 11 14:15:28 2024 +0300 Merge branch 'master' into 5812-query-log-client-id commit 5d4db3f2ec42a8533e41dc9547bf061cd96451f2 Author: Stanislav Chzhen Date: Wed Apr 10 16:19:11 2024 +0300 dnsforward: client id priority --- CHANGELOG.md | 2 ++ internal/dnsforward/stats.go | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09d21602..4a686982 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,7 @@ NOTE: Add new changes BELOW THIS COMMENT. ### Fixed +- Ignoring query log for clients with ClientID set ([#5812]). - Subdomains of `in-addr.arpa` and `ip6.arpa` containing zero-length prefix incorrectly considered invalid when specified for private RDNS upstream servers ([#6854]). @@ -36,6 +37,7 @@ NOTE: Add new changes BELOW THIS COMMENT. ([#6875]). [#5345]: https://github.com/AdguardTeam/AdGuardHome/issues/5345 +[#5812]: https://github.com/AdguardTeam/AdGuardHome/issues/5812 [#6854]: https://github.com/AdguardTeam/AdGuardHome/issues/6854 [#6875]: https://github.com/AdguardTeam/AdGuardHome/issues/6875 diff --git a/internal/dnsforward/stats.go b/internal/dnsforward/stats.go index 220f151c..4344380d 100644 --- a/internal/dnsforward/stats.go +++ b/internal/dnsforward/stats.go @@ -29,7 +29,13 @@ func (s *Server) processQueryLogsAndStats(dctx *dnsContext) (rc resultCode) { log.Debug("dnsforward: client ip for stats and querylog: %s", ipStr) - ids := []string{ipStr, dctx.clientID} + ids := []string{ipStr} + if dctx.clientID != "" { + // Use the ClientID first because it has a higher priority. Filters + // have the same priority, see applyAdditionalFiltering. + ids = []string{dctx.clientID, ipStr} + } + qt, cl := q.Qtype, q.Qclass // Synchronize access to s.queryLog and s.stats so they won't be suddenly