]> git.ipfire.org Git - thirdparty/bind9.git/log
thirdparty/bind9.git
3 months agoCheck notify with bad notify source address and tsig
Mark Andrews [Wed, 1 Oct 2025 04:49:33 +0000 (14:49 +1000)] 
Check notify with bad notify source address and tsig

named was asserting when the notify source address was not available
and TSIG was being used.  Check this scenario by adding a nameserver
to the zone which is configured to uses a non-existent source address
and a blackholed destination address and a TSIG using a server clause
for that destination address.

(cherry picked from commit f99d7f421767bf709859f72368e5c0ac6bce2e6a)

3 months agoDon't retry notify over TCP if it could not successed
Ondřej Surý [Thu, 19 Feb 2026 12:44:28 +0000 (13:44 +0100)] 
Don't retry notify over TCP if it could not successed

Prevent retrying the notify over TCP in case the source address is not
available or the source vs the destination address family mismatch or
when the destination address has been blackholed.  Properly log the
hard notify failures.

(cherry picked from commit 5a5bc6de223afc867f22d19bd9666eaf39e2b877)

3 months agoFix assertion failure when sending notify fails over UDP
Ondřej Surý [Thu, 19 Feb 2026 12:44:23 +0000 (13:44 +0100)] 
Fix assertion failure when sending notify fails over UDP

When dns_request_create() fails in notify_send_toaddr() the TSIG key was
not cleared when retrying over TCP causing assertion failure.  Set the
TSIG key to NULL in the dns_message to prevent the assertion failure.

(cherry picked from commit ee3391a1460cd80b910136a65f44b6400b5e38fe)

3 months ago[9.20] fix: ci: Fix the `update-stable-tag` job
Michał Kępień [Fri, 20 Feb 2026 08:55:02 +0000 (09:55 +0100)] 
[9.20] fix: ci: Fix the `update-stable-tag` job

Fix the `update-stable-tag` job, necessary for updating Read the Docs.

Backport of MR !11559

Merge branch 'backport-andoni/fix-update-stable-branch-for-rtd-job-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11568

3 months agoFix CI stable branch update job bug
Andoni Duarte Pintado [Wed, 18 Feb 2026 11:35:45 +0000 (12:35 +0100)] 
Fix CI stable branch update job bug

The update script clones a fresh copy each time, if more than one
invocation is needed intermediate copies need to be removed.

(cherry picked from commit 81b71d5aa6e3dfde3696eb360727bbdce2c947dc)

3 months ago[9.20] chg: ci: cross-version-config-tests should hard fail again
Petr Špaček [Thu, 19 Feb 2026 14:07:18 +0000 (14:07 +0000)] 
[9.20] chg: ci: cross-version-config-tests should hard fail again

Backport of MR !11560

Merge branch 'backport-reenable-cross-version-tests-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11561

3 months agoCross-version-config-tests should hard fail again
Petr Špaček [Wed, 18 Feb 2026 13:29:11 +0000 (14:29 +0100)] 
Cross-version-config-tests should hard fail again

New tag was released so we can now re-enable check disabled in
093bef9211b252653425f4477aa513d85e260cef.

(cherry picked from commit ae657429f6c7d1b85f383c2d1d87c7c14046b388)

3 months ago[9.20] fix: dev: Return FORMERR for ECS family 0
Mark Andrews [Thu, 19 Feb 2026 12:23:53 +0000 (23:23 +1100)] 
[9.20] fix: dev: Return FORMERR for ECS family 0

RFC 7871 only defines family 1 (IPv4) and 2 (IPv6). Additionally
it requires FORMERR to be returned for all unknown families.

Backport of MR !11563

Merge branch 'backport-marka-formerr-family-0-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11565

3 months agoReturn FORMERR for ECS family 0
Mark Andrews [Wed, 18 Feb 2026 23:03:36 +0000 (10:03 +1100)] 
Return FORMERR for ECS family 0

RFC 7871 only defines family 1 (IPv4) and 2 (IPv6). Additionally
it requires FORMERR to be returned for all unknown families.

(cherry picked from commit 757e503536a0fc036c87da39a4795e917a4380e6)

3 months ago[9.20] fix: doc: Minor documentation fixes for the 'rndc dnssec' command
Matthijs Mekking [Wed, 18 Feb 2026 14:20:58 +0000 (14:20 +0000)] 
[9.20] fix: doc: Minor documentation fixes for the 'rndc dnssec' command

List 'rndc dnssec' arguments in alphabetic order.
The `-step` argument was erroneously omitted from the usage output.

Closes #5731

Backport of MR !11529

Merge branch 'backport-5731-rndc-documentation-corrections-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11554

3 months agoList 'rndc dnssec' arguments in alphabetic order
Matthijs Mekking [Fri, 6 Feb 2026 11:37:09 +0000 (12:37 +0100)] 
List 'rndc dnssec' arguments in alphabetic order

Same as rndc usage orderning,

(cherry picked from commit 4a229219363ec194861cad26c67be87527760d8e)

3 months agoAdd rndc dnssec -step command to usage
Matthijs Mekking [Fri, 6 Feb 2026 11:29:22 +0000 (12:29 +0100)] 
Add rndc dnssec -step command to usage

The `-step` argument was erroneously omitted from the usage output.

(cherry picked from commit 0dd61d8773cfe5b5ec119d8dd453348c7dcf8f7b)

