]> git.ipfire.org Git - thirdparty/pdns.git/log
thirdparty/pdns.git
8 weeks agoMerge pull request #17215 from rgacogne/ddist-ywh-174
Remi Gacogne [Wed, 22 Apr 2026 19:55:46 +0000 (21:55 +0200)] 
Merge pull request #17215 from rgacogne/ddist-ywh-174

dnsdist: Cap the amount of data buffered toward a DoH server

8 weeks agoMerge pull request #17197 from omoerbeek/rec-cachesize-neg-aggr
Otto Moerbeek [Wed, 22 Apr 2026 19:03:52 +0000 (21:03 +0200)] 
Merge pull request #17197 from omoerbeek/rec-cachesize-neg-aggr

rec: estimate size and refuse to cache big negcache entries

8 weeks agoMerge pull request #17200 from omoerbeek/yahttp-size
Otto Moerbeek [Wed, 22 Apr 2026 18:37:25 +0000 (20:37 +0200)] 
Merge pull request #17200 from omoerbeek/yahttp-size

all: Fix two cases of lacking/wrong max size compares (YWH-PGM6095-90)

8 weeks agoMerge pull request #17196 from omoerbeek/yahttp-chunksize
Otto Moerbeek [Wed, 22 Apr 2026 18:36:41 +0000 (20:36 +0200)] 
Merge pull request #17196 from omoerbeek/yahttp-chunksize

all: better handling of yahttp chunksize

8 weeks agoMerge pull request #17194 from omoerbeek/rec-limit-web-req
Otto Moerbeek [Wed, 22 Apr 2026 18:13:53 +0000 (20:13 +0200)] 
Merge pull request #17194 from omoerbeek/rec-limit-web-req

rec: limit size of incoming web request.

8 weeks agoMerge pull request #17217 from omoerbeek/rec-docs-refs
Otto Moerbeek [Wed, 22 Apr 2026 17:41:13 +0000 (19:41 +0200)] 
Merge pull request #17217 from omoerbeek/rec-docs-refs

rec docs: add references in changelogs, now that the PR numbers are known

8 weeks agoMerge pull request #17198 from miodvallat/sa-2026-05
Miod Vallat [Wed, 22 Apr 2026 16:17:54 +0000 (18:17 +0200)] 
Merge pull request #17198 from miodvallat/sa-2026-05

auth: fixes for SA 2026-05

8 weeks agoBuglets in the 2026-05 SA 17228/head
Miod Vallat [Wed, 22 Apr 2026 14:18:59 +0000 (16:18 +0200)] 
Buglets in the 2026-05 SA

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
8 weeks agodnsdist: Hopefully make the spell checker happy 17218/head
Remi Gacogne [Wed, 22 Apr 2026 13:20:21 +0000 (15:20 +0200)] 
dnsdist: Hopefully make the spell checker happy

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
8 weeks agodnsdist: Update ChangeLog and security polling zone for 1.9.14, 2.0.5
Remi Gacogne [Wed, 22 Apr 2026 12:42:33 +0000 (14:42 +0200)] 
dnsdist: Update ChangeLog and security polling zone for 1.9.14, 2.0.5

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
8 weeks agorec docs: add references in changelogs, now that the PR numbers are known 17217/head
Otto Moerbeek [Wed, 22 Apr 2026 12:24:14 +0000 (14:24 +0200)] 
rec docs: add references in changelogs, now that the PR numbers are known

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
8 weeks agoMerge pull request #17157 from rgacogne/rec-fix-17137
Otto Moerbeek [Wed, 22 Apr 2026 12:16:22 +0000 (14:16 +0200)] 
Merge pull request #17157 from rgacogne/rec-fix-17137

rec: Fix DNAME interaction with aggressive use of NSEC3

8 weeks agoMerge pull request #17156 from rgacogne/rec-fix-17136
Otto Moerbeek [Wed, 22 Apr 2026 12:15:08 +0000 (14:15 +0200)] 
Merge pull request #17156 from rgacogne/rec-fix-17136

rec: Fix DNSSEC validation of wildcard-expanded proof

