]>
git.ipfire.org Git - thirdparty/knot-resolver.git/log
Frantisek Tobias [Tue, 2 Sep 2025 10:01:58 +0000 (12:01 +0200)]
daemon/quic: quic connections as sessions refactor
Frantisek Tobias [Mon, 25 Aug 2025 13:29:46 +0000 (15:29 +0200)]
daemon/quic: split quic conn management and quic conn into separate layers
This abstranction virtually switched from UDP's understanding of session to how TCP sees it, that is session represents one connection, and exists only while the connection is active, WIP
Frantisek Tobias [Tue, 19 Aug 2025 13:19:35 +0000 (15:19 +0200)]
daemon/quic: Fix issues with cached replies, eliminate leaks that occured during typical traffic
Frantisek Tobias [Thu, 14 Aug 2025 10:16:46 +0000 (12:16 +0200)]
daemon/quic: handle errors that reqire response, store outdata
in pl_iter_ctx->payload, resolve some memleaks
Frantisek Tobias [Mon, 11 Aug 2025 08:20:15 +0000 (10:20 +0200)]
daemon/quic: solve endianity issue, handle acks and closing streams
Frantisek Tobias [Thu, 31 Jul 2025 10:54:11 +0000 (12:54 +0200)]
daemon/quic: fix buffering resolved unacked data
Frantisek Tobias [Thu, 31 Jul 2025 10:53:22 +0000 (12:53 +0200)]
daemon/quic: store dcid and stream_id of the latest query in comm->target
Frantisek Tobias [Tue, 29 Jul 2025 07:29:43 +0000 (09:29 +0200)]
daemon/quic_streams: add multistream support and handle output data buffering
Frantisek Tobias [Tue, 29 Jul 2025 07:23:59 +0000 (09:23 +0200)]
daemon/quic: support for multiple streams: collect finished queries into wire_buf a proceed to the next layer
Frantisek Tobias [Mon, 21 Jul 2025 08:20:56 +0000 (10:20 +0200)]
daemon/quic_stream: use wire_buf as the main buffer type
Frantisek Tobias [Mon, 21 Jul 2025 08:19:30 +0000 (10:19 +0200)]
daemon/quic: adjust payload handling to work with wire_buf
Frantisek Tobias [Mon, 21 Jul 2025 08:17:25 +0000 (10:17 +0200)]
daemon/worker: use wire_buf for DoQ
Frantisek Tobias [Tue, 15 Jul 2025 07:33:13 +0000 (09:33 +0200)]
daemon/quic: handle received stream data WIP
Frantisek Tobias [Wed, 9 Jul 2025 08:01:36 +0000 (10:01 +0200)]
daemon/quic: move code from pl_quic_unwrap to a separate function, add overview
Frantisek Tobias [Mon, 7 Jul 2025 08:15:21 +0000 (10:15 +0200)]
daemon/quic: move stream functions to separate file, replace quic_ctx with struct kr_quic_conn everywhere
Frantisek Tobias [Thu, 3 Jul 2025 07:09:14 +0000 (09:09 +0200)]
daemon/quic: stop sending reset token in all frames, fix use after free of protolayer_iter_ctx
Frantisek Tobias [Mon, 9 Jun 2025 12:17:14 +0000 (14:17 +0200)]
daemon/quic: implement send stream functions
Frantisek Tobias [Tue, 3 Jun 2025 06:30:41 +0000 (08:30 +0200)]
daemon/quic: currently sending protected payload with no answer
cleanup and improve logging, prepare for opening streams
Frantisek Tobias [Tue, 3 Jun 2025 06:19:26 +0000 (08:19 +0200)]
daemon/session: pass protolayer_iter_ctx->comm->target to subsequent layers
Communication in DoQ requires an associated connection, target is used to pass destination CID to the wrap direction. This DCID can then be used to get the connection from conn->table.
Frantisek Tobias [Mon, 26 May 2025 10:39:26 +0000 (12:39 +0200)]
daemon/quic: enable QUIC protolayer
Frantisek Tobias [Mon, 26 May 2025 10:33:26 +0000 (12:33 +0200)]
daemon/doq: implement basic serverside comunication
handshake doesn't finish, pl_quic_wrap encounters use after free. steady progress
Frantisek Tobias [Mon, 26 May 2025 10:28:44 +0000 (12:28 +0200)]
Contrib: add ucw head and lists implementations
Frantisek Tobias [Tue, 8 Apr 2025 06:52:04 +0000 (08:52 +0200)]
DoQ: io: add doq flag, io_listen_udp can now create a session for plain udp or doq
Frantisek Tobias [Tue, 25 Mar 2025 11:44:14 +0000 (12:44 +0100)]
daemon/session: add QUIC protolayer type and config listen: interface: kind
Vladimír Čunát [Mon, 5 Jan 2026 10:22:28 +0000 (11:22 +0100)]
Merge !1775: defer: fix sampling multiple answers from same TCP connection
Lukáš Ondráček [Tue, 23 Dec 2025 14:05:14 +0000 (15:05 +0100)]
defer: fix sampling multiple answers from same TCP connection
Vladimír Čunát [Sun, 4 Jan 2026 13:20:49 +0000 (14:20 +0100)]
Merge !1782: distro/pkg: replace retired Jakub's contact by our team alias
Vladimír Čunát [Sun, 4 Jan 2026 12:56:31 +0000 (13:56 +0100)]
distro/pkg: replace retired Jakub's contact by our team alias
Vladimír Čunát [Sun, 4 Jan 2026 12:51:03 +0000 (13:51 +0100)]
NEWS: fix a wrong reference to merge request
Vladimír Čunát [Fri, 2 Jan 2026 10:02:25 +0000 (11:02 +0100)]
Merge !1774: cache packet_ttl(): fix wrong TTL in some cases, typically 32768
Vladimír Čunát [Sun, 21 Dec 2025 12:10:20 +0000 (13:10 +0100)]
add NEWS for the parent commit
Vladimír Čunát [Sun, 21 Dec 2025 12:10:20 +0000 (13:10 +0100)]
cache packet_ttl(): fix wrong TTL in some cases, typically 32768
A notable case is when authoritative server incorrectly sends
a reply without any record but with EDNS.
For the OPT, the TTL field contains extended-error, EDNS version,
DO bit and mandatorily zeroed bits. As extended-error isn't usually
set by authoritative servers outside SERVFAIL, and EDNS version
is just 1 so far, we'd end up with TTL either 32768 (DO=0) or with
a value clamped by maximum TTL (86400 by default).
Vladimír Čunát [Sun, 21 Dec 2025 16:33:30 +0000 (17:33 +0100)]
tests/integration/deckard: add test for the TTL issue
It's failing now and fixed by the following commit.
Vladimír Čunát [Tue, 30 Dec 2025 09:49:30 +0000 (10:49 +0100)]
Merge !1780: don't set AD if both Answer and Authority are empty.
Fixes #914
menakite [Thu, 29 Aug 2024 03:55:28 +0000 (05:55 +0200)]
resolver: don't set AD if both Answer and Authority are empty.
Fixes #914 (nord module: AD=1 is no good)
Vladimír Čunát [Mon, 29 Dec 2025 10:07:46 +0000 (11:07 +0100)]
Merge !1779: doc/user /local-data/rpz: correct the status of support
Vladimír Čunát [Mon, 29 Dec 2025 09:28:02 +0000 (10:28 +0100)]
doc/user /local-data/rpz: correct the status of support
Vladimír Čunát [Sun, 21 Dec 2025 07:36:50 +0000 (08:36 +0100)]
Merge !1770: pyproject.toml and poe tasks improvements
Aleš Mrázek [Thu, 11 Dec 2025 23:55:47 +0000 (00:55 +0100)]
.gitlab-ci.yml: updated names and stages for python jobs
Aleš Mrázek [Thu, 11 Dec 2025 23:35:51 +0000 (00:35 +0100)]
pyproject.toml: updated groups dependencies versions
Aleš Mrázek [Thu, 11 Dec 2025 23:15:43 +0000 (00:15 +0100)]
controller/supervisord/__init__.py: sort imports
Aleš Mrázek [Fri, 5 Dec 2025 11:39:03 +0000 (12:39 +0100)]
.gitlab-ci.yml:: updated poe tasks names
Updated poe tasks names in other places.
Aleš Mrázek [Fri, 5 Dec 2025 10:01:23 +0000 (11:01 +0100)]
scripts/po-tasks: better naming for scripts
Also, check-code gets ruff's checks of imports and formatting.
Aleš Mrázek [Fri, 5 Dec 2025 09:58:41 +0000 (10:58 +0100)]
pyproject.toml: better naming for poe tasks
Vladimír Čunát [Thu, 18 Dec 2025 14:38:22 +0000 (15:38 +0100)]
Merge !1772: tests: migrate off cmocka's deprecated APIs
Vladimír Čunát [Tue, 16 Dec 2025 14:33:29 +0000 (15:33 +0100)]
NEWS: consolidate + add entry for cmocka
Vladimír Čunát [Tue, 16 Dec 2025 14:17:27 +0000 (15:17 +0100)]
tests: migrate off cmocka's deprecated APIs
With cmocka-2.0.0 these broke.
I'm not sure if upstream meant to break them,
but either way we'd better avoid deprecated APIs.
Vladimír Čunát [Tue, 16 Dec 2025 08:32:36 +0000 (09:32 +0100)]
Merge !1769: support libdnssec merged into libknot, as planned for knot >= 3.6
Vladimír Čunát [Tue, 16 Dec 2025 08:04:45 +0000 (09:04 +0100)]
treewide: avoid DNSSEC_EOK
It was zero anyway, just as KNOT_EOK or kr_ok()
Vladimír Čunát [Wed, 22 Oct 2025 07:50:51 +0000 (09:50 +0200)]
libdnssec -->> libknot
Vladimír Čunát [Fri, 24 Oct 2025 15:18:07 +0000 (17:18 +0200)]
treewide: centralize inclusion of libdnssec headers
Vladimír Čunát [Mon, 15 Dec 2025 12:05:30 +0000 (13:05 +0100)]
Merge !1768: manager: logging improvement
Aleš Mrázek [Wed, 10 Dec 2025 17:54:45 +0000 (18:54 +0100)]
NEW: added improved logging groups
Aleš Mrázek [Wed, 10 Dec 2025 17:54:18 +0000 (18:54 +0100)]
doc/user/config-logging-monitoring.rst: updated logging groups
Aleš Mrázek [Fri, 29 Aug 2025 15:02:25 +0000 (17:02 +0200)]
manager/logger.py: added debug groups for the manager
Aleš Mrázek [Tue, 26 Aug 2025 13:12:01 +0000 (15:12 +0200)]
logging: debug logging level for individual components(processes)
- datamodel: logging-groups: added LogGroupsProcessesEnum
Aleš Mrázek [Tue, 26 Aug 2025 11:46:57 +0000 (13:46 +0200)]
manager/logger.py: simplified setting of log level and logging handler
Aleš Mrázek [Tue, 26 Aug 2025 11:41:51 +0000 (13:41 +0200)]
manager/logger.py: added constants for logging targets
Vladimír Čunát [Fri, 12 Dec 2025 07:13:29 +0000 (08:13 +0100)]
Merge !1766: cache test: adjust conditions on cache usage
Vladimír Čunát [Fri, 12 Dec 2025 06:34:53 +0000 (07:34 +0100)]
.gitignore: add defer+top
These get created when running kresd without changing
to a different rundir.
Vladimír Čunát [Sat, 6 Dec 2025 12:59:29 +0000 (13:59 +0100)]
cache test: adjust conditions on cache usage
The KRU-based garbage collection reduced the LMDB size a bit
for a particular overall cache size setting.
Apple Silicon uses 16 KiB pages instead of the usual 4 KiB,
so the usage is a bit shifted and that's why we didn't notice earlier
(though before the KRU GC we adjusted in commit
adaac913c5 )
For example failure, see "not ok" lines in
https://cache.nixos.org/log/1452wsll1fxh38p0fbqa0vw1p7ki6v55-knot-resolver_6-6.0.17.drv
Vladimír Čunát [Wed, 10 Dec 2025 09:45:32 +0000 (10:45 +0100)]
Merge !1764: update meson's minimal version and utilize that
Fixes #714
Vladimír Čunát [Wed, 3 Dec 2025 13:33:34 +0000 (14:33 +0100)]
modules/experimental_dot_auth: fix copy&paste error in meson
There's no ./static dir to even install.
Apparently this snippet came from modules/http.
Discovered thanks to meson reporting:
NOTICE: Future-deprecated features used:
* 0.60.0: {'install_subdir with empty directory'}
Vladimír Čunát [Wed, 3 Dec 2025 13:21:17 +0000 (14:21 +0100)]
meson: replace deprecated get_pkgconfig_variable()
Vladimír Čunát [Wed, 7 Dec 2022 11:19:41 +0000 (12:19 +0100)]
meson: utilize the version bump
Vladimír Čunát [Tue, 6 Dec 2022 18:54:43 +0000 (19:54 +0100)]
meson: use summary()
https://mesonbuild.com/Reference-manual_functions.html#summary
- has nicer output
- less code in meson files
- allows defining summary parts closer to where they originate
Also short pieces of meson code are moved around.
I'm not sure how much info to put into those summaries;
this commit keeps the amount about the same.
Also note that (while not documented in meson)
a "User defined options" is appended, so the summary()
may end up repeating entries from that section.
Vladimír Čunát [Tue, 6 Dec 2022 17:38:57 +0000 (18:38 +0100)]
meson minimal version: 0.49 -> 0.53
This gets rid of a warning * 0.52.0: {'priority arg in test'}
There's still Ubuntu 20.04 with meson 0.53.2,
though its standard support ended a few months ago.
Debian 11 with meson 0.56.2 is similar in this respect.
Still well supported: RHEL 9 derivatives with meson 0.63.3
and Ubuntu 22.04 with meson 0.61.2.
Aleš Mrázek [Mon, 8 Dec 2025 14:49:16 +0000 (15:49 +0100)]
Merge branch 'python3.14-support' into 'master'
Support for Python 3.14
See merge request knot/knot-resolver!1767
Vladimír Čunát [Mon, 8 Dec 2025 12:55:13 +0000 (13:55 +0100)]
ci: switch lint:tidy from Arch to Debian 13
The problem was that in Arch the clang-tidy package
updates at random moments, so we have to resolve
the issues when doing urelated refreshes of CI images.
Aleš Mrázek [Fri, 5 Dec 2025 16:56:19 +0000 (17:56 +0100)]
utils/modeling: support for annotations in python3.14
PEP 649 & PEP 749: Deferred evaluation of annotations
The annotations on classes(ConfigSchema classes in our case) are no longer evaluated eagerly. They are evaluated only when necessary.
Aleš Mrázek [Thu, 4 Dec 2025 23:37:40 +0000 (00:37 +0100)]
.python-version: added 3.14 and updated others
Aleš Mrázek [Thu, 4 Dec 2025 23:12:55 +0000 (00:12 +0100)]
.gitlab-ci.yml: python:unit: added python3.14
Vladimír Čunát [Mon, 8 Dec 2025 09:13:24 +0000 (10:13 +0100)]
Merge !1760: Avoid binding multiple transport protocols to one addr+port
Frantisek Tobias [Thu, 27 Nov 2025 08:44:43 +0000 (09:44 +0100)]
daemon/network: Avoid binding multiple transport protocols to one addr and port combination
Vladimír Čunát [Sat, 6 Dec 2025 09:45:47 +0000 (10:45 +0100)]
Merge !1765: manager: check that supervisord is manager's parent process
Vladimír Čunát [Fri, 5 Dec 2025 11:18:19 +0000 (12:18 +0100)]
manager: check that supervisord is manager's parent process
It might happen that we have a stale PID file, e.g. after a crash,
but some other process has taken the freed PID already.
Vladimír Čunát [Fri, 5 Dec 2025 09:41:43 +0000 (10:41 +0100)]
Merge !1763: /fallback: apply during reload (force kresd restarts)
Vladimír Čunát [Wed, 3 Dec 2025 11:15:38 +0000 (12:15 +0100)]
/fallback: apply during reload (force kresd restarts)
Aleš Mrázek [Tue, 2 Dec 2025 13:33:31 +0000 (14:33 +0100)]
Merge branch 'release-6.0.17' into 'master'
Release 6.0.17
See merge request knot/knot-resolver!1762
Vladimír Čunát [Tue, 2 Dec 2025 13:20:32 +0000 (14:20 +0100)]
NEWS: tweak the cache-kru bullet
Frantisek Tobias [Tue, 2 Dec 2025 11:58:42 +0000 (12:58 +0100)]
NEWS: fix markdown list formatting
Aleš Mrázek [Mon, 1 Dec 2025 12:43:36 +0000 (13:43 +0100)]
release 6.0.17
Vladimír Čunát [Tue, 2 Dec 2025 10:14:06 +0000 (11:14 +0100)]
ci: add pkg:ubuntu-25.10
Vladimír Čunát [Mon, 1 Dec 2025 20:22:36 +0000 (21:22 +0100)]
Merge !1761: lib/rules: allow forcing NODATA answer for a particular name+type
Vladimír Čunát [Mon, 1 Dec 2025 18:16:44 +0000 (19:16 +0100)]
lib/rules: allow forcing NODATA answer for a particular name+type
It's just removing an assertion, and it does make sense to me.
Also expose kr_rule_local_data_ins() in Lua, like other similar functions.
Vladimír Čunát [Mon, 1 Dec 2025 20:07:47 +0000 (21:07 +0100)]
Merge !1726: Use KRU in cache GC
Vladimír Čunát [Mon, 1 Dec 2025 18:16:44 +0000 (19:16 +0100)]
lib/cache: NULL cache->db on failure to open
Otherwise we get use-after-free when attempting to close the cache
after this failure causes the process to shut down.
Vladimír Čunát [Mon, 1 Dec 2025 11:24:30 +0000 (12:24 +0100)]
doc /logging/groups: document the three missing groups
In particular, I was now interested in `cache-gc`
and incorrectly assumed that it's merged with `cache`
(the C code didn't help, as they appear merged on that level).
Vladimír Čunát [Mon, 1 Dec 2025 10:37:52 +0000 (11:37 +0100)]
NEWS: add entry for this "cache-kru" branch
Vladimír Čunát [Tue, 25 Nov 2025 09:27:35 +0000 (10:27 +0100)]
lib/kru + elsewhere nit: avoid message-less static_assert()
With clang they'd cause lots of complaints:
warning: '_Static_assert' with no message is a C23 extension [-Wc23-extensions]
Vladimír Čunát [Wed, 13 Aug 2025 10:44:11 +0000 (12:44 +0200)]
lib/cache/top performance nits
Vladimír Čunát [Tue, 25 Nov 2025 13:55:47 +0000 (14:55 +0100)]
lib/cache/top: fix a minor `const` nit
Vladimír Čunát [Tue, 25 Nov 2025 11:27:51 +0000 (12:27 +0100)]
lib/cache nit: explicitly free kr_cache_emergency_file_to_remove
Also simplify the related code a little.
I don't think this has any practical impact.
Vladimír Čunát [Wed, 13 Aug 2025 10:44:11 +0000 (12:44 +0200)]
lib/cache kr_cache_open() nit: the `opts` parameter may not be NULL
The code clearly assumes it isn't, and I checked that it never is called
that way (and it would crash anyway).
Lukáš Ondráček [Thu, 13 Nov 2025 14:31:28 +0000 (15:31 +0100)]
lib/cache/top: fix counting the whole record size instead of just eh
Vladimír Čunát [Mon, 20 Oct 2025 09:30:54 +0000 (11:30 +0200)]
lib/kru: fix collision when user plays with -march option
Affects just clang, apparently. This is just a copy from knot-dns changes,
doing a bit more than this resolver commit title says. See:
https://gitlab.nic.cz/knot/knot-dns/-/commit/
ec4a2567b213efdb8ecab6573cebbc74fbb507b2
https://gitlab.nic.cz/knot/knot-dns/-/commit/
509d9d82b51c58ea572dccb09f4fdbe1a3c2571e
Vladimír Čunát [Wed, 13 Aug 2025 10:57:53 +0000 (12:57 +0200)]
treewide refactor: avoid kr_cache_top_context_switch()
It seemed to bring more complexity than benefit.
In many parts this meant revert to code before a few commits.
It's slightly tricky that qry or req may be NULL in some cases,
but I believe I've caught all of them by conditions, and moreover
they're cases where it doesn't make sense to update kr_cache_top_*
Vladimír Čunát [Mon, 11 Aug 2025 09:07:22 +0000 (11:07 +0200)]
lib/kru: deduplicate kru_limited_prefetch_hash()
Move the function up unchanged and use it on two places
which have the exact lines as the function.
Also fix its description.
Vladimír Čunát [Wed, 6 Aug 2025 14:09:25 +0000 (16:09 +0200)]
lib/kru nit: shrink the USE_AES version of `struct kru` by 64 bytes
Just by dropping some padding in the header.
Also drop a long outdated part of comment on this.
Vladimír Čunát [Wed, 6 Aug 2025 10:53:50 +0000 (12:53 +0200)]
lib/mmapped.c: refactor static fail() a bit