3 months agoMerge tag 'v9.20.19' into bind-9.20
Petr Špaček [Wed, 18 Feb 2026 10:33:06 +0000 (10:33 +0000)] 
Merge tag 'v9.20.19' into bind-9.20

3 months ago[9.20] fix: usr: DNSTAP wasn't logging forwarded queries correctly
Mark Andrews [Tue, 17 Feb 2026 04:09:24 +0000 (15:09 +1100)] 
[9.20] fix: usr: DNSTAP wasn't logging forwarded queries correctly

Closes #5724

Backport of MR !11509

Merge branch 'backport-5724-dnstap-forwarder-queries-logging-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11555

3 months agoUse shell function 'check_count' to check counts
Mark Andrews [Mon, 16 Feb 2026 00:18:01 +0000 (11:18 +1100)] 
Use shell function 'check_count' to check counts

(cherry picked from commit ea32141e489513c276fb357a73af1af5988c8409)

3 months agoDocument UPDATE QUERY and UPDATE RESPONSE
Mark Andrews [Thu, 5 Feb 2026 00:37:34 +0000 (11:37 +1100)] 
Document UPDATE QUERY and UPDATE RESPONSE

(cherry picked from commit 24f85bc3f39a42b57b5d69288c248f529abd3e09)

3 months agoTest forward query/response counts
Mark Andrews [Fri, 30 Jan 2026 02:50:11 +0000 (13:50 +1100)] 
Test forward query/response counts

(cherry picked from commit 591096f13155a6561118e0710e06ffbdb916285e)

3 months agoCorrectly identify forwarded queries with DNSTAP
Mark Andrews [Fri, 30 Jan 2026 02:45:39 +0000 (13:45 +1100)] 
Correctly identify forwarded queries with DNSTAP

Queries using forwarders where not being correctly identified
when using dnstap.

(cherry picked from commit 38b626d58d9e7ee8075ec096861fe880e4dba73f)

3 months agoAdd missed ret!=0 checks
Mark Andrews [Tue, 17 Feb 2026 02:12:59 +0000 (13:12 +1100)] 
Add missed ret!=0 checks

(cherry picked from commit 77278beaf3bf7d44fc6d874632dd072a39df5b42)

3 months ago[9.20] chg: test: Use isctest.asyncserver in the "pipelined" test
Michał Kępień [Fri, 13 Feb 2026 14:40:29 +0000 (15:40 +0100)] 
[9.20] chg: test: Use isctest.asyncserver in the "pipelined" test

Replace the custom DNS server used in the "pipelined" system test with
new code based on the isctest.asyncserver module.

Backport of MR !11516

Merge branch 'backport-michal/pipelined-asyncserver-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11552

3 months agoUse isctest.asyncserver in the "pipelined" test
Michał Kępień [Fri, 13 Feb 2026 13:27:10 +0000 (14:27 +0100)] 
Use isctest.asyncserver in the "pipelined" test

Replace the custom DNS server used in the "pipelined" system test with
new code based on the isctest.asyncserver module.

(cherry picked from commit 39540252187c66e1344acdc7967d3800536454b3)

3 months agoImplement a response handler that forwards queries
Michał Kępień [Fri, 13 Feb 2026 13:27:10 +0000 (14:27 +0100)] 
Implement a response handler that forwards queries

Add a new response handler, ForwarderHandler, which enables forwarding
all queries to another DNS server.  To simplify implementation, always
forward queries to the target server via UDP, even if they are
originally received using a different transport protocol.

(cherry picked from commit 10a2fc7f1f55b7398acf050278abb545bda9cb91)

3 months agoLog the server socket receiving each query
Michał Kępień [Fri, 13 Feb 2026 13:27:10 +0000 (14:27 +0100)] 
Log the server socket receiving each query

Extend AsyncDnsServer._log_query() and AsyncDnsServer._log_response() so
that they also log the <address, port> tuple for the socket on which a
given query was received on.  Minimize the signatures of those methods
by taking advantage of all the information contained in the QueryContext
instances passed to them.

(cherry picked from commit d3d9d166ede01a97058f2ea967b385bd0f5ca77d)

3 months agoStore server socket information in QueryContext
Michał Kępień [Fri, 13 Feb 2026 13:27:10 +0000 (14:27 +0100)] 
Store server socket information in QueryContext

Extend the QueryContext class with a field holding the <address, port>
tuple for the socket on which a given query was received.  This will
enable query handlers to act upon that information in arbitrary ways.

(cherry picked from commit 94a4793596ce3870ad6715b4c8db131a41746132)

3 months ago[9.20] fix: doc: Document that dig's query options are order sensitive
Mark Andrews [Mon, 9 Feb 2026 23:33:10 +0000 (10:33 +1100)] 
[9.20] fix: doc: Document that dig's query options are order sensitive

Closes #5730

Backport of MR !11526

Merge branch 'backport-5730-document-query-options-order-sensitive-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11542

3 months agoDocument that query options are order sensitive
Mark Andrews [Fri, 6 Feb 2026 04:29:07 +0000 (15:29 +1100)] 
Document that query options are order sensitive

(cherry picked from commit 879d2ed48029487fdcf728fa20395a2ed68c0a43)

3 months ago[9.20] chg: test: Rewrite xfer system test to pytest
Michal Nowak [Fri, 6 Feb 2026 20:04:11 +0000 (21:04 +0100)] 
[9.20] chg: test: Rewrite xfer system test to pytest

