2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 14:07:59 +00:00
Commit Graph

37043 Commits

Author SHA1 Message Date
Aram Sargsyan
d7e5c23a81 DiG: fix lookup reference counting bug
When DiG finishes its work with a lookup (due to success or error), it
calls the clear_current_lookup() function, which decreases the lookup's
reference count. That decrease action is the counterpart of the initial
creation of the reference counter, so this function was designed in such
a way that it should decrease the reference count only once, when there
are no more active queries in the lookup.

The way it checks whether there are any active queries is by looking
at the queries list of the lookup object - if it's NULL then there are
no active queries. But that is not always true - the cancel_lookup()
function, when canceling the queries one by one, also removes them
from the lookup's list, but in NSSEARCH mode, when the queries are
working in parallel, some of those queries can be still active. And
when their recv_done() callback gets called, it sees that the lookup
has been canceled, calls clear_current_lookup(), which decreases the
reference count every time for each query that was still active
(because ISC_LIST_HEAD(lookup->q) is NULL) and results in a reference
counting error.

Fix the issue by introducing a new "cleared" property for the lookup,
which will ensure that the clear_current_lookup() function does its
job only once per lookup.
2022-08-08 10:47:44 +00:00
Matthijs Mekking
cd4a536a69 Merge branch '3479-mysql-is-not-ldap' into 'main'
Fix mysql bindings

Closes #3479

See merge request isc-projects/bind9!6636
2022-08-08 07:45:23 +00:00
Matthijs Mekking
b47e41db74 Fix mysql bindings
There was a copy paste error in the Makefile of the mysql dlz modules,
instead of setting the MYSQL_LIBS, LDAP_LIBS where set. This caused
the mysql bindings not to be generated.
2022-08-05 11:43:00 +02:00
Michał Kępień
672972bb56 Merge branch 'michal/set-up-version-and-release-notes-for-bind-9.19.5' into 'main'
Set up version and release notes for BIND 9.19.5

See merge request isc-projects/bind9!6632
2022-08-05 06:40:34 +00:00
Michał Kępień
255629769e Set up release notes for BIND 9.19.5 2022-08-05 06:56:30 +02:00
Michał Kępień
0841080ce4 Update BIND version to 9.19.5-dev 2022-08-05 06:56:30 +02:00
Michał Kępień
63279dc661 Update BIND version for release v9.19.4 2022-08-04 23:29:55 +02:00
Michał Kępień
53c43541aa Add a CHANGES marker 2022-08-04 23:29:55 +02:00
Michał Kępień
72a979cd8d Merge branch 'michal/prepare-documentation-for-bind-9.19.4' into 'v9_19_4-release'
Prepare documentation for BIND 9.19.4

See merge request isc-private/bind9!418
2022-08-04 21:28:46 +00:00
Michał Kępień
7e7007a6c4 Tweak and reword release notes 2022-08-04 23:13:22 +02:00
Michał Kępień
4b0ac154a0 Prepare release notes for BIND 9.19.4 2022-08-04 23:13:22 +02:00
Michał Kępień
cbb662607c Fix option name in the release note for GL #3140 2022-08-04 23:13:22 +02:00
Artem Boldariev
7126ed59db Merge branch 'tls-fix-readpaused-usage' into 'main'
TLS: do not ignore readpaused flag in certain circumstances

See merge request isc-projects/bind9!6627
2022-08-02 14:26:14 +00:00
Artem Boldariev
32565d0d65 TLS: do not ignore readpaused flag in certain circumstances
In some circumstances generic TLS code could have resumed data reading
unexpectedly on the TCP layer code. Due to this, the behaviour of
isc_nm_pauseread() and isc_nm_resumeread() might have been
unexpected. This commit fixes that.

The bug does not seems to have real consequences in the existing code
due to the way the code is used. However, the bug could have lead to
unexpected behaviour and, at any rate, makes the TLS code behave
differently from the TCP code, with which it attempts to be as
compatible as possible.
2022-08-02 14:02:01 +03:00
Arаm Sаrgsyаn
b2395f5644 Merge branch 'aram/fetches-per-zone-improve-log-message' into 'main'
Differentiate between initial and cumulative fetch limit logging

See merge request isc-projects/bind9!6607
2022-08-01 15:21:10 +00:00
Aram Sargsyan
1690af761b Differentiate between initial and cumulative fetch limit logging
Cumulative fetch limit logging happens on an event of a dropped
fetch if 60 seconds have been passed since the previous log message.
This change makes the log message different for the initial event
and for the later cumulative events to provide more useful information
to the system administrator.
2022-08-01 14:42:27 +00:00
Arаm Sаrgsyаn
1f306f9a8a Merge branch '3461-fetches-per-zone-final-log-message' into 'main'
Resolve "Do a better job of logging when fetches-per-zone is triggered"

Closes #3461