8 weeks agoReformat 17194/head
Otto Moerbeek [Wed, 22 Apr 2026 12:09:33 +0000 (14:09 +0200)] 
Reformat

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
8 weeks agoFix writer and text parser for too long alpn values. 17198/head
Otto Moerbeek [Wed, 22 Apr 2026 07:33:37 +0000 (09:33 +0200)] 
Fix writer and text parser for too long alpn values.

This is CVE-2026-33611, part of PowerDNS Security Advisory 2026-05.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
8 weeks agoMake sure to wrap the socket in a unique_ptr to close it in all cases.
Miod Vallat [Wed, 22 Apr 2026 07:31:52 +0000 (09:31 +0200)] 
Make sure to wrap the socket in a unique_ptr to close it in all cases.

Also add a log message for empty update from rogue primaries.

This is CVE-2026-33610, part of PowerDNS Security Advisory 2026-05.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
8 weeks agoRewrite the ldap escape function, and always escape network-controlled input.
Miod Vallat [Wed, 22 Apr 2026 07:30:16 +0000 (09:30 +0200)] 
Rewrite the ldap escape function, and always escape network-controlled input.

This new version now will correctly handle 8-bit characters (which need to
be encoded in UTF-8 and then escaped), as well as the corner cases of
leading space or # and trailing space.

This is CVE-2026-33609, part of PowerDNS Security Advisory 2026-05.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
8 weeks agoPrevent creadeSecondaryDomain from creating an invalid bind configuration.
Miod Vallat [Wed, 22 Apr 2026 07:29:17 +0000 (09:29 +0200)] 
Prevent creadeSecondaryDomain from creating an invalid bind configuration.

- reject domain names containing quotes, as these are not allowed by bind.
- make sure the generated filename to be used to store domain data is not
  empty and does not contain path separators.

This is CVE-2026-33608, part of PowerDNS Security Advisory 2026-05.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
8 weeks agoMerge pull request #17193 from miodvallat/secpopaul
Miod Vallat [Wed, 22 Apr 2026 11:17:39 +0000 (13:17 +0200)] 
Merge pull request #17193 from miodvallat/secpopaul

auth: SA 2026-05 updates

8 weeks agoDocumentation updates for 4.9.14 and 5.0.4. 17193/head
Miod Vallat [Wed, 22 Apr 2026 09:30:11 +0000 (11:30 +0200)] 
Documentation updates for 4.9.14 and 5.0.4.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
8 weeks agodnsdist: Fix CVSS links in security advisory 2026-04 17204/head
Remi Gacogne [Wed, 22 Apr 2026 10:33:15 +0000 (12:33 +0200)] 
dnsdist: Fix CVSS links in security advisory 2026-04

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
8 weeks agoMerge pull request #17189 from rgacogne/ddist-1.9.13-2.0.4-changelog-secpoll
Remi Gacogne [Wed, 22 Apr 2026 09:47:24 +0000 (11:47 +0200)] 
Merge pull request #17189 from rgacogne/ddist-1.9.13-2.0.4-changelog-secpoll

dnsdist: Update ChangeLog, security advisories and secpoll for 1.9.13 and 2.0.4

8 weeks agoMerge pull request #17188 from omoerbeek/rec-docs-cl-sa-fix
Otto Moerbeek [Wed, 22 Apr 2026 09:12:57 +0000 (11:12 +0200)] 
Merge pull request #17188 from omoerbeek/rec-docs-cl-sa-fix

rec docs; fix typos in SA-2026-03 and changelog, from dwfreed and winfried

