]> git.ipfire.org Git - thirdparty/pdns.git/log
thirdparty/pdns.git
3 weeks agoTweak non-structured logs a bit.
Miod Vallat [Wed, 13 May 2026 12:16:13 +0000 (14:16 +0200)] 
Tweak non-structured logs a bit.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
3 weeks agoTrace view selection if log-dns-queries.
Miod Vallat [Wed, 13 May 2026 08:06:26 +0000 (10:06 +0200)] 
Trace view selection if log-dns-queries.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
3 weeks agoauth: allow the zone cache to get a structured logger
Miod Vallat [Wed, 13 May 2026 07:56:55 +0000 (09:56 +0200)] 
auth: allow the zone cache to get a structured logger

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
3 weeks agodnsdist: Consistently handle slow protobuf messages in our tests
Remi Gacogne [Tue, 26 May 2026 14:19:57 +0000 (16:19 +0200)] 
dnsdist: Consistently handle slow protobuf messages in our tests

It was not an issue before, but GH actions runners are so bad these
days that we are now encountering these errors quite often.
In any case we should have been more consistent to begin with.

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
3 weeks agoMerge pull request #17460 from rgacogne/nmt-empty
Remi Gacogne [Tue, 26 May 2026 19:11:18 +0000 (21:11 +0200)] 
Merge pull request #17460 from rgacogne/nmt-empty

iputils: Return early when the tree is empty

3 weeks agoMerge pull request #17468 from rgacogne/ddist-fix-cache-bench
Remi Gacogne [Tue, 26 May 2026 14:56:44 +0000 (16:56 +0200)] 
Merge pull request #17468 from rgacogne/ddist-fix-cache-bench

dnsdist: Fix the packet cache micro-benchmarks

3 weeks agoMerge pull request #17461 from rgacogne/ddist-fix-muted-frontend
Remi Gacogne [Tue, 26 May 2026 14:07:10 +0000 (16:07 +0200)] 
Merge pull request #17461 from rgacogne/ddist-fix-muted-frontend

dnsdist: Do not send UDP responses when the frontend is muted

3 weeks agodnsdist: Add a micro-benchmark for the empty NetmaskTree case 17460/head
Remi Gacogne [Tue, 26 May 2026 14:03:05 +0000 (16:03 +0200)] 
dnsdist: Add a micro-benchmark for the empty NetmaskTree case

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
3 weeks agodnsdist: Fix the packet cache micro-benchmarks 17468/head
Remi Gacogne [Tue, 26 May 2026 13:58:49 +0000 (15:58 +0200)] 
dnsdist: Fix the packet cache micro-benchmarks

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
3 weeks agoauth: keep the state of log-dns-queries in a global.
Miod Vallat [Wed, 13 May 2026 07:49:26 +0000 (09:49 +0200)] 
auth: keep the state of log-dns-queries in a global.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
3 weeks agodnsdist: Fix weird comment 17462/head
Remi Gacogne [Tue, 26 May 2026 09:57:20 +0000 (11:57 +0200)] 
dnsdist: Fix weird comment

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
3 weeks agodnsdist: Use a optional to distinguish between "not tested" and "not enabled"
Remi Gacogne [Tue, 26 May 2026 09:44:55 +0000 (11:44 +0200)] 
dnsdist: Use a optional to distinguish between "not tested" and "not enabled"

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
3 weeks agoMerge pull request #17463 from rgacogne/ddist-lua-offsetof-warnings
Remi Gacogne [Tue, 26 May 2026 08:27:04 +0000 (10:27 +0200)] 
Merge pull request #17463 from rgacogne/ddist-lua-offsetof-warnings

dnsdist: Fix warnings about the use of `offsetof` on non-POD types

3 weeks agoMerge pull request #17430 from pieterlexis/rec-doc-nearmiss
Pieter Lexis [Tue, 26 May 2026 08:24:35 +0000 (10:24 +0200)] 
Merge pull request #17430 from pieterlexis/rec-doc-nearmiss

docs(rec): describe result of hitting spoof-nearmiss-max in more places

3 weeks agodnsdist: Move from `d_OTTracingDisabled` to `d_OTTracingEnabled`
Remi Gacogne [Tue, 26 May 2026 08:23:53 +0000 (10:23 +0200)] 
dnsdist: Move from `d_OTTracingDisabled` to `d_OTTracingEnabled`

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
3 weeks agoDocs: Link backend docs to launch setting 17464/head
Roger A. Light [Fri, 22 May 2026 20:26:40 +0000 (21:26 +0100)] 
Docs: Link backend docs to launch setting

For a user who has not read the documentation in detail, if they decide
they want to run more multiple pipe backends, for example, then they
will probably go to the pipe backend documentation to discover how to do
this. The docs list the backend as having support for Multiple
Instances, but no information on how to achieve this. Adding a link to
the launch option immediately provides the information that is required.

Signed-off-by: Roger A. Light <roger@atchoo.org>
4 weeks agodnsdist: Fix clang-tidy warnings in dnsdist-opentelemetry.cc
Remi Gacogne [Fri, 22 May 2026 14:24:24 +0000 (16:24 +0200)] 
dnsdist: Fix clang-tidy warnings in dnsdist-opentelemetry.cc

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agodnsdist: Fix warnings about the use of `offsetof` on non-POD types 17463/head
Remi Gacogne [Fri, 22 May 2026 13:33:21 +0000 (15:33 +0200)] 
dnsdist: Fix warnings about the use of `offsetof` on non-POD types

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agodnsdist: Fix warnings about unused parameters when protobuf support is disabled
Remi Gacogne [Fri, 22 May 2026 13:28:30 +0000 (15:28 +0200)] 
dnsdist: Fix warnings about unused parameters when protobuf support is disabled

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agodnsdist: Reduce the cost of disabled OpenTelemetry tracing
Remi Gacogne [Fri, 22 May 2026 12:39:47 +0000 (14:39 +0200)] 
dnsdist: Reduce the cost of disabled OpenTelemetry tracing

