Commit graph

39964 commits

Author SHA1 Message Date
Mark Andrews
3e787e9893 [9.18] fix: usr: RPZ canonical warning displays zone entry incorrectly
When an IPv6 rpz prefix entry is entered incorrectly the log
message was just displaying the prefix rather than the full
entry.  This has been corrected.

Closes #5491

Backport of MR !10890

Merge branch 'backport-5491-rpz-canonical-warning-displays-zone-entry-incorrectly-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10931
2025-09-03 10:21:09 +10:00
Mark Andrews
85840b98b5 Add non canonical form entry to trigger log message
(cherry picked from commit 76db9e276f)
2025-09-02 23:43:46 +00:00
Mark Andrews
823e39a932 RPZ canonical warning displays zone entry incorrectly
Do not insert a NUL into ip_str too early as the full value
is needed later.  Only insert the NUL immediately before
displaying just the prefix string.

(cherry picked from commit 283da99f02)
2025-09-02 23:43:45 +00:00
Michał Kępień
e28c95c116 rem: usr: Deprecate the "tkey-domain" statement
Mark the :any:`tkey-domain` statement as deprecated since it is only
used by code implementing TKEY Mode 2 (Diffie-Hellman), which was
removed from newer BIND 9 branches.

See #4204

Merge branch '4204-deprecate-tkey-domain' into 'bind-9.18'

See merge request isc-projects/bind9!10783
2025-09-01 22:29:29 +02:00
Michał Kępień
6e3203a5b5
Deprecate the "tkey-domain" statement
Mark the "tkey-domain" statement as deprecated since it is only used by
code implementing TKEY Mode 2 (Diffie-Hellman), which was removed from
newer BIND 9 branches.
2025-09-01 22:04:28 +02:00
Michał Kępień
2705307f81 [9.18] rem: usr: Deprecate the "tkey-gssapi-credential" statement
The :any:`tkey-gssapi-keytab` statement allows GSS-TSIG to be set up in
a simpler and more reliable way than using the
:any:`tkey-gssapi-credential` statement and setting environment
variables (e.g. ``KRB5_KTNAME``). Therefore, the
:any:`tkey-gssapi-credential` statement has been deprecated;
:any:`tkey-gssapi-keytab` should be used instead.

For configurations currently using a combination of both
:any:`tkey-gssapi-keytab` *and* :any:`tkey-gssapi-credential`, the
latter should be dropped and the keytab pointed to by
:any:`tkey-gssapi-keytab` should now only contain the credential
previously specified by :any:`tkey-gssapi-credential`.

See #4204

Backport of MR !10782

Merge branch 'backport-4204-deprecate-tkey-gssapi-credential-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10925
2025-09-01 22:01:07 +02:00
Michał Kępień
57271272d1 Deprecate the "tkey-gssapi-credential" statement
The "tkey-gssapi-keytab" statement enables GSS-TSIG to be set up in a
simpler and more reliable way than using the "tkey-gssapi-credential"
statement and setting environment variables (e.g. KRB5_KTNAME).

Mark the "tkey-gssapi-credential" statement as deprecated to eventually
only have one method for setting up GSS-TSIG in named.  Do not mention
"tkey-gssapi-credential" in the section of the ARM on dynamic updates.

(cherry picked from commit 6de435c528)
2025-09-01 19:34:19 +00:00
Michal Nowak
7a33fbbca1 [9.18] new: ci: Add Debian "trixie"
Backport of MR !10827

Merge branch 'backport-mnowak/add-debian-trixie-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10922
2025-09-01 19:40:26 +02:00
Michal Nowak
c71cc5d311
Make "trixie" the base image
(cherry picked from commit bb26409f34)
2025-09-01 17:37:52 +02:00
Michal Nowak
8e2f5c36ee
Add Debian "trixie"
(cherry picked from commit 263810e779)
2025-09-01 17:24:13 +02:00
Ondřej Surý
48c30cfcd0 [9.18] fix: dev: Add and use __attribute__((nonnull)) in dnssec-signzone.c
Clang 20 was spuriously warning about the possibility of passing a NULL file pointer
to `fprintf()`, which uses the 'nonnull' attribute. To silence the warning, the functions
calling `fprintf()` have been marked with the same attribute to assure that NULL can't be
passed to them in the first place.

Close #5487

Backport of MR !10888

Merge branch 'backport-5487-mark-passed-file-pointer-as-nonnull-in-dnssec-signzone-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10914
2025-08-28 17:02:56 +02:00
Ondřej Surý
8c97b56b2c
Add and use __attribute__((nonnull)) in dnssec-signzone.c
Clang 20 is complaining about passing NULL to an argument with 'nonnull'
attribute.  Mark these two functions with the same attribute to assure
that these two function also don't accept NULL as an argument.

