]> git.ipfire.org Git - thirdparty/bind9.git/log
thirdparty/bind9.git
22 months agoFix "make doc" for the changelog
Michał Kępień [Fri, 9 Aug 2024 07:12:18 +0000 (09:12 +0200)] 
Fix "make doc" for the changelog

22 months agoTweak and reword release notes
Michał Kępień [Fri, 9 Aug 2024 07:12:18 +0000 (09:12 +0200)] 
Tweak and reword release notes

22 months agoGenerate release documentation
Michał Kępień [Fri, 9 Aug 2024 07:12:18 +0000 (09:12 +0200)] 
Generate release documentation

22 months agofix: dev: Don't skip the counting if fcount_incr() is called with force==true (v2)
Ondřej Surý [Tue, 13 Aug 2024 13:53:13 +0000 (13:53 +0000)] 
fix: dev: Don't skip the counting if fcount_incr() is called with force==true (v2)

The fcount_incr() was not increasing counter->count when force was set
to true, but fcount_decr() would try to decrease the counter leading to
underflow and assertion failure.  Swap the order of the arguments in the
condition, so the !force is evaluated after incrementing the .count.

Closes #4846

Merge branch '4786-forced-fcount_incr-should-still-increment-count-and-allowed-fix' into 'main'

Closes #4846

See merge request isc-projects/bind9!9298

22 months agoAdd fetches-per-zone 40 to qmin/ns5 configuration
Ondřej Surý [Tue, 13 Aug 2024 12:56:06 +0000 (14:56 +0200)] 
Add fetches-per-zone 40 to qmin/ns5 configuration

The simple change causes assertion failure fixed in the previous commit.

22 months agoDon't skip the counting if fcount_incr() is called with force==true (v2)
Ondřej Surý [Tue, 13 Aug 2024 10:48:23 +0000 (12:48 +0200)] 
Don't skip the counting if fcount_incr() is called with force==true (v2)

The fcount_incr() was not increasing counter->count when force was set
to true, but fcount_decr() would try to decrease the counter leading to
underflow and assertion failure.  Swap the order of the arguments in the
condition, so the !force is evaluated after incrementing the .count.

23 months agochg: Make every changelog entry a separate code block
Michal Nowak [Thu, 8 Aug 2024 14:25:12 +0000 (14:25 +0000)] 
chg: Make every changelog entry a separate code block

LaTeX in CI and on ReadTheDocs [fails][1] to render a PDF version of ARM if
the Changelog section is included. The running theory is that the
verbatim section of more than twenty thousand lines is too big to meet
LaTeX self-imposed constraints, and it fails with:

    ! TeX capacity exceeded, sorry [main memory size=5000000].

Or it just hangs if extra_mem_bot=30000000 is set in
/etc/texmf/texmf.d/01main_memory_bump.cnf:

    ! Dimension too large.
    \fb@put@frame ...p \ifdim \dimen@ >\ht \@tempboxa

    \fb@putboxa #1\fb@afterfra...
    l.56913 \end{sphinxVerbatim}

Make each BIND 9 release a separate code block to work around the issue.
Further split up the sections for some exceptionally large releases, for
the same reason.

[1]: https://gitlab.isc.org/isc-projects/bind9/-/jobs/4584011

Merge branch 'mnowak/fix-arm-changelog-section' into 'main'

See merge request isc-projects/bind9!9266

23 months agoSplit up changelog into per-release code blocks
Michal Nowak [Wed, 7 Aug 2024 10:39:23 +0000 (12:39 +0200)] 
Split up changelog into per-release code blocks

LaTeX in CI and on ReadTheDocs fails to render a PDF version of ARM if
the Changelog section is included. The running theory is that the
verbatim section of more than twenty thousand lines is too big to meet
LaTeX self-imposed constraints, and it fails with:

    ! TeX capacity exceeded, sorry [main memory size=5000000].

Or it just hangs if extra_mem_bot=30000000 is set in
/etc/texmf/texmf.d/01main_memory_bump.cnf:

    ! Dimension too large.
    \fb@put@frame ...p \ifdim \dimen@ >\ht \@tempboxa

    \fb@putboxa #1\fb@afterfra...
    l.56913 \end{sphinxVerbatim}

Make each BIND 9 release a separate code block to work around the issue.
Further split up the sections for some exceptionally large releases, for
the same reason.

23 months agofix: dev: Move the dst__openssl_toresult to isc_tls unit
Michał Kępień [Thu, 8 Aug 2024 11:01:21 +0000 (11:01 +0000)] 
fix: dev: Move the dst__openssl_toresult to isc_tls unit

Since the enable_fips_mode() now resides inside the isc_tls unit, BIND 9
would fail to compile when FIPS mode was enabled as the DST subsystem
logging functions were missing.

Move the crypto library logging functions from the openssl_link unit to
isc_tls unit and enhance it, so it can now be used from both places
keeping the old dst__openssl_toresult* macros alive.

Merge branch 'ondrej/move-openssl-logging-to-isc_tls-unit' into 'main'

See merge request isc-projects/bind9!9286

23 months agoMove the dst__openssl_toresult to isc_tls unit
Ondřej Surý [Thu, 8 Aug 2024 08:59:49 +0000 (10:59 +0200)] 
Move the dst__openssl_toresult to isc_tls unit

Since the enable_fips_mode() now resides inside the isc_tls unit, BIND 9
would fail to compile when FIPS mode was enabled as the DST subsystem
logging functions were missing.

Move the crypto library logging functions from the openssl_link unit to
isc_tls unit and enhance it, so it can now be used from both places
keeping the old dst__openssl_toresult* macros alive.

23 months agonew: usr: Tighten 'max-recursion-queries' and add 'max-query-restarts' option
Evan Hunt [Wed, 7 Aug 2024 21:12:07 +0000 (21:12 +0000)] 
new: usr: Tighten 'max-recursion-queries' and add 'max-query-restarts' option

There were cases in resolver.c when the `max-recursion-queries` quota was ineffective. It was possible to craft zones that would cause a resolver to waste resources by sending excessive queries while attempting to resolve a name. This has been addressed by correcting errors in the implementation of `max-recursion-queries`, and by reducing the default value from 100 to 32.

In addition, a new `max-query-restarts` option has been added which limits the number of times a recursive server will follow CNAME or DNAME records before terminating resolution. This was previously a hard-coded limit of 16, and now defaults to 11.

Closes #4741

Merge branch '4741-reclimit-restarts' into 'main'

