]>
git.ipfire.org Git - thirdparty/pdns.git/log
Miod Vallat [Mon, 27 Oct 2025 06:33:56 +0000 (07:33 +0100)]
Be sure to not leak a socket if tcpConnectionHandler() throws.
Fixes: #16365
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Wed, 22 Oct 2025 04:47:16 +0000 (06:47 +0200)]
Merge pull request #16294 from jsoref/fix-workflow-errors
Fix workflow errors
Miod Vallat [Wed, 22 Oct 2025 04:46:58 +0000 (06:46 +0200)]
Merge pull request #16337 from zeha/rmgetline
Drop Socket::getline
Miod Vallat [Tue, 21 Oct 2025 19:37:03 +0000 (21:37 +0200)]
Merge pull request #16306 from miodvallat/bacf
auth: attempt at technical debt reduction in RFC2136 code
Miod Vallat [Tue, 21 Oct 2025 19:36:24 +0000 (21:36 +0200)]
Merge pull request #16287 from DeyanSG/cache_cleaning_race_fix
authoritative: Prevent a potential race condition in cache cleaning
Miod Vallat [Tue, 21 Oct 2025 19:35:41 +0000 (21:35 +0200)]
Merge pull request #16293 from miodvallat/ujson
ext/json: sync with upstream
Peter van Dijk [Tue, 21 Oct 2025 19:32:28 +0000 (21:32 +0200)]
Merge pull request #16334 from Habbie/top-of-the-pops
luawrapper: correct lua_pop argument
Chris Hofstaedtler [Tue, 21 Oct 2025 19:11:30 +0000 (21:11 +0200)]
Drop Socket::getline
Signed-off-by: Chris Hofstaedtler <chris.hofstaedtler@deduktiva.com>
Peter van Dijk [Tue, 21 Oct 2025 17:11:22 +0000 (19:11 +0200)]
luawrapper: correct lua_pop argument
a negative argument to _pop has defined behaviour but never
does what the user expects.
Note that none of this matters as Lua will adjust the stack to
the 1 top item, which is the pushed boolean, after `return 1`
but I get confused every time I read the negative version
Signed-off-by: Peter van Dijk <peter.van.dijk@powerdns.com>
Otto Moerbeek [Tue, 21 Oct 2025 15:15:50 +0000 (17:15 +0200)]
Merge pull request #16307 from omoerbeek/print-features
rec: explicit disabling/enabling of tls-gnutls for full and least configs and packages
Alexis Romero [Tue, 21 Oct 2025 13:44:22 +0000 (15:44 +0200)]
Merge pull request #16323 from romeroalx/add-npm-swagger-actions
gh actions: add npm package for swagger test
romeroalx [Tue, 21 Oct 2025 10:27:33 +0000 (12:27 +0200)]
gh actions: add npm package for swagger test
Remi Gacogne [Tue, 21 Oct 2025 12:35:23 +0000 (14:35 +0200)]
Merge pull request #16284 from rgacogne/ddist-add-test-for-suffix-match-from-yaml
dnsdist: Add a regression test for suffix-match dynamic block from YAML
Otto Moerbeek [Tue, 21 Oct 2025 09:27:55 +0000 (11:27 +0200)]
Also enabled tls-openssl in debian rules
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Otto Moerbeek [Tue, 21 Oct 2025 09:28:48 +0000 (11:28 +0200)]
Merge pull request #16259 from omoerbeek/auth-rec-lua-meson
auth and rec: Allow selecting a specific version of Lua with meson
Otto Moerbeek [Tue, 21 Oct 2025 09:14:51 +0000 (11:14 +0200)]
Also handle tls-libssl explicitly, as noted by @zeha
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Otto Moerbeek [Tue, 21 Oct 2025 09:06:33 +0000 (11:06 +0200)]
Merge pull request #16308 from omoerbeek/coverity-
20251020
rec: Fix a few Coverity found issues, all low severity move optimizations
Remi Gacogne [Tue, 21 Oct 2025 09:05:03 +0000 (11:05 +0200)]
Merge pull request #16071 from karelbilek/kb/connectx_fastopen
dnsdist: add support for TCP Fast Open for downstream connections on macOS
Remi Gacogne [Tue, 21 Oct 2025 09:04:18 +0000 (11:04 +0200)]
Merge pull request #16292 from rgacogne/ddist-fix-query-rules-tag-from-dynamic-block
dnsdist: Fix query rules bypass after tagging from a dynblock
Remi Gacogne [Tue, 21 Oct 2025 09:04:00 +0000 (11:04 +0200)]
Merge pull request #16214 from rgacogne/ddist-ffi-alternate-name
dnsdist: Refactor the FFI "alternate name" interface
Remi Gacogne [Tue, 21 Oct 2025 09:03:03 +0000 (11:03 +0200)]
Merge pull request #16181 from rgacogne/ci-add-daily-rust-audit
Add a daily workflow to run `cargo audit` against our Rust deps
Otto Moerbeek [Mon, 20 Oct 2025 09:01:18 +0000 (11:01 +0200)]
rec: Fix a few Coverity found issues, all low severity move optimizations
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Otto Moerbeek [Tue, 21 Oct 2025 07:39:44 +0000 (09:39 +0200)]
Merge pull request #16298 from Habbie/rec-el-gnutls
recursor el-* build: depend on gnutls
Otto Moerbeek [Tue, 21 Oct 2025 07:39:31 +0000 (09:39 +0200)]
Merge pull request #16297 from Habbie/podman-rec-rust-copy
rec builder: don't try to copy rust files that are not there
Miod Vallat [Mon, 20 Oct 2025 15:35:13 +0000 (17:35 +0200)]
Copyright'r'us
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Mon, 20 Oct 2025 15:33:35 +0000 (17:33 +0200)]
More Clang-Tidyze™
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Mon, 20 Oct 2025 15:29:58 +0000 (17:29 +0200)]
Handle NSEC3PARAM updates earlier to simplify logic.
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Mon, 20 Oct 2025 13:41:29 +0000 (15:41 +0200)]
Rework the RFC2136 for readability.
Features:
- split performUpdate in smaller parts.
- define and carry a "context" struct rather than MAXINT in-out arguments being
passed by reference.
Miod Vallat [Mon, 20 Oct 2025 13:29:21 +0000 (15:29 +0200)]
Apply a round of Clang-Tidyze™
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Otto Moerbeek [Mon, 20 Oct 2025 12:40:18 +0000 (14:40 +0200)]
Merge pull request #16288 from rgacogne/rec-cache-cleaning-order
rec: Prevent a potential race condition in cache cleaning
Otto Moerbeek [Mon, 20 Oct 2025 12:34:28 +0000 (14:34 +0200)]
Merge pull request #16190 from omoerbeek/rec-more-ottracing
rec: OT tracing: define more Spans with actual duration and add more attributes
Otto Moerbeek [Mon, 20 Oct 2025 08:53:50 +0000 (10:53 +0200)]
rec: explicit disabling/enabling of tls-gnutls for full and least configs and packages
Includes more complete --version feature printing
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Deyan Doychev [Fri, 17 Oct 2025 11:37:32 +0000 (14:37 +0300)]
authoritative: Prevent a potential race condition in cache cleaning
Clean query cache before cleaning packet cache. Otherwise the following
situation is possible:
* thread A cleans packet cache
* thread B answers a question for the same name that is being cleaned by A
* since there is no packet cache it populates a packet cache entry from the
query cache (which has not yet been cleaned by thread A
* thread A cleans query cache
* the server will return the old packet cache entry until its TTL expires or
cache is cleaned again
Switching which cache is cleaned first fixes this race condition.
Signed-off-by: Deyan Doychev <deyan@siteground.com>
Miod Vallat [Mon, 20 Oct 2025 02:51:17 +0000 (04:51 +0200)]
Appease clang-tidy.
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Peter van Dijk [Fri, 17 Oct 2025 21:17:29 +0000 (23:17 +0200)]
recursor el-* build: depend on gnutls
Signed-off-by: Peter van Dijk <peter.van.dijk@powerdns.com>
Peter van Dijk [Fri, 17 Oct 2025 20:23:29 +0000 (22:23 +0200)]
rec builder: don't try to copy rust files that are not there
Signed-off-by: Peter van Dijk <peter.van.dijk@powerdns.com>
Josh Soref [Fri, 17 Oct 2025 15:20:04 +0000 (11:20 -0400)]
Pick a single branch for workflows that should not run
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
Josh Soref [Fri, 17 Oct 2025 15:19:32 +0000 (11:19 -0400)]
Properly declare empty permissions
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
Miod Vallat [Fri, 17 Oct 2025 14:52:36 +0000 (16:52 +0200)]
Bring some bugfixes from upstream (dropbox/json11).
- change Json map/vector conversions to invoke begin() directly instead of
using key_type/value_type/mapped_type, to prevent false positives with
std::optional, which has a value_type member type, but is not a container
(
ec4e45219af1d7cde3d58b49ed762376fccf1ace )
- make has_shape() return true for NUL type only if element actually exists
(
e2e3a11e99672b018e0e0657867e6a3439e180cf )
- improve handling of errors in comments
(
3bafee93e6d587d5bc6ef362c3e4457688e0ed5b )
- make operator== and operator< faster by checking for node identity
(
dabb88e83ebd6d5ef765864ec6d77bb4451c115e ,
42e6e71abb460e06c83a8f17c02e9bdf7959d2e7 )
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Remi Gacogne [Fri, 17 Oct 2025 14:35:34 +0000 (16:35 +0200)]
dnsdist: Fix query rules bypass after tagging from a dynblock
In 2.0.0 we introduced the ability to set a tag when a dynamic
block matches, making it possible to combine dynamic blocks with
existing rules. Unfortunately the implementation turned out to
bypass query rules after setting a tag, so the mechanism could
only be used with the remaining rules chains (cache hit, cache-miss,
cache inserted, self-answered and regular response rules).
This commit fixes that to ensure that we can use tags with query
rules as well.
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Pieter Lexis [Fri, 17 Oct 2025 14:02:30 +0000 (16:02 +0200)]
Merge pull request #16291 from pieterlexis/dnsdist-ot-tcp
dnsdist: Fix delayed OT sending for TCP queries
Pieter Lexis [Fri, 17 Oct 2025 14:02:19 +0000 (16:02 +0200)]
Merge pull request #16289 from pieterlexis/fix-OT-kind
Fix OpenTelemetry Trace names for Span Kinds
Pieter Lexis [Fri, 17 Oct 2025 14:02:10 +0000 (16:02 +0200)]
Merge pull request #16290 from pieterlexis/dnsdist-ot-improve-parenting
fix(dnsdist): Improve OT parenting
Pieter Lexis [Fri, 17 Oct 2025 12:36:12 +0000 (14:36 +0200)]
tests(dnsdist): Add TCP query OT tests
Pieter Lexis [Fri, 17 Oct 2025 12:02:10 +0000 (14:02 +0200)]
fix(dnsdist): Add `delay` option to `RemoteLogResponseAction`
This matches the behaviour of the YAML config.
Pieter Lexis [Fri, 17 Oct 2025 11:49:07 +0000 (13:49 +0200)]
tests(dnsdist): Add OT Trace delayed PB test
Pieter Lexis [Fri, 17 Oct 2025 11:46:16 +0000 (13:46 +0200)]
feat(dnsdist): Also send delayed protobuf for TCP queries
This commit makes some changes to how delayed messages are sent. We now
store the raw, serialized DNSMessage protobuf data in the id-state
object when a send delay is needed.
When the delayed protobuf has to be sent, we generate the OpenTelemetry
Trace data and append it to the message to be sent.
Pieter Lexis [Fri, 17 Oct 2025 12:06:08 +0000 (14:06 +0200)]
feat(dnsdist): Add OT trace span for TCP queries
Pieter Lexis [Wed, 15 Oct 2025 13:54:49 +0000 (15:54 +0200)]
fix(dnsdist): Improve OT parenting
Pieter Lexis [Thu, 16 Oct 2025 12:37:48 +0000 (14:37 +0200)]
fix(OT): correctly name the SpanKinds
Pieter Lexis [Wed, 15 Oct 2025 12:30:32 +0000 (14:30 +0200)]
fix(dnsdist): Set SpanKind::Server for every span
Remi Gacogne [Fri, 17 Oct 2025 12:45:22 +0000 (14:45 +0200)]
Merge pull request #16285 from rgacogne/ddist-rings-dnsname-lock
dnsdist: Make inserting to the in-memory rings a bit faster
Peter van Dijk [Fri, 17 Oct 2025 12:37:38 +0000 (14:37 +0200)]
Merge pull request #16230 from Habbie/double_fault
luawrapper: don't segfault on failure in traceback handler
Remi Gacogne [Fri, 17 Oct 2025 12:06:17 +0000 (14:06 +0200)]
rec: Prevent a potential race condition in cache cleaning
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Remi Gacogne [Fri, 17 Oct 2025 10:33:21 +0000 (12:33 +0200)]
dnsdist: Make inserting to the in-memory rings a bit faster
This commit moves the allocation and copy of the DNS name before
taking the lock, reducing contention. In completely unrealistic
benchmarks this makes the insertion ~10% faster.
Ideally I would rather move the existing `DNSName` instead of allocating
a new one, as we are usually done with it by the point we insert
into the rings, but this involves a lot of changes so let's start
with this.
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Remi Gacogne [Fri, 17 Oct 2025 10:25:31 +0000 (12:25 +0200)]
dnsdist: Add a regression test for suffix-match dynamic block from YAML
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Remi Gacogne [Fri, 17 Oct 2025 07:24:01 +0000 (09:24 +0200)]
Merge pull request #16281 from rgacogne/ddist-fix-build-protobuf
dnsdist: Fix build error when only protobuf is enabled
Remi Gacogne [Thu, 16 Oct 2025 13:11:56 +0000 (15:11 +0200)]
dnsdist: Fix build error when only protobuf is enabled
The build fails with:
```
../dnsdist-protobuf.cc: In member function ‘void DNSDistProtoBufMessage::serialize(std::string&) const’:
../dnsdist-protobuf.cc:205:7: error: ‘vinfolog’ was not declared in this scope
205 | vinfolog("Error while parsing the RRs from a response packet to add them to the protobuf message: %s", exp.what());
| ^~~~~~~~
```
because of a missing header.
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Remi Gacogne [Thu, 16 Oct 2025 07:14:06 +0000 (09:14 +0200)]
Merge pull request #16265 from rgacogne/warn-release-workflows
Warn about workflows that needs to be backported to release branches
Miod Vallat [Wed, 15 Oct 2025 11:43:10 +0000 (13:43 +0200)]
Merge pull request #16252 from miodvallat/4910
auth-4.9.10 secpoll and changelog
Remi Gacogne [Wed, 15 Oct 2025 10:40:07 +0000 (12:40 +0200)]
Warn about workflows that needs to be backported to release branches
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Otto Moerbeek [Wed, 15 Oct 2025 09:46:50 +0000 (11:46 +0200)]
Add allow non-default argument name
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Pieter Lexis [Wed, 15 Oct 2025 09:47:55 +0000 (11:47 +0200)]
Merge pull request #16182 from pieterlexis/dnsdist-ot-tracing
dnsdist: Add OpenTelemetry Tracing support
Pieter Lexis [Wed, 15 Oct 2025 08:36:13 +0000 (10:36 +0200)]
Merge pull request #16262 from pieterlexis/auth-nsec3-salt-bcp
feat(pdnsutil): Warn when NSEC3 iterations or salt are non-BCP
Remi Gacogne [Wed, 15 Oct 2025 08:23:01 +0000 (10:23 +0200)]
Merge pull request #16260 from rgacogne/ddist-coverity-490492
dnsdist: Fix a performance inefficiency reported by Coverity
Miod Vallat [Mon, 13 Oct 2025 08:25:47 +0000 (10:25 +0200)]
auth-4.9.{10,11} secpoll and changelog
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Otto Moerbeek [Wed, 15 Oct 2025 05:45:41 +0000 (07:45 +0200)]
Merge pull request #16232 from omoerbeek/rec-dot-verify
rec: Allow ability to validate certificates (and more) for outgoing DoT connections
Pieter Lexis [Tue, 14 Oct 2025 14:53:53 +0000 (16:53 +0200)]
feat(pdnsutil): Warn when NSEC3 iterations or salt are non-BCP
Closes: #16212
Pieter Lexis [Tue, 14 Oct 2025 12:51:32 +0000 (14:51 +0200)]
chore(dnsdist): Improve InternalQueryState field ordering
Pieter Lexis [Tue, 14 Oct 2025 12:41:15 +0000 (14:41 +0200)]
tests(dnsdist): make clang++ happy with OT tests
Pieter Lexis [Mon, 13 Oct 2025 19:27:38 +0000 (21:27 +0200)]
feat(dnsdist): Add delay option to RemoteLogResponseAction
Pieter Lexis [Tue, 14 Oct 2025 11:12:02 +0000 (13:12 +0200)]
fix(dnsdist): make the rootspan the parent of processResponse
Pieter Lexis [Tue, 14 Oct 2025 11:11:05 +0000 (13:11 +0200)]
feat(dnsdist): Add Query info to the root span
Pieter Lexis [Tue, 14 Oct 2025 11:09:39 +0000 (13:09 +0200)]
feat(dnsdist): add hostname and version to scopespan
Pieter Lexis [Mon, 13 Oct 2025 12:36:36 +0000 (14:36 +0200)]
feat(dnsdist): Add Span Kind to Spans and add a name to ScopeSpan
Pieter Lexis [Wed, 8 Oct 2025 12:42:49 +0000 (14:42 +0200)]
docs(dnsdist): Add missing OT tracing functions
Pieter Lexis [Tue, 7 Oct 2025 14:41:31 +0000 (16:41 +0200)]
fix(dnsdist): Move OT query information into the scope span
Signed-off-by: Pieter Lexis <pieter.lexis@powerdns.com>
Pieter Lexis [Tue, 7 Oct 2025 10:34:06 +0000 (12:34 +0200)]
fix(dnsdist): fix crash on empty selected backend
Pieter Lexis [Tue, 7 Oct 2025 10:14:34 +0000 (12:14 +0200)]
feat(OT): Remove `random` and `clear` functions for TraceID and SpanID
Their classes now have a `clear` and `makeRandom` function. There are
also static functions to get a random ID.
Pieter Lexis [Fri, 3 Oct 2025 16:17:10 +0000 (18:17 +0200)]
tests(dnsdist): Add OpenTelemetry regression tests
Pieter Lexis [Fri, 3 Oct 2025 14:51:29 +0000 (16:51 +0200)]
feat(dnsdist): Add global config option for OpenTelemetry tracing
Pieter Lexis [Thu, 2 Oct 2025 15:35:52 +0000 (17:35 +0200)]
feat(dnsdist): Wrap Spans in the Tracer in LockGuarded
Pieter Lexis [Tue, 30 Sep 2025 16:07:14 +0000 (18:07 +0200)]
feat(dnsdist): add getSpanID to DNSQuestion
Pieter Lexis [Tue, 30 Sep 2025 15:55:32 +0000 (17:55 +0200)]
chore: ignore `ext/` files in coverage reports
Pieter Lexis [Tue, 30 Sep 2025 15:53:11 +0000 (17:53 +0200)]
chore: Add some OT related words to the allow list
Pieter Lexis [Thu, 2 Oct 2025 11:31:32 +0000 (13:31 +0200)]
fix(dnsdist): Move Tracer to shared_ptr
This makes it impossible to create a Tracer object outside of a
shared_ptr as well. Thanks to Remi for the shared_from_this hint.
Pieter Lexis [Mon, 29 Sep 2025 12:21:22 +0000 (14:21 +0200)]
fix: correct name for ProtoZero::Message::setOpenTelemetryTraceID
Pieter Lexis [Thu, 25 Sep 2025 12:58:45 +0000 (14:58 +0200)]
docs(dnsdist): add OT Tracing info
Pieter Lexis [Thu, 25 Sep 2025 11:33:02 +0000 (13:33 +0200)]
tests(dnsdist): add OT Telemetry tests
Pieter Lexis [Thu, 25 Sep 2025 15:48:14 +0000 (17:48 +0200)]
chore: keep SpanID and TraceID together in the file
Pieter Lexis [Thu, 25 Sep 2025 15:46:33 +0000 (17:46 +0200)]
feat: implement ostream << operator for TraceID
Pieter Lexis [Thu, 25 Sep 2025 15:41:08 +0000 (17:41 +0200)]
feat: implement ostream << operator for SpanID
Pieter Lexis [Thu, 25 Sep 2025 15:40:16 +0000 (17:40 +0200)]
feat: implement ostream << operator for AnyValue
Pieter Lexis [Thu, 25 Sep 2025 15:39:31 +0000 (17:39 +0200)]
feat(dnsdist): add Lua method to dq to get TraceID
Pieter Lexis [Thu, 25 Sep 2025 15:38:29 +0000 (17:38 +0200)]
feat(dnsdist): add initial OpenTelemetry Tracing
Pieter Lexis [Tue, 9 Sep 2025 07:14:22 +0000 (09:14 +0200)]
chore(contrib): ignore generated files and documented OT checkouts
Pieter Lexis [Mon, 8 Sep 2025 09:53:37 +0000 (11:53 +0200)]
fix(dnsdist): improve error when YAML is unsupported
Remi Gacogne [Tue, 14 Oct 2025 15:26:56 +0000 (17:26 +0200)]
Merge pull request #16039 from rgacogne/ddist-skip-lb-policy-on-cache-hits
dnsdist: Speed up cache hits by skipping the LB policy when possible
Otto Moerbeek [Tue, 14 Oct 2025 11:05:05 +0000 (13:05 +0200)]
Rename a few things to alighn with dnsdist
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Remi Gacogne [Tue, 14 Oct 2025 13:39:53 +0000 (15:39 +0200)]
dnsdist: Fix a performance inefficiency reported by Coverity
As CID 490492 (`AUTO_CAUSES_COPY`).
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>