This commit:
- prevents the copy of a shared pointer by passing a reference to the tracer
  instead, a copy (incrementing the reference count, then decrementing it later)
  can still be done when needed
- skip checking the runtime configuration to check if OT is enabled if we already
  have a tracer
- adds a boolean to the InternalQueryState to remember whether OT is disabled,
  preventing the need to check the runtime configuration every time we create
  a (most of the time empty) closer

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agoiputils: Return early when the tree is empty
Remi Gacogne [Fri, 22 May 2026 13:08:09 +0000 (15:08 +0200)] 
iputils: Return early when the tree is empty

This brings a small speed-up when the proxy protocol ACL is empty,
for example.

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agodnsdist: Do not send UDP responses when the frontend is muted 17461/head
Remi Gacogne [Fri, 22 May 2026 12:44:00 +0000 (14:44 +0200)] 
dnsdist: Do not send UDP responses when the frontend is muted

We were not checking in various places (cache hits, self-answered responses).

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agoMerge pull request #17453 from rgacogne/changelog-from-pr-improvements
Remi Gacogne [Fri, 22 May 2026 12:25:57 +0000 (14:25 +0200)] 
Merge pull request #17453 from rgacogne/changelog-from-pr-improvements

changelog-from-pr: Reuse HTTP connections, fix PR/issue confusion for tickets

4 weeks agoMerge pull request #17458 from Habbie/faketime-pin
Remi Gacogne [Fri, 22 May 2026 12:25:46 +0000 (14:25 +0200)] 
Merge pull request #17458 from Habbie/faketime-pin

tasks.py faketime build: pin git commit

4 weeks agoMerge pull request #17457 from rgacogne/ddist-flaky-ebpf-test
Remi Gacogne [Fri, 22 May 2026 12:25:02 +0000 (14:25 +0200)] 
Merge pull request #17457 from rgacogne/ddist-flaky-ebpf-test

dnsdist: Do not check the counters in eBPF's regression test

4 weeks agoMerge pull request #17459 from miodvallat/1001nights
Remi Gacogne [Fri, 22 May 2026 07:10:22 +0000 (09:10 +0200)] 
Merge pull request #17459 from miodvallat/1001nights

auth: stricter proxy protocol size limit enforcement

4 weeks agoEnforce proxy protocol size limit earlier. 17459/head
Miod Vallat [Thu, 21 May 2026 14:33:39 +0000 (16:33 +0200)] 
Enforce proxy protocol size limit earlier.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agoMerge pull request #17456 from rgacogne/ddist-backend-latency-tsan
Remi Gacogne [Thu, 21 May 2026 14:36:32 +0000 (16:36 +0200)] 
Merge pull request #17456 from rgacogne/ddist-backend-latency-tsan

dnsdist: Add a TSAN suppression for DownstreamState::setUpStatus

4 weeks agoMerge pull request #17367 from miodvallat/xfrdam
Miod Vallat [Thu, 21 May 2026 14:00:32 +0000 (16:00 +0200)] 
Merge pull request #17367 from miodvallat/xfrdam

Correctly display APL DNS records with IPv4 addresses ending in .0

4 weeks agoMerge pull request #17373 from miodvallat/hemicolon
Miod Vallat [Thu, 21 May 2026 13:59:33 +0000 (15:59 +0200)] 
Merge pull request #17373 from miodvallat/hemicolon

auth: once again, relax JSON normalization code for record contents

4 weeks agoMerge pull request #17447 from miodvallat/lmdbound
Miod Vallat [Thu, 21 May 2026 13:59:00 +0000 (15:59 +0200)] 
Merge pull request #17447 from miodvallat/lmdbound

auth lmdb: do not serialize records over 64K in length

4 weeks agoMerge pull request #17455 from miodvallat/blob_me_like_a_hurricane
Miod Vallat [Thu, 21 May 2026 13:57:45 +0000 (15:57 +0200)] 
Merge pull request #17455 from miodvallat/blob_me_like_a_hurricane

Yet more xfr* hardening

4 weeks agotasks.py faketime build: pin git commit 17458/head
Peter van Dijk [Thu, 21 May 2026 13:45:45 +0000 (15:45 +0200)] 
tasks.py faketime build: pin git commit

Signed-off-by: Peter van Dijk <peter.van.dijk@powerdns.com>
4 weeks agodnsdist: Do not check the counters in eBPF's regression test 17457/head
Remi Gacogne [Thu, 21 May 2026 13:42:14 +0000 (15:42 +0200)] 
dnsdist: Do not check the counters in eBPF's regression test

We might have already been blocked by the dynamic block regression
tests, if we are unlucky.

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agodnsdist: Add a TSAN suppression for DownstreamState::setUpStatus 17456/head
Remi Gacogne [Thu, 21 May 2026 13:31:10 +0000 (15:31 +0200)] 
dnsdist: Add a TSAN suppression for DownstreamState::setUpStatus