Closes #4741

See merge request isc-projects/bind9!9281

23 months agoadd +restarts and +maxqueries options to delv
Evan Hunt [Wed, 26 Jun 2024 01:48:18 +0000 (18:48 -0700)] 
add +restarts and +maxqueries options to delv

max-query-restarts and max-recursion-queries values can now be set
on the command line in delv for testing purposes.

23 months agoimplement 'max-query-restarts'
Evan Hunt [Wed, 26 Jun 2024 06:49:00 +0000 (23:49 -0700)] 
implement 'max-query-restarts'

implement, document, and test the 'max-query-restarts' option
which specifies the query restart limit - the number of times
we can follow CNAMEs before terminating resolution.

23 months agoreduce the max-recursion-queries default to 32
Evan Hunt [Tue, 25 Jun 2024 21:39:58 +0000 (14:39 -0700)] 
reduce the max-recursion-queries default to 32

the number of iterative queries that can be sent to resolve a
name now defaults to 32 rather than 100.

23 months agomake "max_restarts" a configurable value
Evan Hunt [Tue, 25 Jun 2024 21:30:20 +0000 (14:30 -0700)] 
make "max_restarts" a configurable value

MAX_RESTARTS is no longer hard-coded; ns_server_setmaxrestarts()
and dns_client_setmaxrestarts() can now be used to modify the
max-restarts value at runtime. in both cases, the default is 11.

23 months agoreduce MAX_RESTARTS to 11
Evan Hunt [Tue, 25 Jun 2024 19:28:23 +0000 (12:28 -0700)] 
reduce MAX_RESTARTS to 11

the number of steps that can be followed in a CNAME chain
before terminating the lookup has been reduced from 16 to 11.
(this is a hard-coded value, but will be made configurable later.)

23 months agoadd debug logging when creating or attaching to a query counter
Evan Hunt [Tue, 25 Jun 2024 18:02:49 +0000 (11:02 -0700)] 
add debug logging when creating or attaching to a query counter

fctx_create() now logs at debug level 9 when the fctx attaches
to an existing counter or creates a new one.

23 months agoapply max-recursion-queries quota to validator queries
Evan Hunt [Wed, 22 May 2024 22:17:47 +0000 (15:17 -0700)] 
apply max-recursion-queries quota to validator queries

previously, validator queries for DNSKEY and DS records were
not counted toward the quota for max-recursion-queries; they
are now.

23 months agoattach query counter to NS fetches
Evan Hunt [Wed, 22 May 2024 20:02:16 +0000 (13:02 -0700)] 
attach query counter to NS fetches

there were cases in resolver.c when queries for NS records were
started without passing a pointer to the parent fetch's query counter;
as a result, the max-recursion-queries quota for those queries started
counting from zero, instead of sharing the limit for the parent fetch,
making the quota ineffective in some cases.

23 months agochg: dev: use only c23 or c11 noreturn specifiers
Aydın Mercan [Wed, 7 Aug 2024 15:42:57 +0000 (15:42 +0000)] 
chg: dev: use only c23 or c11 noreturn specifiers

Use `[[noreturn]]` when compiling with C23 or greater.

The attribute macro name has been capitalized as `NORETURN` as defining it as `noreturn` breaks external headers.
`#define noreturn __attribute__((noreturn))` wasn't used as C11's `stdnoreturn.h`/`_Noreturn` is required to build BIND9 in the first place.

Merge branch 'aydin/noreturn-c23' into 'main'

See merge request isc-projects/bind9!9149

23 months agouse only c23 or c11 noreturn specifiers
Aydın Mercan [Thu, 11 Jul 2024 13:15:40 +0000 (16:15 +0300)] 
use only c23 or c11 noreturn specifiers

Since we require C11 or greater, we can depend on using either _Noreturn
or [[noreturn]].

23 months agochg: dev: Initialize the DST subsystem implicitly
Ondřej Surý [Wed, 7 Aug 2024 15:05:13 +0000 (15:05 +0000)] 
chg: dev: Initialize the DST subsystem implicitly

Instead of calling dst_lib_init() and dst_lib_destroy() explicitly by
all the programs, create a separate memory context for the DST subsystem
and use the library constructor and destructor to initialize the DST
internals.

Merge branch 'ondrej/move-dst_lib_init-and-destroy-to-lib-ctor-dtor' into 'main'

See merge request isc-projects/bind9!9254

23 months agoInitialize the DST subsystem implicitly
Ondřej Surý [Mon, 5 Aug 2024 10:14:26 +0000 (12:14 +0200)] 
Initialize the DST subsystem implicitly

Instead of calling dst_lib_init() and dst_lib_destroy() explicitly by
all the programs, create a separate memory context for the DST subsystem
and use the library constructor and destructor to initialize the DST
internals.

23 months agochg: test: Use new images with TSAN-enabled libraries
Ondřej Surý [Wed, 7 Aug 2024 14:28:13 +0000 (14:28 +0000)] 
chg: test: Use new images with TSAN-enabled libraries

The new Fedora 40 TSAN images use libuv, urcu and OpenSSL libraries compiled with ThreadSanitizer.  This (in theory) should enable better detection of memory races in those (most important) libraries.

Merge branch 'ondrej/test-new-tsan-images' into 'main'

See merge request isc-projects/bind9!9264

23 months agoAdd configure for libraries in /usr/local for the gcc:tsan job
Ondřej Surý [Tue, 6 Aug 2024 14:01:54 +0000 (16:01 +0200)] 
Add configure for libraries in /usr/local for the gcc:tsan job

The TSAN-enabled libraries are installed to /usr/local, pass the
PKG_CONFIG_PATH and few other options to CFLAGS to the configure
arguments.

23 months agofix: dev: Disassociate the SSL object from the cached SSL_SESSION
Ondřej Surý [Wed, 7 Aug 2024 14:26:22 +0000 (14:26 +0000)] 
fix: dev: Disassociate the SSL object from the cached SSL_SESSION

When the SSL object was destroyed, it would invalidate all SSL_SESSION
objects including the cached, but not yet used, TLS session objects.

Properly disassociate the SSL object from the SSL_SESSION before we
store it in the TLS session cache, so we can later destroy it without
invalidating the cached TLS sessions.

Closes #4834

Merge branch '4834-detach-SSL-from-cached-SSL_SESSION' into 'main'

Closes #4834

See merge request isc-projects/bind9!9271