8 weeks agodnsdist: Fix spelling mistakes 17189/head
Remi Gacogne [Tue, 21 Apr 2026 10:33:51 +0000 (12:33 +0200)] 
dnsdist: Fix spelling mistakes

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
8 weeks agoTell our spell-checker to allow security researcher names, and PRSD
Remi Gacogne [Tue, 21 Apr 2026 10:26:11 +0000 (12:26 +0200)] 
Tell our spell-checker to allow security researcher names, and PRSD

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
8 weeks agodnsdist: Update ChangeLog, security advisories and secpoll for 1.9.13 and 2.0.4
Remi Gacogne [Tue, 21 Apr 2026 10:18:55 +0000 (12:18 +0200)] 
dnsdist: Update ChangeLog, security advisories and secpoll for 1.9.13 and 2.0.4

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
8 weeks agorec docs; fix typos in SA-2026-03 and changelog, from dwfreed and winfried 17188/head
Otto Moerbeek [Wed, 22 Apr 2026 08:57:32 +0000 (10:57 +0200)] 
rec docs; fix typos in SA-2026-03 and changelog, from dwfreed and winfried

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
8 weeks agoMerge pull request #17181 from omoerbeek/rec-prep-20260422
Otto Moerbeek [Wed, 22 Apr 2026 07:53:36 +0000 (09:53 +0200)] 
Merge pull request #17181 from omoerbeek/rec-prep-20260422

rec: Prep for SA-2026-03

8 weeks agorec: Prep for SA-2026-03 17181/head
Otto Moerbeek [Tue, 21 Apr 2026 08:30:34 +0000 (10:30 +0200)] 
rec: Prep for SA-2026-03

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
8 weeks agodnsdist: Add per-backend `max_udp_outstanding` YAML config setting 17180/head
Robert Edmonds [Tue, 21 Apr 2026 21:22:32 +0000 (17:22 -0400)] 
dnsdist: Add per-backend `max_udp_outstanding` YAML config setting

This commit adds a new per-backend config setting `max_udp_outstanding`
which overrides the global `tuning.udp.max_outstanding_per_backend`
setting.

If the per-backend `max_udp_outstanding` setting is omitted, the value
of the global option `tuning.udp.max_outstanding_per_backend` will be
used instead.

This allows tuning the number of UDP states allocated on a per-backend
basis in order to tune the amount of memory consumed by dnsdist.
Low-latency backends may only need a small number of UDP states, while
high-latency backends may need a higher number of UDP states.

The `tuning.udp.max_outstanding_per_backend` setting and the new
per-backend `max_udp_outstanding` setting directly control the sizes of
the vectors of `IDState` objects that are preallocated at startup.

The size of the `IDState` object can vary depending on compile time
options, but in my local build it is currently 496 bytes. This means
that a backend with the maximum number of UDP states (65535) will
require allocating at least (496 * 65535 / 1048576) = 31 MB. Similarly,
a backend with 8192 UDP states will require allocating 3.9 MB, and a
backend with 256 UDP states only requires 124 KB.

Signed-off-by: Robert Edmonds <edmonds@users.noreply.github.com>
8 weeks agoMerge pull request #17164 from rgacogne/ddist-error-on-unhandled-switch-case
Remi Gacogne [Tue, 21 Apr 2026 14:41:39 +0000 (16:41 +0200)] 
Merge pull request #17164 from rgacogne/ddist-error-on-unhandled-switch-case

dnsdist: Error on unhandled switch cases while in CI

8 weeks agodnsdist: Error on unhandled switch cases while in CI 17164/head
Remi Gacogne [Tue, 21 Apr 2026 12:42:15 +0000 (14:42 +0200)] 
dnsdist: Error on unhandled switch cases while in CI

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
8 weeks agoMerge pull request #17161 from omoerbeek/rec-rpz-zonemd
Otto Moerbeek [Tue, 21 Apr 2026 11:42:49 +0000 (13:42 +0200)] 
Merge pull request #17161 from omoerbeek/rec-rpz-zonemd

rec: skip ZONEMD records in RPZs

8 weeks agodnsdist: Check the required size before DNSCrypt padding early, as suggested by Miod 17216/head
Remi Gacogne [Tue, 21 Apr 2026 09:28:55 +0000 (11:28 +0200)] 
dnsdist: Check the required size before DNSCrypt padding early, as suggested by Miod

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
8 weeks agoMerge pull request #16725 from miodvallat/split-domain
Miod Vallat [Mon, 20 Apr 2026 14:01:01 +0000 (16:01 +0200)] 
Merge pull request #16725 from miodvallat/split-domain

