2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-31 14:35:26 +00:00
Commit Graph

39418 Commits

Author SHA1 Message Date
Evan Hunt
d25d0af7f5 remove unused DNS_DBFIND options
the DNS_DBFIND_VALIDATEGLUE and DNS_DBFIND_FORCENSEC options
were never set, so the code implementing them (which in the case
of _VALIDATEGLUE appears to have been quite outdated anyway) was
never reached. they have now been removed.
2023-07-17 14:50:25 +02:00
Tony Finch
856a6e4afb Give the rdataset->privateN fields more helpful names
BIND's rdataset structure is a view of some DNS records. It is
polymorphic, so the details of how the records are stored can vary.
For instance, the records can be held in an rdatalist, or in an
rdataslab in the rbtdb.

The dns_rdataset structure previously had a number of fields called
`private1` up to `private7`, which were used by the various rdataset
implementations. It was not at all clear what these fields were for,
without reading the code and working it out from context.

This change makes the rdataset inheritance hierarchy more clear. The
polymorphic part of a `struct dns_rdataset` is now a union of structs,
each of which is named for the class of implementation using it. The
fields of these structs replace the old `privateN` fields. (Note: the
term "inheritance hierarchy" refers to the fact that the builtin and
SDLZ implementations are based on and inherit from the rdatalist
implementation, which in turn inherits from the generic rdataset.

Most of this change is mechanical, but there are a few extras.

In keynode.c there were a number of REQUIRE()ments that were not
necessary: they had already been checked by the rdataset method
dispatch code. On the other hand, In ncache.c there was a public
function which needed to REQUIRE() that an rdataset was valid.

I have removed lots of "reset iterator state" comments, because it
should now be clear from `target->iter = NULL` where before
`target->private5 = NULL` could have been doing anything.

Initialization is a bit neater in a few places, using C structure
literals where appropriate.

The pointer arithmetic for translating between an rdataslab header and
its raw contents is now fractionally safer.
2023-07-17 14:50:25 +02:00
Evan Hunt
9330fada3a refactor the slab rdataset implementation
- use externally accessible functions for attachnode/detachnode
  so these functions can be moved outside rbtdb.c
- simplify and tidy up some other functions
- use struct initializers when appropriate
- remove the flag RDATASET_ATTR_RETAIN; it was never being set
- renamed the rdataset attributes to
- remove the 'slab_methods' rdataset implementation. this was
  a reduced set of slab rdataset methods, omitting 'setownercase()'
  and 'getownercase()'. we can get the identical result by using
  an DNS_RDATASETATTR_KEEPCASE attribute in rdatasets that
  shouldn't have their case modified, and then we only need one
  set of rdataset methods.
2023-07-17 14:50:25 +02:00
Tom Krizek
83a33c3555 Merge branch 'tkrizek/tkey-cleanup' into 'main'
Remove tkey test remnants

See merge request isc-projects/bind9!8102
2023-07-17 09:07:28 +00:00
Tom Krizek
87e95b2348 Remove tkey test remnants
The tkey test was removed in bd4576b3ce
and the prereq.sh bit was accidentally added in
175d0c6d85
2023-07-17 10:40:07 +02:00
Tom Krizek
02b3cb671a Merge branch 'tkrizek/run-tests-with-set-e' into 'main'
Run system tests with set -e

See merge request isc-projects/bind9!8052
2023-07-17 08:19:01 +00:00
Tom Krizek
e5f2addcaa Check return codes from commands in inline test
To improve the compatibility of the inline test with the `set -e`
option, ensure all commands which are expected to pass are explicitly
checked for return code and non-zero return codes are handled.
2023-07-14 17:10:58 +02:00
Tom Krizek
ccc9b87f59 Ignore test cleanup commits in git blame 2023-07-14 15:51:07 +02:00
Tom Krizek
05baf7206b Use $(...) notation for subshells in system tests
The changes were mostly done with sed:

find . -name '*.sh' | xargs sed -i 's/`\([^`]*\)`/$(\1)/g'

There have been a few manual changes where the regex wasn't sufficient
(e.g. backslashes inside the `...`) or wrong (`...` referring to docs or
in comments).
2023-07-14 15:49:18 +02:00
Tom Krizek
d203681a75 Handle non-zero return codes in rootkeysentinel tests 2023-07-14 15:49:18 +02:00
Tom Krizek
2b8e5e1155 Handle non-zero return codes in resolver test 2023-07-14 15:49:17 +02:00
Tom Krizek
cde02fdb6a Handle non-zero return codes in statschannel test 2023-07-14 15:49:17 +02:00
Tom Krizek
4a87b44196 Handle non-zero return codes in checkconf test 2023-07-14 15:49:17 +02:00
Tom Krizek
9d383dce40 Handle non-zero return codes in dnstap test 2023-07-14 15:49:17 +02:00
Tom Krizek
ede8ea889b Handle non-zero return codes in kasp test 2023-07-14 15:49:17 +02:00
Tom Krizek
4e8802a22d Handle non-zero return codes in serve-stale test 2023-07-14 15:49:17 +02:00
Tom Krizek
fae6808b9c Handle non-zero return codes in doth test 2023-07-14 15:49:17 +02:00
Tom Krizek
1e64749ed3 Handle non-zero return codes in acl test 2023-07-14 15:49:17 +02:00
Tom Krizek
3a36ff506d Handle non-zero return codes in statistics test 2023-07-14 15:49:16 +02:00
Tom Krizek
9fdf537f52 Handle non-zero return codes in rrsetorder test 2023-07-14 15:49:16 +02:00
Tom Krizek
45fc4cc465 Handle non-zero return codes in redirect test 2023-07-14 15:49:16 +02:00
Tom Krizek
c50a9e158d Handle non-zero return codes in rndc test 2023-07-14 15:49:16 +02:00
Tom Krizek
36d74bd2e3 Handle non-zero return codes in inline test 2023-07-14 15:49:16 +02:00
Tom Krizek
f3310e1731 Handle non-zero return codes unknown test 2023-07-14 15:49:16 +02:00
Tom Krizek
86765ad1d3 Handle non-zero return codes in nsupdate test 2023-07-14 15:49:16 +02:00
Tom Krizek
e5933f65d6 Handle non-zero return codes in zonechecks test 2023-07-14 15:49:16 +02:00
Tom Krizek
e8c61f8da4 Handle non-zero return codes in wildcard test 2023-07-14 15:49:16 +02:00
Tom Krizek
69e8876966 Handle non-zero return codes in zero test 2023-07-14 15:49:15 +02:00
Tom Krizek
3ce200ead8 Handle non-zero return codes in legacy test 2023-07-14 15:49:15 +02:00
Tom Krizek
2823d0b469 Handle non-zero return codes in forward test 2023-07-14 15:49:15 +02:00
Tom Krizek
855f5b143a Handle non-zero return codes in upforwd test 2023-07-14 15:49:15 +02:00
Tom Krizek
146cb978c5 Handle non-zero return codes in addzone test 2023-07-14 15:49:15 +02:00
Tom Krizek
247b608f62 Handle non-zero return codes in rpzrecurse test 2023-07-14 15:49:15 +02:00
Tom Krizek
1d5caafa9e Handle non-zero return codes in rpz test 2023-07-14 15:49:15 +02:00
Tom Krizek
837c190d9e Make $? compatible with set -e in system tests
Ensure handling of return code from previous command doesn't cause the
script to halt if that code is non-zero when running with `set -e`.
2023-07-14 15:49:15 +02:00
Tom Krizek
1436025e20 Use arithmetic expansion in system tests (followup)
These are manual edits in addition of the automated changes from the
previous commit.
2023-07-14 15:49:15 +02:00
Tom Krizek
4d42bdc245 Use arithmetic expansion in system tests
Change the way arithmetic operations are performed in system test shell
scripts from using `expr` to `$(())`. This ensures that updating the
variable won't end up with a non-zero exit code, which would case the
script to exit prematurely when `set -e` is in effect.

The following replacements were performed using sed in all text files
(git grep -Il '' | xargs sed -i):

s/status=`expr $status + $ret`/status=$((status + ret))/g
s/n=`expr $n + 1`/n=$((n + 1))/g
s/t=`expr $t + 1`/t=$((t + 1))/g
s/status=`expr $status + 1`/status=$((status + 1))/g
s/try=`expr $try + 1`/try=$((try + 1))/g
2023-07-14 15:49:13 +02:00
Tom Krizek
01bc805f89 Run system tests with set -e
Ensure all shell system tests are executed with the errexit option set.
This prevents unchecked return codes from commands in the test from
interfering with the tests, since any failures need to be handled
explicitly.
2023-07-14 15:07:25 +02:00
Michal Nowak
723cb07d58 Merge branch 'mnowak/detect-core-dumps-after-server-failed-to-stop' into 'main'
Detect core dumps after BIND failed to stop cleanly

See merge request isc-projects/bind9!8096
2023-07-13 13:12:37 +00:00
Michal Nowak
89c77daddb Detect core dumps after BIND failed to stop cleanly
With the pytest runner, when BIND crashed during test runtime, the
get_core_dumps.sh script hasn't been run, and core dumps were not
detected.
2023-07-13 15:09:55 +02:00
Mark Andrews
dd3c7e4ecb Merge branch '4194-extend-dns-cookie-support' into 'main'
Resolve "Extend DNS COOKIE support"

Closes #4194

See merge request isc-projects/bind9!8086
2023-07-13 02:31:02 +00:00
Mark Andrews
cf923e4ad3 Add release note for [GL #4194] 2023-07-13 01:58:53 +00:00
Mark Andrews
c2dcc2602d Add CHANGES note for [GL #4194] 2023-07-13 01:58:53 +00:00
Mark Andrews
189ca00a6e Check that BADCOOKIE is returned for a bad server COOKIE
Send a well formed, all zeros, DNS COOKIE option to a named instance
running with default cookie settings and check that BADCOOKIE is
returned.
2023-07-13 01:58:53 +00:00
Mark Andrews
3969e2c5f7 Return BADCOOKIE on validly formed bad SERVER COOKIES
The server was previously tolerant of out-of-date or otherwise bad
DNS SERVER COOKIES that where well formed unless require-cookie was
set.  BADCOOKIE is now return for these conditions.
2023-07-13 01:58:53 +00:00
Tom Krizek
4990f8ae34 Merge branch 'tkrizek/set-up-version-and-release-notes-for-bind-9.19.16' into 'main'
Set up version and release notes for BIND 9.19.16

See merge request isc-projects/bind9!8092
2023-07-10 13:45:09 +00:00
Tom Krizek
c49bad79eb Set up release notes for BIND 9.19.16 2023-07-10 15:08:50 +02:00
Tom Krizek
46e917a55e Update BIND version to 9.19.16-dev 2023-07-10 15:08:50 +02:00
Michał Kępień
bf8acd4556 Merge branch 'michal/add-changes-entry-for-tsig-tkey-refactoring' into 'main'
Add CHANGES entry for !7828

See merge request isc-projects/bind9!8090
2023-07-06 13:06:51 +00:00
Michał Kępień
8f0810b2f4 Add CHANGES entry for !7828 2023-07-06 15:02:10 +02:00