See merge request isc-projects/bind9!6595
2022-08-01 14:33:42 +00:00
Aram Sargsyan
50d57a7551 Add CHANGES and release notes for [GL #3461] 2022-08-01 13:49:46 +00:00
Aram Sargsyan
8cfacc6fe1 Improve fetch limit logging
When initially hitting the `fetches-per-zone` value, a log message
is being generated for the event of dropping the first fetch, then
any further log events occur only when another fetch is being dropped
and 60 seconds have been passed since the last logged message.

That logic isn't ideal because when the counter of the outstanding
fetches reaches zero, the structure holding the counters' values will
get deleted, and the information about the dropped fetches accumulated
during the last minute will not be logged.

Improve the fcount_logspill() function to makie sure that the final
values are getting logged before the counter object gets destroyed.
2022-08-01 13:46:41 +00:00
Petr Špaček
0f6a6b9a70 Merge branch 'ron-tags-3' into 'main'
Add tags and short descriptions to all configuration statements

See merge request isc-projects/bind9!6592
2022-07-29 17:00:19 +00:00
Petr Špaček
9b3710987b Add last missing tags, finishing touches 2022-07-29 18:56:04 +02:00
Suzanne Goldlust
f9a5f389ed Add descriptions of each tag 2022-07-29 18:56:04 +02:00
Suzanne Goldlust
20d01ca2e3 Text edits to Statements and Statements by Tag sections 2022-07-29 18:56:04 +02:00
Suzanne Goldlust
e14201a2f6 Reorder Statements and Statements by Tag sections 2022-07-29 18:56:04 +02:00
Suzanne Goldlust
fc272863c6 Rephrase parental-agents description 2022-07-29 18:56:04 +02:00
Suzanne Goldlust
7dcdeba117 Add short description for plugin statement 2022-07-29 18:56:04 +02:00
Suzanne Goldlust
75ab5f81a4 Add tag and short description for dyndb statement 2022-07-29 18:56:04 +02:00
Suzanne Goldlust
a8294e7af4 Add tags and short descriptions for dlz and search statements 2022-07-29 18:56:04 +02:00
Suzanne Goldlust
017008c407 Add tag and short description for catalog-zones statement 2022-07-29 18:56:04 +02:00
Suzanne Goldlust
a470a6545f Add short descriptions and some tags to statements through line 1766 2022-07-29 18:56:00 +02:00
Arаm Sаrgsyаn
ac97d8de98 Merge branch '3471-dig-add-qid-into-usage-summary' into 'main'
DiG: document +qid=<num> option in the usage summary

Closes #3471

See merge request isc-projects/bind9!6618
2022-07-28 10:16:24 +00:00
Aram Sargsyan
244bf0b3e4 DiG: document +qid=<num> option in the usage summary
The +qid=<num> option, which sets the outgoing query ID, was missing
from the usage summary printed using `dig -h` command.
2022-07-28 09:08:13 +00:00
Mark Andrews
3b4b974df8 Merge branch 'marka-set-suffix-in-ans.py' into 'main'
Ensure suffix is always valid in bin/tests/system/qmin/ans4/ans.py (CID 350722)

See merge request isc-projects/bind9!6593
2022-07-27 16:24:02 +00:00
Mark Andrews
8a15577334 Ensure suffix is always valid in bin/tests/system/qmin/ans4/ans.py
initalise suffix to ""

    170        r.answer.append(
    171            dns.rrset.from_text(
    172                lqname + suffix, 1, IN, NS, "a.bit.longer.ns.name." + suffix
    173            )
    174        )
    175        r.flags |= dns.flags.AA
           15. Condition endswith(lqname, "icky.ptang.zoop.boing."), taking true branch.
    176    elif endswith(lqname, "icky.ptang.zoop.boing."):
           CID 350722 (#7 of 7): Bad use of null-like value (FORWARD_NULL)
           16. invalid_operation: Invalid operation on null-like value suffix.
    177        r.authority.append(
    178            dns.rrset.from_text(
    179                "icky.ptang.zoop.boing." + suffix,
    180                1,
    181                IN,
    182                SOA,
    183                "ns2." + suffix + " hostmaster.arpa. 2018050100 1 1 1 1",
    184            )
    185        )
2022-07-27 15:55:25 +00:00
Artem Boldariev
a8679ccd51 Merge branch 'artem-tls-streamdns-fixes-part2' into 'main'
TLS-related fixes from Stream DNS and Loop Manager branches

See merge request isc-projects/bind9!6616
2022-07-26 12:08:48 +00:00
Artem Boldariev
c52c691b18 TLS: fix double resumption in isc__nm_tls_resumeread()
This commit fixes an obvious error in isc__nm_tls_resumeread() so that
read cannot be resumed twice.
2022-07-26 14:25:59 +03:00
Artem Boldariev
5d450cd0ba TLS: clear 'errno' when handling SSL status
Sometimes tls_do_bio() might be called when there is no new data to
process (most notably, when resuming reads), in such a case internal
TLS session state will remain untouched and old value in 'errno' will
alter the result of SSL_get_error() call, possibly making it to return
SSL_ERROR_SYSCALL. This value will be treated as an error, and will
lead to closing the connection, which is not what expected.
2022-07-26 14:25:59 +03:00
Mark Andrews
6f15cace5e Merge branch '3469-auto-disable-rsasha1-and-nsec3rsasha1-when-not-supported-by-the-os' into 'main'
Resolve "Auto disable RSASHA1 and NSEC3RSASHA1 when not supported by the OS"

Closes #3469

See merge request isc-projects/bind9!6606
2022-07-25 14:57:48 +00:00
Mark Andrews
0d31135ca2 Add release note for [GL #3469] 2022-07-25 10:32:48 -04:00
Mark Andrews
5bbbecc88a CHANGES note for [GL #3469] 2022-07-25 10:32:47 -04:00
Mark Andrews
edfbe5c30f Check that we can verify a signature at initialisation time
Fedora 33 doesn't support RSASHA1 in future mode.  There is no easy
check for this other than by attempting to perform a verification
using known good signatures.  We don't attempt to sign with RSASHA1
as that would not work in FIPS mode.  RSASHA1 is verify only.

The test vectors were generated using OpenSSL 3.0 and
util/gen-rsa-sha-vectors.c.  Rerunning will generate a new set of
test vectors as the private key is not preserved.

e.g.
	cc util/gen-rsa-sha-vectors.c -I /opt/local/include \
		-L /opt/local/lib -lcrypto
2022-07-25 10:32:13 -04:00
Matthijs Mekking
33acff2c67 Merge branch '3462-rndc-dumpdb-expired-doesnt-always-work' into 'main'
Fix rndc dumpdb -expired for stuck cache contents

Closes #3462

See merge request isc-projects/bind9!6596
2022-07-25 14:27:08 +00:00
Matthijs Mekking
113dcd124e Add change entry and release note for #3462
News worthy.
2022-07-25 16:05:29 +02:00
Matthijs Mekking
f8d866c6ef Fix rndc dumpdb -expired for stuck cache contents
The command 'rndc dumpdb -expired' will include expired RRsets in the
output, but only for the RBTDB_VIRTUAL time (of 5 minutes). This means
that if there is a cache cleaning problem and contents are not cleaned
up, the rndc command has little diagnostic value. Fix this by including
all RRsets in the dumpdb output if the '-expired' flag is set.
2022-07-25 16:05:21 +02:00
Arаm Sаrgsyаn
f66f1696fc Merge branch '3419-dig-nssearch-query-failure-robustness' into 'main'
Fix DiG query error handling robustness in NSSEARCH mode

Closes #3419

See merge request isc-projects/bind9!6484
2022-07-22 10:11:14 +00:00
Aram Sargsyan
e991c69bc4 Add CHANGES note for [GL #3419] 2022-07-22 09:37:05 +00:00
Aram Sargsyan
61def2f4e3 dig +nssearch: send more queries even if setting up one of them fails
In the NSSEARCH followup lookup, when one of the queries fails to be
set up (UDP) or connected (TCP), DiG doesn't start the next query.
This is a mistake, because in NSSEARCH mode the queries are independent
and DiG shouldn't stop the lookup process just because setting up (or
connecting to) one of the name servers returns an error code in the
`udp_ready()` or `tcp_connected()` callbacks.

Write a new `nssearch_next()` function which takes care of starting the
next query in NSSEARCH mode, so it can be used in several places without
code repetition.

Make sure that the `udp_ready()` and `tcp_connected()` functions call
`nssearch_next()` in case they won't be calling `send_udp()` and
`send_tcp()` respectively, because in that case the `send_done()`
callback, which usually does the job, won't be called.

Refactor `send_done()` to use the newly written `nssearch_next()`
function.
2022-07-22 09:37:05 +00:00
Aram Sargsyan
98da5129a5 dig +nssearch: send more queries even if sending the previous one fails
In the NSSEARCH followup lookup, when one of the queries fails to be
sent, DiG doesn't start the next query. This is a mistake, because in
NSSEARCH mode the queries are independent and DiG shouldn't stop the
lookup process just because sending a query to one of the name servers
returns an error code.

Restructure the `send_done()` function to unconditionally send the next
query in NSSEARCH mode, if it exists.
2022-07-22 09:26:25 +00:00
Arаm Sаrgsyаn
25f8570709 Merge branch '3407-dighost-udp-fail-over-other-nameservers' into 'main'
Fix DiG query retry and fail-over issues

Closes #3407

See merge request isc-projects/bind9!6462
2022-07-22 09:20:35 +00:00
Aram Sargsyan
65d9d90b55 Suppress warning/error comments in dig outputs for "rrsetorder" test
In the CI dig sometimes produces warning/error comments when
communicating with the server, which produces problems when comparing
the outputs.

Here is an example of a dig output with a warning message which
is benign, because dig, after a retry, managed to query the server.

;; communications error to 10.53.0.3#7529: timed out
1.2.3.1
1.2.3.2
1.2.3.3
1.2.3.4

When comparing this to the expected output, which doesn't contain
the comment line (starting with double ';'), the outputs don't match.

Use grep inverse logic to strip the comments from the dig outputs.
2022-07-22 08:35:35 +00:00