Prevents:
```
WARNING: ThreadSanitizer: data race (pid=11817)
  Write of size 8 at 0x728400000f58 by thread T25:
    #0 __tsan_memset <null> (dnsdist+0x503c41) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #1 DownstreamState::setUpStatus(bool) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/dnsdist.hh:824:22 (dnsdist+0x657aba) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #2 DownstreamState::submitHealthCheckResult(bool, bool) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/dnsdist-backend.cc:914:5 (dnsdist+0x657aba)
    #3 healthCheckUDPCallback(int, boost::any&) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/dnsdist-healthchecks.cc:285:19 (dnsdist+0x82b696) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #4 void std::__invoke_impl<void, void (*&)(int, boost::any&), int, boost::any&>(std::__invoke_other, void (*&)(int, boost::any&), int&&, boost::any&) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:61:14 (dnsdist+0x839ce7) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #5 std::enable_if<is_invocable_r_v<void, void (*&)(int, boost::any&), int, boost::any&>, void>::type std::__invoke_r<void, void (*&)(int, boost::any&), int, boost::any&>(void (*&)(int, boost::any&), int&&, boost::any&) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:111:2 (dnsdist+0x839ce7)
    #6 std::_Function_handler<void (int, boost::any&), void (*)(int, boost::any&)>::_M_invoke(std::_Any_data const&, int&&, boost::any&) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_function.h:290:9 (dnsdist+0x839ce7)
    #7 std::function<void (int, boost::any&)>::operator()(int, boost::any&) const /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_function.h:591:9 (dnsdist+0x62b2e1) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #8 EpollFDMultiplexer::run(timeval*, int) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/epollmplexer.cc:188:9 (dnsdist+0x62b2e1)
    #9 handleQueuedHealthChecks(FDMultiplexer&, bool) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/dnsdist-healthchecks.cc:560:23 (dnsdist+0x82d873) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #10 healthChecksThread() /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/dnsdist.cc:2627:9 (dnsdist+0x5ace08) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #11 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:61:14 (dnsdist+0x5f839d) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #12 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:96:14 (dnsdist+0x5f839d)
    #13 void std::thread::_Invoker<std::tuple<void (*)()>>::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:301:13 (dnsdist+0x5f839d)
    #14 std::thread::_Invoker<std::tuple<void (*)()>>::operator()() /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:308:11 (dnsdist+0x5f839d)
    #15 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()>>>::_M_run() /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:253:13 (dnsdist+0x5f839d)
    #16 <null> <null> (libstdc++.so.6+0xe1223) (BuildId: 133b71e0013695cc7832680a74edb51008c4fc4c)
2026-05-21T12:42:22.4242125Z
  Previous write of size 8 at 0x728400000f58 by thread T15:
    #0 processResponderPacket(std::shared_ptr<DownstreamState>&, std::vector<unsigned char, noinit_adaptor<std::allocator<unsigned char>>>&, InternalQueryState&&) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/dnsdist.cc:767:20 (dnsdist+0x59159e) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #1 responderThread(std::shared_ptr<DownstreamState>) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/dnsdist.cc:849:15 (dnsdist+0x5930f8) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #2 void std::__invoke_impl<void, void (*)(std::shared_ptr<DownstreamState>), std::shared_ptr<DownstreamState>>(std::__invoke_other, void (*&&)(std::shared_ptr<DownstreamState>), std::shared_ptr<DownstreamState>&&) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:61:14 (dnsdist+0x66ba55) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #3 std::__invoke_result<void (*)(std::shared_ptr<DownstreamState>), std::shared_ptr<DownstreamState>>::type std::__invoke<void (*)(std::shared_ptr<DownstreamState>), std::shared_ptr<DownstreamState>>(void (*&&)(std::shared_ptr<DownstreamState>), std::shared_ptr<DownstreamState>&&) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:96:14 (dnsdist+0x66ba55)
    #4 void std::thread::_Invoker<std::tuple<void (*)(std::shared_ptr<DownstreamState>), std::shared_ptr<DownstreamState>>>::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:301:13 (dnsdist+0x66ba55)
    #5 std::thread::_Invoker<std::tuple<void (*)(std::shared_ptr<DownstreamState>), std::shared_ptr<DownstreamState>>>::operator()() /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:308:11 (dnsdist+0x66ba55)
    #6 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(std::shared_ptr<DownstreamState>), std::shared_ptr<DownstreamState>>>>::_M_run() /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:253:13 (dnsdist+0x66ba55)
    #7 <null> <null> (libstdc++.so.6+0xe1223) (BuildId: 133b71e0013695cc7832680a74edb51008c4fc4c)
2026-05-21T12:42:22.4257091Z
  As if synchronized via sleep:
    #0 usleep <null> (dnsdist+0x504f82) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #1 healthChecksThread() /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/dnsdist.cc:2595:9 (dnsdist+0x5ac98f) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #2 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:61:14 (dnsdist+0x5f839d) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #3 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:96:14 (dnsdist+0x5f839d)
    #4 void std::thread::_Invoker<std::tuple<void (*)()>>::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:301:13 (dnsdist+0x5f839d)
    #5 std::thread::_Invoker<std::tuple<void (*)()>>::operator()() /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:308:11 (dnsdist+0x5f839d)
    #6 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()>>>::_M_run() /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:253:13 (dnsdist+0x5f839d)
    #7 <null> <null> (libstdc++.so.6+0xe1223) (BuildId: 133b71e0013695cc7832680a74edb51008c4fc4c)
2026-05-21T12:42:22.4265086Z
  Location is heap block of size 4160 at 0x728400000000 allocated by main thread:
    #0 operator new(unsigned long, std::align_val_t) <null> (dnsdist+0x58cb9a) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #1 std::__new_allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>>::allocate(unsigned long, void const*) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/new_allocator.h:147:31 (dnsdist+0x6ff574) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>>>::allocate(std::allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>>&, unsigned long) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/alloc_traits.h:515:20 (dnsdist+0x6ff574)
    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>>> std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>>>(std::allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>>&) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/allocated_ptr.h:98:21 (dnsdist+0x6ff574)
    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<DownstreamState, std::allocator<void>, DownstreamState::Config, std::shared_ptr<TLSCtx>, bool>(DownstreamState*&, std::_Sp_alloc_shared_tag<std::allocator<void>>, DownstreamState::Config&&, std::shared_ptr<TLSCtx>&&, bool&&) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr_base.h:967:19 (dnsdist+0x6ff574)
    #5 std::__shared_ptr<DownstreamState, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, DownstreamState::Config, std::shared_ptr<TLSCtx>, bool>(std::_Sp_alloc_shared_tag<std::allocator<void>>, DownstreamState::Config&&, std::shared_ptr<TLSCtx>&&, bool&&) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr_base.h:1713:14 (dnsdist+0x6ff574)
    #6 std::shared_ptr<DownstreamState>::shared_ptr<std::allocator<void>, DownstreamState::Config, std::shared_ptr<TLSCtx>, bool>(std::_Sp_alloc_shared_tag<std::allocator<void>>, DownstreamState::Config&&, std::shared_ptr<TLSCtx>&&, bool&&) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr.h:463:4 (dnsdist+0xac6d46) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #7 std::shared_ptr<std::enable_if<!is_array<DownstreamState>::value, DownstreamState>::type> std::make_shared<DownstreamState, DownstreamState::Config, std::shared_ptr<TLSCtx>, bool>(DownstreamState::Config&&, std::shared_ptr<TLSCtx>&&, bool&&) /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr.h:1007:14 (dnsdist+0xac6d46)
    #8 setupLuaConfig(LuaContext&, bool, bool)::$_36::operator()(boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>>>>>, std::optional<int>) const /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/dnsdist-lua.cc:644:37 (dnsdist+0xac6d46)
    #9 decltype((*this).function((*this).param, std::forward<std::optional<int> const&>(fp))) LuaContext::Binder<setupLuaConfig(LuaContext&, bool, bool)::$_36&, boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>>>>> const&>::operator()<std::optional<int> const&>(std::optional<int> const&) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/ext/luawrapper/include/LuaContext.hpp:1889:20 (dnsdist+0xac0fd8) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #10 decltype((*this).function((*this).param)) LuaContext::Binder<LuaContext::Binder<setupLuaConfig(LuaContext&, bool, bool)::$_36&, boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>>>>> const&>&, std::optional<int> const&>::operator()<>() /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/ext/luawrapper/include/LuaContext.hpp:1889:20 (dnsdist+0xac0fd8)
    #11 std::shared_ptr<DownstreamState> LuaContext::readIntoFunction<std::shared_ptr<DownstreamState>, LuaContext::Binder<LuaContext::Binder<setupLuaConfig(LuaContext&, bool, bool)::$_36&, boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>>>>> const&>&, std::optional<int> const&>&>(lua_State*, LuaContext::tag<std::shared_ptr<DownstreamState>>, LuaContext::Binder<LuaContext::Binder<setupLuaConfig(LuaContext&, bool, bool)::$_36&, boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>>>>> const&>&, std::optional<int> const&>&, int) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/ext/luawrapper/include/LuaContext.hpp:1808:16 (dnsdist+0xac0fd8)
    #12 std::enable_if<IsOptional<std::optional<int>>::value, std::shared_ptr<DownstreamState>>::type LuaContext::readIntoFunction<std::shared_ptr<DownstreamState>, LuaContext::Binder<setupLuaConfig(LuaContext&, bool, bool)::$_36&, boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>>>>> const&>&, std::optional<int>>(lua_State*, LuaContext::tag<std::shared_ptr<DownstreamState>>, LuaContext::Binder<setupLuaConfig(LuaContext&, bool, bool)::$_36&, boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>>>>> const&>&, int, LuaContext::tag<std::optional<int>>) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/ext/luawrapper/include/LuaContext.hpp:1817:20 (dnsdist+0xac0fd8)
    #13 std::enable_if<!IsOptional<boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>>>>>>::value, std::shared_ptr<DownstreamState>>::type LuaContext::readIntoFunction<std::shared_ptr<DownstreamState>, setupLuaConfig(LuaContext&, bool, bool)::$_36&, boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>>>>>, std::optional<int>>(lua_State*, LuaContext::tag<std::shared_ptr<DownstreamState>>, setupLuaConfig(LuaContext&, bool, bool)::$_36&, int, LuaContext::tag<boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>>>>>>, LuaContext::tag<std::optional<int>>) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/ext/luawrapper/include/LuaContext.hpp:1839:16 (dnsdist+0xac0fd8)
    #14 std::enable_if<!std::integral_constant<bool, false>::value && !std::is_void<setupLuaConfig(LuaContext&, bool, bool)::$_36&>::value, LuaContext::PushedObject>::type LuaContext::Pusher<std::shared_ptr<DownstreamState> (boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>>>>>, std::optional<int>), void>::callback2<setupLuaConfig(LuaContext&, bool, bool)::$_36&>(lua_State*, setupLuaConfig(LuaContext&, bool, bool)::$_36&, int) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/ext/luawrapper/include/LuaContext.hpp:2478:31 (dnsdist+0xac0fd8)
    #15 LuaContext::PushedObject LuaContext::Pusher<std::shared_ptr<DownstreamState> (boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>>>>>, std::optional<int>), void>::callback<setupLuaConfig(LuaContext&, bool, bool)::$_36>(lua_State*, setupLuaConfig(LuaContext&, bool, bool)::$_36*, int) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/ext/luawrapper/include/LuaContext.hpp:2447:20 (dnsdist+0xac0fd8)
    #16 std::enable_if<boost::has_trivial_destructor<setupLuaConfig(LuaContext&, bool, bool)::$_36>::value, LuaContext::PushedObject>::type LuaContext::Pusher<std::shared_ptr<DownstreamState> (boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>>>>>, std::optional<int>), void>::push<setupLuaConfig(LuaContext&, bool, bool)::$_36>(lua_State*, setupLuaConfig(LuaContext&, bool, bool)::$_36)::'lambda'(lua_State*)::operator()(lua_State*) const /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/ext/luawrapper/include/LuaContext.hpp:2375:20 (dnsdist+0xac0fd8)
    #17 std::enable_if<boost::has_trivial_destructor<setupLuaConfig(LuaContext&, bool, bool)::$_36>::value, LuaContext::PushedObject>::type LuaContext::Pusher<std::shared_ptr<DownstreamState> (boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, std::vector<std::pair<int, std::shared_ptr<XskSocket>>, std::allocator<std::pair<int, std::shared_ptr<XskSocket>>>>, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)>>>>>>, std::optional<int>), void>::push<setupLuaConfig(LuaContext&, bool, bool)::$_36>(lua_State*, setupLuaConfig(LuaContext&, bool, bool)::$_36)::'lambda'(lua_State*)::__invoke(lua_State*) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/ext/luawrapper/include/LuaContext.hpp:2371:31 (dnsdist+0xac0fd8)
    #18 <null> <null> (libluajit-5.1.so.2+0xaaf5) (BuildId: e1deeeb04de4ac076ef5cc53b583f2c4db375dbe)
    #19 std::tuple<> LuaContext::call<std::tuple<>>(lua_State*, LuaContext::PushedObject) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/ext/luawrapper/include/LuaContext.hpp:1441:29 (dnsdist+0x61f3bd) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #20 LuaContext::executeCode(std::istream&) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/ext/luawrapper/include/LuaContext.hpp:295:9 (dnsdist+0xb61a34) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #21 dnsdist::configuration::lua::loadLuaConfigurationFile(LuaContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/dnsdist-lua.cc:3363:10 (dnsdist+0xac0d1c) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #22 loadConfigurationFromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool, std::shared_ptr<Logr::Logger const> const&) /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/dnsdist.cc:3593:5 (dnsdist+0x5ab330) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #23 main /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/dnsdist.cc:3722:10 (dnsdist+0x5a2399) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
2026-05-21T12:42:22.4779568Z
  Thread T25 'dnsdist/healthC' (tid=11843, running) created by main thread at:
    #0 pthread_create <null> (dnsdist+0x507f55) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State>>, void (*)()) <null> (libstdc++.so.6+0xe12f8) (BuildId: 133b71e0013695cc7832680a74edb51008c4fc4c)
    #2 <null> <null> (libc.so.6+0x29ca7) (BuildId: c495b62edadd6c356265942ec1282d98058a7b41)
2026-05-21T12:42:22.4782711Z
  Thread T15 'dnsdist/respond' (tid=11833, running) created by main thread at:
    #0 pthread_create <null> (dnsdist+0x507f55) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State>>, void (*)()) <null> (libstdc++.so.6+0xe12f8) (BuildId: 133b71e0013695cc7832680a74edb51008c4fc4c)
    #2 main /__w/pdns-private/pdns-private/pdns/dnsdistdist/dnsdist-0.0.0-git1/../../../../../../tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-0.0.0-git1/dnsdist.cc:3862:18 (dnsdist+0x5a6880) (BuildId: 22ed65c8a459bfe2a40f94878815ce579cb879a9)
```

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agoPerform length check in RecordTextReader::xfrBlob(). 17455/head
Miod Vallat [Thu, 21 May 2026 13:08:49 +0000 (15:08 +0200)] 
Perform length check in RecordTextReader::xfrBlob().

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agoDo not read beyond record in the 2-args xfrBlob.
Miod Vallat [Thu, 21 May 2026 13:08:34 +0000 (15:08 +0200)] 
Do not read beyond record in the 2-args xfrBlob.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agochangelog-from-pr: Fix Python formatting 17453/head
Remi Gacogne [Thu, 21 May 2026 11:37:50 +0000 (13:37 +0200)] 
changelog-from-pr: Fix Python formatting

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agoMerge pull request #17452 from rgacogne/ddist-2.0.6-changelog-secpoll
Remi Gacogne [Thu, 21 May 2026 11:34:24 +0000 (13:34 +0200)] 
Merge pull request #17452 from rgacogne/ddist-2.0.6-changelog-secpoll