Backport of MR !11055

Merge branch 'backport-mnowak/pytest_rewrite_xfer-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11533

3 months agoRewrite xfer system test to pytest
Michal Nowak [Wed, 14 May 2025 16:04:02 +0000 (18:04 +0200)] 
Rewrite xfer system test to pytest

(cherry picked from commit bf0df8b7f4c56f7a53ffc3e1dcd2ed76320f2a83)

3 months ago[9.20] fix: nil: Release gnamebuf also on the error path
Ondřej Surý [Fri, 6 Feb 2026 19:57:31 +0000 (20:57 +0100)] 
[9.20] fix: nil: Release gnamebuf also on the error path

In dst_gssapi_acceptctx(), the gnamebuf could leak a little bit of
memory if dns_name_fromtext() would theoretically fail.  This would
require a Kerberos principal with invalid DNS name.

Closes #5737

Backport of MR !11536

Merge branch 'backport-5737-memory-leak-in-dst_gssapi_acceptctx-on-dns_name_fromtext-failure-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11537

3 months agoRelease gnamebuf also on the error path
Ondřej Surý [Fri, 6 Feb 2026 16:50:55 +0000 (17:50 +0100)] 
Release gnamebuf also on the error path

In dst_gssapi_acceptctx(), the gnamebuf could leak a little bit of
memory if dns_name_fromtext() would theoretically fail.  This would
require a Kerberos principal with invalid DNS name.

(cherry picked from commit 3ad87f1ad612fb6adce175760483735066300266)

3 months ago[9.20] chg: usr: Record query time for all dnstap responses
Michał Kępień [Fri, 6 Feb 2026 15:57:06 +0000 (16:57 +0100)] 
[9.20] chg: usr: Record query time for all dnstap responses

Not all DNS responses had the query time set in their corresponding
dnstap messages. This has been fixed.

Closes #3695

Backport of MR !11527

Merge branch 'backport-3695-record-query-time-for-all-dnstap-responses-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11534

3 months agoRecord query time for all dnstap responses
Mark Andrews [Fri, 6 Feb 2026 01:52:55 +0000 (12:52 +1100)] 
Record query time for all dnstap responses

The description in the protobuf specification is not a list of request
types to process but rather a list of examples to qualify the
description of whether the time indicates when the message is received
or sent.

(cherry picked from commit 479c7375173afd6f9e9cdd894752668682fba1e1)

3 months ago[9.20] fix: test: Allow re-run of kasp test case on all FreeBSDs
Nicki Křížek [Fri, 6 Feb 2026 14:37:30 +0000 (15:37 +0100)] 
[9.20] fix: test: Allow re-run of kasp test case on all FreeBSDs

Closes #5720

Backport of MR !11507

Merge branch 'backport-5720-freebsd-kasp-test-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11531

3 months agoAllow re-run of kasp test case on all FreeBSDs
Nicki Křížek [Thu, 29 Jan 2026 10:42:37 +0000 (11:42 +0100)] 
Allow re-run of kasp test case on all FreeBSDs

Previously, the issue when the kasp.test_kasp_case[secondary.kasp] fails
due to a timeout has been only ocassionally observed on FreeBSD 13
in our CI. It seems to have come back on FreeBSD 15.

(cherry picked from commit e4abb5bd070c040320cc23126c5cd9e4c726c72c)

3 months agoImprove logging for isctest.run.retry_with_timeout
Nicki Křížek [Thu, 29 Jan 2026 10:37:43 +0000 (11:37 +0100)] 
Improve logging for isctest.run.retry_with_timeout

Add more debug messages around the retry function to facilitate
debugging in case of issues.

(cherry picked from commit d237048de2493cc3f801017c44ea53eaf39cd140)

3 months ago[9.20] fix: test: nsec3/tests_nsec3_change.py updates zone file too fast
Mark Andrews [Fri, 6 Feb 2026 11:19:57 +0000 (22:19 +1100)] 
[9.20] fix: test: nsec3/tests_nsec3_change.py updates zone file too fast

The zone file is updated too soon causing the reload to fail.
Add a 1 second sleep to ensure the modification time has changed.

Closes #5734

Backport of MR !11525

Merge branch 'backport-5734-fix-tests-nsec3-change-py-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11528

3 months agoFix timing in tests_nsec3_change.py
Mark Andrews [Thu, 5 Feb 2026 22:39:15 +0000 (09:39 +1100)] 
Fix timing in tests_nsec3_change.py

The zone file is updated too soon causing the reload to fail.
Add a 1 second sleep to ensure the modification time has changed.

(cherry picked from commit 8f413fd5890eef40a66be81353a3638b9bb3e875)

3 months ago[9.20] [CVE-2025-13878] sec: test: Add a regression test for the BRID/HHIT crash
Michał Kępień [Thu, 5 Feb 2026 19:04:10 +0000 (20:04 +0100)] 
[9.20] [CVE-2025-13878] sec: test: Add a regression test for the BRID/HHIT crash

Add two short records to example.com.db that cause assertion failures
when converted to wire form.

The checks added to tests.sh are technically not required: the relevant
assertion failures are already hit when the zone is transferred out of
ns1.

Update the relevant unit tests with 1-byte records.

Co-authored-by: Mark Andrews <marka@isc.org>
Closes #5616

Backport of MR !11522

Merge branch 'backport-5616-add-brid-hhit-towire-tests-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11523

