]> git.ipfire.org Git - thirdparty/pdns.git/log
thirdparty/pdns.git
16 months agomore clang-tidy 13770/head
Peter van Dijk [Mon, 25 Mar 2024 11:17:55 +0000 (12:17 +0100)] 
more clang-tidy

16 months agoclang-tidy: more descriptive variable name
Peter van Dijk [Mon, 25 Mar 2024 10:00:17 +0000 (11:00 +0100)] 
clang-tidy: more descriptive variable name

16 months agoaccept the complexity of this function for now
Peter van Dijk [Fri, 22 Mar 2024 15:17:53 +0000 (16:17 +0100)] 
accept the complexity of this function for now

17 months agoAdd documentation
Evil Eye [Wed, 7 Feb 2024 09:48:12 +0000 (09:48 +0000)] 
Add documentation

17 months agoAdd tests
Evil Eye [Wed, 7 Feb 2024 09:01:55 +0000 (09:01 +0000)] 
Add tests

17 months agoAdd dnsupdate-require-tsig config option
Evil Eye [Wed, 24 Jan 2024 14:40:42 +0000 (14:40 +0000)] 
Add dnsupdate-require-tsig config option

So zones without keys that are accessible based on IP can be closed off

17 months agoMerge pull request #13743 from Habbie/auth-api-priority-error
Peter van Dijk [Tue, 6 Feb 2024 10:24:43 +0000 (11:24 +0100)] 
Merge pull request #13743 from Habbie/auth-api-priority-error

auth API: reject priority element in record, closes #12657

17 months agoMerge pull request #13764 from romeroalx/fix-build-ubuntu-noble
romeroalx [Fri, 2 Feb 2024 10:43:18 +0000 (11:43 +0100)] 
Merge pull request #13764 from romeroalx/fix-build-ubuntu-noble

GH Actions: fix builds for ubuntu noble. Remove pkg usrmerge

17 months agofix builds ubuntu noble. remove pkg usrmerge 13764/head
romeroalx [Thu, 1 Feb 2024 23:35:28 +0000 (00:35 +0100)] 
fix builds ubuntu noble. remove pkg usrmerge

17 months agoMerge pull request #13746 from omoerbeek/rec-resolve-context-tidy
Otto Moerbeek [Wed, 31 Jan 2024 08:33:25 +0000 (09:33 +0100)] 
Merge pull request #13746 from omoerbeek/rec-resolve-context-tidy

rec: tidy ResolveContext class

18 months agoone last lint 13746/head
Otto Moerbeek [Tue, 30 Jan 2024 17:17:22 +0000 (18:17 +0100)] 
one last lint

