Files
DL6ER 5ba93c464a Keep filtering queries hidden by dns.ignoreLocalhost
`dns.ignoreLocalhost` returned from `_FTL_new_query()` before the blocking
check ever ran, so queries from `127.0.0.1` and `::1` were forwarded upstream
without ever being compared against gravity or the deny lists. The option is
described as *hiding* these queries, so the lists are expected to still apply -
and trying a blocked domain on the Pi-hole host itself is usually the first
thing one does.

These queries are now processed like every other query and only carry a
`hidden` flag. It keeps them out of every statistic, out of the in-memory
database - and hence out of the query log and the long-term database, which
are both fed from it - and it tells garbage collection to give nothing back
for them, as nothing was ever counted for them in the first place. Their
client and domain records stay alive through a separate `hiddencount`, which
is a reference count rather than a statistic.

A hidden query being a regular query object means that everything running on
the reply keeps working for it, deep CNAME inspection in particular.

Signed-off-by: DL6ER <dl6er@dl6er.de>
2026-08-09 10:59:50 +02:00
..
2026-06-08 19:55:34 +02:00