23 months agoDisassociate the SSL object from the cached SSL_SESSION
Ondřej Surý [Wed, 7 Aug 2024 12:58:02 +0000 (14:58 +0200)] 
Disassociate the SSL object from the cached SSL_SESSION

When the SSL object was destroyed, it would invalidate all SSL_SESSION
objects including the cached, but not yet used, TLS session objects.

Properly disassociate the SSL object from the SSL_SESSION before we
store it in the TLS session cache, so we can later destroy it without
invalidating the cached TLS sessions.

Co-authored-by: Ondřej Surý <ondrej@isc.org>
Co-authored-by: Artem Boldariev <artem@isc.org>
Co-authored-by: Aram Sargsyan <aram@isc.org>
23 months agofix: dev: Attach/detach to the listening child socket when accepting TLS
Ondřej Surý [Wed, 7 Aug 2024 14:17:50 +0000 (14:17 +0000)] 
fix: dev: Attach/detach to the listening child socket when accepting TLS

When TLS connection (TLSstream) connection was accepted, the children
listening socket was not attached to sock->server and thus it could have
been freed before all the accepted connections were actually closed.

In turn, this would cause us to call isc_tls_free() too soon - causing
cascade errors in pending SSL_read_ex() in the accepted connections.

Properly attach and detach the children listening socket when accepting
and closing the server connections.

Closes #4833

Merge branch '4833-tlssock-needs-to-attach-to-child-tlslistener' into 'main'

Closes #4833

See merge request isc-projects/bind9!9270

23 months agoAttach/detach to the listening child socket when accepting TLS
Ondřej Surý [Wed, 7 Aug 2024 06:43:12 +0000 (08:43 +0200)] 
Attach/detach to the listening child socket when accepting TLS

When TLS connection (TLSstream) connection was accepted, the children
listening socket was not attached to sock->server and thus it could have
been freed before all the accepted connections were actually closed.

In turn, this would cause us to call isc_tls_free() too soon - causing
cascade errors in pending SSL_read_ex() in the accepted connections.

Properly attach and detach the children listening socket when accepting
and closing the server connections.

23 months agofix: pkg: Fix --enable-tracing build on systems without dtrace
Petr Špaček [Wed, 7 Aug 2024 13:53:29 +0000 (13:53 +0000)] 
fix: pkg: Fix --enable-tracing build on systems without dtrace

Missing file util/dtrace.sh prevented builds on system without dtrace utility.
This has been corrected.

Fixes: #4835
Merge branch 'pspacek/gitattribute-fixes' into 'main'

Closes #4835

See merge request isc-projects/bind9!9262

23 months agoInclude util/dtrace.sh in tarballs
Petr Špaček [Tue, 6 Aug 2024 09:42:34 +0000 (11:42 +0200)] 
Include util/dtrace.sh in tarballs

23 months agoRemove obsolete reference to mksymtbl.pl
Petr Špaček [Tue, 6 Aug 2024 09:41:03 +0000 (11:41 +0200)] 
Remove obsolete reference to mksymtbl.pl

This was a leftover from commit c463808992abd450d5469befe9f7e67b4732cb1b

23 months agofix: dev: Make hypothesis optional for system tests
Petr Špaček [Wed, 7 Aug 2024 10:55:21 +0000 (10:55 +0000)] 
fix: dev: Make hypothesis optional for system tests

Ensure that system tests can be executed without Python hypothesis
package.

Closes #4831

Merge branch '4831-isctest-make-hypothesis-optional' into 'main'

Closes #4831

See merge request isc-projects/bind9!9265

23 months agoMake hypothesis optional for system tests
Nicki Křížek [Tue, 6 Aug 2024 15:14:21 +0000 (17:14 +0200)] 
Make hypothesis optional for system tests

Ensure that system tests can be executed without Python hypothesis
package.

23 months agofix: usr: Dig now reports missing query section for opcode QUERY
Mark Andrews [Wed, 7 Aug 2024 02:20:22 +0000 (02:20 +0000)] 
fix: usr: Dig now reports missing query section for opcode QUERY

Query responses should contain the question section with some exceptions.  Dig was not reporting this.

Closes #4808

Merge branch '4808-have-dig-report-missing-question-section-in-axfr-response' into 'main'

Closes #4808

See merge request isc-projects/bind9!9233

23 months agoDig now reports a missing question section
Mark Andrews [Mon, 5 Aug 2024 05:09:27 +0000 (15:09 +1000)] 
Dig now reports a missing question section

The question section should be present in the first AXFR/IXFR
response and in other QUERY responses unless no question was sent.
Issue a warning if the question section is not present.

23 months agochg: usr: Remove OpenSSL 1.x Engine support
Ondřej Surý [Tue, 6 Aug 2024 14:04:56 +0000 (14:04 +0000)] 
chg: usr: Remove OpenSSL 1.x Engine support

The OpenSSL 1.x Engines support has been deprecated in the OpenSSL 3.x
and is going to be removed from the upstream OpenSSL.  Remove the OpenSSL
Engine support from BIND 9 in favor of OpenSSL 3.x Providers.

Closes #4828

Merge branch '4828-remove-OpenSSL-engine-support' into 'main'

Closes #4828

See merge request isc-projects/bind9!9252

23 months agoAlways use OpenSSL_version() to print OpenSSL version
Ondřej Surý [Tue, 6 Aug 2024 09:22:05 +0000 (11:22 +0200)] 
Always use OpenSSL_version() to print OpenSSL version

OpenSSL_version() first appeared in OpenSSL 1.1.0 and have been
available since LibreSSL 2.7.1 and OpenBSD 6.3, thus we can remove the
compatibility shims with older versions that are not supported anymore.

23 months agoRemove checks for OPENSSL_API_LEVEL define
Ondřej Surý [Tue, 6 Aug 2024 09:20:23 +0000 (11:20 +0200)] 
Remove checks for OPENSSL_API_LEVEL define

Since the support for OpenSSL Engines has been removed, we can now also
remove the checks for OPENSSL_API_LEVEL; The OpenSSL 3.x APIs will be
used when compiling with OpenSSL 3.x, and OpenSSL 1.1.xx APIs will be
used only when OpenSSL 1.1.x is used.

23 months agoRemove OpenSSL Engine support
Ondřej Surý [Mon, 5 Aug 2024 09:40:42 +0000 (11:40 +0200)] 
Remove OpenSSL Engine support

The OpenSSL 1.x Engines support has been deprecated in the OpenSSL 3.x
and is going to be removed.  Remove the OpenSSL Engine support in favor
of OpenSSL Providers.