18 months agoAvoid a cases of `an exception may be thrown in function '' which should not throw...
Otto Moerbeek [Tue, 30 Jan 2024 10:12:34 +0000 (11:12 +0100)] 
Avoid a cases of `an exception may be thrown in function '' which should not throw exceptions (bugprone-exception-escape)`
The use of a DNSName capture by value is the culprit. Avoid those by using
[&]', telling the compiler to figure out the captures by itself but use refs.
This *could* lead to issues if we modify the value in the lambda, so this conversion should be checked!

18 months agoMerge pull request #13740 from rgacogne/ddist-190rc1-changelog-secpoll
Remi Gacogne [Tue, 30 Jan 2024 14:02:45 +0000 (15:02 +0100)] 
Merge pull request #13740 from rgacogne/ddist-190rc1-changelog-secpoll

dnsdist: ChangeLog and secpoll update for 1.9.0-rc1

18 months agoMerge pull request #11652 from Y7n05h/xsk dnsdist-1.9.0-rc1
Remi Gacogne [Tue, 30 Jan 2024 10:56:58 +0000 (11:56 +0100)] 
Merge pull request #11652 from Y7n05h/xsk

dnsdist: add AF_XDP support for UDP

18 months agodnsdist: Apply Charles-Henri's suggestions (thanks!) 11652/head
Remi Gacogne [Tue, 30 Jan 2024 09:58:21 +0000 (10:58 +0100)] 
dnsdist: Apply Charles-Henri's suggestions (thanks!)

18 months agoMerge pull request #13749 from rgacogne/ci-binary-check-exclude-fuzzing-corpus
Remi Gacogne [Tue, 30 Jan 2024 09:38:10 +0000 (10:38 +0100)] 
Merge pull request #13749 from rgacogne/ci-binary-check-exclude-fuzzing-corpus

ci: Exclude the fuzzing/corpus dir from the 'no binary files' check

18 months agodnsdist: The 1.9.0-rc1 release has been moved to the 30th 13740/head
Remi Gacogne [Mon, 29 Jan 2024 13:18:14 +0000 (14:18 +0100)] 
dnsdist: The 1.9.0-rc1 release has been moved to the 30th

18 months agoci: Exclude the fuzzing/corpus dir from the 'no binary files' check 13749/head
Remi Gacogne [Mon, 29 Jan 2024 10:28:08 +0000 (11:28 +0100)] 
ci: Exclude the fuzzing/corpus dir from the 'no binary files' check

18 months agodnsdist: Fix formatting of fuzz_xsk.cc
Remi Gacogne [Mon, 29 Jan 2024 10:15:16 +0000 (11:15 +0100)] 
dnsdist: Fix formatting of fuzz_xsk.cc

18 months agodnsdist: Add a fuzzing target for the XSK code
Remi Gacogne [Mon, 29 Jan 2024 10:12:27 +0000 (11:12 +0100)] 
dnsdist: Add a fuzzing target for the XSK code

18 months agoMerge pull request #13724 from rgacogne/dnsname-parse-packet-optim
Remi Gacogne [Mon, 29 Jan 2024 08:38:40 +0000 (09:38 +0100)] 
Merge pull request #13724 from rgacogne/dnsname-parse-packet-optim

dnsname: Optimize parsing of uncompressed labels

18 months agoMerge pull request #13742 from omoerbeek/rec-update-rust-and-crates
Otto Moerbeek [Fri, 26 Jan 2024 16:42:44 +0000 (17:42 +0100)] 
Merge pull request #13742 from omoerbeek/rec-update-rust-and-crates

rec: update to cargo 1.75 and updated Cargo dependencies

18 months agoMerge pull request #13741 from omoerbeek/rec-coverity-20240124
Otto Moerbeek [Fri, 26 Jan 2024 16:42:11 +0000 (17:42 +0100)] 
Merge pull request #13741 from omoerbeek/rec-coverity-20240124

rec: fix Coverity issues in new RPZ code

18 months agoMerge pull request #13747 from jacobbunk/document-dnsnameset
Remi Gacogne [Fri, 26 Jan 2024 15:43:26 +0000 (16:43 +0100)] 
Merge pull request #13747 from jacobbunk/document-dnsnameset

Link to existing documentation for DNSNameSet.

18 months agoLink to existing documentation for DNSNameSet. 13747/head
Jacob Bunk Nielsen [Fri, 26 Jan 2024 15:03:16 +0000 (16:03 +0100)] 
Link to existing documentation for DNSNameSet.

18 months agoFix async callbacks in unit tests now that ResolverContext is no longer an optional
Otto Moerbeek [Fri, 26 Jan 2024 11:27:35 +0000 (12:27 +0100)] 
Fix async callbacks in unit tests now that ResolverContext is no longer an optional

Note that C++ does not really care, as the implicit conversion rules cover
this already.

18 months agoauth API: reject priority element in record, closes #12657 13743/head
Peter van Dijk [Thu, 25 Jan 2024 12:54:22 +0000 (13:54 +0100)] 
auth API: reject priority element in record, closes #12657

18 months agoActually, ResolveContext is not optional
Otto Moerbeek [Fri, 26 Jan 2024 11:07:53 +0000 (12:07 +0100)] 
Actually, ResolveContext is not optional

18 months agoMerge pull request #13745 from omoerbeek/auth-fix-gss-test
Peter van Dijk [Fri, 26 Jan 2024 10:59:03 +0000 (11:59 +0100)] 
Merge pull request #13745 from omoerbeek/auth-fix-gss-test

auth: fix gss regression test

18 months agorec: tidy ResolveContext
Otto Moerbeek [Fri, 26 Jan 2024 10:46:05 +0000 (11:46 +0100)] 
rec: tidy ResolveContext

Plus some changes to const& for ResolveContext arguments

18 months agodnsname: Use `static_cast` instead of C-style casts 13724/head
Remi Gacogne [Fri, 26 Jan 2024 10:25:48 +0000 (11:25 +0100)] 
dnsname: Use `static_cast` instead of C-style casts

18 months agodnsname: Remove useless resize, we always resize again right after it
Remi Gacogne [Fri, 26 Jan 2024 10:25:08 +0000 (11:25 +0100)] 
dnsname: Remove useless resize, we always resize again right after it

18 months agoMerge pull request #13744 from omoerbeek/rec-tidy-filterpo
Otto Moerbeek [Fri, 26 Jan 2024 09:46:54 +0000 (10:46 +0100)] 
Merge pull request #13744 from omoerbeek/rec-tidy-filterpo

rec: Tidy filterpo.?? (reaching into iputils.hh as well)

18 months agoauth: fix gss regression test 13745/head
Otto Moerbeek [Fri, 26 Jan 2024 09:04:20 +0000 (10:04 +0100)] 
auth: fix gss regression test

Wrong records were tested for non-presence, as noted by @Assumeru

18 months agoTidy filterpo.?? (reaching into iputils.hh as well). 13744/head
Otto Moerbeek [Wed, 24 Jan 2024 16:24:45 +0000 (17:24 +0100)] 
Tidy filterpo.?? (reaching into iputils.hh as well).

18 months agodnsdist: Properly detect whether `bpf_xdp_query` is available
Remi Gacogne [Thu, 25 Jan 2024 11:32:09 +0000 (12:32 +0100)] 
dnsdist: Properly detect whether `bpf_xdp_query` is available

It was added in libbpf 0.7 and EL8 only has 0.5, sadly.

18 months agoMerge pull request #13738 from Habbie/auth-49-debian-configs
Peter van Dijk [Thu, 25 Jan 2024 11:02:14 +0000 (12:02 +0100)] 
Merge pull request #13738 from Habbie/auth-49-debian-configs

auth debian: adjust option names in shipped configs

18 months agoMerge pull request #13736 from rgacogne/ddist-quiche-0.20
Remi Gacogne [Wed, 24 Jan 2024 15:09:07 +0000 (16:09 +0100)] 
Merge pull request #13736 from rgacogne/ddist-quiche-0.20

dnsdist: Update Quiche to 0.20.0

18 months agorec: update to cargo 1.75 and updated Cargo dependencies 13742/head
Otto Moerbeek [Wed, 24 Jan 2024 14:19:06 +0000 (15:19 +0100)] 
rec: update to cargo 1.75 and updated Cargo dependencies

18 months agorec: fix Coverity issues in new RPZ code 13741/head
Otto Moerbeek [Wed, 24 Jan 2024 09:04:49 +0000 (10:04 +0100)] 
rec: fix Coverity issues in new RPZ code

Coverity issues 1533681..1533686, all low impact perf related

18 months agoMerge pull request #13504 from omoerbeek/rec-set-aggr-nsec-size
Otto Moerbeek [Wed, 24 Jan 2024 06:53:03 +0000 (07:53 +0100)] 
Merge pull request #13504 from omoerbeek/rec-set-aggr-nsec-size

rec: introduce command to set aggressive NSEC cache size

18 months agoMerge pull request #13737 from omoerbeek/rec-fix-yamlconv-test
Otto Moerbeek [Tue, 23 Jan 2024 15:47:41 +0000 (16:47 +0100)] 
Merge pull request #13737 from omoerbeek/rec-fix-yamlconv-test

rec: fix YAML conversion test

18 months agodnsdist: ChangeLog and secpoll update for 1.9.0-rc1
Remi Gacogne [Tue, 23 Jan 2024 15:45:01 +0000 (16:45 +0100)] 
dnsdist: ChangeLog and secpoll update for 1.9.0-rc1

18 months agoMerge pull request #13110 from sndrsmnk/logfix
Peter van Dijk [Tue, 23 Jan 2024 14:09:27 +0000 (15:09 +0100)] 
Merge pull request #13110 from sndrsmnk/logfix

Log port with all freshness check failure scenarios.

18 months agospell-check: Allow libxdp
Remi Gacogne [Tue, 23 Jan 2024 13:57:55 +0000 (14:57 +0100)] 
spell-check: Allow libxdp

18 months agodnsdist: Update the XSK documentation for recent changes
Remi Gacogne [Tue, 23 Jan 2024 13:54:29 +0000 (14:54 +0100)] 
dnsdist: Update the XSK documentation for recent changes

18 months agoauth debian: adjust option names in shipped configs 13738/head
Peter van Dijk [Tue, 23 Jan 2024 12:58:09 +0000 (13:58 +0100)] 
auth debian: adjust option names in shipped configs

fixes #13708

18 months agorec: fix YAML conversion test 13737/head
Otto Moerbeek [Tue, 23 Jan 2024 12:48:20 +0000 (13:48 +0100)] 
rec: fix YAML conversion test

This test has race condition and after #13728, an output line can
occur multilpe times in the output. So filter those.

18 months agoMerge pull request #13733 from fredmorcos/ci-verbose-logging
Fred Morcos [Tue, 23 Jan 2024 12:30:30 +0000 (13:30 +0100)] 
Merge pull request #13733 from fredmorcos/ci-verbose-logging

CI: Enable verbose logging to catch errors within logging macros

18 months agodnsdist: Fix more clang-tidy warnings
Remi Gacogne [Tue, 23 Jan 2024 12:03:35 +0000 (13:03 +0100)] 
dnsdist: Fix more clang-tidy warnings

18 months agodnsdist: Implement proper parameters handling in the XDP helper
Remi Gacogne [Tue, 23 Jan 2024 11:53:36 +0000 (12:53 +0100)] 
dnsdist: Implement proper parameters handling in the XDP helper

18 months agodnsdist: Fix warnings from clang-tidy
Remi Gacogne [Tue, 23 Jan 2024 11:01:02 +0000 (12:01 +0100)] 
dnsdist: Fix warnings from clang-tidy

18 months agodnsdist: Relax file descriptor check for XSK-enabled backends
Remi Gacogne [Tue, 23 Jan 2024 10:03:50 +0000 (11:03 +0100)] 
dnsdist: Relax file descriptor check for XSK-enabled backends

We cannot guarantee that the response will be coming via XSK, so
we need to accept that a response that does not come from the
expected socket descriptor.

18 months agodnsdist: Switch to Debian 12 for our Docker image, enable XSK
Remi Gacogne [Tue, 23 Jan 2024 09:09:30 +0000 (10:09 +0100)] 
dnsdist: Switch to Debian 12 for our Docker image, enable XSK

18 months agodnsdist: Hopefully fix building with/without XDP in CI
Remi Gacogne [Mon, 22 Jan 2024 16:04:44 +0000 (17:04 +0100)] 
dnsdist: Hopefully fix building with/without XDP in CI

18 months agodnsdist: Enable XSK (AF_XDP) on supported OSes
Remi Gacogne [Mon, 22 Jan 2024 15:49:53 +0000 (16:49 +0100)] 
dnsdist: Enable XSK (AF_XDP) on supported OSes

18 months agodnsdist: Clear the XSK responder notification queue right away
Remi Gacogne [Mon, 22 Jan 2024 11:28:25 +0000 (12:28 +0100)] 
dnsdist: Clear the XSK responder notification queue right away

Otherwise we might discard a valid notification between our last
look at the queue and the clearing.

18 months agodnsdist: Properly delay response packets in incoming-only XSK mode
Remi Gacogne [Mon, 22 Jan 2024 11:28:09 +0000 (12:28 +0100)] 
dnsdist: Properly delay response packets in incoming-only XSK mode

18 months agodnsdist: Refactor XSK support between dnsdist and the backends
Remi Gacogne [Fri, 19 Jan 2024 16:22:57 +0000 (17:22 +0100)] 
dnsdist: Refactor XSK support between dnsdist and the backends

18 months agodnsdist: Cosmetic fixes for XSK
Remi Gacogne [Fri, 19 Jan 2024 14:40:28 +0000 (15:40 +0100)] 
dnsdist: Cosmetic fixes for XSK

18 months agodnsdist: Log whether we are using XSK, and which mode (native or emulated)
Remi Gacogne [Fri, 19 Jan 2024 08:53:48 +0000 (09:53 +0100)] 
dnsdist: Log whether we are using XSK, and which mode (native or emulated)

18 months agodnsdist: Fix XSK over IPv6
Remi Gacogne [Fri, 19 Jan 2024 08:14:38 +0000 (09:14 +0100)] 
dnsdist: Fix XSK over IPv6

18 months agodnsdist: Log whether UDP queries are forwarded via XSK
Remi Gacogne [Fri, 19 Jan 2024 08:10:44 +0000 (09:10 +0100)] 
dnsdist: Log whether UDP queries are forwarded via XSK

18 months agodnsdist: Install libbpf and libxdp in our CI image
Remi Gacogne [Tue, 16 Jan 2024 10:42:45 +0000 (11:42 +0100)] 
dnsdist: Install libbpf and libxdp in our CI image

18 months agodnsdist: Add default values for the map and number of frames in `newXsk`
Remi Gacogne [Tue, 16 Jan 2024 10:34:21 +0000 (11:34 +0100)] 
dnsdist: Add default values for the map and number of frames in `newXsk`

18 months agodnsdist: Fix a clang-tidy warning
Remi Gacogne [Mon, 15 Jan 2024 16:02:38 +0000 (17:02 +0100)] 
dnsdist: Fix a clang-tidy warning

18 months agodnsdist: We need the regular, non-XSK threads as well!
Remi Gacogne [Mon, 15 Jan 2024 16:01:59 +0000 (17:01 +0100)] 
dnsdist: We need the regular, non-XSK threads as well!

18 months agodnsdist: Fix XSK/AF_XDP detection
Remi Gacogne [Mon, 15 Jan 2024 16:01:26 +0000 (17:01 +0100)] 
dnsdist: Fix XSK/AF_XDP detection

18 months agodnsdist: Add xsk, xskmap and umem to the spellchecker allow-list
Remi Gacogne [Mon, 15 Jan 2024 16:07:45 +0000 (17:07 +0100)] 
dnsdist: Add xsk, xskmap and umem to the spellchecker allow-list

18 months agodnsdist: Document the XSK feature
Remi Gacogne [Mon, 15 Jan 2024 15:50:45 +0000 (16:50 +0100)] 
dnsdist: Document the XSK feature

18 months agodnsdist: Report the `AF_XDP` feature
Remi Gacogne [Mon, 15 Jan 2024 15:09:52 +0000 (16:09 +0100)] 
dnsdist: Report the `AF_XDP` feature

18 months agoxdp.py: The ports set is now unused in XSK mode
Remi Gacogne [Mon, 15 Jan 2024 15:09:22 +0000 (16:09 +0100)] 
xdp.py: The ports set is now unused in XSK mode

18 months agodnsdist: Revert the now unneeded changes made to dnsdist-healthchecks
Remi Gacogne [Mon, 15 Jan 2024 15:08:51 +0000 (16:08 +0100)] 
dnsdist: Revert the now unneeded changes made to dnsdist-healthchecks

18 months agodnsdist: Format and delint the XSK code
Remi Gacogne [Mon, 15 Jan 2024 14:44:31 +0000 (15:44 +0100)] 
dnsdist: Format and delint the XSK code

18 months agodnsdist: Clean up and reorganize XSK code
Remi Gacogne [Mon, 15 Jan 2024 14:14:29 +0000 (15:14 +0100)] 
dnsdist: Clean up and reorganize XSK code

18 months agodnsdist: Fix XSK between dnsdist and its backends
Remi Gacogne [Thu, 11 Jan 2024 15:24:38 +0000 (16:24 +0100)] 
dnsdist: Fix XSK between dnsdist and its backends

18 months agodnsdist: Get rid of memory allocations in the XSK hot path
Remi Gacogne [Thu, 28 Dec 2023 15:20:40 +0000 (16:20 +0100)] 
dnsdist: Get rid of memory allocations in the XSK hot path

18 months agodnsdist: Refactor the XSK code into a proper namespace
Remi Gacogne [Thu, 28 Dec 2023 14:18:44 +0000 (15:18 +0100)] 
dnsdist: Refactor the XSK code into a proper namespace

18 months agodnsdist: Cleanup of the XSK code, fixing alignment issues
Remi Gacogne [Thu, 28 Dec 2023 10:53:49 +0000 (11:53 +0100)] 
dnsdist: Cleanup of the XSK code, fixing alignment issues

Also add UMEM checks for debugging.

18 months agodnsdist: Fix a UMEM corruption in XSK
Remi Gacogne [Thu, 28 Dec 2023 10:51:04 +0000 (11:51 +0100)] 
dnsdist: Fix a UMEM corruption in XSK

The second parameter to `xsk_ring_prod__submit` is the number of
processed items, not the final index.

18 months agodnsdist: Minor clean ups in the XSK code
Remi Gacogne [Tue, 26 Sep 2023 10:35:50 +0000 (12:35 +0200)] 
dnsdist: Minor clean ups in the XSK code

18 months agodnsdist: Fix AF_XDP (XSK) detection
Remi Gacogne [Tue, 26 Sep 2023 10:35:09 +0000 (12:35 +0200)] 
dnsdist: Fix AF_XDP (XSK) detection

18 months agodnsdist: Better detection of libbpf and libxdp
Remi Gacogne [Tue, 19 Sep 2023 14:45:46 +0000 (16:45 +0200)] 
dnsdist: Better detection of libbpf and libxdp

18 months agodnsdist: Small cleanup of the XSK code
Remi Gacogne [Mon, 18 Sep 2023 12:22:07 +0000 (14:22 +0200)] 
dnsdist: Small cleanup of the XSK code

18 months agodnsdist: Fall-back to non-XSK for too large responses
Remi Gacogne [Fri, 3 Mar 2023 13:04:16 +0000 (14:04 +0100)] 
dnsdist: Fall-back to non-XSK for too large responses

18 months agodnsdist: Add a `XskSocket::getMetrics()` binding
Remi Gacogne [Fri, 3 Mar 2023 13:01:43 +0000 (14:01 +0100)] 
dnsdist: Add a `XskSocket::getMetrics()` binding

18 months agodnsdist: Add comments to the XSK code
Remi Gacogne [Thu, 2 Mar 2023 14:06:59 +0000 (15:06 +0100)] 
dnsdist: Add comments to the XSK code

18 months agodnsdist: Fix parameter validation with XSK
Remi Gacogne [Thu, 2 Mar 2023 14:04:57 +0000 (15:04 +0100)] 
dnsdist: Fix parameter validation with XSK

18 months agodnsdist: Punt fragmented UDP dgrams to the kernel in xdp-filter
Remi Gacogne [Thu, 2 Mar 2023 14:04:33 +0000 (15:04 +0100)] 
dnsdist: Punt fragmented UDP dgrams to the kernel in xdp-filter

18 months agodnsdist: Pass-through TCP packets from XDP
Remi Gacogne [Wed, 1 Mar 2023 13:04:08 +0000 (14:04 +0100)] 
dnsdist: Pass-through TCP packets from XDP

18 months agodnsdist: Add an option to easily disable XDP logging (default)
Remi Gacogne [Wed, 1 Mar 2023 13:03:22 +0000 (14:03 +0100)] 
dnsdist: Add an option to easily disable XDP logging (default)

18 months agodnsdist: Prevent a false-positive warning from the compiler
Remi Gacogne [Wed, 1 Mar 2023 10:34:02 +0000 (11:34 +0100)] 
dnsdist: Prevent a false-positive warning from the compiler

```
In file included from xsk.hh:50,
                 from xsk.cc:23:
In function ‘xdp_desc* xsk_ring_prod__tx_desc(xsk_ring_prod*, __u32)’,
    inlined from ‘void XskSocket::send(std::vector<std::unique_ptr<XskPacket>, std::allocator<std::unique_ptr<XskPacket> > >&)’ at xsk.cc:176:28:
/usr/include/xdp/xsk.h:76:27: warning: ‘idx’ may be used uninitialized [-Wmaybe-uninitialized]
   76 |         return &descs[idx & tx->mask];
      |                       ~~~~^~~~~~~~~~
```

18 months agodnsdist: Better error messages when failing to load the XDP map
Remi Gacogne [Wed, 1 Mar 2023 10:33:41 +0000 (11:33 +0100)] 
dnsdist: Better error messages when failing to load the XDP map

18 months agodnsdist: add AF_XDP support for udp
Y7n05h [Wed, 17 Aug 2022 14:18:11 +0000 (22:18 +0800)] 
dnsdist: add AF_XDP support for udp
Signed-off-by: Y7n05h <Y7n05h@protonmail.com>
18 months agodnsname: Remove a redundant comparison reported by CodeQL
Remi Gacogne [Tue, 23 Jan 2024 10:15:12 +0000 (11:15 +0100)] 
dnsname: Remove a redundant comparison reported by CodeQL

18 months agodnsname: Use a view instead of pointer arithmetic in DNSName::packetParser()
Remi Gacogne [Thu, 18 Jan 2024 13:00:31 +0000 (14:00 +0100)] 
dnsname: Use a view instead of pointer arithmetic in DNSName::packetParser()

18 months agodnsname: Optimize parsing of uncompressed labels
Remi Gacogne [Thu, 28 Dec 2023 16:07:01 +0000 (17:07 +0100)] 
dnsname: Optimize parsing of uncompressed labels

The gist of this change is to stop allocating and copying per label
when parsing DNSNames from the wire format, as long as we do not
encounter a compression pointer, so that we only allocate and copy
once for as many labels as possible.

This has a noticeable impact in some of our speedtest results:

| Test | Before | After |
| --- | --- | --- |
| 'parse 'empty-query'' | 7282032.6 runs/s, 0.14 us/run | 13519722.8 runs/s, 0.07 us/run |
| 'parse 'empty-query' bare' | 7512588.4 runs/s, 0.13 us/run | 14421770.5 runs/s, 0.07 us/run |
| 'parse 'typical-referral' bare | 917539.2 runs/s, 1.09 us/run | 1151581.7 runs/s, 0.87 us/run |
| 'parse 'typical-referral'' | 626927.3 runs/s, 1.60 us/run | 711754.3 runs/s, 1.40 us/run |

The improvement is quite clear when the number of labels increases:

| Number of labels | Before | After |
| --- | --- | --- |
| 1 | 16280173.9 runs/s, 0.06 us/run | 15798338.6 runs/s, 0.06 us/run |
| 2 | 11591389.8 runs/s, 0.09 us/run | 15677266.9 runs/s, 0.06 us/run |
| 3 | 9008087.9 runs/s, 0.11 us/run | 14705491.1 runs/s, 0.07 us/run |
| 4 | 7391707.9 runs/s, 0.14 us/run | 14368828.1 runs/s, 0.07 us/run |
| 5 | 6172025.9 runs/s, 0.16 us/run | 14326900.3 runs/s, 0.07 us/run |
| 6 | 5396152.4 runs/s, 0.19 us/run | 13585892.7 runs/s, 0.07 us/run |
| 7 | 4763488.4 runs/s, 0.21 us/run | 12824105.9 runs/s, 0.08 us/run |
| 8 | 4323804.8 runs/s, 0.23 us/run | 12494736.6 runs/s, 0.08 us/run |
| 9 | 3877356.8 runs/s, 0.26 us/run | 12308737.6 runs/s, 0.08 us/run |
| ... | ... | ... |
| 127 | 360564.0 runs/s, 2.77 us/run | 2782692.4 runs/s, 0.36 us/run |

18 months agoMerge pull request #13723 from chbruyand/dnsname-position-types
Remi Gacogne [Tue, 23 Jan 2024 11:02:18 +0000 (12:02 +0100)] 
Merge pull request #13723 from chbruyand/dnsname-position-types

DNSName: correct len and offset types

18 months agoMerge pull request #13701 from omoerbeek/rec-rpz-refactor
Otto Moerbeek [Tue, 23 Jan 2024 10:17:50 +0000 (11:17 +0100)] 
Merge pull request #13701 from omoerbeek/rec-rpz-refactor

rec: RPZ from primary refactor and allow notifies for RPZs

18 months agodnsdist: Update Quiche to 0.20.0 13736/head
Remi Gacogne [Tue, 23 Jan 2024 09:11:34 +0000 (10:11 +0100)] 
dnsdist: Update Quiche to 0.20.0

This fixes CVE-2023-6193, in addition to smaller fixes.