Oto Šťáva [Fri, 12 Jan 2024 15:21:31 +0000 (16:21 +0100)]
Update links to documentation
Replaces all mentions of `knot-resolver.readthedocs.io` with
`www.knot-resolver.cz/documentation/latest`.
Some of the links used to point to the `latest` documentation, which
meant the latest `master` commit, but the current system does not really
allow us to do this, so instead we link to the latest stable (which is
what `www.knot-resolver.cz/documentation/latest` basically is).
We also cannot reliably get the documentation for a particular version
in the code, so it all just points to `latest` as well. This may change
in the future, although I do not yet have a good approach in mind
(particularly, I don't want to bother our admins with nginx
configuration updates for each newly released version).
Oto Šťáva [Tue, 12 Sep 2023 12:27:09 +0000 (14:27 +0200)]
.gitlab-ci: fix Pages publishing
This commit renames `docs:public` to `pages` as required by GitLab CI to
recognize Pages jobs correctly. It also adds the `public` directory into
`artifacts:paths`.
Oto Šťáva [Tue, 29 Aug 2023 08:38:13 +0000 (10:38 +0200)]
.gitlab-ci.yml: use environments for documentation versioning
This leverages Environments on GitLab to expose different versions of
Knot Resolver docs. The `docs:build` job builds the documentation and
exposes it via job artifacts. Then `docs:develop` (for branches) and
`docs:release` (for tags) take these artifacts and expose them via an
Environment link (an example of this in action may be seen at
[https://gitlab.nic.cz/ostava/knot-resolver/-/environments]).
There is also an optional, manually runnable `docs:public` job, which,
when run, propagates the documentation to the main GitLab Pages of the
project (e.g. [https://knot.pages.nic.cz/knot-resolver]) - this will
probably be mostly used for the latest release, although this setup
pretty much allows us to swap it for whatever version we like at any
time.
Vladimír Čunát [Tue, 12 Dec 2023 09:32:30 +0000 (10:32 +0100)]
daemon/io: close LMDB txns after control socket commands
There's the issue that during config-file loading we prefer to do all
changes in rule DB inside a single transaction, so the normal commands
do not close them. However with control socket commands we can't afford
to leave transactions open (unclear for how long), especially RW transactions.
Officially yesterday, but there's long overlap when both address pairs
are promised to work. See e.g. this e-mail thread:
https://lists.dns-oarc.net/pipermail/dns-operations/2023-June/022052.html
Oto Šťáva [Fri, 3 Nov 2023 07:42:00 +0000 (08:42 +0100)]
datamodel: logging: fix typo in 'zoncut' log group
The log group is abbreviated in kresd - the actual word is `zonecut`,
but the log group is actually called `zoncut`, which the unfixed
datamodel would not let through.
Vladimír Čunát [Fri, 3 Nov 2023 11:31:06 +0000 (12:31 +0100)]
lib/zonecut.c fetch_addr(): resurrect filtering by NO_IPV*
This filtering was dropped in 4565cc596680 (v5.3.0).
Now it's reintroduced - but inside the function, as that seems nicer.
Nit: naming and comment were updated to fit the current usage.
As the code is designed so far (in whole history probably), in order
to detect whether we need to choose a zone cut closer to the root,
we need to do something like this in lib/zonecut.c already,
instead of just during server selection.
I don't think this change can break anything.
Fetching unusable addresses from cache seems pointless,
as selection wouldn't be allowed to use them or try resolving them.
Vladimír Čunát [Sat, 23 Sep 2023 15:45:33 +0000 (17:45 +0200)]
/views docs: rewrite again, mostly
- move typical simple examples near the top
- document the two new conditions
- reorganize the text: split conditions and actions
- other minor changes
Vladimír Čunát [Thu, 21 Sep 2023 12:51:42 +0000 (14:51 +0200)]
/views/*/options: fix when used with e.g. tags
The issue is not now; it has always been broken in 6.x.
The model is that at most one view applies on any request.
If we need to do more things, they must happen as one meta-action.
test_view_insert_action(): dropped; can't see a suitable replacement
Vladimír Čunát [Sun, 3 Sep 2023 15:33:39 +0000 (17:33 +0200)]
/views/*/{dst_subnet,protocols}: add, both backend+config
Examples:
- tagging based on dst_subnet is useful for providing different
filtering setting on different resolver addresses
- tagging based on protocols is useful to signal used transport
(change in DNS data that can be read by the final app)
Vladimír Čunát [Mon, 28 Aug 2023 08:32:08 +0000 (10:32 +0200)]
lib/rules: avoid using preallocated LMDB writes
They're a bit more efficient, but they can't work with LMDB multi-sets.
Also, write performance of rules isn't that important and typically
each rule is quite tiny anyway.