]>
git.ipfire.org Git - thirdparty/knot-resolver.git/log
Oto Šťáva [Tue, 20 Feb 2024 10:31:20 +0000 (11:31 +0100)]
manager: update Python versions
Use the oldest supported Python by default again, since that ensures our
compatibility. Also, remove explicit Python versions from README to
avoid duplication - `pyenv install` just installs the versions that are
already in `.python-version`, so let's leverage that.
Aleš Mrázek [Mon, 19 Feb 2024 15:25:56 +0000 (16:25 +0100)]
lint: fixes for new versions of tools
Aleš Mrázek [Mon, 19 Feb 2024 15:16:04 +0000 (16:16 +0100)]
manager: ci: switch to python 3.12
Aleš Mrázek [Mon, 19 Feb 2024 15:14:40 +0000 (16:14 +0100)]
poetry: support for python 3.12
- poetry: upgrade to 1.7.1
- poetry: python 3.7 support removed
- poetry: unnecessary tox tool removed
- poetry: deps version update
Vladimír Čunát [Mon, 19 Feb 2024 09:34:55 +0000 (10:34 +0100)]
Merge !1500: datamodel: support interface names with dashes
Fixes #900
Vladimír Čunát [Mon, 19 Feb 2024 09:02:55 +0000 (10:02 +0100)]
datamodel: support interface names with dashes
Dashes can't be present in normal identifiers in Lua,
so we switch to a different syntactic sugar for the same thing.
Oto Šťáva [Fri, 16 Feb 2024 10:07:09 +0000 (11:07 +0100)]
Merge branch 'manager-nits' into '6.0'
manager: nits, cleanups, fixes
See merge request knot/knot-resolver!1496
Oto Šťáva [Mon, 5 Feb 2024 16:38:18 +0000 (17:38 +0100)]
manager: get rid of old linters and clean-up some warnings
Removes references to pyright, which is not in use anymore. Also removes
warning suppressions and instead properly resolves the warnings.
Oto Šťáva [Mon, 5 Feb 2024 16:03:44 +0000 (17:03 +0100)]
manager: move `build.py` to `build_c_extensions.py`
This fixes a problem on some systems, where the `build.py` file
conflicts with the `build` module required by Poetry.
See <https://github.com/python-poetry/poetry/issues/7576>.
Oto Šťáva [Mon, 5 Feb 2024 16:02:41 +0000 (17:02 +0100)]
manager: have pyenv prefer the latest Python version instead of the oldest
Oto Šťáva [Thu, 15 Feb 2024 12:38:40 +0000 (13:38 +0100)]
Merge branch 'manager-api-cache-clear' into '6.0'
manager: cache-clear command via HTTP API
Closes #876
See merge request knot/knot-resolver!1491
Aleš Mrázek [Thu, 15 Feb 2024 11:10:08 +0000 (12:10 +0100)]
manager/tests: validate JSON output from "kresctl cache clear --json" command
Aleš Mrázek [Fri, 9 Feb 2024 15:05:37 +0000 (16:05 +0100)]
kresctl: config: reduction of duplicate code related to the data parsing
- set: there is no need to specify the input data format
- get: YAML is now the default format for output data
Aleš Mrázek [Fri, 9 Feb 2024 15:05:05 +0000 (16:05 +0100)]
kresctl: cache command: output formats for 'clear' operation
Aleš Mrázek [Fri, 9 Feb 2024 15:04:07 +0000 (16:04 +0100)]
modeling: parsing: data dump from instances of class 'Renamed'
Oto Šťáva [Fri, 9 Feb 2024 09:55:17 +0000 (10:55 +0100)]
manager: use proper JSON values for socket communication
This commit adds a special JSON mode for control sockets.
The mode is activated by issuing a special `__json` command to the
socket, resulting in all Lua objects returned by all subsequent commands
to be serialized into JSONs, prepended by a 32-bit unsigned integer
byte-length value.
This JSON mode is now exclusively utilized by Manager, removing the need
to hackily strip single-quotes from the output and to read the output by
lines. Instead, it can always just read the 32-bit length value and
subsequently the whole JSON-formatted message, which is now
automatically deserialized into a Python object.
Aleš Mrázek [Tue, 6 Feb 2024 13:00:06 +0000 (14:00 +0100)]
'cache-clear' remade to 'cache/clear'
Aleš Mrázek [Mon, 5 Feb 2024 15:15:58 +0000 (16:15 +0100)]
naming: replacing 'kids' suffix with 'kresids' for clarification
Aleš Mrázek [Mon, 29 Jan 2024 15:42:18 +0000 (16:42 +0100)]
doc: cache clearing
Aleš Mrázek [Mon, 29 Jan 2024 14:19:58 +0000 (15:19 +0100)]
manager/tests: simple test for /cache-clear API endpoint
Aleš Mrázek [Mon, 29 Jan 2024 14:09:28 +0000 (15:09 +0100)]
doc/manager-client.rst: 'cache-clear' command added
Aleš Mrázek [Mon, 22 Jan 2024 20:41:31 +0000 (21:41 +0100)]
api: cache-clear: validate data, render lua and send cmd
Aleš Mrázek [Mon, 22 Jan 2024 20:36:46 +0000 (21:36 +0100)]
datamodel: schema and template for cache-clear command
Aleš Mrázek [Mon, 22 Jan 2024 13:37:36 +0000 (14:37 +0100)]
api: added cache-clear route
Aleš Mrázek [Mon, 22 Jan 2024 13:02:00 +0000 (14:02 +0100)]
datamodel: moving the main jinja template loader to the templates dir
Aleš Mrázek [Mon, 22 Jan 2024 12:57:10 +0000 (13:57 +0100)]
controller: moving workers registration helpers out of the statistics module
Aleš Mrázek [Tue, 14 Nov 2023 13:04:29 +0000 (14:04 +0100)]
kresctl: 'cache-clear' command created
Vladimír Čunát [Tue, 13 Feb 2024 13:17:57 +0000 (14:17 +0100)]
Merge branch 'release-6.0.6' into 6.0
Vladimír Čunát [Tue, 13 Feb 2024 13:05:13 +0000 (14:05 +0100)]
Release 6.0.6
Vladimír Čunát [Tue, 13 Feb 2024 13:17:07 +0000 (14:17 +0100)]
AUTHORS update
Vladimír Čunát [Tue, 13 Feb 2024 13:09:56 +0000 (14:09 +0100)]
Merge !1497: lib/dnssec: allow validating some RRsets around 64 KiB size
Vladimír Čunát [Tue, 6 Feb 2024 08:41:04 +0000 (09:41 +0100)]
lib/dnssec: allow validating some RRsets around 64 KiB size
- only with libknot >= 3.4 though (which is not released yet)
- use stack instead of static buffer (saves RAM; see code comment)
Vladimír Čunát [Tue, 13 Feb 2024 12:32:32 +0000 (13:32 +0100)]
NEWS for 6.0.6
Vladimír Čunát [Tue, 13 Feb 2024 12:12:41 +0000 (13:12 +0100)]
Merge branch 'master' into dos-feb13-6.0
There were some nontrivial conflicts to resolve, NEWS + the line
ctx->vld_limit_crypto = KR_VLD_LIMIT_CRYPTO_DEFAULT;
(I had this resolution prepared for a long time.)
Aleš Mrázek [Tue, 13 Feb 2024 09:08:04 +0000 (10:08 +0100)]
release 5.7.1
Vladimír Čunát [Tue, 13 Feb 2024 11:43:16 +0000 (12:43 +0100)]
Merge: mitigate CVE-2023-50387 "KeyTrap"
DNSSEC verification complexity could be exploited to exhaust CPU resources and stall DNS resolvers.
Solution boils down mainly to limiting crypto-validations per packet.
Vladimír Čunát [Mon, 1 Jan 2024 15:25:05 +0000 (16:25 +0100)]
update NEWS with KeyTrap
in a separate commit, as it will tend to conflict if patching
Vladimír Čunát [Tue, 16 Jan 2024 06:35:20 +0000 (07:35 +0100)]
mitigate KeyTrap DoS = CVE-2023-50387
Improve: don't retry in this case.
Vladimír Čunát [Mon, 1 Jan 2024 15:21:10 +0000 (16:21 +0100)]
mitigate KeyTrap DoS = CVE-2023-50387
Vladimír Čunát [Mon, 1 Jan 2024 15:05:46 +0000 (16:05 +0100)]
lib/resolve kr_request_set_extended_error(): tweak priorities
Keep the first error in case priorities are equal.
At least with the current KeyTrap topic that should work better,
but blaming a single error is alchemy anyway, at least in some cases.
Vladimír Čunát [Sat, 30 Dec 2023 08:20:56 +0000 (09:20 +0100)]
lib/dnssec kr_rrset_validate_with_key(): deduplicate cleanup
Vladimír Čunát [Tue, 13 Feb 2024 08:46:09 +0000 (09:46 +0100)]
Merge CVE-2023-50868: NSEC3 closest encloser proof can exhaust CPU
Vladimír Čunát [Mon, 12 Feb 2024 13:06:28 +0000 (14:06 +0100)]
Merge branch 'master' into 6.0
There were some conflicts with !1495
Vladimír Čunát [Mon, 12 Feb 2024 10:30:50 +0000 (11:30 +0100)]
validator: compatibility with older libknot versions
The value is in IANA registry, so it's very constant anyway.
Vladimír Čunát [Mon, 12 Feb 2024 10:23:42 +0000 (11:23 +0100)]
add NEWS for NSEC3 mitigations from the previous few commits
Vladimír Čunát [Mon, 12 Feb 2024 10:16:47 +0000 (11:16 +0100)]
validator: refuse to validate answers with more than 8 NSEC3 records
Vladimír Čunát [Mon, 12 Feb 2024 10:16:37 +0000 (11:16 +0100)]
validator: limit the amount of work on SHA1 in NSEC3 proofs
Vladimír Čunát [Sun, 11 Feb 2024 09:00:32 +0000 (10:00 +0100)]
lib/cache: limit the amount of work on SHA1
That's when searching NSEC3 aggressive cache.
Vladimír Čunát [Tue, 2 Jan 2024 10:18:31 +0000 (11:18 +0100)]
validator: similarly also limit excessive NSEC3 salt length
Limit combination of iterations and salt length, based on estimated
expense of the computation. Note that the result only differs for
salt length > 44 which is rather nonsensical and very rare:
https://chat.dns-oarc.net/community/pl/h58qx9sjkbgt9dajb7x988p78a
Vladimír Čunát [Tue, 2 Jan 2024 09:05:28 +0000 (10:05 +0100)]
validator: lower the NSEC3 iteration limit (150 -> 50)
Also done by BIND9 >= 9.19.19:
https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/8515
The latest real-life measurements show that values above 50 are rare:
https://chat.dns-oarc.net/community/pl/aadp9wwrp7g7ux1b8chbzebmze
Jakub Ružička [Tue, 6 Feb 2024 15:00:44 +0000 (16:00 +0100)]
Merge branch 'pkg-bionic' into 'master'
pkg/distro/deb: fix doc build for Ubuntu 18.04
See merge request knot/knot-resolver!1495
Jakub Ružička [Tue, 6 Feb 2024 13:32:56 +0000 (14:32 +0100)]
pkg/distro/deb: fix doc build for Ubuntu 18.04
Due to mysterious reasons, Ubuntu 18.04 ARM builds doesn't invoke
dh_installinfo (even though amd64 does).
Merge knot-resolver-doc.info into knot-resolver-doc.docs for
compatibility.
Jakub Ružička [Mon, 5 Feb 2024 17:10:21 +0000 (18:10 +0100)]
distro/pkg/deb: bump debhelper compat to 11
Oldest supported distro requiring 11 is Ubuntu 18.04 Bionic Beaver.
Vladimír Čunát [Tue, 6 Feb 2024 07:55:25 +0000 (08:55 +0100)]
libknot 3.4 compat
This extends the new 5.x commit
673c8d2b56b6 .
Now I can build fine against knot-dns master again.
Vladimír Čunát [Tue, 6 Feb 2024 11:41:30 +0000 (12:41 +0100)]
Merge branch 'master' into 6.0
Vladimír Čunát [Tue, 6 Feb 2024 11:40:35 +0000 (12:40 +0100)]
Merge !1494: compatibility with libknot's master (3.4 WIP)
Vladimír Čunát [Tue, 6 Feb 2024 07:46:34 +0000 (08:46 +0100)]
compatibility with libknot's master (3.4 WIP)
I'm adding this as a function, as in knot-resolver 6.x we have
one more place where it is used, and I find this more readable.
Vladimír Čunát [Sat, 3 Feb 2024 17:28:27 +0000 (18:28 +0100)]
Merge !1493: distro/pkg/deb: depend on python3, not python3-all
Jakub Ružička [Tue, 30 Jan 2024 14:03:20 +0000 (15:03 +0100)]
distro/pkg/deb: depend on python3, not python3-all
This fixes build failures on Ubuntu 24.04 where python3.11
and python3.12 co-exist.
Aleš Mrázek [Fri, 26 Jan 2024 16:07:55 +0000 (17:07 +0100)]
Merge branch 'manager-stats-fixes' into '6.0'
manager: fixes for metrics/stats
See merge request knot/knot-resolver!1492
Aleš Mrázek [Fri, 26 Jan 2024 12:57:47 +0000 (13:57 +0100)]
manager/kresd_controller/interface.py: register only kresd workers for metrics
Aleš Mrázek [Fri, 26 Jan 2024 12:05:13 +0000 (13:05 +0100)]
manager/statistics.py: instance_id fix
Vladimír Čunát [Fri, 19 Jan 2024 12:58:04 +0000 (13:58 +0100)]
Merge !1490: manager/tests/packaging: More verbose systemd_service tests
Oto Šťáva [Thu, 18 Jan 2024 19:05:40 +0000 (20:05 +0100)]
manager/tests/packaging: More verbose systemd_service tests
Oto Šťáva [Mon, 15 Jan 2024 21:52:56 +0000 (22:52 +0100)]
Merge remote-tracking branch 'origin/master' into doc-logo-manual-colors-6
Oto Šťáva [Mon, 15 Jan 2024 20:57:35 +0000 (21:57 +0100)]
Merge branch 'doc-logo-manual-colors-5' into 'master'
doc: adjust colors according to the logo manual
See merge request knot/knot-resolver!1489
Oto Šťáva [Mon, 15 Jan 2024 19:11:13 +0000 (20:11 +0100)]
doc: adjust colors according to the logo manual
Vladimír Čunát [Mon, 15 Jan 2024 14:00:16 +0000 (15:00 +0100)]
Merge !1481: meson.build: install and search directories adjustments
Vladimír Čunát [Mon, 15 Jan 2024 13:41:02 +0000 (14:41 +0100)]
NEWS: add a line about run_dir
Oto Šťáva [Fri, 5 Jan 2024 16:54:41 +0000 (17:54 +0100)]
meson.build: conditional branching on run_dir
This should, to the best of our knowledge, give us the correct run_dir
on Linux, macOS and BSDs.
Kirill A. Korinsky [Fri, 5 Jan 2024 15:38:01 +0000 (16:38 +0100)]
meson.build: make /run dir relative to install prefix
Kirill A. Korinsky [Fri, 5 Jan 2024 14:48:29 +0000 (15:48 +0100)]
meson.build: respect pkgconfig libdir
Oto Šťáva [Mon, 15 Jan 2024 09:57:05 +0000 (10:57 +0100)]
Merge remote-tracking branch 'origin/master' into 6.0
Oto Šťáva [Mon, 15 Jan 2024 09:54:55 +0000 (10:54 +0100)]
Merge branch 'sonarcloud-5-update' into 'master'
ci/images/debian-11: update sonarcloud to version 5
See merge request knot/knot-resolver!1488
Oto Šťáva [Mon, 15 Jan 2024 09:38:12 +0000 (10:38 +0100)]
ci/images/debian-11: update sonarcloud to version 5
Old version caused failures due to unsupported Java version 11.
Vladimír Čunát [Sun, 14 Jan 2024 08:46:37 +0000 (09:46 +0100)]
Merge !1487: Update links to documentation
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).
Vladimír Čunát [Wed, 10 Jan 2024 16:23:12 +0000 (17:23 +0100)]
Merge !1486: doc/requirements.txt: add sphinx_rtd_theme
Oto Šťáva [Wed, 10 Jan 2024 15:39:52 +0000 (16:39 +0100)]
doc/requirements.txt: add sphinx_rtd_theme
This should fix the ReadTheDocs build
Oto Šťáva [Wed, 10 Jan 2024 15:19:55 +0000 (16:19 +0100)]
Merge branch 'master' into 6.0
Oto Šťáva [Wed, 10 Jan 2024 15:12:09 +0000 (16:12 +0100)]
Merge branch 'docs-pages-5-backport' into 'master'
Backport hosting docs in GitLab Pages into 5.x
See merge request knot/knot-resolver!1485
Oto Šťáva [Wed, 10 Jan 2024 15:04:14 +0000 (16:04 +0100)]
.gitlab-ci: remove the `pages` job for 5.x
Oto Šťáva [Wed, 10 Jan 2024 14:18:57 +0000 (15:18 +0100)]
doc/conf.py: jquery workaround
Oto Šťáva [Wed, 10 Jan 2024 14:05:24 +0000 (15:05 +0100)]
.gitlab-ci: upgrade pip packages
Oto Šťáva [Wed, 10 Jan 2024 13:49:11 +0000 (14:49 +0100)]
scripts/make-doc.sh: backport changes from 6.0
Aleš Mrázek [Wed, 10 Jan 2024 12:55:43 +0000 (13:55 +0100)]
Merge branch 'doc-monitoring-stats' into '6.0'
doc: update statistics collection using yaml config
See merge request knot/knot-resolver!1482
Aleš Mrázek [Mon, 8 Jan 2024 16:30:21 +0000 (17:30 +0100)]
doc/config-monitoring-stats.rst: update stats config with yaml
Oto Šťáva [Wed, 10 Jan 2024 11:30:16 +0000 (12:30 +0100)]
.gitlab-ci: remove old 'doc' target
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.
Oto Šťáva [Tue, 9 Jan 2024 15:53:37 +0000 (16:53 +0100)]
Merge branch 'doc-dev' into '6.0'
Documentation improvements - doc-dev directory; release notes shortening
See merge request knot/knot-resolver!1484
Oto Šťáva [Tue, 9 Jan 2024 15:31:31 +0000 (16:31 +0100)]
doc/NEWS: exclude LTS versions from release notes
Oto Šťáva [Tue, 9 Jan 2024 15:31:04 +0000 (16:31 +0100)]
doc-dev: create directory for developer documentation
Jakub Ružička [Tue, 9 Jan 2024 13:27:14 +0000 (14:27 +0100)]
Merge branch 'release-6.0.5' into '6.0'
Release 6.0.5
See merge request knot/knot-resolver!1483
Vladimír Čunát [Tue, 9 Jan 2024 11:34:50 +0000 (12:34 +0100)]
doc nit: fix a broken link
Vladimír Čunát [Tue, 9 Jan 2024 07:38:24 +0000 (08:38 +0100)]
scripts/update-authors.sh nit: avoid confusing changes in ordering
Jakub Ružička [Mon, 8 Jan 2024 18:18:28 +0000 (19:18 +0100)]
Release 6.0.5
Vladimír Čunát [Tue, 9 Jan 2024 07:22:52 +0000 (08:22 +0100)]
AUTHORS: regenerate
Vladimír Čunát [Tue, 9 Jan 2024 07:18:46 +0000 (08:18 +0100)]
Merge branch 'master' into 6.0
Vladimír Čunát [Mon, 8 Jan 2024 09:47:21 +0000 (10:47 +0100)]
doc/manager-client: fix a copy&paste typo