auth lmdb: split domains table

8 weeks agoMerge pull request #17160 from miodvallat/fasten_your_seat_belts
Miod Vallat [Mon, 20 Apr 2026 13:43:29 +0000 (15:43 +0200)] 
Merge pull request #17160 from miodvallat/fasten_your_seat_belts

auth: safer lua geoip queries

8 weeks agoMerge pull request #17014 from miodvallat/protobof
Miod Vallat [Mon, 20 Apr 2026 13:42:54 +0000 (15:42 +0200)] 
Merge pull request #17014 from miodvallat/protobof

auth: simple protobuf logging support

8 weeks agoSimpler serialization code. 16725/head
Miod Vallat [Mon, 20 Apr 2026 13:21:18 +0000 (15:21 +0200)] 
Simpler serialization code.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
8 weeks agodnsbackend: add default comment search logic, and enable comment search test for... 16522/head
Peter van Dijk [Thu, 20 Nov 2025 11:27:14 +0000 (12:27 +0100)] 
dnsbackend: add default comment search logic, and enable comment search test for lmdb

Signed-off-by: Peter van Dijk <peter.van.dijk@powerdns.com>
8 weeks agoauth api tests: comments testing for lmdb
Peter van Dijk [Fri, 14 Nov 2025 13:08:52 +0000 (14:08 +0100)] 
auth api tests: comments testing for lmdb

Signed-off-by: Peter van Dijk <peter.van.dijk@powerdns.com>
8 weeks agolmdbbackend: implement comments
Peter van Dijk [Tue, 11 Nov 2025 16:04:01 +0000 (17:04 +0100)] 
lmdbbackend: implement comments

Co-authored-by: Miod Vallat <miod.vallat@powerdns.com>
Signed-off-by: Peter van Dijk <peter.van.dijk@powerdns.com>
8 weeks agopdnsutil: add rrset comment management
Peter van Dijk [Thu, 13 Nov 2025 10:33:16 +0000 (11:33 +0100)] 
pdnsutil: add rrset comment management

Signed-off-by: Peter van Dijk <peter.van.dijk@powerdns.com>
8 weeks agoadd comments dbi
Peter van Dijk [Tue, 11 Nov 2025 14:30:56 +0000 (15:30 +0100)] 
add comments dbi

Signed-off-by: Peter van Dijk <peter.van.dijk@powerdns.com>
8 weeks agoNFC: rename records dbi to rdbi
Peter van Dijk [Tue, 11 Nov 2025 14:27:21 +0000 (15:27 +0100)] 
NFC: rename records dbi to rdbi

Signed-off-by: Peter van Dijk <peter.van.dijk@powerdns.com>
8 weeks agoUpdate locking to SharedLockGuard. 17160/head
Miod Vallat [Mon, 20 Apr 2026 12:36:57 +0000 (14:36 +0200)] 
Update locking to SharedLockGuard.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
8 weeks agoMerge pull request #17053 from kabenin/fix/lua_addRecord
Otto Moerbeek [Mon, 20 Apr 2026 12:36:18 +0000 (14:36 +0200)] 
Merge pull request #17053 from kabenin/fix/lua_addRecord

recursor: Fix lua addRecord function implementation

8 weeks agoRemove unused variable.
Miod Vallat [Mon, 20 Apr 2026 12:08:39 +0000 (14:08 +0200)] 
Remove unused variable.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
8 weeks agodnsdist: Fix the `StatNode::fullname` issue introduced in 2.0.4 17212/head
Remi Gacogne [Mon, 20 Apr 2026 10:33:18 +0000 (12:33 +0200)] 
dnsdist: Fix the `StatNode::fullname` issue introduced in 2.0.4

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
8 weeks agorec: skip ZONEMD records in RPZs 17161/head
Otto Moerbeek [Mon, 20 Apr 2026 10:00:28 +0000 (12:00 +0200)] 
rec: skip ZONEMD records in RPZs

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
8 weeks agorec: Fix DNAME interaction with aggressive use of NSEC3 17157/head
Remi Gacogne [Fri, 17 Apr 2026 15:40:57 +0000 (17:40 +0200)] 
rec: Fix DNAME interaction with aggressive use of NSEC3