(cherry picked from commit 9e350c1774)
2025-08-28 16:27:00 +02:00
Petr Špaček
1da9dce441 [9.18] chg: doc: Clarify forward, stub, and static-stub zone usage
Backport of MR !10417

Merge branch 'backport-pspacek/doc-forward-stub-zones-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10903
2025-08-27 14:44:34 +00:00
Petr Špaček
b86591b0f5 Clarify forward, stub, and static-stub zone usage
Clarify that forwarding points to a resolver and stub to auths.
Add cross-links. Rewrite stub zone type description.

(cherry picked from commit e84b98a9fc)
2025-08-27 14:17:44 +00:00
Ondřej Surý
f5a6a8be45 [9.18] fix: usr: Prevent spurious SERVFAILs for certain 0-TTL resource records
Under certain circumstances, BIND 9 can return SERVFAIL when updating
existing entries in the cache with new NS, A, AAAA, or DS records with 0-TTL.

Closes #5294

Backport of MR !10897

Merge branch 'backport-5294-preserve-ZEROTTL-on-cache-update-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10899
2025-08-26 22:47:05 +02:00
Ondřej Surý
0cd65c605c
Don't preserve cache entries if new TTL is smaller than existing
Under certain circumstances, cache entries with equivalent rdataset
might not get replaced.  Previously such entry would get preserved
regardless of the new TTL and expire time on the existing header would
get updated when the expire time was less than the expire time on the
existing header.  Change the logic to preserve the existing header only
if the new expire time is larger than the existing one and replace the
existing cache entry when the new expire time is less than the existing
one.

Co-authored-by: Jinmei Tatuya <jtatuya@infoblox.com>
(cherry picked from commit 9f7ba584cf)
2025-08-26 21:34:08 +02:00
Ondřej Surý
d4c4edff1f
Preserve ZEROTTL attribute when replacing NS RRset
Previously, BIND 9 would drop the ZEROTTL attribute when updating
previously cached NS entry with ZEROTTL attribute set.

Co-authored-by: Jinmei Tatuya <jtatuya@infoblox.com>
(cherry picked from commit 982ca161c2)
2025-08-26 21:32:35 +02:00
Andoni Duarte Pintado
af551184e2 Merge tag 'v9.18.39' into bind-9.18 2025-08-20 18:07:53 +02:00
Ondřej Surý
1bc0f245c7 [9.18] chg: dev: Update clang-format style with options added in newer versions
Add and apply InsertBraces statement to add missing curly braces around one-line statements and use ControlStatementsExceptControlMacros for SpaceBeforeParens to remove space between foreach macro and the brace, e.g. `FOREACH (x) {` becomes `FOREACH(x) {`.

Backport of MR !10863

Merge branch 'backport-ondrej/update-clang-format-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10865
2025-08-19 08:48:06 +02:00
Ondřej Surý
b8bc6a8d8b
Ignore clang-format reformatting commits
(cherry picked from commit 255f484f49)
2025-08-19 08:11:46 +02:00
Ondřej Surý
8339615235
Use ControlStatementsExceptControlMacros for SpaceBeforeParens
> Put a space before opening parentheses only after control statement
> keywords (for/if/while...) except this option doesn’t apply to ForEach
> and If macros. This is useful in projects where ForEach/If macros are
> treated as function calls instead of control statements.

(cherry picked from commit 42496f3f4a)
2025-08-19 08:10:58 +02:00
Ondřej Surý
a464171243
Add and apply InsertBraces statement
> Insert braces after control statements (if, else, for, do, and while)
> in C++ unless the control statements are inside macro definitions or
> the braces would enclose preprocessor directives.

(cherry picked from commit d051e1e8f8)
2025-08-19 08:09:59 +02:00
Nicki Křížek
2270946186 [9.18] fix: ci: Update DNS Shotgun parameters for an updated dataset
We've switched to an updated dataset for shotgun jobs. The change in
underlying traffic caused the more sensitive doh-get (and partially dot)
jobs to overload the resolver, making the jobs unstable and unreliable,
due to an increased number of timeouts.

Readjust the load parameters slightly to avoid exceeding ~2 % of
timeouts in the cold cache scenario to stabilize the job results.

Backport of MR !10841

Merge branch 'backport-nicki/ci-shotgun-load-new-dataset-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10857
2025-08-14 23:30:28 +02:00
Nicki Křížek
e36b43592f Update DNS Shotgun parameters for an updated dataset
We've switched to an updated dataset for shotgun jobs. The change in
underlying traffic caused the more sensitive doh-get (and partially dot)
jobs to overload the resolver, making the jobs unstable and unreliable,
due to an increased number of timeouts.