3 months agoAdd a regression test for the BRID/HHIT crash
Matthijs Mekking [Tue, 2 Dec 2025 15:23:01 +0000 (16:23 +0100)] 
Add a regression test for the BRID/HHIT crash

Add two short records to example.com.db that cause assertion failures
when converted to wire form.

The checks added to tests.sh are technically not required: the relevant
assertion failures are already hit when the zone is transferred out of
ns1.

Update the relevant unit tests with 1-byte records.

Co-authored-by: Mark Andrews <marka@isc.org>
(cherry picked from commit ce1d68cbc5d702749497a9bc6a758564f72abe2f)

3 months agoUpdate BIND version for release v9.20.19
Petr Špaček [Wed, 4 Feb 2026 14:16:53 +0000 (15:16 +0100)] 
Update BIND version for release

3 months agonew: doc: Prepare documentation for BIND 9.20.19
Petr Špaček [Wed, 4 Feb 2026 13:58:39 +0000 (13:58 +0000)] 
new: doc: Prepare documentation for BIND 9.20.19

Merge branch 'pspacek/prepare-documentation-for-bind-9.20.19' into 'v9.20.19-release'

See merge request isc-private/bind9!907

3 months agoTweak and reword release notes
Petr Špaček [Wed, 4 Feb 2026 13:52:33 +0000 (14:52 +0100)] 
Tweak and reword release notes

3 months agoPrepare release notes for BIND 9.20.19
Petr Špaček [Wed, 4 Feb 2026 13:40:59 +0000 (14:40 +0100)] 
Prepare release notes for BIND 9.20.19

3 months agoGenerate changelog for BIND 9.20.19
Petr Špaček [Wed, 4 Feb 2026 13:40:21 +0000 (14:40 +0100)] 
Generate changelog for BIND 9.20.19

3 months agochg: doc: Set up version for BIND 9.20.20
Petr Špaček [Wed, 4 Feb 2026 09:03:27 +0000 (09:03 +0000)] 
chg: doc: Set up version for BIND 9.20.20

Merge branch 'andoni/set-up-version-for-bind-9.20.20' into 'bind-9.20'

See merge request isc-projects/bind9!11513

3 months agoUpdate BIND version to 9.20.20-dev
Andoni Duarte Pintado [Wed, 4 Feb 2026 08:37:13 +0000 (09:37 +0100)] 
Update BIND version to 9.20.20-dev

4 months ago[9.20] fix: usr: Fix inbound IXFR performance regression.
Alessio Podda [Mon, 2 Feb 2026 10:24:36 +0000 (10:24 +0000)] 
[9.20] fix: usr: Fix inbound IXFR performance regression.

Very large inbound IXFR transfers were much slower compared to BIND
9.18. The performance was improved by adding specialized logic to
handle IXFR transfers.

Closes #5442

Backport of MR !11077

Merge branch 'backport-5442-ixfr-batch-transaction-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11355

4 months agoDisable respdiff-recent-named
Alessio Podda [Thu, 29 Jan 2026 09:05:22 +0000 (10:05 +0100)] 
Disable respdiff-recent-named

The respdiff-recent-named test is currently broken with autotools.
Disable the test to allow #GL!11355 to be merged.

4 months agoHandle databases with no update methods
Alessio Podda [Thu, 29 Jan 2026 08:56:24 +0000 (09:56 +0100)] 
Handle databases with no update methods

Non qp/rbt databases might not implement the
dns_db_(begin|commit|abort)update methods. This commit ensures that we
return ISC_R_NOTIMPLEMENTED in those cases.

4 months agoFix formatting
Alessio Podda [Fri, 2 Jan 2026 12:47:15 +0000 (13:47 +0100)] 
Fix formatting

Cleanup formatting after IXFR changes.

(cherry picked from commit ad0a38209292b04db8bc6202af4cdcbe6e5a8e4a)

4 months agoAdd unit tests
Alessio Podda [Mon, 27 Oct 2025 14:43:35 +0000 (15:43 +0100)] 
Add unit tests

Add diffop unit tests.

(cherry picked from commit fb72ebcdd8fbfb94ac6ddb680d778cf754d06ab3)

4 months agoImplement qpzone specific update path
Alessio Podda [Sat, 25 Oct 2025 09:01:35 +0000 (11:01 +0200)] 
Implement qpzone specific update path

This commit implements a batch update function for qpzone. The main
reason for this is speed: using addrdataset would cause a qp transaction
per rrdataset added, leading to a substantial slowdown compared to
RBTDB. The new API results in a qp transaction per applied diff.

(cherry picked from commit da53708dcbb5932de1bc1b0cf6871f6dae1db13e)

4 months agoImplement RBTDB update path
Alessio Podda [Sat, 3 Jan 2026 22:42:02 +0000 (23:42 +0100)] 
Implement RBTDB update path

This commit implements dns_db_{begin,commit,abort}update for rbt-zonedb
using the default diff shim.

4 months agoAbstract updates into a vtable
Alessio Podda [Fri, 24 Oct 2025 22:47:42 +0000 (00:47 +0200)] 
Abstract updates into a vtable

This commit adds a layer of indirection to the apply_diff logic used by
IXFR and resigning by having the database updates go through a vtable.

We do this in three steps:
 - We extend dns_rdatacallbacks_t vtable to allow subtraction and
   resigning.
 - We add a new set of api (begin|commit|abort)update to the dbmethods
   vtable, that model an incremental update that can be aborted.
 - We extract the core logic of diff_apply into a function that
   satisfies the new interface.
 - We make diff_apply use this new function, and log the results.