23 months agofix: Move matching isc_mem_destroy() outside of ifdef
Ondřej Surý [Mon, 5 Aug 2024 16:54:02 +0000 (16:54 +0000)] 
fix: Move matching isc_mem_destroy() outside of ifdef

The isc_mem_create() in printversion() was created outside of an #ifdef
HAVE_GEOIP, but destroyed inside the #ifdef; move it to the outside of
the #ifdef where it belongs.

This is really a nit as we immediately exit() after printing the
versions, but I found it and it would bug me for the rest of my life.

Merge branch 'ondrej/fix-missing-isc_mem_destroy-in-printversion' into 'main'

See merge request isc-projects/bind9!9255

23 months agoMove matching isc_mem_destroy() outside of ifdef alessio/regression/2ebcafd8c2
Ondřej Surý [Mon, 5 Aug 2024 13:55:53 +0000 (15:55 +0200)] 
Move matching isc_mem_destroy() outside of ifdef

The isc_mem_create() in printversion() was created outside of an #ifdef
HAVE_GEOIP, but destroyed inside the #ifdef; move it to the outside of
the #ifdef where it belongs.

This is really a nit as we immediately exit() after printing the
versions, but I found it and it would bug me for the rest of my life.

23 months agofix: usr: Fix assertion failure in the glue cache alessio/regression/227add4c3e
Ondřej Surý [Mon, 5 Aug 2024 14:24:14 +0000 (14:24 +0000)] 
fix: usr: Fix assertion failure in the glue cache

Fix an assertion failure that could happen as a result of data race between free_gluetable() and addglue() on the same headers.

Closes #4691

Merge branch '4691-fix-data-race-between-free_gluetable-and-addglue' into 'main'

Closes #4691

See merge request isc-projects/bind9!9126

23 months agofix: dev: don't use 'create' flag unnecessarily in findnode() alessio/regression/a26055f03e
Ondřej Surý [Mon, 5 Aug 2024 13:36:54 +0000 (13:36 +0000)] 
fix: dev: don't use 'create' flag unnecessarily in findnode()

when searching the cache for a node so that we can delete an rdataset, it isn't necessary to set the 'create' flag. if the
node doesn't exist yet, we won't be able to delete anything from it anyway.

Merge branch 'each-minor-findnode-refactor' into 'main'

See merge request isc-projects/bind9!9158

23 months agoFix the glue table in the QP and RBT zone databases
Ondřej Surý [Thu, 4 Jul 2024 08:07:18 +0000 (10:07 +0200)] 
Fix the glue table in the QP and RBT zone databases

When adding glue to the header, we add header to the wait-free stack to
be cleaned up later which sets wfc_node->next to non-NULL value.  When
the actual cleaning happens we would only cleanup the .glue_list, but
since the database isn't locked for the time being, the headers could be
reused while cleaning the existing glue entries, which creates a data
race between database versions.

Revert the code back to use per-database-version hashtable where keys
are the node pointers.  This allows each database version to have
independent glue cache table that doesn't affect nodes or headers that
could already "belong" to the future database version.

23 months agominor findnode optimization
Evan Hunt [Fri, 12 Jul 2024 21:06:20 +0000 (14:06 -0700)] 
minor findnode optimization

when searching the cache for a node so that we can delete an
rdataset, it is not necessary to set the 'create' flag. if the
node doesn't exist yet, we then we won't be able to delete
anything from it anyway.

23 months agochg: Clean up calls to dns_difftuple_create()
Ondřej Surý [Mon, 5 Aug 2024 13:31:46 +0000 (13:31 +0000)] 
chg: Clean up calls to dns_difftuple_create()

dns_difftuple_create() could only return success, so change
its type to void and clean up all the calls to it.

Merge branch 'each-difftuple-create-cannot-fail' into 'main'

See merge request isc-projects/bind9!9151

23 months agodns_difftuple_create() cannot fail
Evan Hunt [Fri, 12 Jul 2024 00:00:38 +0000 (17:00 -0700)] 
dns_difftuple_create() cannot fail

dns_difftuple_create() could only return success, so change
its type to void and clean up all the calls to it.

other functions that only returned a result value because of it
have been cleaned up in the same way.

23 months agofix: usr: Raise the log level of priming failures
Ondřej Surý [Mon, 5 Aug 2024 13:02:41 +0000 (13:02 +0000)] 
fix: usr: Raise the log level of priming failures

When a priming query is complete, it's currently logged at level ISC_LOG_DEBUG(1), regardless of success or failure. We are now raising it to ISC_LOG_NOTICE in the case of failure. [GL #3516]

Closes #3516

Merge branch '3516-log-priming-errors' into 'main'

Closes #3516

See merge request isc-projects/bind9!9121

23 months agoraise the log level of priming failures
Evan Hunt [Mon, 1 Jul 2024 20:00:04 +0000 (13:00 -0700)] 
raise the log level of priming failures

when a priming query is complete, it's currently logged at
level ISC_LOG_DEBUG(1), regardless of success or failure. we
are now raising it to ISC_LOG_NOTICE in the case of failure.

23 months agochg: dev: fix the rsa exponent to 65537
Ondřej Surý [Mon, 5 Aug 2024 11:22:32 +0000 (11:22 +0000)] 
chg: dev: fix the rsa exponent to 65537

There isn't a realistic reason to ever use e = 4294967297. Fortunately
its codepath wasn't reachable to users and can be safetly removed.

Keep in mind the `dns_key_generate` header comment was outdated. e = 3
hasn't been used since 2006 so there isn't a reason to panic. The
toggle was the public exponents between 65537 and 4294967297.

Merge branch 'aydin/rsa-cleanup' into 'main'

See merge request isc-projects/bind9!9133

23 months agofix the rsa exponent to 65537
Aydın Mercan [Tue, 9 Jul 2024 13:32:51 +0000 (16:32 +0300)] 
fix the rsa exponent to 65537

There isn't a realistic reason to ever use e = 4294967297. Fortunately
its codepath wasn't reachable to users and can be safetly removed.

Keep in mind the `dns_key_generate` header comment was outdated. e = 3
hasn't been used since 2006 so there isn't a reason to panic. The
toggle was the public exponents between 65537 and 4294967297.

23 months agochg: dev: remove the crc64 implementation
Ondřej Surý [Mon, 5 Aug 2024 11:21:38 +0000 (11:21 +0000)] 
chg: dev: remove the crc64 implementation

