]>
git.ipfire.org Git - thirdparty/pdns.git/log
Remi Gacogne [Tue, 24 Jan 2023 17:23:37 +0000 (18:23 +0100)]
dnsdist: Rewrite/clear records from DNS packets slightly faster
By using `std::unordered_set` instead of `std::set`.
Remi Gacogne [Tue, 24 Jan 2023 12:34:56 +0000 (13:34 +0100)]
Merge pull request #12388 from rgacogne/ddist-async
dnsdist: Implement async processing of queries and responses
Remi Gacogne [Tue, 24 Jan 2023 12:27:08 +0000 (13:27 +0100)]
Merge pull request #12441 from rgacogne/enable-lto
Add a configure option to enable LTO
Remi Gacogne [Tue, 24 Jan 2023 10:30:16 +0000 (11:30 +0100)]
Merge pull request #12424 from rgacogne/ddist-carbon-2
dnsdist: Better handling of multiple carbon servers
Remi Gacogne [Tue, 24 Jan 2023 10:16:18 +0000 (11:16 +0100)]
dnsdist: Use normalizeTV() and timeval operator+/operator-
As suggested by Otto (thanks!).
Remi Gacogne [Tue, 24 Jan 2023 10:05:17 +0000 (11:05 +0100)]
mplexer: Fix infinite (-1) timeout with kqueue and ports implementations
Remi Gacogne [Mon, 23 Jan 2023 16:58:52 +0000 (17:58 +0100)]
Merge pull request #12414 from fredmorcos/openssl3-rsa-prep
Openssl 3.0: RSA prep work
Remi Gacogne [Mon, 23 Jan 2023 16:56:45 +0000 (17:56 +0100)]
Merge pull request #12422 from rgacogne/ddist-notify-axfr-cache
dnsdist: Document interactions between XFR, NOTIFY and the cache
Peter van Dijk [Mon, 23 Jan 2023 15:58:24 +0000 (16:58 +0100)]
Merge pull request #12453 from Habbie/lockhh-stdexcept
lock.hh: include <stdexcept>
Remi Gacogne [Mon, 23 Jan 2023 14:56:24 +0000 (15:56 +0100)]
dnsdist: Stop caching responses to XFR queries
Remi Gacogne [Mon, 23 Jan 2023 14:13:50 +0000 (15:13 +0100)]
dnsdist: Simplify the sample rule to disable caching for NOTIFY queries
Remi Gacogne [Mon, 23 Jan 2023 14:13:21 +0000 (15:13 +0100)]
dnsdist: Fix a typo (ORRule -> OrRule) in the XFR documentation
Fred Morcos [Sat, 12 Nov 2022 04:37:21 +0000 (05:37 +0100)]
Cleanup OpenSSL RSA DCKE
Fred Morcos [Fri, 11 Nov 2022 09:28:09 +0000 (10:28 +0100)]
Formatting OpenSSL RSA DCKE
Peter van Dijk [Mon, 23 Jan 2023 13:54:09 +0000 (14:54 +0100)]
lock.hh: include <stdexcept>
Remi Gacogne [Mon, 23 Jan 2023 13:36:08 +0000 (14:36 +0100)]
Merge pull request #12451 from rgacogne/ci-init-pattern
CI: Initialize automatic variables to a pattern in our CI
Otto Moerbeek [Mon, 23 Jan 2023 12:11:35 +0000 (13:11 +0100)]
Merge pull request #12395 from zjs604381586/fixed-negcache
When the stale function is triggered, wrong data can be returned from negcache and record cache
Peter van Dijk [Mon, 23 Jan 2023 11:39:23 +0000 (12:39 +0100)]
Merge pull request #12304 from PowerDNS/dependabot/pip/pdns/keyroller/certifi-2022.12.7
build(deps): bump certifi from 2021.10.8 to 2022.12.7 in /pdns/keyroller
Remi Gacogne [Mon, 23 Jan 2023 11:12:54 +0000 (12:12 +0100)]
dnsdist: Apply Otto's remarks to the new carbon code
- We now explicitly convert to double, making sure that we will not
overflow by restricting the value of the counter
- Clear the endpoints list when the carbon threads are started, to
make clear we do not need them anymore
- Move the endpoints passed to the carbon threads, to make static
analysis tools happy.
Remi Gacogne [Mon, 23 Jan 2023 10:43:39 +0000 (11:43 +0100)]
rec: Initialize automatic variables to a pattern in our CI
Remi Gacogne [Mon, 23 Jan 2023 10:43:20 +0000 (11:43 +0100)]
auth: Initialize automatic variables to a pattern in our CI
Remi Gacogne [Mon, 23 Jan 2023 10:41:58 +0000 (11:41 +0100)]
dnsdist: Initialize automatic variables to a pattern in our CI
Remi Gacogne [Mon, 23 Jan 2023 09:58:29 +0000 (10:58 +0100)]
dnsdist: Really fix time computation in the async unit tests
Remi Gacogne [Mon, 23 Jan 2023 09:56:08 +0000 (10:56 +0100)]
Merge pull request #12427 from rgacogne/init-auto-vars
Add a new configure option to initialize automatic variables
Remi Gacogne [Mon, 23 Jan 2023 09:55:19 +0000 (10:55 +0100)]
Merge pull request #12433 from rgacogne/ci-fortify-3
Enable the highest supported level of `FORTIFY_SOURCE` in our CI tests
Otto Moerbeek [Mon, 23 Jan 2023 09:41:57 +0000 (10:41 +0100)]
typoe in comment
Co-authored-by: Remi Gacogne <github@coredump.fr>
Otto Moerbeek [Mon, 23 Jan 2023 09:30:57 +0000 (10:30 +0100)]
Merge pull request #12444 from omoerbeek/rec-qm-ds-fallback
rec: Do *not* use QName Minimization for DS retrievals in QM fallback mode.
Otto Moerbeek [Mon, 23 Jan 2023 09:29:18 +0000 (10:29 +0100)]
Add two test for the CNAME case and use proper named TTLs in various places
Peter van Dijk [Mon, 23 Jan 2023 09:27:55 +0000 (10:27 +0100)]
Merge pull request #11600 from rgacogne/auth-speedup-rsa-ecdsa-signatures-cleaner
auth: Speed up ECDSA and RSA signatures
Remi Gacogne [Mon, 23 Jan 2023 09:22:50 +0000 (10:22 +0100)]
Merge pull request #12447 from rgacogne/ddist-clang-warnings
dnsdist: Fix a couple warnings reported by clang++
Otto Moerbeek [Mon, 23 Jan 2023 06:53:51 +0000 (07:53 +0100)]
Merge pull request #12446 from omoerbeek/rec-stack-protector
Rec: stack protector for mthread stacks
Otto Moerbeek [Fri, 20 Jan 2023 16:19:01 +0000 (17:19 +0100)]
1024 is not enough with ASN + UBSAN, so go for 1536
Remi Gacogne [Fri, 20 Jan 2023 15:32:08 +0000 (16:32 +0100)]
dnsdist: Fix a couple warnings reported by clang++
Otto Moerbeek [Fri, 20 Jan 2023 15:25:00 +0000 (16:25 +0100)]
Allow for some headroom, needed with TSAN
Otto Moerbeek [Fri, 20 Jan 2023 15:10:20 +0000 (16:10 +0100)]
Merge pull request #12445 from omoerbeek/rec-2023-01-followup
rec: Add a bit more explanation to advisory
Otto Moerbeek [Fri, 20 Jan 2023 15:08:47 +0000 (16:08 +0100)]
Test case for a record becoming available from an auth while being served stale (negatively) by rec.
Remi Gacogne [Fri, 20 Jan 2023 15:07:48 +0000 (16:07 +0100)]
Merge pull request #12421 from rgacogne/ddist-skip-invalid-ocsp
dnsdist: Skip invalid OCSP files after issuing a warning
Otto Moerbeek [Fri, 20 Jan 2023 14:38:40 +0000 (15:38 +0100)]
missing word in comment
Co-authored-by: Remi Gacogne <github@coredump.fr>
Otto Moerbeek [Fri, 20 Jan 2023 14:34:08 +0000 (15:34 +0100)]
typo in comment
Co-authored-by: Remi Gacogne <github@coredump.fr>
Otto Moerbeek [Fri, 20 Jan 2023 14:12:03 +0000 (15:12 +0100)]
typo
Co-authored-by: Matt Nordhoff <mnordhoff@mattnordhoff.com>
Otto Moerbeek [Fri, 20 Jan 2023 13:42:39 +0000 (14:42 +0100)]
Add a bit more explanation to advisory.
Also, attribution line was lost.
Otto Moerbeek [Fri, 20 Jan 2023 13:14:00 +0000 (14:14 +0100)]
Be a bit more conservative, only clean specific (neg)cache entries if needed
*and* server-stale is active
Otto Moerbeek [Mon, 2 Jan 2023 15:28:24 +0000 (16:28 +0100)]
ASAN is greedy, give it bigger stacks
Otto Moerbeek [Mon, 2 Jan 2023 14:49:38 +0000 (15:49 +0100)]
Do *not* use QName Minimization for DS retrievals in QM fallback mode.
Otto Moerbeek [Fri, 20 Jan 2023 12:04:59 +0000 (13:04 +0100)]
Merge pull request #12431 from fredmorcos/gh-actions-docs
Migration of CircleCI documentation generation and upload to Github Actions
Otto Moerbeek [Fri, 20 Jan 2023 11:52:07 +0000 (12:52 +0100)]
Merge pull request #12443 from omoerbeek/rec-prep-4.8.1
rec: Prep for rec-4.8.1
Otto Moerbeek [Wed, 18 Jan 2023 08:55:43 +0000 (09:55 +0100)]
Prep for rec-4.8.1
Remi Gacogne [Fri, 20 Jan 2023 11:41:32 +0000 (12:41 +0100)]
Add a configure option to enable LTO
The supported options are:
- thin: this is the recommended option for clang, as it is more
scalable. It automatically determines the number of CPU cores
to use. It requires support in the linker as well.
- auto: this is the recommended option for GCC, and a valid
fallback for clang when 'thin' is not supported. It automatically
determines the number of CPU cores to use as well.
- yes: this translates to '-flto', which will use a single CPU core
in most cases, but is a valid fallback.
- no: LTO is disabled.
Remi Gacogne [Fri, 20 Jan 2023 11:36:08 +0000 (12:36 +0100)]
Merge pull request #12439 from rgacogne/fix-dnsreplay-man
dnsreplay: Fix formatting in the man page
Remi Gacogne [Fri, 20 Jan 2023 11:00:10 +0000 (12:00 +0100)]
libssl: Use decltype(&SSL_CTX_free) as suggested by Fred
Remi Gacogne [Mon, 16 Jan 2023 14:28:02 +0000 (15:28 +0100)]
dnsdist: Skip invalid OCSP files after issuing a warning
Contrary to certificates and keys, OCSP files are never required to
provide a working DoT or DoH service, so it's better to start even
if would not load all, or any, OCSP files.
Remi Gacogne [Fri, 20 Jan 2023 10:54:05 +0000 (11:54 +0100)]
Merge pull request #12435 from rgacogne/ddist-failure-server-ctx
dnsdist: Gracefully handle a failure to create a TLS server context
Remi Gacogne [Fri, 20 Jan 2023 10:51:08 +0000 (11:51 +0100)]
dnsreplay: Fix formatting in the man page
Fred Morcos [Wed, 18 Jan 2023 15:38:42 +0000 (16:38 +0100)]
Remove unused CircleCI documentation generator and upload workflows
Fred Morcos [Tue, 17 Jan 2023 23:03:56 +0000 (00:03 +0100)]
Github Actions workflow to generate and upload documentation
Fred Morcos [Thu, 19 Jan 2023 08:50:35 +0000 (09:50 +0100)]
Fix heading of Documentation section under Compiling the Recursor
Fred Morcos [Tue, 17 Jan 2023 23:01:54 +0000 (00:01 +0100)]
docs/Makefiles: Whitespace cleanup
Fred Morcos [Tue, 17 Jan 2023 14:25:22 +0000 (15:25 +0100)]
tasks.py: Missing commas
Fred Morcos [Thu, 19 Jan 2023 08:43:22 +0000 (09:43 +0100)]
Gitignore: Add .venv
Remi Gacogne [Wed, 18 Jan 2023 15:43:25 +0000 (16:43 +0100)]
dnsdist: Use pdns::OpenSSL::error and decltype()
As suggested by Fred (thanks!).
Otto Moerbeek [Wed, 18 Jan 2023 14:52:57 +0000 (15:52 +0100)]
Add a test to check that we can use the specified stack size
Actual test of the guard pages can be done, but is hard to fit in the test framework.
To test manually decrease the headroom const to 0
Remi Gacogne [Wed, 18 Jan 2023 13:58:55 +0000 (14:58 +0100)]
dnsdist: Gracefully handle a failure to create a TLS server context
Otto Moerbeek [Wed, 18 Jan 2023 08:44:38 +0000 (09:44 +0100)]
Merge pull request #12425 from omoerbeek/rec-forward-nord
rec: Change the way RD=0 forwarded queries are handled.
Remi Gacogne [Wed, 18 Jan 2023 08:43:49 +0000 (09:43 +0100)]
Merge pull request #12428 from rgacogne/moved-credentials
credentials: Explicitly clear credentials once they have been moved
Remi Gacogne [Wed, 18 Jan 2023 08:24:13 +0000 (09:24 +0100)]
Enable the highest supported level of FORTIFY_SOURCE in our CI tests
Remi Gacogne [Tue, 17 Jan 2023 16:52:09 +0000 (17:52 +0100)]
credentials: Explicitly clear credentials once they have been moved
Remi Gacogne [Tue, 17 Jan 2023 16:31:52 +0000 (17:31 +0100)]
Add a new configure option to initialize automatic variables
The new option, `--enable-auto-var-init`, when enabled, sets the
`-ftrivial-auto-var-init` flag when supported by the compiler
(GCC 12+, clang 16+) to either:
- `zero`: zero-initializes all automatic variables, and is enabled
with `--enable-auto-var-init=yes` or `--enable-auto-var-init=zero`.
This can be used as a hardening measure in production, reducing
information leakage issues.
- `pattern`: initialize all automatic variables to a pattern that
is likely to be detected, like 0xAA, and is enabled via
`--enable-auto-var-init=pattern`. This is useful in tests,
especially when the cost of sanitizers is too high.
I have not done any performance testing, but the zero option is
generally considered to have a less than 5% performance cost.
Remi Gacogne [Tue, 17 Jan 2023 15:33:33 +0000 (16:33 +0100)]
dnsdist: Document what happens on cache hit, miss after resumption
Remi Gacogne [Tue, 17 Jan 2023 15:33:06 +0000 (16:33 +0100)]
dnsdist: Fix time computation in the async unit tests
Remi Gacogne [Tue, 17 Jan 2023 15:32:24 +0000 (16:32 +0100)]
dnsdist: Better documentation for `DNSQuestion:restart()`
Remi Gacogne [Tue, 17 Jan 2023 15:31:23 +0000 (16:31 +0100)]
dnsdist: Document the valid ranges for the asynchronous identifiers
Remi Gacogne [Tue, 17 Jan 2023 15:30:48 +0000 (16:30 +0100)]
dnsdist: Better documentation for `DNSQuestion:restart()`
Remi Gacogne [Tue, 17 Jan 2023 15:29:59 +0000 (16:29 +0100)]
dnsdist: Cleanly round the elapsed time to the nearest microseconds
Remi Gacogne [Tue, 17 Jan 2023 11:31:33 +0000 (12:31 +0100)]
Merge pull request #12415 from rgacogne/ddist-improv
dnsdist: Small improvements
Otto Moerbeek [Tue, 17 Jan 2023 09:00:30 +0000 (10:00 +0100)]
Change the way RD=0 forwarded queries are handled.
Since forever, there has been special case code for forwarded queries
in the RD=0 case. This special case code does a hardcoded RD=0
query to the specified forwarder. This code has two consequences:
1. Even if the forwarder is marked recursive it gets a RD=0 query
2. The cache is not consulted at all
The corresponding unit tests actually test this behaviour, but after
historic digging with help from @rgacogne it turns out the the unit
test do not reflect the desired functionality, but the current state
of affairs to help with a refactoring PR. That is good, since
refactoring should not change functionality.
But now the time has come to change the code to do the desired thing:
1. If an RD=0 query is received, do a cache only-lookup in all cases.
2. Never send a RD=0 query to a recursive forwarder
I already did a similar thing when I wrote the QName Minimization
code, introducing a conditional that only gets set for that case,
to avoid changing unrelated (to QM) functionality.
Remi Gacogne [Tue, 17 Jan 2023 08:53:53 +0000 (09:53 +0100)]
Merge pull request #12381 from rgacogne/fortify-3
Enable FORTIFY_SOURCE=3 when supported by the compiler
Otto Moerbeek [Tue, 17 Jan 2023 08:11:16 +0000 (09:11 +0100)]
Merge pull request #12420 from omoerbeek/rec-README
rec: README tweaks, .md does not know :program:`...`
Remi Gacogne [Mon, 16 Jan 2023 17:20:28 +0000 (18:20 +0100)]
dnsdist: Better handling of multiple carbon servers
Otto Moerbeek [Mon, 16 Jan 2023 15:15:09 +0000 (16:15 +0100)]
Merge pull request #12407 from omoerbeek/rec-ecs-chaining
rec: do not chain ecs enabled queries
Otto Moerbeek [Mon, 16 Jan 2023 15:06:15 +0000 (16:06 +0100)]
Merge pull request #12419 from omoerbeek/rec-close-fd-on-fdopen-fail
rec: negcache dump code: close fd on fdopen fail
Remi Gacogne [Mon, 16 Jan 2023 14:55:28 +0000 (15:55 +0100)]
dnsdist: Document interactions between XFR, NOTIFY and the cache
Otto Moerbeek [Mon, 16 Jan 2023 14:24:15 +0000 (15:24 +0100)]
rec: README tweaks, .md does not know :program:`...`
Otto Moerbeek [Mon, 16 Jan 2023 14:15:30 +0000 (15:15 +0100)]
Merge pull request #12364 from rgacogne/rec-doc-compiling
rec: In compiling docs, warn about the GH tarballs, add deps from README
Otto Moerbeek [Mon, 16 Jan 2023 14:10:22 +0000 (15:10 +0100)]
Merge pull request #12396 from omoerbeek/stringerror-thread-safe
Introduce a thread-safe version of stringerror()
Otto Moerbeek [Mon, 16 Jan 2023 13:25:11 +0000 (14:25 +0100)]
Close fd on fdopen fail.
Originally suggested by @rgacogne, but not included in the merge of #12374
somehow.
Remi Gacogne [Mon, 16 Jan 2023 08:52:52 +0000 (09:52 +0100)]
Merge pull request #12412 from fredmorcos/openssl3-tls-mac
OpenSSL 3.0: TLS MAC handling
Remi Gacogne [Mon, 16 Jan 2023 08:51:28 +0000 (09:51 +0100)]
Merge pull request #12416 from Habbie/variable-mirror
build-and-test-all: add functionality to quickly switch ubuntu mirrors
Peter van Dijk [Fri, 13 Jan 2023 10:06:14 +0000 (11:06 +0100)]
build-and-test-all: add functionality to quickly switch ubuntu mirrors
Remi Gacogne [Thu, 12 Jan 2023 11:00:58 +0000 (12:00 +0100)]
dnsdist: Document the 'restart' feature
Remi Gacogne [Thu, 23 Jun 2022 16:08:38 +0000 (18:08 +0200)]
dnsdist: FFI interface for the Lua network endpoint
Remi Gacogne [Tue, 10 Jan 2023 13:53:29 +0000 (14:53 +0100)]
dnsdist: Add documentation for suspending/resuming objects
Remi Gacogne [Thu, 22 Dec 2022 16:32:05 +0000 (17:32 +0100)]
dnsdist: Add the infrastructure for restartable queries
Remi Gacogne [Wed, 21 Dec 2022 13:13:29 +0000 (14:13 +0100)]
dnsdist: Add regression tests for the regular Lua async bindings
Remi Gacogne [Wed, 21 Dec 2022 13:13:10 +0000 (14:13 +0100)]
dnsdist: Add regular Lua bindings for async handling of queries
Remi Gacogne [Thu, 16 Dec 2021 16:00:40 +0000 (17:00 +0100)]
dnsdist: Add regression tests for asynchronous processing
Remi Gacogne [Fri, 16 Dec 2022 17:31:33 +0000 (18:31 +0100)]
dnsdist: Implement async processing of queries and responses
Remi Gacogne [Fri, 13 Jan 2023 15:51:01 +0000 (16:51 +0100)]
Merge pull request #12405 from rgacogne/ddist-frontend-responses
dnsdist: Proper accounting of response and cache hits
Remi Gacogne [Fri, 13 Jan 2023 15:50:24 +0000 (16:50 +0100)]
Merge pull request #12386 from rgacogne/single-doh-acceptor
dnsdist: Merge the 'main' and 'client' DoH threads in single acceptor mode
Remi Gacogne [Fri, 13 Jan 2023 14:40:17 +0000 (15:40 +0100)]
Merge pull request #12384 from rgacogne/ddist-cap-ttl
dnsdist: Add the ability to cap the TTL of records after insertion into the cache
Remi Gacogne [Fri, 13 Jan 2023 13:02:09 +0000 (14:02 +0100)]
dnsdist: Add more unit tests for the packet overlay