rfc6672 section 5.3.2 "DNAME Bit in NSEC Type Map":

In any negative response, the NSEC or NSEC3 [RFC5155] record type
bitmap SHOULD be checked to see that there was no DNAME that could
have been applied. If the DNAME bit in the type bitmap is set and
the query name is a subdomain of the closest encloser that is
asserted, then DNAME substitution should have been done, but the
substitution has not been done as specified.

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
8 weeks agorec: Use `DNSName::trimToLabels` as suggested by Miod (thanks!) 17156/head
Remi Gacogne [Mon, 20 Apr 2026 09:09:49 +0000 (11:09 +0200)] 
rec: Use `DNSName::trimToLabels` as suggested by Miod (thanks!)

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
8 weeks agorec: Remove left-over debugging
Remi Gacogne [Mon, 20 Apr 2026 09:08:15 +0000 (11:08 +0200)] 
rec: Remove left-over debugging

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
8 weeks agoMake the optional argument accept both DNSName and string 17053/head
Otto Moerbeek [Tue, 31 Mar 2026 10:19:37 +0000 (12:19 +0200)] 
Make the optional argument accept both DNSName and string

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Signed-off-by: Sasha Kabenin <28066869+kabenin@users.noreply.github.com>
8 weeks agorename test to better align with existing tests
Sasha Kabenin [Sat, 28 Mar 2026 00:01:10 +0000 (17:01 -0700)] 
rename test to better align with existing tests

Signed-off-by: Sasha Kabenin <28066869+kabenin@users.noreply.github.com>
8 weeks agoFix recursor lua addRecord function's impl in C++
Sasha Kabenin [Fri, 27 Mar 2026 23:05:16 +0000 (16:05 -0700)] 
Fix recursor lua addRecord function's impl in C++

name argiment must be DNSName, not string

Signed-off-by: Sasha Kabenin <28066869+kabenin@users.noreply.github.com>
8 weeks agoMerge pull request #17150 from rgacogne/ddist-missing-forward-for-header-on-existing...
Remi Gacogne [Mon, 20 Apr 2026 07:52:14 +0000 (09:52 +0200)] 
Merge pull request #17150 from rgacogne/ddist-missing-forward-for-header-on-existing-conn

dnsdist: Handle missing X-Forwarded-For on existing DoH connection

8 weeks agoBe sure to hold a read lock during Lua queries.
Miod Vallat [Mon, 20 Apr 2026 06:32:28 +0000 (08:32 +0200)] 
Be sure to hold a read lock during Lua queries.

Fixes: #17158
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 months agorec: Fix DNSSEC validation of wildcard-expanded proof
Remi Gacogne [Fri, 17 Apr 2026 14:19:13 +0000 (16:19 +0200)] 
rec: Fix DNSSEC validation of wildcard-expanded proof

When the answer has been expanded from a wildcard, we need
to check that the next closer does not exist, and not that
the qname does not. If the next closer does exist, the
wildcard cannot be applied.

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
2 months agoMerge pull request #17155 from miodvallat/i_can_haz_ttl
Miod Vallat [Fri, 17 Apr 2026 13:26:02 +0000 (15:26 +0200)] 
Merge pull request #17155 from miodvallat/i_can_haz_ttl

auth: dnsupdate handling buglet

2 months agoPerform the CNAME unicity tests during updates regardless of the TTL. 17155/head
Miod Vallat [Fri, 17 Apr 2026 12:36:37 +0000 (14:36 +0200)] 
Perform the CNAME unicity tests during updates regardless of the TTL.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 months agoMerge pull request #17152 from miodvallat/did_not_age_well
Miod Vallat [Fri, 17 Apr 2026 12:10:10 +0000 (14:10 +0200)] 
Merge pull request #17152 from miodvallat/did_not_age_well

auth: fixes to AXFR in Bind backend

