- Jun 06, 2024
-
- Jun 05, 2024
-
- Jun 04, 2024
-
-
Oto Šťáva authored
As pointed out by @lukas.ondracek, the wording could be confusing when mentioning *bottommost* and *topmost* layers. The original wording was meant to reference the way the arrays in `daemon/session2.c` are laid out, but never explicitly mentioned that, so one could be implicitly think it was in reference to the widely known ISO/OSI or TCP/IP models, which could be interpreted incorrectly (the layers are traditionally laid out the other way around there).
-
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
- May 15, 2024
-