]>
git.ipfire.org Git - thirdparty/pdns.git/log
Remi Gacogne [Fri, 12 Jul 2024 09:49:44 +0000 (11:49 +0200)]
dnsdist: Avoid a double lookup when UMEM state debugging is enabled
Remi Gacogne [Fri, 12 Jul 2024 07:41:53 +0000 (09:41 +0200)]
dnsdist: Set the shared XSK frames in the XskWorker constructor
Remi Gacogne [Tue, 9 Jul 2024 08:33:48 +0000 (10:33 +0200)]
dnsdist: Fix wrong assertions in AF_XDP/XSK code
Remi Gacogne [Mon, 8 Jul 2024 12:58:20 +0000 (14:58 +0200)]
dnsdist: Fix code formatting
Remi Gacogne [Mon, 8 Jul 2024 12:47:54 +0000 (14:47 +0200)]
dnsdist: Make the code used to debug UMEM issues work with multiple queues
Remi Gacogne [Mon, 8 Jul 2024 12:43:21 +0000 (14:43 +0200)]
dnsdist: Fix a data race in the AF_XDP/XSK dnsdist <-> backend code
The existing code was sharing the same XskWorker between the thread
handling incoming queries (possibly replying right away for
self-answered and cache hit responses) and the one handling responses
coming from a backend (without XSK), which is wrong since the internal
queues are single-producer (and single consumer, but a worker is only
assigned to a single XskRouter which is OK).
This commit introduces a new, separate worker for the threads handling
responses coming from a backend without XSK (it was already the case
for responses coming from a backend via XSK). The new worker is marked
"outgoing-only" to ensure we are not confused about what it can be used
for, which is only sending packets, not receiving any.
Remi Gacogne [Thu, 4 Jul 2024 15:16:54 +0000 (17:16 +0200)]
dnsdist: Fix a race in the XSK/AF_XDP backend handling code
For performance reasons we used to keep a local list of available frames
in our `XskWorker` object, like we are doing in the `XskSocket` one,
to avoid having to go to the shared list which is protected by a lock.
Unfortunately, while it works well for the `XskSocket` because it is
accessed by a single `XskRouter` thread, the `XskWorker` object can
be accessed by multiple threads at once: `XskResponderThread`,
`responderThread`, `XskClientThread` and `XskRouter`. Most of the
time these threads do not acquire nor release frames to the local
list, but `responderThread` does acquire one when a response frame
is punted to the regular networking stack, and all of them release
frames when an unexpected condition occurs, for example when a queue
is full. This leads to memory corruption and to a crash.
This commit gets rid of the local list of frames in the `XskWorker`
object, acquiring and releasing them to the shared list instead, since
performance in these cases is likely not as critical. If it turns out
to be too slow, we can look into caching a few frames in a thread-local
list, but then we need to be careful not to hold on them indefinitely
which might be tricky.
Otto Moerbeek [Thu, 4 Jul 2024 12:29:05 +0000 (14:29 +0200)]
Merge pull request #14419 from omoerbeek/followup-14327
Fix compile error on OPENSSL_VERSION_MAJOR < 3
Otto Moerbeek [Thu, 4 Jul 2024 11:56:21 +0000 (13:56 +0200)]
Fix compile error on OPENSSL_VERSION_MAJOR < 3
../pdns/libssl.cc:637:28: error: no member named 'content' in 'OpenSSLTLSTicketKey'
Remi Gacogne [Thu, 4 Jul 2024 11:17:32 +0000 (13:17 +0200)]
Merge pull request #14327 from chbruyand/dnsdist-tickets-key-hook
dnsdist: add support for a callback when a new tickets key is added
Remi Gacogne [Thu, 4 Jul 2024 10:09:51 +0000 (12:09 +0200)]
dnsdist: Use a narrower scope for tickets_key_added_hook
Remi Gacogne [Wed, 3 Jul 2024 12:25:39 +0000 (14:25 +0200)]
dnsdist: Use a recursive mutex for the Lua lock
Charles-Henri Bruyand [Wed, 3 Jul 2024 11:23:30 +0000 (13:23 +0200)]
dnsdist: fix build of dnsdist least version
Charles-Henri Bruyand [Wed, 3 Jul 2024 11:22:57 +0000 (13:22 +0200)]
dnsdist: fix gnutls lib flags
Fred Morcos [Wed, 3 Jul 2024 09:37:03 +0000 (11:37 +0200)]
Merge pull request #14409 from fredmorcos/various-cleanups
Various cleanups
Otto Moerbeek [Wed, 3 Jul 2024 09:00:52 +0000 (11:00 +0200)]
Merge pull request #14401 from omoerbeek/rec-prep-
20240703
rec: Prep for rec-4.9.7 and 5.0.7 releases
Fred Morcos [Tue, 2 Jul 2024 20:21:28 +0000 (22:21 +0200)]
Some formatting of pdnsutil.cc
Fred Morcos [Tue, 2 Jul 2024 20:20:33 +0000 (22:20 +0200)]
Fix missing includes in lua2api2.hh
Charles-Henri Bruyand [Tue, 2 Jul 2024 13:41:18 +0000 (15:41 +0200)]
dndist: apply Remi's comments, thanks
Charles-Henri Bruyand [Fri, 28 Jun 2024 08:52:01 +0000 (10:52 +0200)]
tidy
Fred Morcos [Tue, 2 Jul 2024 20:20:04 +0000 (22:20 +0200)]
Cleanup geoipbackend.cc
Fred Morcos [Tue, 2 Jul 2024 20:19:34 +0000 (22:19 +0200)]
Cleanup dnspacket.cc
Fred Morcos [Tue, 2 Jul 2024 20:19:17 +0000 (22:19 +0200)]
Formatting and minor fix in misc.hh
Fred Morcos [Tue, 2 Jul 2024 20:18:55 +0000 (22:18 +0200)]
Fix config.h include in opensslsigners
Otto Moerbeek [Tue, 2 Jul 2024 13:59:12 +0000 (15:59 +0200)]
Merge pull request #14408 from omoerbeek/rec-throttle-reason
Rec throttle reason
Peter van Dijk [Tue, 2 Jul 2024 13:02:49 +0000 (15:02 +0200)]
Merge pull request #14406 from Habbie/daily-build-el-7
daily package build: use el-7 target instead of centos-7
Otto Moerbeek [Tue, 2 Jul 2024 12:47:50 +0000 (14:47 +0200)]
Reformat
Otto Moerbeek [Tue, 2 Jul 2024 12:21:55 +0000 (14:21 +0200)]
Merge pull request #14404 from omoerbeek/yahttp-router
Yahttp router: appease coverity wrt unsigned underflow in match()
Remi Gacogne [Tue, 2 Jul 2024 12:16:24 +0000 (14:16 +0200)]
Merge pull request #14343 from PowerDNS/dependabot/github_actions/docker/build-push-action-6
Bump docker/build-push-action from 5 to 6
Remi Gacogne [Tue, 2 Jul 2024 12:02:31 +0000 (14:02 +0200)]
Merge pull request #14407 from PowerDNS/dependabot/pip/pdns/dnsdistdist/docs/urllib3-2.2.2
build(deps): bump urllib3 from 2.2.0 to 2.2.2 in /pdns/dnsdistdist/docs
Otto Moerbeek [Fri, 28 Jun 2024 14:01:51 +0000 (16:01 +0200)]
Remember reason we're throttling
dependabot[bot] [Tue, 2 Jul 2024 11:17:47 +0000 (11:17 +0000)]
build(deps): bump urllib3 from 2.2.0 to 2.2.2 in /pdns/dnsdistdist/docs
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.2.0 to 2.2.2.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.2.0...2.2.2)
---
updated-dependencies:
- dependency-name: urllib3
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Peter van Dijk [Tue, 2 Jul 2024 11:17:16 +0000 (13:17 +0200)]
daily package build: use el-7 target instead of centos-7
Remi Gacogne [Tue, 2 Jul 2024 11:16:38 +0000 (13:16 +0200)]
Merge pull request #14399 from rgacogne/pkgs-slsa-dir
build-packages: Upload SLSA attestations to the right directory
Otto Moerbeek [Tue, 2 Jul 2024 11:09:03 +0000 (13:09 +0200)]
Merge pull request #14396 from omoerbeek/tidy-
20240627
Tidy sstuf.hh and shuffle.??
Otto Moerbeek [Tue, 2 Jul 2024 10:22:29 +0000 (12:22 +0200)]
Avoid upos underflowing in match loop
Otto Moerbeek [Tue, 2 Jul 2024 10:20:48 +0000 (12:20 +0200)]
no else block after break statement
Peter van Dijk [Tue, 2 Jul 2024 10:17:15 +0000 (12:17 +0200)]
Merge pull request #14400 from Habbie/el7-on-ol7
switch el7 builds to Oracle Linux 7
Otto Moerbeek [Tue, 2 Jul 2024 07:46:10 +0000 (09:46 +0200)]
Prep for rec-4.9.7 and 5.0.7 releases
Otto Moerbeek [Tue, 2 Jul 2024 10:02:52 +0000 (12:02 +0200)]
Also convert callers of readWithTimeout(), as suggested by @rgacogne
Peter van Dijk [Tue, 2 Jul 2024 09:19:31 +0000 (11:19 +0200)]
switch el7 builds to Oracle Linux 7
Remi Gacogne [Tue, 2 Jul 2024 07:41:28 +0000 (09:41 +0200)]
build-packages: Upload SLSA attestations to the right directory
Otto Moerbeek [Fri, 28 Jun 2024 13:17:59 +0000 (15:17 +0200)]
Untemplatize Throttle class
Otto Moerbeek [Wed, 26 Jun 2024 13:32:52 +0000 (15:32 +0200)]
Tidy sstuff.hh
Note the readWithTimeout() return type change to make things more consistent
Plus some asserted things that caught my eye.
Remi Gacogne [Fri, 28 Jun 2024 09:28:19 +0000 (11:28 +0200)]
Merge pull request #14395 from rgacogne/ddist-dedup-prometheus-help-type-custom-labels
dnsdist: Dedup Prometheus help and type lines for custom metrics with labels
Remi Gacogne [Fri, 28 Jun 2024 08:51:30 +0000 (10:51 +0200)]
dnsdist: Do not implicitly convert count()'s `size_type` to `bool`
Remi Gacogne [Fri, 28 Jun 2024 08:45:56 +0000 (10:45 +0200)]
dnsdist: Dedup Prometheus help and type lines for custom metrics with labels
Remi Gacogne [Fri, 28 Jun 2024 08:33:26 +0000 (10:33 +0200)]
Merge pull request #14376 from rgacogne/ddist-upstatus-race
dnsdist: Fix a race when accessing a backend health status
Remi Gacogne [Fri, 28 Jun 2024 08:33:07 +0000 (10:33 +0200)]
Merge pull request #14392 from rgacogne/ddist-quiche-0.22.0
dnsdist: Handle Quiche >= 0.22.0
Charles-Henri Bruyand [Fri, 28 Jun 2024 08:26:49 +0000 (10:26 +0200)]
dnsdist: make sure to acquire lua context lock before calling TicketsKeyAdded callback
Remi Gacogne [Fri, 28 Jun 2024 07:54:30 +0000 (09:54 +0200)]
Merge pull request #14393 from rgacogne/port-mask
AddressAndPortRange: Make it clearer only low-order bits matter to us
Remi Gacogne [Fri, 28 Jun 2024 07:53:26 +0000 (09:53 +0200)]
dnsdist: Be consistent when accessing a backend health status
Otto Moerbeek [Fri, 28 Jun 2024 05:46:24 +0000 (07:46 +0200)]
Merge pull request #14387 from omoerbeek/tidy-
20240626
Tidy lock.hh, cachecleaner.hh and sholder.hh
Otto Moerbeek [Fri, 28 Jun 2024 05:46:07 +0000 (07:46 +0200)]
Merge pull request #14386 from omoerbeek/rec-coverity-
1544951
rec: Fix coverity
1544951 copy_instead_of_move
Otto Moerbeek [Fri, 28 Jun 2024 05:45:50 +0000 (07:45 +0200)]
Merge pull request #14385 from omoerbeek/tidy-axfrtimeout
Tidy AXFRRetriever::timeoutReadn
Remi Gacogne [Thu, 27 Jun 2024 14:27:54 +0000 (16:27 +0200)]
AddressAndPortRange: Make it clearer only low-order bits matter to us
Hopefully Coverity will take the hint.
Remi Gacogne [Thu, 27 Jun 2024 14:07:20 +0000 (16:07 +0200)]
dnsdist: Handle Quiche >= 0.22.0
Quiche broke its existing API in 0.22.0: https://github.com/cloudflare/quiche/pull/1726
This pull request adds m4 code to detect whether the Quiche version
we are building against is >= 0.22.0, and if it is defines
`HAVE_QUICHE_STREAM_ERROR_CODES` which is later used by the code
using Quiche to know which version of the API to use.
Charles-Henri Bruyand [Thu, 27 Jun 2024 13:02:39 +0000 (15:02 +0200)]
dnsdist: move the setTicketsKeyAddedHook to a unique callback for every tls context
Charles-Henri Bruyand [Fri, 14 Jun 2024 15:34:04 +0000 (17:34 +0200)]
dnsdist: add support for a callback when a new tickets key is added to the tls context
Fred Morcos [Wed, 26 Jun 2024 13:13:08 +0000 (15:13 +0200)]
Merge pull request #14368 from omoerbeek/auth-odbc-build
auth: allow -lodbc in a non-standard location
Otto Moerbeek [Wed, 26 Jun 2024 12:57:19 +0000 (14:57 +0200)]
Format sstuff.hh
Otto Moerbeek [Wed, 26 Jun 2024 12:53:33 +0000 (14:53 +0200)]
Tidy shuffle.cc
Otto Moerbeek [Wed, 26 Jun 2024 12:37:17 +0000 (14:37 +0200)]
Merge pull request #14384 from omoerbeek/rec-debian-lua
rec: keep Lua config for now as existing configs might use it
Otto Moerbeek [Wed, 26 Jun 2024 12:34:08 +0000 (14:34 +0200)]
Merge pull request #14388 from omoerbeek/auth-followup-14370
auth: followup to 14370: add boost depedendency
Otto Moerbeek [Wed, 26 Jun 2024 12:00:48 +0000 (14:00 +0200)]
Update meson.build
Co-authored-by: Fred Morcos <fm@fredmorcos.com>
Otto Moerbeek [Wed, 26 Jun 2024 11:23:31 +0000 (13:23 +0200)]
auth: followup to 14370: add boost depedendency
Otto Moerbeek [Tue, 25 Jun 2024 14:31:48 +0000 (16:31 +0200)]
rec: keep Lua config as existing configs might use it
Fred Morcos [Wed, 26 Jun 2024 10:22:28 +0000 (12:22 +0200)]
Merge pull request #14370 from fredmorcos/fix-lmdb-backend-symbols
Fix the LMDB backend not finding symbols in `pdns-auth` and `pdns-auth-util`
Otto Moerbeek [Wed, 26 Jun 2024 09:53:57 +0000 (11:53 +0200)]
Tidy
Otto Moerbeek [Wed, 26 Jun 2024 09:37:23 +0000 (11:37 +0200)]
Reformat
Otto Moerbeek [Wed, 26 Jun 2024 08:13:28 +0000 (10:13 +0200)]
Fix coverity
1544951 copy_instead_of_move
Otto Moerbeek [Wed, 26 Jun 2024 08:06:25 +0000 (10:06 +0200)]
Tidy AXFRRetriever::timeoutReadn
Including a fix to timeout potentially underflowing.
Coverity complains about n (now called bytesRead) overflowing, but that's a false positive, as numread is bounded.
Otto Moerbeek [Tue, 25 Jun 2024 14:12:15 +0000 (16:12 +0200)]
Merge pull request #14381 from omoerbeek/readn2-cleanup
Cleanup read2n and mark unixDie as [[noreturn]]
Otto Moerbeek [Tue, 25 Jun 2024 12:46:30 +0000 (14:46 +0200)]
Cleanup read2n and mark unixDie as [[noreturtn]]
It might even be the case that this makes Coverity realize
pos does not overflow.
Otto Moerbeek [Tue, 25 Jun 2024 09:55:36 +0000 (11:55 +0200)]
Merge pull request #14377 from omoerbeek/rec-prep-5.1.0-rc1
Prep for rec-5.1.0-rc1
Otto Moerbeek [Mon, 24 Jun 2024 13:56:10 +0000 (15:56 +0200)]
Prep for rec-5.1.0-rc1
Remi Gacogne [Mon, 24 Jun 2024 11:19:01 +0000 (13:19 +0200)]
dnsdist: Fix a race when accessing a backend health status
While there should not be much risk in a data race involving a boolean
apart from getting an outdated value, it's still undefined behaviour
and it rightfully makes TSAN unhappy.
This commit makes the status atomic: hopefully using relaxed memory
ordering when reading the status will make it as cheap as a regular
non-atomic read on most platforms.
Otto Moerbeek [Mon, 24 Jun 2024 10:56:34 +0000 (12:56 +0200)]
Merge pull request #14374 from omoerbeek/rec-debian-tweaks
Rec followup to #14265: use correct file suffix for reloading and debian tweaks
Otto Moerbeek [Mon, 24 Jun 2024 09:32:00 +0000 (11:32 +0200)]
Also use variable suffix for file when reloading YAML-Lua config
Otto Moerbeek [Mon, 24 Jun 2024 09:10:51 +0000 (11:10 +0200)]
Merge pull request #14363 from omoerbeek/rec-rename-new-udr-settings
rec: make names of new udr settings consistent with existing scheme
Otto Moerbeek [Mon, 24 Jun 2024 07:54:58 +0000 (09:54 +0200)]
Merge pull request #14373 from omoerbeek/rec-dns64-double-soa
rec: don't send double SOA record in the case of a dns64 CNAME that does not resolve
Otto Moerbeek [Fri, 21 Jun 2024 14:31:24 +0000 (16:31 +0200)]
Add test for duplicate SOA record in the dns64/NODATA case
Otto Moerbeek [Mon, 24 Jun 2024 07:12:58 +0000 (09:12 +0200)]
rec: tweak debian install, as suggested by @zeha
Fred Morcos [Sun, 23 Jun 2024 18:46:01 +0000 (20:46 +0200)]
Auth/meson: Fix LMDB backend not finding symbols in `pdns-auth-util`
This also makes `uuid-utils.{cc,hh}` a separate `link_whole` library to allow keeping its
symbols from being stripped at link time.
Fred Morcos [Sun, 23 Jun 2024 18:45:42 +0000 (20:45 +0200)]
Auth/Meson: Add libsystemd dependency to LMDB backend
Otto Moerbeek [Fri, 21 Jun 2024 12:29:20 +0000 (14:29 +0200)]
auth: allow -lodbc in a non-standard location
needed for e.g. macOS with non-dylib odbc
Otto Moerbeek [Fri, 21 Jun 2024 10:20:34 +0000 (12:20 +0200)]
Merge pull request #14265 from omoerbeek/rec-yaml-as-conf
rec: allow recursor.conf file to contain YAML to ease transition to YAML config
Remi Gacogne [Fri, 21 Jun 2024 10:07:23 +0000 (12:07 +0200)]
Merge pull request #14366 from PowerDNS/dependabot/pip/pdns/keyroller/urllib3-1.26.19
build(deps): bump urllib3 from 1.26.18 to 1.26.19 in /pdns/keyroller
Remi Gacogne [Fri, 21 Jun 2024 10:04:06 +0000 (12:04 +0200)]
Merge pull request #14360 from rgacogne/auth-fix-distributor-unit-test-leak
auth: Better fix for the leak reported by LSAN in test-distributor_hh.cc
dependabot[bot] [Fri, 21 Jun 2024 09:27:02 +0000 (09:27 +0000)]
build(deps): bump urllib3 from 1.26.18 to 1.26.19 in /pdns/keyroller
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.18 to 1.26.19.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.18...1.26.19)
---
updated-dependencies:
- dependency-name: urllib3
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Otto Moerbeek [Fri, 21 Jun 2024 09:21:42 +0000 (11:21 +0200)]
Merge pull request #14345 from PowerDNS/dependabot/pip/pdns/recursordist/docs/urllib3-2.2.2
build(deps): bump urllib3 from 2.2.0 to 2.2.2 in /pdns/recursordist/docs
Remi Gacogne [Fri, 21 Jun 2024 09:10:28 +0000 (11:10 +0200)]
auth: Use [[maybe_unused]] in the distributor unit tests
As suggested by Otto.
Otto Moerbeek [Fri, 21 Jun 2024 09:07:03 +0000 (11:07 +0200)]
Merge pull request #14318 from omoerbeek/rec-nsname-pbout
rec: add nsName into outgoing protobuf request/response messages
Otto Moerbeek [Fri, 7 Jun 2024 11:49:49 +0000 (13:49 +0200)]
Install a small YAML default config instead of one with everything commented out
Otto Moerbeek [Fri, 7 Jun 2024 08:01:17 +0000 (10:01 +0200)]
Document the new approach of reading YAML from a recursor.conf file
Otto Moerbeek [Mon, 3 Jun 2024 12:37:35 +0000 (14:37 +0200)]
Generate no more .conf-dist file
Otto Moerbeek [Mon, 3 Jun 2024 12:59:08 +0000 (14:59 +0200)]
Adapt RH packaging
Otto Moerbeek [Mon, 3 Jun 2024 14:07:27 +0000 (16:07 +0200)]
Adapt Debian packaging
Otto Moerbeek [Wed, 29 May 2024 09:20:52 +0000 (11:20 +0200)]
rec: allow recursor.conf file to contain YAML
This should us to work around the packaging issues discussed in #13935.
THe idea is that modify the parsing so that .conf files also *may* contain YAML.
The search for a config file then becomes:
1. Try read recuror.yml if it exists. If valid, done. If it is invalid punt.
2. Try read recursor.conf as YAML. If it is valid, done.
3. If it is invalid, try to read as old-style.
This means that the status of recursor.conf as a config file does not change.
This allows us to install a default YAML config into recursor.conf for new installs.
Of course we leave recursor.conf (and recursor.yml) alone for existing installs.
This is a draft. I will add docs and packaging changes after this is deemed
the way to proceed.
Otto Moerbeek [Wed, 19 Jun 2024 14:26:29 +0000 (16:26 +0200)]
rec: make names of new udr settings consistent with existing scheme