2 months agoMerge pull request #17153 from rgacogne/ddist-better-handling-of-nghttp2-errors
Remi Gacogne [Fri, 17 Apr 2026 12:06:51 +0000 (14:06 +0200)] 
Merge pull request #17153 from rgacogne/ddist-better-handling-of-nghttp2-errors

dnsdist: Better handling of nghttp2 errors

2 months agoMerge pull request #17154 from rgacogne/ddist-outgoing-doh-remove-debug
Remi Gacogne [Fri, 17 Apr 2026 11:40:05 +0000 (13:40 +0200)] 
Merge pull request #17154 from rgacogne/ddist-outgoing-doh-remove-debug

dnsdist: Remove commented out leftover debug messages in outgoing DoH

2 months agodnsdist: Don't try to convert consumed bytes to a nghttp2 error 17153/head
Remi Gacogne [Fri, 17 Apr 2026 11:06:27 +0000 (13:06 +0200)] 
dnsdist: Don't try to convert consumed bytes to a nghttp2 error

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
2 months agodnsdist: Remove commented out leftover debug messages in outgoing DoH 17154/head
Remi Gacogne [Fri, 17 Apr 2026 10:16:10 +0000 (12:16 +0200)] 
dnsdist: Remove commented out leftover debug messages in outgoing DoH

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
2 months agodnsdist: Better handling of nghttp2 errors
Remi Gacogne [Fri, 17 Apr 2026 10:11:52 +0000 (12:11 +0200)] 
dnsdist: Better handling of nghttp2 errors

There are a few cases where an error returned by `nghttp2` could
have been silently ignored. Thanks to ilhamaf for reporting this!
As far as I can tell there is no actual impact, except perhaps that
we can detect errors/stale connections earlier, but I haven't been
able to cause any actual problem introduced by not handling these
errors properly.

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
2 months agoReject complete XFR or Update with Lua records, rather than skipping them. 17131/head
Miod Vallat [Fri, 10 Apr 2026 08:44:00 +0000 (10:44 +0200)] 
Reject complete XFR or Update with Lua records, rather than skipping them.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 months agoAdd a new configuration setting to prevent modification of Lua records.
Miod Vallat [Fri, 10 Apr 2026 07:24:57 +0000 (09:24 +0200)] 
Add a new configuration setting to prevent modification of Lua records.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 months agoHarden stripDomainSuffix() logic. 17152/head
Miod Vallat [Thu, 16 Apr 2026 14:28:14 +0000 (16:28 +0200)] 
Harden stripDomainSuffix() logic.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 months agoMerge pull request #17151 from rgacogne/ddist-ywh-230
Remi Gacogne [Thu, 16 Apr 2026 14:49:17 +0000 (16:49 +0200)] 
Merge pull request #17151 from rgacogne/ddist-ywh-230

dnsdist: Fix handling of long HTTP/2 Date headers, handle non-POSIX locales

2 months agoDrop boolean return from stripDomainSuffix().
Miod Vallat [Fri, 27 Jun 2025 09:53:20 +0000 (11:53 +0200)] 
Drop boolean return from stripDomainSuffix().

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 months agoRemove ciEqual(), clone of pdns_iequals().
Miod Vallat [Fri, 27 Jun 2025 09:20:29 +0000 (11:20 +0200)] 
Remove ciEqual(), clone of pdns_iequals().

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 months agoMerge pull request #17149 from miodvallat/parse_is_hard
Miod Vallat [Thu, 16 Apr 2026 12:22:50 +0000 (14:22 +0200)] 
Merge pull request #17149 from miodvallat/parse_is_hard

webserver: correctly split the basic authorization cookie

2 months agoMerge pull request #17148 from miodvallat/httpenury
Miod Vallat [Thu, 16 Apr 2026 12:22:22 +0000 (14:22 +0200)] 
Merge pull request #17148 from miodvallat/httpenury

auth: add a configurable limit of web server connections

