]>
git.ipfire.org Git - thirdparty/pdns.git/log
Peter van Dijk [Tue, 24 Jan 2023 19:44:52 +0000 (20:44 +0100)]
auth tests tkey.py: explicitly use python3
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>
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 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: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: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 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:`...`
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
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 [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
Remi Gacogne [Fri, 13 Jan 2023 09:25:41 +0000 (10:25 +0100)]
m4: Fix interleaved output during `FORTIFY_SOURCE` detection
Remi Gacogne [Fri, 13 Jan 2023 08:32:12 +0000 (09:32 +0100)]
Merge pull request #12411 from fredmorcos/openssl3-ipcipher-ca6-crypto
Support OpenSSL 3.0 for ipcipher CA6 encryption/decryption
Fred Morcos [Mon, 9 Jan 2023 12:56:37 +0000 (13:56 +0100)]
OpenSSL 3.0: TLS MAC handling
Fred Morcos [Mon, 9 Jan 2023 11:33:34 +0000 (12:33 +0100)]
libssl: Cleanup TLS-related code
Fred Morcos [Mon, 9 Jan 2023 11:31:21 +0000 (12:31 +0100)]
libssl: Formatting TLS-related code
Remi Gacogne [Thu, 12 Jan 2023 15:01:50 +0000 (16:01 +0100)]
dnsdist: Appease the formatting gods
Remi Gacogne [Thu, 12 Jan 2023 14:56:58 +0000 (15:56 +0100)]
Merge pull request #12403 from rgacogne/spell-allow-eaca
spell-checker: Allow EACA (from the PGP public keys in the docs)
Remi Gacogne [Thu, 12 Jan 2023 14:55:32 +0000 (15:55 +0100)]
dnsdist: Use smaller event buffers in our socket multiplexers
Remi Gacogne [Thu, 12 Jan 2023 14:50:40 +0000 (15:50 +0100)]
dnsdist: Silence a warning about an unused variable in discovery.cc
Remi Gacogne [Thu, 12 Jan 2023 14:49:56 +0000 (15:49 +0100)]
dnsdist: Remove a duplicated ';' in dnsdist-lua-actions.cc
Remi Gacogne [Thu, 12 Jan 2023 14:49:03 +0000 (15:49 +0100)]
credentials: Add more unit tests
Remi Gacogne [Tue, 29 Nov 2022 11:02:23 +0000 (12:02 +0100)]
auth: Even better interface for setKey()
Remi Gacogne [Tue, 29 Nov 2022 10:43:36 +0000 (11:43 +0100)]
auth: Better interface for setKey() by requiring the flags
Remi Gacogne [Tue, 31 May 2022 19:51:46 +0000 (21:51 +0200)]
auth: Compute the public key only once, when creating the private one
Note that one big drawback is that setKey() should NO LONGER be used
before the algo and flags have been set.
Remi Gacogne [Mon, 23 May 2022 11:22:47 +0000 (13:22 +0200)]
auth: Rename the function computing the hash of public keys
As suggested by Fred Morcos (thanks!).
Remi Gacogne [Mon, 2 May 2022 09:46:38 +0000 (11:46 +0200)]
auth: Speed up ECDSA and RSA signatures
For ECDSA, and likely for RSA, computing the public key is not a cheap
operation. So instead of computing it twice to get the lookup key for
our signatures cache, reuse the computed public key and only compute its
digest.
In addition, since ed* algorithms were already using the whole key instead
of a digest, place the cut off at public keys larger than 64 bytes, meaning
that only RSA ones (128+ bytes) will be hashed.
This provides an additional speedup for ECDSA keys (32 or 48 bytes) since
they no longer need to be hashed, and simplifies the signers code as the
hashing can be moved to the key cache now that it only depends on they key
size.
For reference the size of a SHA-1 digest is 20 bytes.
In my tests this reduces by 30% the cost of calling addRRSigs() for ECDSA
signatures when the signature is already present in the cache.
Fred Morcos [Thu, 3 Nov 2022 09:21:03 +0000 (10:21 +0100)]
OpenSSL 3.0: decryptCA6
Fred Morcos [Thu, 3 Nov 2022 08:03:52 +0000 (09:03 +0100)]
OpenSSL 3.0: encryptCA6
Remi Gacogne [Mon, 9 Jan 2023 16:26:53 +0000 (17:26 +0100)]
spell-checker: Allow prometheus values
Remi Gacogne [Mon, 9 Jan 2023 16:26:34 +0000 (17:26 +0100)]
dnsdist: Fix a typo in the prometheus type
Remi Gacogne [Mon, 9 Jan 2023 16:19:46 +0000 (17:19 +0100)]
dnsdist: Update the prometheus sample in the documentation
It was very old and not up-to-date.
Remi Gacogne [Mon, 9 Jan 2023 16:17:21 +0000 (17:17 +0100)]
dnsdist: Only record one hit or miss per query in the cache metrics
The scope-zero feature and the DoH paths can actually do more than
one lookup per query, and until now this led to an increase of the
per-cache metric for every lookup, while the global `cache-hits`
and `cache-misses` metrics were only updated once per query.
This has led to several questions and misunderstandings, so we now
only update the per-cache metrics once per query as well.
Remi Gacogne [Mon, 9 Jan 2023 16:15:03 +0000 (17:15 +0100)]
dnsdist: Properly record cache-hits as responses
For a very long time we have not been adding cache-hits to the
responses counter, which is wrong. Let's fix it now.
Fred Morcos [Wed, 11 Jan 2023 14:59:19 +0000 (15:59 +0100)]
Cleanup ipcipher.hh
Remi Gacogne [Sat, 2 Jul 2022 14:09:56 +0000 (16:09 +0200)]
dnsdist: Merge the 'main' and 'client' DoH threads
When we are in "single acceptor thread" mode, merge the 'main' and
'client' DoH threads into a single one. We use separate threads to
reduce the separate the handling of the HTTP/2 traffic from the DNS
handling, to reduce latency, but that does not really make sense on
small devices with a single, limited CPU core. On these we prefer
using as few threads as possible to reduce the context switches and
the memory usage.
Remi Gacogne [Fri, 2 Dec 2022 14:29:45 +0000 (15:29 +0100)]
dnsdist: Remove ttlCapTypes from the internal state
Remi Gacogne [Fri, 24 Jun 2022 13:50:10 +0000 (15:50 +0200)]
dnsdist: Use unordered sets to speed things up a bit
Remi Gacogne [Fri, 11 Feb 2022 14:34:26 +0000 (15:34 +0100)]
dnsdist: Implement the ability to cap TTLs for some record types only
Remi Gacogne [Wed, 12 Jan 2022 13:58:34 +0000 (14:58 +0100)]
dnsdist: Add MaxReturnedTTLResponseAction to cap the TTL after packet cache
Remi Gacogne [Wed, 11 Jan 2023 13:14:11 +0000 (14:14 +0100)]
Merge pull request #12383 from rgacogne/ddist-stronger-udp-path
dnsdist: Stronger guarantees against data race in the UDP path
Remi Gacogne [Wed, 11 Jan 2023 13:13:28 +0000 (14:13 +0100)]
Merge pull request #12401 from fredmorcos/openssl-3-prep
Openssl 3 prep work