Oto Šťáva [Mon, 21 Aug 2023 07:44:10 +0000 (09:44 +0200)]
manager: run kresctl from the executor's working directory
This updates `poethepoet` to version `^0.22.0`
(https://github.com/nat-n/poethepoet/releases/tag/v.0.22.0), which
allows tasks to have a working directory different from the project
path.
This breaks the `poe` script on Python `<3.8`, but discussions took
place on Slack where we came to the conclusion that this is fine. The
script is meant for developers only and does not affect end users on
systems that do not provide newer Python versions.
Oto Šťáva [Tue, 1 Aug 2023 14:36:53 +0000 (16:36 +0200)]
daemon: more avoidance of excessive TCP reconnections
Previously this penalization was only triggered if the remote server
closed TCP. Now it's extended to us closing it when the server
(only) sends back some nonsense. At least for the cases which I could
see immediately.
That's just three trivial one-line additions; the rest is refactoring.
Adapted to 6.0 from commit 6468ab22 by Oto Šťáva <oto.stava@nic.cz>
Co-Authored-By: Vladimír Čunat <vladimir.cunat@nic.cz>
Oto Šťáva [Mon, 21 Aug 2023 13:01:11 +0000 (15:01 +0200)]
manager: use self._type in KresID.__eq__()
Fixes a case where a GC and KRESD KresID with the same `self._id` would
be considered equal. Said behaviour breaks listing of all running
subprocesses, where `kresd0` would be missing, because it has the same
`self._id` as `cache-gc`.
Vladimír Čunát [Sat, 29 Jul 2023 15:53:34 +0000 (17:53 +0200)]
daemon: more avoidance of excessive TCP reconnections
Previously this penalization was only triggered if the remote server
closed TCP. Now it's extended to us closing it when the server
(only) sends back some nonsense. At least for the cases which I could
see immediately.
That's just three trivial one-line additions; the rest is refactoring.
Vladimír Čunát [Sun, 13 Aug 2023 15:34:46 +0000 (17:34 +0200)]
docs: fix padding descriptions
Mentioning just answers is misleading. Padding is very important
for queries as well; for us that applies during forwarding over TLS.
Also describe /tls/auto_discovery as experimental in the
configuration schema. It's a rather dead experiment from long ago.
I hope it can't be confused with more recent things like
https://datatracker.ietf.org/doc/draft-ietf-dprive-unilateral-probing/
Vladimír Čunát [Fri, 4 Aug 2023 17:22:23 +0000 (19:22 +0200)]
hints: merge RRs instead of replacing them
We had this behavior in 5.x.
Lua level: affects hints.set() and hints['name'] and hints.add_hosts()
YAML level: /local-data/addresses and /local-data/addresses-files
I considered various approaches when writing this. This one won because
in /etc/hosts like files a name can be repeated with arbitrary lines
in between, and users can reasonably expect it to collect all addresses.
Oto Šťáva [Fri, 11 Aug 2023 07:17:57 +0000 (09:17 +0200)]
manager/poetry.lock: remove
Lockfiles are generally encouraged to be committed into VCS to ensure
reproducible builds on all machines. Our situation is slightly
different - we are more interested in supporting a wide range of setups
on a wide range of systems.
Our `poetry.lock` also contained some outdated library versions that had
CVEs reported on them, and GitHub did not like that, so this
incidentally also solves that problem for us. Since the lock file was
only used during development, this will not affect end users in any way
(runtime dependencies are managed by each distro's package manager).
Vladimír Čunát [Thu, 3 Aug 2023 15:31:11 +0000 (17:31 +0200)]
lib/rules: when forwarding, avoid resolving NS's name
With "authoritative forwarding" it could happen that NS selection
decided to resolve the virtual ns.invalid name of the NS to get
either A or AAAA (if either was missing in the forwarding rule).