2 months agodnsdist: Check the value of the HTTP Date header, even with a weird locale 17151/head
Remi Gacogne [Thu, 16 Apr 2026 10:40:08 +0000 (12:40 +0200)] 
dnsdist: Check the value of the HTTP Date header, even with a weird locale

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
2 months agodnsdist: Use the POSIX locale to generate the HTTP Date header
Remi Gacogne [Thu, 16 Apr 2026 10:37:56 +0000 (12:37 +0200)] 
dnsdist: Use the POSIX locale to generate the HTTP Date header

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
2 months agodnsdist: Split HTTP Date header generation, use timebuf_t
Remi Gacogne [Thu, 16 Apr 2026 09:47:41 +0000 (11:47 +0200)] 
dnsdist: Split HTTP Date header generation, use timebuf_t

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
2 months agodnsdist: Fix handling of long HTTP/2 Date headers
Remi Gacogne [Tue, 14 Apr 2026 08:14:36 +0000 (10:14 +0200)] 
dnsdist: Fix handling of long HTTP/2 Date headers

Some days of the year can, in some specific locales, require more than 40 bytes.
We should handle that gracefully with a larger buffer, and also just skip the
`Date` header altogether if it somehow does not fit into our buffer.

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
2 months agodnsdist: Appease ruff 17150/head
Remi Gacogne [Thu, 16 Apr 2026 10:21:44 +0000 (12:21 +0200)] 
dnsdist: Appease ruff

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
2 months agodnsdist: Handle missing X-Forwarded-For on existing DoH connection
Remi Gacogne [Thu, 16 Apr 2026 09:18:17 +0000 (11:18 +0200)] 
dnsdist: Handle missing X-Forwarded-For on existing DoH connection

If `trustForwardedForHeader` is enabled, meaning we trust an upstream
reverse-proxy to fill it with the address of the initial client, and
the header was set on at least one previous query of the current DoH
connection, but is missing from the current query, we should fall back
to the address the connection is coming from instead of using the value
of the last received `X-Forwarded-For` header.
This should never happen in practice: if we trust the reverse proxy
to set the `X-Forwarded-For` header it should always do so. But let's
handle the case nevertheless, or we will get an endless stream of
reports from LLMs about it.

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
2 months agoCorrectly split the basic authorization cookie. 17149/head
Miod Vallat [Thu, 16 Apr 2026 07:16:12 +0000 (09:16 +0200)] 
Correctly split the basic authorization cookie.

This allows passwords containing colons to be correctly handled.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 months agoAdd a limit of the number of concurrent connections to auth webserver. 17148/head
Miod Vallat [Thu, 16 Apr 2026 06:49:10 +0000 (08:49 +0200)] 
Add a limit of the number of concurrent connections to auth webserver.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 months agoMove connection-management.hh to shared place.
Miod Vallat [Wed, 15 Apr 2026 12:40:47 +0000 (14:40 +0200)] 
Move connection-management.hh to shared place.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 months agoMerge pull request #17002 from miodvallat/directbackenderror
Miod Vallat [Wed, 15 Apr 2026 07:44:38 +0000 (09:44 +0200)] 
Merge pull request #17002 from miodvallat/directbackenderror

pdnsutil: possibly helpful backend-cmd help

2 months agoMerge pull request #17134 from miodvallat/gallup
Miod Vallat [Wed, 15 Apr 2026 07:44:11 +0000 (09:44 +0200)] 
Merge pull request #17134 from miodvallat/gallup

auth: only perform secpoll checks when they make sense

2 months agoMerge pull request #17141 from rgacogne/ddist-coverity-20260414
Remi Gacogne [Wed, 15 Apr 2026 06:59:37 +0000 (08:59 +0200)] 
Merge pull request #17141 from rgacogne/ddist-coverity-20260414

dnsdist: Silence performance warnings from Coverity

2 months agodnsdist: Silence performance warnings from Coverity 17141/head
Remi Gacogne [Tue, 14 Apr 2026 09:13:58 +0000 (11:13 +0200)] 
dnsdist: Silence performance warnings from Coverity