dnsdist: Update ChangeLog and security polling zone for 2.0.6

4 weeks agochangelog-from-pr: Do not confuse PR numbers with issues
Remi Gacogne [Thu, 21 May 2026 09:49:41 +0000 (11:49 +0200)] 
changelog-from-pr: Do not confuse PR numbers with issues

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agochangelog-from-pr: Reuse HTTP connections whenever possible
Remi Gacogne [Thu, 21 May 2026 09:49:19 +0000 (11:49 +0200)] 
changelog-from-pr: Reuse HTTP connections whenever possible

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agodnsdist: Update ChangeLog and security polling zone for 2.0.6 17452/head
Remi Gacogne [Thu, 21 May 2026 08:50:01 +0000 (10:50 +0200)] 
dnsdist: Update ChangeLog and security polling zone for 2.0.6

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agoclang-tidy is why we can't have nice things. 17373/head
Miod Vallat [Fri, 15 May 2026 13:01:41 +0000 (15:01 +0200)] 
clang-tidy is why we can't have nice things.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agoUse parseRFC1035CharStringRelaxed to normalize json record contents.
Miod Vallat [Fri, 15 May 2026 12:06:16 +0000 (14:06 +0200)] 
Use parseRFC1035CharStringRelaxed to normalize json record contents.