The intent of this commit is to allow databases to expose a batch
incremental update implementation, just like they expose a custom
batch creation implementation through (begin|end)load.

(cherry picked from commit e36dc0ca761898ff951d101281bbf39bf2535ec5)

4 months agoMove setresign to rdataset.c and rename it
Alessio Podda [Tue, 7 Oct 2025 04:00:17 +0000 (06:00 +0200)] 
Move setresign to rdataset.c and rename it

The setresign method is not diff specific, it only returns the minimum
resign time of an rdataset. Move it to rdataset.c to simplify late
refactoring.

(cherry picked from commit 6f726ae3db00e98f063302363b39fa41a5a7a8d3)

4 months agoClean up ixfr transaction API
Alessio Podda [Sat, 25 Oct 2025 09:01:27 +0000 (11:01 +0200)] 
Clean up ixfr transaction API

Make the API tighter. The idea of this commit is to highlight the
distinction between a database transaction and a journal transaction,
and ensure we run dns_zone_verifydb on error.

Done to simplify a later refactor.

(cherry picked from commit 399f0c191a9bfb1d2a10ff7f51d3a42af5671d16)

4 months ago[9.20] fix: test: ISC_RUN_TEST_IMPL should use a static declaration
Mark Andrews [Wed, 28 Jan 2026 14:06:54 +0000 (01:06 +1100)] 
[9.20] fix: test: ISC_RUN_TEST_IMPL should use a static declaration

These functions don't need to be called from multiple places and
by making them static we will detect when they are not added to the
list functions to be tested.

Closes #5715

Backport of MR !11480

Merge branch 'backport-5715-isc_run_test_impl-should-use-a-static-declaration-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11502

4 months agoISC_RUN_TEST_IMPL should use a static declaration
Mark Andrews [Fri, 23 Jan 2026 04:57:42 +0000 (15:57 +1100)] 
ISC_RUN_TEST_IMPL should use a static declaration

These functions don't need to be called from multiple places and
by making them static we will detect when they are not added to the
list functions to be tested.

(cherry picked from commit 22d664aa152f089d5890cd400364400d2aa8e3ae)

4 months ago[9.20] chg: dev: Use enum rather than numbers for isc_base64_tobuffer and isc_hex_tob...
Mark Andrews [Tue, 27 Jan 2026 21:40:42 +0000 (08:40 +1100)] 
[9.20] chg: dev: Use enum rather than numbers for isc_base64_tobuffer and isc_hex_tobuffer

Use isc_one_or_more and isc_zero_or_more rather than (-2) and
(-1) when calling isc_base64_tobuffer. Similarly for
isc_hex_tobuffer. This should help reduce the probability
that the wrong number is used and it makes the intent clearer.

Closes #5713

Backport of MR !11479

Merge branch 'backport-5713-use-macros-with-isc_base64_tobuffer-and-isc_hex_tobuffer-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11498

4 months agoAdd spatch for isc_one_or_more and isc_zero_or_more
Mark Andrews [Tue, 27 Jan 2026 13:21:43 +0000 (00:21 +1100)] 
Add spatch for isc_one_or_more and isc_zero_or_more

(cherry picked from commit d92369cc8ff5f6f5225fd39bdf695dc531916f79)

4 months agoUse isc__zero_or_more when calling isc_base64_tobuffer
Mark Andrews [Fri, 23 Jan 2026 04:11:15 +0000 (15:11 +1100)] 
Use isc__zero_or_more when calling isc_base64_tobuffer

(cherry picked from commit 58432895507569116d88f11c48375ca3a82bd875)

4 months agoUse isc_one_or_more when calling isc_base64_tobuffer
Mark Andrews [Fri, 23 Jan 2026 03:59:37 +0000 (14:59 +1100)] 
Use isc_one_or_more when calling isc_base64_tobuffer

(cherry picked from commit 62fd89d4a121354c9e77d9429f53998c9d94d678)

4 months agoUse isc_one_or_more when calling isc_hex_tobuffer
Mark Andrews [Fri, 23 Jan 2026 04:08:40 +0000 (15:08 +1100)] 
Use isc_one_or_more when calling isc_hex_tobuffer

(cherry picked from commit 7feb0f5b539b939e89061bc1a02a1bdd5b93cea1)

4 months agoAdd enum for use with isc_base64_tobuffer and isc_hex_tobuffer
Mark Andrews [Fri, 23 Jan 2026 03:53:18 +0000 (14:53 +1100)] 
Add enum for use with isc_base64_tobuffer and isc_hex_tobuffer

This adds the following enum isc_one_or_more and isc_zero_or_more
which specify if one or more or zeror or more bytes are required
when reading the unbounded base64 / hex encoded data.

(cherry picked from commit 07610f8566daf532f3dbb312526422cd154b5ceb)

4 months ago[9.20] fix: usr: Fix a possible issue with reponse policy zones and catalog zones
Arаm Sаrgsyаn [Tue, 27 Jan 2026 13:28:33 +0000 (13:28 +0000)] 
[9.20] fix: usr: Fix a possible issue with reponse policy zones and catalog zones

If a response policy zone (RPZ) or a catalog zone contained an
`$INCLUDE` directive, then manually reloading that zone could
fail to process the changes in the response policy or in the
catalog, respectively. This has been fixed.