Coverity (CID 503155 and 503156, at least) is worried that we are
mistakenly duplicating the `std::string`s that our Lua bindings are
returning. We are doing it on purpose, so let's make it clear.

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
2 months agoMerge pull request #17140 from PowerDNS/dependabot/cargo/pdns/recursordist/rec-rust...
Remi Gacogne [Tue, 14 Apr 2026 07:55:25 +0000 (09:55 +0200)] 
Merge pull request #17140 from PowerDNS/dependabot/cargo/pdns/recursordist/rec-rust-lib/rust/rand-0.9.4

build(deps): bump rand from 0.9.2 to 0.9.4 in /pdns/recursordist/rec-rust-lib/rust

2 months agobuild(deps): bump rand in /pdns/recursordist/rec-rust-lib/rust 17140/head
dependabot[bot] [Tue, 14 Apr 2026 03:32:45 +0000 (03:32 +0000)] 
build(deps): bump rand in /pdns/recursordist/rec-rust-lib/rust

Bumps [rand](https://github.com/rust-random/rand) from 0.9.2 to 0.9.4.
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/0.9.4/CHANGELOG.md)
- [Commits](https://github.com/rust-random/rand/compare/rand_core-0.9.2...0.9.4)

---
updated-dependencies:
- dependency-name: rand
  dependency-version: 0.9.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2 months agoMerge pull request #17139 from miodvallat/codeupdate
Miod Vallat [Mon, 13 Apr 2026 16:03:20 +0000 (18:03 +0200)] 
Merge pull request #17139 from miodvallat/codeupdate

auth: comb the dns update code

2 months agoBetter variable names. 17139/head
Miod Vallat [Mon, 13 Apr 2026 13:02:29 +0000 (15:02 +0200)] 
Better variable names.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 months agoWork on DNSRecord references rather than pointers whenever possible.
Miod Vallat [Mon, 13 Apr 2026 13:02:21 +0000 (15:02 +0200)] 
Work on DNSRecord references rather than pointers whenever possible.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 months agoReduce scope of MOADNSParser objects.
Miod Vallat [Mon, 13 Apr 2026 13:02:08 +0000 (15:02 +0200)] 
Reduce scope of MOADNSParser objects.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 months agoPass the MOADNSParser d_answers field rather than the whole object.
Miod Vallat [Mon, 13 Apr 2026 13:01:54 +0000 (15:01 +0200)] 
Pass the MOADNSParser d_answers field rather than the whole object.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 months agodnsdist: Also apply UDP socket buffer sizes to backend sockets 17135/head
Remi Gacogne [Fri, 10 Apr 2026 12:45:05 +0000 (14:45 +0200)] 
dnsdist: Also apply UDP socket buffer sizes to backend sockets

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
2 months agoDo not keep secpolling for non-releases. 17134/head
Miod Vallat [Fri, 10 Apr 2026 11:58:07 +0000 (13:58 +0200)] 
Do not keep secpolling for non-releases.

Fixes: #17133
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 months agoMerge pull request #17132 from rgacogne/ddist-fix-dnsresponse_t-lua-ffi
Remi Gacogne [Fri, 10 Apr 2026 10:03:15 +0000 (12:03 +0200)] 
Merge pull request #17132 from rgacogne/ddist-fix-dnsresponse_t-lua-ffi

dnsdist: Lua FFI response actions are passed a `dnsdist_ffi_dnsresponse_t`

2 months agoAllow `dnsresponse` 17132/head
Remi Gacogne [Fri, 10 Apr 2026 09:10:24 +0000 (11:10 +0200)] 
Allow `dnsresponse`

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
2 months agodnsdist: Lua FFI _response_ actions are passed a `dnsdist_ffi_dnsresponse_t`
Remi Gacogne [Fri, 10 Apr 2026 09:04:41 +0000 (11:04 +0200)] 
dnsdist: Lua FFI _response_ actions are passed a `dnsdist_ffi_dnsresponse_t`

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
2 months agoMerge pull request #17124 from rgacogne/ddist-refactor-dq-header-interface
Remi Gacogne [Fri, 10 Apr 2026 07:08:27 +0000 (09:08 +0200)] 
Merge pull request #17124 from rgacogne/ddist-refactor-dq-header-interface

dnsdist: Refactor access to DNS headers from Lua