CRC-64 has been added for map files. Now that the map file format has
been removed, there isn't a reason to keep the implementation.

Merge branch 'aydin/cleanup-crc' into 'main'

See merge request isc-projects/bind9!9135

23 months agoremove the crc64 implementation
Aydın Mercan [Wed, 10 Jul 2024 11:49:20 +0000 (14:49 +0300)] 
remove the crc64 implementation

CRC-64 has been added for map files. Now that the map file format has
been removed, there isn't a reason to keep the implementation.

23 months agochg: dev: call rcu_barrier() in the isc_mem_destroy() just once
Ondřej Surý [Mon, 5 Aug 2024 10:24:53 +0000 (10:24 +0000)] 
chg: dev: call rcu_barrier() in the isc_mem_destroy() just once

The previous work in this area was led by the belief that we might be
calling call_rcu() from within call_rcu() callbacks.  After carefully
checking all the current callback, it became evident that this is not
the case and the problem isn't enough rcu_barrier() calls, but something
entirely else.

Call the rcu_barrier() just once as that's enough and the multiple
rcu_barrier() calls will not hide the real problem anymore, so we can
find it.

Merge branch '4607-call-a-single-rcu_barrier' into 'main'

See merge request isc-projects/bind9!9134

23 months agoCall rcu_barrier() in the isc_mem_destroy() just once
Ondřej Surý [Wed, 10 Jul 2024 16:50:33 +0000 (18:50 +0200)] 
Call rcu_barrier() in the isc_mem_destroy() just once

The previous work in this area was led by the belief that we might be
calling call_rcu() from within call_rcu() callbacks.  After carefully
checking all the current callback, it became evident that this is not
the case and the problem isn't enough rcu_barrier() calls, but something
entirely else.

Call the rcu_barrier() just once as that's enough and the multiple
rcu_barrier() calls will not hide the real problem anymore, so we can
find it.

23 months agochg: usr: require at least OpenSSL 1.1.1
Ondřej Surý [Mon, 5 Aug 2024 10:24:23 +0000 (10:24 +0000)] 
chg: usr: require at least OpenSSL 1.1.1

OpenSSL 1.1.1 or better (or equivalent LibreSSL version) is now required to compile BIND 9.

Closes #2806

Merge branch '2806-remove-ax_check_openssl' into 'main'

Closes #2806

See merge request isc-projects/bind9!9110

23 months agoRemove no longer needed OpenSSL shims and checks
Ondřej Surý [Mon, 1 Jul 2024 09:05:18 +0000 (11:05 +0200)] 
Remove no longer needed OpenSSL shims and checks

Since the minimal OpenSSL version is now OpenSSL 1.1.1, remove all kind
of OpenSSL shims and checks for functions that are now always present in
the OpenSSL libraries.

Co-authored-by: Ondřej Surý <ondrej@isc.org>
Co-authored-by: Aydın Mercan <aydin@isc.org>
23 months agoRemove AX_CHECK_OPENSSL macro
Ondřej Surý [Thu, 2 Sep 2021 11:24:46 +0000 (13:24 +0200)] 
Remove AX_CHECK_OPENSSL macro

OpenSSL supports pkg-config method since the 0.9.8 version and we
already require pkg-config for other mandatory libraries.  Also
the way the AX_CHECK_OPENSSL macro was integrated into the configure
script was confusing - the macro would be used only if the libcrypto.pc
and libssl.pc file are not usable, so calling ./configure
--with-openssl=/usr/local would have no effect when PKG_CHECK_MODULES
would be successful.

23 months agoBump the minimal OpenSSL version to 1.1.1
Ondřej Surý [Thu, 2 Sep 2021 11:24:46 +0000 (13:24 +0200)] 
Bump the minimal OpenSSL version to 1.1.1

As BIND 9.20 does not support RHEL/CentOS 7 which just reach
end-of-life, we can safely bump the OpenSSL requirements to version
1.1.1, which in turn will allow us to simplify our OpenSSL integration.

23 months agofix: usr: Fix assertion failure when checking named-checkconf version
Ondřej Surý [Mon, 5 Aug 2024 10:16:39 +0000 (10:16 +0000)] 
fix: usr: Fix assertion failure when checking named-checkconf version

Checking the version of `named-checkconf` would end with assertion failure.  This has been fixed.

Closes #4827

Merge branch '4827-cleanup-dst-only-if-initialized' into 'main'

Closes #4827

See merge request isc-projects/bind9!9243

23 months agoFix assertion failure when checking named-checkconf version
Ondřej Surý [Mon, 5 Aug 2024 08:24:37 +0000 (10:24 +0200)] 
Fix assertion failure when checking named-checkconf version

The dst_lib_destroy() should be called only if dst_lib_init() was called
before.  In named-checkconf, that is guarded by dst_cleanup variable
that was erroneously set to true by default.  Set the dst_cleanup to
'false' by default.

23 months agofix: usr: Valid TSIG signatures with invalid time cause crash
Ondřej Surý [Mon, 5 Aug 2024 09:40:10 +0000 (09:40 +0000)] 
fix: usr: Valid TSIG signatures with invalid time cause crash

An assertion failure triggers when the TSIG has valid cryptographic signature, but the time is invalid. This can happen when the times between the primary and secondary servers are not synchronised.

Closes #4811

Merge branch '4811-fix-isc_buffer_putuint48-buffer-size-requirement' into 'main'

Closes #4811

See merge request isc-projects/bind9!9234

23 months agoAdd a system test that sends TSIG with bad time
Ondřej Surý [Fri, 26 Jul 2024 00:21:39 +0000 (02:21 +0200)] 
Add a system test that sends TSIG with bad time

Add a system test that sets TSIG fudge to 0, waits three seconds and
then sends signed message to the server.  This tests the path where the
time difference between the client and the server is outside of the TSIG
fudge value.

23 months agoAdd tsig unit test for bad time and bad signatures
Ondřej Surý [Fri, 26 Jul 2024 00:05:43 +0000 (02:05 +0200)] 
Add tsig unit test for bad time and bad signatures

The tsig unit test was only testing if everything went ok, but it was
not testing whether the error paths work.  Add two more unit tests - one
uses the time outside of the TSIG skew, and the second trashes the
signature with random data.

23 months agoFix the assertion failure when putting 48-bit number to buffer
Ondřej Surý [Thu, 25 Jul 2024 18:30:03 +0000 (20:30 +0200)] 
Fix the assertion failure when putting 48-bit number to buffer