Fixes #17368

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agoAdd a variant of parseRFC1035CharString, suitable for TXT record contents.
Miod Vallat [Fri, 15 May 2026 12:03:05 +0000 (14:03 +0200)] 
Add a variant of parseRFC1035CharString, suitable for TXT record contents.

parseRFC1035CharString will always reject ( ) and ;, the latter which is
quite often used. The new parseRFC1035CharStringRelaxed automaton behaves
similarly to parseRFC1035CharString, but allows these three characters when
they appear within quoted sections.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agoMerge pull request #17371 from rgacogne/error-when-clang-tidy-fails
Remi Gacogne [Wed, 20 May 2026 18:48:04 +0000 (20:48 +0200)] 
Merge pull request #17371 from rgacogne/error-when-clang-tidy-fails

ci: Error when clang tidy fails

4 weeks agoMerge pull request #17385 from rgacogne/ddist-keep-live-concurrent-connections
Remi Gacogne [Wed, 20 May 2026 18:47:17 +0000 (20:47 +0200)] 
Merge pull request #17385 from rgacogne/ddist-keep-live-concurrent-connections

dnsdist: Keep concurrent connection entries for live connections

4 weeks agoUpdate pdns/recursordist/rec-rust-lib/table.py 17430/head
Pieter Lexis [Wed, 20 May 2026 15:19:26 +0000 (17:19 +0200)] 
Update pdns/recursordist/rec-rust-lib/table.py

