]> git.ipfire.org Git - thirdparty/knot-resolver.git/log
thirdparty/knot-resolver.git
4 years agoMerge branch 'trust-anchors' into 'master' obs-knot-dns-deve-jq0xxt/deployments/1657 obs-knot-dns-deve-jq0xxt/deployments/1659 obs-knot-dns-deve-jq0xxt/deployments/1661 obs-knot-dns-deve-jq0xxt/deployments/1663 obs-knot-dns-deve-jq0xxt/deployments/1665 obs-knot-dns-deve-jq0xxt/deployments/1667 obs-knot-dns-deve-jq0xxt/deployments/1669 obs-knot-resolver-es11k1/deployments/1656 obs-knot-resolver-es11k1/deployments/1658 obs-knot-resolver-es11k1/deployments/1660 obs-knot-resolver-es11k1/deployments/1662 obs-knot-resolver-es11k1/deployments/1664 obs-knot-resolver-es11k1/deployments/1666 obs-knot-resolver-es11k1/deployments/1668
Tomas Krizek [Mon, 17 May 2021 09:26:37 +0000 (09:26 +0000)] 
Merge branch 'trust-anchors' into 'master'

trust anchor improvements

Closes #673

See merge request knot/knot-resolver!1177

4 years agolib/dnssec/ta: remove trivial kr_ta_covers_qry()
Vladimír Čunát [Sat, 15 May 2021 11:33:40 +0000 (13:33 +0200)] 
lib/dnssec/ta: remove trivial kr_ta_covers_qry()

4 years agolib/resolve: minor improvements around kr_ta_* calls
Vladimír Čunát [Thu, 6 May 2021 16:35:04 +0000 (18:35 +0200)] 
lib/resolve: minor improvements around kr_ta_* calls

This orphaned kr_ta_get_longest_name() so it got removed as well,
even though it's a potentially useful abstraction.

4 years agolib/dnssec/ta: remove unused kr_ta_covers() function
Vladimír Čunát [Thu, 6 May 2021 13:31:11 +0000 (15:31 +0200)] 
lib/dnssec/ta: remove unused kr_ta_covers() function

It was word-for-word identical with kr_ta_get_longest_name() anyway,
except for additional pointer->bool conversion.

4 years agolib/dnssec/ta kr_ta_covers_qry(): generalize and improve
Vladimír Čunát [Thu, 6 May 2021 16:19:46 +0000 (18:19 +0200)] 
lib/dnssec/ta kr_ta_covers_qry(): generalize and improve

