]>
git.ipfire.org Git - thirdparty/pdns.git/log
Remi Gacogne [Tue, 10 Jan 2023 08:37:23 +0000 (09:37 +0100)]
CI: Work-around the "503 Service Unavailable" erros on azure.archive.ubuntu.com
Remi Gacogne [Mon, 9 Jan 2023 11:17:44 +0000 (12:17 +0100)]
Merge pull request #12397 from rgacogne/fix-cachecleaner
cachecleaner: Add cmath, needed for std::ceil and std::round
Remi Gacogne [Mon, 9 Jan 2023 11:16:31 +0000 (12:16 +0100)]
Merge pull request #12354 from rgacogne/ddist-unique-ednsoptions
dnsdist: Move DNSQuestion's EDNS options to a unique pointer
Remi Gacogne [Mon, 9 Jan 2023 11:09:28 +0000 (12:09 +0100)]
cachecleaner: Add cmath, needed for std::ceil and std::round
Remi Gacogne [Mon, 9 Jan 2023 10:24:42 +0000 (11:24 +0100)]
dnsdist: Use EDNSOptionViewMap in more places
As suggested by Otto.
Remi Gacogne [Mon, 9 Jan 2023 10:16:11 +0000 (11:16 +0100)]
Merge pull request #12365 from rgacogne/ddist-fix-tcp-queued-underflow-12357
dnsdist: Prevent an underflow of the TCP d_queued counter
Otto Moerbeek [Fri, 6 Jan 2023 16:08:30 +0000 (17:08 +0100)]
Merge pull request #12391 from omoerbeek/dnsdist-pgpkeys
dnsdist: update pgp keys listed in docs: add Otto, move Pieter and Bert to old keys
Otto Moerbeek [Fri, 6 Jan 2023 15:24:57 +0000 (16:24 +0100)]
dnsdist: update pgp keys listed in docs: add Otto, move Pieter and Bert to old keys
Otto Moerbeek [Fri, 6 Jan 2023 13:29:45 +0000 (14:29 +0100)]
Merge pull request #12374 from omoerbeek/rec-cache-clean
Rec: make cache cleaning more fair when under pressure
Otto Moerbeek [Fri, 6 Jan 2023 11:57:04 +0000 (12:57 +0100)]
Be more eager to evict expired entries in the first loop by continuing scanning the fraction of each shard we originally computed
Otto Moerbeek [Fri, 6 Jan 2023 10:12:25 +0000 (11:12 +0100)]
Merge pull request #12352 from zjs604381586/recursor-stale
Refresh of negcache stale entry might use wrong qtype
Otto Moerbeek [Fri, 6 Jan 2023 09:36:12 +0000 (10:36 +0100)]
Merge pull request #12378 from omoerbeek/pgp-keys
Update the pgp keys listed in docs
Otto Moerbeek [Fri, 6 Jan 2023 08:26:25 +0000 (09:26 +0100)]
Merge pull request #12313 from darnuria/clang-tidy/one-more-time
Clang-tidy: one more time
Otto Moerbeek [Wed, 4 Jan 2023 14:03:05 +0000 (15:03 +0100)]
Mention Bert and Pieter did sign old releases
Otto Moerbeek [Wed, 4 Jan 2023 12:50:55 +0000 (13:50 +0100)]
Update the keys listed: remove Bert and Pieter, add Remi and Otto
Otto Moerbeek [Tue, 3 Jan 2023 10:36:54 +0000 (11:36 +0100)]
Take shard size and number of remaining shards into account when cleaning, so that big shards get pruned more and if we are behind due to rounding etc we get more eager.
Otto Moerbeek [Tue, 3 Jan 2023 13:54:14 +0000 (14:54 +0100)]
Merge pull request #12373 from omoerbeek/rec-stack-usage-warning
rec: Warn on high (90%) mthread stack usage
Otto Moerbeek [Tue, 3 Jan 2023 11:36:14 +0000 (12:36 +0100)]
Warn on high (90%) mthread stack usage
Otto Moerbeek [Tue, 3 Jan 2023 10:35:14 +0000 (11:35 +0100)]
- Print shard info in cache dumps
- change # of shard of negcache to be 1/8th of main record cache, same for size
Otto Moerbeek [Tue, 3 Jan 2023 10:20:26 +0000 (11:20 +0100)]
Merge pull request #12334 from omoerbeek/rec-more-edns
rec: Generate EDE in more cases, specifically on unreachable auths or sythesized results.
Otto Moerbeek [Tue, 3 Jan 2023 08:24:05 +0000 (09:24 +0100)]
Make a distinction between "ordinary" negcache results and entire name results.
Otto Moerbeek [Mon, 2 Jan 2023 11:09:51 +0000 (12:09 +0100)]
Merge pull request #12368 from rgacogne/rec-add-missing-exception-reason-parse-auth-packet
rec: Add the 'parse packet from auth' error message to structured logging
Remi Gacogne [Wed, 28 Dec 2022 08:49:41 +0000 (09:49 +0100)]
rec: Add the 'parse packet from auth' error message to structured logging
Remi Gacogne [Tue, 27 Dec 2022 16:01:55 +0000 (17:01 +0100)]
dnsdist: Prevent an underflow of the TCP d_queued counter
By incrementing it _before_ writing to the pipe, and decrementing
it in case of an error, we prevent a very possible underflow from
occurring if the reader manages to decrement before we can return
from write and increment it.
Axel Viala [Sun, 11 Dec 2022 15:12:44 +0000 (16:12 +0100)]
clang-tidy: uninitialized variables explicitly defaulted.
Also pass to one declaration per line at one site.
Axel Viala [Sun, 11 Dec 2022 14:56:31 +0000 (15:56 +0100)]
clang-tidy: IsTimeSpec function: curly + implicit conversions.
Review Apply @omoerbeek suggestion fix cast to unsigned char.
Axel Viala [Sun, 11 Dec 2022 14:56:06 +0000 (15:56 +0100)]
clang-tidy: Use auto on iterator for loop
Axel Viala [Sun, 11 Dec 2022 14:44:45 +0000 (15:44 +0100)]
Remove redundant headers
- recursor_cache.cc
- zoneparser-tng.cc
Axel Viala [Sun, 11 Dec 2022 11:41:28 +0000 (12:41 +0100)]
clang-tidy: nullptr where possible.
- ldapbackend.cc
- recursor_cache.cc
- recusor_cache.hh
- zoneparser-tng.cc
Axel Viala [Thu, 6 Oct 2022 11:50:43 +0000 (13:50 +0200)]
[clang-tidy:Ccast] Avoid a C cast and modernize.
Code inspired by how it's done in test-dnsrecords_cc.cc.
Axel Viala [Thu, 6 Oct 2022 11:48:58 +0000 (13:48 +0200)]
[clang-tidy:empty] use empty() in various places.
- dnsrecords.cc
- recursor_cache.cc
- dnsrecords.cc.
- zoneparser-tng.cc
empty
Axel Viala [Thu, 6 Oct 2022 11:33:02 +0000 (13:33 +0200)]
[clang-tidy:array] in dnsparser.cc use std::array.
Review by @omoerbeek: Fix size inconsistancy.
Axel Viala [Thu, 6 Oct 2022 11:32:14 +0000 (13:32 +0200)]
clang-tidy: modernize deprecated header invarious places
- time.h -> ctime.
- signal.h -> csignal
- errno.h -> cerrno
Axel Viala [Thu, 6 Oct 2022 11:23:10 +0000 (13:23 +0200)]
[clang-tidy:array] getTypeString std::array<static string> instead of char * C array.
Apply @Omoerbeek suggestion. char * -> static string &
Axel Viala [Wed, 5 Oct 2022 21:50:10 +0000 (23:50 +0200)]
[pdnsutils] Use const std::array for metadata whitelist.
Otto Moerbeek [Fri, 23 Dec 2022 07:06:09 +0000 (08:06 +0100)]
Merge pull request #12348 from omoerbeek/rec-tcounters-dnssec
rec: move dnssec and policy counters to TCounter object
Remi Gacogne [Thu, 22 Dec 2022 09:29:37 +0000 (10:29 +0100)]
Merge pull request #12292 from rgacogne/minicurl-smart
auth, rec: Wrap the CURL raw pointers in smart pointers
Remi Gacogne [Wed, 21 Dec 2022 13:50:31 +0000 (14:50 +0100)]
MiniCurl: Make it safe to reuse a MiniCurl object
Remi Gacogne [Wed, 21 Dec 2022 12:42:20 +0000 (13:42 +0100)]
Merge pull request #12320 from rgacogne/ddist-pkcs12-openssl3
dnsdist: Fix loading PKCS12-encrypted (RC2 CBC) certs with OpenSSL 3.x
Remi Gacogne [Wed, 21 Dec 2022 12:35:53 +0000 (13:35 +0100)]
Merge pull request #12329 from rgacogne/ddist-ids-overlay-rebased
dnsdist: Turn DNSQuestion and DNSResponse into internal state overlays
Otto Moerbeek [Wed, 21 Dec 2022 09:12:46 +0000 (10:12 +0100)]
Change the logic a bit, as negcache->get() can be called with qtype = QType:::ENT,
but we do not want to push a task with QType::ENT
Also change a few QType& to QType, it's a small int, no need to pass by reference.
zhaojingshi [Wed, 21 Dec 2022 03:22:57 +0000 (11:22 +0800)]
change negcache stale resolveTask qtype
Otto Moerbeek [Tue, 20 Dec 2022 12:49:10 +0000 (13:49 +0100)]
Merge pull request #12347 from omoerbeek/rec-serve-stale-methodname
rec: Use correct logic for isEntryUsable()
Remi Gacogne [Tue, 20 Dec 2022 12:33:35 +0000 (13:33 +0100)]
Merge pull request #10167 from rgacogne/dnsreplay-spoof-source
dnsreplay: Add an option to spoof the initial source IP
Otto Moerbeek [Mon, 19 Dec 2022 13:31:06 +0000 (14:31 +0100)]
Ands move policy name hits to tcounters
Otto Moerbeek [Tue, 20 Dec 2022 11:30:54 +0000 (12:30 +0100)]
Use correct logic for isEntryUsable()
Existing code was correct but used the wrong name for the method:
isEntryUsable() actually tested for isUnusable, but the caller
compensated for it. Reverse logic to make it more clear.
Otto Moerbeek [Tue, 20 Dec 2022 10:42:07 +0000 (11:42 +0100)]
A few tests on the new EDEs
Otto Moerbeek [Fri, 16 Dec 2022 15:43:11 +0000 (16:43 +0100)]
Introduce a context object holding vState and extendedErrors
Later, more fields that apply to a specific beginResolve call
might be added.
Remi Gacogne [Tue, 20 Dec 2022 08:08:44 +0000 (09:08 +0100)]
dnsreplay: Better error message
Co-authored-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Remi Gacogne [Mon, 19 Dec 2022 15:23:33 +0000 (16:23 +0100)]
Merge pull request #12100 from rgacogne/ddist-single-soa-ixfr
dnsdist: Properly handle single-SOA XFR responses
Peter van Dijk [Mon, 19 Dec 2022 15:07:10 +0000 (16:07 +0100)]
Merge pull request #12127 from hlindqvist/ixfrdist-ixfr-multiple-changes
Fix multiple-version IXFR request handling in ixfrdist
Otto Moerbeek [Mon, 19 Dec 2022 15:06:33 +0000 (16:06 +0100)]
Merge pull request #12260 from omoerbeek/webserver-json-utf8
auth: Properly encode json strings containing binary data
Peter van Dijk [Mon, 19 Dec 2022 13:08:32 +0000 (14:08 +0100)]
Merge pull request #12284 from jsoref/github-output
Switch from set-output to GITHUB_OUTPUT
Otto Moerbeek [Mon, 19 Dec 2022 12:39:36 +0000 (13:39 +0100)]
Move DNSSEC and Policy counters to TCounter object
Otto Moerbeek [Mon, 19 Dec 2022 10:27:53 +0000 (11:27 +0100)]
Merge pull request #12337 from omoerbeek/rec-tcounter-test-tweaks
rec: tcounter test tweaks
Otto Moerbeek [Mon, 19 Dec 2022 09:55:57 +0000 (10:55 +0100)]
Update pdns/recursordist/testrunner.cc
Co-authored-by: Remi Gacogne <github@coredump.fr>
Otto Moerbeek [Mon, 19 Dec 2022 08:08:14 +0000 (09:08 +0100)]
Some systems have a low-resolution nanosleep(2), calling it will
sleep for at least a few ms. Compensate for that by running fewer
loops with longer sleeps.
Also use dns_random and make sure it is initlized properly for all tests.
Otto Moerbeek [Sat, 17 Dec 2022 07:46:34 +0000 (08:46 +0100)]
Merge pull request #12309 from omoerbeek/test-anybind
Test ANY bind UDP handling for the v4 case
Otto Moerbeek [Fri, 16 Dec 2022 10:16:05 +0000 (11:16 +0100)]
Merge pull request #12333 from omoerbeek/rec-sockbufsize-log
Setting socket buf size: not decreasing is not an error
Peter van Dijk [Fri, 16 Dec 2022 10:01:14 +0000 (11:01 +0100)]
Merge pull request #12322 from mind04/auth-lmdb-tsig
auth: lmdb, fix TSIG key removal
Peter van Dijk [Fri, 16 Dec 2022 09:53:41 +0000 (10:53 +0100)]
Merge pull request #12325 from Habbie/remove-toysdig
remove toysdig
Otto Moerbeek [Fri, 16 Dec 2022 08:57:49 +0000 (09:57 +0100)]
Reformat
Otto Moerbeek [Wed, 14 Dec 2022 13:06:36 +0000 (14:06 +0100)]
Generate EDE in more cases, specifically on unreachable auths or synthesized results.
As there is no specific EDE for synthesised, use noError with a text.
We have to be careful here: a single client query can lead to
multiple beginResolve calls. Some of these are done after the main
result has been looked up, for example to validate the result. These
subsequent calls can generate EDE's but we do not want to copy the
EDE to the main result in those cases. A typical example would be
an absent DS for an Insecure domain. Nothing wrong with these but
we do not want the potential absent DS EDE (which could be synthesize)
to be returned with the main query,
To solve this, mimic the processing of validation state and add
an extra argument to a few methods.
I am not terribly happy with the extra argument. Maybe we should
move to an object holding the parameters and result status of the
nested or subsequent calls. This would also avoid some of the saveX,
setX, beginResolve, restore X sequences.
So marking this as Draft for now.
Peter van Dijk [Fri, 16 Dec 2022 08:36:52 +0000 (09:36 +0100)]
pdnsutil and testrunner need validate.hh, which the previous commit removed from dist
Otto Moerbeek [Fri, 16 Dec 2022 08:24:44 +0000 (09:24 +0100)]
For setting socket buf size not decreasing is not an error
Otto Moerbeek [Fri, 16 Dec 2022 07:52:30 +0000 (08:52 +0100)]
Merge pull request #12323 from omoerbeek/rec-tcounter-responsestats
rec: make response stats a tcounter object
Remi Gacogne [Thu, 15 Dec 2022 09:24:39 +0000 (10:24 +0100)]
dnsdist: Move DNSQuestion's EDNS options to a unique pointer
Remi Gacogne [Thu, 15 Dec 2022 08:39:28 +0000 (09:39 +0100)]
Merge pull request #12327 from rgacogne/ddist-fix-tcp-only-checktimeout-ms
dnsdist: Fix the health-check timeout computation for DoH backend
Remi Gacogne [Wed, 14 Dec 2022 16:41:29 +0000 (17:41 +0100)]
dnsdist: Store the maximum UDP payload size in the internal state
Remi Gacogne [Wed, 14 Dec 2022 16:29:27 +0000 (17:29 +0100)]
dnsdist: Store the initial query time in the internal state as well
That way it is available in the response.
Remi Gacogne [Wed, 14 Dec 2022 16:03:20 +0000 (17:03 +0100)]
Merge pull request #12328 from rgacogne/ddist-stop-responders-faster
dnsdist: Stop the responders more quickly during the tests
Remi Gacogne [Fri, 25 Nov 2022 16:38:07 +0000 (17:38 +0100)]
dnsdist: Turn DNSQuestion and DNSResponse into IDState overlays
Remaining:
queryRealTime
udpPayloadSize
Remi Gacogne [Thu, 24 Nov 2022 16:22:37 +0000 (17:22 +0100)]
dnsdist: Clean up unused fieds from the IDState
Remi Gacogne [Thu, 24 Nov 2022 16:21:48 +0000 (17:21 +0100)]
dnsdist: Refactor the handling of responses for UDP clients
Remi Gacogne [Thu, 24 Nov 2022 16:20:27 +0000 (17:20 +0100)]
dnsdist: Add dnsdist::Protocol::isUDP()
Remi Gacogne [Wed, 14 Dec 2022 15:19:49 +0000 (16:19 +0100)]
dnsdist: Stop the responders more quickly during the tests
We use `SO_REUSEPORT` in these tests so if the old responder is
still around when the next test starts, it is quite likely that
it might get one of the new queries. This is usually fine because
responders with a different behaviour listen on different ports,
but if a query is queued to an old responder socket right during
the time that responder is checking whether it should stop and
the actual exit, the query will be lost.
Remi Gacogne [Wed, 14 Dec 2022 15:10:49 +0000 (16:10 +0100)]
dnsdist: Fix the health-check timeout computation for DoH backend
The remaining milliseconds after handling the full seconds was not
properly converted to microseconds.
Remi Gacogne [Wed, 14 Dec 2022 14:45:18 +0000 (15:45 +0100)]
Merge pull request #12326 from omoerbeek/dnsdist-regr-wait-responders
dnsdist: Wait for TCP responder to become active before starting dnsdist
Peter van Dijk [Wed, 14 Dec 2022 10:29:26 +0000 (11:29 +0100)]
remove toysdig
Otto Moerbeek [Wed, 14 Dec 2022 09:55:28 +0000 (10:55 +0100)]
Wait for TCP responder to become active before starting dnsdist
Otto Moerbeek [Tue, 13 Dec 2022 11:25:12 +0000 (12:25 +0100)]
rec: make response stats a tcounter object
This allows for the packet cache hit path to record response stats without performance impact.
The qtype and rcode counters are capped, as i ran into trouble with
the thread stack sizes on macOS and OpenBSD. See the source comment
for explanation.
Closes #11534
Kees Monshouwer [Tue, 13 Dec 2022 22:25:27 +0000 (23:25 +0100)]
auth: lmdb, fix TSIG key removal
Remi Gacogne [Wed, 7 Dec 2022 13:26:33 +0000 (14:26 +0100)]
auth, rec: Wrap the CURL raw pointers in smart pointers
Remi Gacogne [Tue, 13 Dec 2022 14:59:28 +0000 (15:59 +0100)]
dnsdist: Fix loading PKCS12-encrypted (RC2 CBC) certs with OpenSSL 3.x
Otto Moerbeek [Tue, 13 Dec 2022 11:25:59 +0000 (12:25 +0100)]
Merge pull request #12319 from omoerbeek/dnsdist-rlim_t
dnsdist: Use rlim_t for limit
Otto Moerbeek [Tue, 13 Dec 2022 10:14:08 +0000 (11:14 +0100)]
Use rlim_t for limit
Otto Moerbeek [Tue, 13 Dec 2022 10:12:11 +0000 (11:12 +0100)]
Merge pull request #12318 from omoerbeek/rec-reorg
Rec reorg: move recursor specific files to recursordist
Otto Moerbeek [Tue, 13 Dec 2022 08:30:46 +0000 (09:30 +0100)]
Step 3: reformat moved files previously not formatted
Otto Moerbeek [Tue, 13 Dec 2022 08:22:42 +0000 (09:22 +0100)]
Step 2: mv rec specific files to recursordist
Otto Moerbeek [Tue, 13 Dec 2022 08:21:40 +0000 (09:21 +0100)]
Step one: remove symlinks to rec-specific files
Otto Moerbeek [Tue, 13 Dec 2022 06:36:12 +0000 (07:36 +0100)]
Merge pull request #12193 from omoerbeek/rec-tcounters
Introducing TCounters
Otto Moerbeek [Tue, 13 Dec 2022 06:29:32 +0000 (07:29 +0100)]
Merge pull request #12317 from omoerbeek/rec-fix-freebsd
rec: Fix compilation on FreeBSD
Otto Moerbeek [Mon, 12 Dec 2022 19:03:04 +0000 (20:03 +0100)]
Fix compilation on FreeBSD. reported by HellSpawn
Otto Moerbeek [Mon, 12 Dec 2022 18:59:40 +0000 (19:59 +0100)]
Two Bucket fields can be const if we take care in the asssignment op.
Otto Moerbeek [Mon, 12 Dec 2022 17:10:33 +0000 (18:10 +0100)]
Typo in comment
Co-authored-by: Remi Gacogne <github@coredump.fr>
Otto Moerbeek [Mon, 12 Dec 2022 17:09:48 +0000 (18:09 +0100)]
Apply suggestions from code review
Co-authored-by: Remi Gacogne <github@coredump.fr>
Remi Gacogne [Mon, 12 Dec 2022 15:26:11 +0000 (16:26 +0100)]
Merge pull request #12316 from rgacogne/ddist-disable-tsan-send-wrappers
dnsdist: Disable the send wrappers in our CI
Remi Gacogne [Mon, 12 Dec 2022 14:42:57 +0000 (15:42 +0100)]
dnsdist: Disable the send wrappers in our CI
The way the send wrappers are implemented, reading the data _after_
it has been sent, cause them to report a data race that does not
exist with existing implementations:
- we call `send()` from thread 1 to send a query to a backend, never
touching the data or associated metadata again from that thread
- we get a response from the backend in a different thread, thread 2,
which will then access the metadata and sometimes (truncated UDP
answers following a DoH query) even modify the data itself
- ASAN and TSAN complain because the wrapper might still be reading
the data after the UDP datagram has been sent, which is effectively
a race, but it does not really make any sense for an actual
implementation of `send()` to do that.
We work around that by disabling the `send()` wrappers in our CI,
for the dnsdist regression tests only, via `intercept_send=0`.
Otto Moerbeek [Mon, 12 Dec 2022 12:39:38 +0000 (13:39 +0100)]
Merge pull request #12308 from omoerbeek/rec-prep-4.8.0
Prep for rec-4.8.0 final release
Otto Moerbeek [Mon, 12 Dec 2022 11:52:34 +0000 (12:52 +0100)]
Apply suggestions from code review
Co-authored-by: Peter van Dijk <peter.van.dijk@powerdns.com>