]>
git.ipfire.org Git - thirdparty/knot-resolver.git/log
Vladimír Čunát [Fri, 13 Sep 2019 16:26:19 +0000 (18:26 +0200)]
WIP delay allocation of kr_request::answer
FIXME: see FIXMEs in diff, document the API change, re-review.
Vladimír Čunát [Fri, 13 Sep 2019 16:14:54 +0000 (18:14 +0200)]
iterate nitpick: drop unused function parameter
Vladimír Čunát [Wed, 11 Sep 2019 15:57:41 +0000 (17:57 +0200)]
lib/resolve creation of first query: fix a rare possible bug
qname here wasn't lower-cased, so the match might not be correct.
Still, practically all deployments use either root TA or none,
and these can't be affected.
Vladimír Čunát [Wed, 11 Sep 2019 15:22:59 +0000 (17:22 +0200)]
compatible changes around kr_request::answer
Tomas Krizek [Tue, 20 Oct 2020 13:58:35 +0000 (15:58 +0200)]
Merge branch 'meson-0.49' into 'master'
meson: update to version 0.49
See merge request knot/knot-resolver!1082
Tomas Krizek [Fri, 16 Oct 2020 08:49:39 +0000 (10:49 +0200)]
meson: update to version 0.49
Tomas Krizek [Tue, 20 Oct 2020 09:11:51 +0000 (11:11 +0200)]
Merge branch 'unify-ENABLE-defines' into 'master'
treewide: unify ENABLE_* defines
See merge request knot/knot-resolver!1084
Vladimír Čunát [Mon, 19 Oct 2020 14:24:09 +0000 (16:24 +0200)]
treewide: unify ENABLE_* defines
Two styles were used: (un)defined and 0/1. We switch to 0/1.
Advantage: it can be used also like `if (ENABLE_FOO)`
(outside preprocessor).
Except for ./meson.build it's sed \
-e 's/#ifdef ENABLE_CAP_NG/#if ENABLE_CAP_NG/g' \
-e 's/#ifdef ENABLE_DOH2/#if ENABLE_DOH2/g' \
-e 's/defined(ENABLE_COOKIES)/ENABLE_COOKIES/g' \
-e 's/#ifdef ENABLE_COOKIES/#if ENABLE_COOKIES/g' \
-i $(git grep -l ENABLE_)
Tomas Krizek [Tue, 20 Oct 2020 09:02:46 +0000 (11:02 +0200)]
Merge branch 'ci-knot-xdp' into 'master'
ci: use docker image with XDP support
See merge request knot/knot-resolver!1085
Vladimír Čunát [Tue, 20 Oct 2020 08:55:06 +0000 (10:55 +0200)]
ci: use docker image with XDP support
Vladimír Čunát [Fri, 16 Oct 2020 08:04:46 +0000 (10:04 +0200)]
Merge !1079: doc: generate Info manual
Tomas Krizek [Thu, 15 Oct 2020 08:48:09 +0000 (10:48 +0200)]
doc/info: package figures
Simon South [Thu, 15 Oct 2020 11:13:20 +0000 (07:13 -0400)]
doc/info: create and install figures
Tomas Krizek [Wed, 14 Oct 2020 10:22:53 +0000 (12:22 +0200)]
doc/meson: fix installation with missing info page
Tomas Krizek [Tue, 13 Oct 2020 09:29:31 +0000 (11:29 +0200)]
distro/*: package info files
Simon South [Tue, 13 Oct 2020 00:14:43 +0000 (20:14 -0400)]
doc: use non-format-specific references to documentation
The "build-html-doc" ref-ID is preserved so as to not risk breaking
Web links and similar.
Simon South [Tue, 13 Oct 2020 00:14:42 +0000 (20:14 -0400)]
doc: generate Info manual
Check for makeinfo during configuration and if found, generate and
install documentation in Info format.
Tomas Krizek [Thu, 15 Oct 2020 11:17:08 +0000 (13:17 +0200)]
Merge branch '251-warn-if-static-unmanaged-key-is-used' into 'master'
Resolve "warn if static (unmanaged) key is used"
Closes #251
See merge request knot/knot-resolver!1051
Lukáš Ježek [Tue, 13 Oct 2020 09:13:00 +0000 (11:13 +0200)]
modules/ta_update: improve warning message
Vladimír Čunát [Thu, 13 Aug 2020 11:42:40 +0000 (13:42 +0200)]
modules/ta_update nitpick: don't call os.time() again
Vladimír Čunát [Mon, 5 Oct 2020 17:44:16 +0000 (19:44 +0200)]
tests: replace the deprecated -f parameter
Lukáš Ježek [Tue, 25 Aug 2020 10:03:10 +0000 (12:03 +0200)]
modules/ta_update: warn if there are differences between statically configured keys and upstream
Lukáš Ježek [Fri, 14 Aug 2020 09:50:05 +0000 (11:50 +0200)]
ta_update: rfc5011 test: fix knotd startup
Lukáš Ježek [Fri, 14 Aug 2020 09:28:40 +0000 (11:28 +0200)]
ta_update: rfc5011 test: removing the missing -r parameter for dnssec-tools
Lukas Jezek [Tue, 13 Oct 2020 12:23:06 +0000 (14:23 +0200)]
Merge branch 'doh-module-c' into 'master'
doh2: C implementation of DoH using nghttp2
Closes #600
See merge request knot/knot-resolver!997
Tomas Krizek [Wed, 7 Oct 2020 13:14:09 +0000 (15:14 +0200)]
daemon/http: fix double-free on some pkt send failures
When http_write() returns non-zero, worker_submit() performs the task
cleanup and calling on_write() callback only causes double free.
Tomas Krizek [Thu, 27 Aug 2020 13:01:00 +0000 (15:01 +0200)]
doc: update doh/doh2 documentation
Tomas Krizek [Mon, 5 Oct 2020 14:15:21 +0000 (16:15 +0200)]
distro/*: update module-http packaging description
Tomas Krizek [Fri, 2 Oct 2020 11:31:25 +0000 (13:31 +0200)]
daemon: add deprecation warning for old DoH implementation
Tomas Krizek [Fri, 2 Oct 2020 10:31:32 +0000 (12:31 +0200)]
daemon/http: document unsupported interleaving DATA
Tomas Krizek [Fri, 2 Oct 2020 08:43:15 +0000 (10:43 +0200)]
daemon/http: replace strchrnul for mac os compatibility
strchrnul() is a GNU extension that is not available on Mac OS.
Tomas Krizek [Fri, 2 Oct 2020 08:16:30 +0000 (10:16 +0200)]
daemon/http: log connection errors to verbose
Tomas Krizek [Fri, 2 Oct 2020 08:07:07 +0000 (10:07 +0200)]
luacheck: comment out unused code and variables
Tomas Krizek [Fri, 2 Oct 2020 08:02:17 +0000 (10:02 +0200)]
tests/config: doh2 - use tabs for indentation
Tomas Krizek [Thu, 1 Oct 2020 15:07:23 +0000 (17:07 +0200)]
tests/config: modify doh tests for doh2
Test only supported test-cases. Extend list of lua dependencies
for config tests.
Tomas Krizek [Thu, 1 Oct 2020 12:32:59 +0000 (14:32 +0200)]
tests/config: import tests from lua-http doh
Tomas Krizek [Thu, 1 Oct 2020 12:09:47 +0000 (14:09 +0200)]
daemon/http: make sure uv_handle is always initialized
It is later closed in endpoint_close(), which would fail with assert if
not initialized (e.g. when compiled without nghttp2 support and
attempting to use doh2 kind).
Tomas Krizek [Wed, 30 Sep 2020 12:10:23 +0000 (14:10 +0200)]
daemon: make nghttp2 optional
Tomas Krizek [Wed, 30 Sep 2020 12:09:32 +0000 (14:09 +0200)]
daemon/http: remove plain HTTP implementation artifacts
Tomas Krizek [Fri, 25 Sep 2020 13:35:20 +0000 (15:35 +0200)]
contrib/base64: sync with Knot DNS
Tomas Krizek [Fri, 25 Sep 2020 11:05:34 +0000 (13:05 +0200)]
distro/tests: test_doh2 run curl test only when needed
Jakub Ružička [Fri, 11 Sep 2020 17:33:20 +0000 (19:33 +0200)]
distro/tests: add tests for new DoH implementation
* one test unsing curl and sha256sum (get_url can't do HTTP/2)
* one test using kdig when correct version is present
Jakub Ružička [Wed, 9 Sep 2020 15:03:00 +0000 (17:03 +0200)]
distro: add new dependency: libnghttp2
This is needed by new DoH implementation.
Tomas Krizek [Fri, 25 Sep 2020 08:58:08 +0000 (10:58 +0200)]
daemon/io: use MANDATORY_APLN only with new gnutls
This is only needed to fail early during the handshake, if protocol
negotiation doesn't succeed. With older GnuTLS, if there's a protocol
mismatch, the data won't be understood and the connection will close
later on.
Mandatory ALPN doesn't affect clients that don't use the ALPN extension.
Tomas Krizek [Fri, 11 Sep 2020 10:15:32 +0000 (12:15 +0200)]
daemon/bindings: assign doh2 kind in net.list()
Tomas Krizek [Wed, 9 Sep 2020 09:56:14 +0000 (11:56 +0200)]
Dockerfile: add nghttp2 dependency
Tomas Krizek [Wed, 9 Sep 2020 09:34:13 +0000 (11:34 +0200)]
daemon/http: make lint happy
Tomas Krizek [Tue, 8 Sep 2020 08:53:57 +0000 (10:53 +0200)]
daemon/worker: simplify condition
Tomas Krizek [Wed, 2 Sep 2020 12:32:21 +0000 (14:32 +0200)]
daemon: decrease write errors severity in log
Tomas Krizek [Wed, 2 Sep 2020 12:31:22 +0000 (14:31 +0200)]
daemon/worker: expose number of write errors
Tomas Krizek [Wed, 26 Aug 2020 10:14:48 +0000 (12:14 +0200)]
daemon/http: improve handling of incomplete streams
Tomas Krizek [Tue, 25 Aug 2020 14:44:14 +0000 (16:44 +0200)]
daemon/worker: ensure ignored queries pop from http stream id queue
Tomas Krizek [Mon, 24 Aug 2020 09:42:28 +0000 (11:42 +0200)]
daemon/lua: update kres-gen.lua
Tomas Krizek [Thu, 20 Aug 2020 15:17:52 +0000 (17:17 +0200)]
daemon/http: ensure on_write is called on failures
Tomas Krizek [Thu, 20 Aug 2020 14:13:43 +0000 (16:13 +0200)]
daemon/http: immediately set handle to write_req in http_write()
This seems to be safe to do, since libuv handles tcp write in
a very similar way.
Tomas Krizek [Thu, 20 Aug 2020 14:13:35 +0000 (16:13 +0200)]
daemon/http: document header_callback
Tomas Krizek [Thu, 20 Aug 2020 14:13:12 +0000 (16:13 +0200)]
daemon/http: polish send_padding
Tomas Krizek [Thu, 20 Aug 2020 13:03:05 +0000 (15:03 +0200)]
daemon/http: write correct packet buffer
task->pktbuf isn't the same as the passed in pkt in qr_task_send().
pkt must be used and it must also stay valid as long as the task
lives. This seems to be the case for request answers, as they aren't
freed until there are no more tasks that reference them.
Tomas Krizek [Tue, 18 Aug 2020 09:36:22 +0000 (11:36 +0200)]
daemon/http: refactor sending to use less allocations
Tomas Krizek [Mon, 17 Aug 2020 15:46:14 +0000 (17:46 +0200)]
daemon/http: refactoring - rename session
Tomas Krizek [Mon, 17 Aug 2020 14:27:43 +0000 (16:27 +0200)]
daemon/http: use more distinguishable name for http2 session
Tomas Krizek [Mon, 17 Aug 2020 14:22:06 +0000 (16:22 +0200)]
daemon/http: refactor code style
Tomas Krizek [Mon, 17 Aug 2020 11:43:06 +0000 (13:43 +0200)]
daemon/io: use proper struct tls_ctx name
Tomas Krizek [Mon, 17 Aug 2020 11:42:44 +0000 (13:42 +0200)]
daemon/http: refactor header_callback()
Tomas Krizek [Fri, 14 Aug 2020 12:18:58 +0000 (14:18 +0200)]
daemon/http: rename struct http_ctx
Tomas Krizek [Fri, 14 Aug 2020 11:25:05 +0000 (13:25 +0200)]
daemon/http: code style changes
Tomas Krizek [Fri, 14 Aug 2020 08:53:43 +0000 (10:53 +0200)]
daemon/bindings/net: fix port-based default protocol selection
Tomas Krizek [Fri, 14 Aug 2020 08:20:48 +0000 (10:20 +0200)]
daemon/http: remove plain HTTP until fully supported
Tomas Krizek [Wed, 12 Aug 2020 11:11:31 +0000 (13:11 +0200)]
daemon/io: set proper ALPN for dot and doh
Tomas Krizek [Tue, 11 Aug 2020 13:59:25 +0000 (15:59 +0200)]
daemon/http: minor fixes
Tomas Krizek [Tue, 11 Aug 2020 13:08:18 +0000 (15:08 +0200)]
daemon/http: improve buffer handling
Fixes GET requests and handles some edge cases.
Tomas Krizek [Tue, 11 Aug 2020 12:16:55 +0000 (14:16 +0200)]
daemon/http: simplify log messages
Tomas Krizek [Tue, 11 Aug 2020 10:34:20 +0000 (12:34 +0200)]
daemon/http: additional checks for HEADERS processing
1. We musn't process path for POST method (check there are no DATA
frames).
2. A GET request may not interefere with an ongoing unfinished data from
other stream, since we only use a single buffer for the entire conn.
Tomas Krizek [Mon, 10 Aug 2020 14:41:54 +0000 (16:41 +0200)]
daemon/http: copy data before nghttp2_session_send()
Tomas Krizek [Fri, 7 Aug 2020 11:54:46 +0000 (13:54 +0200)]
daemon/http: support multiple subsequent streams in decoded tls data
Tomas Krizek [Fri, 7 Aug 2020 11:33:06 +0000 (13:33 +0200)]
daemon/http: store stream_id per request to support query pipelining
Tomas Krizek [Fri, 7 Aug 2020 08:16:18 +0000 (10:16 +0200)]
doh: adjust endpoint kinds
Make "doh2" the DNS-over-HTTPS C implementation and
remove plain HTTP until fully supported.
Jan Hak [Fri, 13 Mar 2020 14:02:50 +0000 (15:02 +0100)]
doh: C implementation of DoH - WiP
Working server-side GET/POST HTTPS method - Proof-of-Concept
Working server-side GET/POST HTTP/2 method - WiP
Tomas Krizek [Tue, 13 Oct 2020 10:53:19 +0000 (12:53 +0200)]
Merge branch 'packaging-sysusers' into 'master'
packaging: sysusers and cleanup
See merge request knot/knot-resolver!1080
Tomas Krizek [Mon, 12 Oct 2020 13:51:22 +0000 (15:51 +0200)]
distro/deb: don't use sysusers
Tomas Krizek [Mon, 12 Oct 2020 10:59:18 +0000 (12:59 +0200)]
distro/rpm: use minimalistic file permissions
Config directory and files within can be created with distro-defaults,
since we only need read permission for this dir.
Other dirs have permissions updated to conform to tmpfiles.d.
Tomas Krizek [Mon, 12 Oct 2020 12:45:28 +0000 (14:45 +0200)]
distro/rpm: don't use sysusers
Only Fedora 32+ and opensuse have sysusers support, but handling centos
would require keeping the current commands. For simplicity's sake, let's
not use sysusers yet for rpm.
https://fedoraproject.org/wiki/Changes/Adopting_sysusers.d_format
https://en.opensuse.org/openSUSE:Packaging_guidelines#Users_and_Groups
Tomas Krizek [Mon, 12 Oct 2020 12:10:20 +0000 (14:10 +0200)]
meson: fix sysusers/tmpfiles installation
Target name must be unique in meson, but the installed files share
the same name. To get around this, use a temporary target name and
rename it when installing the file to its proper location.
Tomas Krizek [Mon, 12 Oct 2020 10:58:42 +0000 (12:58 +0200)]
distro/arch: use sysusers instead of install script
Tomas Krizek [Mon, 12 Oct 2020 10:54:03 +0000 (12:54 +0200)]
systemd/tmpfiles: change owner back to knot-resolver
Since 5.1.3, we no longer drop capabilities as root, thus the
tmpfiles no longer need to be owned by root.
Tomas Krizek [Mon, 12 Oct 2020 10:53:00 +0000 (12:53 +0200)]
systemd: generate sysusers file
Tomas Krizek [Sat, 10 Oct 2020 16:17:31 +0000 (18:17 +0200)]
distro/arch: more cleanup to conform to most PKGBUILDs
Vladimír Čunát [Mon, 12 Oct 2020 06:05:40 +0000 (08:05 +0200)]
Merge !1077: lua kr_table_len: check type of parameter
Lukáš Ježek [Fri, 9 Oct 2020 07:43:29 +0000 (09:43 +0200)]
lua: kr_table_len checks type of parameter
Petr Špaček [Fri, 9 Oct 2020 12:01:54 +0000 (14:01 +0200)]
Merge branch 'cachelock-fix' into 'master'
cache lock fixes
See merge request knot/knot-resolver!1078
Petr Špaček [Fri, 9 Oct 2020 09:31:55 +0000 (11:31 +0200)]
lib/cache: rename lock file to krcachelock so it shows up in regular ls
Petr Špaček [Fri, 9 Oct 2020 09:30:56 +0000 (11:30 +0200)]
lib/cache: do not unlink cache lock file
This change serves two purposes:
- removes corner case where lock is deleted and created by another
instance
- prevents incredibly rare problem where filesystem inodes run out
Beware that lock file is still not created on start-up.
It gets created only when emergency cache clear is executed and stays there.
We might consider creating the file at start-up as well
but that's topic for another MR.
Petr Špaček [Fri, 9 Oct 2020 09:29:23 +0000 (11:29 +0200)]
lib/cache: fix cache lock based on fcntl()
Fixes bug introduced in
b65e8977566be831c0308390b70fc2151f40e4e7 .
open() was creating a file which could not be open again because of
insufficient permissions. This somehow worked because lockfile_release()
unlinks the file, but it broke terribly if lockfile_release() was not
called because of crash or something like that.
Fixes: merge request knot/knot-resolver!1042
Tomas Krizek [Thu, 8 Oct 2020 12:41:43 +0000 (14:41 +0200)]
Merge branch 'aur-cleanup' into 'master'
distro/arch: cleanup
See merge request knot/knot-resolver!1071
Tomas Krizek [Mon, 5 Oct 2020 14:33:09 +0000 (16:33 +0200)]
distro/arch: nitpicks
Tomas Krizek [Mon, 5 Oct 2020 14:18:24 +0000 (16:18 +0200)]
distro/arch: remove upgrade script
Arch is a fast moving rolling release and users expect to upgrade
their configs. The migration period over 6 months is certainly
sufficient - remove this hard to read convoluted code.
Tomas Krizek [Thu, 8 Oct 2020 12:06:54 +0000 (14:06 +0200)]
Merge branch 'doc-typo-fixes' into 'master'
doc: small fixes
See merge request knot/knot-resolver!1076
Vasek Sraier [Thu, 8 Oct 2020 11:24:47 +0000 (13:24 +0200)]
doc: typo in upgrade guide
Vasek Sraier [Thu, 8 Oct 2020 11:24:22 +0000 (13:24 +0200)]
policy: changed example domain in documentation
Tomas Krizek [Thu, 8 Oct 2020 10:39:05 +0000 (12:39 +0200)]
Merge branch 'doc-versions' into 'master'
doc: document what version number means
See merge request knot/knot-resolver!1075