Co-authored-by: Remi Gacogne <github@coredump.fr>
Signed-off-by: Pieter Lexis <pieter@plexis.eu>
4 weeks agoMerge pull request #17445 from miodvallat/doc_sa_2026_06
Miod Vallat [Wed, 20 May 2026 12:54:06 +0000 (14:54 +0200)] 
Merge pull request #17445 from miodvallat/doc_sa_2026_06

auth: 5.0.15 & 4.9.5 documentation updates

4 weeks agodocumentation and secpoll update for auth 4.9.15 and 5.0.5 17445/head
Miod Vallat [Wed, 20 May 2026 08:15:30 +0000 (10:15 +0200)] 
documentation and secpoll update for auth 4.9.15 and 5.0.5

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agoMerge pull request #17442 from miodvallat/sa_2026_06
Miod Vallat [Wed, 20 May 2026 11:43:05 +0000 (13:43 +0200)] 
Merge pull request #17442 from miodvallat/sa_2026_06

auth: fixes for SA 2026-06

4 weeks agoBe sure to escape user data when building a TXT record. 17442/head
Miod Vallat [Wed, 20 May 2026 07:31:40 +0000 (09:31 +0200)] 
Be sure to escape user data when building a TXT record.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agoSimplify PTR record creation. NFCI
Miod Vallat [Wed, 20 May 2026 07:31:31 +0000 (09:31 +0200)] 
Simplify PTR record creation. NFCI

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agoCrude test for proxy + views
Miod Vallat [Wed, 20 May 2026 07:30:51 +0000 (09:30 +0200)] 
Crude test for proxy + views

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agoUse the inner remote to perform view selection.
Miod Vallat [Wed, 20 May 2026 07:30:39 +0000 (09:30 +0200)] 
Use the inner remote to perform view selection.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agoUse getInnerRemote() instead of inlining it. NFC
Miod Vallat [Wed, 20 May 2026 07:30:23 +0000 (09:30 +0200)] 
Use getInnerRemote() instead of inlining it. NFC

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agoEscape bind-special characters in rrnames when writing bind zones.
Miod Vallat [Wed, 20 May 2026 07:29:52 +0000 (09:29 +0200)] 
Escape bind-special characters in rrnames when writing bind zones.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agoCope with exceptions thrown by MOADNSParser initialization.
Miod Vallat [Wed, 20 May 2026 07:28:22 +0000 (09:28 +0200)] 
Cope with exceptions thrown by MOADNSParser initialization.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agoAdd a configurable limit to the number of active GSS contexts.
Miod Vallat [Wed, 20 May 2026 07:27:35 +0000 (09:27 +0200)] 
Add a configurable limit to the number of active GSS contexts.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agoFactor code responsible for GssSecContext acquisition.
Miod Vallat [Wed, 20 May 2026 07:27:03 +0000 (09:27 +0200)] 
Factor code responsible for GssSecContext acquisition.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agoLock around GssSecContext operation.
Miod Vallat [Wed, 20 May 2026 07:26:52 +0000 (09:26 +0200)] 
Lock around GssSecContext operation.