Closes #5714

Backport of MR !11489

Merge branch 'backport-5714-zone_loaddone-rpz-and-catz-bugfix-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11496

4 months agoAdd a new check in the RPZ system test
Aram Sargsyan [Mon, 26 Jan 2026 14:28:10 +0000 (14:28 +0000)] 
Add a new check in the RPZ system test

Check that reloading a response policy zone which has an '$INCLUDE'
directive defined is working as expected.

(cherry picked from commit d81a2457d6fe09a01d60d4204fb80c3e2feec88d)

4 months agoFix a bug in zone_loaddone()
Aram Sargsyan [Mon, 26 Jan 2026 15:34:00 +0000 (15:34 +0000)] 
Fix a bug in zone_loaddone()

The zone_loaddone() function disables database notifications for
a catalog zones and response policy zones (RPZ) when loading had
failed. Howerer, the 'result != ISC_R_SUCCESS' check is insufficient,
because the DNS_R_SEENINCLUDE result also indicates success.

Add a second condition for the "if" block.

(cherry picked from commit 31290eccb1246cc1aefd8a062e36de12ca0f24e1)

4 months ago[9.20] fix: test: Resolve the system_test_dir in pytest
Nicki Křížek [Tue, 27 Jan 2026 12:20:24 +0000 (13:20 +0100)] 
[9.20] fix: test: Resolve the system_test_dir in pytest

If the system_test_dir contains a symlink, then it might cause issues
further down when using relative_to(), unless it is resolved first. This
has been observed on FreeBSD13 in CI where /home is a symlink to
/usr/home.

Backport of MR !11490

Merge branch 'backport-nicki/pytest-freebsd13-artifacts-path-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11494

4 months agoResolve the system_test_dir in pytest
Nicki Křížek [Mon, 26 Jan 2026 17:37:00 +0000 (18:37 +0100)] 
Resolve the system_test_dir in pytest

If the system_test_dir contains a symlink, then it might cause issues
further down when using relative_to(), unless it is resolved first. This
has been observed on FreeBSD13 in CI where /home is a symlink to
/usr/home.

(cherry picked from commit b1e346905912db53c9e92b2729849e3bb6f74816)

4 months ago[9.20] chg: test: Use isctest.asyncserver in the "resolver" system test
Štěpán Balážik [Tue, 27 Jan 2026 11:29:38 +0000 (11:29 +0000)] 
[9.20] chg: test: Use isctest.asyncserver in the "resolver" system test

Depends on !11403, !11419

Backport of MR !11411

Merge branch 'backport-stepan/resolver-asyncserver-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11486

4 months agoFix bugs in 'resolver/ans2' and 'resolver/ans3'
Štěpán Balážik [Thu, 25 Dec 2025 20:48:33 +0000 (21:48 +0100)] 
Fix bugs in 'resolver/ans2' and 'resolver/ans3'

There were multiple typos and omissions regarding query minimization.

(cherry picked from commit c336c1feaba1f95e35151b02d2ac5278d9cc2d98)

4 months agoReimplement 'resolver/ans10' server using AsyncDnsServer
Štěpán Balážik [Thu, 25 Dec 2025 16:03:20 +0000 (17:03 +0100)] 
Reimplement 'resolver/ans10' server using AsyncDnsServer

Ensure packet-for-packet compatibility with the old server.

(cherry picked from commit cef851740bf7c6e3633ff9226d46c09728198255)

4 months agoReimplement 'resolver/ans8' server using AsyncDnsServer
Štěpán Balážik [Thu, 25 Dec 2025 16:03:20 +0000 (17:03 +0100)] 
Reimplement 'resolver/ans8' server using AsyncDnsServer

Ensure packet-for-packet compatibility with the old server.

(cherry picked from commit 8f2526a27d9dfef46ef1ef26a971cc928c6c0f08)

4 months agoReimplement 'resolver/ans3' server using AsyncDnsServer
Štěpán Balážik [Thu, 25 Dec 2025 16:03:20 +0000 (17:03 +0100)] 
Reimplement 'resolver/ans3' server using AsyncDnsServer

Ensure packet-for-packet compatibility with the old server including
bugs.

(cherry picked from commit 5004d278e49d84bd80479c0c5a842b3fb4d58c19)

4 months agoReimplement 'resolver/ans2' server using AsyncDnsServer
Štěpán Balážik [Thu, 25 Dec 2025 16:03:20 +0000 (17:03 +0100)] 
Reimplement 'resolver/ans2' server using AsyncDnsServer

Ensure packet-for-packet compatibility with the old server including
bugs.

(cherry picked from commit d203a39314489d0958db11da8e105215dde4d80b)

4 months agoAdd common parts of resolver test custom servers
Štěpán Balážik [Fri, 26 Dec 2025 00:06:28 +0000 (01:06 +0100)] 
Add common parts of resolver test custom servers

These will be shared by all the ans*/ans.py files.

(cherry picked from commit 23d9055617f1911ca2e600d31688e34e48e0993c)

4 months agoAdd StaticResponseHandler to isctest.asyncserver
Štěpán Balážik [Fri, 26 Dec 2025 00:03:33 +0000 (01:03 +0100)] 
Add StaticResponseHandler to isctest.asyncserver

It is used to prepare and yield one DNS response and avoid the
`get_responses` boiler-plate.

(cherry picked from commit eba89fd38b029a7722e3d70952ac4cb6c8769cc4)