Readjust the load parameters slightly to avoid exceeding ~2 % of
timeouts in the cold cache scenario to stabilize the job results.

(cherry picked from commit 338389b3eb)
2025-08-14 21:01:00 +02:00
Michal Nowak
e96f373ebe [9.18] fix: ci: Set more lenient respdiff limits
After !9950, respdiff's maximal disagreement percentage needs to be
adjusted as target disagreements between the tested version of the
"main" branch and the reference one jumped for the respdiff,
respdiff:asan, and respdiff:tsan jobs from on average 0.07% to 0.16% and
from 0.12% to 0.17% for the respdiff-third-party job.

In !9950, we concluded setting MAX_DISAGREEMENTS_PERCENTAGE to double
the average disagreement percentage works fine in the CI.

(cherry picked from commit 9acc0c8543)

Backport of MR !10293

Merge branch 'backport-mnowak/more-lenient-respdiff-limits-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10848
2025-08-14 16:14:33 +02:00
Michal Nowak
7baccc9f72 Set more lenient respdiff limits
After !9950, respdiff's maximal disagreement percentage needs to be
adjusted as target disagreements between the tested version of the
"main" branch and the reference one jumped for the respdiff,
respdiff:asan, and respdiff:tsan jobs from on average 0.07% to 0.16% and
from 0.12% to 0.17% for the respdiff-third-party job.

In !9950, we concluded setting MAX_DISAGREEMENTS_PERCENTAGE to double
the average disagreement percentage works fine in the CI.

(cherry picked from commit 9acc0c8543)
2025-08-14 16:12:01 +02:00
Mark Andrews
aef4682e4a [9.18] fix: dev: Use DNS_RDATACOMMON_INIT to hide branch differences
Initialization of the common members of rdata type structures varies across branches. Standardize it by using the `DNS_RDATACOMMON_INIT` macro for all types, so that new types are more likely to use it, and hence backport more cleanly.

Closes #5467

Merge branch '5467-use-dns_rdatacommon_init-to-hide-branch-differences-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10833
2025-08-14 23:19:09 +10:00
Mark Andrews
3ed407ac77 Use DNS_RDATACOMMON_INIT to hide branch differences
Initialization of the common members of rdata type structures varies
across branches. Standardize it by using the DNS_RDATACOMMON_INIT
macro for all types, so that new types are more likely to use it,
and hence backport more cleanly.
2025-08-14 22:42:01 +10:00
Andoni Duarte
77e429a511 chg: doc: Set up version for BIND 9.18.40
Merge branch 'andoni/set-up-version-for-bind-9.18.40' into 'bind-9.18'

See merge request isc-projects/bind9!10852
2025-08-14 11:00:32 +00:00
Andoni Duarte Pintado
6cb786c15c Update BIND version to 9.18.40-dev 2025-08-14 12:26:14 +02:00
Andoni Duarte Pintado
737584125e Update BIND version for release 2025-08-13 19:09:24 +02:00
Andoni Duarte
073da874e5 new: doc: Prepare documentation for BIND 9.18.39
Merge branch 'andoni/prepare-documentation-for-bind-9.18.39' into 'v9.18.39-release'

See merge request isc-private/bind9!826
2025-08-13 16:16:54 +00:00
Andoni Duarte Pintado
f17775b912 Tweak and reword release notes 2025-08-13 12:36:15 +02:00
Andoni Duarte Pintado
4f4a06f782 Prepare release notes for BIND 9.18.39 2025-08-12 19:17:47 +02:00
Andoni Duarte Pintado
9635daad52 Generate changelog for BIND 9.18.39 2025-08-12 19:15:02 +02:00
Štěpán Balážik
354fceac2c [9.18] fix: test: Fix the .hypothesis directory to bin/tests/system/.hypothesis
Previously the location of the .hypothesis directory would depend on the
current working directory when running pytest.

Set the HYPOTHESIS_STORAGE_DIRECTORY explicitly.

Closes #5424

Backport of MR !10825

Merge branch 'backport-5424-hypothesis-artifacts-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10829
2025-08-06 12:40:39 +00:00
Štěpán Balážik
a82ab27989 Fix the .hypothesis directory to bin/tests/system/.hypothesis
Previously the location of the .hypothesis directory would depend on the
current working directory when running pytest.

Set the HYPOTHESIS_STORAGE_DIRECTORY explicitly.

(cherry picked from commit a4e74ab8cd)
2025-08-06 14:07:44 +02:00
Mark Andrews
4eb5a0ba1c [9.18] new: usr: Support for parsing the DSYNC record has been added
Closes #5440