The closer (N)TA will win now.  That wasn't the case
if we had a positive TA underneath a negative TA.
(Well, I can't recall ever seeing anything close to a use case.)

4 years agovalidator: improve NTA precision
Vladimír Čunát [Thu, 6 May 2021 15:45:51 +0000 (17:45 +0200)] 
validator: improve NTA precision

4 years agoMerge branch 'ci-tags' into 'master' obs-knot-dns-deve-jq0xxt/deployments/1633 obs-knot-dns-deve-jq0xxt/deployments/1635 obs-knot-dns-deve-jq0xxt/deployments/1637 obs-knot-dns-deve-jq0xxt/deployments/1639 obs-knot-dns-deve-jq0xxt/deployments/1641 obs-knot-dns-deve-jq0xxt/deployments/1643 obs-knot-dns-deve-jq0xxt/deployments/1645 obs-knot-dns-deve-jq0xxt/deployments/1647 obs-knot-dns-deve-jq0xxt/deployments/1649 obs-knot-dns-deve-jq0xxt/deployments/1651 obs-knot-dns-deve-jq0xxt/deployments/1653 obs-knot-dns-deve-jq0xxt/deployments/1655 obs-knot-resolver-es11k1/deployments/1632 obs-knot-resolver-es11k1/deployments/1634 obs-knot-resolver-es11k1/deployments/1636 obs-knot-resolver-es11k1/deployments/1638 obs-knot-resolver-es11k1/deployments/1640 obs-knot-resolver-es11k1/deployments/1642 obs-knot-resolver-es11k1/deployments/1644 obs-knot-resolver-es11k1/deployments/1646 obs-knot-resolver-es11k1/deployments/1648 obs-knot-resolver-es11k1/deployments/1650 obs-knot-resolver-es11k1/deployments/1652 obs-knot-resolver-es11k1/deployments/1654
Tomas Krizek [Wed, 5 May 2021 10:45:52 +0000 (10:45 +0000)] 
Merge branch 'ci-tags' into 'master'

ci: skip pipeline tests on tags

See merge request knot/knot-resolver!1176

4 years agoci: skip pipeline tests on tags
Tomas Krizek [Wed, 5 May 2021 09:59:49 +0000 (11:59 +0200)] 
ci: skip pipeline tests on tags

When releasing, checks are run before merging and tagging. Having these
checks run again only slows down the release process, especially if some
tests are flaky.

4 years agoMerge branch 'release-5-3-2' into 'master' obs-knot-resolver-8xyvhu/deployments/1631 obs-knot-resolver-kv62s6/deployments/1630 v5.3.2
Tomas Krizek [Wed, 5 May 2021 09:23:24 +0000 (09:23 +0000)] 
Merge branch 'release-5-3-2' into 'master'

release 5.3.2

See merge request knot/knot-resolver!1175

4 years agorelease 5.3.2
Tomas Krizek [Wed, 5 May 2021 08:31:50 +0000 (10:31 +0200)] 
release 5.3.2

4 years agoDockerfile: update Knot DNS
Tomas Krizek [Wed, 5 May 2021 09:05:40 +0000 (11:05 +0200)] 
Dockerfile: update Knot DNS

4 years agoMerge !1163: policy.STUB docs: recommend NO_EDNS and mention NO_0X20
Vladimír Čunát [Wed, 5 May 2021 07:32:08 +0000 (07:32 +0000)] 
Merge !1163: policy.STUB docs: recommend NO_EDNS and mention NO_0X20

4 years agopolicy.STUB docs: recommend NO_EDNS and mention NO_0X20 80983
Vladimír Čunát [Thu, 1 Apr 2021 13:05:31 +0000 (15:05 +0200)] 
policy.STUB docs: recommend NO_EDNS and mention NO_0X20

4 years agoMerge !1173: doc: mention DEBUG_* policies in single request debug section obs-knot-dns-deve-jq0xxt/deployments/1627 obs-knot-dns-deve-jq0xxt/deployments/1629 obs-knot-resolver-es11k1/deployments/1626 obs-knot-resolver-es11k1/deployments/1628
Vladimír Čunát [Mon, 3 May 2021 17:08:24 +0000 (17:08 +0000)] 
Merge !1173: doc: mention DEBUG_* policies in single request debug section

4 years agodoc: mention DEBUG_* policies in single request debug section
Tomas Krizek [Fri, 30 Apr 2021 10:39:13 +0000 (12:39 +0200)] 
doc: mention DEBUG_* policies in single request debug section

4 years agoMerge branch 'ci-distro-update' into 'master'
Tomas Krizek [Mon, 3 May 2021 11:29:36 +0000 (11:29 +0000)] 
Merge branch 'ci-distro-update' into 'master'

distro/tests: update fedora, ubuntu releases

See merge request knot/knot-resolver!1174

4 years agodistro/tests: update fedora, ubuntu releases obs-knot-resolver-bs4hbr/deployments/1625
Tomas Krizek [Mon, 3 May 2021 09:20:32 +0000 (11:20 +0200)] 
distro/tests: update fedora, ubuntu releases

fedora32 -> fedora 34
ubuntu2010 -> ubuntu2104
remove ubuntu1604

4 years agoMerge branch 'nsec3-iters-downgrade-2' into 'master'
Tomas Krizek [Mon, 3 May 2021 09:55:03 +0000 (09:55 +0000)] 
Merge branch 'nsec3-iters-downgrade-2' into 'master'

validator: avoid assertion in an edge-case

See merge request knot/knot-resolver!1169

4 years agovalidator: avoid assertion in an edge-case
Vladimír Čunát [Mon, 12 Apr 2021 13:23:02 +0000 (15:23 +0200)] 
validator: avoid assertion in an edge-case

Case: NSEC3 with too many iterations used for a positive wildcard proof.

To really fix the answers, this also needed fixing the `any_rank` part
which I somehow forgot in commit 7107faebc :-(

4 years agoMerge !1171: ci: utilize test reports obs-knot-dns-deve-jq0xxt/deployments/1618 obs-knot-dns-deve-jq0xxt/deployments/1620 obs-knot-dns-deve-jq0xxt/deployments/1622 obs-knot-resolver-es11k1/deployments/1617 obs-knot-resolver-es11k1/deployments/1619 obs-knot-resolver-es11k1/deployments/1621
Vladimír Čunát [Fri, 30 Apr 2021 14:37:30 +0000 (14:37 +0000)] 
Merge !1171: ci: utilize test reports

4 years agoci: try to improve meson's junit.xml
Vladimír Čunát [Thu, 15 Apr 2021 17:21:55 +0000 (19:21 +0200)] 
ci: try to improve meson's junit.xml

GitLab doesn't show the <system-*> tags, so let's replace them.
For now it's just hacky sed; I can't use xsltproc or similar.

4 years agoci: utilize test reports
Vladimír Čunát [Thu, 15 Apr 2021 14:44:39 +0000 (16:44 +0200)] 
ci: utilize test reports

https://docs.gitlab.com/ce/ci/unit_test_reports.html
https://mesonbuild.com/Unit-tests.html#testlogjunitxml

Implemented fully: build, build-asan; partially: pytests, deckard.

4 years agoMerge branch 'cache-stale-readers' into 'master'
Tomas Krizek [Fri, 30 Apr 2021 10:50:45 +0000 (10:50 +0000)] 
Merge branch 'cache-stale-readers' into 'master'

cache: clear any stale readers when opening cache

See merge request knot/knot-resolver!1172

4 years agocache: clear any stale readers when opening cache
Vladimír Čunát [Wed, 28 Apr 2021 10:53:26 +0000 (12:53 +0200)] 
cache: clear any stale readers when opening cache

4 years agoMerge branch 'dnstap-rtt' into 'master' obs-knot-dns-deve-jq0xxt/deployments/1597 obs-knot-dns-deve-jq0xxt/deployments/1599 obs-knot-dns-deve-jq0xxt/deployments/1601 obs-knot-dns-deve-jq0xxt/deployments/1603 obs-knot-dns-deve-jq0xxt/deployments/1605 obs-knot-dns-deve-jq0xxt/deployments/1607 obs-knot-dns-deve-jq0xxt/deployments/1609 obs-knot-dns-deve-jq0xxt/deployments/1611 obs-knot-dns-deve-jq0xxt/deployments/1614 obs-knot-dns-deve-jq0xxt/deployments/1616 obs-knot-resolver-es11k1/deployments/1596 obs-knot-resolver-es11k1/deployments/1598 obs-knot-resolver-es11k1/deployments/1600 obs-knot-resolver-es11k1/deployments/1602 obs-knot-resolver-es11k1/deployments/1604 obs-knot-resolver-es11k1/deployments/1606 obs-knot-resolver-es11k1/deployments/1608 obs-knot-resolver-es11k1/deployments/1610 obs-knot-resolver-es11k1/deployments/1613 obs-knot-resolver-es11k1/deployments/1615
Tomas Krizek [Tue, 20 Apr 2021 11:08:58 +0000 (11:08 +0000)] 
Merge branch 'dnstap-rtt' into 'master'

dnstap: add TCP RTT collection (experimental, optional)

See merge request knot/knot-resolver!1170

4 years agodnstap: add TCP RTT collection (experimental, optional)
Vladimír Čunát [Wed, 14 Apr 2021 18:00:28 +0000 (20:00 +0200)] 
dnstap: add TCP RTT collection (experimental, optional)

4 years agodaemon/worker: rework worker_request_*_source_session()
Vladimír Čunát [Mon, 19 Apr 2021 16:22:14 +0000 (18:22 +0200)] 
daemon/worker: rework worker_request_*_source_session()

I see no potential use for `set`; it's not a suitable abstraction.
And for `get` we want to use a pointer to the public type
instead of the private one.

Overall, worker.h has way too many stuff, but this branch is
not a good place to clean it up.

4 years agoMerge !1161: daemon/http: fix memleak if http_write_pkt() fails obs-knot-dns-deve-jq0xxt/deployments/1589 obs-knot-dns-deve-jq0xxt/deployments/1591 obs-knot-dns-deve-jq0xxt/deployments/1593 obs-knot-dns-deve-jq0xxt/deployments/1595 obs-knot-resolver-es11k1/deployments/1588 obs-knot-resolver-es11k1/deployments/1590 obs-knot-resolver-es11k1/deployments/1592 obs-knot-resolver-es11k1/deployments/1594
Vladimír Čunát [Fri, 16 Apr 2021 17:28:44 +0000 (17:28 +0000)] 
Merge !1161: daemon/http: fix memleak if http_write_pkt() fails

4 years agodaemon/http: fix memleak if http_write_pkt() fails
Tomas Krizek [Tue, 30 Mar 2021 17:24:08 +0000 (19:24 +0200)] 
daemon/http: fix memleak if http_write_pkt() fails

This can happen for example when we want to send an answer, but the
http stream (or the connection?) is already closed.

Direct leak of 48 byte(s) in 1 object(s) allocated from:
    #0 0x7f5ad2445459 in __interceptor_malloc /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x55c0db3fc442 in http_write_pkt ../daemon/http.c:610
    #2 0x55c0db3fc882 in http_write ../daemon/http.c:651
    #3 0x55c0db3e9bb1 in qr_task_send ../daemon/worker.c:700
    #4 0x55c0db3ee86c in qr_task_finalize ../daemon/worker.c:1321
    #5 0x55c0db3f0123 in qr_task_step ../daemon/worker.c:1633
    #6 0x55c0db3f0982 in worker_submit ../daemon/worker.c:1755
    #7 0x55c0db3d992a in session_wirebuf_process ../daemon/session.c:759
    #8 0x55c0db3c5f01 in udp_recv ../daemon/io.c:89
    #9 0x7f5ad22b0e0e  (/usr/lib/libuv.so.1+0x20e0e)

4 years agoMerge !1164: daemon/http: improve handling of stream errors
Vladimír Čunát [Fri, 16 Apr 2021 17:18:22 +0000 (17:18 +0000)] 
Merge !1164: daemon/http: improve handling of stream errors

4 years agodaemon/http: additional guards from memleaks
Tomas Krizek [Mon, 5 Apr 2021 12:47:43 +0000 (14:47 +0200)] 
daemon/http: additional guards from memleaks

4 years agodaemon/http: improve handling of stream errors
Tomas Krizek [Thu, 1 Apr 2021 15:04:10 +0000 (17:04 +0200)] 
daemon/http: improve handling of stream errors

The on_frame_recv() callback ins't guaranteed to be called by nghttp2.
This can happen e.g. in a case when nghttp2 issues a PROTOCOL_ERROR
RST_STREAM frame. Previously, it would leave the connection in a
stream-processing state, making it completely useless.

While this guarantees a cleanup will be called eventually, some streams
may still get ignored due to the order of various callbacks and data
processing procedures. Still, it's better than the previous
implementation.

4 years agoMerge branch 'unaligned-access' into 'master' obs-knot-dns-deve-jq0xxt/deployments/1585 obs-knot-dns-deve-jq0xxt/deployments/1587 obs-knot-resolver-es11k1/deployments/1584 obs-knot-resolver-es11k1/deployments/1586
Tomas Krizek [Wed, 14 Apr 2021 15:14:33 +0000 (15:14 +0000)] 
Merge branch 'unaligned-access' into 'master'

various undefined-behavior fixes

Closes #426

See merge request knot/knot-resolver!1167

4 years agoNEWS: add SIGBUS line
Vladimír Čunát [Wed, 14 Apr 2021 14:11:10 +0000 (16:11 +0200)] 
NEWS: add SIGBUS line

It's spread over multiple commits.  The other undefined-behavior fixes
probably don't cause any issue in practice, so they aren't mentioned.

4 years agolib/utils kr_rand_bytes(): minor issue on 32-bit systems
Vladimír Čunát [Fri, 9 Apr 2021 08:56:13 +0000 (10:56 +0200)] 
lib/utils kr_rand_bytes(): minor issue on 32-bit systems

Really support 64-bit return value even there.
Currently we only use such large value in an unimportant case
(lua_Number seed).

4 years agocontrib/murmurhash3: fix occasional undefined behavior
Vladimír Čunát [Tue, 6 Apr 2021 16:01:58 +0000 (18:01 +0200)] 
contrib/murmurhash3: fix occasional undefined behavior

murmurhash3.c:43:40: runtime error: addition of unsigned offset
                     to 0x7ffce41c2014 overflowed to 0x7ffce41c2000
The `i` was used in a super-ugly way; I suspect the only reason was
to optimize that end-loop condition was zero comparison *vomit*

4 years agoci: more sanitization (for recent changes)
Vladimír Čunát [Tue, 6 Apr 2021 15:20:15 +0000 (17:20 +0200)] 
ci: more sanitization (for recent changes)

The misaligned accesses were just throwing warnings for me (with gcc),
so I added the flag to stregthen what we get in CI.

4 years agotreewide: fix unaligned access
Vladimír Čunát [Tue, 6 Apr 2021 15:28:52 +0000 (17:28 +0200)] 
treewide: fix unaligned access

Some less common HW (not x86, usually ARM) doesn't tolerate unaligned
access to memory and it's breakage of C as well.

It's easiest to check by meson's -Db_sanitize=undefined (on any HW).
I pushed millions of real-life QNAME+QTYPE queries over UDP in default
mode and the sanitizer seems clear now.

4 years agotreewide: remove duplicate contrib/wire.h
Vladimír Čunát [Tue, 6 Apr 2021 15:26:12 +0000 (17:26 +0200)] 
treewide: remove duplicate contrib/wire.h

libknot >= 2.9 provides it and their version is less buggy :-)
In particular, it works with unaligned pointers.

4 years agolib/selection*: trivial undefined-behavior fix
Vladimír Čunát [Tue, 6 Apr 2021 14:47:19 +0000 (16:47 +0200)] 
lib/selection*: trivial undefined-behavior fix

4 years agoMerge branch 'cache-workarounds' into 'master'
Tomas Krizek [Wed, 14 Apr 2021 12:36:33 +0000 (12:36 +0000)] 
Merge branch 'cache-workarounds' into 'master'

cache: improve handling write errors from LMDB

See merge request knot/knot-resolver!1159

4 years agocache: improve handling write errors
Vladimír Čunát [Mon, 29 Mar 2021 17:25:27 +0000 (19:25 +0200)] 
cache: improve handling write errors

In particular, ignore ENOSPC from LMDB for a short time unless the
space-usage estimate is over 90%.  See code comments for details.

4 years agoclear kr_query::flags.CACHED
Vladimír Čunát [Fri, 26 Mar 2021 10:58:42 +0000 (11:58 +0100)] 
clear kr_query::flags.CACHED

I suspect there's an edge case where cache thinks it provided enough
data but iterator (or who) disagrees and resolution continues.
We observed (flags.CACHED == true) even when processing a reply from
internet, and that could be confusing and even trigger a segfault.
Clearing the flag sounds OK semantically; it never meant that no cached
data have been used within the kr_query (e.g. zone cut, DS/DNSKEY, ...)

4 years agoMerge branch 'nsec-zeros' into 'master'
Tomas Krizek [Wed, 14 Apr 2021 12:17:25 +0000 (12:17 +0000)] 
Merge branch 'nsec-zeros' into 'master'

fix SERVFAIL for some rare dynamic proofs

See merge request knot/knot-resolver!1166

4 years agocache: fix caching NSEC ranges with \000 in *ending*
Vladimír Čunát [Tue, 6 Apr 2021 10:11:41 +0000 (12:11 +0200)] 
cache: fix caching NSEC ranges with \000 in *ending*

Our aggressive NSEC cache doesn't handle these well and the case
with only the end-label being like this was forgotten.
See the parent commit for a test case.

Also, larger NSEC* sets are now considered weird.

4 years agovalidate: fix on some NSEC ranges with zero byte(s)
Vladimír Čunát [Fri, 2 Apr 2021 08:59:32 +0000 (10:59 +0200)] 
validate: fix on some NSEC ranges with zero byte(s)

Example case: denying existence of ok.rdns.dev by
oj\255.rdns.dev. NSEC ok\000.rdns.dev.
This NSEC end was incorrectly ordered with the QNAME.
https://gitter.im/CZ-NIC/knot-resolver?at=606055b82beb1e1da3d73892

The code is Libor's :-)

4 years agoMerge branch 'dnstap-reinit' into 'master' obs-knot-dns-deve-jq0xxt/deployments/1572 obs-knot-dns-deve-jq0xxt/deployments/1574 obs-knot-dns-deve-jq0xxt/deployments/1576 obs-knot-dns-deve-jq0xxt/deployments/1578 obs-knot-dns-deve-jq0xxt/deployments/1583 obs-knot-resolver-es11k1/deployments/1571 obs-knot-resolver-es11k1/deployments/1573 obs-knot-resolver-es11k1/deployments/1575 obs-knot-resolver-es11k1/deployments/1577 obs-knot-resolver-es11k1/deployments/1580 obs-knot-resolver-es11k1/deployments/1582
Tomas Krizek [Thu, 8 Apr 2021 14:02:51 +0000 (14:02 +0000)] 
Merge branch 'dnstap-reinit' into 'master'

dnstap: fix repeated configuration

See merge request knot/knot-resolver!1168

4 years agodnstap: fix repeated configuration
Vladimír Čunát [Thu, 8 Apr 2021 13:30:34 +0000 (15:30 +0200)] 
dnstap: fix repeated configuration

In practice it can easily happen, as loading module and really
configuring it is often done separately.  Then we'd see two fstrm
threads, etc.

4 years agoMerge branch 'release-5-3-1' into 'master' obs-knot-dns-deve-jq0xxt/deployments/1555 obs-knot-dns-deve-jq0xxt/deployments/1558 obs-knot-dns-deve-jq0xxt/deployments/1560 obs-knot-dns-deve-jq0xxt/deployments/1562 obs-knot-dns-deve-jq0xxt/deployments/1564 obs-knot-dns-deve-jq0xxt/deployments/1566 obs-knot-dns-deve-jq0xxt/deployments/1568 obs-knot-dns-deve-jq0xxt/deployments/1570 obs-knot-resolver-es11k1/deployments/1554 obs-knot-resolver-es11k1/deployments/1557 obs-knot-resolver-es11k1/deployments/1559 obs-knot-resolver-es11k1/deployments/1561 obs-knot-resolver-es11k1/deployments/1563 obs-knot-resolver-es11k1/deployments/1565 obs-knot-resolver-es11k1/deployments/1567 obs-knot-resolver-es11k1/deployments/1569 obs-knot-resolver-kv62s6/deployments/1552 78938 79456 v5.3.1
Tomas Krizek [Wed, 31 Mar 2021 15:13:36 +0000 (15:13 +0000)] 
Merge branch 'release-5-3-1' into 'master'

release 5.3.1

See merge request knot/knot-resolver!1162

4 years agorelease 5.3.1
Tomas Krizek [Wed, 31 Mar 2021 14:16:51 +0000 (16:16 +0200)] 
release 5.3.1

4 years agodoc: update required meson version
Tomas Krizek [Wed, 24 Mar 2021 12:50:25 +0000 (13:50 +0100)] 
doc: update required meson version

This change already took place in !1082, this just updates the files to
correctly reflect the current situation.

4 years agoMerge branch 'nsec3-iters-downgrade' into 'master' obs-knot-dns-deve-jq0xxt/deployments/1551 obs-knot-resolver-es11k1/deployments/1550
Tomas Krizek [Tue, 30 Mar 2021 16:11:28 +0000 (16:11 +0000)] 
Merge branch 'nsec3-iters-downgrade' into 'master'

validator: downgrade NSEC3 records with too many iterations

See merge request knot/knot-resolver!1160

4 years agocache: avoid storing NSEC3 RRsets with high iterations
Vladimír Čunát [Mon, 29 Mar 2021 10:40:18 +0000 (12:40 +0200)] 
cache: avoid storing NSEC3 RRsets with high iterations

(in aggressive cache part)  Also bump cache version, so that we clear
those that have been left by previous kresd releases.

4 years agotreewide: add defensive checks for the NSEC3 limit
Vladimír Čunát [Thu, 25 Mar 2021 18:04:25 +0000 (19:04 +0100)] 
treewide: add defensive checks for the NSEC3 limit

4 years agovalidate: downgrade zone on high NSEC3 iterations
Vladimír Čunát [Thu, 25 Mar 2021 17:57:41 +0000 (18:57 +0100)] 
validate: downgrade zone on high NSEC3 iterations

4 years agovalidate: change order of tasks
Vladimír Čunát [Thu, 25 Mar 2021 09:56:14 +0000 (10:56 +0100)] 
validate: change order of tasks

It seems better to check RRSIGs before checking negative proofs,
in terms of reasoning, being less error-prone, etc.

4 years agoMerge !1157: revert DoH errors (for now)
Vladimír Čunát [Tue, 30 Mar 2021 13:48:08 +0000 (13:48 +0000)] 
Merge !1157: revert DoH errors (for now)

4 years agoRevert "Merge branch '618-doh2-respond-to-invalid-requests-with-proper-status-code...
Tomas Krizek [Tue, 30 Mar 2021 11:30:51 +0000 (13:30 +0200)] 
Revert "Merge branch '618-doh2-respond-to-invalid-requests-with-proper-status-code' into 'master'"

This reverts commit 4079a1a962cc528b30d8b0b330c329bf83d85fe8, reversing
changes made to a900fdbf47c181487edf8c6c07a079708c2647e3.

4 years agoRevert "Merge branch 'odvr-doh-assert' into 'master'"
Tomas Krizek [Tue, 30 Mar 2021 11:29:21 +0000 (13:29 +0200)] 
Revert "Merge branch 'odvr-doh-assert' into 'master'"

This reverts commit 4dab349e269364b8d27415a548e90446aaac11fb, reversing
changes made to 4bcf335de92bf51b22fe3d517f532a219c4b76cd.

4 years agoRevert "Merge branch 'doh-remove-asserts' into 'master'"
Tomas Krizek [Tue, 30 Mar 2021 11:28:54 +0000 (13:28 +0200)] 
Revert "Merge branch 'doh-remove-asserts' into 'master'"

This reverts commit 99e6e75427031918adeabd8da6b151a5170d3f57, reversing
changes made to 65bed85f897dd004fbe5234d40aaa60d9cabee1e.

4 years agoMerge !1155: policy.STUB: try to avoid TCP obs-knot-dns-deve-jq0xxt/deployments/1547 obs-knot-dns-deve-jq0xxt/deployments/1549 obs-knot-resolver-es11k1/deployments/1546 obs-knot-resolver-es11k1/deployments/1548
Vladimír Čunát [Sat, 27 Mar 2021 08:45:00 +0000 (08:45 +0000)] 
Merge !1155: policy.STUB: try to avoid TCP

4 years agopolicy/README: fix "DNS-over-UDP" mentions
Vladimír Čunát [Tue, 23 Mar 2021 10:29:42 +0000 (11:29 +0100)] 
policy/README: fix "DNS-over-UDP" mentions

Regressed in acd019db2.  The intention was clearly to say that
encryption (i.e. DNS-over-TLS) is not supported.

4 years agolib/selection*: more precise flags.TCP
Vladimír Čunát [Tue, 23 Mar 2021 10:16:01 +0000 (11:16 +0100)] 
lib/selection*: more precise flags.TCP

I'm overall unsure here, but this does seem as improvement.

4 years agolib/selection*: try to avoid TCP in STUB mode
Vladimír Čunát [Tue, 23 Mar 2021 10:11:44 +0000 (11:11 +0100)] 
lib/selection*: try to avoid TCP in STUB mode

The target of STUB might commonly not have good support
for "advanced" features like TCP.

4 years agoMerge branch 'tls_forward-dead_IP' into 'master' obs-knot-dns-deve-jq0xxt/deployments/1541 obs-knot-dns-deve-jq0xxt/deployments/1543 obs-knot-dns-deve-jq0xxt/deployments/1545 obs-knot-resolver-es11k1/deployments/1540 obs-knot-resolver-es11k1/deployments/1542 obs-knot-resolver-es11k1/deployments/1544
Tomas Krizek [Wed, 24 Mar 2021 12:43:01 +0000 (12:43 +0000)] 
Merge branch 'tls_forward-dead_IP' into 'master'

policy.TLS_FORWARD: better avoid dead addresses

See merge request knot/knot-resolver!1156

4 years agopolicy.TLS_FORWARD: better avoid dead addresses
Vladimír Čunát [Wed, 24 Mar 2021 09:58:25 +0000 (10:58 +0100)] 
policy.TLS_FORWARD: better avoid dead addresses

4 years agoMerge branch 'modules-return-error' into 'master' obs-knot-dns-deve-jq0xxt/deployments/1531 obs-knot-dns-deve-jq0xxt/deployments/1533 obs-knot-dns-deve-jq0xxt/deployments/1535 obs-knot-dns-deve-jq0xxt/deployments/1537 obs-knot-dns-deve-jq0xxt/deployments/1539 obs-knot-resolver-es11k1/deployments/1530 obs-knot-resolver-es11k1/deployments/1532 obs-knot-resolver-es11k1/deployments/1534 obs-knot-resolver-es11k1/deployments/1536 obs-knot-resolver-es11k1/deployments/1538
Tomas Krizek [Fri, 19 Mar 2021 16:09:36 +0000 (16:09 +0000)] 
Merge branch 'modules-return-error' into 'master'

lib/resolve *_LAYERS: detect bad return code from module

See merge request knot/knot-resolver!1151

4 years agolib/resolve *_LAYERS: detect bad return code from module
Vladimír Čunát [Sat, 13 Mar 2021 09:02:20 +0000 (10:02 +0100)] 
lib/resolve *_LAYERS: detect bad return code from module

Practical example was now in dnstap (060349c9).  This way we detect
such mistakes more often and closer to their point of origin.

4 years agoMerge branch 'cap-explore-timeout' into 'master'
Tomas Krizek [Fri, 19 Mar 2021 12:51:38 +0000 (12:51 +0000)] 
Merge branch 'cap-explore-timeout' into 'master'

selection: cap the timeout value when probing a random server

See merge request knot/knot-resolver!1154

4 years agoselection: cap the timeout value when probing a random server
Štěpán Balážik [Wed, 17 Mar 2021 14:53:33 +0000 (15:53 +0100)] 
selection: cap the timeout value when probing a random server

This patch caps the timeout set on UDP queries to servers chosen in the
EXPLORE phase of the selection algorithm to two times the timeout that
would be set if we were EXPLOITing.

This measns that we no longer spend an unreasonable amount of time
probing servers that are probably dead anyway while ensuring that we do
probe them from time to time to check if they didn't come to life.

If the timeout value is capped and the server fails to respond, we don't
punish the server for it i.e. we don't cache the timeout.

4 years agoMerge !1150: selection_iter.c: fix the last stand switch to UDP obs-knot-dns-deve-jq0xxt/deployments/1527 obs-knot-dns-deve-jq0xxt/deployments/1528 obs-knot-resolver-es11k1/deployments/1526 obs-knot-resolver-es11k1/deployments/1529
Vladimír Čunát [Wed, 17 Mar 2021 17:54:24 +0000 (17:54 +0000)] 
Merge !1150: selection_iter.c: fix the last stand switch to UDP

4 years agolib/selection_iter.c: fix the last stand switch to UDP
Štěpán Balážik [Fri, 12 Mar 2021 12:36:42 +0000 (13:36 +0100)] 
lib/selection_iter.c: fix the last stand switch to UDP

Previously, qry->flags.TCP flag was incorectly set, which led
to incorrect logging and maybe other troubles down the line.

4 years agoMerge branch 'gc-rtt' into 'master' obs-knot-dns-deve-jq0xxt/deployments/1525 obs-knot-resolver-8xyvhu/deployments/1523 obs-knot-resolver-es11k1/deployments/1524
Tomas Krizek [Tue, 16 Mar 2021 11:23:56 +0000 (11:23 +0000)] 
Merge branch 'gc-rtt' into 'master'

utils/cache_gc: fix crashes/assertions on RTT entries

See merge request knot/knot-resolver!1153

4 years agoci: run simple GC sanity check
Tomas Krizek [Tue, 16 Mar 2021 10:54:26 +0000 (11:54 +0100)] 
ci: run simple GC sanity check

4 years agoutils/cache_gc: fix crashes/assertions on RTT entries
Vladimír Čunát [Tue, 16 Mar 2021 09:39:50 +0000 (10:39 +0100)] 
utils/cache_gc: fix crashes/assertions on RTT entries

I missed some parts when finishing this.  I should've tested it better.
GC would hit assertions or NULL dereferences when removing entries,
and eventually that would lead to cache overflowing (and getting
cleared).

4 years agoMerge branch 'doh-remove-asserts' into 'master' obs-knot-dns-deve-jq0xxt/deployments/1521 obs-knot-resolver-8xyvhu/deployments/1520 obs-knot-resolver-es11k1/deployments/1522
Tomas Krizek [Mon, 15 Mar 2021 13:03:10 +0000 (13:03 +0000)] 
Merge branch 'doh-remove-asserts' into 'master'

daemon/http: replace assertions

See merge request knot/knot-resolver!1152

4 years agodaemon/http: replace assertions
Tomas Krizek [Mon, 15 Mar 2021 12:42:21 +0000 (13:42 +0100)] 
daemon/http: replace assertions

4 years agoMerge branch 'ci-obs-repos' into 'master' obs-knot-resolver-8xyvhu/deployments/1519
Tomas Krizek [Mon, 15 Mar 2021 10:17:36 +0000 (10:17 +0000)] 
Merge branch 'ci-obs-repos' into 'master'

ci: update ODVR distros

See merge request knot/knot-resolver!1148

4 years agoci: update ODVR distros
Tomas Krizek [Thu, 11 Mar 2021 16:18:48 +0000 (17:18 +0100)] 
ci: update ODVR distros

4 years agoMerge branch 'odvr-doh-assert' into 'master'
Tomas Krizek [Mon, 15 Mar 2021 10:16:02 +0000 (10:16 +0000)] 
Merge branch 'odvr-doh-assert' into 'master'

doh2: refuse stream on failure

See merge request knot/knot-resolver!1149

4 years agodaemon/http: fix assertion fail when data frame is recieved
Lukáš Ježek [Fri, 12 Mar 2021 12:36:37 +0000 (13:36 +0100)] 
daemon/http: fix assertion fail when data frame is recieved

4 years agodaemon/http: refuse stream on failure
Lukáš Ježek [Fri, 12 Mar 2021 11:12:22 +0000 (12:12 +0100)] 
daemon/http: refuse stream on failure

4 years agoMerge branch 'dnstap-return-errors' into 'master' obs-knot-dns-deve-jq0xxt/deployments/1511 obs-knot-dns-deve-jq0xxt/deployments/1513 obs-knot-dns-deve-jq0xxt/deployments/1515 obs-knot-dns-deve-jq0xxt/deployments/1518 obs-knot-resolver-8xyvhu/deployments/1510 obs-knot-resolver-es11k1/deployments/1512 obs-knot-resolver-es11k1/deployments/1514 obs-knot-resolver-es11k1/deployments/1516 obs-knot-resolver-es11k1/deployments/1517
Tomas Krizek [Thu, 11 Mar 2021 15:57:29 +0000 (15:57 +0000)] 
Merge branch 'dnstap-return-errors' into 'master'

dnstap: don't break request resolution on dnstap errors

See merge request knot/knot-resolver!1147

4 years agodnstap: don't break request resolution on dnstap errors
Vladimír Čunát [Thu, 11 Mar 2021 14:23:28 +0000 (15:23 +0100)] 
dnstap: don't break request resolution on dnstap errors

This isn't a regression of 5.3.0 changes.
Layer functions are supposed to return new values for ctx->state,
but here we were sometimes returning kr_error(EFOO) which altered
processing of the request.

Our case: answers directly from policy module would not end up
finishing the request and we'd hit an assert at the end of processing.

4 years agoMerge branch '618-doh2-respond-to-invalid-requests-with-proper-status-code' into... obs-knot-dns-deve-jq0xxt/deployments/1506 obs-knot-dns-deve-jq0xxt/deployments/1509 obs-knot-resolver-es11k1/deployments/1507 obs-knot-resolver-es11k1/deployments/1508
Tomas Krizek [Tue, 9 Mar 2021 10:42:16 +0000 (10:42 +0000)] 
Merge branch '618-doh2-respond-to-invalid-requests-with-proper-status-code' into 'master'

doh2: send HTTP error status code

Closes #618

See merge request knot/knot-resolver!1102

4 years agodaemon/http: free allocated memory after sending error msg
Tomas Krizek [Mon, 8 Mar 2021 14:30:49 +0000 (15:30 +0100)] 
daemon/http: free allocated memory after sending error msg

4 years agodaemon/http: optimize code by using trie instead of array macros
Tomas Krizek [Mon, 8 Mar 2021 11:19:29 +0000 (12:19 +0100)] 
daemon/http: optimize code by using trie instead of array macros

4 years agodoh2: added control stream to each test
Lukáš Ježek [Tue, 9 Feb 2021 10:58:23 +0000 (11:58 +0100)] 
doh2: added control stream to each test

4 years agodoh2: fix sending errors
Lukáš Ježek [Tue, 19 Jan 2021 14:37:13 +0000 (15:37 +0100)] 
doh2: fix sending errors

4 years agodoh2: send HTTP error status code
Lukáš Ježek [Fri, 27 Nov 2020 08:43:13 +0000 (09:43 +0100)] 
doh2: send HTTP error status code

4 years agoMerge branch 'doc-predict' into 'master' obs-knot-dns-deve-jq0xxt/deployments/1492 obs-knot-dns-deve-jq0xxt/deployments/1494 obs-knot-dns-deve-jq0xxt/deployments/1496 obs-knot-dns-deve-jq0xxt/deployments/1499 obs-knot-dns-deve-jq0xxt/deployments/1500 obs-knot-dns-deve-jq0xxt/deployments/1502 obs-knot-dns-deve-jq0xxt/deployments/1505 obs-knot-resolver-es11k1/deployments/1493 obs-knot-resolver-es11k1/deployments/1495 obs-knot-resolver-es11k1/deployments/1497 obs-knot-resolver-es11k1/deployments/1498 obs-knot-resolver-es11k1/deployments/1501 obs-knot-resolver-es11k1/deployments/1503 obs-knot-resolver-es11k1/deployments/1504
Tomas Krizek [Tue, 2 Mar 2021 16:39:07 +0000 (17:39 +0100)] 
Merge branch 'doc-predict' into 'master'

predict docs: better explain how it works

See merge request knot/knot-resolver!1145

4 years agopredict docs: better explain how it works
Vladimír Čunát [Tue, 2 Mar 2021 13:39:26 +0000 (14:39 +0100)] 
predict docs: better explain how it works

4 years agoMerge branch 'release-5.3.0' into 'master' obs-knot-dns-deve-jq0xxt/deployments/1482 obs-knot-dns-deve-jq0xxt/deployments/1485 obs-knot-dns-deve-jq0xxt/deployments/1486 obs-knot-dns-deve-jq0xxt/deployments/1489 obs-knot-dns-deve-jq0xxt/deployments/1490 obs-knot-resolver-8xyvhu/deployments/1481 obs-knot-resolver-es11k1/deployments/1483 obs-knot-resolver-es11k1/deployments/1484 obs-knot-resolver-es11k1/deployments/1487 obs-knot-resolver-es11k1/deployments/1488 obs-knot-resolver-es11k1/deployments/1491 obs-knot-resolver-kv62s6/deployments/1480 v5.3.0
Tomas Krizek [Thu, 25 Feb 2021 13:04:49 +0000 (14:04 +0100)] 
Merge branch 'release-5.3.0' into 'master'

release 5.3.0

See merge request knot/knot-resolver!1138

4 years agorelease 5.3.0
Tomas Krizek [Fri, 12 Feb 2021 10:18:01 +0000 (11:18 +0100)] 
release 5.3.0

4 years agoMerge branch 'selection-no6' into 'master'
Tomas Krizek [Thu, 25 Feb 2021 12:43:18 +0000 (13:43 +0100)] 
Merge branch 'selection-no6' into 'master'

lib/selection: add simple detection of IPv6 being broken

See merge request knot/knot-resolver!1143

4 years agolib/selection: add simple detection of IPv6 being broken
Vladimír Čunát [Wed, 24 Feb 2021 10:33:51 +0000 (11:33 +0100)] 
lib/selection: add simple detection of IPv6 being broken

Details are described in code comments.

4 years agoMerge branch 'selection-tweaks' into 'master' obs-knot-dns-deve-jq0xxt/deployments/1476 obs-knot-dns-deve-jq0xxt/deployments/1477 obs-knot-dns-deve-jq0xxt/deployments/1479
Tomas Krizek [Mon, 22 Feb 2021 10:34:14 +0000 (11:34 +0100)] 
Merge branch 'selection-tweaks' into 'master'

lib/selection: halve the default timeout (for iteration)

See merge request knot/knot-resolver!1141

4 years agolib/selection: halve the default timeout (for iteration)
Vladimír Čunát [Fri, 19 Feb 2021 09:40:22 +0000 (10:40 +0100)] 
lib/selection: halve the default timeout (for iteration)

4 years agoMerge branch 'switch_to_udp' into 'master' obs-knot-dns-deve-jq0xxt/deployments/1468 obs-knot-dns-deve-jq0xxt/deployments/1471 obs-knot-dns-deve-jq0xxt/deployments/1472 obs-knot-resolver-bs4hbr/deployments/1469 obs-knot-resolver-bs4hbr/deployments/1470 obs-knot-resolver-bs4hbr/deployments/1473
Tomas Krizek [Fri, 19 Feb 2021 10:15:12 +0000 (11:15 +0100)] 
Merge branch 'switch_to_udp' into 'master'

lib/selection{,_iter}.c: allow switching back to UDP

See merge request knot/knot-resolver!1140

4 years agolib/selection{,_iter}.c: allow switching back to UDP
Štěpán Balážik [Thu, 18 Feb 2021 11:10:26 +0000 (12:10 +0100)] 
lib/selection{,_iter}.c: allow switching back to UDP

Switching to TCP instead of querying very slow servers over UDP has had
unwanted side effect – we would sometimes get stuck with a server
permanently switched to TCP. And if the server happens to not reply over
TCP we were in trouble.

Therefore after we TCP connect fails or timeouts we provide one last
chance for the server over UDP. This will not prevent the next request
to try TCP again on this server again, but we don't care because
DNS MUST ******* work over TCP.