- Jul 02, 2024
-
-
Aleš Mrázek authored
-
-
-
Aleš Mrázek authored
-
Aleš Mrázek authored
-
- Jun 20, 2024
-
- Jun 18, 2024
-
-
Oto Šťáva authored
The `protolayer_globals` array can basically be treated as a constant by most of the program and its initialization only uses compile-time-known values. We basically only initialize parts of the array in different files throughout the codebase to maintain separation of concerns, so that each piece of Knot Resolver initializes the part that pertains to it. Therefore, I believe that it is more ergonomic to just use `__attribute__((constructor))` for these functions, so as not to pollute `daemon/main.c` with these calls.
-
- Jun 17, 2024
-
-
Aleš Mrázek authored
-
Aleš Mrázek authored
Added information about the development environment and code structure.
-
- Jun 13, 2024
-
-
Aleš Mrázek authored
-
Aleš Mrázek authored
-
Aleš Mrázek authored
-
- Jun 12, 2024
-
-
Jakub Ružička authored
Debian packaging cleanup See merge request !1555
-
- Jun 11, 2024
-
-
Jakub Ružička authored
This addresses dpkg-gencontrol warnings: dpkg-gencontrol: warning: Depends field of package knot-resolver6-module-http: substitution variable ${shlibs:Depends} used, but is not defined dpkg-gencontrol: warning: Depends field of package knot-resolver6-dev: substitution variable ${shlibs:Depends} used, but is not defined
-
Jakub Ružička authored
-
Jakub Ružička authored
-
Jakub Ružička authored
-
Jakub Ružička authored
-
Jakub Ružička authored
-dbgsym packages are now generated automatically.
-
Jakub Ružička authored
fixes lintian warning: not-binnmuable-all-depends-any
-
Jakub Ružička authored
-
Jakub Ružička authored
-
Jakub Ružička authored
-
Jakub Ružička authored
-
- Jun 07, 2024
-
- 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.