Two distributor threads may create GssContext with the same DNSName label,
and thus end up sharing the same GssSecContext internally.

Wrapping GssSecContext in LockGuarded makes sure that no concurrent
operation can occur.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agoRemove redundant GssContext object creation.
Miod Vallat [Wed, 20 May 2026 07:26:34 +0000 (09:26 +0200)] 
Remove redundant GssContext object creation.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agoMake s_last_expired atomic; multiple threads may access it.
Miod Vallat [Wed, 20 May 2026 07:26:22 +0000 (09:26 +0200)] 
Make s_last_expired atomic; multiple threads may access it.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agodnsdist: Check that marking a TCP conn as closed does not remove it from the map 17385/head
Remi Gacogne [Tue, 19 May 2026 13:20:00 +0000 (15:20 +0200)] 
dnsdist: Check that marking a TCP conn as closed does not remove it from the map

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agoMerge pull request #17376 from rgacogne/credentials-zero-out
Remi Gacogne [Tue, 19 May 2026 12:01:22 +0000 (14:01 +0200)] 
Merge pull request #17376 from rgacogne/credentials-zero-out

credentials: Try harder to zero out existing data

4 weeks agoMerge pull request #17162 from rgacogne/ddist-harden-ffi-interface
Remi Gacogne [Tue, 19 May 2026 12:01:10 +0000 (14:01 +0200)] 
Merge pull request #17162 from rgacogne/ddist-harden-ffi-interface

dnsdist: Harden the Lua FFI interface against misuse

4 weeks agodocs(rec): describe result of hitting spoof-nearmiss-max in more places
Pieter Lexis [Tue, 19 May 2026 11:51:39 +0000 (13:51 +0200)] 
docs(rec): describe result of hitting spoof-nearmiss-max in more places

4 weeks agoMerge pull request #17393 from rgacogne/ddist-check-backend-weight-yaml
Remi Gacogne [Tue, 19 May 2026 10:44:15 +0000 (12:44 +0200)] 
Merge pull request #17393 from rgacogne/ddist-check-backend-weight-yaml

dnsdist: Ignore valid backend weight coming from YAML

4 weeks agoMerge pull request #17401 from rgacogne/ddist-quiche-0.29.0
Remi Gacogne [Tue, 19 May 2026 08:34:29 +0000 (10:34 +0200)] 
Merge pull request #17401 from rgacogne/ddist-quiche-0.29.0

dnsdist: Update Quiche to 0.29.0 in our packages

4 weeks agocredentials: Document that we trying to get the linters to shut the hell up 17376/head
Remi Gacogne [Tue, 19 May 2026 08:29:49 +0000 (10:29 +0200)] 
credentials: Document that we trying to get the linters to shut the hell up

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agodnsdist: Stop trying to be clever; just tell clang-tidy to shut up 17162/head
Remi Gacogne [Tue, 19 May 2026 08:26:29 +0000 (10:26 +0200)] 
dnsdist: Stop trying to be clever; just tell clang-tidy to shut up

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agodnsdist: Apply Miod's suggestion 17393/head
Remi Gacogne [Tue, 19 May 2026 07:45:06 +0000 (09:45 +0200)] 
dnsdist: Apply Miod's suggestion

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agocredentials: Clear the moved-from string before checking its capacity
Remi Gacogne [Tue, 19 May 2026 07:42:20 +0000 (09:42 +0200)] 
credentials: Clear the moved-from string before checking its capacity

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agoMerge pull request #17392 from rgacogne/ddist-exceptions
Remi Gacogne [Mon, 18 May 2026 19:27:08 +0000 (21:27 +0200)] 
Merge pull request #17392 from rgacogne/ddist-exceptions

dnsdist: Better handling of exceptions

4 weeks agoMerge pull request #17375 from rgacogne/ddist-fix-outgoing-tls-session-cache
Remi Gacogne [Mon, 18 May 2026 15:22:55 +0000 (17:22 +0200)] 
Merge pull request #17375 from rgacogne/ddist-fix-outgoing-tls-session-cache

dnsdist: Fix outgoing TLS session cache cleanup

4 weeks agoMerge pull request #17390 from rgacogne/ddist-bpf-fixes
Remi Gacogne [Mon, 18 May 2026 15:22:38 +0000 (17:22 +0200)] 
Merge pull request #17390 from rgacogne/ddist-bpf-fixes

dnsdist: Fixes several eBPF issues

4 weeks agoMerge pull request #17400 from rgacogne/ddist-healtcheck-test-failure
Remi Gacogne [Mon, 18 May 2026 15:21:40 +0000 (17:21 +0200)] 
Merge pull request #17400 from rgacogne/ddist-healtcheck-test-failure

dnsdist: Hopefully fixes spurious failures of TestHealthCheckLatency

4 weeks agoMerge pull request #17365 from miodvallat/luautil
Miod Vallat [Mon, 18 May 2026 15:05:04 +0000 (17:05 +0200)] 
Merge pull request #17365 from miodvallat/luautil

auth: let pdnsutil work with lua backend

4 weeks agoMerge pull request #17131 from miodvallat/immuluability
Miod Vallat [Mon, 18 May 2026 14:49:44 +0000 (16:49 +0200)] 
Merge pull request #17131 from miodvallat/immuluability