4 months agoAdd QnameQtypeHandler for matching QNAME, QTYPE pairs
Štěpán Balážik [Thu, 25 Dec 2025 22:53:26 +0000 (23:53 +0100)] 
Add QnameQtypeHandler for matching QNAME, QTYPE pairs

This is a pattern in the resolver system test and also elsewhere.

(cherry picked from commit 8a45f5b485eff318e43bcc1c5aecb7185955b9b2)

4 months agoDelete unused ResponseHandlers from statistics ans server
Štěpán Balážik [Thu, 25 Dec 2025 16:00:00 +0000 (17:00 +0100)] 
Delete unused ResponseHandlers from statistics ans server

Turns out the original ans.pl implementation before (!10928) was a copy
of an old version of the ans2 server from the resolver system test.

I reimplemented it fully, even though only two ResponseHandlers are
actually used in the statistics test.

(cherry picked from commit 7d5ec7167b0c8b766760146c98a5c1072223bc90)

4 months agoStore the most specific matched domain in DomainHandler
Štěpán Balážik [Thu, 25 Dec 2025 15:58:35 +0000 (16:58 +0100)] 
Store the most specific matched domain in DomainHandler

Store the most specific matching domain in DomainHandler and
expose it through the `matched_domain` property for subclasses
to use in their implementations of `get_responses`.

(cherry picked from commit b89cc2bd862ad12a7983df3ca317b33406ac9868)

4 months ago[9.20] fix: usr: Fix brid and hhit implementation
Mark Andrews [Tue, 27 Jan 2026 06:30:48 +0000 (17:30 +1100)] 
[9.20] fix: usr: Fix brid and hhit implementation

Fix bugs in BRID and HHIT implementation and enable
the unit tests.

Closes #5710

Backport of MR !11491

Merge branch 'backport-5710-fix-hhit-and-brid-issues-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11492

4 months agoFix brid and hhit unit tests
Mark Andrews [Sat, 24 Jan 2026 07:37:52 +0000 (18:37 +1100)] 
Fix brid and hhit unit tests

These tests were not being run.

(cherry picked from commit 97af8fc519590bd0d794f1208b6ad60aa717e2c7)

4 months agoRemove extraneous space at start of brid and hhit records
Mark Andrews [Sat, 24 Jan 2026 07:33:47 +0000 (18:33 +1100)] 
Remove extraneous space at start of brid and hhit records

(cherry picked from commit 10366e4f4e52f45ba46a7e839ffd3df9d4ab15ef)

4 months agoFix isc_base64_tobuffer call for brid and hhit
Mark Andrews [Sat, 24 Jan 2026 07:32:40 +0000 (18:32 +1100)] 
Fix isc_base64_tobuffer call for brid and hhit

Zero length records were not being rejected.

(cherry picked from commit bdb9c838a82558f7b3e1bcf0b9dd7e6f1cfb9aa8)

4 months ago[9.20] fix: test: unit test tsig_badsig was not being called
Mark Andrews [Fri, 23 Jan 2026 22:08:36 +0000 (09:08 +1100)] 
[9.20] fix: test: unit test tsig_badsig was not being called

Additionally, the test was badly implemented. This has been fixed.

Closes #5712

Backport of MR !11478

Merge branch 'backport-5712-unit-test-tsig_badsig-was-not-being-called-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11485

4 months agoFix and call tsig_badsig unit test
Mark Andrews [Fri, 23 Jan 2026 03:30:44 +0000 (14:30 +1100)] 
Fix and call tsig_badsig unit test

(cherry picked from commit 8da2310511c26c1d0264c028aed12bda48376c44)

4 months ago[9.20] fix: usr: DSYNC record incorrectly used two octets for the Scheme Field
Mark Andrews [Fri, 23 Jan 2026 15:19:23 +0000 (02:19 +1100)] 
[9.20] fix: usr: DSYNC record incorrectly used two octets for the Scheme Field

When creating the `DSYNC` record from a structure, `uint16_tobuffer` was used instead of `uint8_tobuffer` when adding the scheme, causing a `DSYNC` record that was one octet too long. This has been fixed.

Closes #5711

Backport of MR !11477

Merge branch 'backport-5711-dsync_fromstruct-produces-an-invalid-record-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11483

4 months agoFix dsync unit test
Mark Andrews [Fri, 23 Jan 2026 02:38:16 +0000 (13:38 +1100)] 
Fix dsync unit test

The dsync unit test was not being run and the domain names in
the test data should have been fully qualified.

(cherry picked from commit 2159f74a1f3b7498a59516375be928109ec847e2)

4 months agodsync_from struct produced an invalid record
Mark Andrews [Fri, 23 Jan 2026 02:32:41 +0000 (13:32 +1100)] 
dsync_from struct produced an invalid record

uint16_tobuffer was used instead of uint8_tobuffer when adding the
scheme to the buffer.  This produced a record that was one octet
too long.  This has been fixed.

(cherry picked from commit 3180e5045978ce9fef524e98a66c0fdc7d7b783c)

4 months ago[9.20] chg: ci: Use a small always-on runner for lightweight CI jobs
Andoni Duarte [Fri, 23 Jan 2026 12:38:56 +0000 (12:38 +0000)] 
[9.20] chg: ci: Use a small always-on runner for lightweight CI jobs

Some CI jobs spend more time pulling the docker image and setting up their environment than running the script. This MR adds a tag `smalljob` to jobs considered lightweight in order to run them on a dedicated small VM.