When putting the 48-bit number into a fixed-size buffer that's exactly 6
bytes, the assertion failure would occur as the 48-bit number is
internally represented as 64-bit number and the code was checking if
there is enough space for `sizeof(val)`.  This causes assertion failure
when otherwise valid TSIG signature has a bad timing information.

Specify the size of the argument explicitly, so the 48-bit number
doesn't require 8-byte long buffer.

23 months agofix: dev: Don't skip the counting if fcount_incr() is called with force==true alessio/regression/026024a6ae
Ondřej Surý [Mon, 5 Aug 2024 07:36:10 +0000 (07:36 +0000)] 
fix: dev: Don't skip the counting if fcount_incr() is called with force==true

The fcount_incr() was incorrectly skipping the accounting for the
fetches-per-zone if the force argument was set to true.  We want to skip
the accounting only when the fetches-per-zone is completely disabled,
but for individual names we need to do the accounting even if we are
forcing the result to be success.

Closes #4786

Merge branch '4786-forced-fcount_incr-should-still-increment-count-and-allowed' into 'main'

Closes #4786

See merge request isc-projects/bind9!9115

23 months agoDon't skip the counting if fcount_incr() is called with force==true
Ondřej Surý [Thu, 20 Jun 2024 16:59:56 +0000 (18:59 +0200)] 
Don't skip the counting if fcount_incr() is called with force==true

The fcount_incr() was incorrectly skipping the accounting for the
fetches-per-zone if the force argument was set to true.  We want to skip
the accounting only when the fetches-per-zone is completely disabled,
but for individual names we need to do the accounting even if we are
forcing the result to be success.

23 months agofix: test: Use LC_ALL to override all system locales
Ondřej Surý [Mon, 5 Aug 2024 07:33:02 +0000 (07:33 +0000)] 
fix: test: Use LC_ALL to override all system locales

The system tests were overriding the local locale by setting LANG to C.
This does not override the locale in case there are individual LC_<*>
variables like LC_CTYPE explicitly set.

Use LC_ALL=C instead which is the proper way of overriding all currently
set locales.

Merge branch 'ondrej/use-LC_ALL-not-LANG' into 'main'

See merge request isc-projects/bind9!9109

23 months agoUse LC_ALL to override all system locales
Ondřej Surý [Tue, 18 Jun 2024 06:56:18 +0000 (08:56 +0200)] 
Use LC_ALL to override all system locales

The system tests were overriding the local locale by setting LANG to C.
This does not override the locale in case there are individual LC_<*>
variables like LC_CTYPE explicitly set.

Use LC_ALL=C instead which is the proper way of overriding all currently
set locales.

23 months agofix: dev: Remove superfluous memset() in isc_nmsocket_init()
Ondřej Surý [Mon, 5 Aug 2024 07:32:39 +0000 (07:32 +0000)] 
fix: dev: Remove superfluous memset() in isc_nmsocket_init()

The tlsstream part of the isc_nmsocket_t gets initialized via designater
initializer and doesn't need the extra memset() later; just remove it.

Merge branch 'ondrej/remove-superfluous-memset-in-isc_nmsocket_init' into 'main'

See merge request isc-projects/bind9!9120

23 months agoRemove superfluous memset() in isc_nmsocket_init()
Ondřej Surý [Mon, 1 Jul 2024 15:49:27 +0000 (17:49 +0200)] 
Remove superfluous memset() in isc_nmsocket_init()

The tlsstream part of the isc_nmsocket_t gets initialized via designater
initializer and doesn't need the extra memset() later; just remove it.

23 months agofix: dev: Fix PTHREAD_MUTEX_ADAPTIVE_NP and PTHREAD_MUTEX_ERRORCHECK_NP usage
Ondřej Surý [Mon, 5 Aug 2024 07:31:54 +0000 (07:31 +0000)] 
fix: dev: Fix PTHREAD_MUTEX_ADAPTIVE_NP and PTHREAD_MUTEX_ERRORCHECK_NP usage

The PTHREAD_MUTEX_ADAPTIVE_NP and PTHREAD_MUTEX_ERRORCHECK_NP are
usually not defines, but enum values, so simple preprocessor check
doesn't work.

Check for PTHREAD_MUTEX_ADAPTIVE_NP from the autoconf AS_COMPILE_IFELSE
block and define HAVE_PTHREAD_MUTEX_ADAPTIVE_NP.  This should enable
adaptive mutex on Linux and FreeBSD.

As PTHREAD_MUTEX_ERRORCHECK actually comes from POSIX and Linux glibc
does define it when compatibility macros are being set, we can just use
PTHREAD_MUTEX_ERRORCHECK instead of PTHREAD_MUTEX_ERRORCHECK_NP.

Merge branch 'ondrej/fix-adaptive-mutex-use' into 'main'

See merge request isc-projects/bind9!9111

23 months agoFix PTHREAD_MUTEX_ADAPTIVE_NP and PTHREAD_MUTEX_ERRORCHECK_NP usage
Ondřej Surý [Tue, 18 Jun 2024 13:21:52 +0000 (15:21 +0200)] 
Fix PTHREAD_MUTEX_ADAPTIVE_NP and PTHREAD_MUTEX_ERRORCHECK_NP usage

The PTHREAD_MUTEX_ADAPTIVE_NP and PTHREAD_MUTEX_ERRORCHECK_NP are
usually not defines, but enum values, so simple preprocessor check
doesn't work.

Check for PTHREAD_MUTEX_ADAPTIVE_NP from the autoconf AS_COMPILE_IFELSE
block and define HAVE_PTHREAD_MUTEX_ADAPTIVE_NP.  This should enable
adaptive mutex on Linux and FreeBSD.

As PTHREAD_MUTEX_ERRORCHECK actually comes from POSIX and Linux glibc
does define it when compatibility macros are being set, we can just use
PTHREAD_MUTEX_ERRORCHECK instead of PTHREAD_MUTEX_ERRORCHECK_NP.

23 months agoRemove ISC_MUTEX_INITIALIZER
Ondřej Surý [Tue, 18 Jun 2024 13:21:10 +0000 (15:21 +0200)] 
Remove ISC_MUTEX_INITIALIZER

It's hard to get it right on different platforms and it's unused
in BIND 9 anyway.

23 months agoRemove defunct --with-locktype configure option
Ondřej Surý [Tue, 18 Jun 2024 12:49:37 +0000 (14:49 +0200)] 
Remove defunct --with-locktype configure option

