Remi Gacogne [Thu, 13 Feb 2025 10:51:49 +0000 (11:51 +0100)]
dnsdist: Bump the required version of `meson` to 1.3
Since we now use the `follow_symlinks` option of `install_data()`.
We could probably make it work with older versions but a quick look
at what distributions provide suggests that 1.2.1 or 1.3.0 is
practically the same amount of pain.
Miod Vallat [Wed, 12 Feb 2025 11:45:27 +0000 (12:45 +0100)]
Disable read ahead in LMDB.
This contributes to not degrading performance too much when the system
memory is almost completely used, by preventing page thrashing due to
the read ahead behaviour of the system.
dependabot[bot] [Wed, 12 Feb 2025 09:16:14 +0000 (09:16 +0000)]
build(deps): bump cryptography in /regression-tests.recursor-dnssec
Bumps [cryptography](https://github.com/pyca/cryptography) from 43.0.1 to 44.0.1.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/43.0.1...44.0.1)
Otto Moerbeek [Wed, 12 Feb 2025 07:57:10 +0000 (08:57 +0100)]
Switch to clang-format-19 by default and allow //comment with no leading space
Still some formatting differences, but they look legit. It seems
older versions of clang-format did not process preprocessor
conditionals correctly in all cases.
Remi Gacogne [Tue, 11 Feb 2025 09:55:58 +0000 (10:55 +0100)]
rec: Fix handling of man pages with meson
This commit moves to `custom_target` to build the man pages since
we don't want to have to explicitely run a different meson command
to build them. As opposed to `run_target`, `custom_target` does not
have access to the build and source roots via env variables, so the
man pages generation script now takes these as required parameters.
Remi Gacogne [Tue, 11 Feb 2025 09:55:01 +0000 (10:55 +0100)]
auth: Fix handling of man pages with meson
This commit moves to `custom_target` to build the man pages since
we don't want to have to explicitely run a different meson command
to build them. As opposed to `run_target`, `custom_target` does not
have access to the build and source roots via env variables, so the
man pages generation script now takes these as required parameters.
Remi Gacogne [Tue, 11 Feb 2025 09:47:41 +0000 (10:47 +0100)]
dnsdist: Fix handling of man pages with meson
This commit moves to `custom_target` to build the man pages since
we don't want to have to explicitely run a different meson command
to build them. As opposed to `run_target`, `custom_target` does not
have access to the build and source roots via env variables, so the
man pages generation script now takes these as required parameters.
Otto Moerbeek [Tue, 11 Feb 2025 09:19:29 +0000 (10:19 +0100)]
rec: check bounds of rcode stats counter index (safe right now)
Safe right now as LWResult::d_rcode gets assigned from the 4 bit
rcode in the header. But that might change one day. I'd rather
make LWResult::d_rcode an uint8_t, but that causes a conflict with
the OOB resolving code that does not make a difference between res
and d_rcode.
Remi Gacogne [Mon, 10 Feb 2025 10:24:28 +0000 (11:24 +0100)]
dnsdist: Fix compatibility with boost::lockfree >= 1.87.0
In https://github.com/boostorg/lockfree/pull/90 `boost::lockfree::spsc_queue`
introduced moved semantics, which is great, but added restrictions
to the callback functor that did not exist before, breaking the API.
This PR fixes that by updating our callbacks to expect an object
instead of a reference.
Remi Gacogne [Thu, 6 Feb 2025 16:47:39 +0000 (17:47 +0100)]
dnsdist: Ignore `re2`'s broken compilation flags
Apparently some version(s) of `re2` pass `-std=c++11` in the result
of `pkg-config --cflags`, which helpfully downgrades us from C++17
to C++11. Let's just ignore what it says.
Ensar Sarajčić [Wed, 5 Feb 2025 19:03:42 +0000 (20:03 +0100)]
Fix `DnstapLogAction` and `DnstapLogResponseAction` in YAML config
There was not option of having no alter function defined, even though it
is expected by config. If it wasn't defined, it passed an invalid alter
function into the action. This makes the alter function optional and
properly checks if it was found in configuration.
Ensar Sarajčić [Wed, 5 Feb 2025 19:02:26 +0000 (20:02 +0100)]
Add YAML support for multiple logger connections
This also fixes a bug with loggers in YAML, which had hardcoded
connection status. For `RemoteLogger` that worked by having it always
connect, but for `FrameStreamLogger` it never connected. Now the
behavior is the same as lua, by checking the client mode flag.
Ensar Sarajčić [Wed, 5 Feb 2025 14:58:05 +0000 (15:58 +0100)]
dnsdist: add pooling support for RemoteLoggerInterface
This adds a new kind of `RemoteLoggerInterface`: `RemoteLoggerPool`.
It can take multiple other `RemoteLoggerInterface`s and pass data to
them in round-robin order by default.
This also adds additional option to `newRemoteLogger`, `newFrameStreamTcpLogger`
and `newFrameStreamUnixLogger`: `connectionCount`, which can be used to
generate a pool with multiple connections.