- Jun 04, 2024
-
-
Oto Šťáva authored
A) Context-specific allocations ------------------------------- There were two problems: 1) Some payloads are short-lived (e.g. allocated on stack) and we need to make a copy of them if the iteration over protocol layers becomes asynchronous. 2) The `pl_dns_stream_wrap` function used a mempool belonging to its session-wide context. Some sessions may live for a long time, which could potentially lead to needlessly long-lived memory allocations. Both of these problems are solved in this commit by using a new `knot_mm_t pool` field in `struct protolayer_iter_ctx`, which lives only for a single submit (and survives asynchronicity). The whole pool is then freed all at once when the `struct protolayer_iter_ctx` is finalized. B) Merging `struct protolayer_manager` into `struct session2` ------------------------------------------------------------- It actually made no real sense to have the two separated. It only introduced an extra layer of indirection and many layers actually needed to access both anyway. This should simplify things considerably.
-
Oto Šťáva authored
Previously, PROXYv2 handling was partially implemented in the `io.c` unit in the `_TCP` and `_UDP` protocol layers, which technically made very little sense. This commit moves this handling into separate `_PROXYV2_DGRAM` and `_PROXYV2_STREAM` protocol layers, basically encapsulating the handling of proxies in the `proxyv2.c` unit. This commit also makes the PROXYv2 stream layer only support `PROTOLAYER_PAYLOAD_WIRE_BUF` on its input, as other payload types were unused and untested in this context.
-
Oto Šťáva authored
This makes some readability enhancements to the `protolayer_` API as well as clarifies some of the documentation. There is also a change where the definitions of protocol layer sequences does not require a `_NULL` layer to be present at the end anymore, as the number of layers in a sequence is determined at compile time. This makes defining new sequences less error-prone.
-
Aleš Mrázek authored
- May 29, 2024
-
-
Oto Šťáva authored
This commit makes it more convenient to change the configuration of the build directory of `kresd` when using Knot Resolver Manager. It adds a new `./poe configure` command, which optionally takes the same arguments as the standard `meson configure` command. The `./poe run` command now requires running `./poe configure` at least once to set up the build directory. If the directory has been configured before this commit (i.e. `./poe run` has been executed at least once), no extra action is required, as the directory structure remains the same. The commit also removes the `manager` configuration option from Meson as we were not using it and it was broken and potentially confusing to newcomers.
-
No changes required.
-
-
-
Prevent accidental upgrades from v5. Merge -core and -manager subpackages back into knot-resolver6.
-
- May 28, 2024
-
-
Aleš Mrázek authored
datamodel: unbreak `dnssec: false` See merge request !1548
-
It was causing an incorrect Lua line trust_anchors.keep_removed = Reported on gitter a couple days ago.
-
- May 27, 2024
-
-
Oto Šťáva authored
modules/stats: adapt aggregate stats to the new hierarchical format Knot Resolver 6 changed the structure of the stats return value, making it more hierarchical, i.e. the returned object contains nested "sub-objects", rather than being flat. This commit adapts the new aggregate stats to this new structure, for consistency.
-
Vladimír Čunát authored
- May 20, 2024
-
-
Just as read-only aggregates of the split v4+v6 pairs.
-
Let's have .total4 and .total6, too. Then .total could be expressed as a sum of *three* (including .internal), so it's still counted separately, as an exception.
-
(cherry picked from commit 44df5dd0)
-
- May 15, 2024
-
- May 14, 2024
-
- May 13, 2024
-
-
Oto Šťáva authored
It used to just throw BrokenPipeError, but newer versions of Python have a separate exception for when the connection is closed in violation of TLS rules, which Knot Resolver does deliberately so as to not waste time on properly closing TLS connections with misbehaving peers.