Backport of MR !11266

Merge branch 'backport-andoni/try-small-vm-for-lightweight-ci-jobs-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11481

4 months agoAdd smalljob tag to small jobs not in the quick-checks stage
Andoni Duarte Pintado [Thu, 15 Jan 2026 11:16:30 +0000 (12:16 +0100)] 
Add smalljob tag to small jobs not in the quick-checks stage

Jobs using the "post_merge" and "manual_release_job_qa" anchors also
complete in less than a minute, so they now include the "smalljob" tag.

Since the "release" job is also a fast one, but without an anchor, the
"smalljob" tag is added to its definition.

The "autoconf_job" definion also includes the tag and it is kept in its
own stage.

(cherry picked from commit e9f2b7944e6d9ad3e93357046828e92d61e15108)

4 months agoDe-duplicate yaml for "other-checks" jobs
Andoni Duarte Pintado [Tue, 13 Jan 2026 15:32:45 +0000 (16:32 +0100)] 
De-duplicate yaml for "other-checks" jobs

In .gitlab-ci.yml, since "&other_checks_job" has "needs: []", remove
that line from the jobs that use that anchor.

(cherry picked from commit 66175b448cbc0db5b26095dae47333549e82c325)

4 months agoMove "needs: []" to the "quick_checks_job" anchor
Andoni Duarte Pintado [Fri, 19 Dec 2025 10:55:30 +0000 (11:55 +0100)] 
Move "needs: []" to the "quick_checks_job" anchor

Most jobs in this stage have it by default, so it makes sense to
add it to their common anchor. Jobs with different "needs:" will
override it.

(cherry picked from commit 432b7d7954bc37175c5db20c2f5894214ca0661d)

4 months agoGroup CI jobs in "quick-checks" stage together
Andoni Duarte Pintado [Mon, 15 Dec 2025 16:21:27 +0000 (17:21 +0100)] 
Group CI jobs in "quick-checks" stage together

Move the jobs in the "quick-checks" stage to the same place in
.gitlab-ci.yml.

(cherry picked from commit b3ac6b47d9bd347a2a008cd834a8553d585e9308)

4 months agoAdd faster CI jobs to the "quick-checks" stage
Andoni Duarte Pintado [Mon, 15 Dec 2025 16:19:28 +0000 (17:19 +0100)] 
Add faster CI jobs to the "quick-checks" stage

Given the short runtime (<1min) of the "linkcheck" and
"generate-tsan-stress-test-configs" CI jobs, move them to the
"quick-checks" stage.

(cherry picked from commit ae7682915712e7abbfb3cbfefc837f0505b68bd0)

4 months agoMove CI stage "other-checks" right after "quick-checks"
Andoni Duarte Pintado [Mon, 15 Dec 2025 16:01:58 +0000 (17:01 +0100)] 
Move CI stage "other-checks" right after "quick-checks"

Move CI stage "other-checks" right after "quick-checks" and get the jobs
in it as close to each other as possible in .gitlab-ci.yml.

Since no job is allowed to depend (via "needs") on any job that is
assigned to a stage later than its own, move the "tsan:stress" and
"gcov" jobs to the "system" stage.

(cherry picked from commit 4f89d32bff81935e9688b9664a68e517fb585194)

4 months agoMove slower CI jobs out of "quick-checks" stage
Andoni Duarte Pintado [Mon, 15 Dec 2025 14:50:28 +0000 (15:50 +0100)] 
Move slower CI jobs out of "quick-checks" stage

Jobs with more than one minute of runtime are not considered for the
small VM.

The "tarball-create" job goes to the more appropriate "build" stage.

"coccinelle" and "checkbashisms" are moved to the generic
"other-checks".

(cherry picked from commit ba5844a1de9a8ede9396112ae78e22d7dcfb95b7)

4 months agoCreate "other_checks_job" anchor in CI yaml
Andoni Duarte Pintado [Mon, 15 Dec 2025 13:47:08 +0000 (14:47 +0100)] 
Create "other_checks_job" anchor in CI yaml

Use an anchor for the common parts of "other-checks" jobs in CI yaml.

(cherry picked from commit e61bc3ad72d65b57ae2a96c25c944a04fa447454)

4 months agoRename the "postcheck" stage to "other-checks" in CI
Andoni Duarte Pintado [Mon, 15 Dec 2025 13:49:59 +0000 (14:49 +0100)] 
Rename the "postcheck" stage to "other-checks" in CI

Rename the "postcheck" CI stage to the more generic "other-checks".
Slower jobs that still run in autoscaled runners belong here, as opposed
to the lightweight ones in "quick-checks".

(cherry picked from commit 6d442c4a06a35b6551a75e31e30254e47af2339f)

4 months agoRename the "precheck" stage in CI to "quick-checks"
Andoni Duarte Pintado [Mon, 15 Dec 2025 12:08:44 +0000 (13:08 +0100)] 
Rename the "precheck" stage in CI to "quick-checks"

Most jobs in the "precheck" stage spend more time setting up their
environment than running the script (seconds), this allows us to add a
small always on dedicated runner instead of the autoscaled ones.

Hence, the stage is renamed to "quick-checks", and a tag "smalljob" is
added to the anchor so that these jobs are picked by the dedicated
runner.

(cherry picked from commit 9aa5041a88e20ab24559091494bbd20944723225)