The --with-locktype configure option was no-op, so it was removed.

23 months agochg: dev: Don't open route socket if we don't need it
Ondřej Surý [Mon, 5 Aug 2024 07:31:20 +0000 (07:31 +0000)] 
chg: dev: Don't open route socket if we don't need it

When automatic-interface-scan is disabled, the route socket was still
being opened.  Add new API to connect / disconnect from the route socket
only as needed.

Additionally, move the block that disables periodic interface rescans to
a place where it actually have access to the configuration values.
Previously, the values were being checked before the configuration was
loaded.

Closes #4757

Merge branch '4757-dont-open-routing-socket-if-not-needed' into 'main'

Closes #4757

See merge request isc-projects/bind9!9122

23 months agoDon't open route socket if we don't need it
Ondřej Surý [Tue, 2 Jul 2024 07:22:54 +0000 (09:22 +0200)] 
Don't open route socket if we don't need it

When automatic-interface-scan is disabled, the route socket was still
being opened.  Add new API to connect / disconnect from the route socket
only as needed.

Additionally, move the block that disables periodic interface rescans to
a place where it actually have access to the configuration values.
Previously, the values were being checked before the configuration was
loaded.

23 months agochg: dev: Clarify that cds_wfcq_dequeue_blocking() doesn't block if empty
Ondřej Surý [Mon, 5 Aug 2024 07:30:41 +0000 (07:30 +0000)] 
chg: dev: Clarify that cds_wfcq_dequeue_blocking() doesn't block if empty

Merge branch 'ondrej/clarify-cds_wfcq_dequeue_blocking' into 'main'

See merge request isc-projects/bind9!9124

23 months agoClarify that cds_wfcq_dequeue_blocking() doesn't block if empty
Ondřej Surý [Wed, 3 Jul 2024 09:51:09 +0000 (11:51 +0200)] 
Clarify that cds_wfcq_dequeue_blocking() doesn't block if empty

23 months agofix: usr: Remove extra newline from yaml output
Mark Andrews [Mon, 5 Aug 2024 03:36:41 +0000 (03:36 +0000)] 
fix: usr: Remove extra newline from yaml output

I split this into two commits, one for the actual newline removal, and one for issues I found, ruining the yaml output when some errors were outputted.

Closes: #4772
Merge branch 'yaml-indent' into 'main'

Closes #4772

See merge request isc-projects/bind9!9112

23 months agoRemove newlines from dighost errors calls
Yedaya Katsman [Sun, 16 Jun 2024 20:10:28 +0000 (23:10 +0300)] 
Remove newlines from dighost errors calls

Not all invocations had it, and this makes it more consistent with
dighost_warning. Also remove the conditional newline when not outputting
yaml

23 months agoRemove extra newline from +yaml output
Yedaya Katsman [Sun, 16 Jun 2024 20:09:53 +0000 (23:09 +0300)] 
Remove extra newline from +yaml output

The newlines weren't needed for the yaml syntax, and took up space.

23 months agofix: dev: CID 498025 and CID 498031: Overflowed constant INTEGER_OVERFLOW
Mark Andrews [Sun, 4 Aug 2024 23:48:31 +0000 (23:48 +0000)] 
fix: dev: CID 498025 and CID 498031: Overflowed constant INTEGER_OVERFLOW

Add INSIST to fail if the multiplication would cause the variables to overflow.

Closes #4798

Merge branch '4798-cid-498025-and-cid-498031-overflowed-constant-integer_overflow' into 'main'

Closes #4798

See merge request isc-projects/bind9!9131

23 months agoPrevent overflow of bufsize
Mark Andrews [Tue, 9 Jul 2024 01:55:46 +0000 (11:55 +1000)] 
Prevent overflow of bufsize