Backport of MR !10776

Merge branch 'backport-5440-add-dsync-record-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10821
2025-08-06 15:17:45 +10:00
Mark Andrews
480a7a6aac Add tests for DSYNC
(cherry picked from commit 53c8c5233a)
2025-08-06 13:51:43 +10:00
Mark Andrews
fbc8365395 Add support for parsing and displaying DSYNC rdata type
(cherry picked from commit c47615094e)
2025-08-06 13:51:43 +10:00
Mark Andrews
976b19e00c Add support for parsing DSYNC scheme mnemonics
Adds dns_dsyncscheme_fromtext, dns_dsyncscheme_totext and
dns_dsyncscheme_format.  Adds type dns_dsyncscheme_t.

(cherry picked from commit 6e1311c624)
2025-08-06 13:08:11 +10:00
Petr Špaček
02834baf74 [9.18] fix: test: Require explicit import of isctest.name in system tests
Since the isctest.name module uses `pytest.importorskip()` to check for
dnspython version, it can't be imported automatically on `import
isctest`, because that is used in conftest.py, causing an error during
test setup.

Note that this behavior only manifested on AlmaLinux 8, so perhaps newer
pytest versions are able to handle this edge case more gracefully.

This doesn't affect 9.20+, as this issue was introduced as an erroneous
conflict resolution during a 9.18 backport.

Merge branch 'nicki/fix-isctest-name-import-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10822
2025-08-05 12:56:36 +00:00
Nicki Křížek
78c0af6de1 Require explicit import of isctest.name in system tests
Since the isctest.name module uses `pytest.importorskip()` to check for
dnspython version, it can't be imported automatically on `import
isctest`, because that is used in conftest.py, causing an error during
test setup.

Note that this behavior only manifested on AlmaLinux 8, so perhaps newer
pytest versions are able to handle this edge case more gracefully.

This doesn't affect 9.20+, as this issue was introduced as an erroneous
conflict resolution during a 9.18 backport.
2025-08-05 11:10:24 +02:00
Ondřej Surý
c9f05d750a fix: usr: Rescan the interfaces again when reconfiguring the server
On FreeBSD, the server would not listen on the configured 'localhost'
interfaces immediately, but only after the 'interface-interval' period
has passed.  After the fix for default interface-interval was merged in
!10281, this means the server would listen on the localhost after 60
minutes.

Rescan the interfaces immediately after configuring the
interface-interval value to start listening on the 'localhost' interface
immediately.

Merge branch 'ondrej/rescan-the-interface-on-time-0' into 'bind-9.18'

See merge request isc-projects/bind9!10758
2025-08-04 11:24:44 +02:00
Ondřej Surý
e86eed54f5
Rescan the interfaces again when reconfiguring the server
On FreeBSD, the server would not listen on the configured 'localhost'
interfaces immediately, but only after the 'interface-interval' period
has passed.  After the fix for default interface-interval was merged in
!10281, this means the server would listen on the localhost after 60
minutes.

Rescan the interfaces immediately after configuring the
interface-interval value to start listening on the 'localhost' interface
immediately.
2025-08-04 11:24:23 +02:00
Mark Andrews
4d24dabc25 [9.18] fix: usr: Prevent spurious validation failures
Under rare circumstances, validation could fail if multiple clients simultaneously iterated the same set of signatures.

References #3014

Backport of MR !5578

Merge branch 'backport-3014-validator-c-check_signer-fails-to-call-dns_rdataset_clone-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10816
2025-08-02 00:29:52 +10:00
Mark Andrews
74fab1887c validator.c:check_signer now clones val->event->sigrdataset
Spurious validation failures were traced back to check_signer looping
over val->event->sigrdataset directly.  Cloning val->event->sigrdataset
prevents check_signer from interacting with callers that are also
looping over val->event->sigrdataset.

(cherry picked from commit 8aa130f253)
2025-08-01 23:55:38 +10:00
Petr Špaček
f0574ed0d1 [9.18] chg: ci: Log packages, test AlmaLinux 9
Backport of MR !10799

Merge branch 'backport-pspacek/ci-platforms-and-logging-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10807
2025-07-31 12:22:24 +00:00
Petr Špaček
1a16a131d7 Log all installed system packages and Python libraries before build
(cherry picked from commit e702e09143)
2025-07-31 12:22:08 +00:00
Petr Špaček
1bae223a63 Run MR pipelines also on AlmaLinux 9
Turns out Python version there is older than elsewhere.

(cherry picked from commit 8c71989a45)
2025-07-31 12:22:08 +00:00