-Knot Resolver 6.0.8 (2024-0m-dd)
+Knot Resolver 6.0.8 (2024-07-23)
================================
+Security
+--------
+- reduce buffering of transmitted data, especially TCP-based in userspace
+ Also expose some of the new tweaks in lua:
+ (require 'ffi').C.the_worker.engine.net.tcp.user_timeout = 1000
+ (require 'ffi').C.the_worker.engine.net.listen_{tcp,udp}_buflens.{snd,rcv}
+
Improvements
------------
- TLS (DoT, DoH): respect crypto policy overrides in OS (!1526)
5.x branch longterm support
~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Knot Resolver 5.7.4 (2024-0m-dd)
+Knot Resolver 5.7.4 (2024-07-23)
================================
+Security
+--------
+- reduce buffering of transmitted data, especially TCP-based in userspace
+ Also expose some of the new tweaks in lua:
+ (require 'ffi').C.the_worker.engine.net.tcp.user_timeout = 1000
+ (require 'ffi').C.the_worker.engine.net.listen_{tcp,udp}_buflens.{snd,rcv}
+
Improvements
------------
- add the fresh DNSSEC root key "KSK-2024" already, Key ID 38696 (!1556)
--- /dev/null
+.. SPDX-License-Identifier: GPL-3.0-or-later
+
+Buffering tweaks
+----------------
+
+We (can) set various server-side socket options that affect buffering.
+The values are stored in C structures without real Lua bindings,
+so setting them is a bit long.
+
+.. py:data:: (require 'ffi').C.the_worker.engine.net.tcp.user_timeout
+
+ On TCP-based server-side sockets we set ``TCP_USER_TIMEOUT`` option if available (~Linux).
+ We use default 1000, i.e. one second. For details see the definition in ``man tcp.7``.
+
+.. py:data:: (require 'ffi').C.the_worker.engine.net.listen_tcp_buflens.snd
+.. py:data:: (require 'ffi').C.the_worker.engine.net.listen_tcp_buflens.rcv
+.. py:data:: (require 'ffi').C.the_worker.engine.net.listen_udp_buflens.snd
+.. py:data:: (require 'ffi').C.the_worker.engine.net.listen_udp_buflens.rcv
+
+ If overridden to nonzero, these variables instruct the OS to modify kernel-space buffers
+ for server-side sockets. We split the setting for UDP vs. TCP and sending vs. receiving.
+
+ For details see ``SO_SNDBUF`` and ``SO_RCVBUF`` in ``man socket.7``.
+ There is no user-space buffering beyond immediate manipulation, only the OS keeps some.
+
:maxdepth: 2
daemon-bindings-net_dns_tweaks
+
+Buffering tweaks
+================
+
+.. toctree::
+ :maxdepth: 2
+
+ daemon-bindings-net_buffering
+
--- /dev/null
+../../daemon/bindings/net_buffering.rst
\ No newline at end of file
.. _mod-workarounds:
-Module `workarounds` resolver behavior on specific broken sub-domains.
+Module `workarounds` tweaks resolver behavior on specific broken sub-domains.
Currently it mainly disables case randomization.
.. code-block:: lua