If bufsize overflows we will have an infinite loop.  In practice
this will not happen unless we have made a coding error.  Add an
INSIST to detect this condition.

    181retry:
    182        isc_buffer_allocate(mctx, &b, bufsize);
    183        result = dns_rdata_totext(rdata, NULL, b);
    184        if (result == ISC_R_NOSPACE) {
    185                isc_buffer_free(&b);

    CID 498031: (#1 of 1): Overflowed constant (INTEGER_OVERFLOW)
    overflow_const: Expression bufsize, which is equal to 0, overflows
    the type that receives it, an unsigned integer 32 bits wide.
    186                bufsize *= 2;
    187                goto retry;
    188        }

23 months agoPrevent overflow of size
Mark Andrews [Tue, 9 Jul 2024 01:59:39 +0000 (11:59 +1000)] 
Prevent overflow of size

If size overflows we will have an infinite loop.  In practice
this will not happen unless we have made a coding error.  Add
an INSIST to detect this condition.

    181        while (!done) {
    182                isc_buffer_allocate(mctx, &b, size);
    183                result = dns_rdata_totext(rdata, NULL, b);
    184                if (result == ISC_R_SUCCESS) {
    185                        printf("%.*s\n", (int)isc_buffer_usedlength(b),
    186                               (char *)isc_buffer_base(b));
    187                        done = true;
    188                } else if (result != ISC_R_NOSPACE) {
    189                        check_result(result, "dns_rdata_totext");
    190                }
    191                isc_buffer_free(&b);

    CID 498025: (#1 of 1): Overflowed constant (INTEGER_OVERFLOW)
    overflow_const: Expression size, which is equal to 0, overflows the type that
    receives it, an unsigned integer 32 bits wide.
    192                size *= 2;
    193        }

23 months agonew: doc: Clarify how to print default dnssec-policy
Petr Špaček [Fri, 2 Aug 2024 08:25:23 +0000 (08:25 +0000)] 
new: doc: Clarify how to print default dnssec-policy

Merge branch 'pspacek/doc-dnssec-policy-default' into 'main'

See merge request isc-projects/bind9!9092

23 months agoClarify how to print default dnssec-policy
Petr Špaček [Fri, 7 Jun 2024 07:45:48 +0000 (09:45 +0200)] 
Clarify how to print default dnssec-policy

Reading the source tree is unnecessarily complicated, we now have
command line option to print defaults.

23 months agofix: dev: Remove unnecessary operations
Mark Andrews [Fri, 2 Aug 2024 06:34:08 +0000 (06:34 +0000)] 
fix: dev: Remove unnecessary operations

Decrementing optlen immediately before calling continue is unneccesary
and inconsistent with the rest of dns_message_pseudosectiontoyaml
and dns_message_pseudosectiontotext.  Coverity was also reporting
an impossible false positive overflow of optlen (CID 499061).

    4176                        } else if (optcode == DNS_OPT_CLIENT_TAG) {
    4177                                uint16_t id;
    4178                                ADD_STRING(target, "; CLIENT-TAG:");
    4179                                if (optlen == 2U) {
    4180                                        id = isc_buffer_getuint16(&optbuf);
    4181                                        snprintf(buf, sizeof(buf), " %u\n", id);
    4182                                        ADD_STRING(target, buf);

    CID 499061: (#1 of 1): Overflowed constant (INTEGER_OVERFLOW)
    overflow_const: Expression optlen, which is equal to 65534, underflows
    the type that receives it, an unsigned integer 16 bits wide.
    4183                                        optlen -= 2;
    4184                                        POST(optlen);
    4185                                        continue;
    4186                                }
    4187                        } else if (optcode == DNS_OPT_SERVER_TAG) {

Merge branch 'marka-remove-unnecessary-operations' into 'main'

See merge request isc-projects/bind9!9130

23 months agoRemove unnecessary operations
Mark Andrews [Tue, 9 Jul 2024 00:29:30 +0000 (10:29 +1000)] 
Remove unnecessary operations

Decrementing optlen immediately before calling continue is unneccesary
and inconsistent with the rest of dns_message_pseudosectiontoyaml
and dns_message_pseudosectiontotext.  Coverity was also reporting
an impossible false positive overflow of optlen (CID 499061).

    4176                        } else if (optcode == DNS_OPT_CLIENT_TAG) {
    4177                                uint16_t id;
    4178                                ADD_STRING(target, "; CLIENT-TAG:");
    4179                                if (optlen == 2U) {
    4180                                        id = isc_buffer_getuint16(&optbuf);
    4181                                        snprintf(buf, sizeof(buf), " %u\n", id);
    4182                                        ADD_STRING(target, buf);

    CID 499061: (#1 of 1): Overflowed constant (INTEGER_OVERFLOW)
    overflow_const: Expression optlen, which is equal to 65534, underflows
    the type that receives it, an unsigned integer 16 bits wide.
    4183                                        optlen -= 2;
    4184                                        POST(optlen);
    4185                                        continue;
    4186                                }
    4187                        } else if (optcode == DNS_OPT_SERVER_TAG) {

23 months agofix: test: digdelv system test can report more errors than there actually are
Mark Andrews [Fri, 2 Aug 2024 03:01:19 +0000 (03:01 +0000)] 
fix: test: digdelv system test can report more errors than there actually are

Closes #4770

Merge branch '4770-digdelv-system-test-can-report-more-errors-than-they-actually-are' into 'main'

Closes #4770

See merge request isc-projects/bind9!9104

23 months agoReset 'ret' to zero at start of tests
Mark Andrews [Wed, 12 Jun 2024 22:57:14 +0000 (08:57 +1000)] 
Reset 'ret' to zero at start of tests

23 months agochg: usr: allow shorter resolver-query-timeout configuration
Arаm Sаrgsyаn [Thu, 1 Aug 2024 18:31:14 +0000 (18:31 +0000)] 
chg: usr: allow shorter resolver-query-timeout configuration

The minimum allowed value of 'resolver-query-timeout' was lowered to
301 milliseconds instead of the earlier 10000 milliseconds (which is the
default). As earlier, values less than or equal to 300 are converted to
seconds before applying the limit.

Closes #4320

Merge branch '4320-allow-shorter-resolver-query-timeout-configuration' into 'main'

Closes #4320

See merge request isc-projects/bind9!9091

23 months agoUpdate the resolver unit test
Aram Sargsyan [Thu, 6 Jun 2024 19:58:57 +0000 (19:58 +0000)] 
Update the resolver unit test

Before there was a gap from 301 to 9999 which would be converted
to 10000 and now there is no such gap.

This settimeout_belowmin test was checking the behavior of a value
in the gap. As there is now no gap left, the minimum is 301 and
anything below that is converted to seconds as before. In order
for this check to still test the "below minimum" behavior, change
the value from 9000 to 300.

Update the settimeout_overmax value test too so it logically aligns
with the minimum value test.

23 months agoDocument shorter resolver-query-timeout configuration
Aram Sargsyan [Thu, 6 Jun 2024 09:22:55 +0000 (09:22 +0000)] 
Document shorter resolver-query-timeout configuration

The lower limit is now 301 milliseconds instead of 10000 milliseconds.

23 months agoTest shorter resolver-query-timeout configuration
Aram Sargsyan [Thu, 6 Jun 2024 09:20:44 +0000 (09:20 +0000)] 
Test shorter resolver-query-timeout configuration

Add two new checks which test the shorter than usual
resolver-query-timeout configuration.

23 months agoAllow shorter resolver-query-timeout configuration
Aram Sargsyan [Thu, 6 Jun 2024 09:16:57 +0000 (09:16 +0000)] 
Allow shorter resolver-query-timeout configuration

There are use cases for which shorter timeout values make sense.
For example if there is a load balancer which sets RD=1 and
forwards queries to a BIND resolver which is then configured to
talk to backend servers which are not visible in the public NS set.
WIth a shorter timeout value the frontend can give back SERVFAIL
early when backends are not available and the ultimate client will
not penalize the BIND-frontend for non-response.

23 months agonew: usr: implement rndc retransfer -force
Arаm Sаrgsyаn [Thu, 1 Aug 2024 16:54:45 +0000 (16:54 +0000)] 
new: usr: implement rndc retransfer -force

A new optional argument '-force' has been added to the command channel
command 'rndc retransfer'. When it is specified, named aborts the
ongoing zone transfer (if there is one), and starts a new transfer.

Closes #2299

Merge branch '2299-implement-rndc-force-retransfer' into 'main'

Closes #2299

See merge request isc-projects/bind9!9102

23 months agoRename dns_zone_forcereload() to dns_zone_forcexfr()
Aram Sargsyan [Fri, 14 Jun 2024 21:17:54 +0000 (21:17 +0000)] 
Rename dns_zone_forcereload() to dns_zone_forcexfr()

The new name describes the function more accurately.

23 months agoTest rndc retransfer -force
Aram Sargsyan [Tue, 11 Jun 2024 12:26:08 +0000 (12:26 +0000)] 
Test rndc retransfer -force

Use a big zone and the slow transfer mode. Initiate a retransfer, wait
several seconds, then initiate a retransfer using a '-force' argument,
which should cancel the previous transfer and start a new one.