auth: make lua records immutable by default

4 weeks agodnsdist: Reformat harder
Remi Gacogne [Mon, 18 May 2026 14:38:04 +0000 (16:38 +0200)] 
dnsdist: Reformat harder

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agodnsdist: Update Quiche to 0.29.0 in our packages 17401/head
Remi Gacogne [Mon, 18 May 2026 14:19:53 +0000 (16:19 +0200)] 
dnsdist: Update Quiche to 0.29.0 in our packages

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agoDo not serialize records over 64K in length. 17447/head
Miod Vallat [Mon, 18 May 2026 14:19:49 +0000 (16:19 +0200)] 
Do not serialize records over 64K in length.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
4 weeks agocredentials: Fix formatting
Remi Gacogne [Mon, 18 May 2026 14:13:04 +0000 (16:13 +0200)] 
credentials: Fix formatting

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agodnsdist: Silence clang-tidy 17392/head
Remi Gacogne [Mon, 18 May 2026 14:10:43 +0000 (16:10 +0200)] 
dnsdist: Silence clang-tidy

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agodnsdist: More clang-tidy fixes
Remi Gacogne [Mon, 18 May 2026 14:08:41 +0000 (16:08 +0200)] 
dnsdist: More clang-tidy fixes

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agoMerge pull request #17394 from rgacogne/ddist-edns
Remi Gacogne [Mon, 18 May 2026 14:00:36 +0000 (16:00 +0200)] 
Merge pull request #17394 from rgacogne/ddist-edns

dnsdist: Fix two small EDNS addition related bugs

4 weeks agoMerge pull request #17396 from rgacogne/snmp-leak
Remi Gacogne [Mon, 18 May 2026 14:00:24 +0000 (16:00 +0200)] 
Merge pull request #17396 from rgacogne/snmp-leak

snmp-agent: Fix a memory leak

4 weeks agoMerge pull request #17397 from rgacogne/ddist-doq-max-query-size
Remi Gacogne [Mon, 18 May 2026 14:00:12 +0000 (16:00 +0200)] 
Merge pull request #17397 from rgacogne/ddist-doq-max-query-size

dnsdist: Check the DoQ query size against the received size

4 weeks agocredentials: Try even harder to clear existing content
Remi Gacogne [Mon, 18 May 2026 13:58:40 +0000 (15:58 +0200)] 
credentials: Try even harder to clear existing content

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agoMerge pull request #17306 from PowerDNS/dependabot/github_actions/sigstore/cosign...
Remi Gacogne [Mon, 18 May 2026 13:42:08 +0000 (15:42 +0200)] 
Merge pull request #17306 from PowerDNS/dependabot/github_actions/sigstore/cosign-installer-4.1.2

build(deps): bump sigstore/cosign-installer from 4.1.1 to 4.1.2

4 weeks agoMerge pull request #17398 from rgacogne/libssl-minor-fixes
Remi Gacogne [Mon, 18 May 2026 13:38:41 +0000 (15:38 +0200)] 
Merge pull request #17398 from rgacogne/libssl-minor-fixes

libssl: Minor fixes

4 weeks agoMerge pull request #17399 from rgacogne/ddist-minor-fixes
Remi Gacogne [Mon, 18 May 2026 13:38:24 +0000 (15:38 +0200)] 
Merge pull request #17399 from rgacogne/ddist-minor-fixes

dnsdist: More minor fixes

4 weeks agodnsdist: Handle large YAML values for a backend weight
Remi Gacogne [Mon, 18 May 2026 13:36:37 +0000 (15:36 +0200)] 
dnsdist: Handle large YAML values for a backend weight

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agotcpiohandler: Appease clang-tidy
Remi Gacogne [Mon, 18 May 2026 12:50:22 +0000 (14:50 +0200)] 
tcpiohandler: Appease clang-tidy

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agodnsdist: Really fix Python indentation 17390/head
Remi Gacogne [Mon, 18 May 2026 12:48:22 +0000 (14:48 +0200)] 
dnsdist: Really fix Python indentation

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agodnsdist: Hopefully fixes spurious failures of TestHealthCheckLatency 17400/head
Remi Gacogne [Mon, 18 May 2026 12:40:02 +0000 (14:40 +0200)] 
dnsdist: Hopefully fixes spurious failures of TestHealthCheckLatency

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agoMerge pull request #17395 from rgacogne/ddist-logging-iso8601
Remi Gacogne [Mon, 18 May 2026 11:58:47 +0000 (13:58 +0200)] 
Merge pull request #17395 from rgacogne/ddist-logging-iso8601

dnsdist: Use the correct timestamp, not now, for ISO-8601 format

4 weeks agoMerge pull request #17391 from rgacogne/ddist-tee-metrics
Remi Gacogne [Mon, 18 May 2026 11:58:36 +0000 (13:58 +0200)] 
Merge pull request #17391 from rgacogne/ddist-tee-metrics

dnsdist: Fix TeeAction metrics on error/short datagrams

4 weeks agodnsdist: Fix Python formatting
Remi Gacogne [Mon, 18 May 2026 11:12:29 +0000 (13:12 +0200)] 
dnsdist: Fix Python formatting

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
4 weeks agodnsdist: Porperly skip network addresses with no mask 17399/head
Remi Gacogne [Mon, 18 May 2026 11:05:20 +0000 (13:05 +0200)] 
dnsdist: Porperly skip network addresses with no mask

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>