Compare commits

..
2198 Commits
Author SHA1 Message Date
Tinderbox User 68dbd5b966 Merge branch 'prep-release' into security-v9_11 2021-10-11 19:35:49 +00:00
Tinderbox User f77bef8ff5 prep 9.11.36 2021-10-11 19:35:17 +00:00
Michał Kępień ec7fd050b9 Merge branch 'michal/prepare-documentation-for-bind-9.11.36' into 'security-v9_11'
Prepare documentation for BIND 9.11.36

See merge request isc-private/bind9!327
2021-10-11 15:42:28 +00:00
Michał Kępień f87fcbb21f Prepare release notes for BIND 9.11.36 2021-10-11 17:33:35 +02:00
Michał Kępień 839e82b8f1 Merge branch '2899-security-disable-lame-cache-v9_11' into 'security-v9_11'
[CVE-2021-25219] [v9_11] Disable "lame-ttl" cache

See merge request isc-private/bind9!324
2021-10-11 12:07:46 +00:00
Ondřej SurýandMichał Kępień b3592cd02e Add CHANGES and release note for [GL #2899] 2021-10-11 13:23:25 +02:00
Ondřej SurýandMichał Kępień b4088e11ee Enable lame response detection even with disabled lame cache
Previously, when lame cache would be disabled by setting lame-ttl to 0,
it would also disable lame answer detection.  In this commit, we enable
the lame response detection even when the lame cache is disabled.  This
enables stopping answer processing early rather than going through the
whole answer processing flow.
2021-10-11 13:23:25 +02:00
Ondřej SurýandMichał Kępień 201f887065 Disable lame-ttl cache
The lame-ttl cache is implemented in ADB as per-server locked
linked-list "indexed" with <qname,qtype>.  This list has to be walked
every time there's a new query or new record added into the lame cache.
Determined attacker can use this to degrade performance of the resolver.

Resolver testing has shown that disabling the lame cache has little
impact on the resolver performance and it's a minimal viable defense
against this kind of attack.
2021-10-11 13:23:25 +02:00
Petr Špaček ab1bef0dfe Merge branch 'ondrej/add-python-3.8-check-v9_11' into 'v9_11'
Add python3.8 to the autoconf search list

See merge request isc-projects/bind9!5435
2021-09-22 08:54:23 +00:00
Ondřej Surý 2663509c12 Add python3.8 to the autoconf search list
It was discovered that FreeBSD doesn't setup alias from default
Python version neither to python3 nor python, and thus the configure
step would fail to find working python installation.
2021-09-22 10:28:18 +02:00
Michal Nowak f15da8b9fa Merge branch 'mnowak/replace-centos-with-oraclelinux-v9_11' into 'v9_11'
[v9_11] Replace CentOS 7 & 8 with Oracle Linux

See merge request isc-projects/bind9!5420
2021-09-16 15:53:28 +00:00
Michal Nowak 67f9f2349f Replace CentOS 7 & 8 with Oracle Linux
(cherry picked from commit 3085edf1a0)
2021-09-16 17:33:28 +02:00
Ondřej Surý 0210d98432 Merge branch '2866-split-gssapi-and-krb5-check-from-krb5-config-v9_11' into 'v9_11'
Fix the krb5-config usage (v9.11)

See merge request isc-projects/bind9!5393
2021-09-14 19:21:55 +00:00
Ondřej Surý 218cbd5236 Add CHANGES note for [GL ##2866] 2021-09-14 21:01:05 +02:00
Michał KępieńandOndřej Surý d89c65118a Test various --with-gssapi options in GitLab CI
The implicit ./configure default is to use --with-gssapi=auto.  There is
already a GitLab CI job (gcc:stretch:amd64) which uses --without-gssapi.
Add four more forms of the --with-gssapi option to various GitLab CI job
configurations so that its every possible variant is regularly tested.
2021-09-08 13:10:28 +02:00
Ondřej Surý f6dd6940bc Call krb5-config with just one argument at the time
The autoconf script would call the krb5-config with both gssapi and krb5
libraries as arguments in a single call.  It turned out that this is
actually not supported and it breaks some platforms.  This commit splits
the call into two separate calls - one for gssapi and one for krb5
library.
2021-09-08 13:10:25 +02:00
Ondřej SurýandOndřej Surý f67479fe48 Revert "Resolve 'Configuration issues on Solaris 11.4'" MR
The MR in question broke the configure script in different way,
so we are going to use a different fix.
2021-09-08 13:09:24 +02:00
Mark Andrews eff7921c33 Merge branch '1805-save-failed-build-artifacts-v9_11' into 'v9_11'
always save build artifacts

See merge request isc-projects/bind9!5365
2021-08-26 04:45:59 +00:00
Mark Andrews 4c4fe6a800 always save build artifacts
(cherry picked from commit 221228572f)
2021-08-26 14:22:02 +10:00
Michał Kępień 0480e212bf Merge branch 'v9_11_35-release' into 'v9_11'
Merge 9.11.35 release branch

See merge request isc-projects/bind9!5340
2021-08-19 05:36:04 +00:00
Michał Kępień 94dc186441 Set up release notes for BIND 9.11.36 2021-08-19 07:31:02 +02:00
Michał Kępień c1afa10fce Bump BIND_BASELINE_VERSION for ABI checks 2021-08-19 07:31:02 +02:00
Tinderbox User 8aead5f87a Merge branch 'prep-release' into v9_11_35-release 2021-08-10 22:00:41 +00:00
Tinderbox User bee1b09a24 prep 9.11.35 2021-08-10 22:00:23 +00:00
Michał Kępień 6900668e09 Merge branch 'michal/prepare-documentation-for-bind-9.11.35' into 'v9_11_35-release'
Prepare documentation for BIND 9.11.35

See merge request isc-private/bind9!318
2021-08-10 21:39:51 +00:00
Michał Kępień 2f37bd4cd3 Prepare release notes for BIND 9.11.35 2021-08-10 23:38:03 +02:00
Michał Kępień 6859b18d7b Tweak and reword release notes 2021-08-10 23:38:03 +02:00
Michał Kępień f565978451 Tweak and reword recent CHANGES entries 2021-08-10 23:38:03 +02:00
Michal Nowak 17a1334660 Merge branch 'mnowak/fix-pylint-v9_11' into 'v9_11'
Make kasp2policy.py PyLint-clean

See merge request isc-projects/bind9!5307
2021-07-28 09:16:46 +00:00
Michal Nowak 56480bd705 Make kasp2policy.py PyLint-clean
PyLint 2.9.5 reported the following errors:
    contrib/kasp/kasp2policy.py:25:0: R0402: Use 'from ply import yacc' instead (consider-using-from-import)
    contrib/kasp/kasp2policy.py:26:0: R0402: Use 'from ply import lex' instead (consider-using-from-import)

(cherry picked from commit 4e09411371)
2021-07-28 11:12:05 +02:00
Michal Nowak b5bff89020 Merge branch 'v9_11_34-release' into 'v9_11'
Merge 9.11.34 release branch

See merge request isc-projects/bind9!5303
2021-07-26 09:52:43 +00:00
Michal Nowak 2c1c2431a4 Set up release notes for BIND 9.11.35 2021-07-23 10:46:37 +02:00
Michal Nowak 0abd05bdf6 Bump BIND_BASELINE_VERSION for ABI checks 2021-07-23 10:45:06 +02:00
Tinderbox UserandMichal Nowak c60717957e Merge branch 'prep-release' into v9_11_34-release 2021-07-23 10:45:06 +02:00
Tinderbox UserandMichal Nowak 84bf0d4f55 prep 9.11.34 2021-07-23 10:44:39 +02:00
Michał KępieńandMichal Nowak 1792a171a4 Merge branch 'michal/prepare-documentation-for-bind-9.11.34' into 'v9_11_34-release'
Prepare release notes for BIND 9.11.34

See merge request isc-private/bind9!310
2021-07-23 10:43:44 +02:00
Michał KępieńandMichal Nowak 11fb690be1 Prepare release notes for BIND 9.11.34 2021-07-23 10:43:29 +02:00
Michal Nowak 3ebbafd1e4 Merge branch '2473-run-respdiff-as-part-of-daily-runs-v9_11' into 'v9_11'
[v9_11] Run respdiff also for scheduled and web pipelines

See merge request isc-projects/bind9!5298
2021-07-22 13:01:40 +00:00
Michal Nowak 370d27ca48 Run respdiff also for scheduled and web pipelines
respdiff needs to be run regularly to identify problems with query
responses discrepancies sooner than after tagging a release.

Contrary to the main branch, which hosts the BIND 9 Development Version
and thus sets MAX_DISAGREEMENTS_PERCENTAGE variable to 0.5, branches
hosting BIND 9 Stable Versions have it set to 0.1, which provides only
tiny room for non-timeout response disagreements between the baseline
version and version under test.

(cherry picked from commit 561b58196b)
2021-07-22 14:23:52 +02:00
Mark Andrews 64512b0e9b Merge branch '2762-check-opcode-v9_11' into 'v9_11'
Check opcode of messages returned by dns_request_getresponse

See merge request isc-projects/bind9!5288
2021-07-21 03:07:36 +00:00
Mark Andrews 39e7462f25 add release note for [GL #2762]
(cherry picked from commit 36720fb4a6)
2021-07-21 12:47:34 +10:00
Mark Andrews a490623466 Add CHANGES for [GL #2762]
(cherry picked from commit 466db0f49e)
2021-07-21 12:43:46 +10:00
Mark Andrews 0966057f40 check nsupdate handles UPDATE response to QUERY
(cherry picked from commit 0bba0ab10d)
2021-07-21 12:42:49 +10:00
Mark Andrews 5374630ca4 dns_rdata_tostruct() should reject rdata with DNS_RDATA_UPDATE set
(cherry picked from commit e97249e012)
2021-07-21 12:41:35 +10:00
Mark Andrews 45e5972808 Check opcode of messages returned by dns_request_getresponse
(cherry picked from commit ed4e00713f)
2021-07-21 12:41:35 +10:00
Michal Nowak 19b7e821f6 Merge branch 'mnowak/replace-literal-blocks-with-anchors-v9_11' into 'v9_11'
[v9_11] Use anchors instead of literal blocks in .gitlab-ci.yml

See merge request isc-projects/bind9!5280
2021-07-16 14:36:02 +00:00
Michal Nowak 3ad5f304a6 Use anchors instead of literal blocks in .gitlab-ci.yml
Anchor lets the user see the full command logged in GitLab CI:

    ${CONFIGURE} --disable-maintainer-mode --enable-developer ...

Instead of a folded multi-line when literal block is used:

    ${CONFIGURE} \ # collapsed multi-line command

(cherry picked from commit c22008629e)
2021-07-16 15:58:42 +02:00
Mark Andrews d300f78d09 Merge branch 'marka-xmllint-html-v9_11' into 'v9_11'
Check for errors in html files

See merge request isc-projects/bind9!5244
2021-07-02 04:10:19 +00:00
Mark Andrews b4265c90ef Check for errors in html files
xmllint doesn't know about the HTML 5 <section> tag so filter
those out.

(cherry picked from commit ea0624b214)
2021-07-02 13:44:26 +10:00
Mark Andrews 1203892f4d Merge branch '2667-configuration-issues-on-solaris-11-4' into 'v9_11'
Resolve "Configuration issues on Solaris 11.4"

See merge request isc-projects/bind9!4996
2021-06-30 07:28:02 +00:00
Mark Andrews d029cfd10a Solaris native compiler configure fixes
* Drop '-mt' from '$CC'
* Use '$CC -V' for version in summary
2021-06-30 12:14:30 +10:00
Mark Andrews fc6c04d8f8 add gssapi_hack, gssapi_krb5_hack and gssapi_krb5_hack to krb5-config 2021-06-30 12:14:29 +10:00
Mark Andrews 0fabba3dc3 add --with-gssapi=krb5-config to pairwise 2021-06-30 12:14:08 +10:00
Mark Andrews d1ff4e9197 check for gssapi_krb5.h and gssapi/gssapi_krb5.h 2021-06-30 12:14:08 +10:00
Mark Andrews f03c28be84 have --with-gssapi={auto|yes} try krb5-config 2021-06-30 12:14:08 +10:00
Mark Andrews 12e2e4adec don't fallback if krb5-config fails 2021-06-30 12:14:08 +10:00
Mark Andrews fed171c99a handle krb5-config not being present; drop krb5 from krb5-config call 2021-06-30 12:14:08 +10:00
Ondřej Surý 74f59ea675 Merge branch '2183-enable-DF-on-old-socket-code-v9_11' into 'v9_11'
Disable the PMTUD also for the IPv6 UDP sockets

See merge request isc-projects/bind9!5233
2021-06-25 06:18:21 +00:00
Ondřej Surý 8e30211636 Disable the PMTUD also for the IPv6 UDP sockets
Disable the PMTUD also on the IPv6 UDP sockets in addition to IPv4 UDP
sockets.
2021-06-24 17:26:47 +02:00
Michal Nowak f725c7d2db Merge branch 'mnowak/alpine-3.14-v9_11' into 'v9_11'
[v9_11] Add Alpine Linux 3.14

See merge request isc-projects/bind9!5193
2021-06-17 16:25:34 +00:00
Michal Nowak d36568c511 Add Alpine Linux 3.14
(cherry picked from commit 80f828bc37)
2021-06-17 18:21:47 +02:00
Michał Kępień 748302117c Merge branch 'v9_11_33-release' into 'v9_11'
Merge 9.11.33 release branch

See merge request isc-projects/bind9!5188
2021-06-16 20:52:34 +00:00
Michał Kępień 61c6e1ab99 Set up release notes for BIND 9.11.34 2021-06-16 22:47:31 +02:00
Michał Kępień 20e43e62d5 Bump BIND_BASELINE_VERSION for ABI checks 2021-06-16 22:47:31 +02:00
Tinderbox UserandMichał Kępień 1b109d2bfd Merge branch 'prep-release' into v9_11_33-release 2021-06-16 22:47:31 +02:00
Michał Kępień c38896768a Merge branch 'michal/prepare-documentation-for-bind-9.11.33' into 'v9_11_33-release'
Prepare documentation for BIND 9.11.33

See merge request isc-private/bind9!301
2021-06-16 22:47:31 +02:00
Tinderbox UserandMichał Kępień a6a4c5daac prep 9.11.33 2021-06-16 22:47:31 +02:00
Michał Kępień a63df31cc0 Prepare release notes for BIND 9.11.33 2021-06-16 22:47:31 +02:00
Ondřej Surý 792540e629 Merge branch 'ondrej/bump-clang-dependency-to-llvm-12-v9_11' into 'v9_11'
Change the LLVM tools version to 12 (v9.11)

See merge request isc-projects/bind9!5176
2021-06-13 07:13:10 +00:00
Ondřej Surý 2f5ac962bf Change the LLVM tools version to 12
LLVM 12 stable was released on 15. April 2021, change the default
version to the current stable.

(cherry picked from commit 9f7855322c)
2021-06-12 08:59:36 +02:00
Michał Kępień c82392a09f Merge branch '2540-check-dname-resolution-via-itself-v9_11' into 'v9_11'
[v9_11] Check DNAME resolution via itself

See merge request isc-projects/bind9!5137
2021-06-02 13:29:52 +00:00
Mark AndrewsandMichał Kępień 1594ce2117 Check DNAME resolution via itself
(cherry picked from commit cbdea694e8)
2021-06-02 15:11:44 +02:00
Michał Kępień 68e930b97f Merge branch '2467-add-a-system-test-checking-a-malformed-ixfr-v9_11' into 'v9_11'
[v9_11] Add a system test checking a malformed IXFR

See merge request isc-projects/bind9!5134
2021-06-02 12:17:31 +00:00
Mark AndrewsandMichał Kępień 8db59aea11 Add a system test checking a malformed IXFR
Make sure an incoming IXFR containing an SOA record which is not placed
at the apex of the transferred zone does not result in a broken version
of the zone being served by named and/or a subsequent crash.

(cherry picked from commit 5547003a3d)
2021-06-02 13:57:01 +02:00
Michal Nowak d67d86577d Merge branch 'mnowak/add-fedora-34-v9_11' into 'v9_11'
[v9_11] Add Fedora 34

See merge request isc-projects/bind9!5114
2021-05-28 11:34:28 +00:00
Michal Nowak 7889acbc85 Add Fedora 34
(cherry picked from commit 5f27aaa0ff)
2021-05-28 13:09:20 +02:00
Michal Nowak bcf9363d64 Merge branch 'mnowak/install-bind-by-setting-DESTDIR-v9_11' into 'v9_11'
[v9_11] Install BIND with "make DESTDIR=<PATH> install"

See merge request isc-projects/bind9!5092
2021-05-25 16:47:30 +00:00
Michal Nowak 039979e460 Install BIND with "make DESTDIR=<PATH> install"
BIND installation should be done by setting $DESTDIR during "make
install", not by setting --prefix via ./configure to the destination
directory. However, on 9.11 --prefix still needs to be set to eliminate
the compatibility mode with older BIND9 releases (see the comment in
configure.ac, lines 379-396), which does not place sysconfdir and
localstatedir to $DESTDIR/$prefix but directly to $DESTDIR. When
--prefix is set they end up in $DESTDIR/$prefix, which is the BIND 9.16+
default).

    $ ./configure && make && make install DESTDIR=/tmp/bind9
    $ ls /tmp/bind9/{,usr/local}
    /tmp/bind9/:
    etc  usr  var
    /tmp/bind9/usr/local:
    bin  include  lib  sbin  share

    $ ./configure --prefix=/usr/local && make && make install DESTDIR=/tmp/bind9
    $ ls /tmp/bind9/{,usr/local}
    /tmp/bind9/:
    usr
    /tmp/bind9/usr/local:
    bin  etc  include  lib  sbin  share  var

Make sure that installation with DESTDIR=<PATH> works by checking that
named binary and it's respective man page were installed and that
well-known BIND9 directories - and only them - are present in DESTDIR.

Also rename install path variable from BIND_INSTALL_PATH to
INSTALL_PATH to avoid namespace clash in stress tests which use
BIND_INSTALL_PATH variable to configure path to BIND9 binaries.

(cherry picked from commit 823bf3e79b)
2021-05-25 18:42:37 +02:00
Ondřej Surý 4243b429df Merge branch 'ondrej/replace-ubuntu-xenial-with-ubuntu-bionic-v9_11' into 'v9_11'
Replace Ubuntu 16.04 LTS with Ubuntu 18.04 LTS in the GitLab CI (v9.11)

See merge request isc-projects/bind9!5089
2021-05-24 20:22:44 +00:00
Ondřej Surý 46b969f23b Replace Ubuntu 16.04 LTS with Ubuntu 18.04 LTS in the GitLab CI
Ubuntu 16.04 (Xenial Xerus) is reaching End of Standard Support in April
2021 thus we are removing it from the list of supported platforms and
replacing it with Ubuntu 18.04 LTS (Bionic Beaver).

(cherry picked from commit 4402a90bb7)
2021-05-24 21:57:42 +02:00
Michal Nowak 16499e47fc Merge branch 'mnowak/freebsd-13-v9_11' into 'v9_11'
[v9_11] Add FreeBSD 13.0

See merge request isc-projects/bind9!5087
2021-05-24 18:51:30 +00:00
Michal Nowak 25b8add382 Run gcc:tarball CI job for merge requests
Running gcc:tarball CI job for merge requests is consistent with how we
run gcc:out-of-tree CI job and should help identify problems with the
build system during the review process, not once merged during daily
runs. For the sake of time, unit and system tests associated with the
gcc:tarball CI job are excluded from merge requests.

Also, make sure that the tarball-create CI job includes the
default_triggering_rules anchor (as it is on the main branch), otherwise
adding the gcc:tarball CI job to merge request-triggered pipeline fails
with:

    Found errors in your .gitlab-ci.yml: 'gcc:tarball' job needs 'tarball-create' job but it was not added to the pipeline

(cherry picked from commit 83617cea9a)
2021-05-24 20:04:44 +02:00
Michal Nowak a3bd8d36d8 Do not spawn FreeBSD 11 CI jobs in merge requests
(cherry picked from commit 70eccd2952)
2021-05-24 20:04:08 +02:00
Michal Nowak 7319cc786a Create an anchor for schedules, tags, and web rules
It's a common pattern to spawn CI jobs only for pipelines triggered by
schedules, tags, and web. There should be an anchor so that the rules
are not repeated.

(cherry picked from commit e4f88c359c)
2021-05-24 20:03:48 +02:00
Michal Nowak 3f56557d55 Add FreeBSD 13.0
(cherry picked from commit 0714fe6f40)
2021-05-24 19:45:22 +02:00
Michal Nowak 4dea18e4a2 Merge branch '2452-iterated_hash-c-warning-argument-1-of-type-unsigned-char-20-with-mismatched-bound' into 'v9_11'
Fix argument with mismatched bound in isc_iterated_hash()

See merge request isc-projects/bind9!5039
2021-05-20 12:28:27 +00:00
Michal Nowak 57a3ae9d97 Fix argument with mismatched bound in isc_iterated_hash()
GCC 11 produced the following warning:

    iterated_hash.c:21:33: warning: argument 1 of type ‘unsigned char[20]’ with mismatched bound [-Warray-parameter=]
       21 | isc_iterated_hash(unsigned char out[ISC_SHA1_DIGESTLENGTH],
          |                   ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from iterated_hash.c:18:
    ./include/isc/iterated_hash.h:33:37: note: previously declared as ‘unsigned char[155]’
       33 | int isc_iterated_hash(unsigned char out[NSEC3_MAX_HASH_LENGTH],
          |                       ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
2021-05-20 13:35:08 +02:00
Michal Nowak ed85a2f866 Merge branch '2453-sha2-c-warning-argument-with-mismatched-bound' into 'v9_11'
Fix arguments with mismatched bound in lib/isc/sha2.c

See merge request isc-projects/bind9!5038
2021-05-20 11:34:20 +00:00
Michal Nowak 7ceeaca0dc Fix arguments with mismatched bound in lib/isc/sha2.c
GCC 11 produced the following warnings:

    sha2.c:888:26: error: argument 1 of type ‘uint8_t[]’ {aka ‘unsigned char[]’} with mismatched bound [-Werror=array-parameter=]
      888 | isc_sha224_final(uint8_t digest[], isc_sha224_t *context) {
          |                  ~~~~~~~~^~~~~~~~
    In file included from sha2.c:58:
    ./include/isc/sha2.h:132:24: note: previously declared as ‘uint8_t[28]’ {aka ‘unsigned char[28]’}
      132 | void isc_sha224_final (uint8_t[ISC_SHA224_DIGESTLENGTH], isc_sha224_t *);
          |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    sha2.c:1151:26: error: argument 1 of type ‘uint8_t[]’ {aka ‘unsigned char[]’} with mismatched bound [-Werror=array-parameter=]
     1151 | isc_sha256_final(uint8_t digest[], isc_sha256_t *context) {
          |                  ~~~~~~~~^~~~~~~~
    In file included from sha2.c:58:
    ./include/isc/sha2.h:139:24: note: previously declared as ‘uint8_t[32]’ {aka ‘unsigned char[32]’}
      139 | void isc_sha256_final (uint8_t[ISC_SHA256_DIGESTLENGTH], isc_sha256_t *);
          |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    sha2.c:1514:31: error: argument 1 of type ‘uint8_t[]’ {aka ‘unsigned char[]’} with mismatched bound [-Werror=array-parameter=]
     1514 | void isc_sha512_final(uint8_t digest[], isc_sha512_t *context) {
          |                       ~~~~~~~~^~~~~~~~
    In file included from sha2.c:58:
    ./include/isc/sha2.h:153:24: note: previously declared as ‘uint8_t[64]’ {aka ‘unsigned char[64]’}
      153 | void isc_sha512_final (uint8_t[ISC_SHA512_DIGESTLENGTH], isc_sha512_t *);
          |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    sha2.c:1567:26: error: argument 1 of type ‘uint8_t[]’ {aka ‘unsigned char[]’} with mismatched bound [-Werror=array-parameter=]
     1567 | isc_sha384_final(uint8_t digest[], isc_sha384_t *context) {
          |                  ~~~~~~~~^~~~~~~~
    In file included from sha2.c:58:
    ./include/isc/sha2.h:146:24: note: previously declared as ‘uint8_t[48]’ {aka ‘unsigned char[48]’}
      146 | void isc_sha384_final (uint8_t[ISC_SHA384_DIGESTLENGTH], isc_sha384_t *);
          |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    sha2.c:1604:44: error: argument 2 of type ‘char[]’ with mismatched bound [-Werror=array-parameter=]
     1604 | isc_sha224_end(isc_sha224_t *context, char buffer[]) {
          |                                       ~~~~~^~~~~~~~
    In file included from sha2.c:58:
    ./include/isc/sha2.h:133:39: note: previously declared as ‘char[57]’
      133 | char *isc_sha224_end (isc_sha224_t *, char[ISC_SHA224_DIGESTSTRINGLENGTH]);
          |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    sha2.c:1645:44: error: argument 2 of type ‘char[]’ with mismatched bound [-Werror=array-parameter=]
     1645 | isc_sha256_end(isc_sha256_t *context, char buffer[]) {
          |                                       ~~~~~^~~~~~~~
    In file included from sha2.c:58:
    ./include/isc/sha2.h:140:39: note: previously declared as ‘char[65]’
      140 | char *isc_sha256_end (isc_sha256_t *, char[ISC_SHA256_DIGESTSTRINGLENGTH]);
          |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    sha2.c:1686:44: error: argument 2 of type ‘char[]’ with mismatched bound [-Werror=array-parameter=]
     1686 | isc_sha512_end(isc_sha512_t *context, char buffer[]) {
          |                                       ~~~~~^~~~~~~~
    In file included from sha2.c:58:
    ./include/isc/sha2.h:154:39: note: previously declared as ‘char[129]’
      154 | char *isc_sha512_end (isc_sha512_t *, char[ISC_SHA512_DIGESTSTRINGLENGTH]);
          |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    sha2.c:1727:44: error: argument 2 of type ‘char[]’ with mismatched bound [-Werror=array-parameter=]
     1727 | isc_sha384_end(isc_sha384_t *context, char buffer[]) {
          |                                       ~~~~~^~~~~~~~
    In file included from sha2.c:58:
    ./include/isc/sha2.h:147:39: note: previously declared as ‘char[97]’
      147 | char *isc_sha384_end (isc_sha384_t *, char[ISC_SHA384_DIGESTSTRINGLENGTH]);
          |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    cc1: all warnings being treated as errors
2021-05-20 12:55:14 +02:00
Michał Kępień a529145553 Merge branch 'v9_11_32-release' into 'v9_11'
Merge 9.11.32 release branch

See merge request isc-projects/bind9!5070
2021-05-20 10:44:35 +00:00
Michał Kępień 89ac216731 Set up release notes for BIND 9.11.33 2021-05-20 12:34:09 +02:00
Michał Kępień 80ffcfe774 Bump BIND_BASELINE_VERSION for ABI checks 2021-05-20 12:34:09 +02:00
Tinderbox UserandMichał Kępień bb002982b6 Merge branch 'prep-release' into v9_11_32-release 2021-05-20 12:34:09 +02:00
Michał Kępień 27c8369c3c Merge branch 'michal/prepare-documentation-for-bind-9.11.32' into 'v9_11_32-release'
Prepare documentation for BIND 9.11.32

See merge request isc-private/bind9!295
2021-05-20 12:34:09 +02:00
Tinderbox UserandMichał Kępień 82a83e41bf prep 9.11.32 2021-05-20 12:34:09 +02:00
Michał Kępień 1c2c3a90df Prepare release notes for BIND 9.11.32 2021-05-20 12:34:09 +02:00
Michał Kępień 20b7a5d31b Reorder release notes 2021-05-20 12:34:09 +02:00
Michał Kępień 40cce0bb71 Tweak and reword release notes 2021-05-20 12:34:09 +02:00
Michał Kępień 8351a774b3 Tweak and reword recent CHANGES entries 2021-05-20 12:34:09 +02:00
Michal Nowak c0d1666f21 Merge branch 'mnowak/openbsd-6.9-v9_11' into 'v9_11'
[v9_11] Add OpenBSD 6.9

See merge request isc-projects/bind9!5065
2021-05-19 17:33:39 +00:00
Michal Nowak 4b6b04e8bf Add OpenBSD 6.9
(cherry picked from commit 315b8522ba)
2021-05-19 18:27:40 +02:00
Mark Andrews a6e1e8b8a8 Merge branch '2701-gcc-10-fanalyzer-reports-dereference-of-null-label-in-lib-dns-name-c-1167-v9_11' into 'v9_11'
Silence gcc-10-fanalyzer false positive

See merge request isc-projects/bind9!5050
2021-05-18 08:30:23 +00:00
Mark Andrews ff88e33cff Silence gcc-10-fanalyzer false positive
If 'state == ft_ordinary' then 'label' can't be NULL. Add
INSIST to reflect this.

(cherry picked from commit 29f1c1e677)
2021-05-18 16:46:07 +10:00
Mark Andrews c78813338a Merge branch '2702-gcc-10-fanalyzer-reports-v9_11' into 'v9_11'
Silence gcc-10-fanalyzer false positive

See merge request isc-projects/bind9!5045
2021-05-18 06:15:25 +00:00
Mark Andrews baa40e47cd Silence gcc-10-fanalyzer false positive
Add REQUIRE(type == dns_rdatatype_nsec3 || firstp != NULL); so
that dereferences of *firstp is not flagged as a NULL pointer
dereference.

(cherry picked from commit 683ad6e4bd)
2021-05-18 15:48:32 +10:00
Michal Nowak 0703eb14eb Merge branch '2692-grep-from-freebsd-13-0-stumbles-on-r-in-digdelv-test-v9_11' into 'v9_11'
[v9_11] Do not use escape codes for matching with grep

See merge request isc-projects/bind9!5033
2021-05-17 11:37:40 +00:00
Michal Nowak 62035221e3 Do not use escape codes for matching with grep
FreeBSD 13.0 replaced GNU grep with BSD grep and removed support for
"redundant escapes for most ordinary characters" from regex(3) library,
therefore the matching sequence in digdelv/tests.sh needs to be
rewritten otherwise it fails with:

    grep: trailing backslash (\)

(cherry picked from commit 253ae96bf1)
2021-05-17 13:14:31 +02:00
Michal Nowak c524142b74 Merge branch 'mnowak/use-sigabrt-from-start.pl-v9_11' into 'v9_11'
[v9_11] Use SIGABRT instead of SIGKILL to produce cores on failed start

See merge request isc-projects/bind9!4992
2021-05-04 15:54:20 +00:00
Ondřej SurýandMichal Nowak 401b3519eb Use SIGABRT instead of SIGKILL to produce cores on failed start
When the `named` would hang on startup it would be killed with SIGKILL
leaving us with no information about the state the process was in.
This commit changes the start.pl script to send SIGABRT instead, so we
can properly collect and process the coredump from the hung named
process.

(cherry picked from commit 861a236937)
2021-05-04 17:22:41 +02:00
Matthijs Mekking dfadbc9d7b Merge branch 'matthijs-nsupdate-update_test-v9_11' into 'v9_11'
Update nsupdate test (9.11)

See merge request isc-projects/bind9!4979
2021-04-30 12:57:46 +00:00
Matthijs Mekking 5d899d0d99 Update nsupdate test
The nsupdate system test did not record failures from the
'update_test.pl' Perl script. This was because the 'ret' value was
not being saved outside the '{ $PERL ... || ret=1 } cat_i' scope.

Change this piece to store the output in a separate file and then
cat its contents. Now the 'ret' value is being saved.

Also record failures in 'update_test.pl' if sending the update
failed.

Add missing 'n' incrementals to 'nsupdate/test.sh' to keep track of
test numbers.

(cherry picked from commit 5b31811b5f)
2021-04-30 14:30:51 +02:00
Matthijs Mekking f2ff6fcc47 Merge branch '2445-nsec3-iterations-resolver-v9_11' into 'v9_11'
Mark DNSSEC responses with NSEC3 records that exceed 150 as insecure (9.11)

See merge request isc-projects/bind9!4974
2021-04-30 09:35:20 +00:00
Mark AndrewsandMatthijs Mekking 83cbbf0ac8 Add release note for [GL #2445]
(manually picked from commit ad236976fc)
2021-04-30 11:13:37 +02:00
Mark AndrewsandMatthijs Mekking 523b9b02af Add CHANGES for [GL #2445]
(cherry picked from commit fd1f7b6480)
2021-04-30 11:13:37 +02:00
Mark AndrewsandMatthijs Mekking 02f4a9d6b3 Check insecure responses returned with too many NSEC3 iterations
(cherry picked from commit e6e0e29fbb)
2021-04-30 11:13:37 +02:00
Matthijs Mekking 2c81206984 Sync dns results
Add missing DNS results from 9.16. We only care about
DNS_R_NSEC3ITERRANGE but better to sync and use the same numbers than
use a different number for this result code than what is used in 9.16.
2021-04-30 09:58:44 +02:00
Mark AndrewsandMatthijs Mekking 1647bc7dc4 Mark DNSSEC responses with NSEC3 records that exceed 150 as insecure
(cherry picked from commit af02bbcdd6)
2021-04-30 09:36:45 +02:00
Mark Andrews 2ee92dd506 Merge branch '2668-handle-net-dns-versions-that-don-t-support-nsec3param-v9_11' into 'v9_11'
NSEC3PARAM support was added to Net::DNS in 1.00_06

See merge request isc-projects/bind9!4973
2021-04-30 06:56:14 +00:00
Mark Andrews eb3122cd38 NSEC3PARAM support was added to Net::DNS in 1.00_06
Require 1.01 or later to when adding a NSEC3PARAM records.

(cherry picked from commit 044933756a)
2021-04-30 16:29:57 +10:00
Mark Andrews e0fcb90b09 Merge branch '2658-update-zonemd-now-that-rfc-8976-has-been-issued-v9_11' into 'v9_11'
Update ZONEMD to match RFC 8976

See merge request isc-projects/bind9!4970
2021-04-30 02:30:23 +00:00
Mark Andrews e4e4ff0e10 Update ZONEMD to match RFC 8976
* The location of the digest type field has changed to where the
  reserved field was.
* The reserved field is now called scheme and is where the digest
  type field was.
* Digest type 2 has been defined (SHA256).

(cherry picked from commit 8510ccaa54)
2021-04-30 11:31:05 +10:00
Mark Andrews 4aaddec8d9 Merge branch '2642-reduce-the-maximum-nsec3-iterations-that-can-be-configured-v9_11' into 'v9_11'
Reduce nsec3 max iterations to 150 (9.11)

See merge request isc-projects/bind9!4967
2021-04-30 01:14:38 +00:00
Mark Andrews 00a5a54978 Add Release Note for [GL #2642]
(manually picked from commit ca07b8e414)
2021-04-30 10:49:00 +10:00
Mark Andrews d749ccc41a Add CHANGES for [GL #2642]
5625.   [func]          Reduce the supported maximum number of iterations
                        that can be configured in an NSEC3 zones to 150.
                        [GL #2642]

(cherry picked from commit e04f06873f)
2021-04-30 10:49:00 +10:00
Mark Andrews e0fbb10017 Check that excessive iterations in logged by named when
loading an existing zone or transfering from the primary.

(manually picked from commit 46eb21c546)
2021-04-30 10:49:00 +10:00
Mark Andrews aa6a2d3902 Check NSEC3 iterations with dnssec-signzone
(cherry picked from commit 8ec16c378d)
2021-04-30 10:49:00 +10:00
Mark Andrews 80e8f72500 Check that named rejects excessive iterations via UPDATE
(cherry picked from commit 4ce8437a6e)
2021-04-30 10:49:00 +10:00
Mark Andrews f5625719a0 nsupdate: reject attempts to add NSEC3PARAM with excessive iterations
(manually picked from commit 3fe75d9809)
2021-04-30 10:49:00 +10:00
Mark Andrews 6e729ce890 Warn if there is excessive NSEC3 iterations
(cherry picked from commit c9f5f8a059)
2021-04-30 10:49:00 +10:00
Mark Andrews 91a7f94a66 Reduce nsec3 max iterations to 150
(manually picked from commit 29126500d2)
2021-04-30 10:49:00 +10:00
Michal Nowak f727ba383f Merge branch 'mnowak/configure-with-enable-dnstap-by-default-v9_11' into 'v9_11'
[v9_11] Configure with --enable-dnstap by default

See merge request isc-projects/bind9!4966
2021-04-29 14:53:41 +00:00
Michal Nowak da97afefca Suppress TSAN errors from libfstrm.so
dnstap_test produces TSAN errors which originate in libfstrm.so. Unless
libfstrm is TSAN clean or a workaround is placed in libfstrm sources,
suppressing TSAN coming from libfstrm is necessary to test DNSTAP under
TSAN.

(cherry picked from commit c97c6fbfea)
2021-04-29 16:19:16 +02:00
Michal Nowak b6695749c3 Configure with --enable-dnstap by default
All platforms but OpenBSD have dnstap dependencies readily in their
respective repositories, and dnstap thus can be tested there. Given that
majority of images have dnstap dependencies available, it seems fitting
to make dnstap enabled by default.

Also dnstap is disabled for TSAN jobs configured with --disable-atomic
as it's known to produce TSAN errors (#2664) and for the gcc:noatomics
job because it has threads disabled, which is a requirement for dnstap.

(cherry picked from commit deff0ae317)
2021-04-29 16:12:13 +02:00
Michał Kępień 52e752f25d Merge branch 'v9_11_31-release' into 'v9_11'
Merge 9.11.31 release branch

See merge request isc-projects/bind9!4956
2021-04-29 10:08:00 +00:00
Michał Kępień 06a3b1858c Set up release notes for BIND 9.11.32 2021-04-29 11:56:03 +02:00
Michał Kępień c0d7b3bb1d Bump BIND_BASELINE_VERSION for ABI checks 2021-04-29 11:56:03 +02:00
Tinderbox UserandMichał Kępień c3c68c6451 Merge branch 'prep-release' into v9_11_31-release 2021-04-29 11:56:03 +02:00
Michał Kępień a35cf8bc65 Merge branch 'michal/prepare-documentation-for-bind-9.11.31' into 'v9_11_31-release'
Prepare documentation for BIND 9.11.31

See merge request isc-private/bind9!289
2021-04-29 11:56:03 +02:00
Tinderbox UserandMichał Kępień fa3ef955fe prep 9.11.31 2021-04-29 11:56:03 +02:00
Tinderbox UserandMichał Kępień 763e28ef90 Merge branch 'prep-release' into v9_11_30-release 2021-04-29 11:56:03 +02:00
Michał Kępień 83694be221 Prepare release notes for BIND 9.11.31 2021-04-29 11:56:03 +02:00
Michał Kępień 008a7ef2fb Merge branch 'michal/prepare-documentation-for-bind-9.11.30' into 'security-v9_11'
Prepare documentation for BIND 9.11.30

See merge request isc-private/bind9!286
2021-04-29 11:56:03 +02:00
Tinderbox UserandMichał Kępień ab7ca7759c prep 9.11.30 2021-04-29 11:56:03 +02:00
Michał Kępień 8736b29be8 Merge branch '2604-confidential-issue-spnego-v9_11' into 'security-v9_11'
[CVE-2021-25216] [v9_11] Documentation for ZDI-CAN-13347: ISC BIND TKEY Query Integer Overflow Remote Code Execution Vulnerability

See merge request isc-private/bind9!284
2021-04-29 11:56:03 +02:00
Michał Kępień 72995fb678 Prepare release notes for BIND 9.11.30 2021-04-29 11:56:03 +02:00
Michał Kępień 3c5c4bc2b4 Merge branch '2540-confidential-issue-existing-dname-v9_11' into 'security-v9_11'
[CVE-2021-25215] [v9_11] Properly answer queries for DNAME records that require the DNAME to be processed to resolve itself

See merge request isc-private/bind9!282
2021-04-29 11:56:03 +02:00
Michał Kępień 891db84e90 Add release note for [GL #2604] 2021-04-29 11:56:03 +02:00
Michał Kępień 614fc0e9d0 Tweak and reword release notes 2021-04-29 11:56:03 +02:00
Michał Kępień 44a7cc73b5 Merge branch '2467-confidential-issue-ixfr-checks-v9_11' into 'security-v9_11'
[CVE-2021-25214] [v9_11] Prevent malformed incoming zone transfers from producing a zone without an SOA record

See merge request isc-private/bind9!263
2021-04-29 11:56:03 +02:00
Mark AndrewsandMichał Kępień 14f5703516 Add Release Notes entry for [GL #2540] 2021-04-29 11:56:03 +02:00
Michał Kępień 948285ef15 Add CHANGES entry for [GL #2604] 2021-04-29 11:56:03 +02:00
Michał Kępień 1fd570e4a9 Tweak and reword recent CHANGES entries 2021-04-29 11:56:03 +02:00
Mark AndrewsandMichał Kępień abad891076 Add release note for [GL #2467] 2021-04-29 11:56:03 +02:00
Mark AndrewsandMichał Kępień df056d0b33 Add CHANGES entry for [GL #2540] 2021-04-29 11:56:03 +02:00
Mark AndrewsandMichał Kępień 4b307852eb Add CHANGES entry for [GL #2467] 2021-04-29 11:56:03 +02:00
Mark AndrewsandMichał Kępień dacfd3fb87 Handle DNAME lookup via itself
When answering a query, named should never attempt to add the same RRset
to the ANSWER section more than once.  However, such a situation may
arise when chasing DNAME records: one of the DNAME records placed in the
ANSWER section may turn out to be the final answer to a client query,
but there is no way to know that in advance.  Tweak the relevant INSIST
assertion in query_find() so that it handles this case properly.  The
rdataset is freed later anyway, so there is no need to clean it up
immediately.
2021-04-29 11:56:03 +02:00
Mark AndrewsandMichał Kępień d7011a55d3 Unload a zone if a transfer breaks its SOA record
If a zone transfer results in a zone not having any NS records, named
stops serving it because such a zone is broken.  Do the same if an
incoming zone transfer results in a zone lacking an SOA record at the
apex or containing more than one SOA record.
2021-04-29 11:56:03 +02:00
Mark AndrewsandMichał Kępień 0313ede6e1 Address inconsistencies in checking added RRsets
loading_addrdataset() rejects SOA RRsets which are not at top of zone.
addrdataset() should similarly reject such RRsets.
2021-04-29 11:56:03 +02:00
Mark AndrewsandMichał Kępień 4eff09c6b1 Check SOA owner names in zone transfers
An IXFR containing SOA records with owner names different than the
transferred zone's origin can result in named serving a version of that
zone without an SOA record at the apex.  This causes a RUNTIME_CHECK
assertion failure the next time such a zone is refreshed.  Fix by
immediately rejecting a zone transfer (either an incremental or
non-incremental one) upon detecting an SOA record not placed at the apex
of the transferred zone.
2021-04-29 11:56:03 +02:00
Michał Kępień 0def38f7b4 Merge branch '2634-test-tkey-gssapi-credential-conditionally-v9_11' into 'v9_11'
[v9_11] Test "tkey-gssapi-credential" conditionally

See merge request isc-projects/bind9!4941
2021-04-26 08:23:52 +00:00
Michał Kępień 796df91217 Test "--without-gssapi" in GitLab CI
GitLab CI pipelines do not currently include a Linux job that would have
GSSAPI support disabled.  Add the "--without-gssapi" option to the
./configure invocation on Debian 9 to address that deficiency and also
to continuously test that build-time switch.

(cherry picked from commit a3957af864)
2021-04-26 09:46:23 +02:00
Michał Kępień 7a06b8aefe Test "tkey-gssapi-credential" conditionally
If "tkey-gssapi-credential" is set in the configuration and GSSAPI
support is not available, named will refuse to start.  As the test
system framework does not support starting named instances
conditionally, ensure that "tkey-gssapi-credential" is only present in
named.conf if GSSAPI support is available.

(cherry picked from commit 6feac68b50)
2021-04-26 09:46:23 +02:00
Petr Špaček 19f0f0aa1a Merge branch '2634-test-tkey-gssapi-credential-v9_11' into 'v9_11'
Add tests for the "tkey-gssapi-credential" option

See merge request isc-projects/bind9!4934
2021-04-23 10:33:08 +00:00
Petr Špaček d0a16000dd Add tests for the "tkey-gssapi-credential" option
Four named instances in the "nsupdate" system test have GSS-TSIG support
enabled.  All of them currently use "tkey-gssapi-keytab".  Configure two
of them with "tkey-gssapi-credential" to test that option.

As "tkey-gssapi-keytab" and "tkey-gssapi-credential" both provide the
same functionality, no test modifications are required.  The difference
between the two options is that the value of "tkey-gssapi-keytab" is an
explicit path to the keytab file to acquire credentials from, while the
value of "tkey-gssapi-credential" is the name of the principal whose
credentials should be used; those credentials are looked up in the
keytab file expected by the Kerberos library, i.e. /etc/krb5.keytab by
default.  The path to the default keytab file can be overridden using by
setting the KRB5_KTNAME environment variable.  Utilize that variable to
use existing keytab files with the "tkey-gssapi-credential" option.

The KRB5_KTNAME environment variable should not interfere with the
"tkey-gssapi-keytab" option.  Nevertheless, rename one of the keytab
files used with "tkey-gssapi-keytab" to something else than the contents
of the KRB5_KTNAME environment variable in order to make sure that both
"tkey-gssapi-keytab" and "tkey-gssapi-credential" are actually tested.

(cherry picked from commit 1746d2e84a)
2021-04-23 10:24:00 +02:00
Michał Kępień c92b2d4b30 Merge branch '2634-fix-handling-undefined-GSS_SPNEGO_MECHANISM-macro-v9_11' into 'v9_11'
[v9_11] Fix handling undefined GSS_SPNEGO_MECHANISM macro

See merge request isc-projects/bind9!4903
2021-04-16 13:00:08 +00:00
Michał Kępień 86a3b8e269 Add CHANGES entry
(cherry picked from commit 381202629e)
2021-04-16 14:54:31 +02:00
Michał Kępień 870701c336 Fix handling undefined GSS_SPNEGO_MECHANISM macro
BIND 9 attempts to look up GSSAPI OIDs for the Kerberos 5 and SPNEGO
mechanisms in the relevant header files provided by the Kerberos/GSSAPI
library used.  Due to the differences between various Kerberos/GSSAPI
implementations, if any of the expected preprocessor macros
(GSS_KRB5_MECHANISM, GSS_SPNEGO_MECHANISM) is not defined in the header
files provided by the library used, the code in lib/dns/gssapictx.c
defines its own version of each missing macro, so that BIND 9 can
attempt to use the relevant security mechanisms anyway.

Commit 7f08c756aa, which contains a
partial backport of the changes introduced in commit
978c7b2e89, left a block of code in the
lib/dns/include/dst/gssapi.h header which defines the
GSS_SPNEGO_MECHANISM preprocessor macro to NULL if it is not defined by
any header file provided by the Kerberos/GSSAPI library used.  This
causes the gss_add_oid_set_member() call in the mech_oid_set_create()
helper function to always return an error.  This in turn causes the
dst_gssapi_acquirecred() function to also always return an error, which
ultimately prevents any named instance whose configuration includes the
"tkey-gssapi-credential" option from starting.

Remove the offending conditional definition of the GSS_SPNEGO_MECHANISM
preprocessor macro from lib/dns/include/dst/gssapi.h, so that a proper
GSSAPI OID is assigned to that macro in lib/dns/gssapictx.c when the
Kerberos/GSSAPI library used does not define it.

(cherry picked from commit 648ef3a2b4)
2021-04-16 14:54:31 +02:00
Michał Kępień ca42d0c93f Roll back unnecessary libtool updates
Commit 7f08c756aa inadvertently included
libtool updates which were unrelated to the removal of custom SPNEGO
code.  Roll these updates back to avoid confusion.

(cherry picked from commit 87f1db2ce4)
2021-04-16 14:54:31 +02:00
Mark Andrews e4c36e78ac Merge branch '2597-make-calling-generic-rdata-methods-consistent-v9_11' into 'v9_11'
Make calling generic rdata methods consistent

See merge request isc-projects/bind9!4844
2021-04-13 02:11:05 +00:00
Mark Andrews 25ba866b62 Make calling generic rdata methods consistent
add matching macros to pass arguments from called methods
to generic methods.  This will reduce the amount of work
required when extending methods.

Also cleanup unnecessary UNUSED declarations.

(cherry picked from commit a88d3963e2)
2021-04-13 01:53:26 +00:00
Michał Kępień bca041aa5b Merge branch '2620-free-resources-when-gss_accept_sec_context-fails-v9_11' into 'v9_11'
[v9_11] Free resources when gss_accept_sec_context() fails

See merge request isc-projects/bind9!4876
2021-04-08 09:26:56 +00:00
Michał Kępień 3726321304 Add CHANGES entry
(cherry picked from commit 7eb87270a4)
2021-04-08 11:04:42 +02:00
Michał Kępień dc1ed88776 Free resources when gss_accept_sec_context() fails
Even if a call to gss_accept_sec_context() fails, it might still cause a
GSS-API response token to be allocated and left for the caller to
release.  Make sure the token is released before an early return from
dst_gssapi_acceptctx().

(cherry picked from commit d954e152d9)
2021-04-08 11:04:21 +02:00
Michał Kępień 0c04b83106 Merge branch 'michal/fix-triggering-rules-for-the-tarball-create-job-v9_11' into 'v9_11'
[v9_11] Fix triggering rules for the "tarball-create" job

See merge request isc-projects/bind9!4872
2021-04-07 20:37:25 +00:00
Michał Kępień ba106468a9 Fix triggering rules for the "tarball-create" job
Commit de35d321f0 (a backport of commit
4d5d3b75da) did not account for the fact
that the "tarball-create" GitLab CI job is not created for manually
triggered pipelines.  This prevents manual pipeline creation from
succeeding as it causes the "gcc:tarball" job to have unsatisfied
dependencies.  Make sure the "tarball-create" job is created for
manually triggered pipelines to allow such pipelines to be started
again.

(cherry picked from commit 233294d750)
2021-04-07 22:34:15 +02:00
Diego dos Santos Fronza e4d6bf4434 Merge branch '2582-threadsanitizer-data-race-lib-dns-zone-c-10272-7-in-zone_maintenance-v9_11' into 'v9_11'
Resolve TSAN data race in zone_maintenance

See merge request isc-projects/bind9!4868
2021-04-07 14:47:29 +00:00
Diego Fronza e2e6fd4fa0 Resolve TSAN data race in zone_maintenance
Fix race between zone_maintenance and dns_zone_notifyreceive functions,
zone_maintenance was attempting to read a zone flag calling
DNS_ZONE_FLAG(zone, flag) while dns_zone_notifyreceive was updating
a flag in the same zone calling DNS_ZONE_SETFLAG(zone, ...).

The code reading the flag in zone_maintenance was not protected by the
zone's lock, to avoid a race the zone's lock is now being acquired
before an attempt to read the zone flag is made.
2021-04-07 10:48:12 -03:00
Ondřej Surý 58808db133 Merge branch '2607-remove-custom-spnego-v9_11' into 'v9_11'
Remove custom ISC SPNEGO implementation (v9.11)

See merge request isc-projects/bind9!4857
2021-04-01 14:14:58 +00:00
Mark AndrewsandOndřej Surý 858b2aaf00 Add CHANGES and release note for GL #2607 2021-04-01 16:12:41 +02:00
Ondřej SurýandOndřej Surý 224ce9e0c0 Move the dummy shims to single ifndef GSSAPI block
Previously, every function had it's own #ifdef GSSAPI #else #endif block
that defined shim function in case GSSAPI was not being used.  Now the
dummy shim functions have be split out into a single #else #endif block
at the end of the file.

This makes the gssapictx.c similar to 9.17.x code, making the backports
and reviews easier.
2021-04-01 10:39:48 +02:00
Mark AndrewsandOndřej Surý 57de8df75b Add Heimdal compatibility support
The Heimdal Kerberos library handles the OID sets in a different manner.
Unify the handling of the OID sets between MIT and Heimdal
implementations by dynamically creating the OID sets instead of using
static predefined set.  This is how upstream recommends to handle the
OID sets.
2021-04-01 10:39:48 +02:00
Mark AndrewsandOndřej Surý 383297f80b Request krb5 CFLAGS and LIBS from $KRB5_CONFIG
The GSSAPI now needs both gssapi and krb5 libraries, so we need to
request both CFLAGS and LIBS from the configure script.
2021-04-01 10:39:48 +02:00
Mark AndrewsandOndřej Surý 7f08c756aa Remove custom ISC SPNEGO implementation
The custom ISC SPNEGO mechanism implementation is no longer needed on
the basis that all major Kerberos 5/GSSAPI (mit-krb5, heimdal and
Windows) implementations support SPNEGO mechanism since 2006.

This commit removes the custom ISC SPNEGO implementation, and removes
the option from both autoconf and win32 Configure script.  Unknown
options are being ignored, so this doesn't require any special handling.
2021-04-01 10:39:48 +02:00
Mark AndrewsandOndřej Surý 0e9cd93c06 Handle expected signals in tsiggss authsock.pl script
When the authsock.pl script would be terminated with a signal,
it would leave the pidfile around.  This commit adds a signal
handler that cleanups the pidfile on signals that are expected.
2021-04-01 10:19:33 +02:00
Michal Nowak 4034b703fd Merge branch 'mnowak/web-run-gcc-tarball-ci-job-v9_11' into 'v9_11'
[v9_11] Run gcc:tarball CI job in web-triggered pipelines

See merge request isc-projects/bind9!4853
2021-03-31 15:04:22 +00:00
Michal Nowak de35d321f0 Run gcc:tarball CI job in web-triggered pipelines
The gcc:tarball CI job may identify problems with tarballs created by
"make dist" of the tarball-create CI job. Enabling the gcc:tarball CI
job in web-triggered pipelines provides developers with a test vector.

(cherry picked from commit 4d5d3b75da)
2021-03-31 16:55:34 +02:00
Michal Nowak 697e0c1178 Merge branch 'v9_11_29-release' into 'v9_11'
Merge 9.11.29 release branch

See merge request isc-projects/bind9!4822
2021-03-19 09:38:22 +00:00
Michal Nowak 136fc17bd3 Set up release notes for BIND 9.11.30 2021-03-18 18:27:34 +01:00
Michal Nowak 9dbd9c7abd Bump BIND_BASELINE_VERSION for ABI checks 2021-03-18 18:08:28 +01:00
Tinderbox User a35739f6ad Merge branch 'prep-release' into v9_11_29-release 2021-03-09 12:49:28 +00:00
Tinderbox User c06787e095 prep 9.11.29 2021-03-09 12:49:04 +00:00
Michal Nowak 8253f9829f Merge branch 'mnowak/prepare-documentation-for-bind-9.11.29' into 'v9_11_29-release'
Prepare documentation for BIND 9.11.29

See merge request isc-private/bind9!268
2021-03-09 09:18:13 +00:00
Michal Nowak ac1c862bb9 Prepare release notes for BIND 9.11.29 2021-03-08 18:28:02 +01:00
Michal Nowak 94e4c071c0 Tweak and reword release notes 2021-03-08 18:27:45 +01:00
Michal Nowak b44eca143b Tweak and reword recent CHANGES entries 2021-03-08 12:52:02 +01:00
Ondřej Surý ff463f375f Merge branch '2238-fix-back-port-issues-missing-checks' into 'v9_11'
Resolve "Fix back port issues:  missing checks."

See merge request isc-projects/bind9!4637
2021-02-25 08:16:15 +00:00
Mark Andrews dc88bd641d Address unchecked returns leading to NULL pointer dereferences
on out of memory conditions.
2021-02-25 11:44:28 +11:00
Michal Nowak cfcd42f6a2 Merge branch '2446-query-c-5430-16-runtime-error-v9_11' into 'v9_11'
[v9_11] Initialize checknames field in dns_view_create()

See merge request isc-projects/bind9!4736
2021-02-23 16:48:54 +00:00
Michal Nowak b9ef330fbe Initialize checknames field in dns_view_create()
The 'checknames' field wasn't initialized in dns_view_create(), but it
should otherwise AddressSanitizer identifies the following runtime error
in query_test.c.

    runtime error: load of value 190, which is not a valid value for type '_Bool'

(cherry picked from commit 0c6fa16477)
2021-02-23 16:48:10 +01:00
Michal Nowak aa4d0ab62d Merge branch 'mnowak/alpine-3.13-v9_11' into 'v9_11'
[v9_11] Add Alpine Linux 3.13

See merge request isc-projects/bind9!4733
2021-02-23 15:05:17 +00:00
Michal Nowak 85f7448c37 Add Alpine Linux 3.13
(cherry picked from commit 909c85f7a9)
2021-02-23 15:48:52 +01:00
Michal Nowak d16cba2698 Merge branch 'mnowak/pairwise-pict-keep-stderr-v9_11' into 'v9_11'
[v9_11] Do not remove stderr from pict output

See merge request isc-projects/bind9!4731
2021-02-23 14:32:35 +00:00
Michal Nowak eb576888da Do not remove stderr from pict output
Removing stderr from the pict tool serves no purpose and drops valuable
information, we might use when debugging failed pairwise CI job, such
as:

    Input Error: A parameter names must be unique

(cherry picked from commit 079debaa10)
2021-02-23 15:27:59 +01:00
Mark Andrews e42577800b Merge branch '2499-a-loc-record-with-a-invalid-direction-field-triggers-an-insist-v9_11' into 'v9_11'
Resolve "A LOC record with a invalid direction field triggers an INSIST"

See merge request isc-projects/bind9!4712
2021-02-19 01:07:26 +00:00
Mark Andrews 894f25082e Add release note for [GL #2499]
(cherry picked from commit 3d340ecfd2)
2021-02-19 11:44:08 +11:00
Mark Andrews 5e2b287f63 Add CHANGES for [GL #2499]
(cherry picked from commit 6f47e0956c)
2021-02-19 11:41:02 +11:00
Mark Andrews 0ee76590d6 Correctly detect when get_direction failed
(cherry picked from commit 009358d77d)
2021-02-19 11:40:05 +11:00
Mark Andrews 4af7a5f1b1 Test a LOC record with an invalid direction field
(cherry picked from commit 07902d9f9d)
2021-02-19 11:40:04 +11:00
Michal Nowak 4e8f6962f0 Merge branch 'mnowak/make-kyua-report-html-less-verbose-v9_11' into 'v9_11'
[v9_11] Make "kyua report-html" less verbose on stdout

See merge request isc-projects/bind9!4708
2021-02-18 14:58:05 +00:00
Michal Nowak b3cc0b6128 Make "kyua report-html" less verbose on stdout
"kyua report-html" command in CI generates more than two pages of output
to stdout, which is nothing but which HTML pages Kyua generated, e.g.:

  Generating kyua_html/context.html
  Generating kyua_html/lib_dns_tests_acl_test_main.html
  ...
  Generating kyua_html/lib_ns_tests_query_test_main.html
  Generating kyua_html/report.css
  Generating kyua_html/index.html

This is seldomly useful and requires the user to scroll three pages
upwards to get to unit test results.

(cherry picked from commit 74fa196286)
2021-02-18 15:49:37 +01:00
Michal Nowak 5a179636b2 Merge branch 'mnowak/system-test-check-for-file-not-removed-v9_11' into 'v9_11'
[v9_11] Check for "file not removed" in system test output

See merge request isc-projects/bind9!4705
2021-02-18 10:14:08 +00:00
Michal Nowak 936f7a2da9 Prevent Git to expand $systest
CentOS 8 "git status" unexpectedly expands search directory "tsig" to
also search in the "tsiggss" directory, thus incorrectly identifying
files as "not removed" in the "tsig" directory:

$ git status -su --ignored tsig
$ touch tsiggss/ns1/{named.run,named.memstats}
$ git status -su --ignored tsig
!! tsiggss/ns1/named.memstats
!! tsiggss/ns1/named.run

(cherry picked from commit f310b75250)
2021-02-18 10:16:30 +01:00
Michal Nowak c6fcb29a27 Clean omitted files from system tests
Any CI job:
- I:dns64:file ns1/Ksigned.+005+*.key not removed
- I:dns64:file ns1/Ksigned.ns1/Ksigned.+005+*.private
- I:dns64:file ns1/Ksigned.ns1/Ksigned.+005+*.key
- I:dns64:file ns1/Ksigned.ns1/Ksigned.+005+*.private
- I:dns64:file ns1/Ksigned.ns1/dsset-signed.
- I:dns64:file ns1/Ksigned.ns1/named.conf
- I:dns64:file ns1/Ksigned.ns1/signed.db
- I:dns64:file ns1/Ksigned.ns1/signed.db.signed
- I:dns64:file ns1/Ksigned.ns2/named.conf
- I:ixfr:file ns5/named.run.prev not removed
- I:legacy:file ns1/named_dump.db.test20 not removed

(cherry picked from commit 14a104d121)
2021-02-18 10:05:18 +01:00
Michal Nowak 588084a930 Check for "file not removed" in system test output
Run this check only when in Git repository, because run.sh produces the
"file not removed" warnings only when in Git repository.

(cherry picked from commit 4a2778abdf)
2021-02-18 09:44:31 +01:00
Michal Nowak eb26769b45 Add system test name to "file not removed" info
(cherry picked from commit 10bf725ee2)
2021-02-18 09:42:12 +01:00
Michał Kępień 146f62140c Merge branch 'michal/add-doc-arm-notes-9.11.29.xml-to-util-copyrights' into 'v9_11'
Add doc/arm/notes-9.11.29.xml to util/copyrights

See merge request isc-projects/bind9!4702
2021-02-17 22:05:23 +00:00
Michał Kępień 4d96e4cee0 Add doc/arm/notes-9.11.29.xml to util/copyrights
Commit 81446d61c3 did not update
util/copyrights as it should have.  Add the missing line to prevent the
"misc" GitLab CI job from failing.
2021-02-17 23:01:29 +01:00
Michał Kępień ae703e371b Merge branch 'v9_11_28-release' into 'v9_11'
Merge 9.11.28 release branch

See merge request isc-projects/bind9!4701
2021-02-17 21:55:48 +00:00
Michał Kępień 81446d61c3 Set up release notes for BIND 9.11.29 2021-02-17 22:51:34 +01:00
Michał Kępień fdd5b1df80 Bump BIND_BASELINE_VERSION for ABI checks 2021-02-17 22:51:34 +01:00
Tinderbox UserandMichał Kępień d90c8a098f Merge branch 'prep-release' into security-v9_11 2021-02-17 22:46:14 +01:00
Michał Kępień 6f24003573 Merge branch 'michal/prepare-documentation-for-bind-9.11.28' into 'security-v9_11'
Prepare release notes for BIND 9.11.28

See merge request isc-private/bind9!241
2021-02-17 22:46:14 +01:00
Tinderbox UserandMichał Kępień 43ef3488bf prep 9.11.28 2021-02-17 22:46:14 +01:00
Michał Kępień dc5f0e77ec Merge branch '2354-security-off-by-one-error-in-spnego-v9_11' into 'security-v9_11'
[v9_11] [CVE-2020-8625] Fix off-by-one bug in ISC SPNEGO implementation

See merge request isc-private/bind9!238
2021-02-17 22:46:14 +01:00
Michał Kępień ae6fc963b6 Prepare release notes for BIND 9.11.28 2021-02-17 22:46:14 +01:00
Ondřej SurýandMichał Kępień e145c40c93 Add CHANGES and release note for GL #2354 2021-02-17 22:46:14 +01:00
Ondřej SurýandMichał Kępień abed9404d1 Fix off-by-one bug in ISC SPNEGO implementation
The ISC SPNEGO implementation is based on mod_auth_kerb code.  When
CVE-2006-5989 was disclosed, the relevant fix was not applied to the
BIND 9 codebase, making the latter vulnerable to the aforementioned flaw
when "tkey-gssapi-keytab" or "tkey-gssapi-credential" is set in
named.conf.

The original description of CVE-2006-5989 was:

    Off-by-one error in the der_get_oid function in mod_auth_kerb 5.0
    allows remote attackers to cause a denial of service (crash) via a
    crafted Kerberos message that triggers a heap-based buffer overflow
    in the component array.

Later research revealed that this flaw also theoretically enables remote
code execution, though achieving the latter in real-world conditions is
currently deemed very difficult.

This vulnerability was responsibly reported as ZDI-CAN-12302 ("ISC BIND
TKEY Query Heap-based Buffer Overflow Remote Code Execution
Vulnerability") by Trend Micro Zero Day Initiative.
2021-02-17 22:46:14 +01:00
Petr Špaček 68dfe7bf57 Merge branch 'pspacek/ci-python-allthetime-v9_11' into 'v9_11'
[v9_11] Run Python linters in CI even outside of merge requests

See merge request isc-projects/bind9!4676
2021-02-15 09:33:56 +00:00
Petr Špaček 8228d78e03 Run Python linters in CI even outside of merge requests
Previously it did not get run on scheduled CI pipelines.

(cherry picked from commit 74d7cddc4c)
2021-02-15 10:26:56 +01:00
Michal Nowak fb46f5b205 Merge branch 'mnowak/check-for-unrecognized-options-v9_11' into 'v9_11'
[v9_11] Check for unrecognized configure options

See merge request isc-projects/bind9!4565
2021-02-12 15:02:10 +00:00
Michal Nowak 10d272bc35 Add --enable-option-checking=fatal to ./configure in CI
The --enable-option-checking=fatal option prevents ./configure from
proceeding when an unknown option is used in the ./configure step in CI.
This change will avoid adding unsupported ./configure options or options
with typo or typo in pairwise testing "# [pairwise: ...]" marker.

(cherry picked from commit 4295c82e45)
2021-02-12 14:27:21 +01:00
Michal Nowak 45ec9f37a7 Drop mutexatomics CI jobs
The --enable-mutex-atomics switch for ./configure is not available in
BIND 9.11.  Remove the jobs attempting to test it from GitLab CI
configuration.
2021-02-12 14:24:37 +01:00
Michal Nowak 196cdf12ca Replace --disable-geoip option with --with-geoip
--disable-geoip is not a valid switch for ./configure.  Use
--without-geoip2 instead in GitLab CI.
2021-02-12 14:22:49 +01:00
Michal Nowak 0a80a9b498 Drop unsupported configure options
The --enable-pthread-rwlock and --enable-mutex-atomics switches for
./configure are not available in BIND 9.11.  Do not attempt using them
in GitLab CI.
2021-02-12 14:22:49 +01:00
Michal Nowak c207a2e476 Merge branch '2312-lint-generated-manual-pages-v9_11' into 'v9_11'
[v9_11] Lint manual pages

See merge request isc-projects/bind9!4674
2021-02-12 12:41:06 +00:00
Michal Nowak 8ec37aaf91 Lint manual pages
As we generate manual pages from DocBook sources, we don't have absolute
control on manual page output and therefore 'mandoc -Tlint' may always
report warnings we can't eliminate. In light of this linting level was
set for mandoc to '-Werror' to ignore warnings and style issues, only
errors are reported.

(cherry picked from commit 22fdcb30db)
2021-02-12 13:04:55 +01:00
Michal Nowak 7cc88b385e Merge branch 'mnowak/check-asan-errors-in-configure-v9_11' into 'v9_11'
[v9_11] Check config.log for ASAN errors

See merge request isc-projects/bind9!4657
2021-02-09 11:44:27 +00:00
Michal Nowak f9da4b31ab Check config.log for ASAN errors
./configure checks might produce a false negative error due to ASAN
errors and thus disable some options.

(cherry picked from commit 0db934d401)
2021-02-09 12:08:13 +01:00
Michal Nowak 8740f2b97c Merge branch 'mnowak/free-openssl-keys-in-configure' into 'v9_11'
Free OpenSSL keys in ./configure

See merge request isc-projects/bind9!4656
2021-02-08 09:14:29 +00:00
Mark AndrewsandMichal Nowak edd6d5884a Free OpenSSL keys in ./configure
Failure to free OpenSSL keys in ./configure results in ASAN errors and
false negative errors.
2021-02-08 08:57:06 +01:00
Michal Nowak f082ed9d57 Merge branch 'mnowak/check-arm-pdf-validity-v9_11' into 'v9_11'
[v9_11] Check PDF file structure with QPDF

See merge request isc-projects/bind9!4652
2021-02-03 17:03:57 +00:00
Michal Nowak 3a5ccdb314 Check PDF file structure with QPDF
"qpdf --check" checks file structure of generated ARM PDF.

(cherry picked from commit 359708b9d6)
2021-02-03 17:59:16 +01:00
Mark Andrews f944568333 Merge branch '2093-tsan-files-are-not-being-captured-by-unit-tests-2-v9_11' into 'v9_11'
Look for tsan files in the top build directory

See merge request isc-projects/bind9!4639
2021-02-02 22:26:53 +00:00
Mark Andrews adbd30692a Look for tsan files in the top build directory
(cherry picked from commit 48715f6ad4)
2021-02-03 08:56:13 +11:00
Michal Nowak 09c3afb886 Merge branch 'mnowak/add-rsabigexponent-README-v9_11' into 'v9_11'
[v9_11] Add README.md file to rsabigexponent system test

See merge request isc-projects/bind9!4632
2021-01-29 15:03:07 +00:00
Michal Nowak aee29f7c17 Add README.md file to rsabigexponent system test
This README.md describes why is bigkey needed.

(cherry picked from commit a247f24dfa)
2021-01-29 15:48:39 +01:00
Mark Andrews 9db0c3606e Merge branch 'marka-changes-line-length-v9_11' into 'v9_11'
Detect overly long CHANGES lines

See merge request isc-projects/bind9!4616
2021-01-28 04:35:22 +00:00
Mark Andrews 925aba66fe Detect overly long CHANGES lines
(cherry picked from commit b1ecab6383)
2021-01-28 15:09:46 +11:00
Michal Nowak ad7d5cd4c0 Merge branch '2415-update-coverity-scan-ci-job-to-2020-09-v9_11' into 'v9_11'
[v9_11] Update Coverity Scan CI job to 2020.09

See merge request isc-projects/bind9!4595
2021-01-25 11:38:28 +00:00
Michal Nowak 8d325a59ae Update Coverity Scan CI job to 2020.09
(cherry picked from commit 7d428be79b)
2021-01-25 12:36:28 +01:00
Michał Kępień 3359bf5dd7 Merge branch 'michal/add-doc-arm-notes-9.11.28.xml-to-util-copyrights' into 'v9_11'
Add doc/arm/notes-9.11.28.xml to util/copyrights

See merge request isc-projects/bind9!4589
2021-01-21 09:31:27 +00:00
Michał Kępień 2c972164d7 Add doc/arm/notes-9.11.28.xml to util/copyrights
Commit d602219a8d did not update
util/copyrights as it should have.  Add the missing line to prevent the
"misc" GitLab CI job from failing.
2021-01-21 10:27:58 +01:00
Michał Kępień dfebcd1dfd Merge branch 'v9_11_27-release' into 'v9_11'
Merge 9.11.27 release branch

See merge request isc-projects/bind9!4588
2021-01-21 08:46:25 +00:00
Michał Kępień d602219a8d Set up release notes for BIND 9.11.28 2021-01-21 09:42:23 +01:00
Michał Kępień b0dbe91c70 Bump BIND_BASELINE_VERSION for ABI checks 2021-01-21 09:42:23 +01:00
Tinderbox UserandMichał Kępień 28b1355be8 Merge branch 'prep-release' into v9_11_27-release 2021-01-21 09:38:24 +01:00
Michał Kępień f895e8baac Merge branch 'michal/prepare-documentation-for-bind-9.11.27' into 'v9_11_27-release'
Prepare documentation for BIND 9.11.27

See merge request isc-private/bind9!232
2021-01-21 09:38:24 +01:00
Tinderbox UserandMichał Kępień 177d66e39f prep 9.11.27 2021-01-21 09:38:24 +01:00
Michał Kępień 545c4fe44e Prepare release notes for BIND 9.11.27 2021-01-21 09:38:24 +01:00
Michał Kępień f62cc34cd9 Tweak and reword release notes 2021-01-21 09:38:24 +01:00
Michał Kępień ad0d0b4d9c Tweak and reword recent CHANGES entries 2021-01-21 09:38:24 +01:00
Michal Nowak 0ea4f682f3 Merge branch 'mnowak/fsanitize-thread-hijacks-dlopen-and-dlclose-use-dlsym' into 'v9_11'
Use dlsym for -ldl detection

See merge request isc-projects/bind9!4575
2021-01-19 08:04:47 +00:00
Michal Nowak c857e63087 Use dlsym for -ldl detection
-fsanitize=thread hijacks dlopen() and dlclose(), therefore dlopen()
won't request -ldl to be used for linking during Autoconf test. Check
for dlsym() presence will fail and dlzexternal and dyndb system tests
won't run.

Retrieved from 2dd54fa62f.
2021-01-19 08:05:54 +01:00
Michał Kępień 1c44767d46 Merge branch 'michal/improve-danger-checks-v9_11' into 'v9_11'
[v9_11] Improve Danger checks

See merge request isc-projects/bind9!4578
2021-01-18 14:16:57 +00:00
Michał Kępień f0c79dbab1 Skip subject line length check for merge commits
Some merge requests (e.g. those created for release branches) include
merge commits.  Prevent Danger from warning about excessive subject line
length for merge commits.  (While the proper way to detect a merge
commit would be to check the 'parents' attribute of a commit object,
Danger Python does not seem to populate that attribute, so a simple
string search is performed on the commit subject instead.)

(cherry picked from commit bc42690c99)
2021-01-18 15:14:55 +01:00
Michał Kępień 029a873329 Skip length check for lines containing references
The Danger GitLab CI job currently flags excessively long lines in
commit log messages.  Exclude lines containing references (i.e. starting
with "[1]", "[2]", etc.) from this check.  This allows e.g. long URLs to
be included in commit log messages without triggering Danger warnings.

(cherry picked from commit 09964e8085)
2021-01-18 15:14:55 +01:00
Michał Kępień 7e6f583f41 Only warn about fixup commits once per run
The Danger GitLab CI job currently generates a separate error message
about fixup commits being present in a merge request for every such
commit found.  Prevent that by making it only log that error message
once per run.

(cherry picked from commit 801d13f62f)
2021-01-18 15:14:55 +01:00
Michał Kępień 584032ac38 Flag trailing dots in commit subject lines
Make the Danger GitLab CI job fail when the subject line for any commit
belonging to a merge request contains a trailing dot.

(cherry picked from commit 953c810f41)
2021-01-18 15:14:55 +01:00
Michał Kępień 1ca23a2f54 Flag missing pairwise testing markers
Make the Danger GitLab CI job fail when a merge request adds a new
./configure switch without also adding a "# [pairwise: ...]" marker that
the relevant GitLab CI job uses for preparing the pairwise testing
model.  This helps to ensure that any newly added ./configure switches
are tested by the pairwise testing GitLab CI job.

(cherry picked from commit ff58ec8cef)
2021-01-18 15:14:55 +01:00
Michał Kępień a32ba5692a Suggest adding release notes for customer issues
Make Danger suggest adding a release note to a merge request if the
latter is marked with the "Customer" label but not with the "Release
Notes" label.

(cherry picked from commit d81ad454cc)
2021-01-18 15:14:55 +01:00
Michał Kępień 2a6f00e34c Handle [placeholder] CHANGES entries
Make the Danger GitLab CI job fail when a merge request targeting a
branch different than "main" adds any [placeholder] entries to the
CHANGES file.  Prevent Danger from flagging missing GitLab identifiers
for [placeholder] CHANGES entries.

(cherry picked from commit 2f77c7680a)
2021-01-18 15:14:55 +01:00
Michał Kępień 40b12b0cb2 Flag missing CVE identifiers
Make Danger ensure that if a merge request fixes a security issue then
that merge request includes a CHANGES entry and a release note, both of
which contain a CVE identifier.

(cherry picked from commit 97364f5518)
2021-01-18 15:14:55 +01:00
Michal Nowak e56554052c Merge branch '2323-add-non-threaded-CI-jobs' into 'v9_11'
[v9_11] Add --disable-threads to noatomics build job in CI

See merge request isc-projects/bind9!4450
2021-01-13 17:25:15 +00:00
Michal Nowak b23215ed19 Add --disable-threads to noatomics build job in CI 2021-01-13 18:10:24 +01:00
Michał Kępień 876dda6398 Merge branch '2366-add-CHANGES-entry-v9_11' into 'v9_11'
[v9_11] Add CHANGES entry for GL #2366

See merge request isc-projects/bind9!4546
2021-01-08 11:54:11 +00:00
Michał Kępień f94cd65410 Add CHANGES entry for GL #2366
(cherry picked from commit 995b72d2b7)
2021-01-08 12:52:14 +01:00
Michal Nowak 5b607485df Merge branch 'mnowak/copyrights-2021' into 'v9_11'
Copyright update for 2021

See merge request isc-projects/bind9!4536
2021-01-07 14:55:01 +00:00
Michal Nowak 187fd98bca update for 2021 2021-01-06 16:55:54 +01:00
Mark Andrews f1f78f0a28 Merge branch '2366-bind-9-16-10-build-fails-with-libmaxminddb-1-4-3-v9_11' into 'v9_11'
Fix 'configure --with-maxminddb=<path>'

See merge request isc-projects/bind9!4534
2021-01-06 08:42:52 +00:00
Mark Andrews 773abc3c52 Fix 'configure --with-maxminddb=<path>'
(cherry picked from commit cafb021b2a)
2021-01-06 08:40:52 +00:00
Mark Andrews b177131a16 Merge branch '2355-incorrect-increment-of-inactive-in-rbtdb-c-maybe_free_rbtdb-v9_11' into 'v9_11'
Resolve "Incorrect increment of inactive in rbtdb.c:maybe_free_rbtdb()"

See merge request isc-projects/bind9!4533
2021-01-06 08:40:29 +00:00
Mark Andrews c9cb0ff921 Add release note
(cherry picked from commit 584e589d84)
2021-01-06 19:21:35 +11:00
Mark Andrews 9c89571282 Add CHANGES
(cherry picked from commit 65702896bd)
2021-01-06 19:19:39 +11:00
Mark Andrews 25150c15e7 Inactive incorrectly incremented
It is possible to have two threads destroying an rbtdb at the same
time when detachnode() executes and removes the last reference to
a node between exiting being set to true for the node and testing
if the references are zero in maybe_free_rbtdb().  Move NODE_UNLOCK()
to after checking if references is zero to prevent detachnode()
changing the reference count too early.

(cherry picked from commit 859d2fdad6)
2021-01-06 19:18:54 +11:00
Mark Andrews 576e48f7d5 Merge branch '2348-bin-tools-mdig-compile-link-failure-because-of-missing-isccfg-dependency-2' into 'v9_11'
Resolve "bin/tools/mdig: compile/link failure because of missing isccfg dependency"

See merge request isc-projects/bind9!4494
2020-12-21 01:38:22 +00:00
Mark Andrews 5cec1ba2fa Handle shared library platforms that don't support inter library dependancies 2020-12-21 01:10:00 +00:00
Mark Andrews d744db22f3 fix LIB0 for isc-hmac-fixup and named-nzd2nzf 2020-12-21 01:10:00 +00:00
Mark Andrews f63b2d8fbd update link order of libbind9 2020-12-21 01:10:00 +00:00
Michał Kępień 28d6c11f89 Merge branch 'v9_11_26-release' into 'v9_11'
Merge 9.11.26 release branch

See merge request isc-projects/bind9!4502
2020-12-16 21:39:40 +00:00
Michał Kępień f9f7f4a95f Set up release notes for BIND 9.11.27 2020-12-16 22:37:18 +01:00
Michał Kępień 65142b527e Bump BIND_BASELINE_VERSION for ABI checks 2020-12-16 22:37:18 +01:00
Tinderbox UserandMichał Kępień 94c269633c Merge branch 'prep-release' into v9_11_26-release 2020-12-16 22:32:08 +01:00
Michał Kępień 52e342ebcd Merge branch 'michal/prepare-release-notes-for-bind-9.11.26' into 'v9_11_26-release'
Prepare release notes for BIND 9.11.26

See merge request isc-private/bind9!226
2020-12-16 22:32:08 +01:00
Tinderbox UserandMichał Kępień 363a2c3e5e prep 9.11.26 2020-12-16 22:32:08 +01:00
Michał Kępień 85887a43b8 Prepare release notes for BIND 9.11.26 2020-12-16 22:32:08 +01:00
Michał Kępień 5575baf143 Reorder release notes 2020-12-16 22:32:08 +01:00
Michał Kępień f39197e714 Tweak and reword release notes 2020-12-16 22:32:08 +01:00
Michał Kępień fe90f08656 Tweak and reword recent CHANGES entries 2020-12-16 22:32:08 +01:00
Michal NowakandMichał Kępień 2d0c8c8135 Miscellaneous minor documentation updates 2020-12-16 22:32:08 +01:00
Mark Andrews 01c6715169 Merge branch 'marka-noatomic-v9_11' into 'v9_11'
Address TSAN errors when atomics are not available

See merge request isc-projects/bind9!4267
2020-12-10 22:24:25 +00:00
Mark Andrews 8780605bc0 Flush client before putting it on inactive
WARNING: ThreadSanitizer: data race
    Write of size 4 at 0x000000000001 by thread T1:
    #0 get_client bin/named/client.c:3928:16
    #1 ns_client_replace bin/named/client.c:3725:12
    #2 query_recurse bin/named/query.c:4366:13
    #3 query_find bin/named/query.c
    #4 ns_query_start bin/named/query.c:9716:8
    #5 client_request bin/named/client.c:3127:3
    #6 dispatch lib/isc/task.c:1157:7
    #7 run lib/isc/task.c:1331:2

    Previous write of size 4 at 0x000000000001 by thread T2:
    #0 exit_check bin/named/client.c:706:17
    #1 ns_client_detach bin/named/client.c:3702:8
    #2 query_resume bin/named/query.c:4186:3
    #3 dispatch lib/isc/task.c:1157:7
    #4 run lib/isc/task.c:1331:2
2020-12-10 06:31:20 +00:00
Mark Andrews 042e1e3a44 Lock check of DNS_ZONEFLG_EXITING flag
WARNING: ThreadSanitizer: data race
    Read of size 4 at 0x000000000001 by thread T1 (mutexes: write M1):
    #0 dns_zone_refresh lib/dns/zone.c:10447
    #1 dns_zone_notifyreceive2 lib/dns/zone.c:13646
    #2 dns_zone_notifyreceive2 lib/dns/zone.c:13497
    #3 ns_notify_start bin/named/notify.c:150
    #4 client_request bin/named/client.c:3137
    #5 dispatch lib/isc/task.c:1157
    #6 run lib/isc/task.c:1331
    #7 <null> <null>

    Previous write of size 4 at 0x000000000001 by thread T2 (mutexes: write M2):
    #0 dns_zone_refresh lib/dns/zone.c:10466
    #1 zone_maintenance lib/dns/zone.c:10236
    #2 zone_timer lib/dns/zone.c:13136
    #3 dispatch lib/isc/task.c:1157
    #4 run lib/isc/task.c:1331
    #5 <null> <null>
2020-12-10 06:31:20 +00:00
Mark Andrews 7982767d4a Ignore TSAN errors with getcounter and setcounter
WARNING: ThreadSanitizer: data race
    Read of size 8 at 0x000000000001 by thread T1:
    #0 getcounter lib/isc/stats.c:289:15
    #1 isc_stats_update_if_greater lib/isc/stats.c:464:24
    #2 client_accept bin/named/client.c:3599:2
    #3 client_start bin/named/client.c:833:4
    #4 dispatch lib/isc/task.c:1157:7
    #5 run lib/isc/task.c:1331:2

    Previous write of size 8 at 0x000000000001 by thread T2:
    #0 setcounter lib/isc/stats.c:313:27
    #1 isc_stats_update_if_greater lib/isc/stats.c:466:3
    #2 client_accept bin/named/client.c:3599:2
    #3 client_start bin/named/client.c:833:4
    #4 dispatch lib/isc/task.c:1157:7
    #5 run lib/isc/task.c:1331:2
2020-12-10 06:31:19 +00:00
Mark Andrews 7382c3929a Ingore TSAN errors accessing 'last'
WARNING: ThreadSanitizer: data race
    Read of size 4 at 0x000000000001 by thread T1:
    #0 log_quota bin/named/query.c:4291:22
    #1 query_recurse bin/named/query.c:4346:4
    #2 query_find bin/named/query.c
    #3 ns_query_start bin/named/query.c:9716:8
    #4 client_request bin/named/client.c:3115:3
    #5 dispatch lib/isc/task.c:1157:7
    #6 run lib/isc/task.c:1331:2

    Previous write of size 4 at 0x000000000001 by thread T2:
    #0 last_cmpxchg bin/named/query.c:81:6
    #1 log_quota bin/named/query.c:4293:7
    #2 query_recurse bin/named/query.c:4346:4
    #3 query_find bin/named/query.c
    #4 ns_query_start bin/named/query.c:9716:8
    #5 client_request bin/named/client.c:3115:3
    #6 dispatch lib/isc/task.c:1157:7
    #7 run lib/isc/task.c:1331:2
2020-12-10 06:31:19 +00:00
Ondřej SurýandMark Andrews 761cedc2b4 Don't use rwlocks for reference counting
WARNING: ThreadSanitizer: data race
    Write of size 8 at 0x000000000001 by thread T1 (mutexes: write M1):
    #0 memset <null>
    #1 mem_put lib/isc/mem.c:819
    #2 isc___mem_free lib/isc/mem.c:1662
    #3 isc__mem_free lib/isc/mem.c:3078
    #4 isc___mem_putanddetach lib/isc/mem.c:1221
    #5 isc__mem_putanddetach lib/isc/mem.c:3033
    #6 destroyring lib/dns/tsig.c:494
    #7 dns_tsigkeyring_dumpanddetach lib/dns/tsig.c:665
    #8 destroy lib/dns/view.c:392
    #9 dns_view_weakdetach lib/dns/view.c:704
    #10 zone_free lib/dns/zone.c:1152
    #11 zone_shutdown lib/dns/zone.c:13123
    #12 dispatch lib/isc/task.c:1157
    #13 run lib/isc/task.c:1331
    #14 <null> <null>

    Previous atomic read of size 8 at 0x000000000001 by thread T2:
    #0 __tsan_atomic64_load <null>
    #1 isc_rwlock_unlock lib/isc/rwlock.c:612
    #2 dns_tsigkeyring_dumpanddetach lib/dns/tsig.c:632
    #3 destroy lib/dns/view.c:392
    #4 dns_view_weakdetach lib/dns/view.c:704
    #5 zone_free lib/dns/zone.c:1149
    #6 zone_shutdown lib/dns/zone.c:13123
    #7 dispatch lib/isc/task.c:1157
    #8 run lib/isc/task.c:1331
    #9 <null> <null>
2020-12-10 06:31:19 +00:00
Mark Andrews b86b3fe853 Ignore TSAN errors when accessing 'ns_client_requests' 2020-12-10 06:31:19 +00:00
Mark Andrews d85196cdca Ignore TSAN errors accessing init_count and header->count
WARNING: ThreadSanitizer: data race
    Write of size 4 at 0x000000000001 by thread T1 (mutexes: write M1):
    #0 subtractrdataset lib/dns/rbtdb.c:7065:21
    #1 dns_db_subtractrdataset lib/dns/db.c:807:10
    #2 diff_apply lib/dns/diff.c:377:14
    #3 dns_diff_apply lib/dns/diff.c:458:10
    #4 do_one_tuple lib/dns/zone.c:4103:11
    #5 update_one_rr lib/dns/zone.c:4132:10
    #6 keyfetch_done lib/dns/zone.c:9835:4
    #7 dispatch lib/isc/task.c:1157:7
    #8 run lib/isc/task.c:1331:2

    Previous write of size 4 at 0x000000000001 by thread T2 (mutexes: write M2):
    #0 addrdataset lib/dns/rbtdb.c:6869:21
    #1 dns_db_addrdataset lib/dns/db.c:783:10
    #2 addoptout lib/dns/ncache.c:264:10
    #3 dns_ncache_add lib/dns/ncache.c:101:10
    #4 ncache_adderesult lib/dns/resolver.c:5989:12
    #5 ncache_message lib/dns/resolver.c:6165:11
    #6 resquery_response lib/dns/resolver.c:8691:12
    #7 dispatch lib/isc/task.c:1157:7
    #8 run lib/isc/task.c:1331:2
2020-12-10 06:31:19 +00:00
Mark Andrews fdb893ede1 Address data race in dns_stats_detach over references
WARNING: ThreadSanitizer: data race
    Write of size 4 at 0x000000000001 by thread T1 (mutexes: write M1):
    #0 dns_stats_detach lib/dns/stats.c:115:19
    #1 destroy lib/dns/view.c:527:3
    #2 dns_view_weakdetach lib/dns/view.c:704:3
    #3 zone_free lib/dns/zone.c:1149:3
    #4 zone_shutdown lib/dns/zone.c:13123:3
    #5 dispatch lib/isc/task.c:1157:7
    #6 run lib/isc/task.c:1331:2

    Previous read of size 4 at 0x000000000001 by thread T2:
    #0 dns_stats_detach lib/dns/stats.c:118:13
    #1 destroy lib/dns/view.c:527:3
    #2 dns_view_weakdetach lib/dns/view.c:704:3
    #3 zone_free lib/dns/zone.c:1152:3
    #4 zone_shutdown lib/dns/zone.c:13123:3
    #5 dispatch lib/isc/task.c:1157:7
    #6 run lib/isc/task.c:1331:2
2020-12-10 06:31:19 +00:00
Mark Andrews e989ba66f0 Lock access to acache stats when not using atomics
WARNING: ThreadSanitizer: data race
    Write of size 4 at 0x000000000001 by thread T1 (mutexes: write M1):
    #0 dns_acache_getentry lib/dns/acache.c:1549:2
    #1 rdataset_getadditional lib/dns/rbtdb.c:9912:11
    #2 dns_rdataset_getadditional lib/dns/rdataset.c:711:11
    #3 query_addadditional2 bin/named/query.c:1991:11
    #4 additionaldata_ns lib/dns/./rdata/generic/ns_2.c:198:10
    #5 dns_rdata_additionaldata lib/dns/rdata.c:1246:2
    #6 dns_rdataset_additionaldata lib/dns/rdataset.c:629:12
    #7 query_addrdataset bin/named/query.c:2435:8
    #8 query_addrrset bin/named/query.c:2826:2
    #9 query_addbestns bin/named/query.c:3525:2
    #10 query_find bin/named/query.c:9204:4
    #11 query_resume bin/named/query.c:4188:12
    #12 dispatch lib/isc/task.c:1157:7
    #13 run lib/isc/task.c:1331:2

    Previous write of size 4 at 0x000000000001 by thread T2 (mutexes: write M2):
    #0 dns_acache_countquerymiss lib/dns/acache.c:1201:2
    #1 rdataset_getadditional lib/dns/rbtdb.c:9896:4
    #2 dns_rdataset_getadditional lib/dns/rdataset.c:711:11
    #3 query_addadditional2 bin/named/query.c:1991:11
    #4 additionaldata_ns lib/dns/./rdata/generic/ns_2.c:198:10
    #5 dns_rdata_additionaldata lib/dns/rdata.c:1246:2
    #6 dns_rdataset_additionaldata lib/dns/rdataset.c:629:12
    #7 query_addrdataset bin/named/query.c:2435:8
    #8 query_addrrset bin/named/query.c:2826:2
    #9 query_find bin/named/query.c:9176:4
    #10 query_resume bin/named/query.c:4188:12
    #11 dispatch lib/isc/task.c:1157:7
2020-12-10 06:31:19 +00:00
Mark Andrews d4a59f232e Ignore TSAN warnings in state_key_init - deliberate
WARNING: ThreadSanitizer: data race
    Write of size 1 at 0x000000000001 by thread T1 (mutexes: write M1, write M2):
    #0 state_key_init lib/dns/geoip2.c:150:5
    #1 get_entry_for lib/dns/geoip2.c:241:11
    #2 dns_geoip_match lib/dns/geoip2.c:410:10
    #3 dns_aclelement_match2 lib/dns/acl.c:493:11
    #4 dns_acl_match2 lib/dns/acl.c:298:7
    #5 allowed bin/named/client.c:1869:11
    #6 ns_client_isself bin/named/client.c:1934:7
    #7 notify_isself lib/dns/zone.c:11055:11
    #8 notify_send lib/dns/zone.c:11374:7
    #9 notify_find_address lib/dns/zone.c:11178:2
    #10 zone_notify lib/dns/zone.c:11616:3
    #11 zone_maintenance lib/dns/zone.c:10291:4
    #12 zone_timer lib/dns/zone.c:13136:2
    #13 dispatch lib/isc/task.c:1157:7
    #14 run lib/isc/task.c:1331:2

    Previous read of size 1 at 0x000000000001 by thread T2 (mutexes: write M3):
    #0 state_key_init lib/dns/geoip2.c:134:7
    #1 get_entry_for lib/dns/geoip2.c:241:11
    #2 dns_geoip_match lib/dns/geoip2.c:410:10
    #3 dns_aclelement_match2 lib/dns/acl.c:493:11
    #4 dns_acl_match2 lib/dns/acl.c:298:7
    #5 allowed bin/named/client.c:1869:11
    #6 ns_client_isself bin/named/client.c:1934:7
    #7 notify_isself lib/dns/zone.c:11055:11
    #8 notify_send lib/dns/zone.c:11374:7
    #9 notify_find_address lib/dns/zone.c:11178:2
    #10 zone_notify lib/dns/zone.c:11616:3
    #11 zone_maintenance lib/dns/zone.c:10291:4
    #12 zone_timer lib/dns/zone.c:13136:2
    #13 dispatch lib/isc/task.c:1157:7
    #14 run lib/isc/task.c:1331:2
2020-12-10 06:31:19 +00:00
Mark Andrews 5f6ab3512e Silence TSAN warning on spins in isc_rwlock_lock
WARNING: ThreadSanitizer: data race
    Write of size 4 at 0x000000000001 by thread T1:
    #0 isc_rwlock_lock lib/isc/rwlock.c:720:2
    #1 findnodeintree lib/dns/rbtdb.c:3060:2
    #2 findnsec3node lib/dns/rbtdb.c:3164:10
    #3 dns_db_findnsec3node lib/dns/db.c:528:10
    #4 diff_apply lib/dns/diff.c:318:5
    #5 dns_diff_applysilently lib/dns/diff.c:463:10
    #6 signname bin/dnssec/./dnssec-signzone.c:1118:11
    #7 sign bin/dnssec/./dnssec-signzone.c:1599:2
    #8 dispatch lib/isc/task.c:1157:7
    #9 run lib/isc/task.c:1331:2

    Previous read of size 4 at 0x000000000001 by thread T2:
    #0 isc_rwlock_lock lib/isc/rwlock.c:704:25
    #1 addrdataset lib/dns/rbtdb.c:6853:2
    #2 dns_db_addrdataset lib/dns/db.c:783:10
    #3 diff_apply lib/dns/diff.c:370:14
    #4 dns_diff_applysilently lib/dns/diff.c:463:10
    #5 signname bin/dnssec/./dnssec-signzone.c:1118:11
    #6 sign bin/dnssec/./dnssec-signzone.c:1599:2
    #7 dispatch lib/isc/task.c:1157:7
    #8 run lib/isc/task.c:1331:2
2020-12-10 06:31:19 +00:00
Mark Andrews a241c69920 Lock read of refs when atomics are not available.
WARNING: ThreadSanitizer: data race
    Read of size 4 at 0x000000000001 by thread T1 (mutexes: write M1):
    #0 zone_iattach lib/dns/zone.c:5412:2
    #1 soa_query lib/dns/zone.c:12725:2
    #2 dispatch lib/isc/task.c:1157:7
    #3 run lib/isc/task.c:1331:2

    Previous write of size 4 at 0x000000000001 by thread T2 (mutexes: write M2):
    #0 dns_zone_detach lib/dns/zone.c:5346:2
    #1 ns_server_refreshcommand bin/named/./server.c:9880:3
    #2 ns_control_docommand bin/named/control.c:247:12
    #3 control_recvmessage bin/named/controlconf.c:469:13
    #4 dispatch lib/isc/task.c:1157:7
    #5 run lib/isc/task.c:1331:2
2020-12-10 06:31:19 +00:00
Mark Andrews 1caef804d5 Ignore thread sanitizer warnings in stats counters
set ISC_NO_SANITIZE_THREAD for incrementcounter and decrementcounter

    WARNING: ThreadSanitizer: data race
    Write of size 8 at 0x000000000001 by thread T1:
    #0 decrementcounter lib/isc/stats.c:258:26
    #1 isc_stats_decrement lib/isc/stats.c:350:2
    #2 dec_stats lib/isc/unix/socket.c:934:3
    #3 socketclose lib/isc/unix/socket.c:2270:3
    #4 destroy lib/isc/unix/socket.c:2323:3
    #5 isc__socket_detach lib/isc/unix/socket.c:3275:3
    #6 isc_socket_detach lib/isc/unix/./../socket_api.c:128:3
    #7 exit_check bin/named/client.c:593:4
    #8 ns_client_next bin/named/client.c:947:8
    #9 client_request bin/named/client.c
    #10 dispatch lib/isc/task.c:1157:7
    #11 run lib/isc/task.c:1331:2

    Previous write of size 8 at 0x000000000001 by thread T2:
    #0 incrementcounter lib/isc/stats.c:239:26
    #1 isc_stats_increment lib/isc/stats.c:340:2
    #2 inc_stats lib/isc/unix/socket.c:923:3
    #3 internal_accept lib/isc/unix/socket.c:3741:4
    #4 dispatch lib/isc/task.c:1157:7
    #5 run lib/isc/task.c:1331:2
2020-12-10 06:31:19 +00:00
Mark Andrews 0e5a076cc1 Prevent inlining of code with thread sanitiser disabled 2020-12-10 06:31:19 +00:00
Mark Andrews c2676bccc5 Add TSAN builds and tests with --disable-atomics specified 2020-12-10 06:31:19 +00:00
Mark Andrews 1b47fbab11 Merge branch '2324-key_mutex-undeclared-in-geoip2-c-with-threads-disabled' into 'v9_11'
Resolve "'key_mutex' undeclared in geoip2.c with threads disabled"

See merge request isc-projects/bind9!4454
2020-12-10 03:10:04 +00:00
Mark Andrews d8047eeb94 Add CHANGES 2020-12-10 13:47:07 +11:00
Mark Andrews f3c402baed Only lock access to epoll_ctl when using watcher thread 2020-12-10 02:34:36 +00:00
Mark Andrews 7466b505b3 check result 2020-12-10 02:34:36 +00:00
Mark Andrews 136804b1a0 #ifdef protect key_mutex 2020-12-10 02:34:36 +00:00
Ondřej Surý 89a74d0b01 Merge branch 'ondrej/clang-format-11-v9_11' into 'v9_11'
Bump the clang version to 11 (v9.11)

See merge request isc-projects/bind9!4481
2020-12-08 19:09:22 +00:00
Ondřej Surý e39899a718 Bump the clang version to 11 (stable) 2020-12-08 19:41:48 +01:00
Ondřej Surý 171e3ac2c9 Merge branch '2250-dns-flag-day-2020-revert-nocookie-udp-size-v9_11' into 'v9_11'
Resolve "DNS Flag Day 2020 - EDNS buffer size configuring does not work anymore"

See merge request isc-projects/bind9!4457
2020-12-02 15:33:25 +00:00
Ondřej SurýandOndřej Surý 8aa8e521a9 Add CHANGES and release not for GL #2250
(cherry picked from commit c7d81f12f8)
2020-12-02 12:06:22 +01:00
Ondřej SurýandOndřej Surý 6425dfa9cb Change the default value for nocookie-udp-size back to 4096
The DNS Flag Day 2020 reduced all the EDNS buffer sizes to 1232.  In
this commit, we revert the default value for nocookie-udp-size back to
4096 because the option is too obscure and most people don't realize
that they also need to change this configuration option in addition to
max-udp-size.

(cherry picked from commit 79c196fc77)
2020-12-02 12:04:28 +01:00
Mark Andrews 867649907c Merge branch 'nothread-tast_test' into 'v9_11'
Pass task_test also with threads disabled

See merge request isc-projects/bind9!4442
2020-12-01 23:28:13 +00:00
Petr MensikandMark Andrews 839350f5f6 Pass task_test also with threads disabled
Condition cv is declared only when threads are used. Use it only in that
case. Test compiles and passes without thread support also.
2020-12-01 23:06:19 +00:00
Mark Andrews 0563ccd25d Merge branch '2305-adjust-recursion-limits-v9_11' into 'v9_11'
Adjust default value of "max-recursion-queries"

See merge request isc-projects/bind9!4448
2020-12-01 22:29:48 +00:00
Mark Andrews d09991e4e9 Adjust default value of "max-recursion-queries"
Since the queries sent towards root and TLD servers are now included in
the count (as a result of the fix for CVE-2020-8616),
"max-recursion-queries" has a higher chance of being exceeded by
non-attack queries.  Increase its default value from 75 to 100.

(cherry picked from commit ab0bf49203)
2020-12-01 22:13:05 +00:00
Mark Andrews 53203b8f04 Merge branch '2280-check-dname-handling-when-qtype-is-cname-any-2' into 'v9_11'
Resolve "Check DNAME handling when QTYPE is CNAME/ANY"

See merge request isc-projects/bind9!4394
2020-12-01 22:12:35 +00:00
Mark AndrewsandEvan Hunt ca9dc40634 Fix DNAME when QTYPE is CNAME or ANY
The synthesised CNAME is not supposed to be followed when the
QTYPE is CNAME or ANY as the lookup is satisfied by the CNAME
record.
2020-12-01 11:46:32 -08:00
Mark Andrews 0720c50351 Merge branch '2315-bind-9-11-22-9-11-25-fails-to-build-for-aep-hsm-native-pkcs11-v9_11' into 'v9_11'
Resolve "BIND 9.11.22 - 9.11.25 fails to build for AEP HSM native pkcs11"

See merge request isc-projects/bind9!4446
2020-12-01 13:51:40 +00:00
Mark Andrews b578dd70d9 Add release note for [GL #2315]
(cherry picked from commit 356243aaec)
2020-12-01 23:31:16 +11:00
Mark Andrews f9f8dc24e0 Add CHANGES
(cherry picked from commit 11a3545e32)
2020-12-01 23:19:46 +11:00
Mark Andrews 0e7a4169bd Fix misplaced declaration
(cherry picked from commit 49b9219bb3)
2020-12-01 23:19:46 +11:00
Michał Kępień 319b718638 Merge branch '2310-make-docbook-sources-namespaced-again' into 'v9_11'
Make DocBook sources namespaced again

See merge request isc-projects/bind9!4440
2020-11-30 08:35:49 +00:00
Michał Kępień dfdd3a8a2f Make DocBook sources namespaced again
Every DocBook source document can be namespaced (DocBook 5) or
non-namespaced (DocBook 4).  The set of XSL stylesheets used for
producing an output document can also be namespaced or non-namespaced.
Namespaced source documents should be used with namespaced stylesheets
and non-namespaced source documents should be used with non-namespaced
stylesheets.  However, both stylesheet flavors contain processing rules
which allow them to be used interchangeably for any type of source
document.

Unfortunately, these processing rules became broken in version 1.79.1 of
the stylesheets, which means that non-namespaced source documents can no
longer be correctly transformed into man pages using namespaced
stylesheets and vice versa.  This problem was fixed upstream [1], but no
released version of the XSL stylesheets contains that fix yet.

Back in 2016, this problem was reported as RT #43831 and allegedly fixed
in commit 1b8ce3b330.  However, that fix
only helped for the non-namespaced version of the stylesheets - while
also breaking man page generation for the namespaced flavor.

Since using namespaced DocBook sources is the current best practice
(DocBook 5), make BIND DocBook sources namespaced again.  When using
version 1.79.1 or 1.79.2 of the XSL stylesheets, care must be taken to
ensure namespaced stylesheets are used for generating BIND
documentation.

[1] https://github.com/docbook/xslt10-stylesheets/issues/109
2020-11-30 09:33:32 +01:00
Mark Andrews 31a35b9364 Merge branch '2275-tighten-dns-cookie-response-handling-v9_11' into 'v9_11'
Resolve "Tighten DNS COOKIE response handling"

See merge request isc-projects/bind9!4439
2020-11-26 23:35:55 +00:00
Mark Andrews 21caa1bd21 Add release note for [GL #2275]
(cherry picked from commit d0dd71380b)
2020-11-27 10:20:40 +11:00
Mark Andrews f9de8808a2 Add CHANGES note for [GL #2275]
(cherry picked from commit 15e7a4b047)
2020-11-27 10:20:40 +11:00
Mark Andrews 28f1cbb007 Add comment about cookie sizes
(cherry picked from commit 304df53991)
2020-11-27 10:20:40 +11:00
Mark Andrews 81e5877520 Check that missing cookies are handled
(cherry picked from commit bd9155590e)
2020-11-27 10:20:40 +11:00
Mark Andrews cdf73095ab Tighten DNS COOKIE response handling
Fallback to TCP when we have already seen a DNS COOKIE response
from the given address and don't have one in this UDP response. This
could be a server that has turned off DNS COOKIE support, a
misconfigured anycast server with partial DNS COOKIE support, or a
spoofed response. Falling back to TCP is the correct behaviour in
all 3 cases.

(cherry picked from commit 0e3b1f5a25)
2020-11-27 09:28:09 +11:00
Michal Nowak d50cc1d81a Merge branch '2224-fixup-core-back-traces-v9_11' into 'v9_11'
[v9_11] Resolve "Fixup core back traces."

See merge request isc-projects/bind9!4436
2020-11-26 17:41:39 +00:00
Michal Nowak 76d1c90ef7 Write traceback file to the same directory as core file
The traceback files could overwrite each other on systems which do not
use different core dump file names for different processes.  Prevent
that by writing the traceback file to the same directory as the core
dump file.

These changes still do not prevent the operating system from overwriting
a core dump file if the same binary crashes multiple times in the same
directory and core dump files are named identically for different
processes.

(cherry picked from commit 6428fc26af)
2020-11-26 18:25:44 +01:00
Mark AndrewsandMichal Nowak 43c1e5be46 Unify whitespace in bin/tests/system/run.sh
Replace tabs with spaces to make whitespace consistent across the entire
bin/tests/system/run.sh script.

(cherry picked from commit 0f0a006c)
2020-11-26 18:21:05 +01:00
Michal Nowak 0a5cf72042 Merge branch '1770-review-how-we-use-sys-un-h-v9_11' into 'v9_11'
[v9_11] Fix typo in ISC_PLAFORM_HAVESYSUNH

See merge request isc-projects/bind9!4433
2020-11-26 14:40:45 +00:00
Michal Nowak bbed152e5d Fix typo in ISC_PLAFORM_HAVESYSUNH
(cherry picked from commit 8885f4a6f7)
2020-11-26 15:09:36 +01:00
Michał Kępień bbec074db6 Merge branch 'michal/use-centos-6-instead-of-debian-sid-in-i386-ci-jobs' into 'v9_11'
Use CentOS 6 instead of Debian sid in i386 CI jobs

See merge request isc-projects/bind9!4431
2020-11-26 13:49:03 +00:00
Michał Kępień 95eec2b5a7 Use CentOS 6 instead of Debian sid in i386 CI jobs
Due to seccomp issues with 32-bit Debian sid Docker containers that
prevent us from easily updating the contents of the 32-bit Debian sid
Docker image, switch to CentOS 6 for building and testing 32-bit
versions of BIND in GitLab CI.
2020-11-26 13:27:08 +01:00
Michał Kępień 72ecd8803f Merge branch 'michal/use-proper-cmocka-macros-for-pointer-checks-v9_11' into 'v9_11'
[v9_11] Use proper cmocka macros for pointer checks

See merge request isc-projects/bind9!4430
2020-11-26 12:25:35 +00:00
Michał Kępień fa989e4236 Use proper cmocka macros for pointer checks
Make sure pointer checks in unit tests use cmocka assertion macros
dedicated for use with pointers instead of those dedicated for use with
integers or booleans.

(cherry picked from commit f440600126)
2020-11-26 13:15:28 +01:00
Michał Kępień 5da3f59953 Merge branch 'v9_11_25-release' into 'v9_11'
[v9_11] Merge 9.11.25 release branch

See merge request isc-projects/bind9!4428
2020-11-26 11:39:33 +00:00
Michał Kępień 43bc51d502 Set up release notes for BIND 9.11.26 2020-11-26 12:37:08 +01:00
Michał Kępień 4776e3b27c Bump BIND_BASELINE_VERSION for ABI checks 2020-11-26 12:37:08 +01:00
Tinderbox UserandMichał Kępień 855c2689cb Merge branch 'prep-release' into v9_11_25-release 2020-11-26 12:33:58 +01:00
Michał Kępień 694c355ed6 Merge branch 'michal/prepare-release-notes-for-bind-9.11.25' into 'v9_11_25-release'
Prepare release notes for BIND 9.11.25

See merge request isc-private/bind9!222
2020-11-26 12:33:58 +01:00
Tinderbox UserandMichał Kępień 66faf3215c prep 9.11.25 2020-11-26 12:33:58 +01:00
Michał Kępień 588579f172 Prepare release notes for BIND 9.11.25 2020-11-26 12:33:58 +01:00
Michał Kępień 913a469182 Add release note for GL #2244 2020-11-26 12:33:58 +01:00
Michał Kępień cbcc61cf22 Add release note for GL #2236 2020-11-26 12:33:58 +01:00
Michał Kępień d07cb06823 Add release note for GL #1736 2020-11-26 12:33:58 +01:00
Michał Kępień 81b900cb86 Tweak and reword recent CHANGES entries 2020-11-26 12:33:58 +01:00
Michał Kępień f9a991b1a3 Merge branch 'michal/fix-cppcheck-2.2-issues-v9_11' into 'v9_11'
[v9_11] Fix cppcheck 2.2 issues

See merge request isc-projects/bind9!4414
2020-11-25 12:59:43 +00:00
Mark AndrewsandMichał Kępień c5fff690ad Remove now redundant check for state != NULL
(cherry picked from commit ee135d8946)
2020-11-25 13:42:12 +01:00
Michał Kępień 47c206f386 Silence cppcheck 2.2 false positive in udp_recv()
cppcheck 2.2 reports the following false positive:

    lib/dns/dispatch.c:1220:14: warning: Either the condition 'resp==NULL' is redundant or there is possible null pointer dereference: resp. [nullPointerRedundantCheck]
     if (disp != resp->disp) {
                 ^
    lib/dns/dispatch.c:1191:11: note: Assuming that condition 'resp==NULL' is not redundant
     if (resp == NULL) {
              ^
    lib/dns/dispatch.c:1220:14: note: Null pointer dereference
     if (disp != resp->disp) {
                 ^

Apparently this version of cppcheck gets confused about conditional
"goto" statements because line 1220 can never be reached if 'resp' is
NULL.

Move a code block to prevent the above false positive from being
reported without affecting the processing logic.

(cherry picked from commit 0b6216d1c7)
2020-11-25 13:42:12 +01:00
Michał Kępień 5055fc7385 Remove cppcheck 2.0 false positive workarounds
The cppcheck bug which commit 41b4af5d20
works around was fixed in cppcheck 2.2.  Drop the relevant hack from the
definition of the cppcheck GitLab CI job.

(cherry picked from commit f06dfe0397)
2020-11-25 13:42:12 +01:00
Michał Kępień 06f8ce0ac7 Merge branch 'michal/enable-stress-tests-to-be-run-on-demand-v9_11' into 'v9_11'
[v9_11] Enable "stress" tests to be run on demand

See merge request isc-projects/bind9!4409
2020-11-23 10:56:31 +00:00
Michał Kępień 7408ab8d1e Enable "stress" tests to be run on demand
The "stress" test can be run in different ways, depending on:

  - the tested scenario (authoritative, recursive),
  - the operating system used (Linux, FreeBSD),
  - the architecture used (amd64, arm64).

Currently, all supported "stress" test variants are automatically
launched for all scheduled pipelines and for pipelines started for tags;
there is no possibility of running these tests on demand, which could be
useful in certain circumstances.

Employ the "only:variables" key to enable fine-grained control over the
list of "stress" test jobs to be run for a given pipeline.  Three CI
variables are used to specify the list of "stress" test jobs to create:

  - BIND_STRESS_TEST_MODE: specifies the test mode to use; must be
    explicitly set in order for any "stress" test job to be created;
    allowed values are: "authoritative", "recursive",

  - BIND_STRESS_TEST_OS: specifies the operating system to run the test
    on; allowed values are: "linux", "freebsd"; defaults to "linux", may
    be overridden at pipeline creation time,

  - BIND_STRESS_TEST_ARCH: specifies the architecture to run the test
    on; allowed values are: "amd64", "arm64"; defaults to "amd64", may
    be overridden at pipeline creation time.

Since case-insensitive regular expressions are used for determining
which jobs to run, every variable described above may contain multiple
values.  For example, setting the BIND_STRESS_TEST_MODE variable to
"authoritative,recursive" will cause the "stress" test to be run in both
supported scenarios (either on the default OS/architecture combination,
i.e. Linux/amd64, or, if the relevant variables are explicitly
specified, the requested OS/architecture combinations).

(cherry picked from commit f23094223e)
2020-11-23 11:54:45 +01:00
Mark Andrews 646b831f04 Merge branch '2211-tsan-error-previous_closest_nsec-dns_rbt_findnode-vs-subtractrdataset-v9_11' into 'v9_11'
Address TSAN error between dns_rbt_findnode() and subtractrdataset().

See merge request isc-projects/bind9!4385
2020-11-10 22:37:47 +00:00
Mark Andrews 62158e1882 Address TSAN error between dns_rbt_findnode() and subtractrdataset().
Having dns_rbt_findnode() in previous_closest_nsec() check of
node->data is a optimisation that triggers a TSAN error with
subtractrdataset().  find_closest_nsec() still needs to check if
the NSEC record are active or not and look for a earlier NSEC records
if it isn't.  Set DNS_RBTFIND_EMPTYDATA so node->data isn't referenced
without the node lock being held.

    WARNING: ThreadSanitizer: data race
    Read of size 8 at 0x000000000001 by thread T1 (mutexes: read M1, read M2):
    #0 dns_rbt_findnode lib/dns/rbt.c:1708
    #1 previous_closest_nsec lib/dns/rbtdb.c:3760
    #2 find_closest_nsec lib/dns/rbtdb.c:3942
    #3 zone_find lib/dns/rbtdb.c:4091
    #4 dns_db_findext lib/dns/db.c:536
    #5 query_lookup lib/ns/query.c:5582
    #6 ns__query_start lib/ns/query.c:5505
    #7 query_setup lib/ns/query.c:5229
    #8 ns_query_start lib/ns/query.c:11380
    #9 ns__client_request lib/ns/client.c:2166
    #10 processbuffer netmgr/tcpdns.c:230
    #11 dnslisten_readcb netmgr/tcpdns.c:309
    #12 read_cb netmgr/tcp.c:832
    #13 <null> <null>
    #14 <null> <null>

    Previous write of size 8 at 0x000000000001 by thread T2 (mutexes: write M3):
    #0 subtractrdataset lib/dns/rbtdb.c:7133
    #1 dns_db_subtractrdataset lib/dns/db.c:742
    #2 diff_apply lib/dns/diff.c:368
    #3 dns_diff_apply lib/dns/diff.c:459
    #4 do_one_tuple lib/dns/update.c:247
    #5 update_one_rr lib/dns/update.c:275
    #6 delete_if_action lib/dns/update.c:689
    #7 foreach_rr lib/dns/update.c:471
    #8 delete_if lib/dns/update.c:716
    #9 dns_update_signaturesinc lib/dns/update.c:1948
    #10 receive_secure_serial lib/dns/zone.c:15637
    #11 dispatch lib/isc/task.c:1152
    #12 run lib/isc/task.c:1344
    #13 <null> <null>

    Location is heap block of size 130 at 0x000000000028 allocated by thread T3:
    #0 malloc <null>
    #1 default_memalloc lib/isc/mem.c:713
    #2 mem_get lib/isc/mem.c:622
    #3 mem_allocateunlocked lib/isc/mem.c:1268
    #4 isc___mem_allocate lib/isc/mem.c:1288
    #5 isc__mem_allocate lib/isc/mem.c:2453
    #6 isc___mem_get lib/isc/mem.c:1037
    #7 isc__mem_get lib/isc/mem.c:2432
    #8 create_node lib/dns/rbt.c:2239
    #9 dns_rbt_addnode lib/dns/rbt.c:1202
    #10 dns_rbtdb_create lib/dns/rbtdb.c:8668
    #11 dns_db_create lib/dns/db.c:118
    #12 receive_secure_db lib/dns/zone.c:16154
    #13 dispatch lib/isc/task.c:1152
    #14 run lib/isc/task.c:1344
    #15 <null> <null>

    Mutex M1 (0x000000000040) created at:
    #0 pthread_rwlock_init <null>
    #1 isc_rwlock_init lib/isc/rwlock.c:39
    #2 dns_rbtdb_create lib/dns/rbtdb.c:8527
    #3 dns_db_create lib/dns/db.c:118
    #4 receive_secure_db lib/dns/zone.c:16154
    #5 dispatch lib/isc/task.c:1152
    #6 run lib/isc/task.c:1344
    #7 <null> <null>

    Mutex M2 (0x000000000044) created at:
    #0 pthread_rwlock_init <null>
    #1 isc_rwlock_init lib/isc/rwlock.c:39
    #2 dns_rbtdb_create lib/dns/rbtdb.c:8600
    #3 dns_db_create lib/dns/db.c:118
    #4 receive_secure_db lib/dns/zone.c:16154
    #5 dispatch lib/isc/task.c:1152
    #6 run lib/isc/task.c:1344
    #7 <null> <null>

    Mutex M3 (0x000000000046) created at:
    #0 pthread_rwlock_init <null>
    #1 isc_rwlock_init lib/isc/rwlock.c:39
    #2 dns_rbtdb_create lib/dns/rbtdb.c:8600
    #3 dns_db_create lib/dns/db.c:118
    #4 receive_secure_db lib/dns/zone.c:16154
    #5 dispatch lib/isc/task.c:1152
    #6 run lib/isc/task.c:1344
    #7 <null> <null>

    Thread T1 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create pthreads/thread.c:73
    #2 isc_nm_start netmgr/netmgr.c:232
    #3 create_managers bin/named/main.c:909
    #4 setup bin/named/main.c:1223
    #5 main bin/named/main.c:1523

    Thread T2 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create pthreads/thread.c:73
    #2 isc_taskmgr_create lib/isc/task.c:1434
    #3 create_managers bin/named/main.c:915
    #4 setup bin/named/main.c:1223
    #5 main bin/named/main.c:1523

    Thread T3 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create pthreads/thread.c:73
    #2 isc_taskmgr_create lib/isc/task.c:1434
    #3 create_managers bin/named/main.c:915
    #4 setup bin/named/main.c:1223
    #5 main bin/named/main.c:1523

    SUMMARY: ThreadSanitizer: data race lib/dns/rbt.c:1708 in dns_rbt_findnode

(cherry picked from commit 244f84a84b)
2020-11-11 08:25:55 +11:00
Michal Nowak a231e1e535 Merge branch 'mnowak/test-with-DDEBUG-v9_11' into 'v9_11'
[v9_11] Enable debug build on Tumbleweed in CI

See merge request isc-projects/bind9!4372
2020-11-10 16:31:25 +00:00
Michal Nowak c35170217d Enable debug build on Tumbleweed in CI
(cherry picked from commit 59a09b5db8)
(cherry picked from commit 271e6e3b6bc2697d3ed17e767cf9ffd650fcb9c6)
2020-11-10 17:30:35 +01:00
Michal Nowak e2e374d7ca Merge branch 'he32-test-fix-v9_11' into 'v9_11'
[v9_11] Avoid a non-standard bashism: use of "==" in "test".

See merge request isc-projects/bind9!4380
2020-11-10 13:15:06 +00:00
Havard EidnesandMichal Nowak e73d2f6bbe Avoid a non-standard bashism: use of "==" in "test".
(cherry picked from commit 1f83daa4ac)
2020-11-10 14:13:57 +01:00
Mark Andrews f86f910486 Merge branch '2259-zone_namerd_tostr-called-w-o-lock-being-held-v9_11' into 'v9_11'
Lock zone before calling zone_namerd_tostr()

See merge request isc-projects/bind9!4378
2020-11-10 06:57:52 +00:00
Mark Andrews b2bccc68a5 Lock zone before calling zone_namerd_tostr()
WARNING: ThreadSanitizer: data race
    Read of size 8 at 0x000000000001 by thread T1:
    #0 inline_raw lib/dns/zone.c:1375
    #1 zone_namerd_tostr lib/dns/zone.c:15316
    #2 dns_zone_name lib/dns/zone.c:15391
    #3 xfrin_log lib/dns/xfrin.c:1605
    #4 xfrin_destroy lib/dns/xfrin.c:1477
    #5 dns_xfrin_detach lib/dns/xfrin.c:739
    #6 xfrin_connect_done lib/dns/xfrin.c:970
    #7 tcpdnsconnect_cb netmgr/tcpdns.c:786
    #8 tcp_connect_cb netmgr/tcp.c:292
    #9 <null> <null>
    #10 <null> <null>

    Previous write of size 8 at 0x000000000001 by thread T2 (mutexes: write M1):
    #0 zone_shutdown lib/dns/zone.c:14462
    #1 dispatch lib/isc/task.c:1152
    #2 run lib/isc/task.c:1344
    #3 <null> <null>

    Location is heap block of size 2769 at 0x000000000013 allocated by thread T3:
    #0 malloc <null>
    #1 default_memalloc lib/isc/mem.c:713
    #2 mem_get lib/isc/mem.c:622
    #3 mem_allocateunlocked lib/isc/mem.c:1268
    #4 isc___mem_allocate lib/isc/mem.c:1288
    #5 isc__mem_allocate lib/isc/mem.c:2453
    #6 isc___mem_get lib/isc/mem.c:1037
    #7 isc__mem_get lib/isc/mem.c:2432
    #8 dns_zone_create lib/dns/zone.c:984
    #9 configure_zone bin/named/server.c:6502
    #10 do_addzone bin/named/server.c:13391
    #11 named_server_changezone bin/named/server.c:13788
    #12 named_control_docommand bin/named/control.c:207
    #13 control_command bin/named/controlconf.c:392
    #14 dispatch lib/isc/task.c:1152
    #15 run lib/isc/task.c:1344
    #16 <null> <null>

(cherry picked from commit 84f43903da)
2020-11-10 17:16:43 +11:00
Michał Kępień 5ce19734b9 Merge branch 'michal/miscellaneous-windows-tweaks-v9_11' into 'v9_11'
[v9_11] Miscellaneous Windows tweaks

See merge request isc-projects/bind9!4361
2020-11-05 14:13:44 +00:00
Michał Kępień 6dd6da17e4 Use "image" key in Windows GitLab CI job templates
Our GitLab Runner Custom executor scripts now use the "image" key for
determining the Windows Docker image to use for a given CI job.  Update
.gitlab-ci.yml to reflect that change.

(cherry picked from commit 004ca913f2)
2020-11-05 15:09:13 +01:00
Mark Andrews 840995bdbd Merge branch '2244-nta-related-crash-after-reconfiguring-views-v9_11' into 'v9_11'
Resolve "NTA-related crash after reconfiguring views"

See merge request isc-projects/bind9!4353
2020-11-03 13:25:00 +00:00
Mark Andrews 9bc7076906 Add CHANGES for [GL #2244]
(cherry picked from commit 2ef0f252a8)
2020-11-03 23:50:43 +11:00
Mark Andrews ee53b9558f Call nta_detach() before dns_view_weakdetach() so view is available.
(cherry picked from commit ea956976d1)
2020-11-03 23:50:19 +11:00
Michał Kępień 11c7cc84e5 Merge branch 'mnowak/OpenBSD_6.8-v9_11' into 'v9_11'
[v9_11] Update to OpenBSD 6.8

See merge request isc-projects/bind9!4337
2020-10-30 10:23:50 +00:00
Michal NowakandMichał Kępień 9379beb21e Update to OpenBSD 6.8
(cherry picked from commit 773649f413)
2020-10-30 11:03:58 +01:00
Michał Kępień 27d1b5f3da Merge branch '2231-miscellaneous-backtrace-fixes-v9_11' into 'v9_11'
[v9_11] Miscellaneous backtrace fixes

See merge request isc-projects/bind9!4335
2020-10-30 08:59:39 +00:00
Michał Kępień 7f13c427a9 Fix getrbp()
The following compiler warning is emitted for the BACKTRACE_X86STACK
part of lib/isc/backtrace.c:

    backtrace.c: In function ‘getrbp’:
    backtrace.c:139:1: warning: no return statement in function returning non-void [-Wreturn-type]

While getrbp() stores the value of the RBP register in the RAX register
and thus does attempt to return a value, this is not enough for an
optimizing compiler to always produce the expected result.  With -O2,
the following machine code may be generated in isc_backtrace_gettrace():

    0x00007ffff7b0ff7a <+10>:	mov    %rbp,%rax
    0x00007ffff7b0ff7d <+13>:	mov    $0x17,%eax
    0x00007ffff7b0ff82 <+18>:	retq

The above is equivalent to:

    sp = (void **)getrbp();
    return (ISC_R_NOTFOUND);

and results in the backtrace never getting printed.

Fix by using an intermediate variable.  With this change in place, the
machine code generated with -O2 becomes something like:

    0x00007ffff7af5638 <+24>:	mov    $0x17,%eax
    0x00007ffff7af563d <+29>:	mov    %rbp,%rdx
    0x00007ffff7af5640 <+32>:	test   %rdx,%rdx
    0x00007ffff7af5643 <+35>:	je     0x7ffff7af56bd <isc_backtrace_gettrace+157>
    ...
    0x00007ffff7af56bd <+157>:	retq

(Note that this method of grabbing a stack trace is finicky anyway
because in order for RBP to be relied upon, -fno-omit-stack-frame must
be present among CFLAGS.)

(cherry picked from commit 923c443389)
2020-10-30 09:42:24 +01:00
Michał Kępień a51cde6ceb Check for _Unwind_Backtrace() support
Some operating systems (e.g. Linux, FreeBSD) provide the
_Unwind_Backtrace() function in libgcc_s.so, which is automatically
linked into any binary using the functions provided by that library.  On
OpenBSD, though, _Unwind_Backtrace() is provided by libc++abi.so, which
is not automatically linked into binaries produced by the stock system C
compiler.

Meanwhile, lib/isc/backtrace.c assumes that any GNU-compatible toolchain
allows _Unwind_Backtrace() to be used without any extra provisions in
the build system.  This causes build failures on OpenBSD (and possibly
other systems).

Instead of making assumptions, actually check for _Unwind_Backtrace()
support in the toolchain if the backtrace() function is unavailable.

(cherry picked from commit 10d7055791)
2020-10-30 09:42:24 +01:00
Michał Kępień c5d38c7a83 Merge branch '2228-fix-the-make-depend-check-in-gitlab-ci-v9_11' into 'v9_11'
[v9_11] Fix the "make depend" check in GitLab CI

See merge request isc-projects/bind9!4334
2020-10-30 08:02:35 +00:00
Michał Kępień e10eb5783b Do not test "make depend" for out-of-tree builds
The make/mkdep script does not understand the concept of generated
source files (like lib/dns/dnstap.pb-c.c), which prevents it from
working correctly for out-of-tree builds.  As "make depend" is not
required for building BIND and the "depend" make target was removed
altogether in the development branch, just prevent the "make depend"
check from being performed for out-of-tree builds in GitLab CI instead
of trying to add support for handling generated source files to
make/mkdep.

(cherry picked from commit 1b5a8a914c)
2020-10-30 08:53:46 +01:00
Michał Kępień f1045036cd Fix the "make depend" check in GitLab CI
"make depend" prints errors to stderr, not to stdout.  This means that
the check for "make depend" errors currently used in the definition of
every build job in GitLab CI could never fail.  Fix that check by
redirecting stderr to stdout.  Also employ tee to prevent the output of
"make depend" from being hidden in the job log.  (While using tee hides
the exit code of "make depend" itself, the next line still checks for
errors anyway.)

(cherry picked from commit 0ab099ca09)
2020-10-30 08:53:46 +01:00
Mark Andrews 8243534f4c Merge branch '2236-resolver-sometimes-treats-signed-insecure-zone-with-broken-dnskey-as-bogus-v9_11' into 'v9_11'
Resolve "Resolver sometimes treats signed, insecure zone with broken DNSKEY as bogus"

See merge request isc-projects/bind9!4333
2020-10-29 22:26:02 +00:00
Mark Andrews 1b8b355ec5 Add CHANGES note for [GL #2236]
(cherry picked from commit decf117eb6)
2020-10-30 09:08:44 +11:00
Mark Andrews 8d2e091d46 Check that a zone in the process of being signed resolves
ans10 simulates a local anycast server which has both signed and
unsigned instances of a zone.  'A' queries get answered from the
signed instance.  Everything else gets answered from the unsigned
instance.  The resulting answer should be insecure.

(cherry picked from commit d7840f4b93)
2020-10-30 08:25:34 +11:00
Mark Andrews 4a4605fbef Handle DNS_R_NCACHENXRRSET in fetch_callback_{dnskey,validator}()
DNS_R_NCACHENXRRSET can be return when zones are in transition state
from being unsigned to signed and signed to unsigned.  The validation
should be resumed and should result in a insecure answer.

(cherry picked from commit 718e597def)
2020-10-30 08:25:03 +11:00
Michal Nowak 85fba4e36b Merge branch 'mnowak/add-freebsd12.2-v9_11' into 'v9_11'
[v9_11] Update to FreeBSD 12.2

See merge request isc-projects/bind9!4330
2020-10-29 15:42:58 +00:00
Michal Nowak 13a934df0b Update to FreeBSD 12.2
(cherry picked from commit 11ab0528d9)
2020-10-29 16:23:56 +01:00
Michal Nowak 70a241ce4c Merge branch 'mnowak/add-fedora-33-v9_11' into 'v9_11'
[v9_11] Add Fedora 33

See merge request isc-projects/bind9!4328
2020-10-29 15:19:20 +00:00
Michal Nowak 00326163ef Add Fedora 33
(cherry picked from commit 91e28d1fb4)
2020-10-29 15:56:35 +01:00
Evan Hunt c86849badd Merge branch 'each-rpz-test-typo-v9_11' into 'v9_11'
fix a typo in rpz test

See merge request isc-projects/bind9!4322
2020-10-29 06:04:27 +00:00
Evan Hunt c94559480e fix a typo in rpz test
"tcp-only" was not being tested correctly in the RPZ system test
because the option to the "digcmd" function that causes queries to
be sent via TCP was misspelled in one case, and was being interpreted
as a query name.

the "ckresult" function has also been changed to be case sensitive
for consistency with "digcmd".

(cherry picked from commit 78af071c11)
2020-10-28 22:42:37 -07:00
Michał Kępień 124b3e6f77 Merge branch '1764-address-make-depend-issues-v9_11' into 'v9_11'
address 'make depend' issues

See merge request isc-projects/bind9!4317
2020-10-28 10:02:09 +00:00
Mark AndrewsandMichał Kępień adc090a478 address 'make depend' issues
(cherry picked from commit 06fa0d7b4e)
2020-10-28 11:00:34 +01:00
Michal Nowak 37dc2e05df Merge branch 'mnowak/test-coverage-visualization-v9_11' into 'v9_11'
[v9_11] Enable Test Coverage Visualization for merge requests

See merge request isc-projects/bind9!4315
2020-10-27 15:56:05 +00:00
Michal Nowak 4cb5c3004d Enable Test Coverage Visualization for merge requests
This feature allows GitLab to visualize test coverage information in the
file diff view of merge requests.

This commit makes the gcov CI job depend on the following chain of jobs:

    gcc:buster:amd64 → unit:gcc:buster:amd64 → system:gcc:buster:amd64

The reason for running the last two jobs above sequentially rather than
in parallel is that both of them create *.gcda files (containing
coverage data) in the same locations.  While some way of merging these
files from different job artifact archives could probably be designed
with the help of additional tools, the simplest thing to do is not to
run unit test and system test jobs in parallel, carrying *.gcda files
over between jobs as gcov knows how to append coverage data to existing
*.gcda files.

Also note that test coverage will not be visualized if any of the jobs
in the above dependency chain fails (because the gcov job will not be
run).

(cherry picked from commit 2dabf328c4)
2020-10-27 16:15:39 +01:00
Michal Nowak d456de2b03 Merge branch 'mnowak/add-stress-test-to-CI-v9_11' into 'v9_11'
[v9_11] Add "stress" tests to GitLab CI

See merge request isc-projects/bind9!4308
2020-10-26 17:19:04 +00:00
Michal Nowak a0c0af642c Add "stress" tests to GitLab CI
Run "stress" tests for scheduled pipelines and pipelines created for
tags.  These tests were previously only performed manually (as part of
pre-release testing of each new BIND version).  Their purpose is to
detect memory leaks and potential performance issues.

As the run time of each "stress" test itself is set to 1 hour, set the
GitLab CI job timeout to 2 hours in order to account for the extra time
needed to set the test up and gather its results.

(cherry picked from commit 39305411e8)
(cherry picked from commit 06f721fdc5)
2020-10-26 18:18:27 +01:00
Michal Nowak d9ed1a85e4 Merge branch 'mnowak/openbsd-fix-gdb-in-system-test-v9_11' into 'v9_11'
[v9_11] Fix system test backtrace generation on OpenBSD

See merge request isc-projects/bind9!4305
2020-10-26 17:00:40 +00:00
Michal Nowak 523050f054 Fix system test backtrace generation on OpenBSD
On Linux core dump contains absolute path to crashed binary

    Core was generated by `/home/newman/isc/ws/bind9/bin/named/.libs/lt-named -D glue-ns1 -X named.lock -m'.

However, on OpenBSD there's only a basename

    Core was generated by `named'.

This commit adds support for the latter, retains the former.

(cherry picked from commit f0b13873a3)
(cherry picked from commit 659feff963)
2020-10-26 16:58:30 +01:00
Diego dos Santos Fronza c679913c04 Merge branch '1736-stub-zone-foiled-by-minimal-responses-v9_11' into 'v9_11'
Resolve "stub zone foiled by minimal-responses"

See merge request isc-projects/bind9!4284
2020-10-26 15:17:28 +00:00
Diego Fronza 29043867c7 Update copyrights 2020-10-26 10:45:27 -03:00
Diego Fronza 9772ebe8de Add CHANGES entry 2020-10-26 10:45:27 -03:00
Diego Fronza 4fef8acbfa Adjusted additional system test (NS, non-root zone)
After the updates from this branch, BIND now sends glue records for
NS queries even when configured with minimal-responses yes.
2020-10-26 10:45:27 -03:00
Diego Fronza acef95ce44 Added test for the proposed fix
This test is very simple, two nameserver instances are created:
    - ns4: master, with 'minimal-responses yes', authoritative
        for example. zone
    - ns5: slave, stub zone

The first thing verified is the transfer of zone data from master
to slave, which should be saved in ns5/example.db.

After that, a query is issued to ns5 asking for target.example.
TXT, a record present in the master database with the "test" string
as content.

If that query works, it means stub zone successfully request
nameserver addresses from master, ns4.example. A/AAAA

The presence of both A/AAAA records for ns4 is also verified in the
stub zone local file, ns5/example.db.
2020-10-26 10:45:27 -03:00
Diego Fronza 07564aedcf Always return address records in additional section for NS queries 2020-10-26 10:45:27 -03:00
Diego Fronza 6b97de3813 Fix transfer of glue records in stub zones if master has minimal-responses set
Stub zones don't make use of AXFR/IXFR for the transfering of zone
data, instead, a single query is issued to the master asking for
their nameserver records (NS).

That works fine unless master is configured with 'minimal-responses'
set to yes, in which case glue records are not provided by master
in the answer with nameservers authoritative for the zone, leaving
stub zones with incomplete databases.

This commit fix this problem in a simple way, when the answer with
the authoritative nameservers is received from master (stub_callback),
for each nameserver listed (save_nsrrset), a A and AAAA records for
the name is verified in the additional section, and if not present
a query is created to resolve the corresponsing missing glue.

A struct 'stub_cb_args' was added to keep relevant information for
performing a query, like TSIG key, udp size, dscp value, etc, this
information is borrowed from, and created within function 'ns_query',
where the resolving of nameserver from master starts.

A new field was added to the struct 'dns_stub', an atomic integer,
namely pending_requests, which is used to keep how many queries are
created when resolving nameserver addresses that were missing in
the glue.

When the value of pending_requests is zero we know we can release
resources, adjust zone timers, dump to zone file, etc.
2020-10-26 10:45:27 -03:00
Mark Andrews 7995626ae9 Merge branch '2226-tsan-error-in-dispatch-c-v9_11' into 'v9_11'
Hold qid->lock when calling deref_portentry() as

See merge request isc-projects/bind9!4303
2020-10-23 21:39:06 +00:00
Mark Andrews 86d9d04fd8 Hold qid->lock when calling deref_portentry() as
socket_search() need portentry to be unchanging.

    WARNING: ThreadSanitizer: data race
    Write of size 8 at 0x000000000001 by thread T1 (mutexes: write M1):
    #0 deref_portentry lib/dns/dispatch.c:630
    #1 deactivate_dispsocket lib/dns/dispatch.c:861
    #2 udp_recv lib/dns/dispatch.c:1105
    #3 udp_exrecv lib/dns/dispatch.c:1028
    #4 dispatch lib/isc/task.c:1152
    #5 run lib/isc/task.c:1344
    #6 <null> <null>

    Previous read of size 8 at 0x000000000001 by thread T2 (mutexes: write M1, write M2):
    #0 socket_search lib/dns/dispatch.c:661
    #1 get_dispsocket lib/dns/dispatch.c:744
    #2 dns_dispatch_addresponse lib/dns/dispatch.c:3120
    #3 resquery_send lib/dns/resolver.c:2467
    #4 fctx_query lib/dns/resolver.c:2217
    #5 fctx_try lib/dns/resolver.c:4245
    #6 fctx_timeout lib/dns/resolver.c:4570
    #7 dispatch lib/isc/task.c:1152
    #8 run lib/isc/task.c:1344
    #9 <null> <null>

(cherry picked from commit 5c253c416d)
2020-10-24 08:23:31 +11:00
Mark Andrews bc3436c340 Merge branch '2215-dns_zoneflag_noixfr-is-misnamed-v9_11' into 'v9_11'
DNS_ZONEFLAG_NOIXFR should be DNS_ZONEFLG_NOIXFR

See merge request isc-projects/bind9!4301
2020-10-23 13:59:48 +00:00
Mark Andrews a2d2161be4 DNS_ZONEFLAG_NOIXFR should be DNS_ZONEFLG_NOIXFR
(cherry picked from commit 3a044444bd)
2020-10-24 00:29:07 +11:00
Michał Kępień ee3414b60b Merge branch 'michal/test-a-disable-atomic-build-in-gitlab-ci' into 'v9_11'
Test a --disable-atomic build in GitLab CI

See merge request isc-projects/bind9!4280
2020-10-22 13:08:48 +00:00
Michał Kępień 97fbd08f81 Test a --disable-atomic build in GitLab CI
Extend GitLab CI with build and test jobs utilizing the --disable-atomic
configure switch as it is used to work around broken atomics support in
certain build toolchains.
2020-10-22 15:03:31 +02:00
Michal Nowak 6d5a8be495 Merge branch '2218-ensure-use-of-echo_i-where-possible-in-system-tests-v9_11' into 'v9_11'
[v9_11] Ensure use of "echo_i" where possible

See merge request isc-projects/bind9!4291
2020-10-22 10:50:33 +00:00
Michal Nowak e0af53ac0f Ensure use of "echo_i" where possible
In many instances 'echo "I:' construct was used where echo_i function
should have been.
2020-10-22 12:16:24 +02:00
Michał Kępień 9cd810f3aa Merge branch 'v9_11_24-release' into 'v9_11'
Merge 9.11.24 release branch

See merge request isc-projects/bind9!4289
2020-10-22 07:29:52 +00:00
Michał Kępień f8119c27f0 Set up release notes for BIND 9.11.25 2020-10-22 09:27:36 +02:00
Michał Kępień 72786104c1 Bump BIND_BASELINE_VERSION for ABI checks 2020-10-22 09:27:36 +02:00
Michał Kępień b7e02857a6 Bump BIND_BASELINE_VERSION for respdiff tests 2020-10-22 09:27:36 +02:00
Tinderbox UserandMichał Kępień 4fc5607d52 Merge branch 'prep-release' into v9_11_24-release 2020-10-22 09:22:48 +02:00
Michał Kępień 4e9a2a7793 Merge branch 'michal/prepare-release-notes-for-bind-9.11.24' into 'v9_11_24-release'
Prepare release notes for BIND 9.11.24

See merge request isc-private/bind9!218
2020-10-22 09:22:48 +02:00
Tinderbox UserandMichał Kępień 6995173371 prep 9.11.24 2020-10-22 09:22:48 +02:00
Michał Kępień d5524cf332 Prepare release notes for BIND 9.11.24 2020-10-22 09:22:48 +02:00
Michał Kępień eef36e64e8 Tweak and reword release notes 2020-10-22 09:22:48 +02:00
Michał Kępień 8218d23eb0 Tweak and reword recent CHANGES entries 2020-10-22 09:22:48 +02:00
Diego dos Santos Fronza e79c001356 Merge branch '2195-freebsd-dnstap-system-test-failure-v9_11' into 'v9_11'
Fix dnstap system test on FreeBSD

See merge request isc-projects/bind9!4276
2020-10-20 14:32:48 +00:00
Diego Fronza 0cd414a390 Fix dnstap system test on FreeBSD
This commit ensures that dnstap output files captured
by fstrm_capture are properly flushed before any attempt
on reading them with dnstap-read is done.

By reading fstrm-capture source code it was noticed that
signal SIGHUP is used to flush the capture file.
2020-10-20 10:39:48 -03:00
Mark Andrews f7a271d562 Merge branch 'marka-fix-not-enough-categories-v9_11' into 'v9_11'
Drop the expected minimum number of buckets to 4.

See merge request isc-projects/bind9!4266
2020-10-15 01:57:54 +00:00
Mark Andrews 140659c57a Drop the expected minimum number of buckets to 4.
The previous value of 5 produced too many false errors.

(cherry picked from commit 0abb49034e)
2020-10-15 12:32:26 +11:00
Mark Andrews 75ad006928 Merge branch 'marka-rrl-mdig-burst-v9_11' into 'v9_11'
Try to improve rrl timing

See merge request isc-projects/bind9!4264
2020-10-15 01:15:48 +00:00
Mark Andrews 96399960c1 Try to improve rrl timing
Add a +burst option to mdig so that we have a second to setup the
mdig calls then they run at the start of the next second.

RRL uses 'queries in a second' as a approximation to
'queries per second'. Getting the bursts of traffic to all happen in
the same second should prevent false negatives in the system test.

We now have a second to setup the traffic in.  Then the traffic should
be sent at the start of the next second.  If that still fails we
should move to +burst=<now+2> (further extend mdig) instead of the
implicit <now+1> as the trigger second.

(cherry picked from commit 92cdc7b6c7)
2020-10-15 11:47:08 +11:00
Mark Andrews a5ea10c162 Merge branch '2204-investigate-pipeline-system-test-failure-2' into 'v9_11'
Resolve "Investigate pipeline system test failure"

See merge request isc-projects/bind9!4248
2020-10-08 05:21:27 +00:00
Mark Andrews 56e8628e92 Restore the dns_message_reset() call before the dns_dispatch_getnext()
This was accidentally lost in the process of moving rmessage from fctx
to query.  Without this dns_message_setclass() will fail.
2020-10-08 13:10:31 +11:00
Mark Andrews 21bff35408 Merge branch 'mnowak/bring_--rpz-log-qtype-qclass_back' into 'v9_11'
Bring back --rpz-log-qtype-qclass feature-test option

See merge request isc-projects/bind9!4243
2020-10-07 20:10:10 +00:00
Michal Nowak d7ea583ad0 Bring back --rpz-log-qtype-qclass feature-test option
It was unintentionally removed during a backport.
2020-10-07 11:24:16 +02:00
Michal Nowak 8dd41143c6 Merge branch 'wpk/fix-isc-assertions-c-error-v9_11' into 'v9_11'
[v9_11] Fix 'error: ‘%s’ directive argument is null [-Werror=format-overflow=]' in assertions.c

See merge request isc-projects/bind9!4242
2020-10-07 09:12:16 +00:00
Witold KręcickiandMichal Nowak 09a3431069 Fix 'error: ‘%s’ directive argument is null [-Werror=format-overflow=]' in assertions.c
(cherry picked from commit f4260dc0c5)
2020-10-07 10:26:47 +02:00
Ondřej Surý 7886dc0cc1 Merge branch '2183-dns-flag-day-2020-v9_11' into 'v9_11'
Resolve "DNS Flag Day 2020"

See merge request isc-projects/bind9!4230
2020-10-06 12:22:09 +00:00
Ondřej Surý 772cb1696a Add text describing the changes done in the MR in more detail
(cherry picked from commit 096d41b4e2)
(cherry picked from commit 469286e8eb24ebd6227e65b18eb4c30e13a58877)
2020-10-06 09:34:49 +02:00
Ondřej SurýandOndřej Surý d7b16b780f Adjust legacy tests for default 1232 EDNS Buffer Size
* legacy test was just expecting default server EDNS buffer size to be 4096,
  the test needed the adjustment to reset the buffer sizes back to 4096.
2020-10-06 09:34:49 +02:00
Ondřej Surý 3ab08cdaa4 Adjust digdelv tests for default 1232 EDNS Buffer Size
* digdelv test was just expecting default server EDNS buffer size to be
  4096, the test needed only slight adjustment

(cherry picked from commit f1556f8c41)
(cherry picked from commit 6b303721f1ee472dc8ab2d1df03191a98d4e4e5e)
2020-10-05 17:00:24 +02:00
Ondřej Surý c164c9a819 Change the default ENDS buffer size to 1232 for DNS Flag Day 2020
The DNS Flag Day 2020 aims to remove the IP fragmentation problem from
the UDP DNS communication.  In this commit, we implement the minimal
required changes by changing the defaults for `edns-udp-size`,
`max-udp-size` and `nocookie-udp-size` to `1232` (the value picked by
DNS Flag Day 2020).

(cherry picked from commit bb990030d3)
(cherry picked from commit df06773f9a73e4a4bb0b5e7f4bd8e40394e64032)
2020-10-05 16:54:39 +02:00
Michał Kępień cc7efac75a Merge branch '2139-rrset-order-fixes-and-cleanups-v9_11' into 'v9_11'
[v9_11] "rrset-order" fixes and cleanups

See merge request isc-projects/bind9!4221
2020-10-02 08:12:59 +00:00
Michał Kępień d8c0fe0c25 Add CHANGES entry
(cherry picked from commit 27c815a220)
2020-10-02 10:09:25 +02:00
Michał Kępień d34a17e37b Rework "rrset-order" documentation
Certain parts of the existing documentation for the "rrset-order"
statement are incorrect, others are ambiguous.  Rework the relevant
section of the ARM to make it clear and up-to-date with the source code.

(cherry picked from commit 2ac04dc930)
2020-10-02 10:09:15 +02:00
Mark Andrews 792ad817fe Merge branch '2112-allow-task_test-subtests-to-be-selected-at-runtime-v9_11' into 'v9_11'
Resolve "Allow task_test subtests to be selected at runtime."

See merge request isc-projects/bind9!4210
2020-10-01 13:23:56 +00:00
Mark Andrews 24e204d013 Add the ability select individual tests to rdata_test
(cherry picked from commit 6293682020)
2020-10-01 23:05:10 +10:00
Mark Andrews 21662afb3c Add the ability to print out the list of test names (-l)
(cherry picked from commit a9c3374717)
2020-10-01 23:03:05 +10:00
Mark Andrews e310aaf4b7 Add the ability to select tests to run
task_test [-t <test_name>]

(cherry picked from commit 76837484e7)
2020-10-01 23:03:01 +10:00
Ondřej Surý 7dab61a3a7 Merge branch '2124-fix-assertion-failure-in-dns-message-v9_11' into 'v9_11'
Resolve "Bind 9.16.6 Assertion failure message.c:4733: REQUIRE(msg->state == (-1)) failed"

See merge request isc-projects/bind9!4200
2020-09-30 12:40:37 +00:00
Ondřej Surý 3038974cde Add CHANGES and release note for GL #2124 2020-09-30 14:04:04 +02:00
Diego FronzaandOndřej Surý 79c62017eb Properly handling dns_message_t shared references
This commit fix the problems that arose when moving the dns_message_t
object from fetchctx_t to the query structure.

Since the lifetime of query objects are different than that of a
fetchctx and the dns_message_t object held by the query may be being
used by some external module, e.g. validator, even after the query may
have been destroyed, propery handling of the references to the message
were added in this commit to avoid accessing an already destroyed
object.

Specifically, in resquery_response(), a reference to the message is
attached at the beginning of the function and detached at the end, since
a possible call to fctx_cancelquery() would release the dns_message_t
object, and in the next lines of code a call to add_bad() would require
a valid pointer to the same object.

In valcreate() a new reference is attached to the message object, this
ensures that if the corresponding query object is destroyed before the
validator attempts to access it, no invalid pointer access occurs.

In validated() we have to attach a new reference to the message, since
we destroy the validator object at the beginning of the function, and we
need access to the message in the next lines of the same function.
2020-09-30 14:04:04 +02:00
Diego FronzaandOndřej Surý d391a0b4c5 Fix invalid dns message state in resolver's logic
The assertion failure REQUIRE(msg->state == DNS_SECTION_ANY),
caused by calling dns_message_setclass within function resquery_response()
in resolver.c, was happening due to wrong management of dns message_t
objects used to process responses to the queries issued by the resolver.

Before the fix, a resolver's fetch context (fetchctx_t) would hold
a pointer to the message, this same reference would then be used over all
the attempts to resolve the query, trying next server, etc... for this to work
the message object would have it's state reset between each iteration, marking
it as ready for a new processing.

The problem arose in a scenario with many different forwarders configured,
managing the state of the dns_message_t object was lacking better
synchronization, which have led it to a invalid dns_message_t state in
resquery_response().

Instead of adding unnecessarily complex code to synchronize the object,
the dns_message_t object was moved from fetchctx_t structure to the
query structure, where it better belongs to, since each query will produce
a response, this way whenever a new query is created an associated
dns_messate_t is also created.

This commit deals mainly with moving the dns_message_t object from fetchctx_t
to the query structure.
2020-09-30 14:04:04 +02:00
Diego FronzaandOndřej Surý 8781aef52e Refactored dns_message_t for using attach/detach semantics
This commit will be used as a base for the next code updates in order
to have a better control of dns_message_t objects' lifetime.
2020-09-30 13:33:43 +02:00
Michał Kępień e33358a00f Merge branch 'michal/disable-openssl-hashing-when-using-native-pkcs11' into 'v9_11'
Disable OpenSSL hashing when using native PKCS#11

See merge request isc-projects/bind9!4178
2020-09-28 07:31:38 +00:00
Michał Kępień b9cf398679 Disable OpenSSL hashing when using native PKCS#11
When building with "--enable-native-pkcs11 --with-openssl", OpenSSL
support is automatically disabled in favor of native PKCS#11:

    checking for OpenSSL library... use of native PKCS11 instead

However, adding "--enable-openssl-hash" to the above two switches causes
the build to fail:

    checking for OpenSSL library... use of native PKCS11 instead
    disabled because of native PKCS11
    checking for using OpenSSL for hash functions... configure: error: No OpenSSL for hash functions

In other words, "--with-openssl" and "--enable-openssl-hash" are not
behaving consistently when used together with "--enable-native-pkcs11".

Fix by automatically disabling OpenSSL hashing support when native
PKCS#11 support is enabled.
2020-09-28 09:30:00 +02:00
Michał Kępień 26d3ce03e9 Merge branch '2177-make-native-pkcs11-require-dlopen-support-v9_11' into 'v9_11'
[v9_11] Make native PKCS#11 require dlopen() support

See merge request isc-projects/bind9!4190
2020-09-28 07:29:08 +00:00
Michał Kępień d21ed7527e Make native PKCS#11 require dlopen() support
PKCS#11 support in BIND requires dlopen() support from the operating
system and thus building with "--enable-native-pkcs11 --without-dlopen"
should not be possible.  Add an Autoconf check which enforces that
constraint.  Adjust the pairwise testing model accordingly.

(cherry picked from commit 187dca9cf7)
2020-09-28 09:24:48 +02:00
Mark Andrews 760dd259b3 Merge branch '2184-add-rfc8096-to-list-of-rfcs-in-doc-general-rst-v9_11' into 'v9_11'
Add RFC8906 to list in doc/arm/general.rst

See merge request isc-projects/bind9!4183
2020-09-24 03:16:23 +00:00
Suzanne GoldlustandMark Andrews f834abb9c2 Add RFC8906 to list in doc/arm/general.rst
(cherry picked from commit 4c36b6bdf0)
2020-09-24 10:44:45 +10:00
Mark Andrews a87fd03cd9 Merge branch '2126-cycles-in-lock-order-graphs-v9-11' into 'v9_11'
Resolve "Cycles in lock order graphs [v9.11]"

See merge request isc-projects/bind9!4094
2020-09-23 01:05:14 +00:00
Mark Andrews a0b123a06e Address lock order reversals when shutting down a view.
Release view->lock before calling dns_resolver_shutdown,
dns_adb_shutdown, and dns_requestmgr_shutdown.
2020-09-23 00:42:26 +00:00
Mark Andrews eac36a210b Merge branch '2156-threadsanitizer-lock-order-inversion-potential-deadlock-in-pthread_mutex_lock-2-v9_11' into 'v9_11'
Break lock order loop by sending TAT in an event

See merge request isc-projects/bind9!4166
2020-09-22 13:51:06 +00:00
Mark Andrews d95a18711b Break lock order loop by sending TAT in an event
The dotat() function has been changed to send the TAT
query asynchronously, so there's no lock order loop
because we initialize the data first and then we schedule
the TAT send to happen asynchronously.

This breaks following lock-order loops:

zone->lock (dns_zone_setviewcommit) while holding view->lock
(dns_view_setviewcommit)

keytable->lock (dns_keytable_find) while holding zone->lock
(zone_asyncload)

view->lock (dns_view_findzonecut) while holding keytable->lock
(dns_keytable_forall)

(cherry picked from commit 3c4b68af7c)
2020-09-22 23:35:39 +10:00
Mark Andrews b98133d48f Merge branch '2157-threadsanitizer-lock-order-inversion-potential-deadlock-in-pthread_rwlock_wrlock-v9_11' into 'v9_11'
Address lock-order-inversion

See merge request isc-projects/bind9!4164
2020-09-22 12:52:51 +00:00
Mark Andrews cd54ac9abe Address lock-order-inversion
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
    Cycle in lock order graph: M1 (0x000000000001) => M2 (0x000000000002) => M1

    Mutex M2 acquired here while holding mutex M1 in thread T1:
    #0 pthread_rwlock_wrlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:52:4
    #2 zone_postload lib/dns/zone.c:5101:2
    #3 receive_secure_db lib/dns/zone.c:16206:11
    #4 dispatch lib/isc/task.c:1152:7
    #5 run lib/isc/task.c:1344:2

    Mutex M1 previously acquired by the same thread here:
    #0 pthread_mutex_lock <null>
    #1 receive_secure_db lib/dns/zone.c:16204:2
    #2 dispatch lib/isc/task.c:1152:7
    #3 run lib/isc/task.c:1344:2

    Mutex M1 acquired here while holding mutex M2 in thread T1:
    #0 pthread_mutex_lock <null>
    #1 get_raw_serial lib/dns/zone.c:2518:2
    #2 zone_gotwritehandle lib/dns/zone.c:2559:4
    #3 dispatch lib/isc/task.c:1152:7
    #4 run lib/isc/task.c:1344:2

    Mutex M2 previously acquired by the same thread here:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 zone_gotwritehandle lib/dns/zone.c:2552:2
    #3 dispatch lib/isc/task.c:1152:7
    #4 run lib/isc/task.c:1344:2

    Thread T1 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
    #2 isc_taskmgr_create lib/isc/task.c:1434:3
    #3 create_managers bin/named/main.c:915:11
    #4 setup bin/named/main.c:1223:11
    #5 main bin/named/main.c:1523:2

    SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) in pthread_rwlock_wrlock

(cherry picked from commit 1090876693)
2020-09-22 22:29:09 +10:00
Michał Kępień 44d81c1b0f Merge branch 'mnowak/pairwise-configure-testing-v9_11' into 'v9_11'
[v9_11] Add pairwise testing

See merge request isc-projects/bind9!4162
2020-09-22 10:08:44 +00:00
Michal NowakandMichał Kępień 90368d8e1d Add pairwise testing
Pairwise testing is a test case generation technique based on the
observation that most faults are caused by interactions of at most two
factors.  For BIND, its configure options can be thought of as such
factors.

Process BIND configure options into a model that is subsequently
processed by the PICT tool in order to find an effective test vector.
That test vector is then used for configuring and building BIND using
various combinations of configure options.

(cherry picked from commit 420986bf18)
2020-09-22 11:49:30 +02:00
Ondřej Surý 1b7d245189 Merge branch '2166-bind-9-16-7-trap-divide-error-v9_11' into 'v9_11'
Resolve "bind 9.16.7 trap divide error"

See merge request isc-projects/bind9!4153
2020-09-21 09:10:59 +00:00
Ondřej Surý f79692c831 Add CHANGES and release note for GL #2166
(cherry picked from commit 2869ca1401)
2020-09-21 11:02:22 +02:00
Ondřej Surý 98def35e72 Handle the errors from sysconf() call in isc_meminfo_totalphys()
isc_meminfo_totalphys() would return invalid memory size when sysconf()
call would fail, because ((size_t)-1 * -1) is very large number.

(cherry picked from commit 79ca724d46)
2020-09-21 10:59:36 +02:00
Ondřej Surý f12893d4a7 Merge branch '2163-threadsanitizer-data-race-lib-isc-mem-c-1119-19-in-isc___mem_put-v9_11' into 'v9_11'
Exclude isc_mem_isovermem from ThreadSanitizer

See merge request isc-projects/bind9!4144
2020-09-18 06:52:41 +00:00
Ondřej Surý fe738c7432 Exclude isc_mem_isovermem from ThreadSanitizer
The .is_overmem member of isc_mem_t structure is intentionally accessed
unlocked as 100% accuracy isn't necessary here.

Without the attribute, following TSAN warning would show up:

    WARNING: ThreadSanitizer: data race
      Write of size 1 at 0x000000000001 by thread T1 (mutexes: write M1, write M2):
	#0 isc___mem_put lib/isc/mem.c:1119:19
	#1 isc__mem_put lib/isc/mem.c:2439:2
	#2 dns_rdataslab_fromrdataset lib/dns/rdataslab.c:327:2
	#3 addrdataset lib/dns/rbtdb.c:6761:11
	#4 dns_db_addrdataset lib/dns/db.c:719:10
	#5 cache_name lib/dns/resolver.c:6538:13
	#6 cache_message lib/dns/resolver.c:6628:14
	#7 resquery_response lib/dns/resolver.c:7883:13
	#8 dispatch lib/isc/task.c:1152:7
	#9 run lib/isc/task.c:1344:2

      Previous read of size 1 at 0x000000000001 by thread T2 (mutexes: write M3):
	#0 isc_mem_isovermem lib/isc/mem.c:1553:15
	#1 addrdataset lib/dns/rbtdb.c:6866:25
	#2 dns_db_addrdataset lib/dns/db.c:719:10
	#3 addoptout lib/dns/ncache.c:281:10
	#4 dns_ncache_add lib/dns/ncache.c:101:10
	#5 ncache_adderesult lib/dns/resolver.c:6668:12
	#6 ncache_message lib/dns/resolver.c:6845:11
	#7 rctx_ncache lib/dns/resolver.c:9174:11
	#8 resquery_response lib/dns/resolver.c:7894:2
	#9 dispatch lib/isc/task.c:1152:7
	#10 run lib/isc/task.c:1344:2

      Location is heap block of size 328 at 0x000000000020 allocated by thread T3:
	#0 malloc <null>
	#1 default_memalloc lib/isc/mem.c:713:8
	#2 mem_create lib/isc/mem.c:763:8
	#3 isc_mem_create lib/isc/mem.c:2425:2
	#4 configure_view bin/named/server.c:4494:4
	#5 load_configuration bin/named/server.c:9062:3
	#6 run_server bin/named/server.c:9771:2
	#7 dispatch lib/isc/task.c:1152:7
	#8 run lib/isc/task.c:1344:2

    [...]

    SUMMARY: ThreadSanitizer: data race lib/isc/mem.c:1119:19 in isc___mem_put

(cherry picked from commit 0110d1ab17)
2020-09-17 17:39:03 +02:00
Mark Andrews 42a0a1da44 Merge branch '2131-tsan-data-race-in-accessing-controls-symtab-v9_11' into 'v9_11'
Lock access to control->symtab to prevent data race

See merge request isc-projects/bind9!4139
2020-09-17 10:21:53 +00:00
Mark Andrews 7247df0fcf Lock access to control->symtab to prevent data race
WARNING: ThreadSanitizer: data race
    Read of size 8 at 0x000000000001 by thread T1:
    #0 isccc_symtab_foreach lib/isccc/symtab.c:277:14
    #1 isccc_cc_cleansymtab lib/isccc/cc.c:954:2
    #2 control_recvmessage bin/named/controlconf.c:477:2
    #3 recv_data lib/isccc/ccmsg.c:110:2
    #4 read_cb lib/isc/netmgr/tcp.c:769:4
    #5 <null> <null>

    Previous write of size 8 at 0x000000000001 by thread T2:
    #0 isccc_symtab_define lib/isccc/symtab.c:242:2
    #1 isccc_cc_checkdup lib/isccc/cc.c:1026:11
    #2 control_recvmessage bin/named/controlconf.c:478:11
    #3 recv_data lib/isccc/ccmsg.c:110:2
    #4 read_cb lib/isc/netmgr/tcp.c:769:4
    #5 <null> <null>

    Location is heap block of size 190352 at 0x000000000011 allocated by main thread:
    #0 malloc <null>
    #1 isccc_symtab_create lib/isccc/symtab.c:76:18
    #2 isccc_cc_createsymtab lib/isccc/cc.c:948:10
    #3 named_controls_create bin/named/controlconf.c:1483:11
    #4 named_server_create bin/named/server.c:10057:2
    #5 setup bin/named/main.c:1256:2
    #6 main bin/named/main.c:1523:2

    Thread T1 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
    #2 isc_nm_start lib/isc/netmgr/netmgr.c:215:3
    #3 create_managers bin/named/main.c:909:15
    #4 setup bin/named/main.c:1223:11
    #5 main bin/named/main.c:1523:2

    Thread T2 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
    #2 isc_nm_start lib/isc/netmgr/netmgr.c:215:3
    #3 create_managers bin/named/main.c:909:15
    #4 setup bin/named/main.c:1223:11
    #5 main bin/named/main.c:1523:2

    SUMMARY: ThreadSanitizer: data race lib/isccc/symtab.c:277:14 in isccc_symtab_foreach

(cherry picked from commit 0450acc1b6)
2020-09-17 20:06:27 +10:00
Mark Andrews 1051c51d4c Merge branch '2123-lock-order-inversions-in-main-v9_11' into 'v9_11'
Resolve "Lock order inversions in main"

See merge request isc-projects/bind9!4137
2020-09-17 09:02:33 +00:00
Mark Andrews 267fe9a6b7 Pause dbiterator ealier to prevent lock-order-inversion
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
    Cycle in lock order graph: M1 (0x000000000000) => M2 (0x000000000000) => M1

    Mutex M2 acquired here while holding mutex M1 in thread T1:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 findnodeintree lib/dns/rbtdb.c:2877:2
    #3 findnode lib/dns/rbtdb.c:2941:10
    #4 dns_db_findnode lib/dns/db.c:439:11
    #5 resume_addnsec3chain lib/dns/zone.c:3776:11
    #6 rss_post lib/dns/zone.c:20659:3
    #7 setnsec3param lib/dns/zone.c:20471:3
    #8 dispatch lib/isc/task.c:1152:7
    #9 run lib/isc/task.c:1344:2

    Mutex M1 previously acquired by the same thread here:
    #0 pthread_mutex_lock <null>
    #1 rss_post lib/dns/zone.c:20658:3
    #2 setnsec3param lib/dns/zone.c:20471:3
    #3 dispatch lib/isc/task.c:1152:7
    #4 run lib/isc/task.c:1344:2

    Mutex M1 acquired here while holding mutex M2 in thread T2:
    #0 pthread_mutex_lock <null>
    #1 zone_nsec3chain lib/dns/zone.c:8666:5
    #2 zone_maintenance lib/dns/zone.c:11063:4
    #3 zone_timer lib/dns/zone.c:14098:2
    #4 dispatch lib/isc/task.c:1152:7
    #5 run lib/isc/task.c:1344:2

    Mutex M2 previously acquired by the same thread here:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 resume_iteration lib/dns/rbtdb.c:9357:2
    #3 dbiterator_next lib/dns/rbtdb.c:9647:3
    #4 dns_dbiterator_next lib/dns/dbiterator.c:87:10
    #5 zone_nsec3chain lib/dns/zone.c:8656:13
    #6 zone_maintenance lib/dns/zone.c:11063:4
    #7 zone_timer lib/dns/zone.c:14098:2
    #8 dispatch lib/isc/task.c:1152:7
    #9 run lib/isc/task.c:1344:2

(cherry picked from commit 9e584a4511)
2020-09-17 18:27:14 +10:00
Mark Andrews 9781ce414a Pause the database iterator to release rwlock
(cherry picked from commit 2e63de94aa)
2020-09-17 18:26:28 +10:00
Mark Andrews 215526caf4 Pause dbiterator to release rwlock to prevent lock-order-inversion.
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
    Cycle in lock order graph: M1 (0x000000000000) => M2 (0x000000000001) => M1

    Mutex M2 acquired here while holding mutex M1 in thread T1:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 getsigningtime lib/dns/rbtdb.c:8198:2
    #3 dns_db_getsigningtime lib/dns/db.c:979:11
    #4 set_resigntime lib/dns/zone.c:3887:11
    #5 dns_zone_markdirty lib/dns/zone.c:11119:4
    #6 update_action lib/ns/update.c:3376:3
    #7 dispatch lib/isc/task.c:1152:7
    #8 run lib/isc/task.c:1344:2

    Mutex M1 previously acquired by the same thread here:
    #0 pthread_mutex_lock <null>
    #1 dns_zone_markdirty lib/dns/zone.c:11089:2
    #2 update_action lib/ns/update.c:3376:3
    #3 dispatch lib/isc/task.c:1152:7
    #4 run lib/isc/task.c:1344:2

    Mutex M1 acquired here while holding mutex M2 in thread T1:
    #0 pthread_mutex_lock <null>
    #1 zone_nsec3chain lib/dns/zone.c:8502:3
    #2 zone_maintenance lib/dns/zone.c:11056:4
    #3 zone_timer lib/dns/zone.c:14091:2
    #4 dispatch lib/isc/task.c:1152:7
    #5 run lib/isc/task.c:1344:2

    Mutex M2 previously acquired by the same thread here:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 resume_iteration lib/dns/rbtdb.c:9357:2
    #3 dbiterator_current lib/dns/rbtdb.c:9695:3
    #4 dns_dbiterator_current lib/dns/dbiterator.c:101:10
    #5 zone_nsec3chain lib/dns/zone.c:8539:3
    #6 zone_maintenance lib/dns/zone.c:11056:4
    #7 zone_timer lib/dns/zone.c:14091:2
    #8 dispatch lib/isc/task.c:1152:7
    #9 run lib/isc/task.c:1344:2

    Thread T1 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
    #2 isc_taskmgr_create lib/isc/task.c:1434:3
    #3 create_managers bin/named/main.c:915:11
    #4 setup bin/named/main.c:1223:11
    #5 main bin/named/main.c:1523:2

    SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) in pthread_rwlock_rdlock

(cherry picked from commit fbed962204)
2020-09-17 18:26:27 +10:00
Mark Andrews 38734d80b5 Pause dbiterator to release rwlock to prevent lock-order-inversion.
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
    Cycle in lock order graph: M1 (0x000000000001) => M2 (0x000000000000) => M1

    Mutex M2 acquired here while holding mutex M1 in thread T1:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 zone_sign lib/dns/zone.c:9247:3
    #3 zone_maintenance lib/dns/zone.c:11047:4
    #4 zone_timer lib/dns/zone.c:14090:2
    #5 dispatch lib/isc/task.c:1152:7
    #6 run lib/isc/task.c:1344:2

    Mutex M1 previously acquired by the same thread here:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 resume_iteration lib/dns/rbtdb.c:9357:2
    #3 dbiterator_next lib/dns/rbtdb.c:9647:3
    #4 dns_dbiterator_next lib/dns/dbiterator.c:87:10
    #5 zone_sign lib/dns/zone.c:9488:13
    #6 zone_maintenance lib/dns/zone.c:11047:4
    #7 zone_timer lib/dns/zone.c:14090:2
    #8 dispatch lib/isc/task.c:1152:7
    #9 run lib/isc/task.c:1344:2

    Mutex M1 acquired here while holding mutex M2 in thread T2:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 findnodeintree lib/dns/rbtdb.c:2877:2
    #3 findnode lib/dns/rbtdb.c:2941:10
    #4 dns_db_findnode lib/dns/db.c:439:11
    #5 dns_db_getsoaserial lib/dns/db.c:780:11
    #6 dump_done lib/dns/zone.c:11428:15
    #7 dump_quantum lib/dns/masterdump.c:1487:2
    #8 dispatch lib/isc/task.c:1152:7
    #9 run lib/isc/task.c:1344:2

    Mutex M2 previously acquired by the same thread here:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 dump_done lib/dns/zone.c:11426:4
    #3 dump_quantum lib/dns/masterdump.c:1487:2
    #4 dispatch lib/isc/task.c:1152:7
    #5 run lib/isc/task.c:1344:2

    Thread T1 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
    #2 isc_taskmgr_create lib/isc/task.c:1434:3
    #3 create_managers bin/named/main.c:915:11
    #4 setup bin/named/main.c:1223:11
    #5 main bin/named/main.c:1523:2

    Thread T2 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
    #2 isc_taskmgr_create lib/isc/task.c:1434:3
    #3 create_managers bin/named/main.c:915:11
    #4 setup bin/named/main.c:1223:11
    #5 main bin/named/main.c:1523:2

    SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) in pthread_rwlock_rdlock

(cherry picked from commit c9dbad97b2)
2020-09-17 18:26:27 +10:00
Mark Andrews 508bb0859c Pause dbiterator to release rwlock to prevent lock-order-inversion.
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
    Cycle in lock order graph: M1 (0x000000000000) => M2 (0x000000000000) => M1

    Mutex M2 acquired here while holding mutex M1 in thread T1:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 getsigningtime lib/dns/rbtdb.c:8198:2
    #3 dns_db_getsigningtime lib/dns/db.c:979:11
    #4 set_resigntime lib/dns/zone.c:3887:11
    #5 dns_zone_markdirty lib/dns/zone.c:11115:4
    #6 update_action lib/ns/update.c:3376:3
    #7 dispatch lib/isc/task.c:1152:7
    #8 run lib/isc/task.c:1344:2

    Mutex M1 previously acquired by the same thread here:
    #0 pthread_mutex_lock <null>
    #1 dns_zone_markdirty lib/dns/zone.c:11085:2
    #2 update_action lib/ns/update.c:3376:3
    #3 dispatch lib/isc/task.c:1152:7
    #4 run lib/isc/task.c:1344:2

    Mutex M1 acquired here while holding mutex M2 in thread T2:
    #0 pthread_mutex_lock <null>
    #1 zone_nsec3chain lib/dns/zone.c:8274:3
    #2 zone_maintenance lib/dns/zone.c:11052:4
    #3 zone_timer lib/dns/zone.c:14087:2
    #4 dispatch lib/isc/task.c:1152:7
    #5 run lib/isc/task.c:1344:2

    Mutex M2 previously acquired by the same thread here:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 resume_iteration lib/dns/rbtdb.c:9357:2
    #3 dbiterator_next lib/dns/rbtdb.c:9647:3
    #4 dns_dbiterator_next lib/dns/dbiterator.c:87:10
    #5 zone_nsec3chain lib/dns/zone.c:8412:13
    #6 zone_maintenance lib/dns/zone.c:11052:4
    #7 zone_timer lib/dns/zone.c:14087:2
    #8 dispatch lib/isc/task.c:1152:7
    #9 run lib/isc/task.c:1344:2

    Thread T1 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
    #2 isc_taskmgr_create lib/isc/task.c:1434:3
    #3 create_managers bin/named/main.c:915:11
    #4 setup bin/named/main.c:1223:11
    #5 main bin/named/main.c:1523:2

    Thread T2 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
    #2 isc_taskmgr_create lib/isc/task.c:1434:3
    #3 create_managers bin/named/main.c:915:11
    #4 setup bin/named/main.c:1223:11
    #5 main bin/named/main.c:1523:2

    SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) in pthread_rwlock_rdlock

(cherry picked from commit 98025e15d0)
2020-09-17 18:26:26 +10:00
Mark Andrews 36849cbfa7 Pause dbiterator to release rwlock to prevent lock-order-inversion.
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
    Cycle in lock order graph: M1 (0x000000000001) => M2 (0x000000000002) => M3 (0x000000000000) => M1

    Mutex M2 acquired here while holding mutex M1 in thread T1:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 findnodeintree lib/dns/rbtdb.c:2877:2
    #3 findnode lib/dns/rbtdb.c:2941:10
    #4 dns_db_findnode lib/dns/db.c:439:11
    #5 copy_non_dnssec_records lib/dns/zone.c:16031:11
    #6 receive_secure_db lib/dns/zone.c:16163:12
    #7 dispatch lib/isc/task.c:1152:7
    #8 run lib/isc/task.c:1344:2

    Mutex M1 previously acquired by the same thread here:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 resume_iteration lib/dns/rbtdb.c:9357:2
    #3 dbiterator_first lib/dns/rbtdb.c:9407:3
    #4 dns_dbiterator_first lib/dns/dbiterator.c:43:10
    #5 receive_secure_db lib/dns/zone.c:16160:16
    #6 dispatch lib/isc/task.c:1152:7
    #7 run lib/isc/task.c:1344:2

    Mutex M3 acquired here while holding mutex M2 in thread T2:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 zone_sign lib/dns/zone.c:9244:3
    #3 zone_maintenance lib/dns/zone.c:11044:4
    #4 zone_timer lib/dns/zone.c:14087:2
    #5 dispatch lib/isc/task.c:1152:7
    #6 run lib/isc/task.c:1344:2

    Mutex M2 previously acquired by the same thread here:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 resume_iteration lib/dns/rbtdb.c:9357:2
    #3 dbiterator_next lib/dns/rbtdb.c:9647:3
    #4 dns_dbiterator_next lib/dns/dbiterator.c:87:10
    #5 zone_sign lib/dns/zone.c:9485:13
    #6 zone_maintenance lib/dns/zone.c:11044:4
    #7 zone_timer lib/dns/zone.c:14087:2
    #8 dispatch lib/isc/task.c:1152:7
    #9 run lib/isc/task.c:1344:2

    Mutex M1 acquired here while holding mutex M3 in thread T3:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 findnodeintree lib/dns/rbtdb.c:2877:2
    #3 findnode lib/dns/rbtdb.c:2941:10
    #4 dns_db_findnode lib/dns/db.c:439:11
    #5 zone_get_from_db lib/dns/zone.c:5602:11
    #6 get_raw_serial lib/dns/zone.c:2520:12
    #7 zone_gotwritehandle lib/dns/zone.c:2559:4
    #8 dispatch lib/isc/task.c:1152:7
    #9 run lib/isc/task.c:1344:2

    Mutex M3 previously acquired by the same thread here:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 zone_gotwritehandle lib/dns/zone.c:2552:2
    #3 dispatch lib/isc/task.c:1152:7
    #4 run lib/isc/task.c:1344:2

    Thread T1 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
    #2 isc_taskmgr_create lib/isc/task.c:1434:3
    #3 create_managers bin/named/main.c:915:11
    #4 setup bin/named/main.c:1223:11
    #5 main bin/named/main.c:1523:2

    Thread T2 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
    #2 isc_taskmgr_create lib/isc/task.c:1434:3
    #3 create_managers bin/named/main.c:915:11
    #4 setup bin/named/main.c:1223:11
    #5 main bin/named/main.c:1523:2

    Thread T3 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
    #2 isc_taskmgr_create lib/isc/task.c:1434:3
    #3 create_managers bin/named/main.c:915:11
    #4 setup bin/named/main.c:1223:11
    #5 main bin/named/main.c:1523:2

    SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) in pthread_rwlock_rdlock

(cherry picked from commit e185e37137)
2020-09-17 18:26:25 +10:00
Mark Andrews 7f6cddad0c Address lock-order-inversion between the keytable and the db locks.
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
    Cycle in lock order graph: M1 (0x000000000000) => M2 (0x000000000000) => M1

    Mutex M2 acquired here while holding mutex M1 in thread T1:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 dns_keytable_find lib/dns/keytable.c:522:2
    #3 sync_keyzone lib/dns/zone.c:4560:12
    #4 dns_zone_synckeyzone lib/dns/zone.c:4635:11
    #5 mkey_refresh bin/named/server.c:15423:2
    #6 named_server_mkeys bin/named/server.c:15727:4
    #7 named_control_docommand bin/named/control.c:236:12
    #8 control_command bin/named/controlconf.c:365:17
    #9 dispatch lib/isc/task.c:1152:7
    #10 run lib/isc/task.c:1344:2

    Mutex M1 previously acquired by the same thread here:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 resume_iteration lib/dns/rbtdb.c:9357:2
    #3 dbiterator_first lib/dns/rbtdb.c:9407:3
    #4 dns_dbiterator_first lib/dns/dbiterator.c:43:10
    #5 dns_rriterator_first lib/dns/rriterator.c:71:15
    #6 sync_keyzone lib/dns/zone.c:4543:16
    #7 dns_zone_synckeyzone lib/dns/zone.c:4635:11
    #8 mkey_refresh bin/named/server.c:15423:2
    #9 named_server_mkeys bin/named/server.c:15727:4
    #10 named_control_docommand bin/named/control.c:236:12
    #11 control_command bin/named/controlconf.c:365:17
    #12 dispatch lib/isc/task.c:1152:7
    #13 run lib/isc/task.c:1344:2

    Mutex M1 acquired here while holding mutex M2 in thread T1:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 zone_find lib/dns/rbtdb.c:4029:2
    #3 dns_db_find lib/dns/db.c:500:11
    #4 addifmissing lib/dns/zone.c:4481:11
    #5 dns_keytable_forall lib/dns/keytable.c:786:4
    #6 sync_keyzone lib/dns/zone.c:4586:2
    #7 dns_zone_synckeyzone lib/dns/zone.c:4635:11
    #8 mkey_refresh bin/named/server.c:15423:2
    #9 named_server_mkeys bin/named/server.c:15727:4
    #10 named_control_docommand bin/named/control.c:236:12
    #11 control_command bin/named/controlconf.c:365:17
    #12 dispatch lib/isc/task.c:1152:7
    #13 run lib/isc/task.c:1344:2

    Mutex M2 previously acquired by the same thread here:
    #0 pthread_rwlock_rdlock <null>
    #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
    #2 dns_keytable_forall lib/dns/keytable.c:770:2
    #3 sync_keyzone lib/dns/zone.c:4586:2
    #4 dns_zone_synckeyzone lib/dns/zone.c:4635:11
    #5 mkey_refresh bin/named/server.c:15423:2
    #6 named_server_mkeys bin/named/server.c:15727:4
    #7 named_control_docommand bin/named/control.c:236:12
    #8 control_command bin/named/controlconf.c:365:17
    #9 dispatch lib/isc/task.c:1152:7
    #10 run lib/isc/task.c:1344:2

    Thread T1 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
    #2 isc_taskmgr_create lib/isc/task.c:1434:3
    #3 create_managers bin/named/main.c:915:11
    #4 setup bin/named/main.c:1223:11
    #5 main bin/named/main.c:1523:2

    SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) in pthread_rwlock_rdlock

(cherry picked from commit 9e5f83c499)
2020-09-17 18:26:22 +10:00
Michał Kępień 0cc1d2942e Merge branch 'v9_11_23-release' into 'v9_11'
Merge 9.11.23 release branch

See merge request isc-projects/bind9!4133
2020-09-16 21:06:02 +00:00
Michał Kępień 275c9d455a Set up release notes for BIND 9.11.24 2020-09-16 23:04:54 +02:00
Michał Kępień 6d2beebe6b Bump BIND_BASELINE_VERSION for ABI checks 2020-09-16 23:04:54 +02:00
Tinderbox UserandMichał Kępień 0c92bf6709 Merge branch 'prep-release' into v9_11_23-release 2020-09-16 23:00:15 +02:00
Michał Kępień bb06974f12 Merge branch 'michal/prepare-release-notes-for-bind-9.11.23' into 'v9_11_23-release'
Prepare release notes for BIND 9.11.23

See merge request isc-private/bind9!210
2020-09-16 23:00:15 +02:00
Tinderbox UserandMichał Kępień e7b0d5de15 prep 9.11.23 2020-09-16 23:00:15 +02:00
Michał Kępień 8b4bf85174 Prepare release notes for BIND 9.11.23 2020-09-16 23:00:14 +02:00
Michał Kępień ace52781c3 Add release note for OSS-Fuzz fixes 2020-09-16 23:00:14 +02:00
Michał Kępień 5a90248e6d Add release note for GL #2074 2020-09-16 23:00:14 +02:00
Michał Kępień c3e210aefe Tweak and reword recent CHANGES entries 2020-09-16 23:00:14 +02:00
Michal NowakandMichał Kępień c17dec6f75 Miscellaneous formatting and wording tweaks 2020-09-16 23:00:14 +02:00
Mark Andrews 88a22db66e Merge branch 'marka-tsan-unit-no-ignore-error-v9_11' into 'v9_11'
tsan unit no ignore error v9_11

See merge request isc-projects/bind9!4128
2020-09-16 03:56:47 +00:00
Mark Andrews c82648bb9e remove 'allow_failure: true' from unit tsan tests 2020-09-16 13:29:00 +10:00
Mark Andrews 08286be36b Merge branch 'marka-unit-test-failure-rbt_test.c' into 'v9_11'
The runtime of rbt_test can exceed 5 minutes when running under TSAN testing.

See merge request isc-projects/bind9!4117
2020-09-15 02:42:19 +00:00
Mark Andrews f30ec018f9 The runtime of rbt_test can exceed 5 minutes when running under TSAN testing.
Limit rbt_insert_and_remove subtest runtime to ~180 seconds which gives a total
runtime of ~270 seconds.
2020-09-15 02:15:27 +00:00
Evan Hunt d318bc2922 Merge branch 'each-copyright-header-v9_11' into 'v9_11'
copyright header typos

See merge request isc-projects/bind9!4121
2020-09-15 00:09:39 +00:00
Evan Hunt 400171aee8 update all copyright headers to eliminate the typo 2020-09-14 17:00:40 -07:00
Evan Hunt e353109f2c fix a typo in copyright headers, and change "http" to "https"
(cherry picked from commit 481a7aae44)
2020-09-14 16:52:34 -07:00
Mark Andrews 5a761a2500 Merge branch '2119-the-runtime-system-tests-interfered-with-each-other-v9_11' into 'v9_11'
Resolve "The runtime system tests interfered with each other"

See merge request isc-projects/bind9!4111
2020-09-10 11:05:28 +00:00
Mark Andrews e5ecb7f57d Wait for test instance of named to exit before completing subtest.
(cherry picked from commit dda5b7b0b8)
2020-09-10 20:41:00 +10:00
Mark Andrews 6dcdee08e9 Don't use production address (127.0.0.1) in runtime system test.
(cherry picked from commit 1f14705938)
2020-09-10 20:21:03 +10:00
Mark Andrews 53995492f1 Merge branch '2116-views-system-test-was-not-waiting-for-example-to-finish-loading-v9_11' into 'v9_11'
Also wait for 'zone_dump: zone example/IN: enter'

See merge request isc-projects/bind9!4109
2020-09-10 09:57:58 +00:00
Mark Andrews dc30a355bd Also wait for 'zone_dump: zone example/IN: enter'
use nextpartpeek as we don't want to reset the starting point

(cherry picked from commit 7b65bea6d2)
2020-09-10 18:48:52 +10:00
Mark Andrews 1c485645f4 Merge branch '2114-cid-306652-null-pointer-dereferences-reverse_inull-v9_11' into 'v9_11'
Silence REVERSE_INULL warning (CID 306652)

See merge request isc-projects/bind9!4107
2020-09-09 22:20:23 +00:00
Mark Andrews 87e8497b6a Silence REVERSE_INULL warning (CID 306652)
(cherry picked from commit 584dbffab1)
2020-09-10 07:57:20 +10:00
Mark Andrews b3dc93c819 Merge branch '2128-coverity-missing-lock-warning-9-11' into 'v9_11'
Resolve "Coverity missing lock warning 9.11"

See merge request isc-projects/bind9!4095
2020-09-09 21:26:25 +00:00
Mark Andrews 1d0c1e62b4 Silence Coverity missing lock warning.
Lock access to 'done' during initialisation in manytasks().
2020-09-09 21:02:51 +00:00
Mark Andrews 3501a8334b Merge branch 'marka-use-ns_g_server-recursionquota' into 'v9_11'
Use ns_g_server->recursionquota instead of client->recursionquota

See merge request isc-projects/bind9!4102
2020-09-09 06:17:22 +00:00
Mark Andrews ed0cb2e9e4 Use ns_g_server->recursionquota instead of client->recursionquota
as the later will be NULL on ISC_R_QUOTA.

*** CID 306732:  Null pointer dereferences  (FORWARD_NULL)
/bin/named/query.c: 4359 in query_recurse()
4353     			static _Atomic(isc_stdtime_t) last = 0;
4354     #else
4355     			static isc_stdtime_t last = 0;
4356     #endif
4357     			isc_stdtime_t now;
4358     			isc_stdtime_get(&now);
   CID 306732:  Null pointer dereferences  (FORWARD_NULL)
   Passing "client" to "log_quota", which dereferences null "client->recursionquota".
4359     			log_quota(client, &last, now,
4360     				  "no more recursive clients (%d/%d/%d): %s",
4361     				  isc_result_totext(result));
4362     			ns_client_killoldestquery(client);
4363     		}
4364     		if (result == ISC_R_SUCCESS && !client->mortal &&

** CID 306731:  Program hangs  (LOCK)
/lib/dns/resolver.c: 8943 in spillattimer_countdown()
2020-09-09 06:01:54 +00:00
Mark Andrews 1e1ecce605 Merge branch 'marka-lock-should-be-unlock' into 'v9_11'
LOCK should be UNLOCK

See merge request isc-projects/bind9!4101
2020-09-09 06:01:28 +00:00
Mark Andrews e075ae082c LOCK should be UNLOCK
*** CID 306731:  Program hangs  (LOCK)
/lib/dns/resolver.c: 8943 in spillattimer_countdown()
8937     		result = isc_timer_reset(res->spillattimer,
8938     					 isc_timertype_inactive, NULL,
8939     					 NULL, true);
8940     		RUNTIME_CHECK(result == ISC_R_SUCCESS);
8941     	}
8942     	count = res->spillat;
   CID 306731:  Program hangs  (LOCK)
   "pthread_mutex_lock" locks "res->spill_lock" while it is locked.
8943     	LOCK(&res->spill_lock);
8944     	UNLOCK(&res->lock);
8945     	if (logit)
8946     		isc_log_write(dns_lctx, DNS_LOGCATEGORY_RESOLVER,
8947     			      DNS_LOGMODULE_RESOLVER, ISC_LOG_NOTICE,
8948     			      "clients-per-query decreased to %u", count);
2020-09-09 15:28:57 +10:00
Mark Andrews 549dfecb5e Merge branch '2090-v9_11-dig-tsan-error' into 'v9_11'
Resolve "v9_11 dig tsan error"

See merge request isc-projects/bind9!3997
2020-09-09 03:38:41 +00:00
Mark Andrews 90185b225f Update 'init_count' atomically to silence tsan errors. 2020-09-08 17:41:33 +10:00
Mark Andrews a1dcb73f67 The node lock was released too early.
NEGATIVE needs to be call with the node lock held.

WARNING: ThreadSanitizer: data race
  Write of size 2 at 0x000000000001 by thread T1 (mutexes: write M1):
    #0 mark_stale_header lib/dns/rbtdb.c:1802:21
    #1 add32 lib/dns/rbtdb.c:6559:5
    #2 addrdataset lib/dns/rbtdb.c:6975:12
    #3 dns_db_addrdataset lib/dns/db.c:783:10
    #4 cache_name lib/dns/resolver.c:5829:13
    #5 cache_message lib/dns/resolver.c:5926:14
    #6 resquery_response lib/dns/resolver.c:8618:12
    #7 dispatch lib/isc/task.c:1157:7
    #8 run lib/isc/task.c:1331:2

  Previous read of size 2 at 0x000000000001 by thread T2:
    #0 cache_findrdataset lib/dns/rbtdb.c:5932:6
    #1 dns_db_findrdataset lib/dns/db.c:739:10
    #2 query_addadditional2 bin/named/query.c:2196:11
    #3 additionaldata_ns lib/dns/./rdata/generic/ns_2.c:198:10
    #4 dns_rdata_additionaldata lib/dns/rdata.c:1246:2
    #5 dns_rdataset_additionaldata lib/dns/rdataset.c:629:12
    #6 query_addrdataset bin/named/query.c:2411:8
    #7 query_addrrset bin/named/query.c:2802:2
    #8 query_addbestns bin/named/query.c:3501:2
    #9 query_find bin/named/query.c:9165:4
    #10 query_resume bin/named/query.c:4164:12
    #11 dispatch lib/isc/task.c:1157:7
    #12 run lib/isc/task.c:1331:2
2020-09-08 17:41:33 +10:00
Mark Andrews 1f7a4f9ab2 Turn off TSAN for isc_log_wouldlog 2020-09-08 17:41:33 +10:00
Mark Andrews 8f88bc61e9 Lock zone to read DNS_ZONEFLG_DIALREFRESH 2020-09-08 17:41:33 +10:00
Mark Andrews 7db778854e Use a reference counter for zt
WARNING: ThreadSanitizer: data race
  Write of size 8 at 0x000000000001 by thread T1 (mutexes: write M1):
    #0 memset <null>
    #1 mem_put lib/isc/mem.c:819
    #2 isc___mem_free lib/isc/mem.c:1662
    #3 isc__mem_free lib/isc/mem.c:3078
    #4 isc___mem_putanddetach lib/isc/mem.c:1221
    #5 isc__mem_putanddetach lib/isc/mem.c:3033
    #6 zt_destroy lib/dns/zt.c:214
    #7 doneloading lib/dns/zt.c:591
    #8 zone_asyncload lib/dns/zone.c:2243
    #9 dispatch lib/isc/task.c:1157
    #10 run lib/isc/task.c:1331
    #11 <null> <null>

  Previous atomic read of size 8 at 0x000000000001 by thread T2:
    #0 __tsan_atomic64_load <null>
    #1 isc_rwlock_unlock lib/isc/rwlock.c:612
    #2 doneloading lib/dns/zt.c:585
    #3 zone_asyncload lib/dns/zone.c:2243
    #4 dispatch lib/isc/task.c:1157
    #5 run lib/isc/task.c:1331
    #6 <null> <null>

  Location is heap block of size 273 at 0x000000000015 allocated by thread T3:
    #0 malloc <null>
    #1 internal_memalloc lib/isc/mem.c:887
    #2 mem_get lib/isc/mem.c:792
    #3 mem_allocateunlocked lib/isc/mem.c:1545
    #4 isc___mem_allocate lib/isc/mem.c:1566
    #5 isc__mem_allocate lib/isc/mem.c:3048
    #6 isc___mem_get lib/isc/mem.c:1304
    #7 isc__mem_get lib/isc/mem.c:3012
    #8 dns_zt_create lib/dns/zt.c:85
    #9 dns_view_create lib/dns/view.c:126
    #10 create_view server.c:5312
    #11 load_configuration server.c:8101
    #12 loadconfig server.c:9428
    #13 ns_server_reconfigcommand server.c:9763
    #14 ns_control_docommand bin/named/control.c:243
    #15 control_recvmessage bin/named/controlconf.c:465
    #16 dispatch lib/isc/task.c:1157
    #17 run lib/isc/task.c:1331
    #18 <null> <null>
2020-09-08 17:41:33 +10:00
Mark Andrews 7e44ba1d4a make all artifacts visible 2020-09-08 17:41:33 +10:00
Mark Andrews d6c727d669 ISC_QUEUE_POP is not tsan safe. Suppress warnings
ret->link.next is tested to see if it is NULL unlocked
to avoid obtaining taillock when it is not nexessary then
retested once the taillock is obtained.
2020-09-08 17:41:33 +10:00
Mark Andrews 6d9b1ed70c Address data race over query_recurse.last
WARNING: ThreadSanitizer: data race
  Read of size 4 at 0x000000000001 by thread T1:
    #0 query_recurse bin/named/query.c:4291:15
    #1 query_find bin/named/query.c
    #2 ns_query_start bin/named/query.c:9675:8
    #3 client_request bin/named/client.c:3133:3
    #4 dispatch lib/isc/task.c:1157:7
    #5 run lib/isc/task.c:1331:2

  Previous write of size 4 at 0x000000000001 by thread T2:
    #0 query_recurse bin/named/query.c:4292:10
    #1 query_find bin/named/query.c
    #2 ns_query_start bin/named/query.c:9675:8
    #3 client_request bin/named/client.c:3133:3
    #4 dispatch lib/isc/task.c:1157:7
    #5 run lib/isc/task.c:1331:2

  Location is global 'query_recurse.last' of size 4 at 0x000000000001
2020-09-08 09:25:43 +10:00
Mark Andrews 72cbe648c4 Test if linked while holding the queue lock
WARNING: ThreadSanitizer: data race
  Read of size 8 at 0x000000000001 by thread T1:
    #0 client_shutdown bin/named/client.c:849:6
    #1 dispatch lib/isc/task.c:1157:7
    #2 run lib/isc/task.c:1331:2

  Previous write of size 8 at 0x000000000001 by thread T2 (mutexes: write M1, write M2):
    #0 client_shutdown bin/named/client.c:850:3
    #1 dispatch lib/isc/task.c:1157:7
    #2 run lib/isc/task.c:1331:2
2020-09-08 09:25:43 +10:00
Mark Andrews 7da21a6ff3 Lock zone before reading DNS_ZONEFLG_REFRESH 2020-09-08 09:25:43 +10:00
Mark Andrews be4ed41611 Obtain a lock on the quota structure.
WARNING: ThreadSanitizer: data race (pid=15228)
  Read of size 4 at 0x7b5c00000444 by thread T8:
    #0 ns_server_status /builds/isc-projects/bind9/bin/named/./server.c:10935:31 (named+0x514671)
    #1 ns_control_docommand /builds/isc-projects/bind9/bin/named/control.c:263:12 (named+0x4e4726)
    #2 control_recvmessage /builds/isc-projects/bind9/bin/named/controlconf.c:465:13 (named+0x4e9046)
    #3 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x50845)
    #4 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d799)

  Previous write of size 4 at 0x7b5c00000444 by thread T9 (mutexes: write M1082):
    #0 isc_quota_release /builds/isc-projects/bind9/lib/isc/quota.c:73:13 (libisc.so.1107+0x3bf10)
    #1 isc_quota_detach /builds/isc-projects/bind9/lib/isc/quota.c:111:2 (libisc.so.1107+0x3c12b)
    #2 ns_client_endrequest /builds/isc-projects/bind9/bin/named/client.c:896:3 (named+0x4dcad1)
    #3 exit_check /builds/isc-projects/bind9/bin/named/client.c:512:3 (named+0x4d570d)
    #4 ns_client_detach /builds/isc-projects/bind9/bin/named/client.c:3687:8 (named+0x4d7732)
    #5 query_find /builds/isc-projects/bind9/bin/named/query.c (named+0x4f8ff1)
    #6 query_resume /builds/isc-projects/bind9/bin/named/query.c:4164:12 (named+0x509b38)
    #7 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x50845)
    #8 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d799)
2020-09-08 09:25:43 +10:00
Mark Andrews 9e8e886fd6 Don't grab all the adb locks at once
FATAL: ThreadSanitizer CHECK failed: /build/llvm-toolchain-10-10.0.1~++20200708124224+ef32c611aa2/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector.h:67 "((n_all_locks_)) < (((sizeof(all_locks_with_contexts_)/sizeof((all_locks_with_contexts_)[0]))))" (0x40, 0x40)
    #0 __tsan::TsanCheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) <null> (named+0x4ad775)
    #1 __sanitizer::CheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) <null> (named+0x4c429f)
    #2 __sanitizer::DeadlockDetectorTLS<__sanitizer::TwoLevelBitVector<1ul, __sanitizer::BasicBitVector<unsigned long> > >::addLock(unsigned long, unsigned long, unsigned int) <null> (named+0x4b8a3c)
    #3 __sanitizer::DD::MutexAfterLock(__sanitizer::DDCallback*, __sanitizer::DDMutex*, bool, bool) <null> (named+0x4b7fae)
    #4 __tsan::MutexPostLock(__tsan::ThreadState*, unsigned long, unsigned long, unsigned int, int) <null> (named+0x4abc58)
    #5 pthread_mutex_lock <null> (named+0x4643a8)
    #6 dump_adb /builds/isc-projects/bind9/lib/dns/adb.c:3461:3 (libdns.so.1110+0x48be6)
    #7 dns_adb_dump /builds/isc-projects/bind9/lib/dns/adb.c:3434:2 (libdns.so.1110+0x48738)
    #8 dumpdone /builds/isc-projects/bind9/bin/named/./server.c:10149:4 (named+0x512022)
    #9 dump_quantum /builds/isc-projects/bind9/lib/dns/masterdump.c:1424:2 (libdns.so.1110+0x9f253)
    #10 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x50845)
    #11 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d799)
    #12 __tsan_thread_start_func <null> (named+0x446e3c)
    #13 start_thread /build/glibc-vjB4T1/glibc-2.28/nptl/pthread_create.c:486:8 (libpthread.so.0+0x7fa2)
    #14 clone /build/glibc-vjB4T1/glibc-2.28/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95 (libc.so.6+0xf94ce)
2020-09-08 09:25:43 +10:00
Mark Andrews 56ab2fc457 Lock access to state_mctx
WARNING: ThreadSanitizer: data race
  Read of size 4 at 0x000000000001 by thread T1 (mutexes: write M1):
    #0 isc___mem_allocate lib/isc/mem.c:1565:2
    #1 isc__mem_allocate lib/isc/mem.c:3048:11
    #2 isc___mem_get lib/isc/mem.c:1304:11
    #3 isc__mem_get lib/isc/mem.c:3012:11
    #4 set_state lib/dns/geoip2.c:174:29
    #5 get_entry_for lib/dns/geoip2.c:236:11
    #6 dns_geoip_match lib/dns/geoip2.c:383:10
    #7 dns_aclelement_match2 lib/dns/acl.c:493:11
    #8 dns_acl_match2 lib/dns/acl.c:298:7
    #9 allowed bin/named/client.c:1866:11
    #10 ns_client_isself bin/named/client.c:1931:7
    #11 notify_isself lib/dns/zone.c:11025:11
    #12 notify_send lib/dns/zone.c:11344:7
    #13 notify_find_address lib/dns/zone.c:11148:2
    #14 zone_notify lib/dns/zone.c:11586:3
    #15 zone_maintenance lib/dns/zone.c:10261:4
    #16 zone_timer lib/dns/zone.c:13106:2
    #17 dispatch lib/isc/task.c:1157:7
    #18 run lib/isc/task.c:1331:2

  Previous write of size 8 at 0x000000000001 by thread T2 (mutexes: write M2, write M3):
    #0 malloc <null>
    #1 internal_memalloc lib/isc/mem.c:887:8
    #2 isc_mem_createx2 lib/isc/mem.c:956:8
    #3 isc_mem_create lib/isc/mem.c:2793:11
    #4 state_key_init lib/dns/geoip2.c:119:14
    #5 get_entry_for lib/dns/geoip2.c:214:11
    #6 dns_geoip_match lib/dns/geoip2.c:383:10
    #7 dns_aclelement_match2 lib/dns/acl.c:493:11
    #8 dns_acl_match2 lib/dns/acl.c:298:7
    #9 allowed bin/named/client.c:1866:11
    #10 ns_client_isself bin/named/client.c:1931:7
    #11 notify_isself lib/dns/zone.c:11025:11
    #12 notify_send lib/dns/zone.c:11344:7
    #13 notify_find_address lib/dns/zone.c:11148:2
    #14 zone_notify lib/dns/zone.c:11586:3
    #15 zone_maintenance lib/dns/zone.c:10261:4
    #16 zone_timer lib/dns/zone.c:13106:2
    #17 dispatch lib/isc/task.c:1157:7
    #18 run lib/isc/task.c:1331:2
2020-09-08 09:25:43 +10:00
Mark Andrews 063a881a6c Use atomics to update counters.
WARNING: ThreadSanitizer: data race
  Write of size 4 at 0x000000000001 by thread T1:
    #0 dns_acache_countquerymiss lib/dns/acache.c:1184:22
    #1 rdataset_getadditional lib/dns/rbtdb.c:9875:3
    #2 dns_rdataset_getadditional lib/dns/rdataset.c:711:11
    #3 query_addadditional2 bin/named/query.c:1967:11
    #4 additionaldata_ns lib/dns/./rdata/generic/ns_2.c:198:10
    #5 dns_rdata_additionaldata lib/dns/rdata.c:1246:2
    #6 dns_rdataset_additionaldata lib/dns/rdataset.c:629:12
    #7 query_addrdataset bin/named/query.c:2411:8
    #8 query_addrrset bin/named/query.c:2802:2
    #9 query_find bin/named/query.c:9135:4
    #10 query_resume bin/named/query.c:4164:12
    #11 dispatch lib/isc/task.c:1157:7
    #12 run lib/isc/task.c:1331:2

  Previous write of size 4 at 0x000000000001 by thread T2:
    #0 dns_acache_countquerymiss lib/dns/acache.c:1184:22
    #1 rdataset_getadditional lib/dns/rbtdb.c:9875:3
    #2 dns_rdataset_getadditional lib/dns/rdataset.c:711:11
    #3 query_addadditional2 bin/named/query.c:1967:11
    #4 additionaldata_ns lib/dns/./rdata/generic/ns_2.c:198:10
    #5 dns_rdata_additionaldata lib/dns/rdata.c:1246:2
    #6 dns_rdataset_additionaldata lib/dns/rdataset.c:629:12
    #7 query_addrdataset bin/named/query.c:2411:8
    #8 query_addrrset bin/named/query.c:2802:2
    #9 query_find bin/named/query.c:9135:4
    #10 query_resume bin/named/query.c:4164:12
    #11 dispatch lib/isc/task.c:1157:7
    #12 run lib/isc/task.c:1331:2
2020-09-08 09:25:43 +10:00
Mark Andrews 818520216d Missing locks in ns_lwresd_shutdown.
WARNING: ThreadSanitizer: data race
  Read of size 8 at 0x000000000001 by main thread:
    #0 ns_lwresd_shutdown bin/named/lwresd.c:885:3
    #1 destroy_managers bin/named/./main.c:938:2
    #2 cleanup bin/named/./main.c:1346:2
    #3 main bin/named/./main.c:1594:2

  Previous write of size 8 at 0x000000000001 by thread T1 (mutexes: write M1):
    #0 configure_listener bin/named/lwresd.c:768:2
    #1 ns_lwresd_configure bin/named/lwresd.c:836:5
    #2 load_configuration bin/named/./server.c:8230:2
    #3 run_server bin/named/./server.c
    #4 dispatch lib/isc/task.c:1157:7
    #5 run lib/isc/task.c:1331:2
2020-09-08 09:25:43 +10:00
Mark Andrews 3d6dda54e7 state_key_initialized had a data race.
WARNING: ThreadSanitizer: data race (pid=25060)
  Read of size 1 at 0x7fb4b1448098 by thread T12 (mutexes: write M802339438951732248):
    #0 state_key_init /builds/isc-projects/bind9/lib/dns/geoip2.c:113:7 (libdns.so.1110+0x24204a)
    #1 get_entry_for /builds/isc-projects/bind9/lib/dns/geoip2.c:214:11 (libdns.so.1110+0x241dc7)
    #2 dns_geoip_match /builds/isc-projects/bind9/lib/dns/geoip2.c:383:10 (libdns.so.1110+0x2418a5)
    #3 dns_aclelement_match2 /builds/isc-projects/bind9/lib/dns/acl.c:493:11 (libdns.so.1110+0x3f46b)
    #4 dns_acl_match2 /builds/isc-projects/bind9/lib/dns/acl.c:298:7 (libdns.so.1110+0x3f236)
    #5 allowed /builds/isc-projects/bind9/bin/named/client.c:1866:11 (named+0x4da797)
    #6 ns_client_isself /builds/isc-projects/bind9/bin/named/client.c:1931:7 (named+0x4da688)
    #7 notify_isself /builds/isc-projects/bind9/lib/dns/zone.c:11025:11 (libdns.so.1110+0x20f74a)
    #8 notify_send /builds/isc-projects/bind9/lib/dns/zone.c:11344:7 (libdns.so.1110+0x20f397)
    #9 notify_find_address /builds/isc-projects/bind9/lib/dns/zone.c:11148:2 (libdns.so.1110+0x20d9db)
    #10 zone_notify /builds/isc-projects/bind9/lib/dns/zone.c:11586:3 (libdns.so.1110+0x204d98)
    #11 zone_maintenance /builds/isc-projects/bind9/lib/dns/zone.c:10261:4 (libdns.so.1110+0x203d4d)
    #12 zone_timer /builds/isc-projects/bind9/lib/dns/zone.c:13106:2 (libdns.so.1110+0x1e847a)
    #13 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x50845)
    #14 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d799)

  Previous write of size 1 at 0x7fb4b1448098 by thread T11 (mutexes: write M818946462577691672, write M52428):
    #0 state_key_init /builds/isc-projects/bind9/lib/dns/geoip2.c:129:27 (libdns.so.1110+0x242118)
    #1 get_entry_for /builds/isc-projects/bind9/lib/dns/geoip2.c:214:11 (libdns.so.1110+0x241dc7)
    #2 dns_geoip_match /builds/isc-projects/bind9/lib/dns/geoip2.c:383:10 (libdns.so.1110+0x2418a5)
    #3 dns_aclelement_match2 /builds/isc-projects/bind9/lib/dns/acl.c:493:11 (libdns.so.1110+0x3f46b)
    #4 dns_acl_match2 /builds/isc-projects/bind9/lib/dns/acl.c:298:7 (libdns.so.1110+0x3f236)
    #5 allowed /builds/isc-projects/bind9/bin/named/client.c:1866:11 (named+0x4da797)
    #6 ns_client_isself /builds/isc-projects/bind9/bin/named/client.c:1931:7 (named+0x4da688)
    #7 notify_isself /builds/isc-projects/bind9/lib/dns/zone.c:11025:11 (libdns.so.1110+0x20f74a)
    #8 notify_send /builds/isc-projects/bind9/lib/dns/zone.c:11344:7 (libdns.so.1110+0x20f397)
    #9 notify_find_address /builds/isc-projects/bind9/lib/dns/zone.c:11148:2 (libdns.so.1110+0x20d9db)
    #10 zone_notify /builds/isc-projects/bind9/lib/dns/zone.c:11586:3 (libdns.so.1110+0x204d98)
    #11 zone_maintenance /builds/isc-projects/bind9/lib/dns/zone.c:10261:4 (libdns.so.1110+0x203d4d)
    #12 zone_timer /builds/isc-projects/bind9/lib/dns/zone.c:13106:2 (libdns.so.1110+0x1e847a)
    #13 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x50845)
    #14 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d799)

  Location is global 'state_key_initialized' of size 1 at 0x7fb4b1448098 (libdns.so.1110+0x0000002c6098)
2020-09-08 09:25:43 +10:00
Mark Andrews fb8a3c9ab2 Remove optimisation on obtaining a headlock as it triggers a tsan.
WARNING: ThreadSanitizer: data race (pid=15898)
  Write of size 8 at 0x7b6400011818 by thread T9 (mutexes: write M1597):
    #0 get_client /builds/isc-projects/bind9/bin/named/client.c:3876:3 (named+0x4db171)
    #1 ns_client_replace /builds/isc-projects/bind9/bin/named/client.c:3710:12 (named+0x4d737b)
    #2 query_recurse /builds/isc-projects/bind9/bin/named/query.c:4325:13 (named+0x4ff469)
    #3 query_find /builds/isc-projects/bind9/bin/named/query.c (named+0x4fb949)
    #4 ns_query_start /builds/isc-projects/bind9/bin/named/query.c:9675:8 (named+0x4f37cb)
    #5 client_request /builds/isc-projects/bind9/bin/named/client.c:3112:3 (named+0x4de9ef)
    #6 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x50845)
    #7 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d799)

  Previous read of size 8 at 0x7b6400011818 by thread T2:
    #0 exit_check /builds/isc-projects/bind9/bin/named/client.c:698:5 (named+0x4d5d22)
    #1 ns_client_detach /builds/isc-projects/bind9/bin/named/client.c:3687:8 (named+0x4d7762)
    #2 query_find /builds/isc-projects/bind9/bin/named/query.c (named+0x4f9021)
    #3 query_resume /builds/isc-projects/bind9/bin/named/query.c:4164:12 (named+0x509b68)
    #4 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x50845)
    #5 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d799)
2020-09-08 09:25:43 +10:00
Mark Andrews 15ae4585d2 counter->used was read without the lock being held.
WARNING: ThreadSanitizer: data race (pid=11785)
  Write of size 4 at 0x7b180001ba10 by thread T12 (mutexes: write M835834548863482336):
    #0 isc_counter_increment /builds/isc-projects/bind9/lib/isc/counter.c:70:15 (libisc.so.1107+0x1dcb6)
    #1 fctx_try /builds/isc-projects/bind9/lib/dns/resolver.c:3851:11 (libdns.so.1110+0x17e312)
    #2 resume_dslookup /builds/isc-projects/bind9/lib/dns/resolver.c:7505:3 (libdns.so.1110+0x18ccf0)
    #3 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507f5)
    #4 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d749)

  Previous read of size 4 at 0x7b180001ba10 by thread T7:
    #0 isc_counter_used /builds/isc-projects/bind9/lib/isc/counter.c:82:19 (libisc.so.1107+0x1dd5f)
    #1 fctx_try /builds/isc-projects/bind9/lib/dns/resolver.c:3798:6 (libdns.so.1110+0x17e0d1)
    #2 fctx_start /builds/isc-projects/bind9/lib/dns/resolver.c:4219:4 (libdns.so.1110+0x178833)
    #3 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507f5)
    #4 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d749)
2020-09-08 09:25:43 +10:00
Mark Andrews cf4a9d9ab8 It appears that you can't change what you are polling for while connecting.
WARNING: ThreadSanitizer: data race (pid=6465)
  Read of size 8 at 0x7ba000002040 by thread T14:
    #0 epoll_ctl <null> (named+0x44ccd2)
    #1 watch_fd /builds/isc-projects/bind9/lib/isc/unix/socket.c:975:8 (libisc.so.1107+0x6bd90)
    #2 wakeup_socket /builds/isc-projects/bind9/lib/isc/unix/socket.c:1164:11 (libisc.so.1107+0x7057d)
    #3 process_ctlfd /builds/isc-projects/bind9/lib/isc/unix/socket.c:4258:3 (libisc.so.1107+0x6c308)
    #4 process_fds /builds/isc-projects/bind9/lib/isc/unix/socket.c:4162:10 (libisc.so.1107+0x6bf74)
    #5 watcher /builds/isc-projects/bind9/lib/isc/unix/socket.c:4401:10 (libisc.so.1107+0x64348)

  Previous write of size 8 at 0x7ba000002040 by thread T9 (mutexes: write M81481868977181736):
    #0 connect <null> (named+0x44b7e0)
    #1 isc__socket_connect /builds/isc-projects/bind9/lib/isc/unix/socket.c:5902:7 (libisc.so.1107+0x67a79)
    #2 isc_socket_connect /builds/isc-projects/bind9/lib/isc/unix/./../socket_api.c:169:11 (libisc.so.1107+0x6aa4b)
    #3 resquery_send /builds/isc-projects/bind9/lib/dns/resolver.c:2573:13 (libdns.so.1110+0x18570b)
    #4 fctx_query /builds/isc-projects/bind9/lib/dns/resolver.c:1903:12 (libdns.so.1110+0x1815a3)
    #5 fctx_try /builds/isc-projects/bind9/lib/dns/resolver.c:3863:11 (libdns.so.1110+0x17e3a9)
    #6 fctx_start /builds/isc-projects/bind9/lib/dns/resolver.c:4219:4 (libdns.so.1110+0x178833)
    #7 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507f5)
    #8 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d749)

  Location is file descriptor 516 created by thread T9 at:
    #0 connect <null> (named+0x44b7e0)
    #1 isc__socket_connect /builds/isc-projects/bind9/lib/isc/unix/socket.c:5902:7 (libisc.so.1107+0x67a79)
    #2 isc_socket_connect /builds/isc-projects/bind9/lib/isc/unix/./../socket_api.c:169:11 (libisc.so.1107+0x6aa4b)
    #3 resquery_send /builds/isc-projects/bind9/lib/dns/resolver.c:2573:13 (libdns.so.1110+0x18570b)
    #4 fctx_query /builds/isc-projects/bind9/lib/dns/resolver.c:1903:12 (libdns.so.1110+0x1815a3)
    #5 fctx_try /builds/isc-projects/bind9/lib/dns/resolver.c:3863:11 (libdns.so.1110+0x17e3a9)
    #6 fctx_start /builds/isc-projects/bind9/lib/dns/resolver.c:4219:4 (libdns.so.1110+0x178833)
    #7 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507f5)
    #8 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d749)
2020-09-08 09:25:43 +10:00
Mark Andrews 80bf3f3852 Only test node->data if we care about whether data is present or not.
WARNING: ThreadSanitizer: data race (pid=28788)
  Write of size 8 at 0x7b200002e060 by thread T1 (mutexes: write M2947):
    #0 add32 /builds/isc-projects/bind9/lib/dns/rbtdb.c:6638:18 (libdns.so.1110+0xe7843)
    #1 addrdataset /builds/isc-projects/bind9/lib/dns/rbtdb.c:6975:12 (libdns.so.1110+0xe4185)
    #2 dns_db_addrdataset /builds/isc-projects/bind9/lib/dns/db.c:783:10 (libdns.so.1110+0x650ee)
    #3 validated /builds/isc-projects/bind9/lib/dns/resolver.c:5140:11 (libdns.so.1110+0x1909f7)
    #4 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507f5)
    #5 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d749)

  Previous read of size 8 at 0x7b200002e060 by thread T5 (mutexes: write M521146194917735760):
    #0 dns_rbt_findnode /builds/isc-projects/bind9/lib/dns/rbt.c:1708:9 (libdns.so.1110+0xd910d)
    #1 cache_find /builds/isc-projects/bind9/lib/dns/rbtdb.c:5098:11 (libdns.so.1110+0xe188e)
    #2 dns_db_find /builds/isc-projects/bind9/lib/dns/db.c:554:11 (libdns.so.1110+0x642bb)
    #3 dns_view_find2 /builds/isc-projects/bind9/lib/dns/view.c:1068:11 (libdns.so.1110+0x1cc2c4)
    #4 dbfind_name /builds/isc-projects/bind9/lib/dns/adb.c:3714:11 (libdns.so.1110+0x46a4b)
    #5 dns_adb_createfind2 /builds/isc-projects/bind9/lib/dns/adb.c:3133:12 (libdns.so.1110+0x45278)
    #6 findname /builds/isc-projects/bind9/lib/dns/resolver.c:3166:11 (libdns.so.1110+0x1827f0)
    #7 fctx_getaddresses /builds/isc-projects/bind9/lib/dns/resolver.c:3462:3 (libdns.so.1110+0x18032d)
    #8 fctx_try /builds/isc-projects/bind9/lib/dns/resolver.c:3819:12 (libdns.so.1110+0x17e174)
    #9 fctx_start /builds/isc-projects/bind9/lib/dns/resolver.c:4219:4 (libdns.so.1110+0x1787a3)
    #10 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507f5)
    #11 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d749)
2020-09-08 09:25:43 +10:00
Mark Andrews 674a219466 Address data race in dns_adbentry_overquota
Read of size 4 at 0x7b440003da70 by thread T8:
    #0 dns_adbentry_overquota /builds/isc-projects/bind9/lib/dns/adb.c:4797:39 (libdns.so.1110+0x4da82)
    #1 fctx_try /builds/isc-projects/bind9/lib/dns/resolver.c:3838:10 (libdns.so.1110+0x17e229)
    #2 fctx_start /builds/isc-projects/bind9/lib/dns/resolver.c:4219:4 (libdns.so.1110+0x1787a3)
    #3 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507f5)
    #4 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d749)

  Previous write of size 4 at 0x7b440003da70 by thread T12 (mutexes: write M549293692588722840):
    #0 dns_adb_beginudpfetch /builds/isc-projects/bind9/lib/dns/adb.c:4811:21 (libdns.so.1110+0x4db82)
    #1 fctx_query /builds/isc-projects/bind9/lib/dns/resolver.c:1901:3 (libdns.so.1110+0x1814ee)
    #2 fctx_try /builds/isc-projects/bind9/lib/dns/resolver.c:3863:11 (libdns.so.1110+0x17e2fa)
    #3 fctx_start /builds/isc-projects/bind9/lib/dns/resolver.c:4219:4 (libdns.so.1110+0x1787a3)
    #4 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507f5)
    #5 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d749)
2020-09-08 09:25:43 +10:00
Mark Andrews 121837aa75 increment header->count atomically 2020-09-08 09:25:43 +10:00
Mark Andrews 3a59243284 Address data race in dns_adb_detach.
Move INSIST inside of locked section.
2020-09-08 09:25:43 +10:00
Mark Andrews 505e338156 Address lock-order-inversion
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=12714)
  Cycle in lock order graph: M100252 (0x7b7c00010a08) => M1171 (0x7b7400000dc8) => M100252

  Mutex M1171 acquired here while holding mutex M100252 in thread T1:
    #0 pthread_mutex_lock <null> (delv+0x4483a6)
    #1 dns_resolver_createfetch3 /builds/isc-projects/bind9/lib/dns/resolver.c:9585:2 (libdns.so.1110+0x1769fd)
    #2 dns_resolver_createfetch /builds/isc-projects/bind9/lib/dns/resolver.c:9504:10 (libdns.so.1110+0x174e17)
    #3 create_fetch /builds/isc-projects/bind9/lib/dns/validator.c:1156:10 (libdns.so.1110+0x1c1e5f)
    #4 validatezonekey /builds/isc-projects/bind9/lib/dns/validator.c:2124:13 (libdns.so.1110+0x1c3b6d)
    #5 start_positive_validation /builds/isc-projects/bind9/lib/dns/validator.c:2301:10 (libdns.so.1110+0x1bfde9)
    #6 validator_start /builds/isc-projects/bind9/lib/dns/validator.c:3647:12 (libdns.so.1110+0x1bef62)
    #7 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507d5)
    #8 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d729)

  Mutex M100252 previously acquired by the same thread here:
    #0 pthread_mutex_lock <null> (delv+0x4483a6)
    #1 validator_start /builds/isc-projects/bind9/lib/dns/validator.c:3628:2 (libdns.so.1110+0x1bee31)
    #2 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507d5)
    #3 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d729)

  Mutex M100252 acquired here while holding mutex M1171 in thread T1:
    #0 pthread_mutex_lock <null> (delv+0x4483a6)
    #1 dns_validator_destroy /builds/isc-projects/bind9/lib/dns/validator.c:3912:2 (libdns.so.1110+0x1bf788)
    #2 validated /builds/isc-projects/bind9/lib/dns/resolver.c:4916:2 (libdns.so.1110+0x18fdfd)
    #3 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507d5)
    #4 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d729)

  Mutex M1171 previously acquired by the same thread here:
    #0 pthread_mutex_lock <null> (delv+0x4483a6)
    #1 validated /builds/isc-projects/bind9/lib/dns/resolver.c:4907:2 (libdns.so.1110+0x18fc3d)
    #2 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507d5)
    #3 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d729)

  Thread T1 'isc-worker0000' (tid=12729, running) created by main thread at:
    #0 pthread_create <null> (delv+0x42afdb)
    #1 isc_thread_create /builds/isc-projects/bind9/lib/isc/pthreads/thread.c:60:8 (libisc.so.1107+0x726d8)
    #2 isc__taskmgr_create /builds/isc-projects/bind9/lib/isc/task.c:1468:7 (libisc.so.1107+0x4d635)
    #3 isc_taskmgr_createinctx /builds/isc-projects/bind9/lib/isc/task.c:2091:11 (libisc.so.1107+0x4f4ac)
    #4 main /builds/isc-projects/bind9/bin/delv/delv.c:1639:2 (delv+0x4b7f96)

SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/builds/isc-projects/bind9/bin/delv/.libs/delv+0x4483a6) in pthread_mutex_lock
2020-09-08 09:25:43 +10:00
Mark Andrews 3ed7746ec9 Address lock-order-inversion
Obtain references to view->redirect and view->managed_keys then
release view->lock so dns_zone_setviewcommit and dns_zone_setviewrevert
can obtain the view->lock while holding zone->lock.

WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=9132)
  Cycle in lock order graph: M987831431424375936 (0x000000000000) => M1012319771577875480 (0x000000000000) => M987831431424375936

  Mutex M1012319771577875480 acquired here while holding mutex M987831431424375936 in thread T2:
    #0 pthread_mutex_lock <null> (named+0x4642a6)
    #1 dns_zone_setviewcommit /builds/isc-projects/bind9/lib/dns/zone.c:1571:2 (libdns.so.1110+0x1d74eb)
    #2 dns_view_setviewcommit /builds/isc-projects/bind9/lib/dns/view.c:2388:3 (libdns.so.1110+0x1cfe29)
    #3 load_configuration /builds/isc-projects/bind9/bin/named/./server.c:8188:3 (named+0x51eadd)
    #4 loadconfig /builds/isc-projects/bind9/bin/named/./server.c:9438:11 (named+0x510c66)
    #5 ns_server_reconfigcommand /builds/isc-projects/bind9/bin/named/./server.c:9773:2 (named+0x510b41)
    #6 ns_control_docommand /builds/isc-projects/bind9/bin/named/control.c:243:12 (named+0x4e451a)
    #7 control_recvmessage /builds/isc-projects/bind9/bin/named/controlconf.c:465:13 (named+0x4e9056)
    #8 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507d5)
    #9 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d729)

  Mutex M987831431424375936 previously acquired by the same thread here:
    #0 pthread_mutex_lock <null> (named+0x4642a6)
    #1 dns_view_setviewcommit /builds/isc-projects/bind9/lib/dns/view.c:2382:2 (libdns.so.1110+0x1cfde7)
    #2 load_configuration /builds/isc-projects/bind9/bin/named/./server.c:8188:3 (named+0x51eadd)
    #3 loadconfig /builds/isc-projects/bind9/bin/named/./server.c:9438:11 (named+0x510c66)
    #4 ns_server_reconfigcommand /builds/isc-projects/bind9/bin/named/./server.c:9773:2 (named+0x510b41)
    #5 ns_control_docommand /builds/isc-projects/bind9/bin/named/control.c:243:12 (named+0x4e451a)
    #6 control_recvmessage /builds/isc-projects/bind9/bin/named/controlconf.c:465:13 (named+0x4e9056)
    #7 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507d5)
    #8 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d729)

  Mutex M987831431424375936 acquired here while holding mutex M1012319771577875480 in thread T7:
    #0 pthread_mutex_lock <null> (named+0x4642a6)
    #1 dns_view_findzonecut2 /builds/isc-projects/bind9/lib/dns/view.c:1300:2 (libdns.so.1110+0x1cc93a)
    #2 dns_view_findzonecut /builds/isc-projects/bind9/lib/dns/view.c:1261:9 (libdns.so.1110+0x1cc864)
    #3 fctx_create /builds/isc-projects/bind9/lib/dns/resolver.c:4459:13 (libdns.so.1110+0x1779d3)
    #4 dns_resolver_createfetch3 /builds/isc-projects/bind9/lib/dns/resolver.c:9628:12 (libdns.so.1110+0x176cb6)
    #5 dns_resolver_createfetch /builds/isc-projects/bind9/lib/dns/resolver.c:9504:10 (libdns.so.1110+0x174e17)
    #6 zone_refreshkeys /builds/isc-projects/bind9/lib/dns/zone.c:10061:12 (libdns.so.1110+0x2055a5)
    #7 zone_maintenance /builds/isc-projects/bind9/lib/dns/zone.c:10274:5 (libdns.so.1110+0x203a78)
    #8 zone_timer /builds/isc-projects/bind9/lib/dns/zone.c:13106:2 (libdns.so.1110+0x1e815a)
    #9 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507d5)
    #10 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d729)

  Mutex M1012319771577875480 previously acquired by the same thread here:
    #0 pthread_mutex_lock <null> (named+0x4642a6)
    #1 zone_refreshkeys /builds/isc-projects/bind9/lib/dns/zone.c:9951:2 (libdns.so.1110+0x204dc3)
    #2 zone_maintenance /builds/isc-projects/bind9/lib/dns/zone.c:10274:5 (libdns.so.1110+0x203a78)
    #3 zone_timer /builds/isc-projects/bind9/lib/dns/zone.c:13106:2 (libdns.so.1110+0x1e815a)
    #4 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507d5)
    #5 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d729)

  Thread T2 'isc-worker0001' (tid=9163, running) created by main thread at:
    #0 pthread_create <null> (named+0x446edb)
    #1 isc_thread_create /builds/isc-projects/bind9/lib/isc/pthreads/thread.c:60:8 (libisc.so.1107+0x726d8)
    #2 isc__taskmgr_create /builds/isc-projects/bind9/lib/isc/task.c:1468:7 (libisc.so.1107+0x4d635)
    #3 isc_taskmgr_create /builds/isc-projects/bind9/lib/isc/task.c:2109:11 (libisc.so.1107+0x4f587)
    #4 create_managers /builds/isc-projects/bind9/bin/named/./main.c:886:11 (named+0x4f1a97)
    #5 setup /builds/isc-projects/bind9/bin/named/./main.c:1305:11 (named+0x4f05ee)
    #6 main /builds/isc-projects/bind9/bin/named/./main.c:1556:2 (named+0x4ef12d)

  Thread T7 'isc-worker0006' (tid=9168, running) created by main thread at:
    #0 pthread_create <null> (named+0x446edb)
    #1 isc_thread_create /builds/isc-projects/bind9/lib/isc/pthreads/thread.c:60:8 (libisc.so.1107+0x726d8)
    #2 isc__taskmgr_create /builds/isc-projects/bind9/lib/isc/task.c:1468:7 (libisc.so.1107+0x4d635)
    #3 isc_taskmgr_create /builds/isc-projects/bind9/lib/isc/task.c:2109:11 (libisc.so.1107+0x4f587)
    #4 create_managers /builds/isc-projects/bind9/bin/named/./main.c:886:11 (named+0x4f1a97)
    #5 setup /builds/isc-projects/bind9/bin/named/./main.c:1305:11 (named+0x4f05ee)
    #6 main /builds/isc-projects/bind9/bin/named/./main.c:1556:2 (named+0x4ef12d)

SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/builds/isc-projects/bind9/bin/named/.libs/named+0x4642a6) in pthread_mutex_lock
2020-09-08 09:25:43 +10:00
Mark Andrews d776a73362 Take complete ownership of *validatorp before calling destroy. 2020-09-08 09:25:43 +10:00
Mark Andrews 05cb799274 Take complete ownership or *keyp before calling tsigkey_free. 2020-09-08 09:25:43 +10:00
Mark Andrews 8b80f40993 Take complete ownership of *aclp before calling destroy. 2020-09-08 09:25:43 +10:00
Mark Andrews bf0bac4068 isc_refcount_current should be memory_order_acquire 2020-09-08 09:25:43 +10:00
Mark Andrews fffcfe8acc To read locknum we need to obtain the lock identified by locknum
this is a catch 22.  make dns_rbtnode_t:locknum independent
2020-09-08 09:25:43 +10:00
Mark Andrews deb3bf845b Address tsan error in view:destroy() 2020-09-08 09:25:43 +10:00
Mark Andrews e17a750221 move resolver->spillat* under renamed spill_lock 2020-09-08 09:25:43 +10:00
Mark Andrews 52a715b122 isc_mutex_init_errcheck prototype should not be under ISC_MUTEX_PROFILE 2020-09-08 09:25:43 +10:00
Mark Andrews 054dc48a1f Only read dns_master_indent and dns_master_indentstr in named
The old code was not thread safe w.r.t. to the use of these variable.
We now only set them at the start of execution and copy them to
the message structure so they can be safely updated.  This is the
minimal change to make them thread safe.
2020-09-08 09:25:43 +10:00
Mark Andrews 00d315046b Defer read of zl->server and zl->reconfig until
the reference counter has gone to zero and there is
nolonger a possibility of changes in other threads.
2020-09-08 09:25:43 +10:00
Mark Andrews 1f7ccaba1b Prevent loads_pending going to zero while kicking the loads. 2020-09-08 09:25:43 +10:00
Mark Andrews a26d0c5ef3 Access ns_client_requests atomically 2020-09-08 09:25:43 +10:00
Mark Andrews 16e7e27328 Address data races between socket bitfields
* address data race between sock->pending_recv and sock->connected
* address data race between sock->bound and sock->pending_recv

==================
WARNING: ThreadSanitizer: data race (pid=1985)
  Read of size 2 at 0x7b54000c07c0 by thread T6:
    #0 isc__socket_sendto /builds/isc-projects/bind9/lib/isc/unix/socket.c:5291:2 (libisc.so.1107+0x65a00)
    #1 isc__socket_send /builds/isc-projects/bind9/lib/isc/unix/socket.c:5270:10 (libisc.so.1107+0x65944)
    #2 isc_socket_send /builds/isc-projects/bind9/lib/isc/unix/./../socket_api.c:329:10 (libisc.so.1107+0x6b3c9)
    #3 sendstream /builds/isc-projects/bind9/bin/named/xfrout.c:1548:3 (named+0x555038)
    #4 ns_xfr_start /builds/isc-projects/bind9/bin/named/xfrout.c:1132:2 (named+0x553147)
    #5 ns_query_start /builds/isc-projects/bind9/bin/named/query.c:9572:4 (named+0x4f3329)
    #6 client_request /builds/isc-projects/bind9/bin/named/client.c:3115:3 (named+0x4de6af)
    #7 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x50845)
    #8 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d799)

  Previous write of size 2 at 0x7b54000c07c0 by thread T14 (mutexes: write M57, write M855819529908651432):
    #0 dispatch_recv /builds/isc-projects/bind9/lib/isc/unix/socket.c:3353:21 (libisc.so.1107+0x6c601)
    #1 process_fd /builds/isc-projects/bind9/lib/isc/unix/socket.c:4048:5 (libisc.so.1107+0x6c1be)
    #2 process_fds /builds/isc-projects/bind9/lib/isc/unix/socket.c:4161:3 (libisc.so.1107+0x6bfc0)
    #3 watcher /builds/isc-projects/bind9/lib/isc/unix/socket.c:4407:10 (libisc.so.1107+0x64398)
2020-09-08 09:25:43 +10:00
Mark Andrews bcfbc17384 Lock access to ctx->blocked as it is updated by multiple threads 2020-09-08 09:25:43 +10:00
Mark Andrews 5659c64359 Merge branch '2120-the-dynamic-load-flags-are-inconsistent-with-thread-analysis-v9_11' into 'v9_11'
Resolve "The dynamic load flags are inconsistent with thread analysis"

See merge request isc-projects/bind9!4097
2020-09-07 23:10:32 +00:00
Mark Andrews 690f557b09 Don't run dyndb and dlzexternal if running TSAN as
the dlopen flags being used are incompatible with TSAN.

(cherry picked from commit 86316ed29d)
2020-09-08 08:46:14 +10:00
Mark Andrews b66b5a096c alphabetize tests/usage
(cherry picked from commit bbece7389e)
2020-09-08 08:43:45 +10:00
Michal Nowak 072b8c7e09 Merge branch 'mnowak/gcov-fix-No-such-file-or-directory-lib_dns_atomic.h' into 'v9_11'
Copy atomic.h where gcov expects it

See merge request isc-projects/bind9!4086
2020-09-03 10:54:04 +00:00
Michal Nowak 1af880e1e1 Copy atomic.h where gcov expects it
gcov started to fail after isc-projects/bind9!3991 when generating HTML
report with:

    Traceback (most recent call last):
      File "/usr/bin/gcovr", line 11, in <module>
        load_entry_point('gcovr==4.1', 'console_scripts', 'gcovr')()
      File "/usr/lib/python3/dist-packages/gcovr/__main__.py", line 588, in main
        print_html_report(covdata, options)
      File "/usr/lib/python3/dist-packages/gcovr/html_generator.py", line 275, in print_html_report
        errors='replace')
    FileNotFoundError: [Errno 2] No such file or directory: 'lib/dns/atomic.h'

The solution is to copy arch-specific isc/atomic.h where gcov expect it.
2020-09-03 12:19:32 +02:00
Mark Andrews ff0f07b66d Merge branch 'marka-check-deny-name-with-grant-subdomain-v9_11' into 'v9_11'
Check 'deny name' + 'grant subdomain' for the same name

See merge request isc-projects/bind9!4083
2020-09-03 07:16:55 +00:00
Mark Andrews b1c36e7818 Check 'deny name' + 'grant subdomain' for the same name
(cherry picked from commit a402ffbced)
2020-09-03 16:22:54 +10:00
Mark Andrews 8779f4fb15 Merge branch '2115-the-load-of-huge-zone-can-take-over-100-secs-when-running-under-a-sanitiser-v9_11' into 'v9_11'
Increase zone load timeout in the "rndc" test

See merge request isc-projects/bind9!4077
2020-09-02 22:22:43 +00:00
Mark Andrews b2c93102de Increase zone load timeout in the "rndc" test
The "huge.zone" zone can take longer than 100 seconds to load when
running under a sanitizer.  Increase the relevant zone load timeout to
prevent intermittent failures of the "rndc" system test.

(cherry picked from commit fd08918df5)
2020-09-03 07:15:54 +10:00
Michał Kępień 0518cdabcf Merge branch 'michal/update-postal-mail-address-in-the-arm' into 'v9_11'
Update postal mail address in the ARM

See merge request isc-projects/bind9!4072
2020-09-02 16:33:00 +00:00
Michał Kępień be37b11157 Update postal mail address in the ARM
Ensure ISC's postal mail address present on the second page of the PDF
version of the BIND ARM is up to date.
2020-09-02 18:12:16 +02:00
Mark Andrews edc0752944 Merge branch '2054-dig-bufsize-0-sets-bufsize-to-4096-v9_11' into 'v9_11'
dig +bufsize=0 failed to disable EDNS as a side effect.

See merge request isc-projects/bind9!4066
2020-09-02 11:55:25 +00:00
Mark Andrews 46dc1c34f9 dig +bufsize=0 failed to disable EDNS as a side effect.
(cherry picked from commit 0dc04cb901)
2020-09-02 20:47:19 +10:00
Mark Andrews 571d3418ff Merge branch '2083-9-11-zt_test-data-race' into 'v9_11'
Resolve "9.11 zt_test data race"

See merge request isc-projects/bind9!3991
2020-09-02 10:08:06 +00:00
Mark Andrews ca0c1e5b4b Update 'init_count' atomically to silence tsan errors. 2020-09-02 09:35:43 +00:00
Mark Andrews d8fa989c29 Lock access to flags in dns__zone_loadpending
==================
WARNING: ThreadSanitizer: data race (pid=1938)
  Read of size 4 at 0x7b7800000dd4 by main thread:
    #0 dns__zone_loadpending /builds/isc-projects/bind9/lib/dns/zone.c:2308:10 (libdns.so.1110+0x1da342)
    #1 asyncload_zone /builds/isc-projects/bind9/lib/dns/tests/zt_test.c:204:9 (zt_test+0x4b8303)
    #2 <null> <null> (libcmocka.so.0+0x50d8)
    #3 __libc_start_main /build/glibc-vjB4T1/glibc-2.28/csu/../csu/libc-start.c:308:16 (libc.so.6+0x2409a)

  Previous write of size 4 at 0x7b7800000dd4 by thread T16 (mutexes: write M2181):
    #0 zone_asyncload /builds/isc-projects/bind9/lib/dns/zone.c:2237:3 (libdns.so.1110+0x1da08d)
    #1 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x50845)
    #2 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d799)
2020-09-02 09:35:43 +00:00
Mark Andrews d45f53c2cd Address data race over 'done' in zt_test
==================
WARNING: ThreadSanitizer: data race (pid=697)
  Read of size 1 at 0x7ffcf51dd2b7 by main thread:
    #0 asyncload_zone /builds/isc-projects/bind9/lib/dns/tests/zt_test.c:206:2 (zt_test+0x4b835f)
    #1 <null> <null> (libcmocka.so.0+0x50d8)
    #2 __libc_start_main /build/glibc-vjB4T1/glibc-2.28/csu/../csu/libc-start.c:308:16 (libc.so.6+0x2409a)

  Previous write of size 1 at 0x7ffcf51dd2b7 by thread T15:
    #0 load_done /builds/isc-projects/bind9/lib/dns/tests/zt_test.c:89:8 (zt_test+0x4b8d99)
    #1 zone_asyncload /builds/isc-projects/bind9/lib/dns/zone.c:2243:3 (libdns.so.1110+0x1da0f6)
    #2 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x50845)
    #3 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d799)
2020-09-02 09:35:43 +00:00
Mark Andrews b70cd0ff09 Merge branch '2087-v9_11-task_test-tsan-errors' into 'v9_11'
Resolve "v9_11 task_test tsan errors"

See merge request isc-projects/bind9!3995
2020-09-02 09:34:37 +00:00
Mark Andrews 5cc2806cea Add locking to address tsan errors.
Address data races with 'a', 'b', 'c', 'd', 'e', 'counter', 'done',
'nevents', 'nsdevents', 'all_done', and 'eventcnt'.

Add isc_mutex_init/isc_mutex_destroy.
2020-09-02 08:43:42 +00:00
Ondřej Surý 0b2b02520e Merge branch '2037-deferred-system-test-fix-v9_11' into 'v9_11'
Fix the new pkcs11 and tcp test [v9.11]

See merge request isc-projects/bind9!4051
2020-09-02 07:44:33 +00:00
Mark AndrewsandOndřej Surý c237ca4d43 Dump the returned packet 2020-09-02 08:54:40 +02:00
Ondřej Surý 36ec930560 Add -r <repeats> option to packet.pl
For some tests, we need to send big data streams (for TCP) or repeated
packets (for UDP), this commits adds `-r` option to packet.pl that sends
the same input <repeats> times using the specified protocol.

(cherry picked from commit dd46559a19)
2020-09-02 08:54:40 +02:00
Ondřej Surý abae6c0f95 Properly format 2037-pk11_numbits-crash-test.pkt file
(cherry picked from commit 22e0272063)
2020-09-02 08:54:40 +02:00
Mark Andrews 10b19f8b1f Merge branch '2084-9-11-data-race-in-dispatch_test' into 'v9_11'
Resolve "9.11 data race in dispatch_test"

See merge request isc-projects/bind9!3992
2020-09-02 03:42:57 +00:00
Mark Andrews 9b66341971 Lock access when updating/reading manager->epoll_events[fd]
WARNING: ThreadSanitizer: data race (pid=110)
  Write of size 4 at 0x7ba400014050 by main thread (mutexes: write M1100, write M75):
    #0 socket_create /builds/isc-projects/bind9/lib/isc/unix/socket.c:3012:34 (libisc.so.1105+0x6085c)
    #1 isc__socket_create /builds/isc-projects/bind9/lib/isc/unix/socket.c:3044:10 (libisc.so.1105+0x60583)
    #2 isc_socket_create /builds/isc-projects/bind9/lib/isc/unix/./../socket_api.c:105:11 (libisc.so.1105+0x6a4a0)
    #3 open_socket /builds/isc-projects/bind9/lib/dns/dispatch.c:1708:12 (libdns.so.1110+0x7491c)
    #4 get_udpsocket /builds/isc-projects/bind9/lib/dns/dispatch.c:2904:13 (libdns.so.1110+0x745ec)
    #5 dispatch_createudp /builds/isc-projects/bind9/lib/dns/dispatch.c:2994:12 (libdns.so.1110+0x6e159)
    #6 dns_dispatch_getudp_dup /builds/isc-projects/bind9/lib/dns/dispatch.c:2823:11 (libdns.so.1110+0x6d8f2)
    #7 dns_dispatch_getudp /builds/isc-projects/bind9/lib/dns/dispatch.c:2849:10 (libdns.so.1110+0x6e99e)
    #8 make_dispatchset /builds/isc-projects/bind9/lib/dns/tests/dispatch_test.c:81:11 (dispatch_test+0x4ba8fc)
    #9 dispatchset_create /builds/isc-projects/bind9/lib/dns/tests/dispatch_test.c:115:11 (dispatch_test+0x4b9f99)
    #10 <null> <null> (libcmocka.so.0+0x50d8)
    #11 __libc_start_main /build/glibc-vjB4T1/glibc-2.28/csu/../csu/libc-start.c:308:16 (libc.so.6+0x2409a)

  Previous write of size 4 at 0x7ba400014050 by thread T14:
    #0 unwatch_fd /builds/isc-projects/bind9/lib/isc/unix/socket.c (libisc.so.1105+0x6b913)
    #1 wakeup_socket /builds/isc-projects/bind9/lib/isc/unix/socket.c:1128:9 (libisc.so.1105+0x701fc)
    #2 process_ctlfd /builds/isc-projects/bind9/lib/isc/unix/socket.c:4253:3 (libisc.so.1105+0x6c048)
    #3 process_fds /builds/isc-projects/bind9/lib/isc/unix/socket.c:4157:10 (libisc.so.1105+0x6bcb4)
    #4 watcher /builds/isc-projects/bind9/lib/isc/unix/socket.c:4396:10 (libisc.so.1105+0x64188)

  Location is heap block of size 16385 at 0x7ba400014000 allocated by main thread:
    #0 malloc <null> (dispatch_test+0x42b7c4)
    #1 internal_memalloc /builds/isc-projects/bind9/lib/isc/mem.c:887:8 (libisc.so.1105+0x37e38)
    #2 mem_get /builds/isc-projects/bind9/lib/isc/mem.c:792:8 (libisc.so.1105+0x32c2c)
    #3 isc___mem_get /builds/isc-projects/bind9/lib/isc/mem.c:1310:9 (libisc.so.1105+0x325d7)
    #4 isc__mem_get /builds/isc-projects/bind9/lib/isc/mem.c:3012:11 (libisc.so.1105+0x34f80)
    #5 isc__socketmgr_create2 /builds/isc-projects/bind9/lib/isc/unix/socket.c:4704:26 (libisc.so.1105+0x6379a)
    #6 isc__socketmgr_create /builds/isc-projects/bind9/lib/isc/unix/socket.c:4652:10 (libisc.so.1105+0x635f2)
    #7 isc_socketmgr_create /builds/isc-projects/bind9/lib/isc/unix/./../socket_api.c:74:11 (libisc.so.1105+0x6a2c7)
    #8 create_managers /builds/isc-projects/bind9/lib/dns/tests/dnstest.c:120:2 (dispatch_test+0x4bb28a)
    #9 dns_test_begin /builds/isc-projects/bind9/lib/dns/tests/dnstest.c:192:3 (dispatch_test+0x4bb182)
    #10 _setup /builds/isc-projects/bind9/lib/dns/tests/dispatch_test.c:53:11 (dispatch_test+0x4b9ff8)
    #11 <null> <null> (libcmocka.so.0+0x51e2)
    #12 __libc_start_main /build/glibc-vjB4T1/glibc-2.28/csu/../csu/libc-start.c:308:16 (libc.so.6+0x2409a)

  Mutex M1100 (0x7b5000000230) created at:
    #0 pthread_mutex_init <null> (dispatch_test+0x42e60d)
    #1 isc__mutex_init /builds/isc-projects/bind9/lib/isc/pthreads/mutex.c:287:8 (libisc.so.1105+0x72377)
    #2 dns_dispatchmgr_create /builds/isc-projects/bind9/lib/dns/dispatch.c:1778:11 (libdns.so.1110+0x6a055)
    #3 make_dispatchset /builds/isc-projects/bind9/lib/dns/tests/dispatch_test.c:75:11 (dispatch_test+0x4ba883)
    #4 dispatchset_create /builds/isc-projects/bind9/lib/dns/tests/dispatch_test.c:115:11 (dispatch_test+0x4b9f99)
    #5 <null> <null> (libcmocka.so.0+0x50d8)
    #6 __libc_start_main /build/glibc-vjB4T1/glibc-2.28/csu/../csu/libc-start.c:308:16 (libc.so.6+0x2409a)

  Mutex M75 (0x7bb800000320) created at:
    #0 pthread_mutex_init <null> (dispatch_test+0x42e60d)
    #1 isc__mutex_init /builds/isc-projects/bind9/lib/isc/pthreads/mutex.c:287:8 (libisc.so.1105+0x72377)
    #2 isc__socketmgr_create2 /builds/isc-projects/bind9/lib/isc/unix/socket.c:4729:12 (libisc.so.1105+0x63914)
    #3 isc__socketmgr_create /builds/isc-projects/bind9/lib/isc/unix/socket.c:4652:10 (libisc.so.1105+0x635f2)
    #4 isc_socketmgr_create /builds/isc-projects/bind9/lib/isc/unix/./../socket_api.c:74:11 (libisc.so.1105+0x6a2c7)
    #5 create_managers /builds/isc-projects/bind9/lib/dns/tests/dnstest.c:120:2 (dispatch_test+0x4bb28a)
    #6 dns_test_begin /builds/isc-projects/bind9/lib/dns/tests/dnstest.c:192:3 (dispatch_test+0x4bb182)
    #7 _setup /builds/isc-projects/bind9/lib/dns/tests/dispatch_test.c:53:11 (dispatch_test+0x4b9ff8)
    #8 <null> <null> (libcmocka.so.0+0x51e2)
    #9 __libc_start_main /build/glibc-vjB4T1/glibc-2.28/csu/../csu/libc-start.c:308:16 (libc.so.6+0x2409a)

  Thread T14 'isc-socket' (tid=150, running) created by main thread at:
    #0 pthread_create <null> (dispatch_test+0x42d08b)
    #1 isc_thread_create /builds/isc-projects/bind9/lib/isc/pthreads/thread.c:60:8 (libisc.so.1105+0x724e8)
    #2 isc__socketmgr_create2 /builds/isc-projects/bind9/lib/isc/unix/socket.c:4788:6 (libisc.so.1105+0x63cc6)
    #3 isc__socketmgr_create /builds/isc-projects/bind9/lib/isc/unix/socket.c:4652:10 (libisc.so.1105+0x635f2)
    #4 isc_socketmgr_create /builds/isc-projects/bind9/lib/isc/unix/./../socket_api.c:74:11 (libisc.so.1105+0x6a2c7)
    #5 create_managers /builds/isc-projects/bind9/lib/dns/tests/dnstest.c:120:2 (dispatch_test+0x4bb28a)
    #6 dns_test_begin /builds/isc-projects/bind9/lib/dns/tests/dnstest.c:192:3 (dispatch_test+0x4bb182)
    #7 _setup /builds/isc-projects/bind9/lib/dns/tests/dispatch_test.c:53:11 (dispatch_test+0x4b9ff8)
    #8 <null> <null> (libcmocka.so.0+0x51e2)
    #9 __libc_start_main /build/glibc-vjB4T1/glibc-2.28/csu/../csu/libc-start.c:308:16 (libc.so.6+0x2409a)

SUMMARY: ThreadSanitizer: data race /builds/isc-projects/bind9/lib/isc/unix/socket.c:3012:34 in socket_create
2020-09-02 03:07:03 +00:00
Mark Andrews d9a2cccc97 Lock on msg == SELECT_POKE_CLOSE as it triggers a tsan error
WARNING: ThreadSanitizer: data race (pid=1941)
  Write of size 4 at 0x7ba40000f050 by main thread (mutexes: write M1100, write M75):
    #0 socket_create /builds/isc-projects/bind9/1126G:3009:29 (libisc.so.1105+0x60822)
    #1 isc__socket_create /builds/isc-projects/bind9/lib/isc/unix/socket.c:3043:10 (libisc.so.1105+0x60583)
    #2 isc_socket_create /builds/isc-projects/bind9/lib/isc/unix/./../socket_api.c:105:11 (libisc.so.1105+0x6a4a0)
    #3 open_socket /builds/isc-projects/bind9/lib/dns/dispatch.c:1708:12 (libdns.so.1110+0x7491c)
    #4 get_udpsocket /builds/isc-projects/bind9/lib/dns/dispatch.c:2904:13 (libdns.so.1110+0x745ec)
    #5 dispatch_createudp /builds/isc-projects/bind9/lib/dns/dispatch.c:2994:12 (libdns.so.1110+0x6e159)
    #6 dns_dispatch_getudp_dup /builds/isc-projects/bind9/lib/dns/dispatch.c:2823:11 (libdns.so.1110+0x6d8f2)
    #7 dns_dispatch_getudp /builds/isc-projects/bind9/lib/dns/dispatch.c:2849:10 (libdns.so.1110+0x6e99e)
    #8 make_dispatchset /builds/isc-projects/bind9/lib/dns/tests/dispatch_test.c:81:11 (dispatch_test+0x4ba8fc)
    #9 dispatchset_create /builds/isc-projects/bind9/lib/dns/tests/dispatch_test.c:115:11 (dispatch_test+0x4b9f99)
    #10 <null> <null> (libcmocka.so.0+0x50d8)
    #11 __libc_start_main /build/glibc-vjB4T1/glibc-2.28/csu/../csu/libc-start.c:308:16 (libc.so.6+0x2409a)

  Previous write of size 4 at 0x7ba40000f050 by thread T14:
    #0 wakeup_socket /builds/isc-projects/bind9/lib/isc/unix/socket.c:1126:24 (libisc.so.1105+0x70181)
    #1 process_ctlfd /builds/isc-projects/bind9/lib/isc/unix/socket.c:4252:3 (libisc.so.1105+0x6c048)
    #2 process_fds /builds/isc-projects/bind9/lib/isc/unix/socket.c:4156:10 (libisc.so.1105+0x6bcb4)
    #3 watcher /builds/isc-projects/bind9/lib/isc/unix/socket.c:4395:10 (libisc.so.1105+0x64188)

  Location is heap block of size 16385 at 0x7ba40000f000 allocated by main thread:
    #0 malloc <null> (dispatch_test+0x42b7c4)
    #1 internal_memalloc /builds/isc-projects/bind9/lib/isc/mem.c:887:8 (libisc.so.1105+0x37e38)
    #2 mem_get /builds/isc-projects/bind9/lib/isc/mem.c:792:8 (libisc.so.1105+0x32c2c)
    #3 isc___mem_get /builds/isc-projects/bind9/lib/isc/mem.c:1310:9 (libisc.so.1105+0x325d7)
    #4 isc__mem_get /builds/isc-projects/bind9/lib/isc/mem.c:3012:11 (libisc.so.1105+0x34f80)
    #5 isc__socketmgr_create2 /builds/isc-projects/bind9/lib/isc/unix/socket.c:4697:21 (libisc.so.1105+0x6374f)
    #6 isc__socketmgr_create /builds/isc-projects/bind9/lib/isc/unix/socket.c:4651:10 (libisc.so.1105+0x635f2)
    #7 isc_socketmgr_create /builds/isc-projects/bind9/lib/isc/unix/./../socket_api.c:74:11 (libisc.so.1105+0x6a2c7)
    #8 create_managers /builds/isc-projects/bind9/lib/dns/tests/dnstest.c:120:2 (dispatch_test+0x4bb28a)
    #9 dns_test_begin /builds/isc-projects/bind9/lib/dns/tests/dnstest.c:192:3 (dispatch_test+0x4bb182)
    #10 _setup /builds/isc-projects/bind9/lib/dns/tests/dispatch_test.c:53:11 (dispatch_test+0x4b9ff8)
    #11 <null> <null> (libcmocka.so.0+0x51e2)
    #12 __libc_start_main /build/glibc-vjB4T1/glibc-2.28/csu/../csu/libc-start.c:308:16 (libc.so.6+0x2409a)

  Mutex M1100 (0x7b5000000230) created at:
    #0 pthread_mutex_init <null> (dispatch_test+0x42e60d)
    #1 isc__mutex_init /builds/isc-projects/bind9/lib/isc/pthreads/mutex.c:287:8 (libisc.so.1105+0x72317)
    #2 dns_dispatchmgr_create /builds/isc-projects/bind9/lib/dns/dispatch.c:1778:11 (libdns.so.1110+0x6a055)
    #3 make_dispatchset /builds/isc-projects/bind9/lib/dns/tests/dispatch_test.c:75:11 (dispatch_test+0x4ba883)
    #4 dispatchset_create /builds/isc-projects/bind9/lib/dns/tests/dispatch_test.c:115:11 (dispatch_test+0x4b9f99)
    #5 <null> <null> (libcmocka.so.0+0x50d8)
    #6 __libc_start_main /build/glibc-vjB4T1/glibc-2.28/csu/../csu/libc-start.c:308:16 (libc.so.6+0x2409a)

  Mutex M75 (0x7bb800000320) created at:
    #0 pthread_mutex_init <null> (dispatch_test+0x42e60d)
    #1 isc__mutex_init /builds/isc-projects/bind9/lib/isc/pthreads/mutex.c:287:8 (libisc.so.1105+0x72317)
    #2 isc__socketmgr_create2 /builds/isc-projects/bind9/lib/isc/unix/socket.c:4728:12 (libisc.so.1105+0x63914)
    #3 isc__socketmgr_create /builds/isc-projects/bind9/lib/isc/unix/socket.c:4651:10 (libisc.so.1105+0x635f2)
    #4 isc_socketmgr_create /builds/isc-projects/bind9/lib/isc/unix/./../socket_api.c:74:11 (libisc.so.1105+0x6a2c7)
    #5 create_managers /builds/isc-projects/bind9/lib/dns/tests/dnstest.c:120:2 (dispatch_test+0x4bb28a)
    #6 dns_test_begin /builds/isc-projects/bind9/lib/dns/tests/dnstest.c:192:3 (dispatch_test+0x4bb182)
    #7 _setup /builds/isc-projects/bind9/lib/dns/tests/dispatch_test.c:53:11 (dispatch_test+0x4b9ff8)
    #8 <null> <null> (libcmocka.so.0+0x51e2)
    #9 __libc_start_main /build/glibc-vjB4T1/glibc-2.28/csu/../csu/libc-start.c:308:16 (libc.so.6+0x2409a)

  Thread T14 'isc-socket' (tid=1969, running) created by main thread at:
    #0 pthread_create <null> (dispatch_test+0x42d08b)
    #1 isc_thread_create /builds/isc-projects/bind9/lib/isc/pthreads/thread.c:60:8 (libisc.so.1105+0x72488)
    #2 isc__socketmgr_create2 /builds/isc-projects/bind9/lib/isc/unix/socket.c:4787:6 (libisc.so.1105+0x63cc6)
    #3 isc__socketmgr_create /builds/isc-projects/bind9/lib/isc/unix/socket.c:4651:10 (libisc.so.1105+0x635f2)
    #4 isc_socketmgr_create /builds/isc-projects/bind9/lib/isc/unix/./../socket_api.c:74:11 (libisc.so.1105+0x6a2c7)
    #5 create_managers /builds/isc-projects/bind9/lib/dns/tests/dnstest.c:120:2 (dispatch_test+0x4bb28a)
    #6 dns_test_begin /builds/isc-projects/bind9/lib/dns/tests/dnstest.c:192:3 (dispatch_test+0x4bb182)
    #7 _setup /builds/isc-projects/bind9/lib/dns/tests/dispatch_test.c:53:11 (dispatch_test+0x4b9ff8)
    #8 <null> <null> (libcmocka.so.0+0x51e2)
    #9 __libc_start_main /build/glibc-vjB4T1/glibc-2.28/csu/../csu/libc-start.c:308:16 (libc.so.6+0x2409a)

SUMMARY: ThreadSanitizer: data race /builds/isc-projects/bind9/lib/isc/unix/socket.c:3009:29 in socket_create
2020-09-02 03:07:03 +00:00
Mark Andrews 54e35ae174 Destroy the mutex 2020-09-02 03:07:03 +00:00
Mark Andrews 338aea8447 Lock 'responses' before reading it
WARNING: ThreadSanitizer: data race
  Read of size 4 at 0x000000000001 by main thread:
    #0 dispatch_getnext lib/dns/tests/dispatch_test.c:327
    #1 <null> <null>
    #2 __libc_start_main ../csu/libc-start.c:308

  Previous write of size 4 at 0x000000000001 by thread T1 (mutexes: write M1):
    #0 response lib/dns/tests/dispatch_test.c:234
    #1 dispatch lib/isc/task.c:1157
    #2 run lib/isc/task.c:1331
    #3 <null> <null>

  Location is global 'responses' of size 4 at 0x000000000001

  Mutex M1 (0x000000000009) created at:
    #0 pthread_mutex_init <null>
    #1 isc__mutex_init lib/isc/pthreads/mutex.c:287
    #2 dispatch_getnext lib/dns/tests/dispatch_test.c:273
    #3 <null> <null>
    #4 __libc_start_main ../csu/libc-start.c:308

  Thread T1 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create lib/isc/pthreads/thread.c:60
    #2 isc__taskmgr_create lib/isc/task.c:1468
    #3 isc_taskmgr_create lib/isc/task.c:2109
    #4 create_managers lib/dns/tests/dnstest.c:118
    #5 dns_test_begin lib/dns/tests/dnstest.c:192
    #6 _setup lib/dns/tests/dispatch_test.c:53
    #7 <null> <null>
    #8 __libc_start_main ../csu/libc-start.c:308

SUMMARY: ThreadSanitizer: data race lib/dns/tests/dispatch_test.c:327 in dispatch_getnext
2020-09-02 03:07:03 +00:00
Mark Andrews d8de7340ab Merge branch '2081-data-race-in-zonemgr_test-v9_11' into 'v9_11'
Resolve "data race in zonemgr_test"

See merge request isc-projects/bind9!4057
2020-09-02 02:30:52 +00:00
Mark Andrews 5c73320075 Add CHANGES note
(cherry picked from commit ca1b0f1539)
2020-09-02 11:47:58 +10:00
Mark Andrews a7da8f84ca isc_ratelimiter needs to hold a reference to its task
to prevent the task subsystem shutting down before the
ratelimiter is freed.

(cherry picked from commit b8e4b6d303)
2020-09-02 11:47:37 +10:00
Mark Andrews 1446e11985 Merge branch '2085-9-11-socket_test-tsan-errors' into 'v9_11'
Resolve "9.11 socket_test tsan errors"

See merge request isc-projects/bind9!3993
2020-09-02 01:01:30 +00:00
Mark Andrews 310004d8ac Add locking to socket_test to silence tsan reports.
There where data races accessing completion.
2020-09-02 00:25:56 +00:00
Mark Andrews 28185bdcf3 Merge branch '2049-cleanup-sock-v9_11' into 'v9_11'
remove unused variable sock

See merge request isc-projects/bind9!4053
2020-09-01 23:36:22 +00:00
Mark Andrews c9f7d7c05f remove unused variable sock
(cherry picked from commit b1c424ddf3)
2020-09-02 09:00:22 +10:00
Mark Andrews 8f28b38979 Merge branch '2086-v9_11-timer_test-tsan-errors' into 'v9_11'
Resolve "v9_11 timer_test tsan errors"

See merge request isc-projects/bind9!3994
2020-09-01 22:51:53 +00:00
Mark Andrews 8094b821b3 Lock access to 'eventcnt' in timer_test.
There was a data race accessing 'eventcnt'.
2020-09-01 22:15:23 +00:00
Mark Andrews 41b23de45a Merge branch '2096-isc_refcount_decrement-needs-acquire-release-memory-ordering-v9_11' into 'v9_11'
Use memory_order_acq_rel in isc_refcount_decrement.

See merge request isc-projects/bind9!4049
2020-09-01 13:40:07 +00:00
Mark Andrews 30013c3794 Use memory_order_acq_rel in isc_refcount_decrement.
While

if (isc_refcount_decrement() == 1) {	// memory_order_release
	isc_refcount_destroy();		// memory_order_acquire
	...
}

is theoretically the most efficent in practice, using
memory_order_acq_rel produces the same code on x86_64 and doesn't
trigger tsan data races (which use a idealistic model) if
isc_refcount_destroy() is not called immediately.  In fact
isc_refcount_destroy() could be removed if we didn't want
to check for the count being 0 when isc_refcount_destroy() is
called.

https://stackoverflow.com/questions/49112732/memory-order-in-shared-pointer-destructor
(cherry picked from commit 6278899a38)
2020-09-01 22:31:52 +10:00
Ondřej Surý 2e47802198 Merge branch '2037-deferred-system-test-v9_11' into 'v9_11'
[CVE-2020-8623]: Fix crash in pk11_numbits() with crafted packet when native-pkcs11 is used [TEST] [v9.11]

See merge request isc-projects/bind9!4041
2020-08-31 10:38:39 +00:00
Ondřej SurýandOndřej Surý a40151fe76 Add PoC system test for pk11_numbits() assertion
(cherry picked from commit a69433ba40)
2020-08-31 11:49:36 +02:00
Ondřej Surý 78ceb907fc Merge branch '2028-deferred-system-test-v9_11' into 'v9_11'
[CVE-2020-8622] Properly handle malformed truncated responses to TSIG queries [TEST] [v9.11]

See merge request isc-projects/bind9!4036
2020-08-31 07:30:05 +00:00
Mark AndrewsandOndřej Surý 78d0355f30 check that a malformed truncated response to a TSIG query is handled
(cherry picked from commit 8bbf3eb5f3)
2020-08-31 08:35:10 +02:00
Mark Andrews 76b1c600d3 Merge branch '2097-manual-page-tools-need-updating-v9_11' into 'v9_11'
[v9_11] Fix generated documentation

See merge request isc-projects/bind9!4026
2020-08-27 01:12:03 +00:00
Michal NowakandMark Andrews 88bab74ce9 Fix generated documentation
Regenerated documentation.
2020-08-26 22:17:26 +00:00
Ondřej Surý c910d13f2e Merge branch '2074-bind-allows-an-empty-cm-value-for-optional-loc-rdata-fields-v9_11' into 'v9_11'
Resolve "BIND allows an empty 'cm' value for optional LOC RDATA fields"

See merge request isc-projects/bind9!4025
2020-08-26 20:31:27 +00:00
Mark AndrewsandOndřej Surý e95fdfba09 Add CHANGES note
(cherry picked from commit d9594cffab)
2020-08-26 17:26:56 +02:00
Mark AndrewsandOndřej Surý f2335d1faa Refactor totext_loc
(cherry picked from commit 2ca4d35037)
2020-08-26 17:26:56 +02:00
Mark AndrewsandOndřej Surý 19b95a5f37 Correctly encode LOC records with non integer negative altitudes.
(cherry picked from commit 337cc878fa)
2020-08-26 17:26:56 +02:00
Mark AndrewsandOndřej Surý 8a499c1fc6 Check LOC's altitude field is properly parsed and encoded.
(cherry picked from commit 888dfd78c7)
2020-08-26 17:26:56 +02:00
Mark AndrewsandOndřej Surý b2d67a28ac Tighten LOC parsing to reject period and/or m as a value.
(cherry picked from commit 9225c67835)
2020-08-26 17:26:56 +02:00
Mark AndrewsandOndřej Surý 2a6d6a7896 Synchronize {to,from}text_loc formatting with 9.16 2020-08-26 17:26:41 +02:00
Michał Kępień 90eb693b7c Merge branch 'michal/set-up-release-notes-for-bind-9.11.23' into 'v9_11'
Set up release notes for BIND 9.11.23

See merge request isc-projects/bind9!4021
2020-08-26 13:50:03 +00:00
Michał Kępień 9f355db252 Set up release notes for BIND 9.11.23 2020-08-26 15:46:02 +02:00
Michal Nowak 821ca188f4 Merge branch 'mnowak/tumbleweed-fix-krb5-config-location-v9_11' into 'v9_11'
[v9_11] Tumbleweed changed location of krb5-config

See merge request isc-projects/bind9!4019
2020-08-26 09:08:04 +00:00
Michal Nowak 6dac1faca4 Tumbleweed changed location of krb5-config
krb5-config is now in /usr/bin/ and we should detect it automatically.

(cherry picked from commit 6095811461)
(cherry picked from commit 9a305e0d47)
2020-08-26 11:02:52 +02:00
Ondřej Surý 0954b2e0ee Merge branch '2095-shifting-large-rcode-in-dns-message-c-results-in-undefined-behaviour-v9_11' into 'v9_11'
Cast the original rcode to (dns_ttl_t) when setting extended rcode

See merge request isc-projects/bind9!4015
2020-08-25 19:01:12 +00:00
Mark AndrewsandOndřej Surý b114651445 Cast the original rcode to (dns_ttl_t) when setting extended rcode
Shifting (signed) integer left could trigger undefined behaviour when
the shifted value would overflow into the sign bit (e.g. 2048).

The issue was found when using AFL++ and UBSAN:

    message.c:2274:33: runtime error: left shift of 2048 by 20 places cannot be represented in type 'int'
    SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior message.c:2274:33 in

(cherry picked from commit a347641782)
2020-08-25 16:41:08 +02:00
Michal Nowak 19d4f62b03 Merge branch '2053-test-disable-buffer-useinline-in-gitlab-ci-v9_11' into 'v9_11'
[v9_11] Resolve "Test --disable-buffer-useinline in GitLab CI"

See merge request isc-projects/bind9!4013
2020-08-25 14:28:26 +00:00
Michal Nowak 2e2c3720da Build CentOS 8 with --enable-buffer-useinline
(cherry picked from commit f34df4ef90)
2020-08-25 16:14:00 +02:00
Michal Nowak 966eb72f5b Fix warnings in when build with --enable-buffer-useinline
sockaddr.c:147:49: error: pointer targets in passing argument 2 of ‘isc__buffer_putmem’ differ in signedness
    rdata.c:1780:30: error: pointer targets in passing argument 2 of ‘isc__buffer_putmem’ differ in signedness

(cherry picked from commit dd425254a7)
2020-08-25 16:13:54 +02:00
Michal Nowak 9ba15f21f0 Merge branch 'mnowak/update_BIND_BASELINE_VERSION_to_v9_11_22' into 'v9_11'
Update BIND_BASELINE_VERSION to v9_11_22

See merge request isc-projects/bind9!4001
2020-08-21 09:37:11 +00:00
Michal Nowak a28d3aba3a Update BIND_BASELINE_VERSION to v9_11_22 2020-08-21 11:29:58 +02:00
Evan Hunt 15d57a425e Merge tag 'v9_11_22' into v9_11
BIND 9.11.22
2020-08-20 12:10:47 -07:00
Ondřej Surý 2c6693c73f Merge branch 'marka-fuzz-consolidated-v9_16-v9_11' into 'v9_11'
Consolidated fuzz fixes (v9.11)

See merge request isc-projects/bind9!3979
2020-08-18 10:31:07 +00:00
Mark AndrewsandOndřej Surý 4236972de4 A6: return FORMERR in fromwire if bits are non zero.
oss_fuzz: Issue 24864: bind9:dns_rdata_fromwire_text_fuzzer: Overwrites-const-input in dns_rdata_fromwire_text_fuzzer

(cherry picked from commit 8452404bd7)
(cherry picked from commit d8a57d32b1)
2020-08-18 11:36:06 +02:00
Mark AndrewsandOndřej Surý 80bc4fc1ea RRSIG: reject records with empty SIG section
(cherry picked from commit f6d7b8c20d)
(cherry picked from commit 6b1675a62c)
2020-08-18 11:33:32 +02:00
Michal Nowak 3a057967c5 Merge branch 'mnowak/add-missing-only-schedules-v9_11' into 'v9_11'
[v9_11] Add missing 'only:schedules' to tarball-create job

See merge request isc-projects/bind9!3977
2020-08-18 09:28:52 +00:00
Michal Nowak b3c80fafe0 Add missing 'only:schedules' to tarball-create job
Missing 'only:schedules' prevents schedule jobs to run.
Regressed in 2b5007ef1a.
2020-08-18 11:21:32 +02:00
Michal Nowak 365575b5cb Merge branch 'mnowak/gcovr-v9_11' into 'v9_11'
[v9_11] Report coverage with gcovr

See merge request isc-projects/bind9!3974
2020-08-17 15:30:34 +00:00
Michal Nowak 5a6e2bc26e Report coverage with gcovr 2020-08-17 17:09:16 +02:00
Michal Nowak 0b1025912b Merge branch 'mnowak/broaden-abi-check-scope-v9_11' into 'v9_11'
[v9_11] Broaden scope of abi-check

See merge request isc-projects/bind9!3972
2020-08-17 13:17:37 +00:00
Michal Nowak f9cb545cce Broaden scope of abi-check
For abi-check we should use as broad 'configure' options as possible.

(cherry picked from commit 8e43f5e860)
2020-08-17 15:15:04 +02:00
Mark Andrews a0d1680ae0 Merge branch 'marka-fuzz-fixes-v9_11' into 'v9_11'
Marka fuzz fixes v9 11

See merge request isc-projects/bind9!3958
2020-08-13 15:11:46 +00:00
Mark Andrews a0ec8cfc93 Add CHANGES note
(cherry picked from commit 80d69ba04c)
2020-08-14 00:30:09 +10:00
Mark Andrews 9d4feae236 X25: Check that record is all ASCII digits
(cherry picked from commit 7e49689746)
2020-08-14 00:27:24 +10:00
Mark Andrews 73602718f9 WKS: reject records with zero octets at the end of the bitmap
(cherry picked from commit 9d446142d8)
2020-08-14 00:26:42 +10:00
Mark Andrews 6cabbdae97 TLSA: fix fromwire length checks
(cherry picked from commit 3429c35f52)
2020-08-14 00:25:41 +10:00
Mark Andrews 0bc76daaf0 SIG: reject records with a zero length signature
(cherry picked from commit 9b93e5d684)
2020-08-14 00:25:08 +10:00
Mark Andrews f266bb2f61 NXT: fix fromwire bitmap checks
(cherry picked from commit 73dd849655)
2020-08-14 00:25:04 +10:00
Mark Andrews 712d3a50df NSEC3PARAM: check that saltlen is consistent with the rdata length
(cherry picked from commit 7dc8e720ff)
2020-08-14 00:24:25 +10:00
Mark Andrews 26f036cccc NSEC3: reject records with a zero length hash field
(cherry picked from commit 031ee9e279)
2020-08-14 00:23:47 +10:00
Mark Andrews 73341adc34 IPSECKEY: require non-zero length public keys
(cherry picked from commit d7f7014803)
2020-08-14 00:23:07 +10:00
Mark Andrews 1ca878708f CERT: reject records with a empty certificate field
(cherry picked from commit a238f37239)
2020-08-14 00:22:04 +10:00
Mark Andrews 74ee0ed911 Get rid of type 'RESERVED0'.
(cherry picked from commit 3c492b3ef1)
2020-08-14 00:21:23 +10:00
Mark Andrews af4dd77a44 base32_decode*() could incorrectly decode a input.
base32_decode_char() added a extra zero octet to the output
if the fifth character was a pad character.  The length
of octets to copy to the output was set to 3 instead of 2.

(cherry picked from commit 6c7e50c267)
2020-08-14 00:16:45 +10:00
Michal Nowak 6f1851dd56 Merge branch 'mnowak/fix-core-dumps-were-found-line-v9_11' into 'v9_11'
[v9_11] Make sure .txt files are not identified as crashed test

See merge request isc-projects/bind9!3948
2020-08-12 10:54:57 +00:00
Michal Nowak d79c96da01 Make sure .txt files are not identified as crashed test
Previously .txt files with full backtrace may be identified as a
crashed test:

    I:Core dumps were found for the following system tests:
    I:	 core.19948-backtrace.txt
    I:   shutdown

Now .txt files are removed from the list.

Change 'run.sh.in' to match the core matching pattern in
'testsummary.sh'.

(cherry picked from commit c2dcd95966)
(cherry picked from commit 01119ac4f9)
2020-08-12 09:56:16 +02:00
Mark Andrews e0e2083659 Merge branch '2045-readline-rltypedefs-h-35-22-error-this-function-declaration-is-not-a-prototype-on-netbsd-9-v9_11' into 'v9_11'
Resolve "readline/rltypedefs.h:35:22: error: this function declaration is not a prototype on NetBSD 9"

See merge request isc-projects/bind9!3946
2020-08-12 00:27:41 +00:00
Mark Andrews 1cc06636fc Ensure rl_message() gets prototype.
(cherry picked from commit fd126553d4)
2020-08-12 09:46:31 +10:00
Mark Andrews fd370a250d Stop deprecated functions being defined
(cherry picked from commit 1532a34658)
2020-08-12 09:42:34 +10:00
Michal Nowak a1efb14ac5 Merge branch 'mnowak/run-tarball-tests-in-schedule-v9_11' into 'v9_11'
[v9_11] Run unit and system tarball tests on schedules

See merge request isc-projects/bind9!3944
2020-08-11 15:06:56 +00:00
Michal Nowak 2b5007ef1a Run unit and system tarball tests on schedules
To prevent problems with unit and system tarball tests being revealed
during release process, run these tests on schedules.

(cherry picked from commit 439fe9bc3c)
2020-08-11 17:03:21 +02:00
Mark Andrews 35fd455956 Merge branch '2067-nta-related-crash-in-checkbogus-after-an-rndc-reload-v9_11' into 'v9_11'
Address use after free between view, resolver and nta.

See merge request isc-projects/bind9!3941
2020-08-11 05:29:20 +00:00
Mark Andrews a3c2ad2ee5 Address use after free between view, resolver and nta.
Hold a weak reference to the view so that it can't go away while
nta is performing its lookups.  Cancel nta timers once all external
references to the view have gone to prevent them triggering new work.

(cherry picked from commit 0b2555e8cf)
2020-08-11 14:52:15 +10:00
Mark Andrews f58d2312e8 Merge branch '2046-check-isc_mutex_init' into 'v9_11'
Resolve "lib/isc/nothreads/include/isc/mutex.h:20:12: error: right-hand operand of comma expression has no effect"

See merge request isc-projects/bind9!3925
2020-08-11 01:46:46 +00:00
Mark Andrews 3783de2ed0 Don't use isc_thread_key_* when threads are disabled. 2020-08-11 01:19:02 +00:00
Mark Andrews f155ff75e4 Check isc_mutex_init() return values 2020-08-11 01:19:02 +00:00
Mark Andrews 10736891e8 Merge branch '2068-spnego-c-1430-2-error-len-may-be-used-uninitialized-in-this-function-on-arm-v9_11' into 'v9_11'
Silence 'may be used uninitialized'

See merge request isc-projects/bind9!3933
2020-08-08 08:01:02 +00:00
Mark Andrews 389c121597 Silence 'may be used uninitialized'
(cherry picked from commit 8a4dd25562)
2020-08-08 17:25:20 +10:00
Tinderbox User 6a05a966f3 Merge branch 'prep-release' into v9_11_22-release 2020-08-06 10:05:20 +00:00
Tinderbox User 7427b1f31c prep 9.11.22 2020-08-06 10:05:20 +00:00
Michał Kępień 9455337c1d Merge branch 'michal/prepare-release-notes-for-bind-9.11.22' into 'security-v9_11'
Prepare release notes for BIND 9.11.22

See merge request isc-private/bind9!203
2020-08-06 08:56:06 +00:00
Michał Kępień 64ef82a03c Prepare release notes for BIND 9.11.22 2020-08-06 10:46:53 +02:00
Michał Kępień 98e3fd1966 Add release note for #1976 2020-08-06 10:46:53 +02:00
Michał Kępień d418cf91b9 Add release note for #1619 2020-08-06 10:46:53 +02:00
Michał Kępień 61d217cc0d Tweak and reword recent CHANGES entries 2020-08-06 10:46:53 +02:00
Michał Kępień 8e919cf6e4 Merge branch '2055-grant-subdomain-fix-v9_11' into 'security-v9_11'
[CVE-2020-8624] Fix processing of "update-policy" rules of type "subdomain" (v9.11)

See merge request isc-private/bind9!198
2020-08-05 13:58:01 +00:00
Mark AndrewsandMichał Kępień 1338fda1d8 Add CHANGES and release note for GL #2055 2020-08-05 15:55:14 +02:00
Mark AndrewsandMichał Kępień 58e560beb5 Add a test for update-policy 'zonesub'
The new test checks that 'update-policy zonesub' is properly enforced.
2020-08-05 15:55:14 +02:00
Mark AndrewsandMichał Kępień 393e8f643c Add a test for update-policy 'subdomain'
The new test checks that 'update-policy subdomain' is properly enforced.
2020-08-05 15:55:14 +02:00
Mark AndrewsandMichał Kępień e4cccf9668 Update-policy 'subdomain' was incorrectly treated as 'zonesub'
resulting in names outside the specified subdomain having the wrong
restrictions for the given key.
2020-08-05 15:55:14 +02:00
Michał Kępień 0660b022fc Merge branch '2037-confidential-issue-v9_11' into 'security-v9_11'
[CVE-2020-8623]: Fix crash in pk11_numbits() with crafted packet when native-pkcs11 is used (v9.11)

See merge request isc-private/bind9!200
2020-08-05 13:54:19 +00:00
Ondřej SurýandMichał Kępień efe31ac2ab Add CHANGES and release note for GL #2037 2020-08-05 15:51:50 +02:00
Ondřej SurýandMichał Kępień 8d807cc216 Fix crash in pk11_numbits() when native-pkcs11 is used
When pk11_numbits() is passed a user provided input that contains all
zeroes (via crafted DNS message), it would crash with assertion
failure.  Fix that by properly handling such input.
2020-08-05 15:51:50 +02:00
Michał Kępień ae9af802b5 Merge branch '2028-unexpectedend-and-tsig-v9_11' into 'security-v9_11'
[CVE-2020-8622] Properly handle malformed truncated responses to TSIG queries (v9.11)

See merge request isc-private/bind9!196
2020-08-05 13:50:31 +00:00
Mark AndrewsandMichał Kępień 0db7d0a49d Add CHANGES and release notes for GL #2028 2020-08-05 13:01:12 +02:00
Mark AndrewsandMichał Kępień 6ed167ad0a Always keep a copy of the message
this allows it to be available even when dns_message_parse()
returns a error.
2020-08-05 13:01:12 +02:00
Michał Kępień 348ba25ddd Merge branch 'michal/remove-arm64-jobs-from-gitlab-ci-v9_11' into 'v9_11'
[v9_11] Remove arm64 jobs from GitLab CI

See merge request isc-projects/bind9!3923
2020-08-05 10:12:06 +00:00
Michał Kępień e19584d431 Remove arm64 jobs from GitLab CI
The only arm64 runner we have at our disposal is suffering from
intermittent connectivity issues which make it unusable for extended
periods of time.  Remove arm64 jobs from GitLab CI until we manage to
set up an arm64 runner with more reliable connectivity.

(cherry picked from commit 49f245f7c0)
2020-08-05 12:10:02 +02:00
Michał Kępień 368bc9c57a Merge branch '2030-bind-arm-incorrectly-documents-the-processing-of-forwarders-still-has-the-pre-9-3-0-explanation-v9_11' into 'v9_11'
[v9_11] Update description of forwarding behavior in ARM

See merge request isc-projects/bind9!3918
2020-08-04 19:56:12 +00:00
Suzanne GoldlustandMichał Kępień 1dbefbcfbb Update description of forwarding behavior in ARM
(cherry picked from commit 30e126ad02)
2020-08-04 21:53:23 +02:00
Mark Andrews 7bcacc6b72 Merge branch 'marka-DNS_R_BADTSIG-map-to-FORMERR-v9_11' into 'v9_11'
Marka dns r badtsig map to formerr v9 11

See merge request isc-projects/bind9!3915
2020-08-04 13:32:06 +00:00
Mark Andrews d3281b80a9 Check rcode is FORMERR
(cherry picked from commit 88ff6b846c)
2020-08-04 23:08:49 +10:00
Mark Andrews 5770740587 Map DNS_R_BADTSIG to FORMERR
Now that the log message has been printed set the result code to
DNS_R_FORMERR.  We don't do this via dns_result_torcode() as we
don't want upstream errors to produce FORMERR if that processing
end with DNS_R_BADTSIG.

(cherry picked from commit 20488d6ad3)
2020-08-04 23:07:02 +10:00
Michal Nowak a51de5a7af Merge branch 'mnowak/various-system-test-fixes-v9_11' into 'v9_11'
[v9_11] Various system test fixes

See merge request isc-projects/bind9!3899
2020-07-31 07:28:00 +00:00
Michal Nowak fc1e50e73a Fix name of the test directory of stop.pl in masterformat test 2020-07-31 09:26:51 +02:00
Michal Nowak 9470e9e469 Ensure test fails if packet.pl does not work as expected 2020-07-31 09:26:51 +02:00
Michał Kępień d6262053ac Merge branch 'michal/only-run-system-tests-as-root-in-developer-mode-v9_11' into 'v9_11'
[v9_11] Only run system tests as root in developer mode

See merge request isc-projects/bind9!3902
2020-07-31 05:58:41 +00:00
Michał Kępień 41e2117866 Only run system tests as root in developer mode
Running system tests with root privileges is potentially dangerous.
Only allow it when explicitly requested (by building with
--enable-developer).

(cherry picked from commit 3ef106f69d)
2020-07-31 07:47:49 +02:00
Evan Hunt 64e1429fd7 Merge branch '1619-rpz-wildcard-passthru-ignored-v9_11' into 'v9_11'
Resolve "RPZ wildcard passthru ignored"

See merge request isc-projects/bind9!3874
2020-07-27 21:26:56 +00:00
Diego FronzaandEvan Hunt 4bc9ee1844 Update copyrights 2020-07-27 13:40:50 -07:00
Diego FronzaandEvan Hunt cba75d5854 Add CHANGES entry 2020-07-27 13:40:50 -07:00
Diego FronzaandEvan Hunt 40fd600f25 Add test for RPZ wildcard passthru ignored fix 2020-07-27 13:40:50 -07:00
Diego FronzaandEvan Hunt 33ae88f08d Fix rpz wildcard name matching
Whenever an exact match is found by dns_rbt_findnode(),
the highest level node in the chain will not be put into
chain->levels[] array, but instead the chain->end
pointer will be adjusted to point to that node.

Suppose we have the following entries in a rpz zone:
example.com     CNAME rpz-passthru.
*.example.com   CNAME rpz-passthru.

A query for www.example.com would result in the
following chain object returned by dns_rbt_findnode():

chain->level_count = 2
chain->level_matches = 2
chain->levels[0] = .
chain->levels[1] = example.com
chain->levels[2] = NULL
chain->end = www

Since exact matches only care for testing rpz set bits,
we need to test for rpz wild bits through iterating the nodechain, and
that includes testing the rpz wild bits in the highest level node found.

In the case of an exact match, chain->levels[chain->level_matches]
will be NULL, to address that we must use chain->end as the start point,
then iterate over the remaining levels in the chain.
2020-07-27 13:20:41 -07:00
Mark Andrews 51babc2cd3 Merge branch '2043-dns_rdata_hip_next-fails-to-return-isc_r_nomore-at-the-right-time-v9_11' into 'v9_11'
Resolve "dns_rdata_hip_next() fails to return ISC_R_NOMORE at the right time."

See merge request isc-projects/bind9!3886
2020-07-24 06:00:41 +00:00
Mark Andrews 97d7bb0438 Add CHANGES note
(cherry picked from commit bcd049f116)
2020-07-24 15:43:54 +10:00
Mark Andrews b424dfaada Check walking the hip rendezvous servers.
Also fixes extraneous white space at end of record when
there are no rendezvous servers.

(cherry picked from commit 78db46d746)
2020-07-24 15:43:54 +10:00
Mark Andrews 82ce055a3e Merge branch 'feature/master/unix-cleanup-v9_11' into 'v9_11'
Remove few lines in unix socket handling

See merge request isc-projects/bind9!3883
2020-07-24 04:44:23 +00:00
Petr MenšíkandMark Andrews 72e4be21f1 Remove few lines in unix socket handling
Reuse the same checks two times, make difference minimal.

(cherry picked from commit 72d81c4768)
2020-07-24 13:59:17 +10:00
Mark Andrews b56e821d17 Merge branch 'dstlib-failure-abort-v9_11' into 'v9_11'
Prevent crash on dst initialization failure

See merge request isc-projects/bind9!3879
2020-07-23 03:00:20 +00:00
Petr MenšíkandMark Andrews 35fbfaa498 Prevent crash on dst initialization failure
server might be created, but not yet fully initialized, when fatal
function is called. Check both server and task before attaching
exclusive task.

(cherry picked from commit c5e7152cf0)
2020-07-23 11:29:57 +10:00
Michal Nowak 0af3892dda Merge branch 'mnowak/try-harder-to-analyze-cores-v9_11' into 'v9_11'
[v9_11] Rationalize backtrace logging

See merge request isc-projects/bind9!3870
2020-07-20 17:10:29 +00:00
Michal Nowak 3745767b2b Check tests for core files regardless of test status
Failed test should be checked for core files et al. and have
backtrace generated.
2020-07-20 17:09:20 +02:00
Michal Nowak 9996811493 Rationalize backtrace logging
GDB backtrace generated via "thread apply all bt full" is too long for
standard output, lets save them to .txt file among other log files.
2020-07-20 17:00:13 +02:00
Evan Hunt c1dd887417 Merge branch 'each-doc-fixes-v9_11' into 'v9_11'
additional text edits to ARM

See merge request isc-projects/bind9!3863
2020-07-16 08:02:34 +00:00
Evan Hunt 86a3af1c78 Various text edits and fixes to the documentation 2020-07-16 01:00:39 -07:00
Michał Kępień eaff8860d7 Merge branch 'v9_11_21-release' into 'v9_11'
Merge 9.11.21 release branch

See merge request isc-projects/bind9!3862
2020-07-15 21:37:33 +00:00
Michał Kępień 80f7459de0 Set up release notes for BIND 9.11.22 2020-07-15 23:33:51 +02:00
Michał Kępień 48a7f7fca8 Bump BIND_BASELINE_VERSION for ABI checks 2020-07-15 23:33:51 +02:00
Tinderbox UserandMichał Kępień c9ab76c95f Merge branch 'prep-release' into v9_11_21-release 2020-07-15 23:24:26 +02:00
Tinderbox UserandMichał Kępień 8345bf5f0e prep 9.11.21 2020-07-15 23:24:25 +02:00
Michał Kępień 8defd0b731 Merge branch 'michal/prepare-release-notes-for-bind-9.11.21' into v9_11_21-release 2020-07-15 23:23:51 +02:00
Michał Kępień dfa63df21e Reorder release notes 2020-07-15 23:23:50 +02:00
Michał Kępień 6d0812b66f Tweak and reword release notes 2020-07-15 23:23:50 +02:00
Michał Kępień 46fc1b23e0 Tweak and reword recent CHANGES entries 2020-07-15 23:23:50 +02:00
Michał Kępień d2b8f9d75c Merge branch 'michal/use-image-key-in-qemu-based-ci-job-templates-v9_11' into 'v9_11'
[v9_11] Use "image" key in QEMU-based CI job templates

See merge request isc-projects/bind9!3857
2020-07-14 08:32:46 +00:00
Michał Kępień 80951ba0b1 Use "image" key in QEMU-based CI job templates
Our GitLab Runner Custom executor scripts now use the "image" key
instead of the job name for determining the QCOW2 image to use for a
given CI job.  Update .gitlab-ci.yml to reflect that change.

(cherry picked from commit 72201badf0)
2020-07-14 10:04:20 +02:00
Mark Andrews 6139af5007 Merge branch '1994-netscope-c-23-50-error-unused-parameter-addr-when-have_if_nametoindex-undefined-on-illumos-v9_11' into 'v9_11'
Mark 'addr' as unused if HAVE_IF_NAMETOINDEX is not defined

See merge request isc-projects/bind9!3851
2020-07-14 01:44:41 +00:00
Mark Andrews 4f25e8ee92 Mark 'addr' as unused if HAVE_IF_NAMETOINDEX is not defined
Also 'zone' should be initialised to zero.

(cherry picked from commit e7662c4c63)
2020-07-14 10:55:17 +10:00
Evan Hunt f34bab4145 Merge branch 'each-lmdb-lock-fix-v9_11' into 'v9_11'
ensure new_zone_lock is released after count_newzones()

See merge request isc-projects/bind9!3846
2020-07-13 20:18:49 +00:00
Evan Hunt 0f7f6201e3 make sure new_zone_lock is locked before unlocking it
it was possible for the count_newzones() function to try to
unlock view->new_zone_lock on return before locking it, which
caused a crash on shutdown.

(cherry picked from commit ed37c63e2b)
2020-07-13 12:32:51 -07:00
Mark Andrews 2120268f7f Merge branch '1235-system-tests-fail-with-new-etc-bind-keys-installed-v9_11' into 'v9_11'
Fallback to built in trust-anchors, managed-keys, or trusted-keys

See merge request isc-projects/bind9!3844
2020-07-13 06:49:33 +00:00
Mark Andrews 55f567ab35 Fallback to built in trust-anchors, managed-keys, or trusted-keys
if the bind.keys file cannot be parsed.

(cherry picked from commit d02a14c795)
2020-07-13 15:55:59 +10:00
Mark Andrews db8690167d Merge branch '2012-add-assertion-check-to-silence-dereference-before-null-check-in-tsig_test-c-v9_11-v9_11' into 'v9_11'
Assert tsigout is non-NULL

See merge request isc-projects/bind9!3840
2020-07-13 03:59:52 +00:00
Mark Andrews a4c16515de Assert tsigout is non-NULL
(cherry picked from commit 827746e89b)
2020-07-13 13:10:19 +10:00
Mark Andrews d9c3c2ca24 Merge branch '2013-unchecked-returns-of-inet_pton-in-geoip_test-c-v9_11' into 'v9_11'
check returns from inet_pton()

See merge request isc-projects/bind9!3838
2020-07-13 02:44:42 +00:00
Mark Andrews d953381d75 check returns from inet_pton()
(cherry picked from commit 9499adeb5e)
2020-07-13 11:45:09 +10:00
Mark Andrews d792ed7aea Merge branch '2010-potential-null-pointer-dereference-9-11-in-dnstap-c' into 'v9_11'
Resolve "Potential NULL pointer dereference (9.11) in dnstap.c"

See merge request isc-projects/bind9!3813
2020-07-13 01:08:19 +00:00
Mark Andrews ffe1a54d8f Add CHANGES note 2020-07-13 10:23:51 +10:00
Mark Andrews 040eb8f07f Check that handle is non-NULL before dereferencing it 2020-07-13 10:16:47 +10:00
Michał Kępień ce18373d1c Merge branch '1976-fix-locking-for-lmdb-0.9.26-v9_11' into 'v9_11'
[v9_11] Fix locking for LMDB 0.9.26

See merge request isc-projects/bind9!3832
2020-07-10 10:17:36 +00:00
Michał Kępień 24973401f9 Add CHANGES for GL #1976
(cherry picked from commit 7fffa5abba)
2020-07-10 11:31:53 +02:00
Michał Kępień 25818ac81f Fix locking for LMDB 0.9.26
When "rndc reconfig" is run, named first configures a fresh set of views
and then tears down the old views.  Consider what happens for a single
view with LMDB enabled; "envA" is the pointer to the LMDB environment
used by the original/old version of the view, "envB" is the pointer to
the same LMDB environment used by the new version of that view:

 1. mdb_env_open(envA) is called when the view is first created.
 2. "rndc reconfig" is called.
 3. mdb_env_open(envB) is called for the new instance of the view.
 4. mdb_env_close(envA) is called for the old instance of the view.

This seems to have worked so far.  However, an upstream change [1] in
LMDB which will be part of its 0.9.26 release prevents the above
sequence of calls from working as intended because the locktable mutexes
will now get destroyed by the mdb_env_close() call in step 4 above,
causing any subsequent mdb_txn_begin() calls to fail (because all of the
above steps are happening within a single named process).

Preventing the above scenario from happening would require either
redesigning the way we use LMDB in BIND, which is not something we can
easily backport, or redesigning the way BIND carries out its
reconfiguration process, which would be an even more severe change.

To work around the problem, set MDB_NOLOCK when calling mdb_env_open()
to stop LMDB from controlling concurrent access to the database and do
the necessary locking in named instead.  Reuse the view->new_zone_lock
mutex for this purpose to prevent the need for modifying struct dns_view
(which would necessitate library API version bumps).  Drop use of
MDB_NOTLS as it is made redundant by MDB_NOLOCK: MDB_NOTLS only affects
where LMDB reader locktable slots are stored while MDB_NOLOCK prevents
the reader locktable from being used altogether.

[1] https://git.openldap.org/openldap/openldap/-/commit/2fd44e325195ae81664eb5dc36e7d265927c5ebc

(cherry picked from commit 53120279b5)
2020-07-10 11:31:43 +02:00
Mark Andrews f5c59b2f79 Merge branch '2011-off-by-one-error-in-dns_rdatatype_attributes-v9_11' into 'v9_11'
Adjust range limit of unknown meta types

See merge request isc-projects/bind9!3824
2020-07-08 04:27:38 +00:00
Mark Andrews 902c1292c9 Adjust range limit of unknown meta types
(cherry picked from commit 092a159dcd)
2020-07-08 13:42:03 +10:00
Mark Andrews 0af23f7052 Merge branch '2009-update-isc-logo-in-documentation-v9_11' into 'v9_11'
Resolve "Update ISC logo in documentation"

See merge request isc-projects/bind9!3812
2020-07-08 01:08:07 +00:00
Mark Andrews 7aff93bdc3 Update BIND 9 logo 2020-07-07 14:40:11 +10:00
Michał Kępień 94e43cf220 Merge branch '1627-add-changes-entry-v9_11' into 'v9_11'
[v9_11] Add CHANGES entry for #1627

See merge request isc-projects/bind9!3798
2020-07-02 09:25:57 +00:00
Michał Kępień e690fff4ba Add CHANGES entry for #1627
(cherry picked from commit dee2b3c7c8)
2020-07-02 11:23:29 +02:00
Ondřej Surý 4051b88180 Merge branch '1968-cleanup-dead-nodes-fix-v9_11' into 'v9_11'
Resolve "Again: BIND | rbtdb.c:2162: INSIST with bind with 9.11.20  (see #1718)"

See merge request isc-projects/bind9!3783
2020-07-01 14:26:34 +00:00
Ondřej Surý 6d9919fb86 Add CHANGES and release note for #1968
(cherry picked from commit 4c12709da4)
2020-07-01 15:38:51 +02:00
Witold KręcickiandOndřej Surý e73702e821 rbtdb: cleanup_dead_nodes should ignore alive nodes on the deadlist
(cherry picked from commit c8f2d55acf)
2020-07-01 15:37:01 +02:00
Mark Andrews b9024e06b7 Merge branch 'marka-silence-pyyaml-warning-v9_11' into 'v9_11'
Silence PyYAML warning

See merge request isc-projects/bind9!3770
2020-06-30 02:19:00 +00:00
Michał KępieńandMark Andrews 74a738428c Silence PyYAML warning
Make yaml.load_all() use yaml.SafeLoader to address a warning currently
emitted when bin/tests/system/dnstap/ydump.py is run:

    ydump.py:28: YAMLLoadWarning: calling yaml.load_all() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
      for l in yaml.load_all(f.stdout):

(cherry picked from commit 62f631f798)
2020-06-30 11:43:35 +10:00
Mark Andrews 66c9390775 Merge branch 'u/fanf2/dnstap-roll-v9_11' into 'v9_11'
U/fanf2/dnstap roll v9 11

See merge request isc-projects/bind9!3755
2020-06-30 00:16:01 +00:00
Mark Andrews 686ee5bd12 Check that 'rndc dnstap -roll <value>' works
(cherry picked from commit a289a57c7f)
2020-06-30 08:39:19 +10:00
Michał Kępień e2ff063c8c Merge branch 'mnowak/add-new-releases-v9_11' into 'v9_11'
[v9_11] Add Ubuntu 20.04, Fedora 32, Alpine 3.12, OpenBSD 6.7, and FreeBSD 11.4

See merge request isc-projects/bind9!3763
2020-06-29 11:08:26 +00:00
Michał Kępień e5a72ed3a5 Fix build-time GSSAPI detection on Tumbleweed
The "krb5-devel" package on openSUSE Tumbleweed installs the
"krb5-config" binary into a custom prefix, which prevents BIND's
"configure" script from autodetecting it.  Fix by specifying the path to
the "krb5-config" binary using --with-gssapi.

(cherry picked from commit 1be15f5900)
2020-06-29 12:49:35 +02:00
Michal NowakandMichał Kępień 5a60bff4c8 Update FreeBSD 11 to 11.4
(cherry picked from commit 18f97b9af2)
2020-06-29 12:49:07 +02:00
Michal NowakandMichał Kępień be8524cea6 Update to Alpine Linux 3.12
(cherry picked from commit eff79ab20c)
2020-06-29 12:49:00 +02:00
Michal NowakandMichał Kępień b5012b000c Update to OpenBSD 6.7
(cherry picked from commit 374660fd37)
2020-06-29 12:48:52 +02:00
Michal NowakandMichał Kępień eb1f193ba3 Drop Bionic
(cherry picked from commit 27c8bc1750)
2020-06-29 12:48:44 +02:00
Michal NowakandMichał Kępień 1520d48112 Add Ubuntu 20.04 Focal Fossa, update Fedora to 32
(cherry picked from commit c3e259a8c9)
2020-06-29 12:48:43 +02:00
Mark Andrews 1632ef0a92 Merge branch '1935-v9_11-resolver-test-broken-on-windows-after-3586' into 'v9_11'
Resolve "[v9_11] "resolver" test broken on Windows after !3586"

See merge request isc-projects/bind9!3691
2020-06-26 14:17:44 +00:00
Mark Andrews d958d51797 Just test for the two possible values rather than testing for ipv6.
testsock6 can return a false negative when testing under Windows.
2020-06-26 08:55:39 +00:00
Evan Hunt 5da2fedf9d Merge branch '1952-yaml-ipv6-v9_11' into 'v9_11'
append "0" to IPv6 addresses ending in "::" when printing YAML

See merge request isc-projects/bind9!3753
2020-06-26 03:59:10 +00:00
Evan Hunt 8d52602daf append "0" to IPv6 addresses ending in "::" when printing YAML
such addresses broke some YAML parsers.

(cherry picked from commit a8baf79e33)
2020-06-25 19:35:31 -07:00
Mark Andrews bb7d2bb044 Merge branch '1689-bind-stops-dnskey-lookup-in-get_dst_key-when-a-key-with-unsupported-algorithm-is-found-first-v9_11' into 'v9_11'
Resolve "BIND stops DNSKEY lookup in get_dst_key() when a key with unsupported algorithm is found first"

See merge request isc-projects/bind9!3749
2020-06-25 14:07:50 +00:00
Matthijs MekkingandMark Andrews 7e3777c28a Add todo in dnssec system test for [GL #1689]
Add a note why we don't have a test case for the issue.

It is tricky to write a good test case for this if our tools are
not allowed to create signatures for unsupported algorithms.

(cherry picked from commit c6345fffe9)
2020-06-25 22:49:38 +10:00
Mark Andrews a5b61ec1c9 Add Release Note for [GL #1689]
(cherry picked from commit e195d4608a)
2020-06-25 22:49:36 +10:00
Mark Andrews 1c14833c01 Add CHANGES for [GL #1689]
(cherry picked from commit b733bd6555)
2020-06-25 22:47:18 +10:00
Mark Andrews 145b7f0b26 The validator could fail when select_signing_key/get_dst_key failed
to select the signing key because the algorithm was not supported
and the loop was prematurely aborted.

(cherry picked from commit d475f3aeed)
2020-06-25 22:46:41 +10:00
Mark Andrews 2ce8aa6b8c Merge branch '1969-silence-cppcheck-warnings-v9_11' into 'v9_11'
Resolve "Silence CPPCHECK warnings"

See merge request isc-projects/bind9!3747
2020-06-25 12:37:10 +00:00
Mark Andrews a878e8d4bc Address potential thread issues:
Assign and then check node for NULL to address another thread
changing radix->head in the meantime.

Move 'node != NULL' check into while loop test to silence cppcheck
false positive.

Fix pointer != NULL style.

(cherry picked from commit 51f08d2095)
2020-06-25 21:18:45 +10:00
Mark Andrews ba420d50c8 Merge branch '1965-bin-named-unix-os-c-warning-s-directive-output-may-be-truncated-on-openindiana-v9_11' into 'v9_11'
Resize unamebuf[] to avoid warnings about snprintf() not having

See merge request isc-projects/bind9!3745
2020-06-24 23:52:03 +00:00
Mark Andrews 003d9d55ca Resize unamebuf[] to avoid warnings about snprintf() not having
enough buffer space.  Also change named_os_uname() prototype so
that it is now returning (const char *) rather than (char *).  If
uname() is not supported on a UNIX build prepopulate unamebuf[]
with "unknown architecture".

(cherry picked from commit 4bc3de070f)
2020-06-25 09:32:02 +10:00
Ondřej Surý b8fbd0a1ae Merge branch '1627-address-race-in-zone-maintenance-v9_11' into 'v9_11'
Address race between zone_maintenance and dns_zone_setview_helper

See merge request isc-projects/bind9!3730
2020-06-22 12:00:02 +00:00
Mark AndrewsandOndřej Surý 915d94643f Address race between zone_maintenance and dns_zone_setview_helper
There was a possible NULL dereference due to data race between accessing
zone->view and zone->view->adb.

(cherry picked from commit 67c8f7329d)
2020-06-22 12:28:41 +02:00
Michał Kępień 7dd9f979b5 Merge branch 'v9_11_20-release' into 'v9_11'
[CVE-2020-8619] Merge 9.11.20 release branch

See merge request isc-projects/bind9!3713
2020-06-18 08:58:28 +00:00
Michał Kępień 72e55cf9f4 Set up release notes for BIND 9.11.21 2020-06-18 10:43:44 +02:00
Michał Kępień 9451cd2d6a Bump BIND_BASELINE_VERSION for ABI checks 2020-06-18 10:43:44 +02:00
Tinderbox UserandMichał Kępień 25013e5bc3 Merge branch 'prep-release' into v9_11 2020-06-18 10:37:48 +02:00
Tinderbox UserandMichał Kępień fc8107adca prep 9.11.20 2020-06-18 10:37:47 +02:00
Michał Kępień c947769913 Merge branch 'security-v9_11-docs' into 'security-v9_11'
Prepare documentation for BIND 9.11.20

See merge request isc-private/bind9!174
2020-06-18 10:37:36 +02:00
Michał Kępień 2aa29c1264 Tweak and reword release notes 2020-06-18 10:37:36 +02:00
Michał Kępień ed73a7215e Add release note for #1842 2020-06-18 10:37:36 +02:00
Michał Kępień 48804d31fd Add release note for #1834 2020-06-18 10:37:36 +02:00
Michał Kępień 7d8c09d05f Add release note for #1812 2020-06-18 10:37:36 +02:00
Michał Kępień 23371b85fc Add release note for #1714 2020-06-18 10:37:36 +02:00
Michał Kępień 7b28fcbb23 Tweak and reword recent CHANGES entries 2020-06-18 10:37:35 +02:00
Michał Kępień 8f5fa2572a Merge branch 'security-new_reference-insist-v9_11' into security-v9_11 2020-06-18 10:37:16 +02:00
Mark AndrewsandMichał Kępień 1ec39e73f8 Add CHANGES entry for #1718
(cherry picked from commit d7c26a97c82c256e00b167c65a70fb304a7320d4)
2020-06-18 10:37:16 +02:00
Mark AndrewsandMichał Kępień 0ab902b4b2 Add release note for #1718
(cherry picked from commit 2f9d6d4f7eb624986db914a2825bbcc4e6d378b1)
2020-06-18 10:37:16 +02:00
Mark AndrewsandMichał Kępień 90a7416d15 Remove INSIST from from new_reference
RBTDB node can now appear on the deadnodes lists following the changes
to decrement_reference in 4db29f1f7d to
defer checking of node->down when the tree write lock is not held.  The
node should be unlinked instead.

(cherry picked from commit 569cc155b8680d8ed12db1fabbe20947db24a0f9)
2020-06-18 10:37:16 +02:00
Ondřej Surý a0231294ef Merge branch '1950-properly-handle-missing-kyua-v9_11' into 'v9_11'
Resolve "Build option for no unittest"

See merge request isc-projects/bind9!3709
2020-06-17 13:42:15 +00:00
Ondřej Surý 279b2eaa7e Add CHANGES and release note for #1950
(cherry picked from commit 4ab9e79e6f)
2020-06-17 15:37:13 +02:00
Ondřej Surý b9c6932793 Skip the unit tests when kyua is not available
The unittest.sh script tried to execute the unit tests when cmocka
development libraries was available, but kyua, the execution engine,
was not.  Now, both need to be installed in the system.

(cherry picked from commit 762a3c866e)
2020-06-17 15:31:44 +02:00
Ondřej Surý 9605a1ba79 Merge branch 'ondrej/switch-the-default-branch-name-to-main-v9_11' into 'v9_11'
Adjust the GitLab CI scripts for new default branch name

See merge request isc-projects/bind9!3708
2020-06-17 12:19:26 +00:00
Ondřej Surý 280720b151 Adjust the GitLab CI scripts for new default branch name
(cherry picked from commit b36cd06a0b)
2020-06-17 14:17:37 +02:00
Ondřej Surý c722ece5ea Merge branch '1945-system-clang-tsan-has-bad-symbolizer-v9_11' into 'v9_11'
Set the TSAN symbolizer path directly, the indirection via env doesn't work

See merge request isc-projects/bind9!3699
2020-06-16 08:55:00 +00:00
Ondřej Surý a4837430c0 Set the TSAN symbolizer path directly, the indirection via env doesn't work
(cherry picked from commit 39107365a7)
2020-06-16 10:52:44 +02:00
Mark Andrews 565709d377 Merge branch '1929-v9_11-drop-define-activeemtpynode-activeemtpynode64-from-lib-dns-rbtdb-c' into 'v9_11'
Resolve "[v9_11] Drop "#define activeemtpynode activeemtpynode64" from lib/dns/rbtdb.c"

See merge request isc-projects/bind9!3690
2020-06-12 06:21:24 +00:00
Mark Andrews dcf3941f17 Fix #define of activeemptynode for rbtdb64 2020-06-12 11:41:06 +10:00
Ondřej Surý d87f727636 Merge branch '1808-race-in-resolver-fetch-v9_11' into 'v9_11'
Resolve "assertion failure in bind 9.16.2"

See merge request isc-projects/bind9!3672
2020-06-06 07:16:33 +00:00
Ondřej Surý 724fd53643 Add release note for #1808
(cherry picked from commit 5a9f594629)
2020-06-06 07:10:13 +02:00
Witold KręcickiandOndřej Surý 530c04c33a Add CHANGES entry for #1808
(cherry picked from commit f0f859411f)
2020-06-06 07:10:13 +02:00
Witold KręcickiandOndřej Surý b0707ebba0 Fix a data access race in resolver
We were passing client address to dns_resolver_createfetch as a pointer
and it was saved as a pointer. The client (with its address) could be
gone before the fetch is finished, and in a very odd scenario
log_formerr would call isc_sockaddr_format() which first checks if the
address family is valid (and at this point it still is), then the
sockaddr is cleared, and then isc_netaddr_fromsockaddr is called which
fails an assertion as the address family is now invalid.

(cherry picked from commit 175c4d9055)
2020-06-06 07:10:13 +02:00
Ondřej Surý a5942f7438 Merge branch '1842-correct-the-bind-arm-to-say-that-the-default-session-key-for-use-with-update-policy-local-is-v9_11' into 'v9_11'
Edit documentation to indicate that the TSIG session key is automatically created on startup

See merge request isc-projects/bind9!3674
2020-06-05 14:42:20 +00:00
Suzanne GoldlustandOndřej Surý 31ed7fe55b Edit reference.rst to indicate that the TSIG session key is automatically created on startup
(cherry picked from commit 79920cea70)
2020-06-05 16:40:55 +02:00
Mark Andrews a00b3498f5 Merge branch '1835-add-yaml-for-ede-v9_11' into 'v9_11'
Add +yaml support for EDE

See merge request isc-projects/bind9!3667
2020-06-05 05:31:15 +00:00
Mark Andrews 1f1209e1f6 Add +yaml support for EDE
(cherry picked from commit 0ec77c2b92)
2020-06-05 12:10:53 +10:00
Mark Andrews a40a25697d Merge branch '1873-system-test-fails-on-single-stack-system' into 'v9_11'
Resolve "system test fails on single stack system"

See merge request isc-projects/bind9!3586
2020-06-05 01:16:32 +00:00
Mark Andrews dd43437388 Fix resolver system test on system without ipv6 (--disable-ipv6). 2020-06-05 10:42:55 +10:00
Ondřej Surý be69acfb07 Merge branch 'nsupdate-late-responses-v9_11' into 'v9_11'
Delay kserver cleanup until all tasks finish (v9.11)

See merge request isc-projects/bind9!3652
2020-06-04 11:14:43 +00:00
Ondřej Surý fcd27b397f Add CHANGES entry for !3316
(cherry picked from commit 72e78f0a4b)
2020-06-04 11:36:16 +02:00
Petr MensikandOndřej Surý d33aef43de Delay kserver cleanup until all tasks finishes
It might be possible some pending task would run when kserver is already
cleaned up. Postpone gsstsig structures cleanup after task and timer
managers are destroyed. No pending threads are possible after it.

Make action in maybeshutdown only if doshutdown was not already called.
Might be called from getinput event.

(cherry picked from commit 2685e69be8)
2020-06-04 11:35:07 +02:00
Ondřej Surý ded53d8762 Merge branch '1849-cidr-rejected-by-9-11-18-and-higher' into 'v9_11'
Resolve "CIDR rejected by 9.11.18 and higher"

See merge request isc-projects/bind9!3639
2020-06-04 06:39:27 +00:00
Ondřej Surý f35ffb0f4a Add CHANGES entry for #1849 2020-06-03 22:17:02 +02:00
Ondřej Surý 7e2d9531a7 Change the invalid CIDR from parser error to warning
In [RT #43367], the BIND 9 changed the strictness of address / prefix
length checks:

    Check prefixes in acls to make sure the address and
    prefix lengths are consistent.  Warn only in
    BIND 9.11 and earlier.

Unfortunately, a regression slipped in and the check was made an error
also in the BIND 9.11.  This commit fixes the regression, but turning
the error into a warning.
2020-06-03 22:17:02 +02:00
Michał Kępień d392679e24 Merge branch 'michal/misc-danger-tweaks-v9_11' into 'v9_11'
[v9_11] Miscellaneous Danger tweaks

See merge request isc-projects/bind9!3641
2020-06-03 14:01:21 +00:00
Michał Kępień dddb154ec7 Only run Danger if DANGER_GITLAB_API_TOKEN is set
Prevent the Danger GitLab CI job from failing when the GitLab API key to
use is not set.

(cherry picked from commit 2c90438583)
2020-06-03 15:54:12 +02:00
Michał Kępień 3dc4c81cad Prevent invalid warnings about missing identifiers
The Danger script inspects differences between the current version of a
given merge request's target branch and the merge request branch.  If
the latter falls behind the former, the Danger script will wrongly warn
about missing GitLab/RT identifiers because it incorrectly treats the
"+++" diff marker as an indication of the merge request adding new lines
to a file.  Tweak the relevant conditional expression to prevent such
invalid warnings from being raised.

(cherry picked from commit e062812c38)
2020-06-03 15:54:11 +02:00
Michał Kępień 53b3c53d73 Make fetching target branch reliable
As GitLab Runner Docker executor caches Git repositories between jobs,
prevent the Danger script from attempting to update local refs to ensure
"git fetch" returns with an exit code of 0.  Use the FETCH_HEAD ref for
determining the differences between the merge request branch and its
target branch.

(cherry picked from commit d558c4cb78)
2020-06-03 15:54:11 +02:00
Michał Kępień ff90340598 Tweak condition for missing log message warning
Commits adding CHANGES entries and/or release notes do not need a commit
log message.  Do not warn about a missing commit log message for such
commits to make the warning more meaningful.

(cherry picked from commit c13944ca46)
2020-06-03 15:54:10 +02:00
Ondřej Surý bf3c6d793f Merge branch 'wpk/fix-socket-test-teardown-v9_11' into 'v9_11'
tests: fix isc/socket_test.c teardown

See merge request isc-projects/bind9!3637
2020-06-03 13:36:24 +00:00
Witold KręcickiandOndřej Surý c6ec2aaedc tests: fix isc/socket_test.c teardown
In case of a test failure we weren't tearing down sockets and tasks
properly, causing the test to hang instead of failing nicely.

(cherry picked from commit 4a8d9250cf)
2020-06-03 14:17:16 +02:00
Ondřej Surý 2d290220fd Merge branch 'marka-fix-ci-configure-v9_11' into 'v9_11'
fix CI configure for v9_11

See merge request isc-projects/bind9!3617
2020-06-03 10:16:46 +00:00
Mark Andrews d00fa6cc01 CI configure fixes for bad backports
remove --disable-maintainer-mode
rename --with-json to --with-libjson
2020-06-02 16:05:36 +10:00
Ondřej Surý 99ed4bc788 Merge branch '1164-add-danger-python-to-gitlab-ci-v9_11' into 'v9_11'
Add Danger Python to GitLab CI (v9.11)

See merge request isc-projects/bind9!3612
2020-06-01 11:59:28 +00:00
Michał KępieńandOndřej Surý 5190c42841 Add Danger Python to GitLab CI
Certain rules of the BIND development process are not codified anywhere
and/or are used inconsistently.  In an attempt to improve this
situation, add a GitLab CI job which uses Danger Python to add comments
to merge requests when certain expectations are not met.  Two categories
of feedback are used, only one of which - fail() - causes the GitLab CI
job to fail.  Exclude dangerfile.py from Python QA checks as the way the
contents of that file are evaluated triggers a lot of Flake8 and PyLint
warnings.

(cherry picked from commit 36bb45a8b6)
2020-06-01 13:49:05 +02:00
Mark Andrews 97cdeb2c41 Merge branch '1858-silence-tsan-in-bin-nsupdate-nsupdate-c-v9_11' into 'v9_11'
Lock access to 'answer' to silence TSAN

See merge request isc-projects/bind9!3598
2020-05-28 03:46:29 +00:00
Mark Andrews 919ea623aa Lock access to 'answer' to silence TSAN
(cherry picked from commit b3bd8a270b)
2020-05-28 11:13:37 +10:00
Mark Andrews 9bf9b3ca0c Merge branch '1853-force-promotion-to-unsigned-int' into 'v9_11'
Resolve "Force promotion to unsigned int."

See merge request isc-projects/bind9!3547
2020-05-28 00:37:41 +00:00
Mark Andrews 20e848bc3b Force promotion to unsigned int then shift the result 2020-05-28 09:59:40 +10:00
Mark Andrews d8343f9f15 Merge branch '1861-named_checknames_get-missing-dbc-v9_11' into 'v9_11'
Resolve "named_checknames_get missing DBC"

See merge request isc-projects/bind9!3582
2020-05-25 03:25:39 +00:00
Mark Andrews 2f75aa8120 Add DBC checks to named_checknames_get
(cherry picked from commit 20c07da49b)
2020-05-25 11:56:15 +10:00
Mark Andrews 35964017d0 Set obj to NULL so INSIST makes sense
(cherry picked from commit ac9e266749)
2020-05-25 11:56:14 +10:00
Michał Kępień 15426151af Merge branch 'michal/do-not-install-python-packages-in-gitlab-ci-jobs-v9_11' into 'v9_11'
[v9_11] Do not install Python packages in GitLab CI jobs

See merge request isc-projects/bind9!3574
2020-05-21 10:02:05 +00:00
Michał Kępień 513378a11a Do not install Python packages in GitLab CI jobs
As Python QA tools, BIND system test prerequisites, and documentation
building utilities are now all included in operating system images used
in GitLab CI, do not use pip for installing them in each CI job any
more.

(cherry picked from commit e3c217296d)
2020-05-21 11:43:57 +02:00
Michał Kępień 2b28dd5d40 Merge branch 'v9_11_19-release' into 'v9_11'
[CVE-2020-8616] [CVE-2020-8617] Merge 9.11.19 release branch

See merge request isc-projects/bind9!3565
2020-05-19 13:19:06 +00:00
Michał Kępień 4a33456f2e Set up release notes for BIND 9.11.20 2020-05-19 14:29:56 +02:00
Michał Kępień b4b5540a8b Bump BIND_BASELINE_VERSION for ABI checks 2020-05-19 14:29:56 +02:00
Michał Kępień afe9c72c92 Fix UTF-8 characters in doc/arm/notes.txt 2020-05-19 14:25:06 +02:00
Tinderbox UserandMichał Kępień d0f8a9d2b9 Merge branch 'prep-release' into v9_11 2020-05-19 14:25:06 +02:00
Tinderbox UserandMichał Kępień 85a5d7392e prep 9.11.19 2020-05-19 14:25:05 +02:00
Mark AndrewsandMichał Kępień 2e25875dbf Merge branch '1388-confidential-issue-security-v9_11' into 'security-v9_11'
1388 confidential issue security v9 11

See merge request isc-private/bind9!153
2020-05-19 14:24:53 +02:00
Mark AndrewsandMichał Kępień 7fbcb53a4d Merge branch '1703-tsig-verify-failure-security-v9_11' into 'security-v9_11'
1703 tsig verify failure security v9 11

See merge request isc-private/bind9!150
2020-05-19 14:24:53 +02:00
Mark AndrewsandMichał Kępień ea328d7f77 Add release notes entry 2020-05-19 14:24:53 +02:00
Mark AndrewsandMichał Kępień fedb32b281 Add CHANGES entry 2020-05-19 14:24:53 +02:00
Mark AndrewsandMichał Kępień 3507a927d5 Update the ARM to reflect that TLD and root servers are no longer exempt
from max-recursion-queries limits.
2020-05-19 14:24:53 +02:00
Mark AndrewsandMichał Kępień 8b93271edc Count queries to the root and TLD servers as well 2020-05-19 14:24:53 +02:00
Stephen MorrisandMichał Kępień 5fb65f4544 Add test for reduction in number of fetches
Add a system test that counts how many address fetches are made
for different numbers of NS records and checks that the number
are successfully limited.
2020-05-19 14:24:53 +02:00
Mark AndrewsandMichał Kępień 850ca8498c Reduce the number of fetches we make when looking up addresses
If there are more that 5 NS record for a zone only perform a
maximum of 4 address lookups for all the name servers.  This
limits the amount of remote lookup performed for server
addresses at each level for a given query.
2020-05-19 14:24:53 +02:00
Mark AndrewsandMichał Kępień e244b73975 Add release note entry 2020-05-19 14:24:52 +02:00
Mark AndrewsandMichał Kępień 93e312cbd8 Add CHANGES entry 2020-05-19 14:24:52 +02:00
Mark AndrewsandMichał Kępień 086b0e4f1c Only look at tsig.error in responses 2020-05-19 14:24:52 +02:00
Mark AndrewsandMichał Kępień 67ba3f8f3a Check that a 'BADTIME' response with 'QR=0' is handled as a request 2020-05-19 14:24:52 +02:00
Mark Andrews 68881f49b9 Merge branch '1856-race-in-clear-signing-records-in-dnssec-system-test-v9_11' into 'v9_11'
Resolve "Race in 'clear signing records' in dnssec system test."

See merge request isc-projects/bind9!3560
2020-05-19 06:09:34 +00:00
Mark Andrews 016cea35f4 Add CHANGES
(cherry picked from commit 3405ee9eb2)
2020-05-19 13:51:45 +10:00
Mark Andrews 809d55226b Address race in dnssec system test. 'clear signing records' can fail
as the update triggers by the rndc command to clear the signing records
may not have completed by the time the subsequent rndc command to test
that the records have been removed is commenced.  Loop several times to
prevent false negative.

(cherry picked from commit 353018c0e5)
2020-05-19 13:50:51 +10:00
Michał Kępień 90bf2b10b2 Merge branch 'michal/misc-cppcheck-tweaks-v9_11' into 'v9_11'
[v9_11] Miscellaneous cppcheck tweaks

See merge request isc-projects/bind9!3553
2020-05-18 08:45:36 +00:00
Michał Kępień 41b4af5d20 Work around cppcheck 2.0 uninitvar false positives
cppcheck 2.0 reports false positives about uninitialized variables in a
lot of places throughout BIND source code, e.g.:

    bin/dig/host.c:386:24: error: Uninitialized variable: length [uninitvar]
     printf("%.*s", (int)r.length, (char *)r.base);
                           ^

Apparently cppcheck 2.0 has issues with processing (&var)->field syntax,
which is what the macros from lib/isc/include/isc/buffer.h are evaluated
to.  This issue was reported upstream [1] and will hopefully be
addressed in a future cppcheck release.

In the meantime, to avoid modifying BIND source code in multiple places
just because of a static checker false positive, work around the issue
by adding intermediate variables to buffer macro definitions using a sed
invocation in the cppcheck job script.

[1] https://sourceforge.net/p/cppcheck/discussion/general/thread/122153e3c1/

(cherry picked from commit 481fa34e50)
2020-05-18 10:41:41 +02:00
Michał Kępień b5608306d4 Make GCC version extraction work with GCC 10
Add whitespace to the regular expression used for extracting the GCC
version from "gcc --version" output so that it works properly with
multi-digit major version numbers.

(cherry picked from commit 3b48eec79f)
2020-05-18 10:41:41 +02:00
Michał Kępień 90a20ad8ef Ensure cppcheck creates a HTML report upon failure
Commit 00f12220c0 broke the cppcheck job
in GitLab CI: when cppcheck fails, the script is immediately
interrupted, preventing cppcheck-htmlreport from being run.  To ensure
the HTML report is generated when cppcheck fails, revert to invoking
cppcheck-htmlreport in the "after_script" part of the job.

(cherry picked from commit cb2037ee9d)
2020-05-18 10:41:06 +02:00
Mark Andrews 3b52372f3c Merge branch '1852-race-in-autosign-system-test-v9_11' into 'v9_11'
Resolve "race in autosign system test."

See merge request isc-projects/bind9!3550
2020-05-18 07:00:36 +00:00
Mark Andrews 7507971413 Add CHANGES
(cherry picked from commit 07e335138b)
2020-05-18 16:00:55 +10:00
Mark Andrews ae4f31e434 Retry checks that records are present and signed
There a race between when the delta is logged and when the
server returns signed record.  Retry the queries if the
lookups fail to meet expectations.

(cherry picked from commit 46c4e5d96f)
2020-05-18 16:00:51 +10:00
Mark Andrews fd5a55f924 Merge branch '1714-provide-ixfr-no-should-still-send-up-to-date-responses-v9_16-v9_11' into 'v9_11'
Resolve "'provide-ixfr no;' should still send up-to-date responses."

See merge request isc-projects/bind9!3540
2020-05-18 02:54:45 +00:00
Mark Andrews 6ca026b313 Add CHANGES entry
(cherry picked from commit 11b1cbecb0)
(cherry picked from commit 5b5bebee05)
2020-05-18 09:40:13 +10:00
Mark Andrews 7c1043ae73 move provide-ixfr testing after the serial has been checked
(cherry picked from commit c7cdc47cc5)
(cherry picked from commit 89c1bc58e4)
2020-05-18 09:40:13 +10:00
Michał Kępień f9e81cf40d Merge branch 'michal/generate-text-documentation-in-utf-8' into 'v9_11'
Generate text documentation in UTF-8

See merge request isc-projects/bind9!3518
2020-05-15 10:03:21 +00:00
Michał Kępień 5876e31960 Generate text documentation in UTF-8
Modify all invocations of "w3m -O ascii ..."  with their UTF-8
counterparts to ensure all text documentation generated from UTF-8
source files is also in UTF-8.
2020-05-15 12:00:54 +02:00
Michal Nowak 4ed9745e7a Merge branch 'mnowak/abi-check-artifacts-v9_11' into 'v9_11'
[v9_11] Collect TXT and HTML reports produced by ABI checker

See merge request isc-projects/bind9!3543
2020-05-15 09:37:58 +00:00
Michal Nowak db09c63003 Collect TXT and HTML reports produced by ABI checker
Although in util/api-checker.sh we create textual reports, we don't
preserve them in job artifacts, but we should.

We don't want to keep all HTML pages present in the project root, but
just those produced by ABI checker.

(cherry picked from commit b5ccf95b0a)
2020-05-15 11:32:57 +02:00
Mark Andrews 166199ce90 Merge branch '1835-add-the-ability-to-parse-and-display-extended-dns-error-code-ede-v9_16-v9_11' into 'v9_11'
Resolve "Add the ability to parse and display Extended DNS Error code (EDE)."

See merge request isc-projects/bind9!3530
2020-05-13 02:51:28 +00:00
Mark Andrews fc4626c124 Add release note entry
(cherry picked from commit 88615006c5)
(cherry picked from commit 2e02c6f9a7)
2020-05-13 12:18:55 +10:00
Mark Andrews e692d460a1 Add CHANGES entry
(cherry picked from commit 79729c0e19)
(cherry picked from commit e196c7f9fa)
2020-05-13 12:18:55 +10:00
Mark Andrews ee49cc6201 Check display of EDE option
(cherry picked from commit e6b0153f8a)
(cherry picked from commit 88e11a9971)
2020-05-13 12:18:55 +10:00
Mark Andrews 0339907d19 Also print out valid printable utf8
(cherry picked from commit 1c8f9d06e2)
(cherry picked from commit c13fb2c67f)
2020-05-13 12:18:55 +10:00
Mark Andrews c0d34e8b05 Report Extended DNS Error codes
(cherry picked from commit b144ae1bb0)
(cherry picked from commit eed4fab37b)
2020-05-13 12:18:55 +10:00
Evan Hunt fb4ca938a2 Merge branch 'each-nsec3-ixfr-v9_11' into 'v9_11'
don't bother checking for empty nodes when searching the NSEC3 tree

See merge request isc-projects/bind9!3529
2020-05-12 21:22:11 +00:00
Evan Hunt e48395fe59 CHANGES
(cherry picked from commit 0f901b5f2d)
2020-05-12 13:39:28 -07:00
Evan Hunt c18dd943da don't bother checking for empty nodes when searching the NSEC3 tree
this avoids a time-wasting search that could occur during an
IXFR that replaced an NSEC3 chain.

(cherry picked from commit 7192edf9c2)
2020-05-12 13:39:03 -07:00
Ondřej Surý b4373afcc2 Merge branch 'marka-silence-flake8-warning-v9_11' into 'v9_11'
Silence: E741 ambiguous variable name 'l'

See merge request isc-projects/bind9!3525
2020-05-12 12:07:44 +00:00
Mark AndrewsandOndřej Surý 31b863f3d1 Silence: E741 ambiguous variable name 'l'
(cherry picked from commit 189d21fb96)
2020-05-12 14:05:37 +02:00
Mark Andrews 10ce0c7995 Merge branch 'marka-call-check-categories-v9_11' into 'v9_11'
have CI call util/check-categories.sh

See merge request isc-projects/bind9!3514
2020-05-11 01:37:00 +00:00
Mark Andrews 3e8d3cc4c9 have CI call util/check-categories.sh
(cherry picked from commit 2270e28fde)
2020-05-11 11:02:15 +10:00
Mark Andrews f358159729 Merge branch '1817-named-checkzone-s-full-relative-missing-from-usage-v9_11' into 'v9_11'
add [-s (full|relative)] to usage

See merge request isc-projects/bind9!3511
2020-05-08 07:38:13 +00:00
Mark Andrews e9013cfe26 add [-s (full|relative)] to usage
(cherry picked from commit 3f93f3ee11)
2020-05-08 16:55:33 +10:00
Evan Hunt bdd2d19c5c Merge branch '1812-uninitialized-dscp-v9_11' into 'v9_11'
Unexpected output from named-checkconf

See merge request isc-projects/bind9!3507
2020-05-06 22:34:42 +00:00
Evan Hunt 1df4141279 initialize sockaddrdscp to prevent spurious output from 'named-checkconf -p'
(cherry picked from commit f8d753d452)
2020-05-06 12:48:13 -07:00
Michał Kępień 15367a148d Merge branch 'michal/prepare-release-notes-for-bind-9.11.19' into 'v9_11'
Prepare release notes for BIND 9.11.19

See merge request isc-projects/bind9!3497
2020-05-05 20:53:13 +00:00
Michał Kępień 669325f524 Add release note for GL #1807 2020-05-05 22:51:25 +02:00
Michał Kępień dd690523bb Add release note for GL #1695 2020-05-05 22:51:25 +02:00
Michał Kępień 494d1a5b36 Release notes: wording and formatting tweaks 2020-05-05 22:51:25 +02:00
Michał Kępień bf5cc3de9f Tweak and reword recent CHANGES entries 2020-05-05 22:51:25 +02:00
Evan Hunt 706a02c71b Merge branch 'each-cppcheck-v9_11' into 'v9_11'
Fix outstanding cppcheck errors

See merge request isc-projects/bind9!3498
2020-05-04 22:00:47 +00:00
Evan Hunt 7e76da18f2 Fix outstanding cppcheck errors
lib/dns/sdb.c:1145:warning: Either the condition '(sdb)!=((void*)0)' is
redundant or there is possible null pointer dereference: sdb."

lib/dns/sdb.c:1208: Either the condition '(node)!=((void*)0)' is
redundant or there is possible null pointer dereference: sdbnode.
2020-05-04 14:23:23 -07:00
Michał Kępień 5747e58a9d Merge branch 'michal/1674-add-release-note-v9_11' into 'v9_11'
[v9_11] Add release note for GL #1674

See merge request isc-projects/bind9!3491
2020-05-04 09:11:20 +00:00
Michał Kępień 70c9ce78ba Add release note for GL #1674
(cherry picked from commit 4715a76345)
2020-05-04 11:07:43 +02:00
Evan Hunt ffae81cd60 Merge branch '1807-checkconf-error-v9_11' into 'v9_11'
named-checkconf -z could exit with an incorrect status

See merge request isc-projects/bind9!3489
2020-05-02 01:20:02 +00:00
Evan Hunt 410ee752dd named-checkconf -z could exit with an incorrect staatus
the CHECK() macro resets result, so an error code from an earlier
view could be erased if the last view loaded had no errors.

(cherry picked from commit 7e73660206)
2020-05-01 17:47:44 -07:00
Mark Andrews dfb33fc93d Merge branch '1695-addzone-system-tests-failing-in-mac-os-x-v9_11' into 'v9_11'
Resolve "addzone system tests failing in Mac OS X"

See merge request isc-projects/bind9!3470
2020-05-01 01:40:21 +00:00
Mark Andrews 9e515cd7bb Add CHANGES entry
(cherry picked from commit d63479a48d)
2020-05-01 10:10:09 +10:00
Mark Andrews 48f7566b61 Mimic nzf_append from bin/named/server.c
nzf_append is conditionally compiled and this is intended to
catch error introduced by changes to the called functions on all
systems before the changes are run through the CI.

(cherry picked from commit a66c6fc883)
2020-05-01 10:10:09 +10:00
Mark Andrews 5af8a088f4 Add jobs for 'configure --with{out}-lmdb' to the GitLab CI
We missed a case where LMDB was not installed/used in the build
and that broke system tests on such systems.

(cherry picked from commit 060b56dc70)
2020-05-01 09:18:07 +10:00
Mark Andrews 0c21ddcac6 Add more special zones to addzone restart test.
Test zones with various escape sequences and filesystem seperator
characters.
* escaped double quote (\")
* escaped escape (\\)
* escaped decimal byte value (\032)
* slash seperator (/)

(cherry picked from commit 5ab9b5b1e6)
2020-05-01 09:18:04 +10:00
Mark Andrews 453ec7c3b5 Escape double quote when printing quoted string.
When we were printing quoted string, the double quotes where unescaped
leading to prematurely ending the quoted string.

(cherry picked from commit b02081d423)
2020-05-01 09:15:11 +10:00
Mark Andrews 2951ff086d Merge branch '1806-system-and-unit-clang-asan-have-incorrect-needs-v9_11' into 'v9_11'
Incorrect job in needs, gcc:asan -> clang:asan

See merge request isc-projects/bind9!3464
2020-04-30 08:50:52 +00:00
Mark Andrews b5766e0c64 Incorrect job in needs, gcc:asan -> clang:asan
(cherry picked from commit 0adf9562fb)
2020-04-30 18:50:08 +10:00
Mark Andrews f4ec4ce9f8 Merge branch '1804-util-parse_tsan-py-is-not-pylint-clean-v9_11' into 'v9_11'
pylint cleanups

See merge request isc-projects/bind9!3461
2020-04-30 08:44:33 +00:00
Mark Andrews bc7034bcc0 pylint cleanups
(cherry picked from commit d7618f6954)
2020-04-30 17:38:04 +10:00
Ondřej Surý b9492e6846 Merge branch '1764-build-9-16-2-release-make-depend-fatal-error-lib-dns-dnstap-pb-c-h-no-such-file-or-directory-v9_11' into 'v9_11'
check that 'make depend' does not fail

See merge request isc-projects/bind9!3449
2020-04-29 15:50:24 +00:00
Mark AndrewsandOndřej Surý 7252ffa7d8 check that 'make depend' does not fail
(cherry picked from commit 72143febe7)
2020-04-29 17:49:28 +02:00
Ondřej Surý ab6b58fe6d Merge branch 'ondrej/fix-asan-symbolizer-v9_11' into 'v9_11'
Fix the ASAN symbolizer

See merge request isc-projects/bind9!3452
2020-04-29 15:47:59 +00:00
Ondřej Surý 8fb874a510 Fix the ASAN symbolizer
(cherry picked from commit 96805e8c91)
2020-04-29 17:28:17 +02:00
Ondřej Surý 8d029b4405 Merge branch '1090-fix-unable-to-set-effective-uid-to-0-v9_11' into 'v9_11'
Resolve "BIND 9.14: unable to set effective uid to 0"

See merge request isc-projects/bind9!3441
2020-04-28 16:44:19 +00:00
Ondřej SurýandOndřej Surý bf5df9faf1 Add release notes for GL #1042, #1090
(cherry picked from commit 60b608b65b)
2020-04-28 17:31:27 +02:00
Ondřej SurýandOndřej Surý fa5e9706a0 Add CHANGES for #1042, #1090
(cherry picked from commit a0a5eab31c)
2020-04-28 17:31:27 +02:00
Mark AndrewsandOndřej Surý 94ec98ad7a Propagate first_time to named_os_openfile in generate_session_key.
named_os_openfile was being called with switch_user set to true
unconditionally leading to log messages about being unable to
switch user identity from named when regenerating the key.

(cherry picked from commit 071bc29962)
2020-04-28 17:31:26 +02:00
Ondřej SurýandOndřej Surý 89ad4912e9 Don't change effective uid when we already dropped privileges
When running on Linux and system capabilities are available, named will
drop the extra capabilities before loading the configuration.  This led
to spurious warnings from `seteuid()` because named already dropped
CAP_SETUID and CAP_GETUID capabilities.

The fix removes setting the effective uid/gid when capabilities are
available, and adds a check that we are running under the user we were
requested to run.

(cherry picked from commit 6c82e2af92)
2020-04-28 17:31:26 +02:00
Michal Nowak 126c9d94cf Merge branch 'mnowak/1751-abi-check-does-not-know-which-source-is-older-newer-v9_11' into 'v9_11'
[v9_11] Ensure proper comparison order in "abi-check" jobs

See merge request isc-projects/bind9!3421
2020-04-23 08:01:56 +00:00
Michal Nowak 85ba41d82e Ensure proper comparison order in "abi-check" jobs
Right before the release API version (LIBINTERFACE, LIBREVISION, LIBAGE)
for older and newer libraries tends to be the same. Given that, commit
hash can't be the determining factor here, Unix time of the commit
should suit us better and is placed after the API version. The commit
hash is preserved as it's useful to see it in the actual report.

(cherry picked from commit 313518dd3d)
2020-04-23 09:47:22 +02:00
Ondřej Surý 7d0c73b199 Merge branch 'ondrej/make-merge_copyrights-ignore-hidden-files-v9_11' into 'v9_11'
Make merge_copyrights ignore hidden files

See merge request isc-projects/bind9!3419
2020-04-23 06:05:05 +00:00
Ondřej Surý 2d3ac34b81 Make merge_copyrights ignore hidden files
(cherry picked from commit 6d46082d82)
2020-04-23 08:03:01 +02:00
Mark Andrews 13aba00fc9 Merge branch '1674-warn-bad-id-in-axfr-v9_11' into 'v9_11'
Warn about AXFR stream with inconsistent message id (v9_11)

See merge request isc-projects/bind9!3406
2020-04-21 00:21:53 +00:00
Mark Andrews 3a79f3629c Check that bad message id's are caught by named
(cherry picked from commit 06e53c9e14)
2020-04-21 09:37:47 +10:00
Mark Andrews 87a22c5705 Convert to using retry_quiet and nextpart
(cherry picked from commit 9937116f21)
2020-04-21 09:33:36 +10:00
Mark Andrews a05a6dedcb Warn about AXFR streams that are incompatible with BIND 9.18
(cherry picked from commit 998b2d5a57)
2020-04-21 09:31:24 +10:00
Michał Kępień bca7597aa5 Merge branch '1765-create-empty-release-notes-for-9-11-19' into 'v9_11'
create empty release notes for 9.11.19

See merge request isc-projects/bind9!3397
2020-04-17 06:35:24 +00:00
Mark AndrewsandMichał Kępień 69c78f16ad Create empty release notes for 9.11.19 2020-04-17 08:32:08 +02:00
Michał Kępień 3d32e3fb1f Merge branch 'mnowak/abi-tracker-helper-v9_11_18' into 'v9_11'
abi-check: Update BIND_BASELINE_VERSION to v9_11_18

See merge request isc-projects/bind9!3386
2020-04-16 21:23:40 +00:00
Michal NowakandMichał Kępień e15499258e abi-check: Update BIND_BASELINE_VERSION to v9_11_18 2020-04-16 21:22:42 +00:00
Michał Kępień d858f5e590 Merge branch 'v9_11_18-release' into 'v9_11'
Merge 9.11.18 release branch

See merge request isc-projects/bind9!3394
2020-04-16 21:11:31 +00:00
Michał Kępień 255be080cf Tweak library API versions 2020-04-16 23:10:26 +02:00
Tinderbox UserandMichał Kępień aaa281ec6b regen v9_11 2020-04-16 23:10:26 +02:00
Tinderbox UserandMichał Kępień 5dceb8d54d prep 9.11.18 2020-04-16 23:10:26 +02:00
Ondřej Surý cee435adb6 Merge branch '1755-tune-the-windows-build-so-we-can-use-wx-equivalent-of-werror-v9_11' into 'v9_11'
Resolve "Tune the Windows build, so we can use /WX (equivalent of -Werror)"

See merge request isc-projects/bind9!3380
2020-04-16 12:06:58 +00:00
Ondřej Surý 5e2d19911f _getcwd() on Windows needs direct.h header
The _getcwd() compatibility function on Microsoft CRT requires direct.h
header to pull a proper function prototype.

The (misleading) warning generated:

  bin\named\server.c(1074): warning C4047: '==': 'int' differs in levels of indirection from 'void *'
2020-04-16 13:13:00 +02:00
Ondřej Surý ebb6165839 Disable C4090 in libisccfg
The MSVC detects mismatch of const qualifiers in cfg_map_{first,next}clause
functions just in BIND 9.11.  As this is harmless in this particular
case, just disable the warning for these two functions.

The warnings reported:

  lib\isccfg\parser.c(2160): warning C4090: '=': different 'const' qualifiers
  lib\isccfg\parser.c(2184): warning C4090: '=': different 'const' qualifiers
2020-04-16 13:01:55 +02:00
Ondřej Surý 7f672ab47d Add default return value in win32 isc_thread_join() 2020-04-16 08:22:40 +02:00
Ondřej Surý e95433575d Don't escape spaces in CONFIGARGS, use double backslash with all whitespace
(cherry picked from commit 9b0e85cbd5)
2020-04-16 08:12:39 +02:00
Ondřej Surý 5fd1df8cfa Disable MSB8028 warning
All our MSVS Project files share the same intermediate directory.  We
know that this doesn't cause any problems, so we can just disable the
detection in the project files.

Example of the warning:

  warning MSB8028: The intermediate directory (.\Release\) contains files shared from another project (dnssectool.vcxproj).  This can lead to incorrect clean and rebuild behavior.

(cherry picked from commit b6c2012d93)
2020-04-16 08:12:39 +02:00
Ondřej Surý 8c00051ddb Remove the Windows build job dependency on autoreconf job
(cherry picked from commit 70318943fe)
2020-04-16 08:12:39 +02:00
Ondřej Surý 90108d479f Don't return from void function
(cherry picked from commit 948a23e6bb)
2020-04-16 08:12:39 +02:00
Ondřej Surý 1eb5a77baa Set WarningLevel to Level1 for Release, treat warnings as errors
Our vcxproj files set the WarningLevel to Level3, which is too verbose
for a code that needs to be portable.  That basically leads to ignoring
all the errors that MSVC produces.  This commits downgrades the
WarningLevel to Level1 and enables treating warnings as errors for
Release builds.  For the Debug builds the WarningLevel got upgraded to
Level4, and treating warnings as errors is explicitly disabled.

We should eventually make the code clean of all MSVC warnings, but it's
a long way to go for Level4, so it's more reasonable to start at Level1.

For reference[1], these are the warning levels as described by MSVC
documentation:

  * /W0 suppresses all warnings. It's equivalent to /w.
  * /W1 displays level 1 (severe) warnings. /W1 is the default setting
    in the command-line compiler.
  * /W2 displays level 1 and level 2 (significant) warnings.
  * /W3 displays level 1, level 2, and level 3 (production quality)
    warnings. /W3 is the default setting in the IDE.
  * /W4 displays level 1, level 2, and level 3 warnings, and all level 4
    (informational) warnings that aren't off by default. We recommend
    that you use this option to provide lint-like warnings. For a new
    project, it may be best to use /W4 in all compilations. This option
    helps ensure the fewest possible hard-to-find code defects.
  * /Wall displays all warnings displayed by /W4 and all other warnings
    that /W4 doesn't include — for example, warnings that are off by
    default.
  * /WX treats all compiler warnings as errors. For a new project, it
    may be best to use /WX in all compilations; resolving all warnings
    ensures the fewest possible hard-to-find code defects.

1. https://docs.microsoft.com/en-us/cpp/build/reference/compiler-option-warning-level?view=vs-2019

(cherry picked from commit 789d253e3d)
2020-04-16 08:12:39 +02:00
Michał Kępień 385fd98bf1 Merge branch 'michal/fix-srcid-on-windows-v9_11' into 'v9_11'
[v9_11] Fix "srcid" on Windows

See merge request isc-projects/bind9!3373
2020-04-15 09:43:35 +00:00
Michał Kępień 2d73af4e2a Fix "srcid" on Windows
Windows BIND releases produced by GitLab CI are built from Git
repositories, not from release tarballs, which means the "srcid" file is
not present in the top source directory when MSBuild is invoked.  This
causes the Git commit hash for such builds to be set to "unset_id".
Enable win32utils/Configure to try determining the commit hash for a
build by invoking Git on the build host if the "srcid" file is not
present (which is what its Unix counterpart does).

(cherry picked from commit 05e13e7caf)
2020-04-15 11:39:55 +02:00
Ondřej Surý fd32f53a7b Merge branch 'ondrej/add-python-static-analysis-to-gitlab-ci-v9_11' into 'v9_11'
Add python static analysis to GitLab CI (v9.11)

See merge request isc-projects/bind9!3367
2020-04-15 07:48:07 +00:00
Ondřej Surý cea7ef64b8 Exclude contrib/queryperf/ from pylint check 2020-04-15 08:52:50 +02:00
Ondřej SurýandOndřej Surý 9301d69ebc Make the python code pylint and flake8 compliant
(cherry picked from commit 1e4ff9d485)
2020-04-15 07:46:35 +02:00
Ondřej SurýandOndřej Surý 120e6202c6 Add pylint and flake8 tests to GitLab CI
Our python code didn't adhere to any coding standard.  In this commit, we add
flame8 (https://pypi.org/project/flake8/), and pylint (https://www.pylint.org/).

There's couple of exceptions:

- ans.py scripts are not checked, nor fixed as part of this MR
- pylint's missing-*-docstring and duplicate-code checks have
  been disabled via .pylintrc

Both exceptions should be removed in due time.

(cherry picked from commit ee534592e3)
2020-04-15 07:44:39 +02:00
Michał Kępień 52666bbc09 Merge branch 'michal/misc-doc-fixes-v9_11' into 'v9_11'
[v9_11] Miscellaneous documentation fixes

See merge request isc-projects/bind9!3349
2020-04-09 05:50:14 +00:00
Michał Kępień 5d2950c9a3 Tweak release notes for BIND 9.11.18 2020-04-08 23:00:12 +02:00
Michał Kępień 01c2a876ea Tweak CHANGES for BIND 9.11.18 2020-04-08 23:00:12 +02:00
Ondřej Surý 1bb7b88c98 Merge branch 'ondrej/missing-changes-v9_11-v9_11' into 'v9_11'
Add missing CHANGES notes from v9_11 branch

See merge request isc-projects/bind9!3354
2020-04-08 12:49:30 +00:00
Ondřej Surý 7a866a11aa Add missing CHANGES notes from v9_11 branch
(cherry picked from commit 434929b53d)
2020-04-08 14:47:09 +02:00
Ondřej Surý 12597e7923 Merge branch 'ondrej/arch-ppc64le-v9_11-changes' into 'v9_11'
Add CHANGES note for !3295

See merge request isc-projects/bind9!3350
2020-04-08 12:18:20 +00:00
Ondřej Surý 10c9a30169 Add CHANGES note for !3295 2020-04-08 14:17:06 +02:00
Ondřej Surý eb750eaf72 Merge branch '1574-confidential-issue-rebinding-protection-fail-in-forwarding-mode-v9_11' into 'v9_11'
Resolve "DNS rebinding protection is ineffective when BIND is configured as a forwarding DNS server"

See merge request isc-projects/bind9!3345
2020-04-08 09:04:56 +00:00
Ondřej Surý fc2bead314 Add release notes 2020-04-08 09:47:08 +02:00
Ondřej Surý 11b8259846 Add CHANGES 2020-04-08 09:47:08 +02:00
Diego FronzaandOndřej Surý eace12fb70 Add test for the proposed fix
This test asserts that option "deny-answer-aliases" works correctly
when forwarding requests.

As a matter of example, the behavior expected for a forwarder BIND
instance, having an option such as deny-answer-aliases { "domain"; }
is that when forwarding a request for *.anything-but-domain, it is
expected that it will return SERVFAIL if any answer received has a CNAME
for "*.domain".
2020-04-08 09:21:03 +02:00
Diego FronzaandOndřej Surý 8beba5ee09 Fixed rebinding protection bug when using forwarder setups
BIND wasn't honoring option "deny-answer-aliases" when configured to
forward queries.

Before the fix it was possible for nameservers listed in "forwarders"
option to return CNAME answers pointing to unrelated domains of the
original query, which could be used as a vector for rebinding attacks.

The fix ensures that BIND apply filters even if configured as a forwarder
instance.
2020-04-08 09:21:03 +02:00
Michał Kępień 34786cb997 Merge branch 'mnowak/release-fixes-v9_11' into 'v9_11'
Fix a grammar mistake in entry 5357

See merge request isc-projects/bind9!3339
2020-04-08 07:17:13 +00:00
Michal Nowak 7637693be8 Fix a grammar mistake in entry 5357 2020-04-07 11:07:56 +02:00
Mark Andrews d7226ff55e Merge branch 'marka-empty-release-notes-v9_11' into 'v9_11'
add empty release notes for 9.11.18

See merge request isc-projects/bind9!3315
2020-03-31 07:21:06 +00:00
Mark Andrews d8ba069201 add empty release notes for 9.11.18
(cherry picked from commit 503e2dff64)
2020-03-31 17:16:13 +11:00
Mark Andrews c4b4a70d53 Merge branch '1678-bind-fails-to-build-with-mysql-support-against-mysql8-mysql-connector-8-v9_11' into 'v9_11'
Resolve "BIND fails to build with MYSQL support against mysql8/mysql-connector-8"

See merge request isc-projects/bind9!3306
2020-03-26 23:21:36 +00:00
Mark Andrews 779d4995f0 Typedef my_bool if missing.
ORACLE MySQL 8.0 has dropped the my_bool type, so we need to reinstate
it back when compiling with that version or higher.  MariaDB is still
keeping the my_bool type.  The numbering between the two (MariaDB 5.x
jumped to MariaDB 10.x) doesn't make the life of the developer easy.

(cherry picked from commit c6d5d5c88f)
2020-03-27 09:12:22 +11:00
Mark Andrews 95da2ffac1 remove unused variable
(cherry picked from commit 7af9883b48)
2020-03-27 09:07:17 +11:00
Ondřej Surý 6e9c035b05 Merge branch 'ondrej/scan-build-10-fixes-v9_11-2' into 'v9_11'
Fix 'Dead nested assignment' from scan-build-10

See merge request isc-projects/bind9!3296
2020-03-26 13:10:06 +00:00
Ondřej Surý 8077ce039e Import parse_tsan.py file to v9_11 branch 2020-03-26 13:52:28 +01:00
Ondřej Surý ff814288af Fix 'Dead nested assignment' from scan-build-10
This is the warning:

In file included from print_test.c:47:
./../print.c:203:9: warning: Although the value stored to 'neg' is used in the enclosing expression, the value is never actually read from 'neg'
                dot = neg = space = plus = left = zero = alt = h = l = q = z = 0;
                      ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
2020-03-26 13:52:28 +01:00
Michał Kępień d934f4a9b2 Merge branch 'michal/misc-gitlab-ci-yml-cleanups-v9_11' into 'v9_11'
[v9_11] Miscellaneous .gitlab-ci.yml cleanups

See merge request isc-projects/bind9!3302
2020-03-26 10:46:33 +00:00
Michał Kępień 9e716a0add Remove unused YAML anchors
Some YAML anchors defined in .gitlab-ci.yml are not subsequently used.
Remove them to prevent confusion.

(cherry picked from commit 3d121ede6c)
2020-03-26 11:45:40 +01:00
Michał Kępień 7e45ec0084 Do not install compiledb in cppcheck job
compiledb is already included in the Docker image used by the cppcheck
job.  Do not attempt installing it again.

(cherry picked from commit 3d264dbe81)
2020-03-26 11:45:40 +01:00
Michał Kępień 13b942f60d Include compiler name in all build/test job names
Most build/test job names already contain a "clang", "gcc", or "msvc"
prefix which indicates the compiler used for a given job.  Apply that
naming convention to all build/test job names.

(cherry picked from commit 0c898084cd)
2020-03-26 11:45:39 +01:00
Michał Kępień cb541ea253 Refactor TSAN unit test job definitions
Multiple YAML keys have identical values for both TSAN unit test job
definitions.  Extract these common keys to a YAML anchor and use it in
TSAN unit test job definitions to reduce code duplication.

(cherry picked from commit 84463f33bf)
2020-03-26 11:45:39 +01:00
Michał Kępień ac43976113 Run "kyua report-html" for TSAN unit test jobs
Definitions of jobs running unit tests under TSAN contain an
"after_script" YAML key.  Since the "unit_test_job" anchor is included
in those job definitions before "after_script" is defined, the
job-specific value of that key overrides the one defined in the included
anchor.  This prevents "kyua report-html" from being run for TSAN unit
test jobs.  Moving the invocation of "kyua report-html" to the "script"
key in the "unit_test_job" anchor is not acceptable as it would cause
the exit code of that command to determine the result of all unit test
jobs and we need that to be the exit code of "make unit".  Instead, add
"kyua report-html" invocations to the "after_script" key of TSAN unit
test job definitions to address the problem without affecting other job
definitions.

(cherry picked from commit 6ebce9425e)
2020-03-26 11:45:39 +01:00
Michał Kępień a052bac38f Refactor TSAN system test job definitions
Multiple YAML keys have identical values for both TSAN system test job
definitions.  Extract these common keys to a YAML anchor and use it in
TSAN system test job definitions to reduce code duplication.

(cherry picked from commit a9aa295f1f)
2020-03-26 11:45:39 +01:00
Michał Kępień 671e0e7a08 Drop "before_script" key from TSAN job definitions
Both "system_test_job" and "unit_test_job" YAML anchors contain a
"before_script" key.  TSAN job definitions first specify their own value
of the "before_script" key and then include the aforementioned YAML
anchors, which results in the value of the "before_script" key being
overridden with the value specified by the included anchor.  Given this,
remove "before_script" definitions specific to TSAN jobs as they serve
no practical purpose.

(cherry picked from commit 8ef01c7b50)
2020-03-26 11:45:38 +01:00
Michał Kępień a9bc2311ca Define TSAN options in a global variable
All assignments for the TSAN_OPTIONS variable are identical across the
entire .gitlab-ci.yml file.  Define a global TSAN_OPTIONS_COMMON
variable and use it in job definitions to reduce code duplication.

(cherry picked from commit 6325c0993a)
2020-03-26 11:45:38 +01:00
Ondřej Surý b4a5c02b31 Merge branch 'ondrej/arch-ppc64le-v9_11' into 'v9_11'
Detect atomic operations support on ppc64le (v9.11)

See merge request isc-projects/bind9!3295
2020-03-25 23:03:36 +00:00
Petr MenšíkandOndřej Surý 33fcafe055 Detect atomic operations support on ppc64le
Current configure detects only stdatomic operations. Fix it to detect
also ISC atomics with assembly.
2020-03-25 23:04:23 +01:00
Ondřej Surý c5d3152edd Merge branch 'ondrej/no-clang-on-debian-sid-v9_11' into 'v9_11'
Rewrite .gitlab-ci.yml to have 'base_image' and other GitLab CI improvements (v9.11)

See merge request isc-projects/bind9!3289
2020-03-25 17:30:15 +00:00
Ondřej Surý f801f0f926 Adjust the differences between v9_16 and v9_11 GitLab CI job configuration 2020-03-25 18:20:40 +01:00
Ondřej Surý 95d2d8399a Replace clang:stretch:amd64 build with clang:buster:amd64 build (+ add missing system test)
(cherry picked from commit 281531d82b)
2020-03-25 18:15:15 +01:00
Ondřej Surý 00f12220c0 Replace bear with compiledb and drop MAKE_COMMAND because we don't need it
(cherry picked from commit ec72d1100d)
2020-03-25 18:15:14 +01:00
Ondřej Surý 7398668e76 Adjust the GitLab CI jobs to match the new images
The custom builds (oot, asan, tsan) were mostly built using Debian sid
amd64 image.  The problem was that this image broke too easily, because
it's Debian "unstable" after all.

This commit introduces "base_image" that should be most stable with
extra bits on top (clang, coccinelle, cppcheck, ...).  Currently, that
would be Debian buster amd64.

Other changes introduced by this commit:

* Change the default clang version to 10
* Run both ASAN and TSAN with both gcc and clang compilers
* Remove Clang Debian stretch i386 job

(cherry picked from commit 5f5721aa11)
2020-03-25 18:15:11 +01:00
Ondřej Surý 4ae7af00a8 Merge branch 'ondrej/scan-build-10-fixes-v9_11' into 'v9_11'
Fix new warnings reported by scan-build from LLVM/Clang 10 (v9.11)

See merge request isc-projects/bind9!3287
2020-03-25 17:11:37 +00:00
Ondřej Surý 9b76eea08f Fix 'Dereference of null pointer' from scan-build-10
These are mostly false positives, the clang-analyzer FAQ[1] specifies
why and how to fix it:

> The reason the analyzer often thinks that a pointer can be null is
> because the preceding code checked compared it against null. So if you
> are absolutely sure that it cannot be null, remove the preceding check
> and, preferably, add an assertion as well.

The 2 warnings reported are:

byname_test.c:308:34: warning: Access to field 'fwdtable' results in a dereference of a null pointer (loaded from variable 'view')
                RUNTIME_CHECK(dns_fwdtable_add(view->fwdtable, dns_rootname,
                                               ^~~~~~~~~~~~~~
/builds/isc-projects/bind9/lib/isc/include/isc/util.h:318:52: note: expanded from macro 'RUNTIME_CHECK'
                                                   ^~~~
/builds/isc-projects/bind9/lib/isc/include/isc/error.h:50:21: note: expanded from macro 'ISC_ERROR_RUNTIMECHECK'
        ((void)(ISC_LIKELY(cond) ||  \
                           ^~~~
/builds/isc-projects/bind9/lib/isc/include/isc/likely.h:23:43: note: expanded from macro 'ISC_LIKELY'
                                            ^
1 warning generated.

--

./rndc.c:255:6: warning: Dereference of null pointer (loaded from variable 'host')
        if (*host == '/') {
            ^~~~~
1 warning generated.

References:
1. https://clang-analyzer.llvm.org/faq.html#null_pointer

(cherry picked from commit ddd0d356e5)
2020-03-25 18:09:20 +01:00
Ondřej Surý 138dded9d9 Fix 'Dead nested assignment's from scan-build-10
The 3 warnings reported are:

os.c:872:7: warning: Although the value stored to 'ptr' is used in the enclosing expression, the value is never actually read from 'ptr'
        if ((ptr = strtok_r(command, " \t", &last)) == NULL) {
             ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

--

rpz.c:1117:10: warning: Although the value stored to 'zbits' is used in the enclosing expression, the value is never actually read from 'zbits'
        return (zbits &= x);
                ^        ~
1 warning generated.

--

openssleddsa_link.c:532:10: warning: Although the value stored to 'err' is used in the enclosing expression, the value is never actually read from 'err'
        while ((err = ERR_get_error()) != 0) {
                ^     ~~~~~~~~~~~~~~~
1 warning generated.

(cherry picked from commit 262f087bcf)
2020-03-25 18:08:12 +01:00
Ondřej Surý df81669a27 Merge branch 'ondrej/remove-debian-jessie-from-gitlab-ci-v9_11' into 'v9_11'
Remove Debian 8 ("Jessie") from the GitLab CI

See merge request isc-projects/bind9!3284
2020-03-25 06:29:09 +00:00
Ondřej Surý e2d6d0ee54 Remove Debian 8 ("Jessie") from the GitLab CI
There are several reason why remove Debian 8 from the CI:

* Debian 8 ("jessie") has been superseded by Debian 9 ("stretch").
* Regular security support updates have been discontinued as of
  June 17th, 2018.
* Jessie LTS is supported from 17th June 2018 to June 30, 2020.

In other words, it's no longer officially supported by Debian security
team, but by the volunteer/paid contributor composed LTS team.  And the
release will be discontinued in three months from now.  We can use the
freed CI resources to bring new platforms or just to make the jobs run a
bit faster.

(cherry picked from commit 75f46cc3d1)
2020-03-24 14:52:16 +01:00
Ondřej Surý 54e6a881fe Merge branch '4-gitlab-ci.yml-improvement-v9_11' into 'v9_11'
Improve GitLab CI configuration (v9.11)

See merge request isc-projects/bind9!3261
2020-03-20 15:14:09 +00:00
Ondřej SurýandOndřej Surý 10d671ae95 Rename MAKE environment variable to MAKE_COMMAND
The environment variable MAKE has been replaced with MAKE_COMMAND,
because overriding MAKE variable also changed the definition of the MAKE
inside the Makefiles, and we want only a single wrapper around the whole
build process.

Previously, setting `MAKE` to `bear make` meant that `bear make` would
be run at every nested make invocation, which messed up the upcoming
automake transition as compile_commands.json would be generated in every
subdirectory instead of just having one central file at the top of the
build tree.

(cherry picked from commit de1a637a69)
2020-03-20 16:13:28 +01:00
Ondřej SurýandOndřej Surý 8fa8ed29c9 Replace dependencies+needs with needs+artifacts in GitLabCI config
All jobs now use solely the newer needs configuration to declare
dependencies between jobs:

    needs:
      - job: <foo>
        artifacts: true

instead of combination of dependencies and needs which is deprecated.
This change completely unbundles the stages (alas the stages still needs
to stay because the job graph has to stay acyclic between the stages).

(cherry picked from commit 66ba808c1b)
2020-03-20 16:13:28 +01:00
Michal Nowak 6975b3a8aa Merge branch 'mnowak/abi-tracker-helper-v9.17.0-v9_11' into 'v9_11'
[v9_11] Bump BIND baseline version for abi-check

See merge request isc-projects/bind9!3271
2020-03-20 12:15:14 +00:00
Michal Nowak ba6ed67545 Bump BIND baseline version for abi-check
(cherry picked from commit 3730d59bf9)
2020-03-20 13:13:45 +01:00
Michal Nowak 1befd980e0 Merge branch 'mnowak/unit-test-debugging-enhancements-v9_11' into 'v9_11'
[v9_11] Enhance unit test debugging

See merge request isc-projects/bind9!3268
2020-03-20 10:43:39 +00:00
Michal Nowak 0603dc862e Enhance unit test debugging
When unit test fails, core file is created. Kyua's 'debug' command can
run GDB on it and provide backtrace. Unfortunately Kyua is picky about
location of these core files we opt to use custom Kyua fork and copy
core files from Kyua working directory to source tree and make it
available in GitLab.

(cherry picked from commit 94fa27e43f)
2020-03-20 11:13:35 +01:00
Matthijs Mekking c17114d132 Merge branch 'v9_11_17-release' into 'v9_11'
Apply 9.11.17 release branch

See merge request isc-projects/bind9!3264
2020-03-20 10:04:46 +00:00
Michał KępieńandMatthijs Mekking 7beca6a4ab Ensure util/check-make-install.in is exported
./configure needs util/check-make-install.in to be present in the source
directory in order to complete successfully.  Make sure this file is
included in source tarballs created from the repository.
2020-03-20 10:32:32 +01:00
Tinderbox UserandMatthijs Mekking 4236979e90 Adjust lib/isc/api version
The libisc LIBINTERFACE bump for 9.11.17 is unnecessary.
A lot of headers were altered but the ABI tool did not report anything.
Trust the ABI tool on this and decrement LIBINTERFACE and increment
LIBREVISION.
2020-03-20 10:32:32 +01:00
Tinderbox UserandMatthijs Mekking bee39b1293 Note 9.11.17 in README 2020-03-20 10:32:32 +01:00
Tinderbox UserandMatthijs Mekking 05ceac542b regen v9_11
Michal caught at the last moment that a CHANGES entry did
not have a GitLab issue/mr reference.  This check was omitted from
the release process documentation.  The wiki is updated and the
CHANGES file is updated in this commit.
2020-03-20 10:32:28 +01:00
Tinderbox UserandMatthijs Mekking d050ec2429 prep 9.11.17
Bumped the version file and added release line in CHANGES.

API files:
- lib/bind9/api:
  No changes because only changes in comments.
- lib/dns/api:
  Increment LIBINTERFACE because of the added field structure in
  dns_struct_update.
- lib/isc/api:
  Increment LIBINTERFACE because of the PKCS#11 replacement.
- lib/isccc/api:
  No changes because no source code changes.
- lib/isccfg/api:
  Increment LIBREVISION because of minor source code changes.
- lib/lwres/api:
  No changes because no source code changes.

I decided no changes to README.md or the release notes were necessary.

Perflab graphs look sane.
2020-03-20 10:31:29 +01:00
Ondřej Surý 05c2c35cdb Merge branch 'ondrej/remove-serve-stale-options-from-v9_11' into 'v9_11'
Remove serve stale options from v9 11

See merge request isc-projects/bind9!3265
2020-03-19 11:18:35 +00:00
Ondřej Surý 6641024bab Revert "arm: document resolver-nonbackoff-tries and resolver-retry-interval"
This reverts commit bedefad22d.
2020-03-19 11:59:38 +01:00
Mark Andrews 0fa64e6682 Merge branch '1679-handle-systems-with-broken-gettimeofday-system-calls' into 'v9_11'
Resolve "Handle systems with broken gettimeofday system calls"

See merge request isc-projects/bind9!3232
2020-03-18 07:20:37 +00:00
Mark Andrews 0ddfa675e4 Just return tv_sec field 2020-03-18 06:36:10 +00:00
Evan Hunt 4b1e020deb Merge branch 'each-lgtm-fixes-v9_11' into 'v9_11'
fix LGTM warnings

See merge request isc-projects/bind9!3250
2020-03-18 00:07:39 +00:00
Ondřej SurýandEvan Hunt 5ae4d3d94a Add C11 localtime_r and gmtime_r shims for Windows
On Windows, C11 localtime_r() and gmtime_r() functions are not
available.  While localtime() and gmtime() functions are already thread
safe because they use Thread Local Storage, it's quite ugly to #ifdef
around every localtime_r() and gmtime_r() usage to make the usage also
thread-safe on POSIX platforms.

The commit adds wrappers around Windows localtime_s() and gmtime_s()
functions.

NOTE: The implementation of localtime_s and gmtime_s in Microsoft CRT
are incompatible with the C standard since it has reversed parameter
order and errno_t return type.

(cherry picked from commit 08f4c7d6c0)
2020-03-17 15:45:35 -07:00
Evan Hunt bdb8e3ad85 silence a warning about unsafe snprintf() call
(cherry picked from commit ec95b84e8d)
2020-03-17 15:42:14 -07:00
Evan Hunt c16c095b32 replace unsafe ctime() and gmtime() function calls
This silences LGTM warnings that these functions are not thread-safe.

(cherry picked from commit 5703f70427)
2020-03-17 15:39:08 -07:00
Evan Hunt beaca3e8db remove or comment empty conditional branches
some empty conditional branches which contained a semicolon were
"fixed" by clang-format to contain nothing. add comments to prevent this.

(cherry picked from commit 735be3b816)
2020-03-17 15:39:03 -07:00
Evan Hunt fa320d03a2 Merge branch '1684-timer-test-build-v9_11' into 'v9_11'
fix a pointer-to-int cast error

See merge request isc-projects/bind9!3248
2020-03-17 20:27:23 +00:00
Evan Hunt 1dbd238c15 fix a pointer-to-int cast error
(cherry picked from commit 6b76646037)
2020-03-17 13:16:07 -07:00
Michał Kępień 6c93fb890d Merge branch 'michal/update-gitlab-ci-to-freebsd-12.1-v9_11' into 'v9_11'
[v9_11] Update GitLab CI to FreeBSD 12.1

See merge request isc-projects/bind9!3241
2020-03-16 19:05:32 +00:00
Michał Kępień e81e1fc458 Move FreeBSD CI jobs to libvirt-based executors
To get rid of the currently used FreeBSD-specific executor, move FreeBSD
CI jobs to libvirt-based executors.  Make the necessary tag and variable
adjustments.

(cherry picked from commit 80618b5378)
2020-03-16 11:40:18 +01:00
Michał Kępień cc39ce5b04 Update GitLab CI to FreeBSD 12.1
Since FreeBSD 12.1 is the current FreeBSD 12.x release, replace FreeBSD
12.0 GitLab CI jobs with their up-to-date counterparts.

(cherry picked from commit 4c68b56246)
2020-03-16 11:40:16 +01:00
Mark Andrews 4f6a696487 Merge branch '1681-compile-error-geoip_test-c-maxminddb-h-file-not-found-v9_11' into 'v9_11'
Add MAXMINDDB_CFLAGS to CINCLUDES

See merge request isc-projects/bind9!3237
2020-03-16 10:02:33 +00:00
Mark Andrews f438d7f0e6 Add MAXMINDDB_CFLAGS to CINCLUDES
(cherry picked from commit 81a80274bd)
2020-03-16 18:53:20 +11:00
Mark Andrews 0ffc3097db Merge branch '1676-address-timing-issue-in-forward-system-test-v9_11' into 'v9_11'
wait for the reply message before checking to avoid false negative.

See merge request isc-projects/bind9!3231
2020-03-16 00:15:37 +00:00
Mark Andrews 614381a936 wait for the reply message before checking to avoid false negative.
Waiting for the reply message will ensure that all messages being
looked for exist in the logs at the time of checking.  When the
test was only waiting for the send message there was a race between
grep and the ns1 instance of named logging that it had seen the
request.

(cherry picked from commit a38a324442)
2020-03-16 10:52:31 +11:00
Mark Andrews 5101eb0268 Merge branch '1655-bind-9-11-5-writes-syntax-errors-to-its-zone-cache-v9_11' into 'v9_11'
Resolve "BIND 9.11.5 writes syntax errors to its zone cache"

See merge request isc-projects/bind9!3227
2020-03-13 05:11:15 +00:00
Mark Andrews c31f909357 Add CHANGES note
(cherry picked from commit c9c59db5b3)
2020-03-13 15:49:44 +11:00
Mark Andrews 4166d06042 Quote zone name so that specials are handled
(cherry picked from commit 59498ce17f)
2020-03-13 15:49:44 +11:00
Mark Andrews be900e9ba7 Pass NUL terminated buffer name to cfg_parse_buffer
(cherry picked from commit 91efc587b2)
2020-03-13 15:49:44 +11:00
Mark Andrews be57cd016c Test reloading of zones with special
(cherry picked from commit ad030332bd)
2020-03-13 15:03:49 +11:00
Mark Andrews f5ef7566f8 Merge branch 'marka-maybe-silence-missing-unlock-v9_11' into 'v9_11'
Silence missing unlock from Coverity.

See merge request isc-projects/bind9!3225
2020-03-13 03:05:33 +00:00
Mark Andrews e62b2b2933 Silence missing unlock from Coverity.
Save 'i' to 'locknum' and use that rather than using
'header->node->locknum' when performing the deferred
unlock as 'header->node->locknum' can theoretically be
different to 'i'.

(cherry picked from commit 8dd8d48c9f)
2020-03-13 13:37:04 +11:00
Mark Andrews 08ce059f2e Merge branch '1652-nslookup-assertion-at-soa_6-c-302-require-rdata-length-0-failed-back-trace-v9_11' into 'v9_11'
Resolve "nslookup: assertion at soa_6.c:302: REQUIRE(rdata->length != 0) failed, back trace"

See merge request isc-projects/bind9!3223
2020-03-13 01:32:54 +00:00
Mark Andrews 0cf8585b81 Check that dig/host/nslookup handle a UPDATE response.
Additionally check that "delete $qname SOA" in the update
reponse doesn't trigger a insertion in nslookup.

(cherry picked from commit 6593cf0b5a)
2020-03-13 12:17:21 +11:00
Mark Andrews b81b37b645 Report opcode mismatch
(cherry picked from commit bb7576cc9b)
2020-03-13 12:17:21 +11:00
Mark Andrews 8609fcd90a turn off best effort processing in host and add the ability to specify the port
(cherry picked from commit 4a7b9dba61)
2020-03-13 12:17:21 +11:00
Mark Andrews 0af5f5a3ec turn off best effort processing in nslookup
(cherry picked from commit d1cb30e747)
2020-03-13 11:49:05 +11:00
Evan Hunt 2d49377a44 Merge branch '864-zone-type-table-in-arm-needs-improvement-v9_11' into 'v9_11'
Resolve "zone type table in ARM needs improvement"

See merge request isc-projects/bind9!3219
2020-03-12 10:01:08 +00:00
Evan Hunt 67f0ab7fb3 build doc 2020-03-12 02:34:12 -07:00
Evan Hunt b460efaf52 improve readability of bibliogrpahy
Change <biblioentry> and <citetitle> sections to improve the readability
of the bibliography sections. Thanks to Sun Guonian.
2020-03-12 02:29:41 -07:00
Mark AndrewsandEvan Hunt ab525066cb use relative widths for zone table 2020-03-12 02:29:25 -07:00
Michal Nowak e12bbaf256 Merge branch 'mnowak/abi-tracker-helper-v9_11' into 'v9_11'
[v9_11] Add API Checker

See merge request isc-projects/bind9!3204
2020-03-10 09:03:17 +00:00
Michal Nowak 14cf92debe Add API Checker
ABI checker tools generate HTML and TXT API compatibility reports of
BIND libraries. Comparison is being done between two bind source trees
which hold built BIND.

In the CI one version is the reference version defined by
BIND_BASELINE_VERSION variable, the latter one is the HEAD of branch
under test.

(cherry picked from commit 49bc08e612)
2020-03-10 09:59:22 +01:00
Evan Hunt 6b82b82e86 Merge branch '1664-double-unlock-v9_11' into 'v9_11'
remove redundant ZONEDB_UNLOCK

See merge request isc-projects/bind9!3199
2020-03-10 00:23:58 +00:00
Evan Hunt fca5137622 remove redundant ZONEDB_UNLOCK
(cherry picked from commit b54454b7c6)
2020-03-09 16:52:58 -07:00
Michał Kępień f324c3b74e Merge branch 'michal/do-not-run-openbsd-system-test-jobs-for-tags-v9_11' into 'v9_11'
[v9_11] Do not run OpenBSD system test jobs for tags

See merge request isc-projects/bind9!3190
2020-03-09 13:36:45 +00:00
Michał Kępień d4c9130891 Do not run OpenBSD system test jobs for tags
OpenBSD virtual machines seem to affected particularly badly by other
activity happening on the host.  This causes trouble around release
time: when multiple tags are pushed to the repository, a large number of
jobs is started concurrently on all CI runners.  In extreme cases, this
causes the system test suite to run for about an hour (!) on OpenBSD
VMs, with multiple tests failing.  We investigated the test artifacts
for all such cases in the past and the outcome was always the same: test
failures were caused by extremely slow I/O on the guest.  We tried
various tricks to work around this problem, but nothing helped.

Given the above, stop running OpenBSD system test jobs for pending BIND
releases to prevent the results of these jobs from affecting the
assessment of a given release's readiness for publication.  This change
does not affect OpenBSD build jobs.  OpenBSD system test jobs will still
be run for scheduled and web-requested pipelines, to make sure we catch
any severe issues with test code on that platform sooner or later.

(cherry picked from commit 7b002cea83)
2020-03-09 14:34:32 +01:00
Mark Andrews 8daed138f7 Merge branch '1628-release-process-failed-to-detect-that-header-file-was-not-installed-v9_11' into 'v9_11'
test installed header files

See merge request isc-projects/bind9!3177
2020-03-06 03:03:24 +00:00
Mark Andrews c8025d8fed test installed header files
(cherry picked from commit a278b6bd84)
2020-03-06 13:23:48 +11:00
Mark Andrews 61365bd65e Merge branch 'marka-install-missing-header-files-v9_11' into 'v9_11'
Fix lists of installed header files

See merge request isc-projects/bind9!3179
2020-03-06 02:18:42 +00:00
Mark Andrews 8fce52189e Fix lists of installed header files 2020-03-06 13:09:47 +11:00
Mark Andrews 6c3e406d2b Merge branch 'marka-sort-AC_CONFIG_FILES-v9_11' into 'v9_11'
sort AC_CONFIG_FILES

See merge request isc-projects/bind9!3170
2020-03-05 22:32:53 +00:00
Mark Andrews 197842c1b7 sort AC_CONFIG_FILES
(cherry picked from commit fd0d4ba948)
2020-03-06 08:54:53 +11:00
Michal Nowak 2fbfaaabd8 Merge branch 'mnowak/respdiff-v9_11' into 'v9_11'
[v9_11] Add respdiff job

See merge request isc-projects/bind9!3166
2020-03-05 14:49:14 +00:00
Michal Nowak 45d59c50df Add respdiff job
This job leverages respdiff test from the private bind-qa repo.

(cherry picked from commit 04f8b65a8f)
2020-03-05 12:24:16 +01:00
Michal Nowak 7edcbf14e9 Merge branch 'mnowak/pkcs11-test-fix-v9_11' into 'v9_11'
[v9_11] Fix "pkcs11" system test

See merge request isc-projects/bind9!3161
2020-03-05 07:37:52 +00:00
Michal Nowak 5cb50baf50 Fix "pkcs11" system test
- Define the SLOT environment variable before starting the test.  This
    variable defaults to 0 and that does not work with SoftHSM 2.

  - The system test expects the PIN environment variable to be set to
    "1234" while bin/tests/prepare-softhsm2.sh sets it to "0000".
    Update bin/tests/prepare-softhsm2.sh so that it sets the PIN to
    "1234".

  - Move contents of bin/tests/system/pkcs11/prereq.sh to
    bin/tests/system/pkcs11/setup.sh as the former was creating a file
    called "supported" that was getting removed by the latter before
    bin/tests/system/pkcs11/tests.sh could access it.

  - Fix typo in "have_ecx".

(cherry picked from commit 100a230e80f01a777b917b135b4bae9a4ac0e8ae)
2020-03-05 07:57:12 +01:00
Michał Kępień 44e11e0cfe Merge branch 'michal/fix-cppcheck-warnings' into 'v9_11'
Fix cppcheck warnings for 9.11

See merge request isc-projects/bind9!3143
2020-03-04 11:42:43 +00:00
Michał Kępień be38f0c33a Fix cppcheck 1.90 warnings
cppcheck 1.90 reports the following false positives for
lib/dns/tests/rbt_serialize_test.c:

    lib/dns/tests/rbt_serialize_test.c:412:12: warning: Either the condition 'base!=NULL' is redundant or there is pointer arithmetic with NULL pointer. [nullPointerArithmeticRedundantCheck]
      p = base + (r % filesize);
               ^
    lib/dns/tests/rbt_serialize_test.c:407:20: note: Assuming that condition 'base!=NULL' is not redundant
      assert_true(base != NULL && base != MAP_FAILED);
                       ^
    lib/dns/tests/rbt_serialize_test.c:405:14: note: Assignment 'base=mmap(NULL,filesize,PROT_READ|PROT_WRITE,0|MAP_PRIVATE,fd,0)', assigned value is 0
      base = mmap(NULL, filesize, PROT_READ|PROT_WRITE,
                 ^
    lib/dns/tests/rbt_serialize_test.c:412:12: note: Null pointer addition
      p = base + (r % filesize);
               ^
    lib/dns/tests/rbt_serialize_test.c:413:12: warning: Either the condition 'base!=NULL' is redundant or there is pointer arithmetic with NULL pointer. [nullPointerArithmeticRedundantCheck]
      q = base + filesize;
               ^
    lib/dns/tests/rbt_serialize_test.c:407:20: note: Assuming that condition 'base!=NULL' is not redundant
      assert_true(base != NULL && base != MAP_FAILED);
                       ^
    lib/dns/tests/rbt_serialize_test.c:405:14: note: Assignment 'base=mmap(NULL,filesize,PROT_READ|PROT_WRITE,0|MAP_PRIVATE,fd,0)', assigned value is 0
      base = mmap(NULL, filesize, PROT_READ|PROT_WRITE,
                 ^
    lib/dns/tests/rbt_serialize_test.c:413:12: note: Null pointer addition
      q = base + filesize;
               ^

This is caused by cppcheck not understanding how cmocka's assert_true()
macro works.  The problem being reported is a false positive: if mmap()
fails, the lines flagged by cppcheck will never be reached.  Address the
problem by suppressing nullPointerArithmeticRedundantCheck warnings for
the affected lines.
2020-03-04 12:41:01 +01:00
Michał Kępień ab4c911629 Fix cppcheck 1.90 warning
cppcheck 1.90 reports the following issue for bin/named/query.c:

    bin/named/query.c:6838:2: warning: %d in format string (no. 3) requires 'int' but the argument type is 'unsigned int'. [invalidPrintfArgType_sint]
     snprintf(mbuf, sizeof(mbuf) - 1,
     ^

Tweak the format specifier for client->query.restarts to address the
problem.
2020-03-04 12:41:01 +01:00
Michał Kępień 2a01bfd851 Fix cppcheck 1.90 warnings
cppcheck 1.90 reports some false positives for lib/dns/client.c:

    lib/dns/client.c:1431:2: warning: Either the condition 'rctx==((void*)0)' is redundant or there is possible null pointer dereference: rctx. [nullPointerRedundantCheck]
     rctx->rdataset = rdataset;
     ^
    lib/dns/client.c:1416:11: note: Assuming that condition 'rctx==((void*)0)' is not redundant
     if (rctx == NULL)
              ^
    lib/dns/client.c:1415:9: note: Assignment 'rctx=isc__mem_get(mctx,sizeof(*rctx),"lib/dns/client.c",1415)', assigned value is 0
     rctx = isc_mem_get(mctx, sizeof(*rctx));
            ^
    lib/dns/client.c:1431:2: note: Null pointer dereference
     rctx->rdataset = rdataset;
     ^
    lib/dns/client.c:1438:2: warning: Either the condition 'rctx==((void*)0)' is redundant or there is possible null pointer dereference: rctx. [nullPointerRedundantCheck]
     rctx->sigrdataset = sigrdataset;
     ^
    lib/dns/client.c:1416:11: note: Assuming that condition 'rctx==((void*)0)' is not redundant
     if (rctx == NULL)
              ^
    lib/dns/client.c:1415:9: note: Assignment 'rctx=isc__mem_get(mctx,sizeof(*rctx),"lib/dns/client.c",1415)', assigned value is 0
     rctx = isc_mem_get(mctx, sizeof(*rctx));
            ^
    lib/dns/client.c:1438:2: note: Null pointer dereference
     rctx->sigrdataset = sigrdataset;
     ^
    lib/dns/client.c:1445:2: warning: Either the condition 'rctx==((void*)0)' is redundant or there is possible null pointer dereference: rctx. [nullPointerRedundantCheck]
     rctx->client = client;
     ^
    lib/dns/client.c:1416:11: note: Assuming that condition 'rctx==((void*)0)' is not redundant
     if (rctx == NULL)
              ^
    lib/dns/client.c:1415:9: note: Assignment 'rctx=isc__mem_get(mctx,sizeof(*rctx),"lib/dns/client.c",1415)', assigned value is 0
     rctx = isc_mem_get(mctx, sizeof(*rctx));
            ^
    lib/dns/client.c:1445:2: note: Null pointer dereference
     rctx->client = client;
     ^
    lib/dns/client.c:1827:2: warning: Either the condition 'ctx==((void*)0)' is redundant or there is possible null pointer dereference: ctx. [nullPointerRedundantCheck]
     ctx->client = client;
     ^
    lib/dns/client.c:1815:10: note: Assuming that condition 'ctx==((void*)0)' is not redundant
     if (ctx == NULL)
             ^
    lib/dns/client.c:1814:8: note: Assignment 'ctx=isc__mem_get(client->mctx,sizeof(*ctx),"lib/dns/client.c",1814)', assigned value is 0
     ctx = isc_mem_get(client->mctx, sizeof(*ctx));
           ^
    lib/dns/client.c:1827:2: note: Null pointer dereference
     ctx->client = client;
     ^

All of them are caused by cppcheck not recognizing the relationship
between isc_mem_get() returning NULL and the result variable being set
to ISC_R_NOMEMORY (with a subsequent jump to a cleanup section).

Move "goto cleanup;" statements into error handling branches to prevent
cppcheck from generating these warnings.
2020-03-04 12:41:01 +01:00
Michał Kępień ae7c0cca89 Fix cppcheck 1.89 warnings
cppcheck 1.89 enabled certain value flow analysis mechanisms [1] which
trigger null pointer dereference false positives that were previously
not reported.  It seems that cppcheck no longer treats at least some
REQUIRE() assertion failures as fatal, so add extra assertion macro
definitions to lib/isc/include/isc/util.h that are only used when the
CPPCHECK preprocessor macro is defined; these definitions make cppcheck
1.89 behave as expected.

There is an important requirement for these custom definitions to work:
cppcheck must properly treat abort() as a function which does not
return.  In order for that to happen, the __GNUC__ macro must be set to
a high enough number (because system include directories are used and
system headers compile attributes away if __GNUC__ is not high enough).
__GNUC__ is thus set to the major version number of the GCC compiler
used, which is what that latter does itself during compilation.

[1] https://github.com/danmar/cppcheck/commit/aaeec462e6d96bb70c2b1cf030979d09e2d7c959

(cherry picked from commit abfde3d543)
2020-03-04 12:41:01 +01:00
Mark Andrews 2cc370f4c5 Merge branch '1656-masterformat-system-test-failed-missing-sleep-1-v9_11' into 'v9_11'
properly wait for zone to be loaded

See merge request isc-projects/bind9!3154
2020-03-04 07:41:32 +00:00
Mark Andrews 5c54402889 properly wait for zone to be loaded
(cherry picked from commit 0abcface49)
2020-03-04 18:17:08 +11:00
Mark Andrews 5b23aebb5e Merge branch 'marka-check-touched-v9_11' into 'v9_11'
Marka check touched v9 11

See merge request isc-projects/bind9!3149
2020-03-03 22:41:06 +00:00
Mark Andrews ae311b8234 Add CHANGES entry
(cherry picked from commit 64474db14e)
2020-03-04 09:20:45 +11:00
Mark Andrews fe03f7e9c8 Restart zone maintenance if it had been stalled.
(cherry picked from commit f171347b5f)
2020-03-04 09:20:44 +11:00
Mark Andrews e7a486be25 Check inline master zones that are touched reload correctly.
(cherry picked from commit 50e079d6c3)
2020-03-04 09:20:40 +11:00
Mark Andrews 18ec83cf23 Merge branch '1627-call-set_resigntime-and-zone_settimer-v9_11' into 'v9_11'
Resolve "inline re-signing stops"

See merge request isc-projects/bind9!3139
2020-03-03 05:56:15 +00:00
Mark Andrews 63f845b716 add release note entry
(cherry picked from commit 23ce0f32e5)
2020-03-03 16:36:42 +11:00
Mark Andrews 463a9e385c Add CHANGES note
(cherry picked from commit 905549f061)
2020-03-03 16:29:20 +11:00
Ondřej SurýandMark Andrews 14d4bbea61 Adjust lock/unlock in zone_rekey()
(cherry picked from commit aaaa7e67fa)
2020-03-03 16:28:42 +11:00
Mark Andrews 6bf56cdf4d Ensure that resigintime and the zone timer are set
(cherry picked from commit a6626594aa)
2020-03-03 16:28:41 +11:00
Matthijs MekkingandMark Andrews ef99d6bda0 Add more zone locks
Add more zone locks around code that touches zone timer setting
in failure modes.

(cherry picked from commit 143d1c9767)
2020-03-03 16:28:37 +11:00
Mark Andrews 0536bfc91a Always call set_resigntime with the zone lock held
(cherry picked from commit 7212961849)
2020-03-03 16:17:34 +11:00
Mark Andrews 43ff3b3ad5 Always call zone_settimer()
zone_needdump() could potentially not call zone_settimer() so
explitly call zone_settimer() as zone->resigntime could have
gone backward.

(cherry picked from commit 5ec57f31b0)
2020-03-03 16:17:30 +11:00
Mark Andrews bfef5ce9bc Call set_resigntime() in receive_secure_serial()
With RRSIG records no longer being signed with the full
sig-validity-interval we need to ensure the zone->resigntime
as it may need to be set to a earlier time.

(cherry picked from commit 5d1611afdc)
2020-03-03 16:16:38 +11:00
Ondřej Surý 3df6760518 Merge branch 'ondrej/use-pkg-config-for-libxml2-v9_11' into 'v9_11'
use pkg-config for libxml2 (v9.11)

See merge request isc-projects/bind9!3118
2020-03-02 14:33:49 +00:00
Ondřej Surý 2def018af7 Add release notes for pkg-config requirement for libxml2 2020-03-02 15:07:18 +01:00
Ondřej SurýandOndřej Surý 7110ceb880 Use pkg-config for --with-libxml2=auto/yes
The downstream distributors of BIND 9 (Debian in this case) are in
process of removing xml2-config command from the libxml2-dev package
(see Debian Bug #949056 for details).  The removal of the script will
make BIND 9 to fail to build from the source when --with-libxml2=yes is
specified or not link with libxml2 when --with-libxml2=auto is specified
and then fail ABI changes (Debian Bug #949056).

When --with-libxml2=<path>, the script checks for <path>/bin/xml2-config
and uses the specified path to link with libxml2. This has been kept to
retain backwards compatibility with systems that does not ship
pkg-config.
2020-03-02 15:07:18 +01:00
Ondřej Surý 6050c766de Merge branch '414-use-p11-kit-headers-v9_11' into 'v9_11'
Resolve "Legal issue with pkcs11 headers"

See merge request isc-projects/bind9!3133
2020-03-02 10:29:36 +00:00
Ondřej Surý 5edc8b5338 Use standard PKCS#11 standard error codes instead of custom error codes
* CKR_CRYPTOKI_ALREADY_INITIALIZED: This value can only be returned by
  `C_Initialize`. It means that the Cryptoki library has already been
  initialized (by a previous call to `C_Initialize` which did not have a
  matching `C_Finalize` call).

* CKR_FUNCTION_NOT_SUPPORTED: The requested function is not supported by this
  Cryptoki library. Even unsupported functions in the Cryptoki API should have a
  "stub" in the library; this stub should simply return the value
  CKR_FUNCTION_NOT_SUPPORTED.

* CKR_LIBRARY_LOAD_FAILED: The Cryptoki library could not load a dependent
  shared library.

(cherry picked from commit f6922d6e78)
2020-03-02 11:01:05 +01:00
Ondřej SurýandOndřej Surý 4b9cdbaf7e Replace the OASIS PKCS#11 header file with one from p11-kit
The OASIS pkcs11.h header has a restrictive license.  Replace the
pkcs11.h pkcs11f.h and pkcs11t.h headers with pkcs11.h from p11-kit.

For source distribution, the license for the OASIS headers itself
doesn't pose any licensing problem when combined with MPL license, but
it possibly creates problem for downstream distributors of BIND 9.

(cherry picked from commit c47fad2431)
2020-03-02 10:43:45 +01:00
Mark Andrews 392430c6dc Merge branch '1638-rrsig-soa-and-re-signing-v9_11' into 'v9_11'
Resolve "RRSIG(SOA) and re-signing."

See merge request isc-projects/bind9!3129
2020-02-27 23:31:02 +00:00
Mark Andrews a32d952d9d capture named-journalprint output
(cherry picked from commit 88c828cb9f)
2020-02-28 10:14:02 +11:00
Mark Andrews 317e0cf4c9 sort RRSIG(SOA) to be last of RRSIGs with a common re-resign time
(cherry picked from commit a24fd55836)
2020-02-28 10:13:57 +11:00
Mark Andrews 51f3d3781e use the full sig-validity-interval for RRSIG(SOA)
(cherry picked from commit 660dc3eba7)
2020-02-28 10:10:26 +11:00
Evan Hunt 9fe133ceed Merge branch '1632-spelling-v9_11-take2' into 'v9_11'
fix additional spelling errors

See merge request isc-projects/bind9!3115
2020-02-25 06:27:50 +00:00
Evan Hunt 191b616579 fix additional spelling errors 2020-02-24 22:04:43 -08:00
Evan Hunt e09f0856f0 Merge branch '1632-spelling-v9_11' into 'v9_11'
fix spelling errors reported by Fossies.

See merge request isc-projects/bind9!3112
2020-02-21 23:02:26 +00:00
Evan Hunt e63223332c fix spelling errors reported by Fossies. 2020-02-21 14:09:59 -08:00
Mark Andrews 75d70433e4 Merge branch 'marka-fix-signature-test-v9_11' into 'v9_11'
Fix code to generate the test signatues.

See merge request isc-projects/bind9!3106
2020-02-21 07:20:38 +00:00
Mark Andrews 4ecf3b8961 fixup! Fix code to generate the test signatues. 2020-02-21 18:10:44 +11:00
Mark Andrews 22422a2f5d Fix code to generate the test signatues.
* ctx needs to be destroyed before it is regenerated.
* emit the name of the signature to be replaced.
* cleanup memory before asserting so post longjump doesn't detect a
  memory leak.
* comment code.

(cherry picked from commit 3a8c8a2a31)
2020-02-21 17:45:47 +11:00
Michał Kępień 67451d5502 Merge branch 'michal/make-a-sed-script-in-doc-arm-makefile.in-portable-v9_11' into 'v9_11'
[v9_11] Make a sed script in doc/arm/Makefile.in portable

See merge request isc-projects/bind9!3099
2020-02-20 11:28:32 +00:00
Michał Kępień 2b07349098 Make a sed script in doc/arm/Makefile.in portable
BSD sed does not recognize \s as a whitespace matching token.  Make the
sed script in doc/arm/Makefile.in which ensures GitLab identifiers are
not split across lines portable by replacing \s with [[:space:]].

(cherry picked from commit b25e6b51f6)
2020-02-20 12:24:28 +01:00
Michał Kępień 7eb9446e24 Merge branch 'michal/increase-lifetime-of-docs-sid-amd64-artifacts-v9_11' into 'v9_11'
[v9_11] Increase lifetime of docs:sid:amd64 artifacts

See merge request isc-projects/bind9!3094
2020-02-20 10:57:38 +00:00
Michał Kępień 1728dfaae2 Increase lifetime of docs:sid:amd64 artifacts
Artifacts generated by the docs:sid:amd64 job need to be retained longer
than for other jobs as they are used for building bind.isc.org contents.
If these artifacts are removed too quickly, pipelines in the pages/bind
GitLab project start failing, preventing content updates from being
published.  Increase lifetime of the relevant job artifacts to prevent
this from happening.

(cherry picked from commit 9751ba5a75)
2020-02-20 11:53:30 +01:00
Tinderbox User 6afa4a49bc Merge branch 'prep-release' into v9_11 2020-02-12 15:42:40 +00:00
Tinderbox User aa55ef6c43 prep 9.11.16 2020-02-12 15:37:33 +00:00
Michal Nowak 9a18bab7f6 Merge branch 'mnowak/coverity-disable-web-tag-v9_11' into 'v9_11'
[v9_11] Run Coverity Scan only when specific variables are present

See merge request isc-projects/bind9!3056
2020-02-12 15:00:33 +00:00
Michal Nowak d28e40b05d Run Coverity Scan only when specific variables are present
Submissions to Coverity Scan should be limited to those originated from
release branches and only from a specific schedule which holds
COVERITY_SCAN_PROJECT_NAME and COVERITY_SCAN_TOKEN variables.

(cherry picked from commit 48530aa21395414b0f9788ea5ab158b2b09ab977)
2020-02-12 15:00:32 +00:00
Michał Kępień 4bf6c17885 Merge branch 'michal/prepare-release-notes-for-bind-9.11.16' into 'v9_11'
Prepare release notes for BIND 9.11.16

See merge request isc-projects/bind9!3052
2020-02-12 13:18:59 +00:00
Michał Kępień f9c164b08b Add release notes section for BIND 9.11.16 2020-02-12 13:58:01 +01:00
Michał Kępień 44ee969186 Merge branch 'michal/minor-README-tweaks-v9_11' into 'v9_11'
[v9_11] Minor README tweaks

See merge request isc-projects/bind9!3049
2020-02-12 10:39:09 +00:00
Michał Kępień 3ac942e5db Minor CHANGES tweak
(cherry picked from commit a0349b18e0)
2020-02-12 11:29:38 +01:00
Stephen MorrisandMichał Kępień 0e1b8415a2 Minor README tweaks
(cherry picked from commit bc539d48e7)
2020-02-12 11:29:23 +01:00
Michal Nowak 7bfbf10585 Merge branch 'mnowak/coverity2-v9_11' into 'v9_11'
[v9_11] Add Coverity Scan to CI

See merge request isc-projects/bind9!3047
2020-02-12 10:15:39 +00:00
Michal Nowak 155bd283bb Add Coverity Scan to CI
This job requires two CI variables to be set:

  - COVERITY_SCAN_PROJECT_NAME: project name, which is associated with
    the BIND branch for which this job is executed, e.g. "bind-master",

  - COVERITY_SCAN_TOKEN: project token.

(cherry picked from commit e8392e4bb911366b65cdc461ec907d9e1a68bf54)
2020-02-12 10:15:39 +00:00
Mark Andrews 43b7593583 Merge branch '1602-rpz-system-test-failed-because-protoype-responses-timed-out-v9_11' into 'v9_11'
spin waiting for prototype dig responses

See merge request isc-projects/bind9!3044
2020-02-12 09:18:33 +00:00
Mark Andrews a8ee4f9923 spin waiting for prototype dig responses
(cherry picked from commit c38752b07c)
2020-02-12 19:45:34 +11:00
Mark Andrews 919199c814 Merge branch '1616-autosign-not-waiting-long-enough-for-zone-to-be-signed-v9_11-and-maybe-others' into 'v9_11'
Resolve "autosign not waiting long enough for zone to be signed v9_11 and maybe others"

See merge request isc-projects/bind9!3039
2020-02-12 08:06:03 +00:00
Mark Andrews c99ad5c8c7 wait for apex NSEC3 to be generated 2020-02-12 12:47:09 +11:00
Ondřej Surý 58c93bf04c Merge branch '1428-possible-data-race-in-rbtdb-happens-occasionally-on-ppc64le-v9_14-v9_11' into 'v9_11'
Resolve "Possible data race in rbtdb, happens occasionally on ppc64le"

See merge request isc-projects/bind9!3037
2020-02-11 22:06:53 +00:00
Ondřej SurýandOndřej Surý f71a8d1120 Convert all atomic operations in isc_rwlock to sequentially-consistent ordering
The memory ordering in the rwlock was all wrong, I am copying excerpts
from the https://en.cppreference.com/w/c/atomic/memory_order#Relaxed_ordering
for the convenience of the reader:

  Relaxed ordering

  Atomic operations tagged memory_order_relaxed are not synchronization
  operations; they do not impose an order among concurrent memory
  accesses. They only guarantee atomicity and modification order
  consistency.

  Sequentially-consistent ordering

  Atomic operations tagged memory_order_seq_cst not only order memory
  the same way as release/acquire ordering (everything that
  happened-before a store in one thread becomes a visible side effect in
  the thread that did a load), but also establish a single total
  modification order of all atomic operations that are so tagged.

Which basically means that we had no or weak synchronization between
threads using the same variables in the rwlock structure.  There should
not be a significant performance drop because the critical sections were
already protected by:

  while(1) {
    if (relaxed_atomic_operation) {
      break;
    }
    LOCK(lock);
    if (!relaxed_atomic_operation) {
      WAIT(sem, lock);
    }
    UNLOCK(lock)l
  }

I would add one more thing to "Don't do your own crypto, folks.":

  - Also don't do your own locking, folks.

As part of this commit, I have also cleaned up the #ifdef spaghetti,
and fixed the isc_atomic API usage.
2020-02-11 21:20:14 +01:00
Ondřej SurýandOndřej Surý 542517b194 Make isc_rwlock.c thread-safe
The ThreadSanitizer found several possible data races in our rwlock
implementation.  This commit convert .spins and .write_granted fields
to atomic.

(cherry picked from commit 1da0994ea4)
2020-02-11 20:05:51 +01:00
Mark Andrews 4e739538d6 Merge branch 'marka-coverity-v9_11' into 'v9_11'
Address Coverity warnings in v9 11

See merge request isc-projects/bind9!3032
2020-02-11 14:07:12 +00:00
Mark Andrews 8d0b59a5f5 Silence Coverity FORWARD_NULL warning
CID 1458400 (#1 of 1): Dereference after null check
	(FORWARD_NULL) 14. var_deref_model: Passing null pointer
	nxt->typebits to mem_tobuffer, which dereferences it. [show
	details]

219        return (mem_tobuffer(target, nxt->typebits, nxt->len));
2020-02-11 13:02:08 +00:00
Mark Andrews eeaffbe07d Silence Coverity CHECKED_RETURN warnings
CID 1458403 (#1 of 1): Unchecked return value (CHECKED_RETURN)
	8. check_return: Calling isc_socket_recv without checking
	return value (as is done elsewhere 14 out of 17 times).

121        isc_socket_recv(sock, &dev->region, 1, task, my_recv, event->ev_arg);

	CID 1458402 (#1 of 1): Unchecked return value (CHECKED_RETURN)
	2. check_return: Calling isc_socket_recv without checking
	return value (as is done elsewhere 14 out of 17 times).

149        isc_socket_recv(sock, &dev->region, 1, task, my_recv, event->ev_arg);

	CID 1458401 (#1 of 1): Unchecked return value (CHECKED_RETURN)
	6. check_return: Calling isc_socket_recv without checking
	return value (as is done elsewhere 14 out of 17 times).

226                isc_socket_recv(dev->newsocket, &region, 1,
227                                newtask, my_recv, event->ev_arg);
2020-02-11 13:02:08 +00:00
Ondřej Surý 5f90f2ac6c Merge branch 'ondrej/remove-OpenSSL-engine-specification-in-label-v9_11' into 'v9_11'
[v9_11] Cleanup support for specifying PKCS#11 engine as part of the label

See merge request isc-projects/bind9!3034
2020-02-11 10:51:42 +00:00
Ondřej SurýandMichał Kępień ce2198c7c2 Remove reference to prepending label with engine in manpage
(cherry picked from commit 33fa3d5eb1)
2020-02-11 10:42:35 +01:00
Ondřej SurýandMichał Kępień cb2dde567c Cleanup support for specifying PKCS#11 engine as part of the label
The code for specifying OpenSSL PKCS#11 engine as part of the label
(e.g. -l "pkcs11:token=..." instead of -E pkcs11 -l "token=...")
was non-functional.  This commit just cleans the related code.

(cherry picked from commit a5c87d9d18)
2020-02-11 10:42:33 +01:00
Evan Hunt 1c76f9f5b3 Merge branch '932-doc-query-error-logging-v9_11' into 'v9_11'
improve documentation of query logging

See merge request isc-projects/bind9!3028
2020-02-09 00:09:03 +00:00
Evan Hunt f68d30bc60 improve documentation of query logging
(cherry picked from commit 21bb9fa77f)
2020-02-08 16:08:39 -08:00
Ondřej Surý 942224e8bc Merge branch '1560-isc_httpd-and-isc_httpdmgr-structures-are-not-reference-counted-and-magic-v9_11' into 'v9_11'
Resolve "isc_httpd and isc_httpdmgr structures are not reference counted and magic"

See merge request isc-projects/bind9!2940
2020-02-08 20:21:29 +00:00
Ondřej Surý 699bda8de7 Clean the ENTER/EXIT/NOTICE debugging from production code
(cherry picked from commit 5b448996e5)
2020-02-08 11:46:37 -08:00
Ondřej Surý f2c5bdda21 Refactor parts of isc_httpd and isc_httpd for better readability and safety
(cherry picked from commit 9643a62dd5)
2020-02-08 11:46:37 -08:00
Mark AndrewsandOndřej Surý e5522d114b add ISC_MAGIC and reference counting to httpd and httpdmgr
(cherry picked from commit 7c3f419d66)
2020-02-08 11:37:25 -08:00
Ondřej Surý 5323ed870b Merge branch 'cppcheck-1.90-warnings-v9_11' into 'v9_11'
Cppcheck 1.90 warnings v9 11

See merge request isc-projects/bind9!3001
2020-02-08 14:48:40 +00:00
Matthijs MekkingandOndřej Surý ea477e114b mem.c: delay assignment until after REQUIRE 2020-02-08 06:32:42 -08:00
Matthijs MekkingandOndřej Surý c8959c0e3a Check for basic blocks not NULL 2020-02-08 06:32:42 -08:00
Matthijs MekkingandOndřej Surý 4af46a8574 rdata: delay assignment until after REQUIRE 2020-02-08 06:32:42 -08:00
Matthijs MekkingandOndřej Surý 86184dfb68 Suppress cppcheck false positive nullPointerRedundantCheck 2020-02-08 06:32:42 -08:00
Ondřej Surý b54eeb1231 Suppress unknownMacro directive which is currently broken with OpenSSL
(cherry picked from commit 2868eafc46)
2020-02-08 06:32:42 -08:00
Mark AndrewsandOndřej Surý 74c142c972 skip if first is NULL
(manually picked from 704b9ee9d0)
2020-02-08 06:32:42 -08:00
Mark AndrewsandOndřej Surý 39cb4dc6c9 delay assignment until after REQUIRE
(cherry picked from commit c65c06301c)
2020-02-08 06:32:42 -08:00
Mark AndrewsandOndřej Surý 12cda20aa2 simplify ISC_LIKELY/ISC_UNLIKELY for CPPCHECK
(cherry picked from commit 6c2e138d7a)
2020-02-08 06:32:42 -08:00
Mark AndrewsandOndřej Surý 26caad3c12 simplify RUNTIME_CHECK for cppcheck
(cherry picked from commit 668a972d1e)
2020-02-08 06:32:42 -08:00
Mark Andrews 3f68ed9ad0 Merge branch '1596-echo_ic-should-be-used-for-continuations-v9_11' into 'v9_11'
Resolve "echo_ic should be used for continuations."

See merge request isc-projects/bind9!3022
2020-02-07 22:06:05 +00:00
Mark Andrews aef2c41e79 indent failed: descriptions
(cherry picked from commit 1e4773f121)
2020-02-08 08:47:42 +11:00
Mark Andrews ffac1eb5e6 indent some test descriptions/continuation
(cherry picked from commit ec95bc6f2c)
2020-02-08 08:44:43 +11:00
Mark Andrews f63bfc7928 remove space before 'failed'
(cherry picked from commit 0d5ec0c7dc)
2020-02-08 08:42:04 +11:00
Mark Andrews 4f6083138e ident continuation of test descriptions
(cherry picked from commit 059b16b991)
2020-02-08 08:42:04 +11:00
Mark Andrews 41173c0af9 remove space from before 'failed'; count errors
(cherry picked from commit 879c63b573)
2020-02-08 08:41:59 +11:00
Mark Andrews b700eb672f Merge branch '1559-dnssec-system-test-failed-reload-of-root-server-not-completed-in-time-v9_11' into 'v9_11'
wait for root server to complete reloading

See merge request isc-projects/bind9!3019
2020-02-07 21:09:02 +00:00
Mark Andrews 85af984040 wait for root server to complete reloading
(cherry picked from commit 784e64f238)
2020-02-07 14:14:18 +00:00
Mark Andrews 319efe25b3 Merge branch '1599-autosign-conversion-from-nsec3-to-nsec-can-take-more-than-2-seconds-v9_11' into 'v9_11'
wait a short while for no NSEC3PARAM

See merge request isc-projects/bind9!3017
2020-02-07 14:08:40 +00:00
Mark Andrews 870bb60456 wait a short while for no NSEC3PARAM
(cherry picked from commit e378241324)
2020-02-08 00:43:23 +11:00
Michał Kępień 7b91eea23c Merge branch 'marka-coverity-dns-db-find-v9_11' into 'v9_11'
Marka coverity dns db find v9 11

See merge request isc-projects/bind9!3015
2020-02-07 11:18:40 +00:00
Mark Andrews 2543bfe0d2 Fix indenting.
(cherry picked from commit 98d5109e82)
2020-02-07 21:43:57 +11:00
Mark Andrews 9ea647f7e9 Correct logged function name.
(cherry picked from commit 550bbee427)
2020-02-07 21:43:57 +11:00
Michał Kępień ff47e46b91 Merge branch 'michal/fix-the-dnssec-system-test-on-windows-v9_11' into 'v9_11'
[v9_11] Fix the "dnssec" system test on Windows

See merge request isc-projects/bind9!3013
2020-02-06 14:20:58 +00:00
Michał Kępień 9d5d2c9d20 Fix the "dnssec" system test on Windows
Make sure carriage return characters are stripped from awk input to
enable the "dnssec" system test to pass on Windows.

(cherry picked from commit 2f694f0b77)
2020-02-06 15:19:22 +01:00
Matthijs Mekking dc68067388 Merge branch '914-forwarders-port-documentation-v9_11' into 'v9_11'
Document forwarders config port and dscp param

See merge request isc-projects/bind9!3009
2020-02-06 09:40:00 +00:00
Matthijs Mekking 8585624733 Document forwarders config port and dscp param
(cherry picked from commit be3a11029a)
2020-02-06 10:13:45 +01:00
Michal Nowak 0fa51cefad Merge branch 'mnowak/windows-raise-port-range-v9_11' into 'v9_11'
[v9_11] Windows: Prevent tools from clashing with named in system tests

See merge request isc-projects/bind9!3003
2020-02-05 11:07:33 +00:00
Michal Nowak 0e284831ce Windows: Prevent tools from clashing with named in system tests
In system tests on Windows tool's local port can sometimes clash with
'named'. On Unix the system is poked for the minimal local port,
otherwise is set to 32768 as a sane minimum. For Windows we don't
poke but set a hardcoded limit; this change aligns the limit with
Unix and changes it to 32768.

(cherry picked from commit ed7fe5fae3b22d136f0a5a92ea3b67536b10a5ce)
2020-02-05 11:07:33 +00:00
Michał Kępień 69efd2e77d Merge branch '1305-update-gitlab-ci-to-openbsd-6.6-v9_11' into 'v9_11'
[v9_11] Update GitLab CI to OpenBSD 6.6

See merge request isc-projects/bind9!2995
2020-02-04 10:46:25 +00:00
Michał Kępień f36b39adc2 Update GitLab CI to OpenBSD 6.6
Since OpenBSD 6.6 is the current OpenBSD release, replace OpenBSD 6.5
GitLab CI jobs with their up-to-date counterparts.

As CI jobs for OpenBSD 6.6 will be run by a generalized libvirt executor
rather than an OpenBSD-specific one, make the necessary tag and variable
adjustments as well.

(cherry picked from commit 99ed3a0e13)
2020-02-04 11:44:32 +01:00
Evan Hunt 6aa4b590ca Merge branch '1592-catz-filename-v9_11' into 'v9_11'
Resolve "catalog zones fail if a zone name contains a slash"

See merge request isc-projects/bind9!2993
2020-02-04 06:00:00 +00:00
Evan Hunt a4021838de CHANGES
(cherry picked from commit 7a002c7ece)
2020-02-03 19:46:21 -08:00
Mark AndrewsandEvan Hunt c02d947772 don't swallow backslash characters in test output
(cherry picked from commit fc4e44bd37)
2020-02-03 19:46:17 -08:00
Mark AndrewsandEvan Hunt a68a187edf test all the scenarios for hashed filenames together
(cherry picked from commit 8745043a86)
2020-02-03 19:30:35 -08:00
Evan Hunt edee4f93c5 Correctly handle catalog zone entries containing slashes
- Add quotes before and after zone name when generating "addzone"
  input so avoid "unexpected token" errors.
- Use a hex digest for zone filenames when the zone or view name
  contains a slash.
- Test with a domain name containing a slash.
- Incidentally added 'catzhash.py' to contrib/scripts to generate
  hash labels for catalog zones, as it was needed to write the test.

(cherry picked from commit dba0163dac)
2020-02-03 19:23:37 -08:00
Michal Nowak 57050ea8d1 Merge branch 'mnowak/drop-kyua-report-verbose-option-v9_11' into 'v9_11'
[v9_11] Drop kyua report's --verbose option

See merge request isc-projects/bind9!2983
2020-01-31 09:14:33 +00:00
Michal Nowak 145f754fc4 Drop kyua report's --verbose option
It prints far more than needed.

(cherry picked from commit 5d14ed8465ccb1cb35bdbdeba2e0143b62b5455c)
2020-01-31 09:14:33 +00:00
Mark Andrews fe6307450b Merge branch '1554-cds-cdnskey-consistency-checks-don-t-work-with-deletion-records-v9_11' into 'v9_11'
Resolve "CDS / CDNSKEY consistency checks don't work with deletion records"

See merge request isc-projects/bind9!2978
2020-01-31 00:57:52 +00:00
Mark Andrews f9390767f6 add CHANGES
(cherry picked from commit 272a31f758)
2020-01-31 11:33:27 +11:00
Mark Andrews f72c0b9257 style
(cherry picked from commit 279f6b01de)
2020-01-31 11:33:27 +11:00
Mark Andrews 1da7fef048 use anonomous constants
(cherry picked from commit 02c2fc5ad3)
2020-01-31 11:33:27 +11:00
Mark Andrews 3732485b61 use enum
(cherry picked from commit 7c0d9dac9f)
2020-01-31 11:33:27 +11:00
Mark Andrews 1c2b1add66 return the correct error code for the type being checked
(cherry picked from commit a09c464a20)
2020-01-31 11:33:27 +11:00
Mark Andrews 271f7959d2 add more CDS / CDNSKEY deletion record tests
(cherry picked from commit d159fdf25d)
2020-01-31 11:33:27 +11:00
Mark Andrews baff08ba18 check that a CDNSKEY deletion record is accepted
(cherry picked from commit f91b3a69ce)
2020-01-31 11:33:27 +11:00
Mark Andrews 047e003877 handle CDS deletion record in consistancy checks
(cherry picked from commit 0adb4b25d3)
2020-01-31 11:23:48 +11:00
Mark Andrews ccab27b073 add final 'c' to 'badcache.c' in Makefile.in
(cherry picked from commit 68a360772f)
2020-01-31 11:23:47 +11:00
Michał Kępień 430555e726 Merge branch 'michal/list-atypical-failures-in-system-test-summary-v9_11' into 'v9_11'
[v9_11] List atypical failures in system test summary

See merge request isc-projects/bind9!2975
2020-01-29 14:43:07 +00:00
Michał Kępień bd6bc659c2 List atypical failures in system test summary
Each system test can be marked as failed not only due to some tested
component(s) not behaving as expected, but also because of core dumps,
assertion failures, and/or ThreadSanitizer reports being found among its
artifacts.  Make the system test summary list the tests which exhibit
such atypical symptoms to more clearly present the nature of problems
found.

(cherry picked from commit a8836b381f)
2020-01-29 14:51:00 +01:00
Mark Andrews 9df0d64441 Merge branch '1508-case-system-test-failed-v9_11' into 'v9_11'
wait longer for dynamic zone to be transfered

See merge request isc-projects/bind9!2972
2020-01-28 23:04:21 +00:00
Mark Andrews 173b8216ab wait longer for dynamic zone to be transfered
(cherry picked from commit 7b0ba6eb10)
2020-01-29 08:25:08 +11:00
Evan Hunt aa8b32efa9 Merge branch 'each-merge-doc-v9_11_15' into 'v9_11'
merge doc from 9.11.15 release

See merge request isc-projects/bind9!2963
2020-01-27 22:41:32 +00:00
Tinderbox UserandEvan Hunt 6b5916325f regen v9_11 2020-01-27 11:10:16 -08:00
Tinderbox UserandEvan Hunt 296ccbf479 prep 9.11.15
Update the API files.
- lib/dns:
  - struct resolver has added elements, this is an interface change
    and thus LIBINTERFACE is incremented, and LIBREVISION is reset.
  - Since this also means an interface change since the last public
    release, also reset LIBAGE.
- lib/isc:
  - The library source code changed, so increment LIBREVISION.
- lib/isccfg:
  - The library source code changed, so increment LIBREVISION.

Update other files:
- No changes needed to the README, this is a small bugfix release.
- Fix a bad version xml:id in the release notes.
2020-01-27 11:10:16 -08:00
Mark Andrews 849c88e8fc Merge branch '1579-dnstap-system-test-appears-to-be-timing-sensitive-v9_11' into 'v9_11'
Resolve "dnstap system test appears to be timing sensitive"

See merge request isc-projects/bind9!2959
2020-01-23 21:59:56 +00:00
Mark Andrews 772be0174a wait for the ./NS lookup to complete
(cherry picked from commit 9b6df37303)
2020-01-24 08:20:32 +11:00
Mark Andrews a262ff515b check that all servers have finished loading before beginging tests
(cherry picked from commit 4a992c7a18)
2020-01-24 08:20:31 +11:00
Mark Andrews 20716074e9 Merge branch 'marka-signing-clear-notify-v9_11' into 'v9_11'
Send NOFITY messages after deleting private-type records.

See merge request isc-projects/bind9!2954
2020-01-23 13:31:58 +00:00
Tony FinchandMark Andrews ec499f7165 Send NOFITY messages after deleting private-type records.
The `rndc signing -clear` command cleans up the private-type records
that keep track of zone signing activity, but before this change it
did not tell the secondary servers that the zone has changed.

(cherry picked from commit f3f7b7df5d)
2020-01-24 00:03:56 +11:00
Evan Hunt 640ff5aca3 Merge branch '1540-bind-aborts-when-queried-for-non-existing-domain-in-chaos-class-v9_11' into 'v9_11'
Resolve "bind 9.14.8 and 9.14.9 aborts when queried for non-existing domain in chaos class"

See merge request isc-projects/bind9!2949
2020-01-22 21:36:25 +00:00
Evan Hunt 03cc8de5a2 CHANGES
(cherry picked from commit 42e1fb8322)
2020-01-22 13:17:57 -08:00
Diego FronzaandEvan Hunt b3acca3107 Fixed crash when querying for non existing domain in chaos class
Function dns_view_findzonecut in view.c wasn't correctly handling
classes other than IN (chaos, hesiod, etc) whenever the name being
looked up wasn't in cache or in any of the configured zone views' database.

That resulted in a NULL fname being used in resolver.c:4900, which
in turn was triggering abort.

(cherry picked from commit 85555f29d7)
2020-01-22 13:08:52 -08:00
Mark Andrews 2f5c441181 Merge branch 'marka-Psync-future-v9_14-v9_11' into 'v9_11'
dnssec: do not publish CDS records when -Psync is in the future

See merge request isc-projects/bind9!2938
2020-01-22 01:42:38 +00:00
Mark Andrews 9787ce6054 dnssec: do not publish CDS records when -Psync is in the future
This is a bug I encountered when trying to schedule an algorithm
rollover. My plan, for a zone whose maximum TTL is 48h, was to sign
with the new algorithm and schedule a change of CDS records for more
than 48 hours in the future, roughly like this:

    $ dnssec-keygen -a 13 -fk -Psync now+50h $zone
    $ dnssec-keygen -a 13 $zone
    $ dnssec-settime -Dsync now+50h $zone_ksk_old

However the algorithm 13 CDS was published immediately, which could
have made the zone bogus.

To reveal the bug using the `smartsign` test, this change just adds a
KSK with all its times in the future, so it should not affect the
existing checks at all. But the final check (that there are no CDS or
CDSNSKEY records after -Dsync) fails with the old `syncpublish()`
logic, because the future key's sync records appear early. With the
new `syncpublish()` logic the future key does not affect the test, as
expected, and it now passes.

(cherry picked from commit 4227b7969b)
(cherry picked from commit 2db5a2539a)
2020-01-22 12:19:01 +11:00
Michal Nowak d9e733b2c3 Merge branch 'mnowak/enhance_unit_test_debugging-v9_11' into 'v9_11'
[v9_11] Omit spurious string from unit test debugging efforts

See merge request isc-projects/bind9!2937
2020-01-21 17:50:34 +00:00
Michal Nowak 85108f7649 Omit spurious string from unit test debugging efforts
When both 'broken' and 'failed' test cases appear in unit test output

...
===> Broken tests
lib/isc/tests/socket_test:main  ->  broken: Test case timed out  [300.022s]
===> Failed tests
lib/isc/tests/time_test:main  ->  failed: 2 of 6 tests failed  [0.006s]
===> Summary
...

spurious '===>' string gets matched, that results in the following
error:

  Usage error for command debug: '===>' is not a test case identifier (missing ':'?).

Following change makes sure the string is omitted.

I checked on FreeBSD and OpenBSD that the AWK construct is supported.

(cherry picked from commit 9e6f6156f7)
2020-01-21 17:50:34 +00:00
Witold Krecicki c2350e7b3b Merge branch 'wpk/fix-inline-test-v9_11' into 'v9_11'
tests: add a missing log nextpart in inline test

See merge request isc-projects/bind9!2935
2020-01-21 15:43:19 +00:00
Witold Kręcicki e18cdac443 tests: add a missing log nextpart in inline test 2020-01-21 16:15:07 +01:00
Ondřej Surý 32fa45d19c Merge branch 'ondrej/lower-the-artifact-expiration-time-to-just-12-hours-v9_11' into 'v9_11'
Lower the artifact expiration time to just 1 day

See merge request isc-projects/bind9!2932
2020-01-21 12:14:30 +00:00
Ondřej Surý 86c297fb20 Lower the artifact expiration time to just 1 day
(cherry picked from commit 27a9be3034)
2020-01-21 13:12:41 +01:00
Mark Andrews 33e59450e9 Merge branch 'marka-omit-spurious-newlines-v9_11' into 'v9_11'
Omit spurious newlines when reporting DNSKEY changes

See merge request isc-projects/bind9!2924
2020-01-21 05:54:50 +00:00
Tony FinchandMark Andrews 353814fc09 Omit spurious newlines when reporting DNSKEY changes
These caused blank lines to appear in the logs.

(cherry picked from commit 3b1bd3f48b)
2020-01-21 16:34:20 +11:00
Mark Andrews f671f3452a Merge branch 'marka-document-authors-bind-v9_11' into 'v9_11'
document that version also controls authors.bind

See merge request isc-projects/bind9!2921
2020-01-21 04:25:36 +00:00
Mark Andrews 50fbacc01b document that version also controls authors.bind
(cherry picked from commit 05c6a29c87)
2020-01-21 15:05:22 +11:00
Mark Andrews 29c86c7c69 Merge branch '1537-nslookup-manual-page-needs-update-for-default-querytype-a-and-aaaa-v9_11' into 'v9_11'
document that nslookup defaults to A + AAAA lookups

See merge request isc-projects/bind9!2917
2020-01-20 02:22:21 +00:00
Mark Andrews 2eb1b00d24 document that nslookup defaults to A + AAAA lookups
(cherry picked from commit 938fc81493)
2020-01-20 10:48:25 +11:00
Mark Andrews 714384b8f8 Merge branch 'marka-check-CHANGES-SE-in-CI-v9_11' into 'v9_11'
check that CHANGES.SE entries are correctly ordered and that whitespace is correct

See merge request isc-projects/bind9!2914
2020-01-19 23:18:37 +00:00
Mark Andrews 6c14221ecd check that CHANGES.SE entries are correctly ordered and that whitespace is correct
(cherry picked from commit 05f2ba973f)
2020-01-18 08:10:51 +11:00
Michał Kępień 235765a8ce Merge branch 'michal/make-retry_quiet-available-on-windows' into 'v9_11'
Make retry_quiet() available on Windows

See merge request isc-projects/bind9!2911
2020-01-16 20:38:21 +00:00
Michał Kępień c9a12b8a1b Make retry_quiet() available on Windows
When retry_quiet() was backported to v9_11, it was only placed in
bin/tests/system/conf.sh.in, but not in bin/tests/system/conf.sh.win32.
This prevents every system test which employs this shell function either
directly or indirectly from ever succeeding on Windows.  Fix by copying
the definition of retry_quiet() to bin/tests/system/conf.sh.win32.
2020-01-16 21:37:06 +01:00
Matthijs Mekking 0ee0b251b4 Merge branch 'prepare-release-notes-for-bind-9-11.15' into 'v9_11'
Add release notes section for BIND 9.11.15

See merge request isc-projects/bind9!2906
2020-01-16 12:16:23 +00:00
Michał KępieńandMatthijs Mekking a8587a0899 Add release notes section for BIND 9.11.15 2020-01-16 12:28:06 +01:00
Michał Kępień 4df74c85f8 Merge branch 'michal/fix-the-dnssec-system-test-on-windows-v9_11' into 'v9_11'
[v9_11] Fix the "dnssec" system test on Windows

See merge request isc-projects/bind9!2904
2020-01-16 08:51:28 +00:00
Michał Kępień a4f6af58b2 Fix the "dnssec" system test on Windows
Make sure carriage return characters are stripped from awk input to
enable the "dnssec" system test to pass on Windows.

(cherry picked from commit 451484b870)
2020-01-16 09:50:16 +01:00
Michał Kępień 71bc5cc65c Merge branch '1525-inline-system-test-failed-need-to-wait-for-zone-to-be-loaded-v9_11' into 'v9_11'
[v9_11] Resolve "inline system test failed, need to wait for zone to be loaded."

See merge request isc-projects/bind9!2891
2020-01-14 14:14:51 +00:00
Mark AndrewsandMichał Kępień 8c857665d0 address some timing issues in inline system test
(cherry picked from commit 2dc4d72fa9)
2020-01-14 14:49:52 +01:00
Matthijs MekkingandMichał Kępień 553a2498e1 Move wait_for_log to conf.sh.common
(cherry picked from cfaa631f65)
2020-01-14 14:49:52 +01:00
Michał Kępień 349c922da8 Merge branch '1482-autosign-system-test-failed-v9_11' into 'v9_11'
[v9_11] Resolve "autosign system test failed"

See merge request isc-projects/bind9!2888
2020-01-14 13:35:11 +00:00
Mark AndrewsandMichał Kępień 24d52c1a38 Fix autosign system test issues.
* report when NSEC3PARAM is not yet present
* allow more time for NSEC3PARAM to become present
* adjust frequency failure message

(cherry picked from commit 17d25dbf47)
2020-01-14 13:24:26 +01:00
Michał Kępień fa784b5a60 Merge branch '1467-xfer-test-suppress-zone-transfer-when-we-are-going-to-retry-v9_11' into 'v9_11'
[v9_11] Resolve "xfer test: suppress zone transfer when we are going to retry."

See merge request isc-projects/bind9!2886
2020-01-14 12:20:13 +00:00
Mark AndrewsandMichał Kępień 57cd453b1e improve forensic logs
improve forensic logs by directing output to per sub-test named
files and reporting the sub-subtest number.

(cherry picked from commit 895f60d6f8)
2020-01-14 12:20:19 +01:00
Mark AndrewsandMichał Kępień e49100c9ab suppress unnecessary zone transfer
suppressed unnecessary zone transfer in "test mapped zone with
out of zone data" sub-test.

(cherry picked from commit 28695f1c92)
2020-01-14 12:20:18 +01:00
Mark AndrewsandMichał Kępień a3343b61ba Improve forensic logging in "testing basic zone transfer functionality"
Split the "testing basic zone transfer functionality" into primary and
secondary parts to improve forensic logging.

(cherry picked from commit 14ef8b10af)
2020-01-14 12:20:16 +01:00
Mark Andrews 1ed4fcdc9f Merge branch '1531-add-calls-to-dns_rdata_additionaldata-to-lib-dns-tests-rdata_test-c-v9_11' into 'v9_11'
Resolve "Add calls to dns_rdata_additionaldata to lib/dns/tests/rdata_test.c"

See merge request isc-projects/bind9!2879
2020-01-14 09:38:15 +00:00
Mark Andrews 9b71352f25 exercise dns_rdata_checknames
(cherry picked from commit b3c1b2a869)
2020-01-14 09:17:10 +00:00
Mark Andrews ecdb80ca85 exercise dns_rdata_additionaldata
(cherry picked from commit 649a34d628)
2020-01-14 09:17:10 +00:00
Mark Andrews 83b5274f84 call dns_rdata_towire on valid output from dns_rdata_fromtext and dns_rdata_fromwire
(cherry picked from commit 5e74550740)
2020-01-14 09:17:10 +00:00
Ondřej Surý b65df9526b Merge branch '1443-threadsanitizer-data-race-lib-dns-rbtdb-c-1960-in-decrement_reference-2-v9_11' into 'v9_11'
Resolve "ThreadSanitizer: data race lib/dns/rbtdb.c:1960 in decrement_reference"

See merge request isc-projects/bind9!2874
2020-01-14 08:02:57 +00:00
Mark AndrewsandOndřej Surý 3a9cdba3d8 Add is_leaf and send_to_prune_tree.
Add is_leaf and send_to_prune_tree to make the logic easier
to understand in cleanup_dead_nodes and decrement_reference.

(cherry picked from commit c6efc0e50f)
2020-01-14 08:35:37 +01:00
Mark AndrewsandOndřej Surý 4db29f1f7d Testing node->down requires the tree lock to be held.
In decrement_reference only test node->down if the tree lock
is held.  As node->down is not always tested in
decrement_reference we need to test that it is non NULL in
cleanup_dead_nodes prior to removing the node from the rbt
tree.  Additionally it is not always possible to aquire the
node lock and reactivate a node when adding parent nodes.
Reactivate such nodes in cleanup_dead_nodes if required.

(cherry picked from commit 176b23b6cd)
2020-01-14 08:35:37 +01:00
Mark Andrews 17945a1d03 Merge branch 'u/fanf2/rndc-secroots-newlines-v9_11' into 'v9_11'
Fix line spacing in `rndc secroots`

See merge request isc-projects/bind9!2867
2020-01-13 22:13:40 +00:00
Tony FinchandMark Andrews e0a7baa6af Fix line spacing in rndc secroots
Before this change, there was a missing blank line between the
negative trust anchors for one view, and the heading line for the next
view. This is because dns_ntatable_totext() omits the last newline.
There is an example of the incorrect output below; the fixed output
has a blank line before "Start view auth".

secure roots as of 21-Oct-2019 12:03:23.500:

 Start view rec
   Secure roots:

./RSASHA256/20326 ; managed

   Negative trust anchors:

example.com: expiry 21-Oct-2019 13:03:15.000
 Start view auth
   Secure roots:

./RSASHA256/20326 ; managed

   Negative trust anchors:

example.com: expiry 21-Oct-2019 13:03:07.000

(cherry picked from commit 5b600c2cd8)
2020-01-14 08:57:17 +11:00
Michal Nowak 89b26276bc Merge branch 'mnowak/add-openSUSE-Tumblewed-image-v9_11' into 'v9_11'
[v9_11] Add openSUSE Tumbleweed image to the CI

See merge request isc-projects/bind9!2876
2020-01-13 16:32:51 +00:00
Michal Nowak bb3bc5820a Add openSUSE Tumbleweed image to the CI
Ensure BIND is continuously tested on Tumbleweed, a pure rolling release
version of openSUSE.  This will allow BIND incompatibilities with latest
upstream versions of its dependencies to be caught more quickly.

(cherry picked from commit bd5dd1b58c60edb372bc6fa4eb39e355c5c76de4)
2020-01-13 16:32:51 +00:00
Michał Kępień cadc484d76 Merge branch 'michal/update-gitlab-ci-to-alpine-linux-3.11-v9_11' into 'v9_11'
[v9_11] Update GitLab CI to Alpine Linux 3.11

See merge request isc-projects/bind9!2862
2020-01-13 14:25:39 +00:00
Michał Kępień a89de9cbfc Update GitLab CI to Alpine Linux 3.11
Since Alpine Linux 3.11 is the current Alpine Linux release, replace
Alpine Linux 3.10 GitLab CI jobs with their up-to-date counterparts.

(cherry picked from commit bebf353eb5)
2020-01-13 15:09:01 +01:00
Michał Kępień 619e5aa276 Merge branch '1552-properly-detect-mmdb-lookup-failures-v9_11' into 'v9_11'
[v9_11] Properly detect MMDB lookup failures

See merge request isc-projects/bind9!2872
2020-01-13 14:07:21 +00:00
Michał Kępień c1e38394f2 Add CHANGES entry
5339.	[bug]		With some libmaxminddb versions, named could erroneously
			match an IP address not belonging to any subnet defined
			in a given GeoIP2 database to one of the existing
			entries in that database. [GL #1552]

(cherry picked from commit a070defb18)
2020-01-13 15:06:38 +01:00
Michał Kępień 28fe27e47e Properly detect MMDB lookup failures
Only comparing the value of the integer passed as the last argument to
MMDB_lookup_sockaddr() against MMDB_SUCCESS is not enough to ensure that
an MMDB lookup was successful - the 'found_entry' field of the
MMDB_lookup_result_s structure returned by that function also needs to
be true or else the remaining contents of that structure should be
ignored as the lookup failed.  Extend the relevant logical condition in
get_entry_for() to ensure the latter does not return incorrect MMDB
entries for IP addresses which do not belong to any subnet defined in a
given GeoIP2 database.

(cherry picked from commit 814da1c808)
2020-01-13 15:06:35 +01:00
Michał Kępień 832d904802 Merge branch 'michal/handle-catopen-errors' into 'v9_11'
Handle catopen() errors

See merge request isc-projects/bind9!2863
2020-01-13 13:03:35 +00:00
Michał Kępień daade37977 Handle catopen() errors
musl libc's implementation of catgets() crashes when its first argument
is -1 instead of a proper message catalog descriptor.  Prevent that from
happening by making isc_msgcat_get() return the default text if the
prior call to catopen() returns an error.
2020-01-13 14:03:11 +01:00
Mark Andrews 21c707fb9a Merge branch '1464-unchecked-returns-in-v9_11-as-reported-by-coverity-2' into 'v9_11'
Resolve "Unchecked returns in v9_11 as reported by Coverity."

See merge request isc-projects/bind9!2727
2020-01-13 05:44:58 +00:00
Mark Andrews 939f2fa2f5 formally discard return value 2020-01-13 05:07:13 +00:00
Michał Kępień e7f2fc0106 Merge branch 'ondrej/run-full-pipeline-on-schedule-v9_11' into 'v9_11'
[v9_11] Run all jobs on scheduled builds (including OpenBSD and Windows)

See merge request isc-projects/bind9!2860
2020-01-10 10:21:01 +00:00
Ondřej SurýandMichał Kępień f70548724d Run all jobs on scheduled builds (including OpenBSD and Windows)
(cherry picked from commit 52773e226a)
2020-01-10 11:19:32 +01:00
Michał Kępień 01be66f0fe Merge branch 'ondrej/stop-retrying-system-tests-v9_11' into 'v9_11'
[v9_11] Stop retrying the system tests; we should fix the tests instead

See merge request isc-projects/bind9!2858
2020-01-10 10:15:10 +00:00
Ondřej SurýandMichał Kępień dfa4e9199e Stop retrying the system tests; we should fix the tests instead
(cherry picked from commit 8ad67f8b9f)
2020-01-10 11:14:05 +01:00
Michał Kępień 325ac4977b Merge branch '1431-summary-sanitizer-grep-is-dangerous-v9_11' into 'v9_11'
[v9_11] Resolve ""SUMMARY: .*Sanitizer" grep is dangerous"

See merge request isc-projects/bind9!2856
2020-01-10 10:12:58 +00:00
Mark AndrewsandMichał Kępień d0b50c9681 replace grep -r with 'find -type f | xargs'
(cherry picked from commit 36ce99d8a4)
2020-01-10 10:52:14 +01:00
Michał Kępień 8b114ea0c0 Merge branch 'ondrej/keep-sanitizer-tainted-system-tests-files-v9_11' into 'v9_11'
[v9_11] Don't clean the system test temporary files if sanitizer reports were found inside

See merge request isc-projects/bind9!2854
2020-01-10 09:50:35 +00:00
Ondřej SurýandMichał Kępień 115610a7ee Don't clean the system test temporary files if sanitizer reports were found inside
(cherry picked from commit 7489e6e6f9)
2020-01-10 10:49:06 +01:00
Michał Kępień db6060a1d0 Merge branch 'michal/fix-the-forward-system-test-on-windows-v9_11' into 'v9_11'
[v9_11] Fix the "forward" system test on Windows

See merge request isc-projects/bind9!2852
2020-01-10 09:45:19 +00:00
Michał Kępień e2d0135056 Fix the "forward" system test on Windows
Make sure carriage return characters are stripped from sed input to
enable the "forward" system test to pass on Windows.

(cherry picked from commit 075613aea4)
2020-01-10 10:44:20 +01:00
Michał Kępień d1af3126ca Merge branch '1479-_wait_for_rcode-adds-extraneous-query-v9_11' into 'v9_11'
[v9_11] Resolve "_wait_for_rcode adds extraneous query"

See merge request isc-projects/bind9!2850
2020-01-10 09:42:50 +00:00
Mark AndrewsandMichał Kępień d638c84e7f consume all arguments we have processed in shift
(cherry picked from commit 0ee0580fc9)
2020-01-10 10:41:32 +01:00
Michał Kępień b7cb19b5ca Merge branch '1453-the-zero-system-test-timeouts-intermittently-v9_11' into 'v9_11'
[v9_11] Bail-out early if dig fails to finish successfully or takes too long

See merge request isc-projects/bind9!2848
2020-01-10 09:26:47 +00:00
Ondřej SurýandMichał Kępień 0d645351db Bail-out early if dig fails to finish successfully or takes too long
Before, the zero system test could get stuck almost infinitely, because
the first test sends > 300 queries with 5 seconds timeout on each in
each pass.  If named crashed early, it would took the test more than 4
hours to properly timeout.

This commit introduces a "watchdog" on the dig commands running in the
background and failing the test on timeout, failing any test if any dig
command fails to return successfully, and making the tests.sh script
shellcheck clean.

(cherry picked from commit 2a65a47f39)
2020-01-10 10:04:35 +01:00
Michał Kępień d315ae4df6 Merge branch '1458-intermittent-failure-in-the-forward-system-test-v9_11' into 'v9_11'
[v9_11] Resolve "Intermittent failure in the forward system test"

See merge request isc-projects/bind9!2846
2020-01-10 09:03:25 +00:00
Ondřej SurýandMichał Kępień aed6f507f3 Wait for named to forward the question before testing the validity
(cherry picked from commit fb03edacd8)
2020-01-10 09:29:30 +01:00
Ondřej SurýandMichał Kępień 45094c50d2 Make forward system test shellcheck clean
(cherry picked from commit 0e15cbb092)
2020-01-10 09:29:30 +01:00
Ondřej SurýandMichał Kępień 4b14cbb285 Use $n to keep diagnostic output of every individual test separate
(cherry picked from commit 10f4cd066f)
2020-01-10 09:29:30 +01:00
Ondřej SurýandMichał Kępień f01d2a4a79 Add the standard $n to each test
(cherry picked from commit 64df488e1e)
2020-01-10 09:29:28 +01:00
Michał Kępień 17bd634119 Merge branch '1407-intermittent-failure-in-the-mkeys-system-test-v9_11' into 'v9_11'
[v9_11] Improve the error handling in mkeys test and use retry_quiet()

See merge request isc-projects/bind9!2840
2020-01-09 13:04:18 +00:00
Ondřej SurýandMichał Kępień 4d372bf012 Wait for 'all zones loaded' message instead of zoneless 'loaded serial' message
(cherry picked from commit b0ad689e16)
2020-01-09 13:37:26 +01:00
Ondřej SurýandMichał Kępień bf644c901c Save all rndc diagnostic output
(cherry picked from commit 3b63c51a64)
2020-01-09 13:36:54 +01:00
Ondřej SurýandMichał Kępień 01feaa2b43 Address ShellCheck warnings
(cherry picked from commit 4ff25c06c1)
2020-01-09 13:31:29 +01:00
Ondřej SurýandMichał Kępień a63cad9647 Improve the error handling in mkeys test and use retry_quiet()
(cherry picked from commit f239d67c1a)
2020-01-09 12:40:54 +01:00
Michał Kępień 9b652af90e Merge branch '1410-intermittent-failure-in-the-resolver-test-v9_11' into 'v9_11'
[v9_11] Resolve "Intermittent failure in the resolver test"

See merge request isc-projects/bind9!2838
2020-01-09 11:15:44 +00:00
Diego FronzaandMichał Kępień 5169c21b2c Improved prefetch disabled test code
Using retry_quiet to test that prefetch is disabled instead of a
standard loop with sleep 1 between each iteration.

(cherry picked from commit 994fc2e822)
2020-01-09 11:45:03 +01:00
Diego FronzaandMichał Kępień 89129a3a85 Fix resolver tests: prefetch 40/41
These two tests were failing basically because in order for prefetching to
happen, the TTL for a given DNS record must be greater than or equal to
the prefetch config value + 9.

The previous TTL for both records was 10, while prefetch value in
configuration was 3, thus making only records with TTL >= 12 elligible
for prefetching.

TTL value for both records was adjusted to the value 13, and prefetch
value was set to 4 (inc by 1), so records with TTL (4 + 9) >= 13 are
elligible for prefetching.

Adjusting prefetch value to 4 gives the test 1 second more to avoid time
problems when sharing resources on a heavy loaded PC.

Also prefetch value in settings is now read by the script and used
by it to corrrectly calculate the amount of time needed to delay before
sending a request to trigger prefetch, adding a bit of flexibility to
fine tune the test in the future.

(cherry picked from commit a711d6f8c0)
2020-01-09 11:44:44 +01:00
Diego FronzaandMichał Kępień f06c1dde90 Fix resolver test: prefetch disabled
The previous test had two problems:
1. It wasn't written specifically for testing what it was supposed to:
prefetch disabled.
2. It could fail in some circunstances if the computer's load is too
high, due to sleeps not taking parallel tests and cpu load into account.

The new test is testing prefetch disabled as follows:
1. It asks for a txt record for a given domain and takes note of the
record's TTL (which is 10).
2. It sleeps for (TTL - 5) = 5 seconds, having a window of 5 seconds to
issue new queries before the record expires from cache.
3. Three(3) queries are executed in a row, with a interval of 1 second
between them, and for each query we verify that the TTL in response is
less than the previous one, thus ensuring that prefetch is disabled (if
it were enabled this record would have been refreshed already and TTL
would be >= the first TTL).

Having a window of 5 seconds to perform 3 queries with a interval of 1
second between them gives the test a reasonable amount of time
to not suffer from a machine with heavy load.

(cherry picked from commit dd524cc893)
2020-01-09 11:32:38 +01:00
Michał Kępień 3fa592b1e7 Merge branch '1401-intermittent-failures-in-the-catz-system-test-v9_11' into 'v9_11'
[v9_11] Debug "Intermittent failures in the catz system test"

See merge request isc-projects/bind9!2836
2020-01-09 10:15:51 +00:00
Mark AndrewsandMichał Kępień ab9e50e683 Increase wait_for_message attempts to 20.
(cherry picked from commit 4dd9ec8919)
2020-01-09 10:47:16 +01:00
Mark AndrewsandMichał Kępień de942601fe save wait_for_message contents
(cherry picked from commit 1334daaec0)
2020-01-09 10:47:16 +01:00
Michal Nowak 6e6ffeb828 Merge branch 'mnowak/1546-Add-out-of-tree-build-to-CI-v9_11' into 'v9_11'
[v9_11] Add out-of-tree build to the CI

See merge request isc-projects/bind9!2834
2020-01-09 09:43:39 +00:00
Michal Nowak 7a5ce785e8 Add out-of-tree build to the CI
Fixes #1546.

(cherry picked from commit 640dd566e9)
2020-01-09 09:43:39 +00:00
Michał Kępień 7b1fa60e08 Merge branch '1401-intermittent-failures-in-the-catz-system-test-v9_11' into 'v9_11'
[v9_11] Resolve "Intermittent failures in the catz system test"

See merge request isc-projects/bind9!2830
2020-01-08 14:58:32 +00:00
Ondřej SurýandMichał Kępień 2756dff680 Use retry() and nextpart*() to simplify catz test
(cherry picked from commit 51b05189f7)
2020-01-08 15:19:17 +01:00
Witold KręcickiandMichał Kępień 0f2ef0ca34 Fix timing issues in catz test
Make the log checks more precise and use the retry() function for
repeating the checks.

(cherry picked from commit 9b43e65c01)
2020-01-08 15:19:17 +01:00
Michał Kępień 609c7dc79e Implement a "read-only" version of nextpart()
The system test helper function nextpart() always updates the "lines
read so far" marker ("<file>.prev") when it is called, which somewhat
limits its flexibility.  Add two new helper functions, nextpartpeek()
and nextpartreset(), so that certain parts of log files can be easily
examined more than once.  Add some documentation to help understand the
purpose of each function in the nextpart*() family.

(cherry picked from commit facb68b22e)
2020-01-08 15:19:17 +01:00
Michał Kępień 9ada12e72f Merge branch '1402-multiple-issues-in-the-runtime-system-test-v9_11' into 'v9_11'
[v9_11] Resolve "Multiple issues in the runtime system test"

See merge request isc-projects/bind9!2827
2020-01-08 12:33:31 +00:00
Michał Kępień 4133648ee0 Only run managed keys tests for builds with crypto 2020-01-08 13:17:10 +01:00
Ondřej SurýandMichał Kępień e2aab0cbf1 Fix multiple issues in named setuid check
(cherry picked from commit 4a6d9ea152)
2020-01-08 13:07:42 +01:00
Evan HuntandMichał Kępień e6d99c2d4e fixed a test failure, some other shell cleanup
(cherry picked from commit dc760867d8)
2020-01-08 13:07:42 +01:00
Ondřej SurýandMichał Kępień fbd685b827 Instead of sleeping for a fixed time, wait for named to log specific message in a loop
(cherry picked from commit 355eb0c288)
2020-01-08 13:07:42 +01:00
Ondřej SurýandMichał Kępień e5881bcff1 Make runtime/tests.sh shellcheck and set -e clean
This mostly comprises of:

* changing the directories in subshell and not ignoring `cd` return code
* handling every error gracefully instead of ignoring the return code

(cherry picked from commit 57b6aeabd5)
2020-01-08 13:07:40 +01:00
Ondřej SurýandMichał Kępień 8b23127687 Further improve the runtime tests to look for a specific instead of generic error
(cherry picked from commit d26e7166a6)
2020-01-08 12:51:14 +01:00
Ondřej SurýandMichał Kępień 66f9d83164 Fix couple of no-op tests to actually test something (configuration files were missing)
(cherry picked from commit 60f335204a)
2020-01-08 12:51:14 +01:00
Ondřej SurýandMichał Kępień 28e2528f02 runtime test: make the pidfiles match the names of configuration files
(cherry picked from commit fe021299e0)
2020-01-08 12:51:04 +01:00
Ondřej SurýandMichał Kępień 774da247bd runtime test: use helper function that kills named and waits for the finish
(cherry picked from commit e9d348bac5)
2020-01-08 12:33:02 +01:00
Ondřej Surý 59bf4d746b Merge branch '1513-inline-system-test-failed-v9_11' into 'v9_11'
Address timing issues in 'inline' system test.

See merge request isc-projects/bind9!2822
2020-01-08 08:08:39 +00:00
Mark AndrewsandOndřej Surý de560f98a2 Address timing issues in 'inline' system test.
"rndc signing -serial <value>" could take longer than a second to
complete.  Loop waiting for update to succeed.

For tests where "rndc signing -serial <value>" is supposed to not
succeed, repeatedly test that we don't get the new serial, then
test that we have the old value.  This should prevent false negatives.

(cherry picked from commit 13fa80ede8)
2020-01-08 08:32:06 +01:00
Michał Kępień d555ee7375 Merge branch 'ondrej/detect-cores-in-system-tests-on-FreeBSD-v9_11' into 'v9_11'
[v9_11] Detect cores on FreeBSD

See merge request isc-projects/bind9!2820
2020-01-07 15:01:07 +00:00
Ondřej SurýandMichał Kępień 1007882fee Detect cores on FreeBSD
(cherry picked from commit 38277ddb0b)
2020-01-07 15:59:37 +01:00
Michał Kępień 0236a2229e Merge branch '1380-autosign-jitter-test-fails-with-no-nsec3param-found-in-axfr-v9_11' into 'v9_11'
[v9_11] Tune the performance of the autosign test

See merge request isc-projects/bind9!2818
2020-01-07 14:56:10 +00:00
Ondřej SurýandMichał Kępień e694c22386 Reduce the minimal numbers of days in jitter test to 5
(cherry picked from commit 4b2911a45a)
2020-01-07 15:53:10 +01:00
Ondřej SurýandMichał Kępień cef4c4f708 Tune the performance of CDS/CDNSKEY deletion test
(cherry picked from commit 76eac9a691)
2020-01-07 15:53:10 +01:00
Ondřej SurýandMichał Kępień 0eab5260fe Tune the performance of oldsigs test
The oldsigs test was checking only for the validity of the A
a.oldsigs.example. resource record and associated DNSSEC signature while
the zone might not have been fully signed yet leading to validation
failures because of bogus signatures on the validation path.

This commit changes the test to test that all old signatures in the
oldsigs.example. zone were replaced and the zone is fully resigned
before running the main check.

(cherry picked from commit 519b047362)
2020-01-07 15:53:07 +01:00
Ondřej SurýandMichał Kępień c76b83c420 Tune the performance of the jitter test
(cherry picked from commit ffb7ae8beb)
2020-01-07 15:50:51 +01:00
Michał Kępień 9eb0f01590 Merge branch '1256-fix-the-jitter-test-2-v9_11' into 'v9_11'
[v9_11] Wait a little bit longer for autosign, bail out on not enough categories

See merge request isc-projects/bind9!2816
2020-01-07 14:43:39 +00:00
Ondřej SurýandMichał Kępień b77d31fa10 Wait a little bit longer for autosign, bail out on not enough categories
(cherry picked from commit f1cbdc5498)
2020-01-07 15:37:54 +01:00
Ondřej SurýandMichał Kępień a40ceb292e Adjust the jitter range to +-3*stddev
(cherry picked from commit d6f68fc4f0)
2020-01-07 15:37:54 +01:00
Michał Kępień 35a1ab9742 Merge branch '1256-fix-the-jitter-test-v9_11' into 'v9_11'
[v9_11] Check if the RRSIG jitter falls <mean-2.5*stddev;mean+2.5*stddev>

See merge request isc-projects/bind9!2814
2020-01-07 14:36:07 +00:00
Ondřej SurýandMichał Kępień 022cb23250 Check if the RRSIG jitter falls into mean+-2.5*stddev range
(cherry picked from commit 0480a95ddf)
2020-01-07 15:34:38 +01:00
Michał Kępień 3f2270538c Merge branch 'ondrej/get-the-backtraces-out-of-system-test-coredumps-v9_11' into 'v9_11'
[v9_11] Get the backtraces out of system test coredumps

See merge request isc-projects/bind9!2812
2020-01-07 14:10:49 +00:00
Ondřej SurýandMichał Kępień 307670dc93 Get better stack traces
(cherry picked from commit d0a0c22433)
2020-01-07 14:59:39 +01:00
Ondřej SurýandMichał Kępień 546f65ffdb Dump the backtrace to stdout when core is found in systest directory
(cherry picked from commit 512dadc8d1)
2020-01-07 14:59:37 +01:00
Michal Nowak 89a3fcabf2 Merge branch 'mnowak/get-the-backtraces-out-of-unit-test-coredumps-v9_11' into 'v9_11'
[v9_11] Gather debug info on broken unit tests

See merge request isc-projects/bind9!2807
2020-01-06 12:06:19 +00:00
Michal Nowak 5b093e717c Gather debug info on broken unit tests
(cherry picked from commit 279933338b4a50c947adab900f3c49b5a39d67e2)
2020-01-06 12:06:18 +00:00
Michał Kępień a3cdca75e7 Merge branch 'michal/misc-doc-fixes-v9_11' into 'v9_11'
[v9_11] Miscellaneous documentation fixes

See merge request isc-projects/bind9!2805
2020-01-03 08:26:14 +00:00
Michał Kępień c473831b73 Fix grammar nit in README 2020-01-03 09:08:09 +01:00
Michał Kępień bd7fba05d1 Fix minor CHANGES issues
(cherry picked from commit 56f388cae1)
2020-01-03 09:08:09 +01:00
Michał Kępień 73a109ef6e Fix whitespace in release notes
(cherry picked from commit b2f3eaf188)
2020-01-03 09:08:09 +01:00
Michał Kępień 591310ce35 Prevent splitting GitLab identifiers across lines
GitLab issue and merge request numbers placed in release notes (in the
form of "#1234" for issues and "!5678" for merge requests) should not be
split across two lines.  Extend the shell pipeline generating
doc/arm/notes.txt with a sed invocation which prevents such splitting.

(cherry picked from commit 2d00143ab1)
2020-01-03 09:08:09 +01:00
Evan Hunt 58c45b5db8 Merge branch 'each-copyrights-v9_11' into 'v9_11'
update copyright year to 2020

See merge request isc-projects/bind9!2803
2020-01-03 05:55:27 +00:00
Evan Hunt 50ce299518 update copyright year to 2020 2020-01-02 21:50:03 -08:00
Mark Andrews 335ab375d6 Merge branch '1530-lib-dns-gen-c-29-26-fatal-error-isc-platform-h-no-such-file-or-directory-v9_11' into 'v9_11'
Resolve "lib/dns/gen.c:29:26: fatal error: isc/platform.h: No such file or directory"

See merge request isc-projects/bind9!2794
2019-12-22 21:51:21 +00:00
Mark Andrews 71d8c73d8f remove duplicate #includes
(cherry picked from commit 848c1c8b8b)
2019-12-23 08:20:59 +11:00
Mark Andrews a4762ee293 revert d10fbdec for lib/dns/gen.c as it is a build platform executable
(cherry picked from commit 7278f2529a)
2019-12-23 08:20:58 +11:00
Mark Andrews 02eb73058c Merge branch '1501-summary-threadsanitizer-lock-order-inversion-potential-deadlock-in-pthread_rwlock_wrlock-v9_11' into 'v9_11'
Resolve "SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) in pthread_rwlock_wrlock - zone_postload"

See merge request isc-projects/bind9!2790
2019-12-20 11:27:20 +00:00
Mark Andrews 93e0d11e73 Refactor loop body as copy_non_dnssec_records.
(cherry picked from commit d26e125438)
2019-12-20 22:08:04 +11:00
Ondřej SurýandMark Andrews be646d9d3e Add failure handling when iterators don't end with ISC_R_NOMORE
(cherry picked from commit bff83b9480)
2019-12-20 22:06:26 +11:00
Ondřej SurýandMark Andrews 20e458e5f7 Refactor receive_secure_db to make the variables and code flow around the iterator more local
(cherry picked from commit 6012479419)
2019-12-20 22:06:26 +11:00
Mark Andrews f1a8215a44 Call dns_dbiterator_destroy earlier to prevent potential deadlock.
(cherry picked from commit 9d8f9cc8f2)
2019-12-20 22:06:25 +11:00
Mark Andrews 7c48ca5699 Merge branch '1523-pkcs11-destroy-s-usage-message-is-misleading-v9_11' into 'v9_11'
update usage message

See merge request isc-projects/bind9!2788
2019-12-20 09:27:29 +00:00
Mark Andrews d70aabd659 update usage message
(cherry picked from commit 41d827893e)
2019-12-20 20:05:55 +11:00
Mark Andrews e8ba9397eb Merge branch '1524-stats-c-300-29-error-undeclared-first-use-in-this-function-stats-counters-counter-val' into 'v9_11'
Resolve "stats.c:300:29:error: undeclared (first use in this function): stats->counters[counter] = val;"

See merge request isc-projects/bind9!2784
2019-12-19 22:40:42 +00:00
Mark Andrews 261c84d91d fix variable name in conditional block 2019-12-19 09:27:44 +11:00
Mark Andrews 6f308bb7ed Merge branch 'feature/master/maxminddb-version-v9_11' into 'v9_11'
Feature/master/maxminddb version v9 11

See merge request isc-projects/bind9!2781
2019-12-18 00:58:02 +00:00
Mark Andrews b437561cc4 add CHANGES
(cherry picked from commit 2f2bc03b2d)
2019-12-18 11:39:43 +11:00
Petr MenšíkandMark Andrews a9a39eb5b5 Include protobuf-c version
Include used version of protobuf-c in version info, both link time and
runtime version is available.

(cherry picked from commit 85f3476894)
2019-12-18 11:39:20 +11:00
Petr MenšíkandMark Andrews a6f25f9d25 Provide GeoIP2 library version in version
Libmaxmind does not provide any version macro for link time version.
Print at least runtime version library used, if linked.

(cherry picked from commit e6d7384c0d)
2019-12-18 11:38:41 +11:00
Mark Andrews ccc56442db Merge branch 'ondrej/remove-too-generic-node_count-macro-from-dns_acl-v9_11' into 'v9_11'
Change the (acl)->node_count macro to dns_acl_node_count(acl) macro to clean the global namespace

See merge request isc-projects/bind9!2780
2019-12-18 00:32:10 +00:00
Ondřej SurýandMark Andrews f8cab45c3b Change the (acl)->node_count macro to dns_acl_node_count(acl) macro to clean the global namespace
(cherry picked from commit 8120088ec7)
2019-12-18 11:11:48 +11:00
Mark Andrews 6b302a47e3 Merge branch '1414-threadsanitizer-data-race-task-c-367-in-task_shutdown' into 'v9_11'
Resolve "ThreadSanitizer: data race task.c:367 in task_shutdown"

See merge request isc-projects/bind9!2764
2019-12-12 23:15:27 +00:00
Mark Andrews 7c94d2cd7d acquire task lock before calling push_readyq for task->flags access 2019-12-12 22:54:15 +00:00
Ondřej Surý fba81c5d28 Merge branch '1423-threadsanitizer-data-race-time-c-170-in-isc_time_nowplusinterval-v9_11' into 'v9_11'
Ensure all zone_settimer() calls are done on locked zone

See merge request isc-projects/bind9!2770
2019-12-12 15:40:51 +00:00
Ondřej Surý 3bac7e9807 Ensure all zone_settimer() calls are done on locked zone
(cherry picked from commit cf48e8eb32)
2019-12-12 16:16:59 +01:00
Mark Andrews ccb8fcf666 Merge branch '1486-threadsanitizer-lock-order-inversion-potential-deadlock-dns_resolver_createfetch-vs' into 'v9_11'
Resolve "ThreadSanitizer: lock-order-inversion (potential deadlock) - dns_resolver_createfetch vs dns_resolver_shutdown"

See merge request isc-projects/bind9!2766
2019-12-12 11:36:39 +00:00
Mark Andrews a52189e8e6 give zspill its own lock 2019-12-12 20:41:44 +11:00
Evan Hunt ea409239d5 Merge branch 'prep-release-v9_11_14' into 'v9_11'
Prep 9.11.14

See merge request isc-projects/bind9!2761
2019-12-12 05:17:55 +00:00
Tinderbox User 4775225de3 Merge branch 'prep-release' into v9_11 2019-12-12 05:01:30 +00:00
Tinderbox User ed6da5ec3d prep 9.11.14 2019-12-12 05:01:05 +00:00
Evan Hunt 9388760254 Merge branch 'michal/add-empty-release-notes-section-for-bind-9.11.14' into 'v9_11'
Add empty release notes section for BIND 9.11.14

See merge request isc-projects/bind9!2757
2019-12-11 22:11:04 +00:00
Michał KępieńandEvan Hunt 405a8aa648 Add empty release notes section for BIND 9.11.14 2019-12-11 22:10:07 +00:00
Michal Nowak 6792a4a8ca Merge branch 'mnowak/fedora31-v9.11' into 'v9_11'
[9.11] Update GitLab CI to Fedora 31

See merge request isc-projects/bind9!2759
2019-12-11 16:34:05 +00:00
Michal Nowak 7e717ab30c Update GitLab CI to Fedora 31
Since Fedora 31 is the current Fedora release, replace Fedora 30 GitLab
CI jobs with their up-to-date counterparts.

(cherry picked from commit b36f5496237f0dbb84d7541140e87d7da475cd36)
2019-12-11 16:34:04 +00:00
Michał Kępień 6466b5e611 Merge branch 'michal/create-release-tarballs-in-gitlab-ci-v9_11' into 'v9_11'
[v9_11] Create release tarballs in GitLab CI

See merge request isc-projects/bind9!2756
2019-12-11 14:15:25 +00:00
Michał Kępień da0aef8c96 Add a job creating a release tarball to GitLab CI
Add a GitLab CI job (which is run only if all other jobs in a pipeline
succeed) that builds a BIND release tarball, i.e. fetches the source
tarball from the tarball building job, creates Windows zips, puts
certain parts of BIND documentation into the appropriate places, and
packs it all up into a single tarball whose contents can be subsequently
signed and published.

(cherry picked from commit 5a4a6b5e91)
2019-12-11 15:13:00 +01:00
Michał Kępień 524dc88bb4 Add a Windows debug system test job to GitLab CI
Add a system test job for binaries created by Visual Studio in the
"Debug" build configuration to GitLab CI so that they can be tested
along their "Release" counterparts when necessary.

(cherry picked from commit 2b1c8c54d1)
2019-12-11 15:13:00 +01:00
Michał Kępień 084a1e033b Add a Windows debug build job to GitLab CI
Add a Visual Studio build job using the "Debug" build configuration to
GitLab CI without enabling it for every pipeline as it takes about twice
as long to complete as its "Release" counterpart.

(cherry picked from commit 12564928a7)
2019-12-11 15:13:00 +01:00
Michał Kępień 7f4887f64c Create and test BIND source tarballs in GitLab CI
Add a set of jobs to GitLab CI that create a BIND source tarball and
then build and test its contents.  Run those extra jobs only when a tag
is pushed to the Git repository as they are only meant to be sanity
checks of BIND source tarball contents.

(cherry picked from commit 8d56749046)
2019-12-11 15:13:00 +01:00
Michał Kępień ac1267c36a Include prepare-softhsm2.sh in source tarballs
The util/prepare-softhsm2.sh script is useful for initializing a working
SoftHSM environment which can be used by unit tests and system tests.
However, since it is a test-specific script, it does not really belong
in the util/ subdirectory which is mostly pruned during the BIND source
tarball creation process.  Move the prepare-softhsm2.sh script to
bin/tests/ so that its location is more appropriate for its purpose and
also so that it does not get removed during the BIND source tarball
creation process, allowing it to be used for setting up test
environments for tarball-based builds.

(cherry picked from commit c0be772ebc)
2019-12-11 15:13:00 +01:00
Michał Kępień ab3db95154 List paths which should be excluded from tarballs
Convert the logic (currently present in the form of "rm -rf" calls in
util/kit.sh) for removing files and directories which are tracked by Git
but redundant in release tarballs into a set of .gitattributes rules
which allow the same effect to be achieved using "git archive".

(cherry picked from commit 925ecb0aae)
2019-12-11 15:13:00 +01:00
Michał Kępień 8262a66a7f Merge branch 'michal/only-list-the-lwresd-system-test-once-on-windows' into 'v9_11'
Only list the "lwresd" system test once on Windows

See merge request isc-projects/bind9!2755
2019-12-11 14:12:19 +00:00
Michał Kępień 54b0b051db Only list the "lwresd" system test once on Windows
In bin/tests/system/conf.sh.win32, the "lwresd" system test is
erroneously listed both in SEQUENTIALDIRS and PARALLELDIRS.  Keep it
only in the former to prevent GitLab CI pipelines from consistently
failing on Windows due to SUBDIRS containing a different number of tests
than found in bin/tests/system/systests.output.
2019-12-11 14:29:21 +01:00
Mark Andrews 008a0da1b6 Merge branch '1411-threadsanitizer-data-race-resolver-c-2153-in-fctx_query-v9_11' into 'v9_11'
Resolve "ThreadSanitizer: data race resolver.c:2153 in fctx_query"

See merge request isc-projects/bind9!2749
2019-12-11 00:28:43 +00:00
Mark Andrews 020c29a8c8 Note bucket lock requirements.
(cherry picked from commit 13aaeaa06f)
2019-12-11 11:08:03 +11:00
Mark Andrews 89cf1dc665 lock access to fctx->nqueries
(cherry picked from commit 5589748eca)
2019-12-11 11:02:21 +11:00
Mark Andrews 58dfcd9fb3 Merge branch '1441-threadsanitizer-lock-order-inversion-potential-deadlock-usr-lib-x86_64-linux-gnu-libtsan-so-0-v9_11' into 'v9_11'
address deadlock introduced in cd2469d3cd

See merge request isc-projects/bind9!2746
2019-12-10 20:48:08 +00:00
Mark Andrews 4263b2ea21 address deadlock introduced in cd2469d3cd
(cherry picked from commit fd52417f71)
2019-12-10 20:24:05 +00:00
Matthijs Mekking 2de3f344ef Merge branch '1457-intermittent-failure-autosign-v9_11' into 'v9_11'
Resolve "Intermittent failure in the autosign system test"

See merge request isc-projects/bind9!2733
2019-12-10 14:21:16 +00:00
Matthijs MekkingandOndřej Surý 6d83b061ab Better error handling in autosign system test
(cherry picked from commit bd4035900a)
(cherry picked from commit 6658c11251)
2019-12-10 13:58:25 +00:00
Matthijs MekkingandOndřej Surý 677ea3aa05 Fix race in autosign test
The autosign test has a test case where a DNSSEC maintaiend zone
has a set of DNSSEC keys without any timing metadata set.  It
tests if named picks up the key for publication and signing if a
delayed dnssec-settime/loadkeys event has occured.

The test failed intermittently despite the fact it sleeps for 5
seconds but the triggered key reconfigure action should happen after
3 seconds.

However, the test output showed that the test query came in before
the key reconfigure action was complete (see excerpts below).

The loadkeys command is received:

15:38:36 received control channel command 'loadkeys delay.example.'

The reconfiguring zone keys action is triggered after 3 seconds:

15:38:39 zone delay.example/IN: reconfiguring zone keys
15:38:39 DNSKEY delay.example/NSEC3RSASHA1/7484 (ZSK) is now published
15:38:39 DNSKEY delay.example/NSEC3RSASHA1/7455 (KSK) is now published
15:38:39 writing to journal

Two seconds later the test query comes in:

15:38:41 client @0x7f1b8c0562b0 10.53.0.1#44177: query
15:38:41 client @0x7f1b8c0562b0 10.53.0.1#44177: endrequest

And 6 more seconds later the reconfigure keys action is complete:

15:38:47 zone delay.example/IN: next key event: 05-Dec-2019 15:48:39

This commit fixes the test by checking the "next key event" log has
been seen before executing the test query, making sure that the
reconfigure keys action has been complete.

This commit however does not fix, nor explain why it took such a long
time (8 seconds) to reconfigure the keys.

(cherry picked from commit 2e4273b55a)
(cherry picked from commit fb0ddd5bfe)
2019-12-10 13:58:24 +00:00
Matthijs MekkingandOndřej Surý f346fbdec9 Introduce wait_for_log in autosign test
(cherry picked from commit 5d6fad9e1e)
2019-12-10 13:58:24 +00:00
Matthijs MekkingandOndřej Surý ff44e1f086 Save settime output
(cherry picked from commit 6b4a17ef7c)
2019-12-10 13:58:24 +00:00
Michał Kępień 207c976807 Merge branch '1465-fix-idna-system-test-v9_11' into 'v9_11'
[v9_11] Fix the "idna" system test

See merge request isc-projects/bind9!2742
2019-12-10 13:38:32 +00:00
Michał Kępień 367a576f73 Use a different character for invalid U-label test
When libidn2 2.3.0+ is used, the "idna" system test fails as dig does
not fail as expected any more due to libidn2 2.3.0 using Unicode 11.0.0
IDNA mapping tables [1] instead of Unicode 6.3.0 ones which were used
until libidn2 2.2.0.  Specifically, the SOCKS character (🧦) used in the
invalid input U-label check in the "idna" system test is a valid IDNA
character as per the IDNA mapping tables for Unicode 11.0.0.  Fix the
relevant checks by using a different character (🟥) which is an invalid
IDNA character for all versions of Unicode released to date.

[1] https://gitlab.com/libidn/libidn2/commit/5eaafda64e733bfe15f66c8a39fd9bc2753ba8f2
2019-12-10 12:01:49 +01:00
Michał Kępień 6966422bf9 Only use LC_ALL=C where intended
The LC_ALL=C assignments in the "idna" system test, which were only
meant to affect a certain subset of checks, in fact persist throughout
all the subsequent checks in that system test.  That affects the test's
behavior and is misleading.

When the "VARIABLE=value command ..." syntax is used in a shell script,
in order for the variable assignment to only apply to "command", the
latter must be an external binary; otherwise, the VARIABLE=value
assignment persists for all subsequent commands in a script:

    $ cat foo.sh
    #!/bin/sh

    foo() {
        /bin/sh bar.sh
    }

    BAR="baz0"
    BAR="baz1" /bin/sh bar.sh
    echo "foo: BAR=${BAR}"
    BAR="baz2" foo
    echo "foo: BAR=${BAR}"

    $ cat bar.sh
    #!/bin/sh

    echo "bar: BAR=${BAR}"

    $ /bin/sh foo.sh
    bar: BAR=baz1
    foo: BAR=baz0
    bar: BAR=baz2
    foo: BAR=baz2
    $

Fix by saving the value of LC_ALL before the relevant set of checks in
the "idna" system test, restoring it afterwards, and dropping the
"LC_ALL=C command ..." syntax.

(cherry picked from commit 2ee7ff23ce)
2019-12-10 12:01:26 +01:00
Michał Kępień ed6fd9420d Merge branch '1452-system-test-framework-cleanup-tweaks-v9_11' into 'v9_11'
[v9_11] System test framework: cleanup tweaks

See merge request isc-projects/bind9!2723
2019-12-06 14:10:18 +00:00
Michał Kępień 26213ff696 Automatically run clean.sh from run.sh
The first step in all existing setup.sh scripts is to call clean.sh.  To
reduce code duplication and ensure all system tests added in the future
behave consistently with existing ones, invoke clean.sh from run.sh
before calling setup.sh.

(cherry picked from commit d8905b7a9c)
2019-12-06 15:06:49 +01:00
Michał Kępień ef3a08226c Remove bin/tests/system/clean.sh
Since the role of the bin/tests/system/clean.sh script has now been
reduced to calling a given system test's clean.sh script, remove the
former altogether and replace its only use with a direct invocation of
the latter.

(cherry picked from commit bf3eeac067)
2019-12-06 15:06:49 +01:00
Michał Kępień bc04dbf788 Remove the -r switch from system test scripts
Since files containing system test output are no longer stored in test
subdirectories, bin/tests/system/clean.sh no longer needs to take care
of removing the test.output file for a given test as testsummary.sh
already takes care of that and even if a test suite terminates
abnormally and another one is started, tee invoked without the -a
command line switch overwrites the destination file if it exists, so
leftover test.output.* files from previous test suite runs are not a
concern.  Remove the -r command line switch and the code associated with
it from the relevant scripts.

(cherry picked from commit b4d37878f6)
2019-12-06 15:06:49 +01:00
Michał Kępień cbc56385b2 Store system test output in bin/tests/system/
Some clean.sh scripts contain overly broad file deletion wildcards which
cause the test.output file (used by the system test framework for
collecting output) in a given system test's directory to be erroneously
removed immediately after the test is started (due to setup.sh scripts
calling clean.sh at the beginning).  This prevents the test's output
from being placed in bin/tests/system/systests.output at the end of a
test suite run and thus can lead to test failures being ignored.  Fix by
storing each test's output in a test.output.<test-name> file in
bin/tests/system/, which prevents clean.sh scripts from removing it (as
they should only ever affect files contained in a given system test's
directory).

(cherry picked from commit b0916bba41)
2019-12-06 15:06:49 +01:00
Michał Kępień e37da165c7 Merge branch '1452-detect-missing-system-test-results-v9_11' into 'v9_11'
[v9_11] Detect missing system test results

See merge request isc-projects/bind9!2722
2019-12-06 14:01:51 +00:00
Michał Kępień fef7060935 Detect missing system test results
At the end of each system test suite run, the system test framework
collects all existing test.output files from system test subdirectories
and produces bin/tests/system/systests.output from those files.
However, it does not check whether a test.output file was found for
every executed test.  Thus, if the test.output file is accidentally
deleted by the system test itself (e.g. due to an overly broad file
removal wildcard present in clean.sh), its output will not be included
in bin/tests/system/systests.output.  Since the result of each system
test suite run is determined by bin/tests/system/testsummary.sh, which
only operates on the contents of bin/tests/system/systests.output, this
can lead to test failures being ignored.  Fix by ensuring the number of
test results found in bin/tests/system/systests.output is equal to the
number of tests run and triggering a system test suite failure in case
of a discrepancy between these two values.

(cherry picked from commit 3c3085be3c)
2019-12-06 14:42:13 +01:00
Ondřej Surý 5c18c39d49 Merge branch 'ondrej/note-about-atomics-in-v9_11' into 'v9_11'
Add note about atomics and statistic counters in BIND 9.11

See merge request isc-projects/bind9!2710
2019-12-05 14:30:50 +00:00
Ondřej Surý fda9c28e36 Add NOTE about atomics and statschannel 2019-12-05 15:19:54 +01:00
Diego dos Santos Fronza 406c4d2ffa Merge branch '1398-new-tcp-high-water-setting-looks-incorrect-on-newly-started-server' into 'v9_11'
Resolve "New TCP High Water setting looks incorrect on a newly-started server"

See merge request isc-projects/bind9!2643
2019-12-05 01:56:29 +00:00
Ondřej SurýandDiego Fronza e50abe8a70 Cleanup the isc_stats code 2019-12-04 19:39:57 -03:00
Diego Fronza 8680c367cd Fix tcp-higwater stats for some specific platforms
The previous code had some errors that would be triggered on platforms
without stdatomics but with support for xadd assembly instruction.

The major error was combining two uint32_t values from the
multifield atomic structure using a logical AND '&&' instead of a
bitwise OR '|'.

Some preprocessor rules were redundant and thus were simplified,
regarding the definition of ISC_STATS_USEMULTIFIELDS macro.

Correctly changed rwlock type to read on isc_stats_get_counter.
2019-12-04 19:39:56 -03:00
Mark Andrews 2b0b62bb3f Merge branch '1434-explicitly-set-python-to-a-empty-string-with-without-python-v9_11' into 'v9_11'
Resolve "explicitly set PYTHON to a empty string with --without-python"

See merge request isc-projects/bind9!2697
2019-12-03 13:40:27 +00:00
Mark Andrews 17b29261bd add AC_ARG_VAR([PYTHON], [path to python executable])
(cherry picked from commit eed2aabc40)
2019-12-03 13:16:27 +00:00
Mark Andrews 1c6aaadd0b add CHANGES
(cherry picked from commit 8cd3cf90b2)
2019-12-03 13:16:27 +00:00
Mark Andrews 4a18cb8029 unset PYTHON on --without-python to prevent python still being used
(cherry picked from commit d8fc544569)
2019-12-03 13:16:27 +00:00
Mark Andrews 68fe7bbe87 Merge branch '1416-threadsanitizer-data-race-resolver-c-3384-in-findname-v9_11' into 'v9_11'
Assign fctx->client when fctx is created rather when the join happens.

See merge request isc-projects/bind9!2695
2019-12-03 13:07:12 +00:00
Mark Andrews 56af72c1d4 Assign fctx->client when fctx is created rather when the join happens.
This prevents races on fctx->client whenever a new fetch joins a existing
fetch (by calling fctx_join) as it is now invariant for the active life of
fctx.

(cherry picked from commit 9ca6ad6311)
2019-12-03 23:39:47 +11:00
Mark Andrews e0cb2d2d51 Merge branch '1419-threadsanitizer-data-race-rbtdb-c-7568-in-issecure-v9_11' into 'v9_11'
r/w of rbtdb->current_version requires that rbtdb->lock be held

See merge request isc-projects/bind9!2693
2019-12-03 06:23:11 +00:00
Mark Andrews 882d79b2a3 r/w of rbtdb->current_version requires that rbtdb->lock be held
(cherry picked from commit cd2469d3cd)
2019-12-03 16:50:06 +11:00
Mark Andrews 020fc08658 Merge branch '1446-add-fctx_attr_clr-and-fctx_attr_set-macros-v9_11' into 'v9_11'
Resolve "Add FCTX_ATTR_CLR and FCTX_ATTR_SET macros (v9_11)"

See merge request isc-projects/bind9!2691
2019-12-03 05:35:11 +00:00
Mark Andrews 37eb8e0d6c define and use FCTX_ATTR_SET and FCTX_ATTR_CLR 2019-12-03 11:41:05 +11:00
Mark Andrews b67df854b5 Merge branch '1412-threadsanitizer-data-race-resolver-c-7030-in-fctx_decreference-3' into 'v9_11'
Resolve "ThreadSanitizer: data race resolver.c:7030 in fctx_decreference"

See merge request isc-projects/bind9!2674
2019-12-02 22:21:44 +00:00
Mark Andrews 3114ff2346 make FCTX_ATTR_SHUTTINGDOWN a independent bool 2019-12-03 08:51:44 +11:00
Michał Kępień 4c75e24e4c Merge branch 'michal/address-asan-memory-leak-reports-v9_11' into 'v9_11'
[v9_11] Address ASAN memory leak reports

See merge request isc-projects/bind9!2684
2019-12-02 18:24:44 +00:00
Michał Kępień e396979233 Move xmlInitThreads()/xmlCleanupThreads() calls
xmlInitThreads() and xmlCleanupThreads() are called from within
ns_statschannels_configure() and ns_statschannels_shutdown(),
respectively.  Both of these functions are executed by worker threads,
not the main named thread.  This causes ASAN to report memory leaks like
the following one upon shutdown (as long as named is asked to produce
any XML output over its configured statistics channels during its
lifetime):

    Direct leak of 968 byte(s) in 1 object(s) allocated from:
        #0 0x7f677c249cd8 in __interceptor_calloc /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cc:153
        #1 0x7f677bc1838f in xmlGetGlobalState (/usr/lib/libxml2.so.2+0xa838f)

The data mentioned in the above report is a libxml2 state structure
stored as thread-specific data.  Such chunks of memory are automatically
released (by a destructor passed to pthread_key_create() by libxml2)
whenever a thread that allocated a given chunk exits.  However, if
xmlCleanupThreads() is called by a given thread before it exits, the
destructor will not be invoked (due to xmlCleanupThreads() calling
pthread_key_delete()) and ASAN will report a memory leak.  Thus,
xmlInitThreads() and xmlCleanupThreads() must not be called from worker
threads.  Since xmlInitThreads() must be called on Windows in order for
libxml2 to work at all, move xmlInitThreads() and xmlCleanupThreads()
calls to the main named thread (which does not produce any XML output
itself) in order to prevent the memory leak from being reported by ASAN.

(cherry picked from commit b425b5d56e)
2019-12-02 17:10:03 +01:00
Michał Kępień 998d873f13 Merge branch '1445-fix-geoip2-memory-leak-upon-reconfiguration-v9_11' into 'v9_11'
[v9_11] Fix GeoIP2 memory leak upon reconfiguration

See merge request isc-projects/bind9!2682
2019-12-02 16:07:31 +00:00
Michał Kępień 36f79b1f9c Add CHANGES entry
5329.	[bug]		Reconfiguring named caused memory to be leaked when any
			GeoIP2 database was in use. [GL #1445]

(cherry picked from commit 628b1837d2)
2019-12-02 15:27:09 +01:00
Michał Kępień 95a5589fa2 Fix GeoIP2 memory leak upon reconfiguration
Loaded GeoIP2 databases are only released when named is shut down, but
not during server reconfiguration.  This causes memory to be leaked
every time "rndc reconfig" or "rndc reload" is used, as long as any
GeoIP2 database is in use.  Fix by releasing any loaded GeoIP2 databases
before reloading them.  Do not call dns_geoip_shutdown() until server
shutdown as that function releases the memory context used for caching
GeoIP2 lookup results.

(cherry picked from commit 670afbe84a)
2019-12-02 15:27:00 +01:00
Mark Andrews 27a5c5788a Merge branch '1417-threadsanitizer-data-race-rbtdb-c-1535-in-add32-v9_11' into 'v9_11'
Resolve "ThreadSanitizer: data race rbtdb.c:1535 in add32"

See merge request isc-projects/bind9!2665
2019-11-28 20:35:50 +00:00
Mark Andrews 8343d7dc2c add CHANGES
(cherry picked from commit 68693f8279)
2019-11-29 07:13:04 +11:00
Mark Andrews 1c61f129c3 rdataset_setownercase and rdataset_getownercase need to obtain a node lock
(cherry picked from commit 637b2c4e51)
2019-11-29 07:13:04 +11:00
Ondřej Surý a5fb8c8127 Merge branch '1350-threadsanitizer-data-race-rbt-c-1312-in-dns_rbt_addnode-v9_11' into 'v9_11'
Resolve "ThreadSanitizer: data race rbt.c:1312 in dns_rbt_addnode"

See merge request isc-projects/bind9!2651
2019-11-27 17:06:28 +00:00
Mark AndrewsandOndřej Surý 449f96c7bb add comments 'tree_lock(write) must be held'
(cherry picked from commit 8f6aaa7230)
2019-11-27 18:06:05 +01:00
Mark AndrewsandOndřej Surý 37f6845980 rbtnode->nsec needs to be read while holding the tree lock
(cherry picked from commit 7cad3b2e91)
2019-11-27 18:06:05 +01:00
Ondřej Surý 97918a7315 Merge branch 'mnowak/537_Add_CI_step_to_test_named_-u-v9_11' into 'v9_11'
[9.11] Verifying that named switches UID

See merge request isc-projects/bind9!2600
2019-11-27 11:52:09 +00:00
Michal NowakandOndřej Surý 412edf8982 Verifying that named switches UID
This test runs only under root, which is required for the user-switch
`-u` option to work.

Closes #537.

(cherry picked from commit b00360537e)
2019-11-27 11:52:08 +00:00
Evan Hunt 0074d5542e Merge branch '1399-recursive-limit-stat-v9_11' into 'v9_11'
Resolve "recursive-client limit should have a stat counter"

See merge request isc-projects/bind9!2646
2019-11-26 19:54:38 +00:00
Evan Hunt 47da3129fd add a stats counter for clients dropped due to recursive-clients limit
(cherry picked from commit 715afa9c57)
2019-11-26 11:34:23 -08:00
Ondřej Surý 1fcfc7f4c4 Merge branch '1403-when-configuration-loading-fails-named-could-assert-v9_11' into 'v9_11'
Request exclusive access when crashing via fatal()

See merge request isc-projects/bind9!2638
2019-11-26 18:37:24 +00:00
Ondřej Surý 1e96fb8dc0 Request exclusive access when crashing via fatal()
When loading the configuration fails, there might be already other tasks
running and calling OpenSSL library functions.  The OpenSSL on_exit
handler is called when exiting the main process and there's a timing
race between the on_exit function that destroys OpenSSL allocated
resources (threads, locks, ...) and other tasks accessing the very same
resources leading to a crash in the system threading library. Therefore,
the fatal() function needs to request exlusive access to the task
manager to finish the already running tasks and exit only when no other
tasks are running.

(cherry picked from commit 952d7fde63)
2019-11-26 13:56:02 +01:00
Ondřej Surý fff784b061 Merge branch 'ondrej/add-retry_quiet-function-to-conf.sh.common-v9_11' into 'v9_11'
Add retry_quiet() function to retry quietly for an event to occur

See merge request isc-projects/bind9!2632
2019-11-26 08:40:42 +00:00
Ondřej Surý f5852f5f81 Add retry_quiet() function to retry quietly for an event to occur
(cherry picked from commit 31264a7e00)
2019-11-26 09:21:39 +01:00
Mark Andrews 0455351802 Merge branch '1367-threadsanitizer-data-race-dispatch-c-901-in-free_buffer-v9_11' into 'v9_11'
Resolve "ThreadSanitizer: data race dispatch.c:901 in free_buffer"

See merge request isc-projects/bind9!2628
2019-11-26 02:30:14 +00:00
Mark Andrews d74a6a96c3 move maxbuffers test to allocate_udp_buffer
(cherry picked from commit 26a93d77aa)
2019-11-26 11:53:33 +11:00
Mark Andrews 1d928de33e Lock dispatch manager buffer_lock before accessing buffers;
Only test buffers for UDP dispatches.

(cherry picked from commit 011af4de71)
2019-11-26 11:53:33 +11:00
Mark Andrews dcb21f39b6 lock disp->mgr before reading disp->mgr->buffers
(cherry picked from commit afc7389ce8)
2019-11-26 11:53:33 +11:00
Mark Andrews 40450fffc0 Merge branch '1397-install-isc-python-module-v9_11' into 'v9_11'
Resolve "Install ISC python module"

See merge request isc-projects/bind9!2626
2019-11-26 00:46:03 +00:00
Mark Andrews dbd7d580e4 add CHANGES and note in README.md
(cherry picked from commit 8bbafeb5ef)
2019-11-26 10:04:53 +11:00
Mark Andrews da75b8a7d1 check for 'distutils.core setup'
(cherry picked from commit 50e1bf3800)
2019-11-26 10:04:04 +11:00
Evan Hunt 542fb86f41 Merge branch 'each-notes-v9_11' into 'v9_11'
cleanup release notes text

See merge request isc-projects/bind9!2624
2019-11-25 21:21:18 +00:00
Evan Hunt ad9c8efbf6 cleanup release notes text
(cherry picked from commit fa70fc8731)
2019-11-25 13:20:52 -08:00
Mark Andrews e36730076a Merge branch '1334-threadsanitizer-data-race-dispatch-c-1339-in-tcp_recv-v9_11' into 'v9_11'
lock dispatch before reporting state

See merge request isc-projects/bind9!2619
2019-11-22 21:48:12 +00:00
Mark Andrews 9cffeb606a lock dispatch before reporting state
(cherry picked from commit 3075445ed6)
2019-11-23 08:25:47 +11:00
Mark Andrews 83d08bfb8e Merge branch '1317-alphabetise-delv-s-usage-v9_11' into 'v9_11'
alphabetise delv's usage.

See merge request isc-projects/bind9!2616
2019-11-22 19:34:06 +00:00
Mark Andrews fcbabac0cd alphabetise delv's usage.
(cherry picked from commit 78685ed173)
2019-11-23 00:12:21 +11:00
Mark Andrews b9be8bac52 Merge branch '1386-9-11-fix-conditional-define-of-lock_callback' into 'v9_11'
Resolve "9.11: fix conditional define of lock_callback"

See merge request isc-projects/bind9!2596
2019-11-21 00:18:33 +00:00
Mark Andrews 7d45e655a6 add CHANGES 2019-11-21 10:59:16 +11:00
Mark Andrews 9d4f5f88f3 Conditional compilation of lock_callback was inconsistent with
conditional use of the function when forcing BIND to build with
older and unsupported versions of OpenSSL.
2019-11-21 10:59:16 +11:00
Evan Hunt 5c4351d4bb Merge branch 'merge-v9_11_13' into 'v9_11'
merge 9.11.13 into v9_11 branch

See merge request isc-projects/bind9!2606
2019-11-20 21:47:53 +00:00
Evan Hunt 99203103b7 Merge tag 'v9_11_13' into merge-v9_11_13 2019-11-20 13:43:34 -08:00
Ondřej Surý 37f15ceaae Merge branch '1341-threadsanitizer-data-race-rbtdb-c-5756-in-add32-v9_11' into 'v9_11'
Resolve "ThreadSanitizer: data race rbtdb.c:5756 in add32"

See merge request isc-projects/bind9!2594
2019-11-19 17:33:58 +00:00
Mark AndrewsandOndřej Surý 92a73a3abe add CHANGES
(cherry picked from commit 4534fb5ec1)
2019-11-20 01:05:03 +08:00
Mark AndrewsandOndřej Surý a64c9fae62 use update_recordsandbytes in rbt_datafixer
(cherry picked from commit 7d4d64340e)
2019-11-20 01:01:52 +08:00
Mark AndrewsandOndřej Surý cf78ae96e5 always obtain write lock when updating version->{records,bytes}
(cherry picked from commit 0cda448248)
2019-11-20 01:01:51 +08:00
Michał Kępień fc91e783b1 Merge branch '1308-fix-tcp-system-test-v9_11' into 'v9_11'
[v9_11] Fix "tcp" system test

See merge request isc-projects/bind9!2592
2019-11-19 15:19:19 +00:00
Michał Kępień 87f7838a99 Address ShellCheck warnings
Address all outstanding warnings that ShellCheck reports for
bin/tests/system/tcp/tests.sh.

(cherry picked from commit 23ca0ec55b)
2019-11-19 15:46:55 +01:00
Michał Kępień a390e261ad Use "set -e" in the "tcp" system test
Ensure any unexpected failure in the "tcp" system test causes it to be
immediately interrupted with an error to make the aforementioned test
more reliable.  Since the exit code for "expr 0 + 0" is 1, the status
variable needs to be updated using arithmetic expansion.

(cherry picked from commit 9841635b7f)
2019-11-19 15:46:35 +01:00
Michał Kępień 06705a0ee5 Ensure all "tcp" system test errors are caught
Ensure any "rndc stats" failure causes the "tcp" system test to fail.
Do not hide "rndc stats" output.

(cherry picked from commit 46df363a0d)
2019-11-19 15:46:34 +01:00
Michał Kępień bc498bd6c9 Make all "tcp" system test checks numbered
Ensure all checks in the "tcp" system test are numbered, so that
forensic data is preserved in case of any failure.

(cherry picked from commit 2f4877d11c)
2019-11-19 15:46:04 +01:00
Michał Kępień 01a413cecc Fix argument order in assert_int_equal()
assert_int_equal() calls in bin/tests/system/tcp/tests.sh pass the found
value as the first argument and the expected value as the second
argument, while the function interprets its arguments the other way
round.  Fix argument handling in assert_int_equal() to make sure the
error messages printed by that function are correct.

(cherry picked from commit 6bd1f68bef)
2019-11-19 15:45:07 +01:00
Michał Kępień 3e9781087a Allow retries when checking TCP high-water stats
In the TCP high-water checks, "rndc stats" is run after ans6 reports
that it opened the requested number of TCP connections.  However, we
fail to account for the fact that ns5 might not yet have called accept()
for these connections, in which case the counts output by "rndc stats"
will be off.  To prevent intermittent "tcp" system test failures, allow
the relevant connection count checks to be retried (just once, after one
second, as that should be enough for any system to accept() a dozen TCP
connections under any circumstances).

(cherry picked from commit 1e22e052d0)
2019-11-19 15:43:16 +01:00
Mark Andrews 434615407e Merge branch '1299-parse-commandline-code-should-be-done-in-alphabetical-order-v9_11' into 'v9_11'
alphabetize command line switch

See merge request isc-projects/bind9!2590
2019-11-19 10:11:06 +00:00
Mark Andrews 8cff0b74ac alphabetize command line switch
(cherry picked from commit ca83a66618)
2019-11-19 20:54:49 +11:00
Ondřej Surý 1e24b9296c Merge branch 'ondrej/dont-call-dns_adb_endupdfetch-for-TCP-queries-v9_11' into 'v9_11'
lib/dns/resolver.c: Call dns_adb_endudpfetch() only for UDP queries

See merge request isc-projects/bind9!2586
2019-11-18 20:16:13 +00:00
Ondřej SurýandOndřej Surý ab4e6c2fe7 lib/dns/resolver.c: Call dns_adb_endudpfetch() only for UDP queries
The dns_adb_beginudpfetch() is called only for UDP queries, but
the dns_adb_endudpfetch() is called for all queries, including
TCP.  This messages the quota counting in adb.c.

(cherry picked from commit a5189eefa5)
2019-11-19 03:48:47 +08:00
Ondřej Surý 666c4a28e5 Merge branch 'ondrej/switch-coccinelle-job-to-buster-v9_11' into 'v9_11'
Installing coccinelle on Debian sid is broken, switch to Debian buster

See merge request isc-projects/bind9!2584
2019-11-18 18:05:11 +00:00
Ondřej Surý 38cf022442 Installing coccinelle on Debian sid is broken, switch to Debian buster
(cherry picked from commit 0946db13de)
2019-11-19 02:02:48 +08:00
Michał Kępień 163be9bcf9 Merge branch 'fix-url-in-readme-v9_11' into 'v9_11'
[v9_11] updated a broken link for newer release notes.

See merge request isc-projects/bind9!2570
2019-11-13 12:02:29 +00:00
Vicky RiskandMichał Kępień 6c4fb259c4 Update broken release notes link
(cherry picked from commit c830a9116d)
2019-11-13 13:00:18 +01:00
Ondřej Surý b734276748 Merge branch 'hurd-v9_11' into 'v9_11'
hurd: Fix build

See merge request isc-projects/bind9!2564
2019-11-12 09:08:28 +00:00
Ondřej Surý d2c86b2159 Internally, use {PATH,NAME}_MAX instead of ISC_DIR_{PATH,NAME}MAX 2019-11-12 09:31:40 +01:00
Samuel ThibaultandOndřej Surý 88061c2acb hurd: Fix build
Move PATH_MAX, NAME_MAX, IOV_MAX default definitions to the common
<isc/platform.h>.

(cherry picked from commit d10fbdec84)
2019-11-12 09:22:15 +01:00
Tinderbox User 8f32a30e5c Merge branch 'prep-release' into security-v9_11 2019-11-06 21:46:22 +00:00
Tinderbox User 5edf8dcb0d regen security-v9_11 2019-11-06 21:43:00 +00:00
Tinderbox User 336d24089b prep 9.11.13 2019-11-06 21:26:36 +00:00
Ondřej SurýandMichał Kępień 7b6e1597f4 Add CHANGES entry 2019-11-06 21:32:54 +01:00
Ondřej SurýandMichał Kępień 1c59ff3a4d Add release note 2019-11-06 21:32:54 +01:00
Witold KręcickiandMichał Kępień 7562485282 libns: Rename ns_tcpconn refs member to clients 2019-11-06 21:32:54 +01:00
Witold KręcickiandMichał Kępień 7d14ea3795 Limit query pipelining within each TCP connection
Previously, there was no limit to the number of concurrently served
queries over one pipelined TCP connection; an unlimited number of
queries sent over a single TCP connection could have potentially
exhausted the server's resources.
2019-11-06 21:32:54 +01:00
Michał Kępień 3b92b68d22 Merge branch '1298-do-not-use-sys-sysctl.h-on-linux-v9_11' into 'v9_11'
[v9_11] Do not use <sys/sysctl.h> on Linux

See merge request isc-projects/bind9!2546
2019-11-06 20:25:14 +00:00
Michał Kępień 4876a88fc0 Do not use <sys/sysctl.h> on Linux
glibc 2.30 deprecated the <sys/sysctl.h> header [1].  However, that
header is still used on other Unix-like systems, so only prevent it from
being used on Linux, in order to prevent compiler warnings from being
triggered.

[1] https://sourceware.org/ml/libc-alpha/2019-08/msg00029.html

(cherry picked from commit 65a8b53bd0)
2019-11-06 21:11:20 +01:00
Michał Kępień 55786b9755 Merge branch '1206-add-assert_int_equal-shell-function-v9_11' into 'v9_11'
[v9_11] Add assert_int_equal() shell function

See merge request isc-projects/bind9!2545
2019-11-06 20:10:33 +00:00
Michał Kępień 69697ee680 Add assert_int_equal() shell function
Add a shell function which is used in the "tcp" system test, but has
been accidentally omitted from !2425.  Make sure the function does not
change the value of "ret" itself, so that the caller can decide what to
do with the function's return value.

(cherry picked from commit 8bb7f1f2a1)
2019-11-06 21:07:02 +01:00
Michał Kępień 58df62baaf Merge branch '1206-fix-tcp-high-water-release-note-v9_11' into 'v9_11'
[v9_11] Fix TCP high-water release note

See merge request isc-projects/bind9!2544
2019-11-06 20:05:09 +00:00
Michał Kępień 689e648059 Fix TCP high-water release note
Add missing GitLab issue number to the TCP high-water release note.

(cherry picked from commit d0a3273d4d)
2019-11-06 21:00:28 +01:00
Michał Kępień df8d60a7d5 Merge branch '664-fetches-per-server-quota-docs-v9_11' into 'v9_11'
[v9_11] Describe the polynomial backoff curve used in the quota adjustment

See merge request isc-projects/bind9!2543
2019-11-06 19:52:52 +00:00
Ondřej SurýandMichał Kępień b154ef1f86 Describe the polynomial backoff curve used in the quota adjustment
(cherry picked from commit 56ef09c3a1)
2019-11-06 20:50:46 +01:00
Matthijs Mekking edd73f91b2 Merge branch '1256-jitter-dynamically-updated-signatures-v9_11' into 'v9_11'
Resolve "Signature Expiration Jitter not working for dynamic NSEC3 zones"

See merge request isc-projects/bind9!2536
2019-11-06 15:52:21 +00:00
Matthijs Mekking 26252892b3 Update copyrights 2019-11-06 16:30:50 +01:00
Ondřej SurýandMatthijs Mekking 653da9d5e7 Add CHANGES 2019-11-06 16:30:50 +01:00
Matthijs Mekking 32b5cae3ee Test jitter distribution
Test jitter distribution in NSEC3 dynamic zone and for a zone that has old
signatures.  In both cases the generated signatures should be spread nicely.

(cherry picked from commit 540b90fd6c)
2019-11-06 16:30:50 +01:00
Witold KręcickiandMatthijs Mekking bc96d7b3bb Jitter signatures times when adding dynamic records.
When doing regular signing expiry time is jittered to make sure
that the re-signing times are not clumped together. This expands
this behaviour to expiry times of dynamically added records.

When incrementally re-signing a zone use the full jitter range if
the server appears to have been offline for greater than 5 minutes
otherwise use a small jitter range of 3600 seconds.  This will stop
the signatures becoming more clustered if the server has been off
line for a significant period of time (> 5 minutes).

Manually edits: resolve conflicts, replace isc_random_uniform
with isc_random_jitter.

(cherry picked from commit 6b2fd40269)
2019-11-06 16:30:50 +01:00
Ondřej Surý 0b340031fe Merge branch '1206-tcp-high-water-stats-release-notes-fix-v9_11' into 'v9_11'
Fix the xml:id in the 9.11.13 release notes

See merge request isc-projects/bind9!2538
2019-11-06 14:55:55 +00:00
Ondřej Surý 5713de6182 Fix xml:id for 9.11.13 release notes 2019-11-06 15:51:51 +01:00
Ondřej Surý 361371a2c0 Merge branch '1206-tcp-high-water-stats-v9_11' into 'v9_11'
Resolve "Customer Feature Request:  Add "high-water" measurement for tcp-clients"

See merge request isc-projects/bind9!2506
2019-11-06 12:20:16 +00:00
Diego FronzaandOndřej Surý a1f081bb4b Added TCP high-water entry to CHANGES
(cherry picked from commit ba3fe75e65)
2019-11-06 12:54:40 +01:00
Diego FronzaandOndřej Surý 41f684819c Added TCP high-water entry to release notes
(cherry picked from commit dd492b64d9)
2019-11-06 12:54:40 +01:00
Ondřej Surý 55b0da1381 Backport isc_quota_getused() function 2019-11-06 12:54:40 +01:00
Ondřej Surý e8bf3c60f2 Avoid an extra atomic_load() call 2019-11-06 12:54:40 +01:00
Diego FronzaandOndřej Surý 270af739a7 Added TCP high-water system tests
Note: ans6/ans6.py is a helper script that allows tests.sh to open/close
TCP connections to some BIND instance.

(cherry picked from commit 29be224a04)
2019-11-06 12:54:40 +01:00
Diego FronzaandOndřej Surý 4ad2ab54cd Added TCP high-water statistics variable
This variable will report the maximum number of simultaneous tcp clients
that BIND has served while running.

It can be verified by running rndc status, then inspect "tcp high-water:
count", or by generating statistics file, rndc stats, then inspect the
line with "TCP connection high-water" text.

The tcp-highwater variable is atomically updated based on an existing
tcp-quota system handled in ns/client.c.

(cherry picked from commit 66fe8627de)
2019-11-06 12:54:40 +01:00
Diego FronzaandOndřej Surý 5a9c5166ce Add functions for collecting high-water counters
Add {isc,ns}_stats_{update_if_greater,get_counter}() functions that
are used to set and collect high-water type of statistics.

(cherry picked from commit a544e2e300)
2019-11-06 12:35:33 +01:00
Diego FronzaandOndřej Surý e4ebeff0e4 Change the isc_statscounter_t type from int to C99 int_fast64_t type
For TCP high-water work, we need to keep the used integer types widths
in sync.

Note: int_fast32_t is used on WIN32 platform
(cherry picked from commit 0fc98ef2d5)
2019-11-06 12:35:33 +01:00
Michał Kępień 2468817029 Merge branch 'michal/split-release-notes-into-per-version-sections-v9_11' into 'v9_11'
[v9_11] Split release notes into per-version sections

See merge request isc-projects/bind9!2534
2019-11-06 11:33:52 +00:00
Michał Kępień 169a142cfe Rebuild output files 2019-11-06 11:24:11 +01:00
Michał Kępień f0f34839a4 Update URLs used in release notes
Some URLs used in release notes became outdated.  Make sure they point
to currently available resources.
2019-11-06 11:23:45 +01:00
Michał Kępień c9530390dd Split release notes into per-version sections
Intertwining release notes from different BIND releases in a single XML
file has caused confusion in the past due to different (and often
arbitrary) approaches to keeping/removing release notes from older
releases on different BIND branches.  Divide doc/arm/notes.xml into
per-version sections to simplify determining the set of changes
introduced by a given release and to make adding/reviewing release notes
less error-prone.
2019-11-06 11:23:42 +01:00
Ondřej Surý 49547db798 Merge branch '1285-documentation-update-to-sortlist-feature-bugs-42615-v9_11' into 'v9_11'
arm: Add a sentence about overlaping selectors in sortlist statement

See merge request isc-projects/bind9!2533
2019-11-06 10:09:57 +00:00
Ondřej Surý 08249a7f57 arm: Add a sentence about overlaping selectors in sortlist statement
(cherry picked from commit ebc61946b2)
2019-11-06 11:08:59 +01:00
Mark Andrews 41cb1461aa Merge branch '1301-geoip2-default-data-path-v9_11' into 'v9_11'
Resolve "geoip2 default data path"

See merge request isc-projects/bind9!2527
2019-11-06 01:30:42 +00:00
Mark Andrews 517964c7a1 Add CHANGES note
(cherry picked from commit 7b10faf108)
2019-11-06 12:13:55 +11:00
Mark Andrews 0da1eb6bfd Regenerate configure.
(cherry picked from commit 51fb42edcb)
2019-11-06 12:13:36 +11:00
Mark Andrews 0e6259fd7b Have 'named -V' report geoip-directory
(cherry picked from commit 2eaa75c380)
2019-11-06 12:12:43 +11:00
Mark Andrews 7e79ebeeba The default geoip-directory should be <MAXMINDDB_PREFIX>/share/GeoIP
(cherry picked from commit fcd765a59d)
2019-11-06 11:50:09 +11:00
Mark Andrews ee0a70a67f MAXMINDDB_LIBS should end with '/lib' not '/libs'
(cherry picked from commit e0fe33506c)
2019-11-06 11:50:04 +11:00
Ondřej Surý d23b8915a7 Merge branch '45-integrate-llvm-scan-build-to-gitlab-ci-workflow-v9_11' into 'v9_11'
Resolve "Integrate LLVM scan-build to GitLab CI workflow"

See merge request isc-projects/bind9!2522
2019-11-05 22:34:38 +00:00
Ondřej Surý 178f2f8426 Initialize the sockaddr_in and sockaddr_in6 structures
This fixes two scan-build false positives:

context.c:441:23: warning: The left operand of '!=' is a garbage value
                    || sin.sin_port != htons(lwres_udp_port))
                       ~~~~~~~~~~~~ ^
context.c:447:25: warning: The left operand of '!=' is a garbage value
                    || sin6.sin6_port != htons(lwres_udp_port))
                       ~~~~~~~~~~~~~~ ^
2 warnings generated.

The sin and sin6 structures are used as argument to recvfrom call and
they are properly filled by the call.
2019-11-05 23:07:07 +01:00
Ondřej Surý 4e3d0cb7ac Remove a dead assignment
This fixes the following scan-build warning:

zt.c:325:12: warning: Value stored to 'zt' during its initialization is never read
        dns_zt_t *zt = params->zt;
                  ^~   ~~~~~~~~~~
1 warning generated.
2019-11-05 23:07:07 +01:00
Ondřej Surý 12f6a44256 Ensure name count stays positive in remove_nodes()
This fixes a scan-build false-positive:

rbt_test.c:914:8: warning: Assigned value is garbage or undefined
                node %= *names_count;
                     ^  ~~~~~~~~~~~~
1 warning generated.

The remove_nodes() function is always called with correct arguments
(num_names is in <1;*names_count> range), so the modulo by zero cannot
happen, but nevertheless scan-build detects this and it's easy to fix.
2019-11-05 23:07:07 +01:00
Mark AndrewsandOndřej Surý 16ad444207 Record when querytsig is valid
(cherry picked from commit 4938f97c97)

This commit was cherry-picked from v9_14 and it fixes the following
scan-build warnings:

tsig.c:1030:20: warning: Assigned value is garbage or undefined
                        tsig.timesigned = querytsig.timesigned;
                                        ^ ~~~~~~~~~~~~~~~~~~~~
tsig.c:1092:26: warning: The right operand of '<' is a garbage value
                        if (response && bytes < querytsig.siglen)
                                              ^ ~~~~~~~~~~~~~~~~
2 warnings generated.
2019-11-05 23:06:29 +01:00
Ondřej Surý c1587e8587 libdns: add missing checks for return values in dnstap unit test
Related scan-build report:

dnstap_test.c:169:2: warning: Value stored to 'result' is never read
        result = dns_test_makeview("test", &view);
        ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dnstap_test.c:193:2: warning: Value stored to 'result' is never read
        result = dns_compress_init(&cctx, -1, dt_mctx);
        ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 warnings generated.

(cherry picked from commit e9acad638e)
2019-11-05 09:53:18 +01:00
Ondřej Surý d374009464 named: remove named_g_defaultdnstap global variable
The named_g_defaultdnstap was never used as the dnstap requires
explicit configuration of the output file.

Related scan-build report:

./server.c:3476:14: warning: Value stored to 'dpath' during its initialization is never read
        const char *dpath = named_g_defaultdnstap;
                    ^~~~~   ~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

(cherry picked from commit 6decd14592)
2019-11-05 09:52:52 +01:00
Ondřej Surý 9d0882168a tests: Resolve scan-build false positive by adding extra assertion
(cherry picked from commit 309dca417c)
2019-11-05 09:49:59 +01:00
Ondřej Surý 4cdcfc3f25 dnssec: don't qsort() empty hashlist
(cherry picked from commit 6bbb0b8e42)
2019-11-05 09:49:58 +01:00
Ondřej Surý 1968639776 named: Add INSIST() after bindkeysfile configuration load to silence scan-build FP
(cherry picked from commit 6bf364aec8)
2019-11-05 09:49:58 +01:00
Ondřej Surý f1efd972ae tests: Workaround scan-build false positive with FD_ZERO/FD_SET
(cherry picked from commit 7aa7f8592c)
2019-11-05 09:49:57 +01:00
Ondřej Surý 0c277c7053 libdns: Remove useless checks for ISC_R_MEMORY, which cannot happen now
(cherry picked from commit 80b55d25de)
2019-11-05 09:49:57 +01:00
Ondřej Surý f508126fc8 ci: Add LLVM/Clang scan-build checks into the GitLab CI
(cherry picked from commit 5f584310bc)
2019-11-05 09:49:56 +01:00
Michal Nowak add1c6cb47 Merge branch 'mnowak/1244-extra-quotes-around-TESTSOCK6/9_11' into 'v9_11'
[9.11] digdelv: Extra quotes prevent IPv6 runs

See merge request isc-projects/bind9!2516
2019-11-01 10:05:27 +00:00
Michal Nowak d7ad5d07ab digdelv: Extra quotes prevent IPv6 runs
Portion of the digdelv test are skipped on IPv6 due to extra quotes
around $TESTSOCK6: "I:digdelv:IPv6 unavailable; skipping".

Researched by @michal.

Regressed with 351efd8812.

(cherry picked from commit 1b6419f8a7)
2019-11-01 10:05:27 +00:00
Ondřej Surý f4fcb9c051 Merge branch '876-documentation-feedback-v9_11' into 'v9_11'
Resolve "Documentation feedback."

See merge request isc-projects/bind9!2514
2019-10-31 10:30:38 -04:00
Ondřej Surý 2e48ce98e0 arm: add more text describing interaction between automatic-interface-scan and interface-interval
(cherry picked from commit e0618174b6)
2019-10-31 09:11:28 -05:00
Ondřej Surý def91f10b8 arm: Fix the default for the lock-file command, it's 'none'
(cherry picked from commit f7eea400a8)
2019-10-31 09:11:28 -05:00
Brian ConryandOndřej Surý af03546ede arm: Add an explanation on the effect of 'require-server-cookie yes;'
(cherry picked from commit c6f91f8bd0)
2019-10-31 09:11:27 -05:00
Mark AndrewsandOndřej Surý 34de1b6e0e arm: add why when to set 'require-server-cookie yes;'
(cherry picked from commit c5453ea328)
2019-10-31 09:11:26 -05:00
Mark AndrewsandOndřej Surý bedefad22d arm: document resolver-nonbackoff-tries and resolver-retry-interval
(cherry picked from commit 1ea6aadf6f)
2019-10-31 09:11:26 -05:00
Mark AndrewsandOndřej Surý 3e18044457 arm: add default values for require-server-cookie and send-cookie options
(cherry picked from commit d8abf4f5b6)
2019-10-31 09:11:25 -05:00
Michał Kępień 8736b918bf Merge branch '1059-prevent-tcp-failures-from-affecting-edns-stats-v9_11' into 'v9_11'
[v9_11] Prevent TCP failures from affecting EDNS stats

See merge request isc-projects/bind9!2512
2019-10-31 05:36:52 -04:00
Michał Kępień bfe0fc65fd Add CHANGES entry
5310.	[bug]		TCP failures were affecting EDNS statistics. [GL #1059]

(cherry picked from commit 36d3c66e4e)
2019-10-31 09:55:29 +01:00
Michał Kępień e6dd9db0e4 Prevent TCP failures from affecting EDNS stats
EDNS mechanisms only apply to DNS over UDP.  Thus, errors encountered
while sending DNS queries over TCP must not influence EDNS timeout
statistics.

(cherry picked from commit fce3c93ea2)
2019-10-31 09:55:06 +01:00
Michał Kępień 188bf16bf9 Merge branch 'michal/fix-copyrights' into 'v9_11'
[v9_11] Fix copyrights

See merge request isc-projects/bind9!2510
2019-10-31 04:49:40 -04:00
Michał Kępień baee930ba5 Fix copyrights 2019-10-31 09:47:26 +01:00
Michał Kępień 9b269a1f65 Merge branch '1059-prevent-query-loops-for-misbehaving-servers-v9_11' into 'v9_11'
[v9_11] Prevent query loops for misbehaving servers

See merge request isc-projects/bind9!2509
2019-10-31 04:45:55 -04:00
Michał Kępień a6331686a8 Prevent query loops for misbehaving servers
If a TCP connection fails while attempting to send a query to a server,
the fetch context will be restarted without marking the target server as
a bad one.  If this happens for a server which:

  - was already marked with the DNS_FETCHOPT_EDNS512 flag,
  - responds to EDNS queries with the UDP payload size set to 512 bytes,
  - does not send response packets larger than 512 bytes,

and the response for the query being sent is larger than 512 byes, then
named will pointlessly alternate between sending UDP queries with EDNS
UDP payload size set to 512 bytes (which are responded to with truncated
answers) and TCP connections until the fetch context retry limit is
reached.  Prevent such query loops by marking the server as bad for a
given fetch context if the advertised EDNS UDP payload size for that
server gets reduced to 512 bytes and it is impossible to reach it using
TCP.

(cherry picked from commit 6cd115994e)
2019-10-31 08:50:48 +01:00
Michał Kępień a4adb63c19 Merge branch '1275-make-geoip-use-ecs-yes-work-for-geoip2' into 'v9_11'
Make "geoip-use-ecs yes;" work for GeoIP2

See merge request isc-projects/bind9!2476
2019-10-30 11:08:36 -04:00
Michał Kępień 17311442f7 Add CHANGES entry
5309.	[bug]		"geoip-use-ecs yes;" was not working for GeoIP2.
			[GL #1275]
2019-10-30 16:05:55 +01:00
Michał Kępień a5f25f837f Make "geoip-use-ecs yes;" work for GeoIP2
Add a missing preprocessor condition to make "geoip-use-ecs yes;" work
for GeoIP2.
2019-10-30 16:05:28 +01:00
Mark Andrews 177f236437 Merge branch '1288-log-dns_r_unchanged-from-sync_secure_journal-at-info-level-in-receive_secure_serial-v9_11' into 'v9_11'
Resolve "Log DNS_R_UNCHANGED from sync_secure_journal at info level in receive_secure_serial."

See merge request isc-projects/bind9!2499
2019-10-29 21:48:44 -04:00
Mark Andrews 96f437a1bd add CHANGES
(cherry picked from commit e6ef7858c3)
2019-10-30 12:13:39 +11:00
Mark Andrews 5a28b235c8 Log DNS_R_UNCHANGED from sync_secure_journal() at info level in receive_secure_serial()
(cherry picked from commit 8eb09f3232)
2019-10-30 12:13:38 +11:00
Mark Andrews c812e87294 Merge branch 'u/fanf2/compilezone-hang-v9_11' into 'v9_11'
Fix hang in `named-compilezone | head`

See merge request isc-projects/bind9!2497
2019-10-29 20:15:52 -04:00
Tony FinchandMark Andrews bfa1642cd4 CHANGES
(cherry picked from commit 548f29a4d9)
2019-10-30 10:54:30 +11:00
Tony FinchandMark Andrews 5b4d12c407 Fix hang in named-compilezone | head
I was truncating zone files for experimental purposes when I found
that `named-compilezone | head` got stuck. The full command line that
exhibited the problem was:

	dig axfr dotat.at |
	named-compilezone -o /dev/stdout dotat.at /dev/stdin |
	head

This requires a large enough zone to exhibit the problem, more than
about 70000 bytes of plain text output from named-compilezone.
I was running the command on Debian Stretch amd64.

This was puzzling since it looked like something was suppressing the
SIGPIPE. I used `strace` to examine what was happening at the hang.
The program was just calling write() a lot to print the zone file, and
the last write() hanged until I sent it a SIGINT.

During some discussion with friends, Ian Jackson guessed that opening
/dev/stdout O_RDRW might be the problem, and after some tests we found
that this does in fact suppress SIGPIPE.

Since `named-compilezone` only needs to write to its output file, the
fix is to omit the stdio "+" update flag.

(cherry picked from commit a87ccea032)
2019-10-30 10:53:14 +11:00
Michał Kępień 063c600cbb Merge branch 'michal/add-centos-8-to-gitlab-ci-v9_11' into 'v9_11'
[v9_11] Add CentOS 8 to GitLab CI

See merge request isc-projects/bind9!2493
2019-10-29 04:22:35 -04:00
Michał Kępień 1fd47058dc Add CentOS 8 to GitLab CI
Ensure BIND can be tested on CentOS 8 in GitLab CI to more quickly catch
build and test errors on that operating system.

(cherry picked from commit dce1c05042)
2019-10-29 08:54:08 +01:00
Tinderbox User 5dfdc818d2 Merge branch 'v9_11_12' into v9_11 2019-10-24 05:58:38 +00:00
Mark Andrews abaeba97f2 Merge branch '1281-dnstap-per-view-configuration-v9_11' into 'v9_11'
Resolve "dnstap per view configuration"

See merge request isc-projects/bind9!2480
2019-10-21 19:43:17 -04:00
Mark Andrews 6440183a4d add CHANGES
(cherry picked from commit 6ce1e2e731)
2019-10-22 10:28:16 +11:00
Mark Andrews 5f67de5b7b check for relationship between dnstap and dnstap-output seperately
(cherry picked from commit c2fcc9f16f)
2019-10-22 10:28:16 +11:00
Mark Andrews e44f917e5e add more dnstap/dnstap-output combinations
(cherry picked from commit f3d53630c3)
2019-10-22 10:28:16 +11:00
Michał Kępień aa18a87862 Merge branch 'michal/fix-gitlab-ci-for-v9_11' into 'v9_11'
Fix GitLab CI for v9_11

See merge request isc-projects/bind9!2475
2019-10-17 06:21:48 -04:00
Michał Kępień af4bccd6a8 Revert "fix docs:sid:amd64: needs"
This reverts commit 26e802853e.
2019-10-17 12:07:31 +02:00
Ondřej SurýandMichał Kępień 6e78ede6cf Fix the triggering rule for autoreconf job (take 2)
(cherry picked from commit 3b339eb43f)
2019-10-17 12:05:55 +02:00
Ondřej SurýandMichał Kępień 0291dead5d Fix docs -> autoreconf dependencies in the .gitlab-ci.yml
(cherry picked from commit cc4c5482ef)
2019-10-17 12:05:48 +02:00
Michał Kępień 66f15af7e7 Merge branch 'michal/address-cppcheck-1.89-warnings-v9_11' into 'v9_11'
[v9_11] Address cppcheck 1.89 warnings

See merge request isc-projects/bind9!2474
2019-10-17 05:50:10 -04:00
Michał Kępień cacba609c7 Suppress cppcheck 1.89 false positive
cppcheck 1.89 emits a false positive for lib/isc/sha1.c:

    lib/isc/sha1.c:273:16: error: Uninitialized variable: block [uninitvar]
     (void)memmove(block, buffer, 64);
                   ^
    lib/isc/sha1.c:272:10: note: Assignment 'block=&workspace', assigned value is <Uninit>
     block = &workspace;
             ^
    lib/isc/sha1.c:273:16: note: Uninitialized variable: block
     (void)memmove(block, buffer, 64);
                   ^

This message started appearing with cppcheck 1.89 [1], but it will be
gone in the next release [2], so just suppress it for the time being.

[1] https://github.com/danmar/cppcheck/commit/af214e8212efa303e664920a468de00ee0b1fe3d

[2] https://github.com/danmar/cppcheck/commit/2595b826349a7ffbe1c958b806498b6e336bea33
2019-10-17 11:13:30 +02:00
Michał Kępień cb982f9225 Merge branch 'michal/cleanup-with-cc-alg-remnants-v9_11' into 'v9_11'
[v9_11] Remove remnants of the --with-cc-alg option

See merge request isc-projects/bind9!2470
2019-10-15 16:35:14 -04:00
Michał Kępień 983ef9b930 Remove remnants of the --with-cc-alg option
Commit afa81ee4e4 omitted some spots in
the source tree which are still referencing the removed --with-cc-alg
"configure" option.  Make sure the latter is removed completely.

(cherry picked from commit 428dcf3b49)
2019-10-15 22:00:40 +02:00
Michał Kępień 339c62ef18 Merge branch 'michal/limit-triggers-for-openbsd-system-test-jobs-v9_11' into 'v9_11'
[v9_11] Limit triggers for OpenBSD system test jobs

See merge request isc-projects/bind9!2466
2019-10-15 15:52:46 -04:00
Michał Kępień 83f46be9cd Limit triggers for OpenBSD system test jobs
When a GitLab CI runner is not under load, a single OpenBSD system test
job completes in about 12 minutes, which is considered decent.  However,
such jobs are usually multiplexed with other system test jobs on the
same host, which causes each of them to take even 40 minutes to
complete.  Taking retries into account, this is completely unacceptable
for everyday use, so only start OpenBSD system test jobs for pipelines
created through GitLab's web interface and for pipelines created for Git
tags.

(cherry picked from commit 603e04563b)
2019-10-15 21:48:48 +02:00
Michał Kępień 0437c4b71d Merge branch 'michal/minor-gitlab-ci-tweaks-v9_11' into 'v9_11'
[v9_11] Minor GitLab CI tweaks

See merge request isc-projects/bind9!2465
2019-10-15 15:45:59 -04:00
Michał Kępień e70e41f9fa Tweak dependencies for the Windows build job
Since the Windows build job does not use the files created as a result
of running "autoreconf -fi" in the "autoreconf:sid:amd64" job, set its
dependencies to an empty list.

Since it is currently not possible to use "needs: []" for jobs which do
not belong to the first stage of a pipeline, set the "needs" key for the
Windows build job to the "autoreconf:sid:amd64" job so that all build
jobs are started at the same time (without this change, the Windows
build job does not start until all jobs in the "precheck" stage are
finished).

As a side note, these changes also attempt to eliminate intermittent,
bogus GitLab error messages ("There has been a missing dependency
failure").

(cherry picked from commit dd97dfdc14)
2019-10-15 20:49:39 +02:00
Michał Kępień 41f88306d8 Fix artifacts created by the "autoreconf" CI job
The intended purpose of the "autoreconf:sid:amd64" GitLab CI job is to
run "autoreconf -fi" and then pass the updated files on to subsequent
non-Windows build jobs.  However, the artifacts currently created by
that job only include files which are not tracked by Git.  Since we
currently do track e.g. "configure" with Git, the aforementioned job is
essentially a no-op.  Fix by manually specifying the files generated by
the "autoreconf:sid:amd64" job that should be passed on to subsequent
build jobs.

(cherry picked from commit e83b322f7f)
2019-10-15 20:49:39 +02:00
Michał Kępień 0d9ec71580 Merge branch 'michal/add-openbsd-to-gitlab-ci-v9_11' into 'v9_11'
[v9_11] Add OpenBSD to GitLab CI

See merge request isc-projects/bind9!2460
2019-10-15 14:44:43 -04:00
Michał Kępień c5500efc77 Add OpenBSD to GitLab CI
Ensure BIND can be tested on OpenBSD in GitLab CI to more quickly catch
build and test errors on that operating system.

Some notes:

  - While GCC is packaged for OpenBSD, only old versions (4.2.1, 4.9.4)
    are readily available and none of them is the default system
    compiler, so we are only doing Clang builds in GitLab CI.

  - Unit tests are currently not run on OpenBSD because it ships with an
    old version of kyua which does not handle skipped tests properly.
    These jobs will be added when we move away from using kyua in the
    future as the test code itself works fine.

  - All OpenBSD jobs are run inside QEMU virtual machines, using GitLab
    Runner Custom executor.

(cherry picked from commit 07d2fcb544)
2019-10-15 16:38:37 +02:00
Michał Kępień 601de34899 Work around an OpenBSD "make" quirk
Consider the following Makefile:

    foo:
    	false

On OpenBSD, the following happens for this Makefile:

  - "make foo" returns 1,
  - "make -k foo" returns 0,
  - "make -k -j6 foo" returns 1.

However, if the .NOTPARALLEL pseudo-target is added to this Makefile,
"make -k -j6 foo" will return 0 as well.

Since bin/tests/Makefile contains the .NOTPARALLEL pseudo-target,
running "make -k -j6 test" from bin/tests/ on OpenBSD prevents any
errors from being reported through that command's exit code.

Work around the issue by running "make -k -j6 test" in the
bin/tests/system/ directory instead as bin/tests/system/Makefile does
not contain the .NOTPARALLEL pseudo-target and thus things work as
expected there.

(cherry picked from commit 6b5426e1a7)
2019-10-15 16:38:36 +02:00
Mark Andrews 4515107e5c Merge branch 'matthijs/bind9-1143-minor-doc-issue-parsing-incomplete-ipv4-v9_11' into 'v9_11'
Matthijs/bind9 1143 minor doc issue parsing incomplete ipv4 v9 11

See merge request isc-projects/bind9!2457
2019-10-14 07:30:35 -04:00
Mark Andrews 42f998ee14 Detect partial prefixes / incomplete IPv4 address in acls.
(cherry picked from commit fb87e669fb)
2019-10-14 22:12:16 +11:00
Ondřej Surý 3aefc17d38 Merge branch 'ondrej/1-week-artifact-expiration-v9_11' into 'v9_11'
Synchronize the lifetime of artifact to 1 week

See merge request isc-projects/bind9!2450
2019-10-10 02:09:49 -04:00
Ondřej Surý fd146b80e4 Synchronize the lifetime of artifact to 1 week
(cherry picked from commit 85c0bede78)
2019-10-10 07:48:37 +02:00
Mark Andrews 3f5e52d923 Merge branch 'marka-fix-needs' into 'v9_11'
Marka fix needs

See merge request isc-projects/bind9!2444
2019-10-04 01:41:25 -04:00
Mark Andrews 26e802853e fix docs:sid:amd64: needs 2019-10-04 15:11:41 +10:00
Mark Andrews f82eb514df Merge branch 'marka-cppcheck-fixes-v9_12-and-v9_14-v9_11' into 'v9_11'
Address cppcheck reports (v9_11/v9_14)

See merge request isc-projects/bind9!2443
2019-10-04 00:48:31 -04:00
Mark Andrews d2c51b9c4b Address cppcheck reports
(cherry picked from commit fcebc4f15b)
2019-10-04 14:34:21 +10:00
Mark Andrews 5082bda2a0 Merge branch 'marka-silence-clang-v9_11' into 'v9_11'
silence clang warning by using local variable.

See merge request isc-projects/bind9!2442
2019-10-03 21:54:42 -04:00
Mark Andrews 6a31216867 silence clang warning by using local variable.
'isc_commandline_index' is a global variable so it can theoretically
change result between if expressions.  Save 'argv[isc_commandline_index]'
to local variable 'arg1' and use 'arg1 == NULL' in if expressions
instead of 'argc < isc_commandline_index + 1'.  This allows clang
to correctly determine what code is reachable.

(cherry picked from commit 1b27ab8642)
2019-10-04 11:38:21 +10:00
Ondřej Surý 010b831a75 Merge branch 'ondrej/fix-docs-autoreconf-v9_11' into 'v9_11'
Fix docs -> autoreconf dependencies in the .gitlab-ci.yml (v9_11)

See merge request isc-projects/bind9!2438
2019-10-03 09:59:03 -04:00
Ondřej Surý 43bea8a00e Fix the triggering rule for autoreconf job (take 2) 2019-10-03 15:41:06 +02:00
Ondřej Surý 99e99a2662 Fix docs -> autoreconf dependencies in the .gitlab-ci.yml 2019-10-03 15:41:05 +02:00
Ondřej Surý 9bc6936650 Merge branch 'ondrej/enable-cppcheck-v9_11' into 'v9_11'
Enable Cppcheck for v9_11 branch

See merge request isc-projects/bind9!2433
2019-10-03 09:23:15 -04:00
Ondřej Surý 8e02b7fbfc Use util/suppressions.txt for Cppcheck suppressions list 2019-10-03 14:42:30 +02:00
Ondřej Surý fc48cdf6a9 lib/lwres/getipnode.c: Resolve possible Null pointer dereference (from Cppcheck) 2019-10-03 14:42:30 +02:00
Ondřej Surý b06f36a726 lib/isc/include/isc/stdatomic.h: Suppress preprocessorErrorDirective error from Cppcheck 2019-10-03 14:21:47 +02:00
Ondřej Surý 61b3ab76a5 lib/isc/random.c: Suppress preprocessorErrorDirective error from Cppcheck 2019-10-03 14:21:47 +02:00
Ondřej Surý d26c36a338 Remove randomly scattered additional style check suppressions that caused unmatchedSuppression
(cherry picked from commit a0d3614a60)
2019-10-03 14:21:47 +02:00
Ondřej Surý 7f0152632f lib/ns/query.c: Fix invalid order of DbC checks that could cause dereference before NULL check
(cherry picked from commit d1f035bbba)
2019-10-03 14:21:47 +02:00
Ondřej Surý b31143e249 lib/ns/interfacemgr.c: Fix invalid order of DbC checks that could cause dereference before NULL check
(cherry picked from commit 033f3eb580)
2019-10-03 14:21:46 +02:00
Ondřej Surý 99a71e6efa lib/isccfg/parser.c: Fix invalid order of DbC checks that could cause dereference before NULL check
(cherry picked from commit f855f09a55)
2019-10-03 14:21:46 +02:00
Ondřej Surý d2ca36346f lib/isccfg/aclconf.c: Suppress nullPointerRedundantCheck false positive
(cherry picked from commit 09232213d7)
2019-10-03 14:21:46 +02:00
Ondřej Surý 8f23f39fee lib/isc/unix/socket.c: Suppress preprocessorErrorDirective error from Cppcheck
(cherry picked from commit 026cf2ff4f)
2019-10-03 14:21:46 +02:00
Ondřej Surý 0e8e4c9174 lib/isc/task.c: Fix invalid order of DbC checks that could cause dereference before NULL check
(cherry picked from commit c662969da1)
2019-10-03 14:21:46 +02:00
Ondřej Surý 91999a143d lib/isc/pkc11.c: Fix possible NULL pointer dereference in push_attribute()
(cherry picked from commit e8948fd9b4)
2019-10-03 14:21:46 +02:00
Ondřej Surý 7accb1029f lib/isc/buffer.c: Fix invalid order of DbC checks that could cause dereference before NULL check
(cherry picked from commit e9f30fc211)
2019-10-03 14:21:46 +02:00
Ondřej Surý 1506ad6e76 lib/dns/tsig.c: Suppress Cppcheck false positive error uninitStructMember
(cherry picked from commit 8f2ad12d0a)
2019-10-03 14:21:46 +02:00
Ondřej Surý 49d017aa75 lib/dns/tests/rbt_serialize_test.c: Fix dereference before DbC check
(cherry picked from commit 14c174d921)
2019-10-03 14:21:46 +02:00
Ondřej Surý b20df811fb Instead of declaring unused va_list, just don't declare it at all
(cherry picked from commit 269d507ccc)
2019-10-03 14:21:46 +02:00
Ondřej Surý d76c92bba7 lib/dns/rdatalist.c: Fix dereference before DbC check
(cherry picked from commit 5fc7e98d29)
2019-10-03 14:21:46 +02:00
Ondřej Surý 8a01f18958 lib/dns/rdata/*/*.c: Silence false positive nullPointerRedundantCheck warning from Cppcheck
Cppcheck gets confused by:

void bar(void *arg) {
    foo *data = arg;
    REQUIRE(source != NULL);
    REQUIRE(data->member != NULL);
}

and for consistency the DbC check needs to be changed to

void bar(void *arg) {
    foo *data = arg;
    REQUIRE(data != NULL);
    REQUIRE(data->member != NULL);
}

(cherry picked from commit 66af8713d8)
2019-10-03 14:21:46 +02:00
Ondřej Surý 56a2cba642 lib/dns/rdata.c: Silence false positive nullPointerRedundantCheck warning from Cppcheck
(cherry picked from commit e68333aa67)
2019-10-03 14:21:46 +02:00
Ondřej Surý c1df74f9c9 lib/dns/rbtdb.c: Add DbC check to safely dereference rbtdb in rbt_datafixer()
(cherry picked from commit d508ce4036)
2019-10-03 14:21:46 +02:00
Ondřej Surý d04cc31c6e lib/dns/rbt.c: Suppress nullPointerRedundantCheck warnings from Cppcheck
(cherry picked from commit 8be5c3fcfc)
2019-10-03 14:21:46 +02:00
Ondřej Surý f8200d8802 lib/dns/name.c: Fix dereference before DbC check reported by Cppcheck
(cherry picked from commit 0f5860aad3)
2019-10-03 14:21:46 +02:00
Ondřej Surý 68ae992b71 lib/dns/gssapi_link.c: Fix %d -> %u formatting when printing unsigned integers
(cherry picked from commit cea871464f)
2019-10-03 14:21:46 +02:00
Ondřej Surý 601380c4ed Fix passing NULL after the last typed argument to a variadic function leads to undefined behaviour.
From Cppcheck:

Passing NULL after the last typed argument to a variadic function leads to
undefined behaviour.  The C99 standard, in section 7.15.1.1, states that if the
type used by va_arg() is not compatible with the type of the actual next
argument (as promoted according to the default argument promotions), the
behavior is undefined.  The value of the NULL macro is an implementation-defined
null pointer constant (7.17), which can be any integer constant expression with
the value 0, or such an expression casted to (void*) (6.3.2.3). This includes
values like 0, 0L, or even 0LL.In practice on common architectures, this will
cause real crashes if sizeof(int) != sizeof(void*), and NULL is defined to 0 or
any other null pointer constant that promotes to int.  To reproduce you might be
able to use this little code example on 64bit platforms. If the output includes
"ERROR", the sentinel had only 4 out of 8 bytes initialized to zero and was not
detected as the final argument to stop argument processing via
va_arg(). Changing the 0 to (void*)0 or 0L will make the "ERROR" output go away.

void f(char *s, ...) {
    va_list ap;
    va_start(ap,s);
    for (;;) {
        char *p = va_arg(ap,char*);
        printf("%018p, %s\n", p, (long)p & 255 ? p : "");
        if(!p) break;
    }
    va_end(ap);
}

void g() {
    char *s2 = "x";
    char *s3 = "ERROR";

    // changing 0 to 0L for the 7th argument (which is intended to act as
    // sentinel) makes the error go away on x86_64
    f("first", s2, s2, s2, s2, s2, 0, s3, (char*)0);
}

void h() {
    int i;
    volatile unsigned char a[1000];
    for (i = 0; i<sizeof(a); i++)
        a[i] = -1;
}

int main() {
    h();
    g();
    return 0;
}

(cherry picked from commit d8879af877)
2019-10-03 14:21:46 +02:00
Ondřej Surý 034df34d92 lib/dns/ecdb.c: Fix couple of DbC conditions reported by Cppcheck
(cherry picked from commit 91cc6b9eb9)
2019-10-03 14:21:46 +02:00
Ondřej Surý 8dea1118c7 Fix the constification of the dns_name_t * result variable for dns_tsig_identity()
(cherry picked from commit fa7475b77a)
2019-10-03 14:21:46 +02:00
Ondřej Surý aa5889959d bin/named/zoneconf.c: Reset dns_name_t *tsig on every view iteration
(cherry picked from commit 43925b2a8b)
2019-10-03 10:01:45 +02:00
Ondřej Surý d16e4994e3 Change dns_tsigkey_identity from macro to a function and const argument and result
(cherry picked from commit 2e304b0b7f)
2019-10-03 09:55:30 +02:00
Ondřej Surý 7f8bd90ad4 bin/named/server.c: Fix couple of DbC conditions reported by Cppcheck
(cherry picked from commit 476277a6e6)
2019-10-03 09:54:01 +02:00
Ondřej Surý fe9194880e bin/dig/dighost.c: Fix REQUIRE(!= NULL) condition after the variable has been dereferenced
(cherry picked from commit 9366ca769f)
2019-10-03 09:52:48 +02:00
Ondřej Surý a70bde79e1 bin/delv/delv.c: Fix invalid logic operation in REQUIRE() condition
(cherry picked from commit 9ab16d10d4)
2019-10-03 09:51:57 +02:00
Ondřej Surý bd5008fff5 Add Cppcheck job to the CI
This MR changes the default Debian sid build to wrap make with bear
that creates compilation database and use the compilation database
to run Cppcheck on the source files systematically.

The job is currently set to be allowed to fail as it will take some
time to fix all the Cppcheck detected issues.

(cherry picked from commit f55dc51f42)
2019-10-03 09:51:54 +02:00
Tinderbox User 3b6c6c88b0 Merge branch 'prep-release' into v9_11 2019-10-02 06:55:45 +00:00
Tinderbox User e21d12ee89 prep 9.11.12 2019-10-02 06:55:33 +00:00
Mark Andrews 2a4a5480f9 Merge branch 'marka-cppcheck-v9_11' into 'v9_11'
Address cppcheck warnings and errors in v9_11

See merge request isc-projects/bind9!2421
2019-10-01 19:54:14 -04:00
Mark Andrews 34a3f41e9e add CHANGES 2019-10-02 09:25:00 +10:00
Ondřej SurýandMark Andrews 66452fa91a Add Cppcheck job to the CI
This MR changes the default Debian sid build to wrap make with bear
that creates compilation database and use the compilation database
to run Cppcheck on the source files systematically.

The job is currently set to be allowed to fail as it will take some
time to fix all the Cppcheck detected issues.
2019-10-02 09:25:00 +10:00
Mark Andrews 9f144a5281 suppress cppcheck warning: literalWithCharPtrCompare 2019-10-02 09:25:00 +10:00
Mark Andrews bef21ed45d suppress cppcheck warning: constArgument 2019-10-02 09:25:00 +10:00
Mark Andrews 5dc016f67e suppress cppcheck warning: unreadVariable on union 2019-10-02 09:25:00 +10:00
Mark Andrews 07e5969fe0 suppress cppcheck warning: leakNoVarFunctionCall 2019-10-02 09:25:00 +10:00
Mark Andrews 983099fe61 suppress cppcheck warning: duplicateCondition 2019-10-02 09:25:00 +10:00
Mark Andrews 8020fc9c1c suppress cppcheck error: memleak he.h_name 2019-10-02 09:25:00 +10:00
Mark Andrews 0936009af6 fix cppcheck warning: unusedVariable by reducing the scope of 'result' 2019-10-02 09:25:00 +10:00
Mark Andrews 1f3f8263a8 fix cppcheck warning: shadowedVariable by reducing scope of 'p' 2019-10-02 09:25:00 +10:00
Mark Andrews c46caa92e8 fix cppcheck warning: unassignedVariable 2019-10-02 09:25:00 +10:00
Mark Andrews 73c1a7e03b fix cppcheck warnings: unreadVariable 2019-10-02 09:25:00 +10:00
Mark Andrews 875776e5a6 fix cppcheck warnings: adjust format strings to match arguments. 2019-10-02 09:25:00 +10:00
Mark Andrews d6a14935b7 fix cppcheck warnings: duplicateCondition 2019-10-01 21:28:30 +10:00
Mark Andrews 92a73fd1de fix cppcheck warning: identicalConditionAfterEarlyExit 2019-10-01 21:28:23 +10:00
Mark Andrews b318d4e151 fix cppcheck error: set *listenerp to NULL. 2019-10-01 21:28:19 +10:00
Ondřej Surý 43696e0c03 Merge branch '846-dig-idn-alabel-fallback-v9_11' into 'v9_11'
Resolve "dig cannot display ACE query if locale is not unicode"

See merge request isc-projects/bind9!2414
2019-09-30 06:45:06 -04:00
Ondřej Surý f7d5a51a5f Add CHANGES for GL #846
(cherry picked from commit dccec984c0)
2019-09-30 12:19:56 +02:00
Ondřej Surý 15cf43bb88 Test of valid A-label in locale that cannot display it only with non-broken idn2
The libidn2 library on Ubuntu Bionic is broken and idn2_to_unicode_8zlz() does't
fail when it should.  This commit ensures that we don't run the system test for
valid A-label in locale that cannot display with the buggy libidn2 as it would
break the tests.

(cherry picked from commit c42e3583f9)
2019-09-30 12:19:56 +02:00
Petr MenšíkandOndřej Surý bde93c8472 Emit warning on IDN output failure
Warning is emitted before any dig headers.

(cherry picked from commit 21371abd72)
2019-09-30 12:19:56 +02:00
Petr MenšíkandOndřej Surý 2e77d98c63 Modify idna test to fallback to ACE
Test valid A-label on input would be displayed as A-label on output if
locale does not allow U-label.

(cherry picked from commit ac0cf85f09)
2019-09-30 12:19:56 +02:00
Petr MenšíkandOndřej Surý 8e497b131c Fallback to ASCII on output IDN conversion error
It is possible dig used ACE encoded name in locale, which does not
support converting it to unicode. Instead of fatal error, fallback to
ACE name on output.

(cherry picked from commit c8a871e908)
2019-09-30 12:19:56 +02:00
Mark Andrews 2e4044fc9a Merge branch 'marka-correct-list-v9_11' into 'v9_11'
use correct list

See merge request isc-projects/bind9!2412
2019-09-28 21:17:35 -04:00
Mark Andrews 76745b8cb5 Address cut-and-paste error where list name was not changed in one instance for change 5292.
(cherry picked from commit 9cd308ac5e)
2019-09-29 10:52:47 +10:00
Michał Kępień fc1acd581a Merge branch '147-add-windows-to-gitlab-ci-v9_11' into 'v9_11'
[v9_11] Add Windows to GitLab CI

See merge request isc-projects/bind9!2409
2019-09-27 07:00:20 -04:00
Michał Kępień 6b8d591aa1 Update Windows-specific documentation
Bring the files describing Windows-specific aspects of building and
installing BIND up to date.  Remove the parts which are either outdated
(e.g. information about libxml2 bugs) or inconvenient to keep up to date
in the long run (e.g. ARM chapter numbers).

(cherry picked from commit 646fcb733e)
2019-09-27 12:13:39 +02:00
Michał Kępień facc6a051f Add Windows to GitLab CI
Ensure BIND can be tested on Windows in GitLab to more quickly catch
build and test errors on that operating system.

Some notes:

  - While build jobs are triggered for all pipelines, system test jobs
    are not - due to the time it takes to run the complete system test
    suite on Windows (about 20 minutes), the latter are only run for
    pipelines created through GitLab's web interface and for pipelines
    created for Git tags.

  - Only the "Release" build configuration is currently used.  Adding
    "Debug" builds is a matter of extending .gitlab-ci.yml, but it was
    not done for the time being due to questionable usefulness of
    performing such builds in GitLab CI.

  - Only a 64-bit build is performed.  Adding support for 32-bit builds
    is not planned to be implemented.

  - Unit tests are still not run on Windows, but adding support for that
    is on the roadmap.

  - All Windows GitLab CI jobs are run inside Windows Server containers,
    using the Custom executor feature of GitLab Runner as Windows Server
    2016 is not supported by GitLab Runner's native Docker on Windows
    executor and Windows Server 2019 is not yet widely available from
    hosting providers.

  - The Windows Docker image used by GitLab CI is not stored in the
    GitLab Container Registry as it is over 27 GB in size and thus
    passing it between GitLab and its runners is impractical.

  - There is no vcvarsall.bat variant written in PowerShell and batch
    scripts are no longer supported by GitLab Runner Custom executor, so
    the environment variables set by vcvarsall.bat are injected back
    into the PowerShell environment by processing the output of "set".

  - Visual Studio parallel builds are a bit different than "make -jX"
    builds as parallelization happens in two tiers: project parallelism
    (controlled by the "/maxCpuCount" msbuild.exe switch) and compiler
    parallelism (controlled by the "/MP" cl.exe switch).  To limit the
    total number of compiler processes spawned concurrently to a value
    similar to the one used for Unix builds, msbuild.exe is allowed to
    build at most 2 projects at once, each of which can spawn up to half
    of BUILD_PARALLEL_JOBS worth of compiler processes.  Using such
    parameters is a fairly arbitrary decision taken to solve the
    trade-off between compilation speed and runner load.

  - Configuring network addresses in Windows Server containers is
    tricky.  Adding 10.53.0.1/24 and similar addresses to the vEthernet
    interface created by Docker never causes ifconfig.bat to fail, but
    in fact only one container can have any given IP address configured
    at any given time (the request to add the same address in another
    container is silently ignored).  Thus, in order to allow multiple
    system test jobs to be run in parallel, the addresses used in system
    tests are configured on the loopback interfaces.  Interestingly
    enough, the addresses set on the loopback interfaces... persist
    between containers.  Fortunately, this is acceptable for the time
    being and only requires ifconfig.bat failures to be ignored (as
    ifconfig.bat will fail if it attempts to configure an already
    existing address on an interface).  We also need to wait for a brief
    moment after calling ifconfig.bat as the addresses the latter
    attempts to configure may not be immediately available after it
    returns (and that causes runall.sh to error out).  Finally, for some
    reason we also need to signal that the DNS servers on each loopback
    interface are to be configured using DHCP or else ifconfig.bat will
    fail to add the requested addresses.

  - Since named.pid files created by named instances used in system
    tests contain Windows PIDs instead of Cygwin PIDs and various
    versions of Cygwin "kill" react differently when passed Windows PIDs
    without the -W switch, all "kill" invocations in GitLab CI need to
    use that switch (otherwise they would print error messages which
    would cause stop.pl to assume the process being killed died
    prematurely).  However, to preserve compatibility with older Cygwin
    versions used in our other Windows test environments, we alter the
    relevant scripts "on the fly" rather than in the Git repository.

  - In the containers used for running system tests, Windows Error
    Reporting is configured to automatically create crash dumps in
    C:\CrashDumps.  This directory is examined after the test suite is
    run to ensure no crashes went under stop.pl's radar.

(cherry picked from commit ca36405a3d)
2019-09-27 12:13:39 +02:00
Michał Kępień 86c904769b Fix system test error reporting on Windows
Make sure the CYGWIN environment variable is set whenever system tests
are run on Windows to prevent stop.pl from making incorrect assumptions
about the environment it is running in, which triggers e.g. false
reports about named instances crashing on shutdown when system tests are
run on Windows.  This issue has not been caught earlier because the
CYGWIN environment variable was incidentally being set on a higher level
in our Windows test environments.

Error reporting for parallel system tests on Windows has been broken all
along: since all parallel.mk targets generated by parallel.sh pipe their
output through "tee", the return code from run.sh is lost and thus
running "make -f parallel.mk check" will not yield a non-zero return
code if some system tests fail.  The same applies to runsequential.sh.
Yet, runall.sh on Windows only sets its return code to a non-zero value
if either "make -f parallel.mk check" or runsequential.sh returns a
non-zero return code.  Fix by making runall.sh yield a non-zero return
code when testsummary.sh fails, which is the same approach as the one
used in the "test" target in bin/tests/system/Makefile.

(cherry picked from commit fed397c04b)
2019-09-27 12:13:39 +02:00
Michał Kępień 61e4c9198a Make VS solution upgrading unnecessary
Until now, the build process for BIND on Windows involved upgrading the
solution file to the version of Visual Studio used on the build host.
Unfortunately, the executable used for that (devenv.exe) is not part of
Visual Studio Build Tools and thus there is no clean way to make that
executable part of a Windows Server container.

Luckily, the solution upgrade process boils down to just adding XML tags
to Visual Studio project files and modifying certain XML attributes - in
files which we pregenerate anyway using win32utils/Configure.  Thus,
extend win32utils/Configure with three new command line parameters that
enable it to mimic what "devenv.exe bind9.sln /upgrade" does.  This
makes the devenv.exe build step redundant and thus facilitates building
BIND in Windows Server containers.

(cherry picked from commit 0476e8f1ac)
2019-09-27 12:13:39 +02:00
Michał Kępień 5cf3a982fb Enable building dnssec-cds.exe
Build configuration for the dnssec-cds Visual Studio project is absent
from the solution file template, which means the solution needs to be
upgraded using "devenv bind9.sln /upgrade" in order for the dnssec-cds
project to be built.  Add the build configuration for dnssec-cds to the
solution file template so that upgrading the solution is not necessary
for building that project.

(cherry picked from commit 1d5259b0a0)
2019-09-27 12:13:39 +02:00
Michał Kępień c2e452a931 Drop named-checkzone dependency on libbind9
named-checkzone does not use libbind9.  Update the Visual Studio project
file template for named-checkzone to reflect that, thus preventing
compilation issues during parallel builds.

(cherry picked from commit 918ebd9830)
2019-09-27 12:13:39 +02:00
Michał Kępień 7f87fce925 Fix building against OpenSSL 1.1.x on Windows
Backport portions of 05d7aa5734 required
to support compilation against OpenSSL 1.1.x on Windows.
2019-09-27 12:13:34 +02:00
Michał Kępień d7801d5c8e Merge branch 'marka-win32-vsconf-v9_11' into 'v9_11'
[v9_11] allow VSCONF to be overridden at runtime

See merge request isc-projects/bind9!2407
2019-09-27 03:15:22 -04:00
Mark AndrewsandMichał Kępień a3df8dca3e allow VSCONF to be overridden at runtime
(cherry picked from commit 2433e3e808)
2019-09-27 09:13:57 +02:00
Mark Andrews 723e1e358d Merge branch 'marka-resolver-fix-v9_11' into 'v9_11'
use test specific shell variables

See merge request isc-projects/bind9!2389
2019-09-27 02:39:16 -04:00
Mark Andrews e838d56624 use test specific shell variables
(cherry picked from commit 4a5400c1b7)
2019-09-27 16:22:26 +10:00
Michał Kępień 55be095bae Merge branch 'michal/prevent-unbuffered-stderr-io-on-windows-v9_11' into 'v9_11'
[v9_11] Prevent unbuffered stderr I/O on Windows

See merge request isc-projects/bind9!2402
2019-09-26 08:00:55 -04:00
Michał Kępień f1b89d0d9f Prevent unbuffered stderr I/O on Windows
Make stderr fully buffered on Windows to improve named performance when
it is logging to stderr, which happens e.g. in system tests.  Note that:

  - line buffering (_IOLBF) is unavailable on Windows,

  - fflush() is called anyway after each log message gets written to the
    default stderr logging channels created by libisc.

(cherry picked from commit c72da3497d)
2019-09-26 13:56:49 +02:00
Michał Kępień 4e94797a2d Merge branch 'michal/prevent-cygwin-from-concealing-non-abort-crashes-v9_11' into 'v9_11'
Prevent Cygwin from concealing non-abort() crashes

See merge request isc-projects/bind9!2395
2019-09-26 04:38:10 -04:00
Michał Kępień 4a2700064a Prevent Cygwin from concealing non-abort() crashes
BIND system tests are run in a Cygwin environment.  Apparently Cygwin
shell sets the SEM_NOGPFAULTERRORBOX bit in its process error mode which
is then inherited by all spawned child processes.  This bit prevents the
Windows Error Reporting dialog from being displayed, which I assume is
part of an effort to contain memory handling errors triggered by Cygwin
binaries in the Cygwin environment.  Unfortunately, this also prevents
automatic crash dump creation by Windows Error Reporting and Cygwin
itself does not handle memory errors in native Windows processes spawned
from a Cygwin shell.

Fix by clearing the SEM_NOGPFAULTERRORBOX bit inside named if it is
started in a Cygwin environment, thus overriding the Cygwin-set process
error mode in order to enable Windows Error Reporting to handle all
named crashes.

(cherry picked from commit 3d4b17806f)
2019-09-26 10:35:27 +02:00
Michał Kępień 3b0f8e04be Merge branch '1245-properly-initialize-libxml2-v9_11' into 'v9_11'
[v9_11] Properly initialize libxml2

See merge request isc-projects/bind9!2393
2019-09-26 04:31:58 -04:00
Michał Kępień 57fbc90c19 Add CHANGES entry
5293.	[bug]		On Windows, named crashed upon any attempt to fetch XML
			statistics from it. [GL #1245]

(cherry picked from commit b5bcd4b8d6)
2019-09-26 10:29:16 +02:00
Michał Kępień 8263496434 Properly initialize libxml2
When libxml2 is to be used in a multi-threaded application, the
xmlInitThreads() function must be called before any other libxml2
function.  This function does different things on various platforms and
thus one can get away without calling it on Unix systems, but not on
Windows, where it initializes critical section objects used for
synchronizing access to data structures shared between threads.  Add the
missing xmlInitThreads() call to prevent crashes on affected systems.

Also add a matching xmlCleanupThreads() call to properly release the
resources set up by xmlInitThreads().

(cherry picked from commit a3c0b00ef6)
2019-09-26 10:29:15 +02:00
Ondřej Surý 5f40fbe5ad Merge branch '1119-tsan-lib/dns/rbtdb.c-v9_11' into 'v9_11'
Fix unprotected access to rbtnode in lib/dns/rbtdb.c:add32()

See merge request isc-projects/bind9!2385
2019-09-25 07:54:25 -04:00
Ondřej Surý 8b86335504 Fix unprotected access to rbtnode in lib/dns/rbtdb.c:add32()
(cherry picked from commit e307273307)
2019-09-25 13:36:56 +02:00
Mark Andrews 77f9c25316 Merge branch '1205-named-crashes-when-setting-nsec3param-v9_11' into 'v9_11'
Resolve "named crashes when setting nsec3param"

See merge request isc-projects/bind9!2380
2019-09-23 21:58:18 -04:00
Mark Andrews 5ab7020114 add CHANGES
(cherry picked from commit 31c8f66f25)
2019-09-24 11:38:48 +10:00
Mark Andrews 7d89e40ea0 Queue nsec3param setting until receive_secure_serial has completed.
(cherry picked from commit 456888c00f)
2019-09-24 11:38:26 +10:00
Mark Andrews 1f6a15f6ff Move dns_zone_setdb() to after the db is created.
Addresses the database changing w/o the changes being done under task lock.
Fix: build the database before assigning it to the zone.

(cherry picked from commit 4e686f40e0)
2019-09-24 11:38:26 +10:00
Michał Kępień fdf438aa79 Merge branch '1239-fix-dnssec-dsfromkey-docs' into 'v9_11'
Fix information about default DS algorithm(s) used

See merge request isc-projects/bind9!2378
2019-09-23 10:29:14 -04:00
Michał Kępień 11f504681b Fix information about default DS algorithm(s) used
Commit 0a20176ca6 is an overly broad
backport: in BIND 9.11, dnssec-dsfromkey still defaults to outputting
both SHA-1 and SHA-256 digests.  Ensure the documentation matches the
code by correcting the former.
2019-09-23 16:25:21 +02:00
Michał Kępień cd3431ecb4 Merge branch 'michal/run-freebsd-jobs-automatically-for-all-pipelines-v9_11' into 'v9_11'
[v9_11] Run FreeBSD jobs automatically for all pipelines

See merge request isc-projects/bind9!2354
2019-09-17 14:26:18 -04:00
Michał Kępień 81f2d352b5 Run FreeBSD jobs automatically for all pipelines
No problems have been observed on the FreeBSD GitLab CI runner during
the burn-in period, when FreeBSD jobs needed to be triggered manually.
Thus, make the FreeBSD jobs run automatically along other GitLab CI
jobs.

(cherry picked from commit f7bc95409d)
2019-09-17 20:24:47 +02:00
Michal Nowak e28b488af2 Merge branch 'mnowak_README_fixes-v9_11' into 'v9_11'
Various README.md and README fixes

See merge request isc-projects/bind9!2336
2019-09-17 12:36:09 -04:00
Michal Nowak a675da5688 Various README.md and README fixes
Fixing typos, typographical glitches. Added backticks around binaries,
modules, and libraries so it's more consistent. Added a paragraph with
ISC Security Policy.

(cherry picked from commit 4e2fdd7ee9)
2019-09-17 18:35:14 +02:00
Michal Nowak 3b7e92cb42 Merge branch 'mnowak/Red_Hat_find_docbook-xsl-v9_11' into 'v9_11'
Find docbook-xsl and dblatex templates on Red Hat/Fedora

See merge request isc-projects/bind9!2352
2019-09-17 12:15:07 -04:00
Michal Nowak 1d9e114736 Remove unused configure checks for dblatex 2019-09-17 17:43:35 +02:00
Michal Nowak 0a0700bd4a Find docbook-xsl and dblatex templates on Red Hat/Fedora
`/usr/share/sgml/docbook/xsl-stylesheets` and `/usr/share/dblatex` are
places where docbook-style-xsl and, respectively, dblatex packages on
Red Hat systems put their XSL templates. Unless we hint this place it
has to be added to `./configure` manually (`--with-docbook-xsl=...`):
https://src.fedoraproject.org/rpms/bind/blob/master/f/bind.spec#_691.

On Fedora 30:

Before
```
./configure
...
checking for Docbook-XSL path... auto
checking for html/docbook.xsl... "not found"
checking for xhtml/docbook.xsl... "not found"
checking for manpages/docbook.xsl... "not found"
checking for html/chunk.xsl... "not found"
checking for xhtml/chunk.xsl... "not found"
checking for html/chunktoc.xsl... "not found"
checking for xhtml/chunktoc.xsl... "not found"
checking for html/maketoc.xsl... "not found"
checking for xhtml/maketoc.xsl... "not found"
checking for xsl/docbook.xsl... "not found"
checking for xsl/latex_book_fast.xsl... "not found"
```

After:
```
./configure
...
checking for Docbook-XSL path... auto
checking for html/docbook.xsl... /usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl
checking for xhtml/docbook.xsl... /usr/share/sgml/docbook/xsl-stylesheets/xhtml/docbook.xsl
checking for manpages/docbook.xsl... /usr/share/sgml/docbook/xsl-stylesheets/manpages/docbook.xsl
checking for html/chunk.xsl... /usr/share/sgml/docbook/xsl-stylesheets/html/chunk.xsl
checking for xhtml/chunk.xsl... /usr/share/sgml/docbook/xsl-stylesheets/xhtml/chunk.xsl
checking for html/chunktoc.xsl... /usr/share/sgml/docbook/xsl-stylesheets/html/chunktoc.xsl
checking for xhtml/chunktoc.xsl... /usr/share/sgml/docbook/xsl-stylesheets/xhtml/chunktoc.xsl
checking for html/maketoc.xsl... /usr/share/sgml/docbook/xsl-stylesheets/html/maketoc.xsl
checking for xhtml/maketoc.xsl... /usr/share/sgml/docbook/xsl-stylesheets/xhtml/maketoc.xsl
checking for xsl/docbook.xsl... /usr/share/dblatex/xsl/docbook.xsl
checking for xsl/latex_book_fast.xsl... /usr/share/dblatex/xsl/latex_book_fast.xsl
```

(cherry picked from commit 0055b9616e)
2019-09-17 17:40:25 +02:00
Ondřej Surý bb5c3c1ed2 Merge branch 'ondrej/improve-flycheck-configuration-v9_11' into 'v9_11'
Remove the current directory from the flycheck configuration

See merge request isc-projects/bind9!2348
2019-09-17 07:32:52 -04:00
Ondřej Surý a529c53eb1 Add the flycheck configuration from master branch 2019-09-17 13:29:52 +02:00
Mark Andrews c02dc3550d Merge branch 'marka-win32-fixup-v9_11' into 'v9_11'
reinstate error handler

See merge request isc-projects/bind9!2339
2019-09-13 00:20:57 -04:00
Mark Andrews 7fb0a0db53 reinstate error handler 2019-09-13 14:17:32 +10:00
Mark Andrews df6ff70a20 Merge branch 'marka-win32-fixup-v9_11' into 'v9_11'
win32 fixup v9_11

See merge request isc-projects/bind9!2338
2019-09-13 00:00:09 -04:00
Mark Andrews 0d23bc5b55 declare alloc_failure 2019-09-13 13:57:41 +10:00
Mark Andrews 9ee27573af declare result 2019-09-13 13:48:20 +10:00
Michał Kępień 217adaadb7 Merge branch 'michal/add-freebsd-to-ci-v9_11' into 'v9_11'
[v9_11] Add FreeBSD to CI

See merge request isc-projects/bind9!2335
2019-09-12 09:26:19 -04:00
Michał Kępień 498e102790 Add FreeBSD to GitLab CI
Ensure BIND can be tested on FreeBSD in GitLab to more quickly catch
build and test errors on that operating system.  Make the relevant jobs
optional until the CI environment supporting them is deemed stable
enough for continuous use.

FreeBSD jobs are run using the Custom executor feature of GitLab Runner.
Unlike the Docker executor, the Custom executor does not support the
"image" option and thus some way of informing the runner about the OS
version to use for a given job is necessary.  Arguably the simplest way
of doing that without a lot of code duplication in .gitlab-ci.yml would
be to use a YAML template with a "variables" block specifying the
desired FreeBSD release to use, but including such a template in a job
definition would cause issues in case other variables also needed to be
set for that job (e.g. CFLAGS or EXTRA_CONFIGURE for build jobs).  Thus,
only one FreeBSD YAML template is defined instead and the Custom
executor scripts on FreeBSD runners extract the OS version to use from
the CI job name.  This allows .gitlab-ci.yml variables to be defined for
FreeBSD jobs in the same way as for Docker-based jobs.

(cherry picked from commit 51af91d007)
2019-09-12 15:01:08 +02:00
Michał Kępień 4979ee9311 Set --logfile for all kyua invocations
When kyua is called without the --logfile command line option, the log
file is created at a default location which is derived from the HOME
environment variable.  On FreeBSD GitLab CI runners, /home is a
read-only directory and thus kyua invocations not using the --logfile
option fail when HOME is set to something beneath /home.  Set --logfile
to /dev/null for all kyua invocations whose logs are irrelevant in order
to prevent kyua failures caused by HOME being non-writable.

(cherry picked from commit 1bffa602ba)
2019-09-12 15:01:06 +02:00
Michał Kępień 3c933f7e3b Merge branch 'michal/misc-doc-fixes-v9_11' into 'v9_11'
[v9_11] Miscellaneous documentation fixes

See merge request isc-projects/bind9!2331
2019-09-12 08:01:35 -04:00
Michał Kępień be759d235b Put SW support policy URL in a separate paragraph
Ensure the URL for ISC's software support policy does not go off the
edge of the page in the PDF version of the release notes.
2019-09-12 13:59:08 +02:00
Michał Kępień 49a9cc3425 README: do not list outdated Microsoft systems
BIND is no longer being built for Windows XP or Windows Server 2003 as
these systems reached end of life, so do not mention them in README.
2019-09-12 13:59:01 +02:00
Michał Kępień 85016d7bee README: do not mention /usr/include on macOS
For newer versions of Xcode, "xcode-select --install" no longer installs
system headers into /usr/include (instead, they are installed in the
Xcode directory tree), so do not mention that path in the macOS section
of README to prevent confusion.

(cherry picked from commit 5af0b1d1d3)
2019-09-12 13:58:45 +02:00
Mark Andrews a6a532a09e Merge branch 'marka-split-notes-v9_11' into 'v9_11'
split notes.xml into sections v9_11

See merge request isc-projects/bind9!2328
2019-09-12 06:47:47 -04:00
Mark Andrews c7209b6cb0 split notes.xml into sections 2019-09-12 20:18:32 +10:00
Mark Andrews 4db052712b Merge branch '1043-cppcheck-detected-code-issues-v9_11' into 'v9_11'
Resolve "cppcheck-detected code issues"

See merge request isc-projects/bind9!2333
2019-09-12 06:07:37 -04:00
Mark Andrews ff700b2259 address or suppress cppcheck warnings
(cherry picked from commit b59fe46e76)
2019-09-12 19:31:56 +10:00
Tinderbox User 414bcc7f64 Merge branch 'prep-release' into v9_11 2019-09-09 14:48:35 +00:00
Tinderbox User 11f1c44264 prep for 9.11.11 2019-09-09 14:29:59 +00:00
Tinderbox User 1860bab56b prep for 9.11.11 2019-09-09 14:22:44 +00:00
Mark Andrews 530a8f262a Merge branch '1213-deadcode-missing-log-message' into 'v9_11'
Resolve "deadcode / missing log message"

See merge request isc-projects/bind9!2321
2019-09-09 02:59:38 -04:00
Mark Andrews 37245e7350 add CHANGES 2019-09-09 16:39:43 +10:00
Mark Andrews 47722eacbf remove accidentally back ported code 2019-09-09 16:27:22 +10:00
Mark Andrews 5cde0e14e5 Merge branch 'marka-fix-insist-v9_11' into 'v9_11'
Address "Value stored to 'dscpcount' is never read"

See merge request isc-projects/bind9!2320
2019-09-06 03:03:23 -04:00
Mark Andrews f125c32591 also insist that keycount == dscpcount
(cherry picked from commit dbdd19853e)
2019-09-06 16:44:31 +10:00
Mark Andrews f5cda8b307 Merge branch '1211-potential-null-pointer-dereference-in-isc_ht_find-in-9-11' into 'v9_11'
Resolve "Potential NULL pointer dereference in isc_ht_find in 9.11"

See merge request isc-projects/bind9!2310
2019-09-06 02:05:44 -04:00
Mark Andrews e54b97822d add CHANGES 2019-09-06 11:51:19 +10:00
Mark Andrews 5c23d41ba3 check that 'valuep' is not NULL befor assigning to '*valuep' 2019-09-06 11:50:30 +10:00
Mark Andrews 55a844b91b Merge branch 'marka-pipequeries' into 'v9_11'
silence clang warning in 9.11's pipequeries.c

See merge request isc-projects/bind9!2313
2019-09-05 00:09:38 -04:00
Mark Andrews 1225cd3f8b remove incorrect UNUSED(argc); add POST(argv); 2019-09-05 11:15:52 +10:00
Mark Andrews 494184f8b9 Merge branch 'marka-fix-rndc-reload-v9_11' into 'v9_11'
use v9_11 style rndc reload

See merge request isc-projects/bind9!2306
2019-09-04 04:42:47 -04:00
Mark Andrews 12b2727382 use v9_11 style rndc reload 2019-09-04 18:23:41 +10:00
Mark Andrews 892c8b9e7a Merge branch 'marka-fix-maxudp-v9_11' into 'v9_11'
fix backport of maxudp for windows

See merge request isc-projects/bind9!2305
2019-09-04 02:27:27 -04:00
Mark Andrews 34eba51728 fix backport of maxudp for windows 2019-09-04 16:09:07 +10:00
Mark Andrews fc84433dc5 Merge branch '1208-potential-for-null-pointer-de-reference-cwe-476-in-file-client-c' into 'v9_11'
Resolve "Potential for NULL pointer de-reference (CWE-476) in file 'client.c'"

See merge request isc-projects/bind9!2303
2019-09-04 02:00:20 -04:00
Mark Andrews eb83741a62 add CHANGES 2019-09-04 15:16:13 +10:00
Mark Andrews 721939680d address potential NULL pointer dereference 2019-09-04 15:08:06 +10:00
Mark Andrews 237a6c56aa Merge branch '1207-bind-potential-for-null-pointer-de-references-plus-memory-leaks-cwe-476-in-file-dlz_mysqldyn_mod-c-v9_11' into 'v9_11'
Resolve "BIND | Potential for NULL pointer de-references plus memory leaks (CWE-476) in file 'dlz_mysqldyn_mod.c'"

See merge request isc-projects/bind9!2302
2019-09-04 00:59:12 -04:00
Mark Andrews 8ccfd14a52 add CHANGES
(cherry picked from commit 8b65ac9128)
2019-09-04 14:38:17 +10:00
Mark Andrews a0784e7a39 address NULL pointer dereferences
(cherry picked from commit 2de94dd4c4)
2019-09-04 14:38:17 +10:00
Mark Andrews b92c8c146a Merge branch '837-win32-legacy-system-test-failure-v9_11' into 'v9_11'
Resolve "win32 legacy system test failure"

See merge request isc-projects/bind9!2298
2019-09-03 21:24:31 -04:00
Mark Andrews 25361548a5 add CHANGES
(cherry picked from commit f0fd713f17)
2019-09-04 11:09:31 +10:00
Mark Andrews da08c99d5b silence dos2unix messages
(cherry picked from commit 2390d16955)
2019-09-04 11:09:31 +10:00
Mark Andrews b44ad05d20 implement maxudp under windows
(cherry picked from commit 2f558854b7)
2019-09-04 11:09:31 +10:00
Ondřej Surý 96ab258bd9 Merge branch '1196-misaligned-address-in-siphash-c-v9_11' into 'v9_11'
Resolve "Misaligned address in siphash.c"

See merge request isc-projects/bind9!2292
2019-09-03 05:00:45 -04:00
Ondřej Surý 3c85a1f104 Fix alignment issues in the native implementation of isc_siphash24()
The native implementation's conversion from the uint8_t buffers to uint64_t now
follows the reference implementation that doesn't require aligned buffers.
2019-09-02 13:22:40 +02:00
Evan Hunt 1d74e507c0 Merge branch '1146-rpz-search-v9_11' into 'v9_11'
use an rbtnodechain for wildcard matching in RPZ summary db

See merge request isc-projects/bind9!2287
2019-08-29 23:24:10 -04:00
Evan Hunt 0dae760192 CHANGES
(cherry picked from commit 22349d919c)
2019-08-29 20:05:25 -07:00
Evan Hunt 564a62bc2f use an rbtnodechain to walk up labels
when looking for a possible wildcard match in the RPZ summary database,
use an rbtnodechain to walk up label by label, rather than using the
node's parent pointer.

(cherry picked from commit 6e9be9a952)
2019-08-29 20:05:22 -07:00
Mark Andrews f416dfaea0 Merge branch '1189-don-t-escape-commas-when-reporting-named-s-command-line-v9_11' into 'v9_11'
Resolve "Don't escape commas when reporting named's command line."

See merge request isc-projects/bind9!2284
2019-08-29 21:03:58 -04:00
Mark Andrews 747197dd21 add CHANGES
(cherry picked from commit ecba23bc24)
2019-08-30 10:44:54 +10:00
Mark Andrews 79dd970a73 don't escape commas when saving named's command line
(cherry picked from commit 70dd93bf8a)
2019-08-30 10:44:51 +10:00
Ondřej Surý 5ea8a0c758 Merge branch 'ondrej/use-needs-kw-in-gitlab-ci-v9_14-v9_11' into 'v9_11'
Ondrej/use needs kw in gitlab ci v9 14 v9 11

See merge request isc-projects/bind9!2282
2019-08-29 10:19:56 -04:00
Ondřej Surý 397249f0b3 Fix uninitialized variable warning in restore_nsec3param()
(cherry picked from commit 1c084c35f0)
2019-08-29 16:04:05 +02:00
Ondřej Surý 2e35a769b7 Synchronize the .gitlab-ci.yml with master
(cherry picked from commit 53058ce4b3)
2019-08-29 16:04:03 +02:00
Ondřej Surý 4b707744fb Swap unit and system stages
(cherry picked from commit 3f2de6d39c)
(cherry picked from commit 173ecd41a2)
2019-08-29 16:03:25 +02:00
Ondřej Surý 82d41bd33d Further improve the CI by starting the build and docs right after autoreconf
(cherry picked from commit fc834aa4bc)
(cherry picked from commit 6464b2e962)
2019-08-29 16:03:25 +02:00
Ondřej Surý 10fcfe65fe Split the system and unit tests into separate stages
(cherry picked from commit 008b73fb41)
(cherry picked from commit 76e8f7783d)
2019-08-29 16:03:24 +02:00
Ondřej Surý fe8579592f Make use of DAG for GitLab Pipelines
GitLab 12.2 has introduced Directed Acyclic Graphs in the GitLab CI[1] that
allow jobs to run out-of-order and not wait for the whole previous stage to
complete.

1. https://docs.gitlab.com/ee/ci/directed_acyclic_graph/

(cherry picked from commit 04ce124279)
(cherry picked from commit 1d04597702)
2019-08-29 16:03:22 +02:00
Mark Andrews e96f1e1c84 Merge branch '1199-return-value-from-open-not-checked-v9_11' into 'v9_11'
Resolve "Return value from open() not checked."

See merge request isc-projects/bind9!2275
2019-08-28 20:42:01 -04:00
Mark Andrews b94f0db15b check that open() succeeded
(cherry picked from commit 510306c654)
2019-08-29 10:26:22 +10:00
Mark Andrews bfb7081ada Merge branch '1201-add-llq-option-v9_11' into 'v9_11'
Resolve "Add LLQ option"

See merge request isc-projects/bind9!2272
2019-08-28 04:03:01 -04:00
Mark Andrews b67c6fe8bd Add support for displaying EDNS option LLQ.
(cherry picked from commit d98f446d3f)
2019-08-28 17:48:24 +10:00
Mark Andrews 1d38b56da9 Merge branch '1187-ddns-rejected-if-zone-contains-cds-cdnskey-v9_11' into 'v9_11'
Resolve "DDNS rejected if zone contains CDS/CDNSKEY"

See merge request isc-projects/bind9!2270
2019-08-28 03:43:18 -04:00
Mark Andrews 36b367a472 add CHANGES
(cherry picked from commit ba26c6eb48)
2019-08-28 17:29:20 +10:00
Mark Andrews 27daac1e4b add good and bad CDS / CDNSKEY test zones
(cherry picked from commit 30610eb9a5)
2019-08-28 17:29:20 +10:00
Mark Andrews ad1950439c fix dnssec system tests that fail now that we call dns_zone_cdscheck
(cherry picked from commit 3705605e0b)
2019-08-28 17:18:51 +10:00
Mark Andrews 6aee585e94 add dns_zone_cdscheck to integrity checks
(cherry picked from commit cd40c9fe61)
2019-08-28 16:27:09 +10:00
Mark Andrews 70a85ab614 implement getoriginnode for sdb
(cherry picked from commit 2ebc4776ca)
2019-08-28 16:26:24 +10:00
Tinderbox User 815084f7c7 Merge branch 'prep-release' into v9_11 2019-08-13 09:49:39 +00:00
Tinderbox User 65e5b68ed6 prep 9.11.10 2019-08-13 09:47:16 +00:00
Tinderbox User eb55184bda prep 9.11.10 2019-08-13 09:34:56 +00:00
Michał Kępień 65fde68c62 Merge branch '1110-clarify-relationship-between-acls-and-rpz-v9_11' into 'v9_11'
[v9_11] Clarify relationship between ACLs and RPZ

See merge request isc-projects/bind9!2258
2019-08-12 03:50:23 -04:00
Michał Kępień ddb2651106 Clarify relationship between ACLs and RPZ
In the ARM section about RPZ, add text explicitly stating that ACLs take
precedence over RPZ to prevent users from expecting RPZ actions to be
applied to queries coming from clients which are not permitted access to
the resolver by ACLs.

(cherry picked from commit 33bddbb5d1)
2019-08-12 09:48:16 +02:00
Michał Kępień a7baef2250 Merge branch 'michal/fix-faulty-backport-which-broke-the-windows-build' into 'v9_11'
Fix faulty backport which broke the Windows build

See merge request isc-projects/bind9!2244
2019-08-08 15:00:16 -04:00
Michał Kępień 3806811c04 Fix faulty backport which broke the Windows build
Commit 91307842b8 inadvertently mangled
the XML structure inside lib/isc/win32/libisc.vcxproj.filters.in, thus
breaking the Windows build.  Add the missing XML tags to make Windows
builds work again.
2019-08-08 20:45:30 +02:00
Michał Kępień 68c95f0b85 Merge branch 'michal/implement-a-convenience-function-for-rndc-dumpdb-v9_11' into 'v9_11'
[v9_11] Implement a convenience function for "rndc dumpdb"

See merge request isc-projects/bind9!2250
2019-08-08 09:32:46 -04:00
Michał Kępień 323c309724 Use rndc_dumpdb() in the "sfcache" system test
(cherry picked from commit 4a8b3a8ac0)
2019-08-08 15:12:12 +02:00
Michał Kępień 999e04854b Use rndc_dumpdb() in the "rndc" system test
(cherry picked from commit 443449863b)
2019-08-08 15:12:12 +02:00
Michał Kępień e641d74a8a Use rndc_dumpdb() in the "dnssec" system test
(cherry picked from commit 44c0cc881f)
2019-08-08 15:12:12 +02:00
Michał Kępień fb55b7dabd Use rndc_dumpdb() in the "cookie" system test
(cherry picked from commit cbf32b901b)
2019-08-08 15:12:12 +02:00
Michał Kępień 7276b6756e Use rndc_dumpdb() in the "cacheclean" system test
(cherry picked from commit 22d5355782)
2019-08-08 15:12:12 +02:00
Michał Kępień 678a631f54 Implement a convenience function for "rndc dumpdb"
Add a helper shell function, rndc_dumpdb(), which provides a convenient
way to call "rndc dumpdb" for a given server with optional additional
arguments.  Since database dumping is an asynchronous process, the
function waits until the dump is complete before returning, which
prevents false positives in system tests caused by inspecting the dump
before its preparation is finished.  The function also renames the dump
file before returning so that it does not get overwritten by subsequent
calls; this retains forensic data in case of an unexpected test failure.

(cherry picked from commit ab78e350dd)
2019-08-08 15:12:12 +02:00
Ondřej Surý 32232caaa4 Merge branch '1182-add-older-autoconf-pkg-config-compat-macros-v9_11' into 'v9_11'
Add PKG_CHECK_VAR and AS_VAR_COPY compat macros (Courtesy of ycflash)

See merge request isc-projects/bind9!2248
2019-08-08 09:09:42 -04:00
Ondřej Surý 8cdc9c28b9 Add PKG_CHECK_VAR and AS_VAR_COPY compat macros (Courtesy of ycflash)
(cherry picked from commit d80b6ec879)
2019-08-08 14:58:03 +02:00
Evan Hunt ee5f5b186d Merge branch 'each-mdig-multi-norrcomments-v9_11' into 'v9_11'
minor bugfix in mdig: when using +multi, +norrcomments was ignored

See merge request isc-projects/bind9!2241
2019-08-08 00:19:05 -04:00
Evan Hunt 529a81217b added "mdig +multi +norrcomment" test; also fixed the flawed dig test
(cherry picked from commit 93ad3eea90)
2019-08-07 21:05:53 -07:00
Evan Hunt 3562b0003f minor bugfix in mdig: when using +multi, +norrcomments was ignored
(cherry picked from commit edab51b420)
2019-08-07 20:55:14 -07:00
Ondřej Surý e3903e8396 Merge branch '1148-deadlock-hangs-named-v9_11' into 'v9_11'
Convert (dns_view_t){ .weakrefs } to isc_refcount_t

See merge request isc-projects/bind9!2227
2019-08-07 05:46:45 -04:00
Ondřej Surý e80c4c3431 Have the dns_client hold a .references until all external references are removed
so that cleanup can all be done in dns_client_destroy().
2019-08-07 11:35:06 +02:00
Mark AndrewsandOndřej Surý be8af3afb7 Have the view hold a weakref until all external references are removed
so that cleanup can all be done in dns_view_weakattach().
2019-08-06 17:18:48 +02:00
Ondřej Surý 6353032a8a lib/isc/app_api.c: Protect the global is_running bool variable with a mutex 2019-08-06 15:03:35 +02:00
Ondřej Surý a7c9a52c89 lib/dns/resolver.c: Convert (dns_view_t *)->weakrefs to isc_refcount_t
There's a deadlock in BIND 9 code where (dns_view_t){ .lock } and
(dns_resolver_t){ .buckets[i].lock } gets locked in different order.  When
view->weakrefs gets converted to a reference counting we can reduce the locking
in dns_view_weakdetach only to cases where it's the last instance of the
dns_view_t object.
2019-08-06 15:03:35 +02:00
Evan Hunt 18f56f1e3d Merge branch '1170-dig-comments-v9_11' into 'v9_11'
Resolve "dig +nocomment still comments"

See merge request isc-projects/bind9!2232
2019-08-06 01:11:52 -04:00
Evan Hunt c6694fa017 clarify descriptions of comment-related options in dig usage and man page
(cherry picked from commit 9679c8c20a)
2019-08-05 21:58:40 -07:00
Evan Hunt 67b153ac8a always check 'printcmd' before printing cmdline message
(cherry picked from commit 6d50f7d924)
2019-08-05 21:57:40 -07:00
Mark Andrews 1955a63216 Merge branch '964-use-referral-ds-record-when-validating-v9_11' into 'v9_11'
Resolve "Use referral DS record when validating"

See merge request isc-projects/bind9!2229
2019-08-02 03:04:43 -04:00
Mark Andrews d83241a3b3 add CHANGES
(cherry picked from commit ac28cc14e1)
2019-08-02 16:52:57 +10:00
Mark Andrews 153512960b check that example/DS is not fetched when validating a.example
(cherry picked from commit 4293a2f4bf)
2019-08-02 16:52:57 +10:00
Mark Andrews cfbefb57d6 Store the DS and RRSIG(DS) with trust dns_trust_pending_answer
so that the validator can validate the records as part of validating
the current request.

(cherry picked from commit 57a328d67e)
2019-08-02 16:52:57 +10:00
Mark Andrews 74c39de667 Merge branch '1159-bits-65-72-of-the-dns64-prefix-are-supposed-to-be-zero-v9_11' into 'v9_11'
Resolve "Bits 64..71 of the dns64 prefix are supposed to be zero"

See merge request isc-projects/bind9!2221
2019-07-31 08:59:59 -04:00
Mark Andrews 2fc1234b4c add CHANGES
(cherry picked from commit d95ae93dd3)
2019-07-31 22:45:02 +10:00
Mark Andrews 30f5a99364 check that bits 64..71 in a dns64 prefix are zero
(cherry picked from commit a7ec7eb6ed)
2019-07-31 22:45:02 +10:00
Michał Kępień e74ec0627f Merge branch 'michal/wildcard-system-test-make-root-hints-consistent-with-authoritative-data-v9_11' into 'v9_11'
[v9_11] "wildcard" system test: make root hints consistent with authoritative data

See merge request isc-projects/bind9!2218
2019-07-31 05:43:19 -04:00
Michał Kępień 6987363936 Make root hints consistent with authoritative data
Multiple resolvers in the "wildcard" system test are configured with a
single root hint: "ns.root-servers.nil", pointing to 10.53.0.1, which is
inconsistent with authoritative data served by ns1.  This may cause
intermittent resolution failures, triggering false positives for the
"wildcard" system test.  Prevent this from happening by making ns2, ns3,
and ns5 use root hints corresponding to the contents of ns1/root.db.in.

(cherry picked from commit dd430c3093)
2019-07-31 11:07:47 +02:00
Michał Kępień 1d9ec9e386 Merge branch 'michal/staticstub-system-test-make-root-hints-consistent-with-authoritative-data-v9_11' into 'v9_11'
[v9_11] "staticstub" system test: make root hints consistent with authoritative data

See merge request isc-projects/bind9!2216
2019-07-31 03:42:42 -04:00
Michał Kępień 9829962c81 Make root hints consistent with authoritative data
The ns2 named instance in the "staticstub" system test is configured
with a single root hint commonly used in BIND system tests
(a.root-servers.nil with an address of 10.53.0.1), which is inconsistent
with authoritative data served by ns1.  This may cause intermittent
resolution failures, triggering false positives for the "staticstub"
system test.  Prevent this from happening by making ns1 serve data
corresponding to the contents of bin/tests/system/common/root.hint.

(cherry picked from commit 4b5e1da0e3)
2019-07-31 09:18:24 +02:00
Michał Kępień ca21075c45 Merge branch 'michal/update-gitlab-ci-to-fedora-30-v9_11' into 'v9_11'
[v9_11] Update GitLab CI to Fedora 30

See merge request isc-projects/bind9!2214
2019-07-31 03:14:29 -04:00
Michał Kępień b61899f031 Update GitLab CI to Fedora 30
Since Fedora 30 is the current Fedora release, replace Fedora 29 GitLab
CI jobs with their up-to-date counterparts.

(cherry picked from commit fac23cf939)
2019-07-31 08:48:04 +02:00
Mark Andrews 3798c6451c Merge branch '1133-your-problem-or-cygwin-s-v9_11' into 'v9_11'
Resolve "Your problem or Cygwin's ?????"

See merge request isc-projects/bind9!2212
2019-07-30 21:18:07 -04:00
Mark Andrews 0ef5b2852b add CHANGES
(cherry picked from commit 12d9681442)
2019-07-31 11:04:22 +10:00
Mark Andrews 75d89f023a handle connect() returning ETIMEDOUT on a non-blocking socket
(cherry picked from commit 91a0cb5da3)
2019-07-31 11:03:56 +10:00
Michał Kępień 70ae7129e9 Merge branch '1171-alpine-linux-tweaks-v9_11' into 'v9_11'
[v9_11] Alpine Linux tweaks

See merge request isc-projects/bind9!2210
2019-07-30 16:49:17 -04:00
Michał Kępień 2efc475a2f Add Alpine Linux to GitLab CI
Ensure BIND is continuously tested on Alpine Linux as it is commonly
used as a base for Docker containers and employs a less popular libc
implementation, musl libc.

(cherry picked from commit 326a334b49)
2019-07-30 22:22:28 +02:00
Michał Kępień 28c89c37b0 Do not use legacy time zone names
"PST8PDT" is a legacy time zone name whose use in modern code is
discouraged.  It so happens that using this time zone with musl libc
time functions results in different output than for other libc
implementations, which breaks the lib/isc/tests/time_test unit test.
Use the "America/Los_Angeles" time zone instead in order to get
consistent output across all tested libc implementations.

(cherry picked from commit f4daf6e0e7)
2019-07-30 22:22:28 +02:00
Michał Kępień 1546298005 Fix awk invocation in the "verify" system test
Appending output of a command to the same file as the one that command
is reading from is a dangerous practice.  It seems to have accidentally
worked with all the awk implementations we have tested against so far,
but for BusyBox awk, doing this may result in the input/output file
being written to in an infinite loop.  Prevent this from happening by
redirect awk output to a temporary file and appending its contents to
the original file in a separate shell pipeline.

(cherry picked from commit bb9c1654e2)
2019-07-30 22:22:28 +02:00
Michał Kępień 2ce4f23bc0 Extend prerequisites for the "xfer" system test
The Net::DNS Perl module needs the Digest::HMAC module to support TSIG.
However, since the latter is not a hard requirement for the former, some
packagers do not make Net::DNS depend on Digest::HMAC.  If Net::DNS is
installed on a host but Digest::HMAC is not, the "xfer" system test
breaks in a very hard-to-debug way (ans5 returns TSIG RRs with empty
RDATA, which prevents TSIG-signed SOA queries and transfers from
working).  Prevent this from happening by making the "xfer" system test
explicitly require Digest::HMAC apart from Net::DNS.

(cherry picked from commit b10d28d1e0)
2019-07-30 22:22:28 +02:00
Michał Kępień 566f76b1fe Make "autosign" system test work with BusyBox awk
The BusyBox version of awk treats some variables which other awk
implementations consider to be decimal values as octal values.  This
intermittently breaks key event interval calculations in the "autosign"
system test, trigger false positives for it.  Prevent the problem from
happening by stripping leading zeros from the affected awk variables.

(cherry picked from commit ad008f7dbf)
2019-07-30 22:22:28 +02:00
Michał Kępień 4e266a810e Tweak buffer sizes to prevent compilation warnings
For some libc implementations, BUFSIZ is small enough (e.g. 1024 for
musl libc) to trigger compilation warnings about insufficient size of
certain buffers.  Since the relevant buffers are used for printing DNS
names, increase their size to '(n + 1) * DNS_NAME_FORMATSIZE', where 'n'
is the number of DNS names which are printed to a given buffer.  This
results in somewhat arbitrary, albeit nicely-aligned and large enough
buffer sizes.

(cherry picked from commit 3384455659)
2019-07-30 22:22:28 +02:00
Michał Kępień 3098c79270 Always include <errno.h> instead of <sys/errno.h>
Including <sys/errno.h> instead of <errno.h> raises a compiler warning
when building against musl libc.  Always include <errno.h> instead of
<sys/errno.h> to prevent that compilation warning from being triggered
and to achieve consistency in this regard across the entire source tree.

(cherry picked from commit b5cd146033)
2019-07-30 22:22:28 +02:00
Michał Kępień eb13d4b279 Unify header ordering in unit tests
Make sure all unit tests include headers in a similar order:

 1. Three headers which must be included before <cmocka.h>.
 2. System headers.
 3. UNIT_TESTING definition, followed by the <cmocka.h> header.
 4. libisc headers.
 5. Headers from other BIND libraries.
 6. Local headers.

Also make sure header file names are sorted alphabetically within each
block of #include directives.

(cherry picked from commit 5381ac0fcc)
2019-07-30 22:22:28 +02:00
Michał Kępień 5e9ac86c2b Include <sched.h> where necessary for musl libc
All unit tests define the UNIT_TESTING macro, which causes <cmocka.h> to
replace malloc(), calloc(), realloc(), and free() with its own functions
tracking memory allocations.  In order for this not to break
compilation, the system header declaring the prototypes for these
standard functions must be included before <cmocka.h>.

Normally, these prototypes are only present in <stdlib.h>, so we make
sure it is included before <cmocka.h>.  However, musl libc also defines
the prototypes for calloc() and free() in <sched.h>, which is included
by <pthread.h>, which is included e.g. by <isc/mutex.h>.  Thus, unit
tests including "dnstest.h" (which includes <isc/mem.h>, which includes
<isc/mutex.h>) after <cmocka.h> will not compile with musl libc as for
these programs, <sched.h> will be included after <cmocka.h>.

Always including <cmocka.h> after all other header files is not a
feasible solution as that causes the mock assertion macros defined in
<isc/util.h> to mangle the contents of <cmocka.h>, thus breaking
compilation.  We cannot really use the __noreturn__ or analyzer_noreturn
attributes with cmocka assertion functions because they do return if the
tested condition is true.  The problem is that what BIND unit tests do
is incompatible with Clang Static Analyzer's assumptions: since we use
cmocka, our custom assertion handlers are present in a shared library
(i.e. it is the cmocka library that checks the assertion condition, not
a macro in unit test code).  Redefining cmocka's assertion macros in
<isc/util.h> is an ugly hack to overcome that problem - unfortunately,
this is the only way we can think of to make Clang Static Analyzer
properly process unit test code.  Giving up on Clang Static Analyzer
being able to properly process unit test code is not a satisfactory
solution.

Undefining _GNU_SOURCE for unit test code could work around the problem
(musl libc's <sched.h> only defines the prototypes for calloc() and
free() when _GNU_SOURCE is defined), but doing that could introduce
discrepancies for unit tests including entire *.c files, so it is also
not a good solution.

All in all, including <sched.h> before <cmocka.h> for all affected unit
tests seems to be the most benign way of working around this musl libc
quirk.  While quite an ugly solution, it achieves our goals here, which
are to keep the benefit of proper static analysis of unit test code and
to fix compilation against musl libc.

(cherry picked from commit 59528d0e9d)
2019-07-30 22:22:27 +02:00
Michał Kępień b911bfaaf2 Merge branch 'michal/filter-aaaa-system-test-make-root-hints-consistent-with-authoritative-data-v9_11' into 'v9_11'
[v9_11] "filter-aaaa" system test: make root hints consistent with authoritative data

See merge request isc-projects/bind9!2206
2019-07-29 16:10:47 -04:00
Michał Kępień 6563ee9c7d Make root hints consistent with authoritative data
Resolvers in the "filter-aaaa" system test are configured with a single
root hint: "ns.rootservers.net", pointing to 10.53.0.1.  However,
querying ns1 for "ns.rootservers.net" results in NXDOMAIN answers.
Since the TTL for the root hint is set to 0, it may happen that a
resolver's ADB will be asked to return any known addresses for
"ns.rootservers.net", but it will only have access to a cached NXDOMAIN
answer for that name and an expired root hint, which will result in a
resolution failure, triggering a false positive for the "filter-aaaa"
system test.  Prevent this from happening by making all the root hints
consistent with authoritative data served by ns1.

(cherry picked from commit c19ebde14b)
2019-07-29 21:45:06 +02:00
Evan Hunt b96796bbf1 Merge branch '1163-geoip-subtype-fix-v9_11' into 'v9_11'
fix a bug that could cause an assert when configuring "geoip continent"

See merge request isc-projects/bind9!2203
2019-07-28 16:30:03 -04:00
Evan Hunt 48447be09a CHANGES
(cherry picked from commit c3a996d547)
2019-07-28 13:16:35 -07:00
Evan Hunt 661ea29ecb add a system test, confirming that named fails to reload without crashing
(cherry picked from commit 8f1cdaeed9)
2019-07-28 13:16:29 -07:00
Evan Hunt 2a80d4e277 fix a bug that could cause an assert when configuring "geoip continent"
- incidentally fixed some typos in log messages

(cherry picked from commit 326349228a)
2019-07-25 22:52:18 -04:00
Mark Andrews 6637b947e0 Merge branch '1106-interaction-between-dns64-and-rpz-can-cause-unexpected-results-v9_11' into 'v9_11'
Resolve "Interaction between dns64 and RPZ can cause unexpected results"

See merge request isc-projects/bind9!2197
2019-07-24 17:41:45 -04:00
Mark Andrews d1f69ba757 add CHANGES
(cherry picked from commit b9a1c31df1)
2019-07-25 07:26:35 +10:00
Mark Andrews de153f1a43 Do not attempt to perform a DNS64 rewrite if RPZ returns NODATA.
(cherry picked from commit 1eb640049c)
2019-07-25 07:26:35 +10:00
Mark Andrews 00920b3a9b Check that RPZ 'CNAME *.' (NODATA) works with DNS64.
(cherry picked from commit b9dc9b68cd)
2019-07-25 07:26:35 +10:00
Mark Andrews 0ec8a6c963 Merge branch '1136-named-checkconf-should-report-missing-dnstap-output-option-when-dnstap-option-is-set-v9_11' into 'v9_11'
Resolve "named-checkconf should report missing dnstap-output option when dnstap option is set"

See merge request isc-projects/bind9!2186
2019-07-23 09:48:50 -04:00
Mark Andrews 8f2d5e6a86 named-checkconf failed to report dnstap-output missing
from named.conf when dnstap was specified

(cherry picked from commit a4f38bec6a)
2019-07-23 23:36:40 +10:00
Ondřej Surý 0206dd7102 Merge branch '195-add-dnstap-builds-to-ci-v9_11' into 'v9_11'
Add dnstap builds to CI

See merge request isc-projects/bind9!2182
2019-07-22 18:10:49 -04:00
Michał KępieńandOndřej Surý b68c7fc135 Add dnstap builds to CI
Ensure BIND with dnstap support enabled is being continuously tested by
adding --enable-dnstap to the ./configure invocation used for CentOS 7
and Debian sid builds in GitLab CI.

(cherry picked from commit 2bf44c6cd4)
2019-07-22 17:54:04 -04:00
Ondřej Surý b0f17ca99b Merge branch 'michal/add-debian-buster-to-ci-v9_11' into 'v9_11'
Add Debian buster to CI

See merge request isc-projects/bind9!2177
2019-07-22 11:41:30 -04:00
Michał KępieńandOndřej Surý f736877e99 Add Debian buster to CI
Ensure BIND is continuously tested on Debian 10 (buster) as it is the
current stable Debian release.

(cherry picked from commit 5f71d9c6ac)
2019-07-22 11:26:55 -04:00
Ondřej Surý adcafee712 Merge branch '605-add-siphash24-v9_14-v9_11' into 'v9_11'
Resolve "Add SipHash24 and synchronize the Cookie algorithm with other vendors"

See merge request isc-projects/bind9!2171
2019-07-22 10:55:16 -04:00
Ondřej Surý cff198682f Add CHANGES note
(cherry picked from commit be0cd728c5)
2019-07-22 09:06:03 -04:00
Ondřej Surý 40751f8f94 Add release notes
(cherry picked from commit 7d8e7b0194)
2019-07-22 09:06:03 -04:00
Ondřej Surý 9feaf319b4 Test the AES DNS Cookie algorithm only if available 2019-07-22 09:06:03 -04:00
Ondřej Surý a0f4e6d27e Add new siphash24 DNS Cookie algorithm
This commit changes the BIND cookie algorithms to match
draft-sury-toorop-dnsop-server-cookies-00.  Namely, it changes the Client Cookie
algorithm to use SipHash 2-4, adds the new Server Cookie algorithm using SipHash
2-4.  The change doesn't make the SipHash 2-4 to be the default algorithm, this
is up to the operator.

(cherry picked from commit 196b342bc9)
2019-07-22 09:06:03 -04:00
Michał KępieńandOndřej Surý 825497f508 Make ifconfig.sh work on DragonFly BSD
On DragonFly BSD, use the same commands for configuring network
interfaces used during system tests as on NetBSD and OpenBSD.

(cherry picked from commit 496397eb3f)
2019-07-22 08:09:49 -04:00
Ondřej Surý 63666fc926 Revise the Windows section of <isc/endian.h>
Add a comment and remove redundant definitions.

(cherry picked from commit 84ff6a6963)
2019-07-22 08:09:48 -04:00
Ondřej Surý 1fd8b2d9f4 Revise the macOS section of <isc/endian.h>
Move the macOS section of <isc/endian.h> to a lower spot as it is
believed not to be the most popular platform for running BIND.  Add a
comment and remove redundant definitions.

(cherry picked from commit c727a31eab)
2019-07-22 08:09:48 -04:00
Ondřej Surý 55a95f7cd7 Make <isc/endian.h> detect GNU rather than Linux
Instead of only supporting Linux, try making <isc/endian.h> support
other GNU platforms as well.  Since some compilers define __GNUC__ on
BSDs (e.g. Clang on FreeBSD), move the relevant section to the bottom of
the platform-specific part of <isc/endian.h>, so that it only gets
evaluated when more specific platform determination criteria are not
met.  Also include <byteswap.h> so that any byte-swapping macros which
may be defined in that file on older platforms are used in the fallback
definitions of the nonstandard hto[bl]e{16,32,64}() and
[bl]e{16,32,64}toh() conversion functions.

(cherry picked from commit a98c7408fc)
2019-07-22 08:09:48 -04:00
Ondřej Surý 7b74cd6231 Add Solaris support for <isc/endian.h>
While Solaris does not support the nonstandard hto[bl]e{16,32,64}() and
[bl]e{16,32,64}toh() conversion functions, it does have some
byte-swapping macros available in <sys/byteorder.h>.  Ensure these
macros are used in the fallback definitions of the aforementioned
nonstandard functions.

(cherry picked from commit 5b0f81e549)
2019-07-22 08:09:48 -04:00
Ondřej Surý d3a8c162d8 Add fallback definitions to <isc/endian.h>
Since the hto[bl]e{16,32,64}() and [bl]e{16,32,64}toh() conversion
functions are nonstandard, add fallback definitions of these functions
to <isc/endian.h>, so that their unavailability does not prevent
compilation from succeeding.

(cherry picked from commit 973d2991a0)
2019-07-22 08:09:48 -04:00
Michał KępieńandOndřej Surý 3c7cab3f22 Fix <isc/endian.h> on BSD systems
Current versions of DragonFly BSD, FreeBSD, NetBSD, and OpenBSD all
support the modern variants of functions converting values between host
and big-endian/little-endian byte order while older ones might not.
Ensure <isc/endian.h> works properly in both cases.

(cherry picked from commit 588c14d5c9)
2019-07-22 08:09:48 -04:00
Ondřej Surý 07502731e0 Add tests for the isc_siphash24 function
(cherry picked from commit 2cbf633192)
(cherry picked from commit 2188a58171)
2019-07-22 08:09:48 -04:00
Ondřej Surý 91307842b8 Add reference SipHash 2-4 implementation
(cherry picked from commit a197df137a)
(cherry picked from commit 8d87ad53eb)
2019-07-22 08:09:48 -04:00
Ondřej Surý 92a86ac211 Add portable <isc/endian.h> header
(cherry picked from commit 0efc36c19a)
(cherry picked from commit 0b050ad4fd)
2019-07-22 08:09:48 -04:00
Ondřej Surý 3389e05d74 Merge branch 'ondrej-disable-freebsd-again-v9_11' into 'v9_11'
Disable FreeBSD Runner in the CI; it's broken again.

See merge request isc-projects/bind9!2175
2019-07-22 08:08:30 -04:00
Ondřej Surý 40cd655dda Disable FreeBSD Runner in the CI; it's broken again.
(cherry picked from commit 747736d361)
2019-07-22 08:07:29 -04:00
Evan Hunt e3cc68bf35 Merge branch 'ondrej/fix-leaked-memory-in-geoip_test.c-v9_14-v9_11' into 'v9_11'
Fix leaked memory in geoip_test.c

See merge request isc-projects/bind9!2158
2019-07-16 19:55:36 -04:00
Ondřej SurýandEvan Hunt 9f431ce20c Fix the memory leaks in GeoIP unit test
Each individual test opened GeoIP databases but the database handles were never
closed.  This commit moves the open/close from the individual unit tests into
the _setup and _teardown methods where they really belong.

(cherry picked from commit d1c7b79183)
(cherry picked from commit aad88d2c00)
2019-07-16 16:27:05 -07:00
Ondřej Surý c148ba880e Merge branch 'ondrej/move-ax-save_restore-flags-to-libtool.m4-v9_11' into 'v9_11'
Move ax save restore flags to libtool.m4 [v9_11]

See merge request isc-projects/bind9!2139
2019-07-09 08:22:41 -04:00
Ondřej Surý a848ef76f1 Add missing AX_RESTORE_FLAGS([geoip2]) to configure.ac 2019-07-09 13:54:31 +02:00
Ondřej Surý c989144d30 Move the ax_{save,restore}_flags.m4 to libtool.m4 folder 2019-07-09 13:54:31 +02:00
Tinderbox User 2f9dae5ce9 Merge branch 'prep-release' into v9_11 2019-07-09 10:07:17 +00:00
Tinderbox User 466dd24411 prep 9.11.9 2019-07-09 10:06:34 +00:00
Mark Andrews b152cd3436 Merge branch 'marka-nocrypto-v9_11' into 'v9_11'
add nocrypto builds

See merge request isc-projects/bind9!2136
2019-07-07 21:25:40 -04:00
Mark Andrews e070fdab1d use printf instead of print_message for '1..0 # Skipped: sigs test requires crypto' 2019-07-08 10:57:22 +10:00
Mark Andrews 39add843ea add nocrypto builds 2019-07-08 10:21:43 +10:00
Evan Hunt 49cd121906 Merge branch '1131-geoip2-windows-911' into 'v9_11'
add support for building GeoIP2 on windows

See merge request isc-projects/bind9!2133
2019-07-04 17:42:44 -04:00
Evan Hunt cf9c7959a0 add support for building GeoIP2 on windows 2019-07-04 12:06:01 -07:00
Evan Hunt 7af1323425 Merge branch '1114-windows-build-broken-v9_11' into 'v9_11'
fix broken windows build

See merge request isc-projects/bind9!2131
2019-07-03 14:17:06 -04:00
Evan Hunt f81020a748 fix broken windows build
The MSVS C compiler requires every struct to have at least one member.
The dns_geoip_databases_t structure had one set of members for
HAVE_GEOIP and a different set for HAVE_GEOIP2, and none when neither
API is in use.

This commit silences the compiler error by moving the declaration of
dns_geoip_databases_t to types.h as an opaque reference, and commenting
out the contents of geoip.h when neither version of GeoIP is enabled.

(cherry picked from commit 81fcde5953)
2019-07-03 10:52:51 -07:00
Ondřej Surý 7355529a98 Merge branch 'ondrej/kyua.result-location-v9_11' into 'v9_11'
Ondrej/kyua.result location v9 11

See merge request isc-projects/bind9!2130
2019-07-03 13:46:03 -04:00
Ondřej Surý fc7ea9cc4d Set number of parallel jobs in .gitlab-ci.yml
(cherry picked from commit f56b88f72e)
2019-07-03 19:19:01 +02:00
Ondřej Surý d9a3bf572f Use $KYUA_RESULT in kyua report-html invocation for unified file location
(cherry picked from commit a2a69725ef)
2019-07-03 19:19:00 +02:00
Ondřej Surý 855f7642ad Merge branch 'ondrej/restore-freebsd-runner-v9_11' into 'v9_11'
[v9_11] Restore the FreeBSD Runner

See merge request isc-projects/bind9!2123
2019-07-02 17:51:03 -04:00
Ondřej Surý 6b8de5ed8f Use $(pwd) instead of $CI_PROJECT_DIR to always get absolute path
(cherry picked from commit e957825eee)
2019-07-02 22:44:30 +02:00
Ondřej Surý ab8de89e6d Use sudo to setup the interfaces when CI job is not running as root
(cherry picked from commit 4d3e7d0b7d)
2019-07-02 22:44:29 +02:00
Evan HuntandOndřej Surý d1d7acaecb Add FreeBSD 11 GitLab CI Runner
(cherry picked from commit 646bb64246)
2019-07-02 22:44:29 +02:00
Evan Hunt c65d4f9d56 Merge branch '182-geoip2-api-v9_14-v9_11' into 'v9_11'
Resolve "Update GeoIP support to new API (GeoLite2 from Maxmind)"

See merge request isc-projects/bind9!2101
2019-07-02 15:45:49 -04:00
Evan Hunt cc92ebf6f7 CHANGES, release note, README
(cherry picked from commit 8854e284fd)
(cherry picked from commit 24103171ca)
2019-07-02 12:29:44 -07:00
Evan Hunt babc839b31 update ARM documentation
(cherry picked from commit c9945d6148)
(cherry picked from commit d6bd7bb9af)
2019-07-02 12:29:44 -07:00
Evan Hunt bb4b3e7f14 add geoip2 system test
(cherry picked from commit 9a1caf99ef)
(cherry picked from commit 049d8a311b)
2019-07-02 12:29:44 -07:00
Evan Hunt 8ec293e51e add GeoIP2 lookups to unit test
(cherry picked from commit 6399a70cb4)
(cherry picked from commit 7468036226)
2019-07-02 12:29:44 -07:00
Evan Hunt 0d50d9988c implement searching of geoip2 database
- revise mapping of search terms to database types to match the
  GeoIP2 schemas.
- open GeoIP2 databases when starting up; close when shutting down.
- clarify the logged error message when an unknown database type
  is configured.
- add new geoip ACL subtypes to support searching for continent in
  country databases.
- map geoip ACL subtypes to specific MMDB database queries.
- perform MMDB lookups based on subtype, saving state between
  queries so repeated lookups for the same address aren't necessary.

(cherry picked from commit 6e0b93e5a0)
(cherry picked from commit 0283ab7512)
2019-07-02 12:29:39 -07:00
Evan Hunt a553ac45ed add HAVE_GEOIP2 #ifdef branches, without implementing yet
(cherry picked from commit fe46d5bc34)
(cherry picked from commit 7fc92bee0c)
2019-07-02 12:28:14 -07:00
Evan Hunt 7de12aaa34 add a search for GeoIP2 libraries in configure
- "--with-geoip" is used to enable the legacy GeoIP library.
- "--with-geoip2" is used to enable the new GeoIP2 library
  (libmaxminddb), and is on by default if the library is found.
- using both "--with-geoip" and "--with-geoip2" at the same time
  is an error.
- an attempt is made to determine the default GeoIP2 database path at
  compile time if pkg-config is able to report the module prefix. if
  this fails, it will be necessary to set the path in named.conf with
  geoip-directory
- Makefiles have been updated, and a stub lib/dns/geoip2.c has been
  added for the eventual GeoIP2 search implementation.

(cherry picked from commit fea6b5bf10)
(cherry picked from commit 6a7e805796)
2019-07-02 12:28:14 -07:00
Ondřej Surý d10137736d Merge branch 'ondrej/fix-freebsd-make-v9_11' into 'v9_11'
Add rules to make sure subdirs are always built before testdirs

See merge request isc-projects/bind9!2119
2019-07-02 13:53:17 -04:00
Ondřej Surý 3e24143012 Add rules to make sure subdirs are always built before testdirs
(cherry picked from commit 723433cbc6)
2019-07-02 19:41:14 +02:00
Michał Kępień 15c2e82cca Merge branch 'michal/add-and-use-keyfile_to_key_id-helper-function-v9_11' into 'v9_11'
[v9_11] Add and use keyfile_to_key_id() helper function

See merge request isc-projects/bind9!2109
2019-06-28 08:33:32 -04:00
Michał Kępień 621f8aa90a Add and use keyfile_to_key_id() helper function
When trying to extract the key ID from a key file name, some test code
incorrectly attempts to strip all leading zeros.  This breaks tests when
keys with ID 0 are generated.  Add a new helper shell function,
keyfile_to_key_id(), which properly handles keys with ID 0 and use it in
test code whenever a key ID needs to be extracted from a key file name.

(cherry picked from commit 7d6eaad1bd)
2019-06-28 14:09:36 +02:00
Michał Kępień ef125c0d73 Merge branch '1093-dnstap-read-clear-buffer-before-expanding-it-v9_11' into 'v9_11'
[v9_11] dnstap-read: clear buffer before expanding it

See merge request isc-projects/bind9!2107
2019-06-28 07:08:36 -04:00
Michał Kępień 207a009424 Add CHANGES entry
5260.	[bug]		dnstap-read was producing malformed output for large
			packets. [GL #1093]

(cherry picked from commit 7354207e1b)
2019-06-28 12:45:47 +02:00
Michał Kępień 511f3c3601 dnstap-read: clear buffer before expanding it
When printing a packet, dnstap-read checks whether its text form takes
up more than the 2048 bytes allocated for the output buffer by default.
If that is the case, the output buffer is automatically expanded, but
the truncated output is left in the buffer, resulting in malformed data
being printed.  Clear the output buffer before expanding it to prevent
this issue from occurring.

(cherry picked from commit 3549abe81d)
2019-06-28 12:45:44 +02:00
Mark Andrews c71f23eb8b Merge branch '1030-statistics-channel-fixes-v9_11' into 'v9_11'
Statistics Channel Fixes

See merge request isc-projects/bind9!2097
2019-06-26 23:59:20 -04:00
Mark Andrews 62d47e569a add CHANGES
(cherry picked from commit f8b3aa97df)
2019-06-27 13:40:55 +10:00
Mark Andrews 53543c1ecc check xsl vs xml
(cherry picked from commit d5c795942f)
2019-06-27 13:40:52 +10:00
Evan HuntandMark Andrews f2d67af545 add odd/even shading to the remaining tables
(cherry picked from commit ce3907e9fe)
2019-06-27 13:25:01 +10:00
Mark Andrews 02672e6aaf remove 'Configured Zones'; add even/odd to zone list
(cherry picked from commit eaba8dd799)
2019-06-27 13:25:01 +10:00
Timothe LittandMark Andrews af4bffd747 Fix ISC-Bugs 45340: Statschannel XSL for zones, Traffic
In ISC-Bugs 45340, I wrote:

The Statistics channel offers links to Zones and Traffic.
Both produce valid data, but display as blank pages with
a web browser.

Zones never had XSL (I provided the original
implementation, but punted on the XSL).

Traffic has XSL, but it wasn't updated to reflect the
split between IPv4 and IPv6 data.

I've picked up enough XSL to fix my original omission,
and as penance for my sloth, fixed the Traffic bug as well.

(cherry picked from commit 96f0bbd4d5)
2019-06-27 13:25:01 +10:00
Evan Hunt 77bc37b616 Merge branch '1092-allow-priming-glue-v9_11' into 'v9_11'
allow glue in authoritative responses to root priming queries

See merge request isc-projects/bind9!2095
2019-06-26 13:12:38 -04:00
Evan Hunt 7cbb589795 CHANGES, release note
(cherry picked from commit 03a6a78b55)
2019-06-26 09:39:00 -07:00
Evan Hunt f608f9335d x 2019-06-26 09:38:59 -07:00
Evan Hunt 2fd9e88405 add system test to confirm glue is returned in priming queries
(cherry picked from commit 9a1f0ea873)
2019-06-26 09:27:26 -07:00
Evan Hunt ff4855d358 allow glue in authoritative responses to root priming queries
- when processing authoritative queries for ./NS, set 'gluedb' so
  that glue will be included in the response, regardless of how
  'minimal-responses' has been configured.

(cherry picked from commit e7684c7b64)
2019-06-26 09:27:22 -07:00
Evan Hunt d944201cf7 Merge branch '1109-inline-reload-error-v9_11' into 'v9_11'
don't overwrite the dns_master_loadfile() result before calling zone_postload()

See merge request isc-projects/bind9!2093
2019-06-26 12:14:20 -04:00
Evan Hunt 80985b2bde CHANGES
(cherry picked from commit c29e344f07)
2019-06-26 08:56:14 -07:00
Evan Hunt 59dc713fc3 add a test that reloading errors are not ignored
(cherry picked from commit e48b3f1a00)
2019-06-26 08:56:14 -07:00
Evan Hunt 4dd46ba0f7 don't overwrite the dns_master_loadfile() result before calling zone_postload()
if "rndc reload" fails, the result code is supposed to be passed to
zone_postload, but for inline-signing zones, the result can be
overwritten first by a call to the ZONE_TRYLOCK macro. this can lead
to the partially-loaded unsigned zone being synced over to the signed
zone instead of being rejected.

(cherry picked from commit 0b792bd37b)
2019-06-26 08:51:24 -07:00
Michał Kępień 92a72a53db Merge branch 'michal/prevent-idna-test-failures-with-libidn2-2.2.0-v9_11' into 'v9_11'
[v9_11] Prevent "idna" test failures with libidn2 2.2.0+

See merge request isc-projects/bind9!2091
2019-06-26 09:00:55 -04:00
Michał Kępień d48ba3ce12 Prevent "idna" test failures with libidn2 2.2.0+
libidn2 2.2.0+ parses Punycode more strictly than older versions and
thus "dig +idnin +noidnout xn--19g" fails with libidn2 2.2.0+ but
succeeds with older versions.

We could preserve the old behavior by using the IDN2_NO_ALABEL_ROUNDTRIP
flag available in libidn2 2.2.0+, but:

  - this change in behavior is considered a libidn2 bug fix [1],
  - we want to make sure dig behaves as expected, not libidn2,
  - implementing that would require additional configure.ac cruft.

Removing the problematic check appears to be the simplest solution as it
does not prevent the relevant block of checks in the "idna" system test
from achieving its purpose, i.e. ensuring dig properly handles invalid
U-labels.

[1] see upstream commit 241e8f486134793cb0f4a5b0e5817a97883401f5

(cherry picked from commit 60ce0ed411)
2019-06-26 14:41:10 +02:00
Ondřej Surý d9164ab61c Merge branch '1067-underflow-recursing-clients-stats-v9_11' into 'v9_11'
Resolve "Underflow in Stats Channel RecursClients value?"

See merge request isc-projects/bind9!2037
2019-06-26 05:25:39 -04:00
Witold KręcickiandOndřej Surý e52a96bb0a CHANGES note 2019-06-26 11:11:06 +02:00
Witold KręcickiandOndřej Surý 4b246002be Make sure that recursclient gauge is calculated correctly.
We increase recursclients when we attach to recursion quota,
decrease when we detach. In some cases, when we hit soft
quota, we might attach to quota without increasing recursclients
gauge. We then decrease the gauge when we detach from quota,
and it causes the statistics to underflow.
Fix makes sure that we increase recursclients always when we
succesfully attach to recursion quota.
2019-06-26 11:10:42 +02:00
Mark Andrews cf1d4e614b Merge branch '1098-compile-failure-on-9-11-8' into 'v9_11'
Resolve "Compile failure on 9.11.8"

See merge request isc-projects/bind9!2065
2019-06-24 19:44:49 -04:00
Mark Andrews 5c23623094 add CHANGES 2019-06-25 09:44:07 +10:00
Mark Andrews 4110b9184d define ULLONG_MAX if not already defined 2019-06-25 09:42:49 +10:00
Mark Andrews f3e23289e0 Merge branch 'marka-wait-for-zones-to-load-v9_11' into 'v9_11'
wait for zones to load

See merge request isc-projects/bind9!2071
2019-06-24 00:35:28 -04:00
Mark Andrews 8802a3a901 wait for zones to load
(cherry picked from commit b62e6418b5)
2019-06-24 14:19:05 +10:00
Ondřej Surý 774d0d37f4 Merge branch '1094-bump-clientinfomethods-version-v9_11' into 'v9_11'
[v9_11] Bump DNS_CLIENTINFOMETHODS VERSION and AGE

See merge request isc-projects/bind9!2059
2019-06-20 11:45:53 -04:00
Brian ConryandOndřej Surý 1ff50a2f70 Bump DNS_CLIENTINFOMETHODS_VERSION/_AGE to 2/1 in clientinfo.h
BIND 9.11.0 has bumped DNS_CLIENTINFOMETHODS_VERSION and _AGE to
version 2 and 1 in the dlz_minimal.h because a member was addet to the
dnsclientinfo struct.  It was found out that the new member is not
used anywhere and there are no accessor functions therefore the change
was reverted.

Later on, it was found out that the revert caused some problems to the
users of BIND 9, and thus this changes takes a different approach by
syncing the values other way around.

(cherry picked from commit 39344dfb3e)
2019-06-20 14:24:29 +02:00
Ondřej Surý 5924804dda Revert "Downgrade the dns_clientinfomethod structure to the version in lib/dns/clientinfo.c"
This reverts commit a6f09b2255.

(cherry picked from commit 04961a7e6b)
2019-06-20 14:24:29 +02:00
Evan Hunt 96362d67ed Merge branch 'security-v9_11' into 'v9_11'
merge security-v9_11

See merge request isc-projects/bind9!2062
2019-06-19 19:15:29 -04:00
Tinderbox UserandEvan Hunt 3d3c290f51 Merge branch 'prep-release' into security-v9_11 2019-06-19 15:55:05 -07:00
Evan Hunt 5c287fb224 Merge branch '942-security-move-test-inside-lock-security-v9_11' into 'security-v9_11' 2019-06-19 15:55:05 -07:00
Tinderbox UserandEvan Hunt 81c904f697 prep 9.11.8 2019-06-19 15:55:05 -07:00
Evan Hunt 424d7bfd62 CHANGES, release note
(cherry picked from commit 332af50eed96cbcb20173f297e543adaded0ed92)
2019-06-19 15:55:04 -07:00
Mark AndrewsandEvan Hunt 3a9c7bb80d move item_out test inside lock in dns_dispatch_getnext()
(cherry picked from commit 60c42f849d520564ed42e5ed0ba46b4b69c07712)
2019-06-19 15:55:04 -07:00
Michał Kępień b381efcfaf Merge branch '1088-always-fail-a-system-test-if-crashes-are-detected-v9_11' into 'v9_11'
[v9_11] Always fail a system test if crashes are detected

See merge request isc-projects/bind9!2048
2019-06-18 03:55:23 -04:00
Michał Kępień 29e31a6858 Always fail a system test if crashes are detected
In certain situations (e.g. a named instance crashing upon shutdown in a
system test which involves shutting down a server and restarting it
afterwards), a system test may succeed despite a named crash being
triggered.  This must never be the case.  Extend run.sh to mark a test
as failed if core dumps or log lines indicating assertion failures are
detected (the latter is only an extra measure aimed at test environments
in which core dumps are not generated; note that some types of crashes,
e.g. segmentation faults, will not be detected using this method alone).

(cherry picked from commit 7706f22924)
2019-06-18 09:26:40 +02:00
Michał Kępień 48ca641b42 Merge branch 'michal/tkey-system-test-fix-key-id-processing-v9_11' into 'v9_11'
[v9_11] "tkey" system test: fix key ID processing

See merge request isc-projects/bind9!2043
2019-06-17 08:43:21 -04:00
Michał Kępień 6c8546edc6 Fix key ID processing
If ns1/setup.sh generates a key with ID 0, the "KEYID" token in
ns1/named.conf.in will be replaced with an empty string, causing the
following broken statement to appear in ns1/named.conf:

    tkey-dhkey "server" ;

Such a statement triggers false positives for the "tkey" system test due
to ns1 being unable to start with a broken configuration file.  Fix by
tweaking the regular expression used for removing leading zeros from the
key ID, so that it removes at most 4 leading zeros.

(cherry picked from commit 0b7b1161c2)
2019-06-17 14:16:20 +02:00
Michał Kępień 08eb417bed Merge branch 'michal/address-compilation-warnings-for-O3-builds-v9_11' into 'v9_11'
[v9_11] Address compilation warnings for -O3 builds

See merge request isc-projects/bind9!2029
2019-06-11 04:49:03 -04:00
Michał Kępień eeec8e8d83 Address GCC 9.1 -O3 compilation warnings
Compiling with -O3 triggers the following warnings with GCC 9.1:

    task.c: In function ‘isc__taskmgr_create’:
    task.c:1456:44: warning: ‘%04u’ directive output may be truncated writing between 4 and 10 bytes into a region of size 6 [-Wformat-truncation=]
     1456 |    snprintf(name, sizeof(name), "isc-worker%04u", i);
          |                                            ^~~~
    task.c:1456:33: note: directive argument in the range [0, 4294967294]
     1456 |    snprintf(name, sizeof(name), "isc-worker%04u", i);
          |                                 ^~~~~~~~~~~~~~~~
    task.c:1456:4: note: ‘snprintf’ output between 15 and 21 bytes into a destination of size 16
     1456 |    snprintf(name, sizeof(name), "isc-worker%04u", i);
          |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    rrl.c: In function ‘debit_rrl_entry’:
    rrl.c:602:35: error: ‘%d’ directive output may be truncated writing between 1 and 10 bytes into a region of size 9 [-Werror=format-truncation=]
      602 |   snprintf(buf, sizeof(buf), "age=%d", age);
          |                                   ^~
    rrl.c:602:30: note: directive argument in the range [0, 2147483647]
      602 |   snprintf(buf, sizeof(buf), "age=%d", age);
          |                              ^~~~~~~~
    rrl.c:602:3: note: ‘snprintf’ output between 6 and 15 bytes into a destination of size 13
      602 |   snprintf(buf, sizeof(buf), "age=%d", age);
          |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    rrl.c:602:35: error: ‘%d’ directive output may be truncated writing between 1 and 10 bytes into a region of size 9 [-Werror=format-truncation=]
      602 |   snprintf(buf, sizeof(buf), "age=%d", age);
          |                                   ^~
    rrl.c:602:30: note: directive argument in the range [0, 2147483647]
      602 |   snprintf(buf, sizeof(buf), "age=%d", age);
          |                              ^~~~~~~~
    rrl.c:602:3: note: ‘snprintf’ output between 6 and 15 bytes into a destination of size 13
      602 |   snprintf(buf, sizeof(buf), "age=%d", age);
          |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    rrl.c:602:35: error: ‘%d’ directive output may be truncated writing between 1 and 10 bytes into a region of size 9 [-Werror=format-truncation=]
      602 |   snprintf(buf, sizeof(buf), "age=%d", age);
          |                                   ^~
    rrl.c:602:30: note: directive argument in the range [0, 2147483647]
      602 |   snprintf(buf, sizeof(buf), "age=%d", age);
          |                              ^~~~~~~~
    rrl.c:602:3: note: ‘snprintf’ output between 6 and 15 bytes into a destination of size 13
      602 |   snprintf(buf, sizeof(buf), "age=%d", age);
          |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    private_test.c: In function ‘private_nsec3_totext_test’:
    private_test.c:114:9: warning: array subscript 4 is outside array bounds of ‘uint32_t[1]’ {aka ‘unsigned int[1]’} [-Warray-bounds]
      114 |  while (*sp == '\0' && slen > 0) {
          |         ^~~
    private_test.c:107:11: note: while referencing ‘salt’
      107 |  uint32_t salt;
          |           ^~~~

Prevent these warnings from being triggered by increasing the size of
the relevant arrays (task.c, rrl.c) and reordering conditions
(private_test.c).

(cherry picked from commit ce796ac1f4)
2019-06-11 10:19:26 +02:00
Witold KręcickiandMichał Kępień 171db1a22d Address GCC 8.3 -O3 compilation warning
Compiling with -O3 triggers the following warning with GCC 8.3:

    driver.c: In function ‘dlz_findzonedb’:
    driver.c:198:29: warning: ‘%u’ directive output may be truncated writing between 1 and 5 bytes into a region of size between 0 and 99 [-Wformat-truncation=]
      snprintf(buffer, size, "%s#%u", addr_buf, port);
                                 ^~
    driver.c:198:25: note: directive argument in the range [0, 65535]
      snprintf(buffer, size, "%s#%u", addr_buf, port);
                             ^~~~~~~
    driver.c:198:2: note: ‘snprintf’ output between 3 and 106 bytes into a destination of size 100
      snprintf(buffer, size, "%s#%u", addr_buf, port);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Increase the size of the relevant array to prevent this warning from
being triggered.

(cherry picked from commit 44e6bb8b93)
2019-06-11 10:19:22 +02:00
Michał Kępień eb358d639f Make some build jobs use -O3 optimizations
Change the compiler optimization level for Debian sid build jobs from
-O2 to -O3 in order to enable triggering compilation warnings which are
not raised when -O2 is used.

(cherry picked from commit 3569487875)
2019-06-11 10:19:17 +02:00
Evan Hunt caf4f62769 Merge branch 'each-pandoc-args-v9_11' into 'v9_11'
specify title metadata and markdown format when calling pandoc

See merge request isc-projects/bind9!2024
2019-06-10 00:32:05 -04:00
Evan Hunt 9aeb4d1565 specify title metadata and markdown format when calling pandoc
this change silences a warning message and prevents the unwanted
use of smart quotes when using pandoc 2.7.1 to generate human-readable
versions of README and other markdown files.

(cherry picked from commit 3663f61e0e)
2019-06-09 21:31:08 -07:00
Evan Hunt d683a07054 Merge branch 'michal/minor-doc-fixes-v9_11' into 'v9_11'
[v9_11] Minor doc fixes

See merge request isc-projects/bind9!2020
2019-06-10 00:24:10 -04:00
Stephen MorrisandMichał Kępień 154aaf3fc0 Tweak paragraph style in release notes PDF 2019-06-07 08:37:39 +02:00
Stephen MorrisandMichał Kępień 500fed3714 Fix typos in README 2019-06-07 08:37:39 +02:00
Stephen MorrisandMichał Kępień 3432947681 Add missing information to README 2019-06-07 08:37:39 +02:00
Mark Andrews 787f92b3e4 Merge branch 'marka-capture-checkconf-output-v9_11' into 'v9_11'
capture named-checkconf output

See merge request isc-projects/bind9!2016
2019-06-06 04:59:42 -04:00
Mark Andrews 174b6be987 capture named-checkconf output
(cherry picked from commit 36dd373ab4)
2019-06-06 18:48:57 +10:00
Mark Andrews c295617cce Merge branch 'marka-rndc-manpage-fix-v9_11' into 'v9_11'
add missing word 'includes'

See merge request isc-projects/bind9!2013
2019-06-05 19:49:41 -04:00
Mark Andrews ad5fecbf88 add missing word 'includes'
(cherry picked from commit c6553eb3fc)
2019-06-06 09:33:37 +10:00
Mark Andrews 14d4f82dbd Merge branch '1017-remove-dead-stores-v9_11' into 'v9_11'
Resolve "remove dead stores"

See merge request isc-projects/bind9!2007
2019-06-04 02:03:03 -04:00
Mark Andrews f684368053 POST(optlen)
(cherry picked from commit 4e97f7dccc)
2019-06-04 15:49:16 +10:00
Mark Andrews 72e3f91a0e Merge branch 'cppcheck-and-cmocka-false-positive-v9_11' into 'v9_11'
teach clang analyser that _assert_int_equal and _assert_int_not_equal don't return on failure

See merge request isc-projects/bind9!2004
2019-06-04 01:43:26 -04:00
Mark Andrews 0c0ddaf3d1 teach cppcheck that _assert_int_equal and _assert_int_not_equal don't return on failure
(cherry picked from commit 5d5d751c7f)
2019-06-04 15:24:18 +10:00
Evan Hunt 183159b03a Merge branch '1061-update-supported-rfc-list-v9_14-v9_11' into 'v9_11'
Resolve "update supported RFC list"

See merge request isc-projects/bind9!1998
2019-05-31 19:51:10 -04:00
Mark AndrewsandEvan Hunt 44785aaebe add RFC6944 2019-05-31 16:50:35 -07:00
Mark AndrewsandEvan Hunt e986b4fdc6 update RFC compliance document 2019-05-31 16:49:23 -07:00
Michał Kępień f3d17f3953 Merge branch 'michal/backport-missing-legacy-system-test-checks' into 'v9_11'
Backport missing "legacy" system test checks

See merge request isc-projects/bind9!1986
2019-05-31 06:56:12 -04:00
Michał Kępień ed45b53cb7 Backport missing "legacy" system test checks
Backport "legacy" system test checks which are present in master and
v9_14 branches, but missing in the v9_11 branch, in order to improve the
consistency of this test across all maintained branches.  Note that the
"ednsnotimp" check is expected to succeed with 9.11 whereas it is
expected to fail with 9.14 and later versions.
2019-05-31 12:43:31 +02:00
Michał Kępień 72da3b3a71 Backport "-T {ednsformerr,ednsnotimp,ednsrefused}"
Backport named command line switches implemented in commit
c81c9660f5 as they are needed by the
"legacy" system checks which are currently present in master and v9_14
branches, but missing in the v9_11 branch.
2019-05-31 12:43:31 +02:00
Mark Andrews 0cade8d970 Merge branch '225-ed448-broken-with-openssl-1-1-1-pre6-v9_11' into 'v9_11'
Fix ASN.1 length values in Ed448 public and private key prefix blobs.

See merge request isc-projects/bind9!1989
2019-05-30 09:19:57 -04:00
Mark Andrews 1c5d91cd51 add CHANGES note
(cherry picked from commit 6c499a0c08)
2019-05-30 23:06:35 +10:00
Mark Andrews ac4d3e8496 test Ed448 against test vectors
(cherry picked from commit 20f2d9b41b)
2019-05-30 23:06:09 +10:00
Mark Andrews 9618d822ab fix Ed448 length values for precomputed ASN.1 prefix blobs
(cherry picked from commit 5da97eeea6)
2019-05-30 22:51:04 +10:00
Mark Andrews 9ed43f8b47 Merge branch '1011-use-proper-linker-config-on-hp-ux-v9_11' into 'v9_11'
Resolve "Use proper linker (config) on HP-UX"

See merge request isc-projects/bind9!1984
2019-05-29 21:45:37 -04:00
Mark Andrews aeee401237 ia64-hp-hpux uses .so files 2019-05-30 11:33:11 +10:00
Mark Andrews 8c386e636a regen
(cherry picked from commit 92325d3150)
2019-05-30 11:29:51 +10:00
Mark Andrews 3fbbaeb478 add link flags for ia64-hp-hpux
(cherry picked from commit 61752bf8ac)
2019-05-30 11:29:51 +10:00
Ondřej Surý 9d61217f31 Merge branch '1044-fix-LFS-flags-on-BSDs-v9_11' into 'v9_11'
Pull the values for LFS_{CFLAGS,LDFLAGS,LIBS} from autoconf instead using them directly in make

See merge request isc-projects/bind9!1980
2019-05-29 08:43:19 -04:00
Ondřej Surý f9880fcf6d Pull the values for LFS_{CFLAGS,LDFLAGS,LIBS} from autoconf instead using them directly in make
(cherry picked from commit d4596baed4)
2019-05-29 13:34:22 +02:00
Michał Kępień ccc4426ca0 Merge branch 'michal/legacy-system-test-fixes-v9_11' into 'v9_11'
[v9_11] "legacy" system test fixes

See merge request isc-projects/bind9!1975
2019-05-29 05:33:53 -04:00
Michał Kępień 9016f78a0f Optimize dig parameters to decrease test run time
Performing server setup checks using "+tries=3 +time=5" is redundant as
a single query is arguably good enough for determining whether a given
named instance was set up properly.  Only use multiple queries with a
long timeout for resolution checks in the "legacy" system test, in order
to significantly reduce its run time (on a contemporary machine, from
about 1m45s to 0m40s).

(cherry picked from commit 47b850348c)
2019-05-29 11:11:49 +02:00
Michał Kępień 2cd5954745 Make "plain" server setup checks more similar
Send a test TCP query to the "plain" server during its setup check to
improve its consistency with the setup check for the "plain + no TCP"
server.

(cherry picked from commit bb939a03ff)
2019-05-29 11:11:46 +02:00
Michał Kępień 45d2833684 Add more EDNS checks for dig output files
In the "legacy" system test, in order to make server setup checks more
consistent with each other, add further checks for either presence or
absence of the EDNS OPT pseudo-RR in the responses returned by the
tested named instances.

(cherry picked from commit 56ed1275c6)
2019-05-29 11:11:43 +02:00
Michał Kępień c7f5ba42f8 Do not ignore dig exit codes
Make sure the "legacy" system test fails if any exit code returned by
dig does not match the expected one.

(cherry picked from commit 4dea5cb799)
2019-05-29 11:11:40 +02:00
Michał Kępień abbe8c9649 Use helper functions for checking resolution
Extract repeated dig and grep calls into two helper shell functions,
resolution_succeeds() and resolution_fails(), in order to reduce code
duplication in the "legacy" system test, emphasize the similarity
between all the resolution checks in that test, and make the conditions
for success and failure uniform for all resolution checks in that test.

(cherry picked from commit effd16ab25)
2019-05-29 11:11:37 +02:00
Michał Kępień 35cccf0729 Use +dnssec instead of separate TXT records
When testing named instances which are configured to drop outgoing UDP
responses larger than 512 bytes, querying with DO=1 may be used instead
of querying for large TXT records as the effect achieved will be
identical: an unsigned response for a SOA query will be below 512 bytes
in size while a signed response for the same query will be over 512
bytes in size.  Doing this makes all resolution checks in the "legacy"
system test more similar.  Add checks for the TC flag being set in UDP
responses which are expected to be truncated to further make sure that
tested named instances behave as expected.

(cherry picked from commit aaf81ca6ef)
2019-05-29 11:11:31 +02:00
Michał Kępień 551f796313 Fix the name of the file to inspect
One of the checks in the "legacy" system test inspects dig.out.1.test$n
instead of dig.out.2.test$n.  Fix the file name used in that check.

(cherry picked from commit 3e7fa15ca3)
2019-05-29 11:11:25 +02:00
Michał Kępień fdc84ea63e Ensure queries expected to time out really do
Make sure that the "legacy" system test fails if queries which are
expected to time out do not really time out.

(cherry picked from commit 6283c1cc7e)
2019-05-29 11:11:21 +02:00
Michał Kępień 5094902487 Properly test servers with TCP support disabled
Sending TCP queries to test named instances with TCP support disabled
should cause dig output to contain the phrase "connection refused", not
"connection timed out", as such instances never open the relevant
sockets.  Make sure that the "legacy" system test fails if the expected
phrase is not found in any of the relevant files containing dig output.

(cherry picked from commit 9491616e5c)
2019-05-29 11:11:03 +02:00
Ondřej Surý b728d58c4e Merge branch '1044-include-config.h-in-gen.c-v9_11' into 'v9_11'
Resolve "gen fails to generate headers on Debian buster"

See merge request isc-projects/bind9!1977
2019-05-29 04:48:15 -04:00
Ondřej Surý 4203bdef8d Use getconf LFS_{CFLAGS,LDFLAGS,LIBS} to get flags to compile lib/dns/gen
On some systems (namely Debian buster armhf) the readdir() call fails
with `Value too large for defined data type` unless the
_FILE_OFFSET_BITS=64 is defined.  The correct way to fix this is to
get the appropriate compilation parameters from getconf system
interface.

(cherry picked from commit 4c7345bcb6)
2019-05-29 10:31:03 +02:00
Ondřej Surý bcf4391ec6 Exit the ./gen program on failed readdir() call
(cherry picked from commit 05b7c08a16)
2019-05-29 10:31:03 +02:00
Mark Andrews 885b276fb9 Merge branch '1056-misleading-error-message-when-trying-to-build-without-python-support-v9_11' into 'v9_11'
Resolve "Misleading error message when trying to build without Python support"

See merge request isc-projects/bind9!1966
2019-05-27 00:19:52 -04:00
Mark Andrews 8d0b0a106e fix configire error message to say --without-python
(cherry picked from commit d70bf76d80)
2019-05-27 14:03:46 +10:00
Mark Andrews 9ec933ae02 Merge branch '1028-dig-trace-should-not-set-rd-0-norecurse-for-the-initial-root-hints-query-v9_11' into 'v9_11'
Resolve "dig +trace should not set RD=0 (+norecurse) for the initial root hints query"

See merge request isc-projects/bind9!1956
2019-05-22 02:32:25 -04:00
Mark Andrews 7575b663ad Recurse to find the root server list with 'dig +trace'.
(cherry picked from commit e65d4989a1)
2019-05-22 16:06:46 +10:00
Evan Hunt 61ffd9b71d Merge branch '1031-multiple-rate-limit-clauses-are-unsupported' into 'v9_11'
Resolve "Multiple rate-limit clauses are unsupported"

See merge request isc-projects/bind9!1943
2019-05-20 12:34:51 -04:00
Mark AndrewsandEvan Hunt 2275630bc9 remove reference to rate-limit { domain ...; } 2019-05-20 09:34:08 -07:00
Evan Hunt 1bebdea211 Merge branch 'each-fix-counter' into 'v9_11'
fix missing test counter

See merge request isc-projects/bind9!1951
2019-05-19 00:28:22 -04:00
Evan Hunt 3b122f8d33 fix missing test counter 2019-05-18 21:14:33 -07:00
Evan Hunt 769f621358 Merge branch 'each-document-bug-ids-v9_11' into 'v9_11'
update README to explain gitlab numbers

See merge request isc-projects/bind9!1949
2019-05-17 02:45:29 -04:00
Evan Hunt 1140f825ec update README to explain gitlab numbers
(cherry picked from commit 45d76498d9)
2019-05-16 23:44:53 -07:00
Ondřej Surý edfde35f40 Merge branch '899-remove-unspec-v9_11' into 'v9_11'
Remove UNSPEC rrtype

See merge request isc-projects/bind9!1934
2019-05-13 00:18:50 -04:00
Witold KręcickiandOndřej Surý 71d3823dab Remove UNSPEC rrtype
(cherry picked from commit a8e2ca6f7d)
2019-05-13 10:54:10 +07:00
Tinderbox User b8170affae Merge branch 'prep-release' into v9_11 2019-05-10 05:03:58 +00:00
Tinderbox User d58e36b410 prep 9.11.7 2019-05-10 05:03:46 +00:00
Evan Hunt afc0f7f344 Merge branch '997-make-ntas-work-with-validating-forwarders-v9_11' into 'v9_11'
Make NTAs work with validating forwarders

See merge request isc-projects/bind9!1925
2019-05-10 00:18:30 -04:00
Michał KępieńandEvan Hunt 07c698469e Add CHANGES entry
5219.	[bug]		Negative trust anchors did not work with "forward only;"
			to validating resolvers. [GL #997]
2019-05-09 21:05:50 -07:00
Michał KępieńandEvan Hunt f04f107b7e Make NTAs work with validating forwarders
If named is configured to perform DNSSEC validation and also forwards
all queries ("forward only;") to validating resolvers, negative trust
anchors do not work properly because the CD bit is not set in queries
sent to the forwarders.  As a result, instead of retrieving bogus DNSSEC
material and making validation decisions based on its configuration,
named is only receiving SERVFAIL responses to queries for bogus data.
Fix by ensuring the CD bit is always set in queries sent to forwarders
if the query name is covered by an NTA.

(cherry picked from commit 5e80488270)
2019-05-09 21:05:50 -07:00
Evan Hunt 651aaf5542 Merge branch '958-improve-message-about-python-ply-v9_11' into 'v9_11'
Improve the error message about missing PLY Python package

See merge request isc-projects/bind9!1920
2019-05-09 23:25:05 -04:00
Ondřej SurýandEvan Hunt ab706cc6f2 Improve the error message about missing PLY Python package
Previously, only a message about missing Python was printed, which was
misleading to many users.  The new message clearly states that Python
AND PLY is required and prints basic instructions how to install PLY
package.

(cherry picked from commit 55b48700da)
2019-05-09 19:57:02 -07:00
Evan Hunt 45227c0a2e Merge branch 'each-sync-v9_11' into 'v9_11'
sync CHANGES from 9.11.6-P1

See merge request isc-projects/bind9!1917
2019-05-09 21:55:35 -04:00
Evan Hunt b4c8599961 sync CHANGES from 9.11.6-P1 2019-05-09 18:53:51 -07:00
Witold Krecicki ab1e4b5784 Merge branch '834-fix-races-in-socket-code-v2' into 'v9_11'
Fix race in unix socket code when closing a socket that has already sent a recv/send event.

See merge request isc-projects/bind9!1915
2019-05-09 13:57:11 -04:00
Witold KręcickiandWitold Kręcicki 1286d74c7d Fix race in unix socket code when closing a socket that has
already sent a recv/send event.

When doing isc_socket_cancel we need to purge the event that might
already be in flight. If it has been launched already we need
to inform it that it has to bail.
2019-05-09 18:48:06 +02:00
Ondřej Surý 5f26556546 Merge branch 'ondrej/reproducible-build-v9_11' into 'v9_11'
Make lib/dns/gen.c compatible with reproducible builds.

See merge request isc-projects/bind9!1913
2019-05-09 05:24:35 -04:00
Ondřej Surý 0dced2fa6a Make lib/dns/gen.c compatible with reproducible builds.
The gen.c will now use SOURCE_DATE_EPOCH[1] if found in environment
to make the build more reproducible build friendly.

1. https://reproducible-builds.org/specs/source-date-epoch/

(cherry picked from commit c8cb612d39)
2019-05-09 16:05:38 +07:00
Mark Andrews aca6ebadc4 Merge branch '960-add-edns-client-tag-and-edns-server-tag-v9_11' into 'v9_11'
Resolve "Add EDNS Client Tag and EDNS Server Tag"

See merge request isc-projects/bind9!1911
2019-05-09 04:39:06 -04:00
Mark Andrews 10c53d2873 Recognise EDNS Client Tag and EDNS Server Tag
(cherry picked from commit ee7cf180b3)
2019-05-09 18:24:57 +10:00
Evan Hunt ac9286b732 Merge branch '868-fix-trusted-keys-handling-with-dnssec-validation-auto-v9_14-v9_11' into 'v9_11'
fix incorrect behavior mixing trusted-keys with validation auto

See merge request isc-projects/bind9!1909
2019-05-09 02:13:16 -04:00
Evan Hunt febbd90850 CHANGES, release notes 2019-05-08 23:02:42 -07:00
Evan Hunt 722d0f57ed warn about the use of trusted-keys and managed-keys for the same name 2019-05-08 23:02:42 -07:00
Mark Andrews 3c45f0dd0b Merge branch '852-bind-returning-malformed-packet-error-when-sshfp-record-has-fingerprint-value-less-than-4-characters-v9_11' into 'v9_11'
Resolve "Bind returning malformed packet error when sshfp record has fingerprint value less than 4 characters"

See merge request isc-projects/bind9!1906
2019-05-08 19:18:22 -04:00
Mark Andrews 702cc2dde3 enforce known SSHFP finger print lengths
(cherry picked from commit 1722728c80)
2019-05-09 08:49:19 +10:00
Mark Andrews 8cb78ee508 Merge branch '991-provide-ixfr-should-only-be-tests-on-tcp-clients-v9_11' into 'v9_11'
Resolve "provide-ixfr should only be tested on TCP clients."

See merge request isc-projects/bind9!1901
2019-05-07 00:46:17 -04:00
Mark Andrews 1cc0bf2cee add CHANGES
(cherry picked from commit ba1d7f3a07)
2019-05-07 14:34:00 +10:00
Mark Andrews d72f659a35 add test for 'provide-ixfr no;' ; add forensics support
(cherry picked from commit d547465af5)
2019-05-07 14:34:00 +10:00
Mark Andrews 8b8f0dc160 only test provideixfr if the transport is TCP
(cherry picked from commit 18c49853e3)
2019-05-07 14:06:25 +10:00
Evan Hunt 510f8d9ff7 Merge branch 'each-win32-parallel-tests-v9_11' into 'v9_11'
enable parallel system tests on windows

See merge request isc-projects/bind9!1895
2019-05-06 22:04:51 -04:00
Evan Hunt 52347fa883 CHANGES
(cherry picked from commit d3cd0729c9)
2019-05-06 18:38:34 -07:00
Evan Hunt 50dfe1aa2b enable parallel system tests on windows
this moves the creation of "parallel.mk" into a separate shell script
instead of bin/tests/system/Makefile. that shell script can now be
executed by runall.sh, allowing us to make use of the cygwin "make"
command, which supports parallel execution.

(cherry picked from commit bbae24c140)
2019-05-06 18:38:34 -07:00
Evan Hunt 274da3c24b Merge branch 'each-fix-rpz-test-v9_11' into 'v9_11'
RPZ test had spurious references to DNSRPS, which isn't in 9.11

See merge request isc-projects/bind9!1898
2019-05-06 21:17:38 -04:00
Evan Hunt 111c692efd RPZ test had spurious references to DNSRPS, which isn't in 9.11 2019-05-06 18:05:49 -07:00
Mark Andrews 90a6482985 Merge branch '983-delv-www-isc-org-any-rtrace-multiline-leaks-memory-v9_11' into 'v9_11'
Resolve "'delv www.isc.org ANY +rtrace +multiline' leaks memory"

See merge request isc-projects/bind9!1897
2019-05-06 20:52:47 -04:00
Mark Andrews eef0430b75 add CHANGES note
(cherry picked from commit ce5520b695)
2019-05-07 10:35:03 +10:00
Mark Andrews c26a421aab check that delv -t any works
(cherry picked from commit 6999bee7ef)
2019-05-07 10:34:30 +10:00
Mark Andrews 595544329a fix whitespace
(cherry picked from commit 32ba5a0494)
2019-05-07 10:28:48 +10:00
Mark Andrews 333116ac5c return rdatasets when processing ANY queries in client_resfind
(cherry picked from commit 127333c71f)
2019-05-07 10:28:47 +10:00
Mark Andrews 405738b62f Merge branch '1000-arm-doc-rpz-nodata-policy-says-ancount-1-v9_11' into 'v9_11'
Resolve "ARM doc RPZ NODATA policy says ANCOUNT=1"

See merge request isc-projects/bind9!1891
2019-05-06 04:06:56 -04:00
Mark Andrews 401f9c4a3d A NODATA response has ANCOUNT of 0 assuming no CNAME/DNAMES
(cherry picked from commit 4889e06c3a)
2019-05-06 17:54:18 +10:00
Michał Kępień 16bb74b1bc Merge branch 'michal/simplify-trailing-period-handling-in-system-tests-v9_11' into 'v9_11'
[v9_11] Simplify trailing period handling in system tests

See merge request isc-projects/bind9!1878
2019-04-26 15:12:12 -04:00
Michał Kępień 72c7bc03c9 Simplify trailing period handling in system tests
Windows systems do not allow a trailing period in file names while Unix
systems do.  When BIND system tests are run, the $TP environment
variable is set to an empty string on Windows systems and to "." on Unix
systems.  This environment variable is then used by system test scripts
for handling this discrepancy properly.

In multiple system test scripts, a variable holding a zone name is set
to a string with a trailing period while the names of the zone's
corresponding dlvset-* and/or dsset-* files are determined using
numerous sed invocations like the following one:

    dlvsets="$dlvsets dlvset-`echo $zone |sed -e "s/.$//g"`$TP"

In order to improve code readability, use zone names without trailing
periods and replace sed invocations with variable substitutions.

To retain local consistency, also remove the trailing period from
certain other zone names used in system tests that are not subsequently
processed using sed.

(cherry picked from commit da2c1b74ad)
2019-04-26 20:50:55 +02:00
Ondřej Surý 343fa39055 Merge branch 'prep-release-v9_11' into 'v9_11'
Prep release v9 11

See merge request isc-projects/bind9!1865
2019-04-25 10:09:51 -04:00
Tinderbox UserandOndřej Surý a648e07bed doc rebuild
(cherry picked from commit 40b034f5b8)
2019-04-25 15:56:01 +02:00
Tinderbox UserandOndřej Surý 7c6b5f2eaa prep 9.11.6-P1
(cherry picked from commit 6195f229b6)
2019-04-25 15:55:59 +02:00
Ondřej Surý aaee75288a Merge branch '999-tcp-client-crash-v9_11-locks' into 'v9_11'
Replace atomic operations in bin/named/client.c with isc_refcount reference counting

See merge request isc-projects/bind9!1864
2019-04-25 09:54:09 -04:00
Ondřej Surý ef49780d30 Replace atomic operations in bin/named/client.c with isc_refcount reference counting 2019-04-25 15:40:06 +02:00
Ondřej Surý 581ae79528 Merge branch '615-tcp-client-crash-v9_11-v9_11_6_patch-v9_11' into 'v9_11'
Resolve "tcp-clients mostly ineffective"

See merge request isc-projects/bind9!1863
2019-04-25 09:38:41 -04:00
Evan HuntandOndřej Surý b96a3a0c79 CHANGES, release note
(cherry picked from commit 5e18ad05f4)
2019-04-25 15:05:12 +02:00
Evan HuntandOndřej Surý 59434b987e restore allowance for tcp-clients < interfaces
in the "refactor tcpquota and pipeline refs" commit, the counting
of active interfaces was tightened in such a way that named could
fail to listen on an interface if there were more interfaces than
tcp-clients. when checking the quota to start accepting on an
interface, if the number of active clients was above zero, then
it was presumed that some other client was able to handle accepting
new connections. this, however, ignored the fact that the current client
could be included in that count, so if the quota was already exceeded
before all the interfaces were listening, some interfaces would never
listen.

we now check whether the current client has been marked active; if so,
then the number of active clients on the interface must be greater
than 1, not 0.

(cherry picked from commit 0b4e2cd4c3192ba88569dd344f542a8cc43742b5)
(cherry picked from commit d01023aaac)
2019-04-25 15:04:26 +02:00
Evan HuntandOndřej Surý c47ccf630f refactor tcpquota and pipeline refs; allow special-case overrun in isc_quota
- if the TCP quota has been exceeded but there are no clients listening
  for new connections on the interface, we can now force attachment to the
  quota using isc_quota_force(), instead of carrying on with the quota not
  attached.
- the TCP client quota is now referenced via a reference-counted
  'ns_tcpconn' object, one of which is created whenever a client begins
  listening for new connections, and attached to by members of that
  client's pipeline group. when the last reference to the tcpconn
  object is detached, it is freed and the TCP quota slot is released.
- reduce code duplication by adding mark_tcp_active() function.
- convert counters to atomic.

(cherry picked from commit 7e8222378ca24f1302a0c1c638565050ab04681b)
(cherry picked from commit 4939451275722bfda490ea86ca13e84f6bc71e46)
(cherry picked from commit 13f7c918b8)
2019-04-25 15:04:26 +02:00
Evan HuntandOndřej Surý 2ab8a085b3 better tcpquota accounting and client mortality checks
- ensure that tcpactive is cleaned up correctly when accept() fails.
- set 'client->tcpattached' when the client is attached to the tcpquota.
  carry this value on to new clients sharing the same pipeline group.
  don't call isc_quota_detach() on the tcpquota unless tcpattached is
  set.  this way clients that were allowed to accept TCP connections
  despite being over quota (and therefore, were never attached to the
  quota) will not inadvertently detach from it and mess up the
  accounting.
- simplify the code for tcpquota disconnection by using a new function
  tcpquota_disconnect().
- before deciding whether to reject a new connection due to quota
  exhaustion, check to see whether there are at least two active
  clients. previously, this was "at least one", but that could be
  insufficient if there was one other client in READING state (waiting
  for messages on an open connection) but none in READY (listening
  for new connections).
- before deciding whether a TCP client object can to go inactive, we
  must ensure there are enough other clients to maintain service
  afterward -- both accepting new connections and reading/processing new
  queries.  A TCP client can't shut down unless at least one
  client is accepting new connections and (in the case of pipelined
  clients) at least one additional client is waiting to read.

(cherry picked from commit c7394738b2445c16f728a88394864dd61baad900)
(cherry picked from commit e965d5f11d3d0f6d59704e614fceca2093cb1856)
(cherry picked from commit 87d4311614)
2019-04-25 15:04:26 +02:00
Michał KępieńandOndřej Surý 366b4e1ede use reference counter for pipeline groups (v3)
Track pipeline groups using a shared reference counter
instead of a linked list.

(cherry picked from commit 513afd33eb17d5dc41a3f0d2d38204ef8c5f6f91)
(cherry picked from commit 9446629b73)
2019-04-25 15:04:25 +02:00
Witold KręcickiandOndřej Surý 719f604e3f tcp-clients could still be exceeded (v2)
the TCP client quota could still be ineffective under some
circumstances.  this change:

- improves quota accounting to ensure that TCP clients are
  properly limited, while still guaranteeing that at least one client
  is always available to serve TCP connections on each interface.
- uses more descriptive names and removes one (ntcptarget) that
  was no longer needed
- adds comments

(cherry picked from commit 924651f1d5e605cd186d03f4f7340bcc54d77cc2)
(cherry picked from commit 55a7a458e3)
2019-04-25 15:04:25 +02:00
Witold KręcickiandOndřej Surý ec2d50da8d fix enforcement of tcp-clients (v1)
tcp-clients settings could be exceeded in some cases by
creating more and more active TCP clients that are over
the set quota limit, which in the end could lead to a
DoS attack by e.g. exhaustion of file descriptors.

If TCP client we're closing went over the quota (so it's
not attached to a quota) mark it as mortal - so that it
will be destroyed and not set up to listen for new
connections - unless it's the last client for a specific
interface.

(cherry picked from commit f97131d21b97381cef72b971b157345c1f9b4115)
(cherry picked from commit 9689ffc485)
2019-04-25 15:04:25 +02:00
Matthijs Mekking f7f3b0cd8c Merge branch 'matthijs-fix-dnssec-test-intermittent-failure-kskonly-v9_11' into 'v9_11'
Fix dnssec test intermittent failure related to kskonly bugfix

See merge request isc-projects/bind9!1858
2019-04-24 03:54:42 -04:00
Matthijs Mekking 3c9a7ffac8 Wait for correct log message in dnssec/tests.sh
In 9.11 there are some log messages not existing, but the tests
rely on.  Adjust the grep call that gives confidence the rollover
step has occurred.
2019-04-24 09:41:22 +02:00
Matthijs Mekking 9c77cd8306 Harden grep key ID calls
Key IDs may accidentally match dig output that is not the key ID (for
example the RRSIG inception or expiration time, the query ID, ...).
Search for key ID + signer name should prevent that, as that is what
only should occur in the RRSIG record, and signer name always follows
the key ID.

(cherry picked from commit 83473b9758)
2019-04-24 09:41:22 +02:00
Matthijs Mekking d8de28610d Remove sleeps
Remove sleep calls from test, rely on wait_for_log().  Make
wait_for_log() and dnssec_loadkeys_on() fail the test if the
appropriate log line is not found.

Slightly adjust the echo_i() lines to print only the key ID (not the
key name).

(cherry picked from commit 67f0635f3c)
2019-04-24 09:41:22 +02:00
Mark Andrews 216752e3b2 Merge branch '995-dlz_open_driver-fix-build-failure-without-dlfcn-h-v9_11' into 'v9_11'
Resolve "dlz_open_driver: fix build failure without dlfcn.h"

See merge request isc-projects/bind9!1855
2019-04-23 21:02:25 -04:00
Mark Andrews 29525f639f add CHANGES
(cherry picked from commit 19e4098139)
2019-04-24 09:31:51 +10:00
Mark Andrews 4ab8411c4c conditionally include <dlfcn.h>
(cherry picked from commit eee8084734)
2019-04-24 09:31:20 +10:00
Michał Kępień 22e81bdc82 Merge branch 'michal/minor-nsupdate-system-test-tweaks-v9_11' into 'v9_11'
[v9_11] Minor "nsupdate" system test tweaks

See merge request isc-projects/bind9!1849
2019-04-23 09:20:07 -04:00
Michał Kępień 4e2cc911d2 Wait more than 1 second for NSEC3 chain changes
One second may not be enough for an NSEC3 chain change triggered by an
UPDATE message to complete.  Wait up to 10 seconds when checking whether
a given NSEC3 chain change is complete in the "nsupdate" system test.

(cherry picked from commit f8746cddbc)
2019-04-23 14:59:30 +02:00
Michał Kępień 5d8147fa70 Remove redundant sleeps
In the "nsupdate" system test, do not sleep before checking results of
changes which are expected to be processed synchronously, i.e. before
nsupdate returns.

(cherry picked from commit 1c8e5ea333)
2019-04-23 14:59:29 +02:00
Mark Andrews fc9b7cea99 Merge branch '962-bind-just-disables-gssapi-support-if-no-gssapi-krb5-headers-found-v9_11' into 'v9_11'
Resolve "Bind just disables GSSAPI support if no GSSAPI/KRB5 headers found"

See merge request isc-projects/bind9!1843
2019-04-22 23:15:15 -04:00
Mark Andrews e55a19c8f0 make 'configure --with-gssapi=yes' fatal if support is not found
(cherry picked from commit e420078c63)
2019-04-23 13:01:17 +10:00
Mark Andrews 6d39087183 Merge branch 'incorrect-use-of-bool-v9_11' into 'v9_11'
using 0 instead of false

See merge request isc-projects/bind9!1840
2019-04-22 21:58:46 -04:00
Mark Andrews ac77f8df02 using 0 instead of false
(cherry picked from commit da7f683abf)
2019-04-23 11:46:12 +10:00
Michał Kępień 2dee058987 Merge branch 'michal/win32-system-test-fixes-v9_11' into 'v9_11'
[v9_11] Miscellaneous Windows system test fixes

See merge request isc-projects/bind9!1835
2019-04-19 05:52:17 -04:00
Michał Kępień f78f6439b7 Update interface lists in ifconfig scripts
Make bin/tests/system/ifconfig.bat also configure addresses ending with
9 and 10, so that the script is in sync with its Unix counterpart.

Update comments listing the interfaces created by ifconfig.{bat,sh} so
that they do not include addresses whose last octet is zero (since an
address like 10.53.1.0/24 is not a valid host address and thus the
aforementioned scripts do not even attempt configuring them).

(cherry picked from commit b6c1cdfffe)
2019-04-19 11:30:32 +02:00
Michał Kępień 4f992ab35f Fix the "dnssec" system test on Windows
On Windows, the bin/tests/system/dnssec/signer/example.db.signed file
contains carriage return characters at the end of each line.  Remove
them before passing the aforementioned file to the awk script extracting
key IDs so that the latter can work properly.

(cherry picked from commit e4280ed9f5)
2019-04-19 11:30:27 +02:00
Michał Kępień d9688b58c8 Do not wait for lock file cleanup on Windows
As signals are currently not handled by named on Windows, instances
terminated using signals are not able to perform a clean shutdown, which
involves e.g. removing the lock file.  Thus, waiting for a given
instance's lock file to be removed beforing assuming it is shut down
is pointless on Windows, so do not even attempt it.

(cherry picked from commit 761ba4514f)
2019-04-19 11:29:44 +02:00
Michał Kępień 0aec955235 Merge branch '979-win32-remove-lock-file-upon-shutdown-v9_11' into 'v9_11'
[v9_11] win32: remove lock file upon shutdown

See merge request isc-projects/bind9!1833
2019-04-19 05:20:32 -04:00
Michał Kępień 48ddc78fb2 Add CHANGES entry
5214.	[bug]		win32: named now removes its lock file upon shutdown.
			[GL #979]

(cherry picked from commit e048436805)
2019-04-19 11:00:47 +02:00
Michał Kępień 8e18f02626 win32: remove lock file upon shutdown
Upon named shutdown, the lock file should not just be unlocked but also
removed.

(cherry picked from commit c506077da5)
2019-04-19 11:00:46 +02:00
Michał Kępień 2adc28712d Merge branch '978-win32-fix-service-state-reported-during-shutdown-v9_11' into 'v9_11'
[v9_11] win32: fix service state reported during shutdown

See merge request isc-projects/bind9!1831
2019-04-19 04:19:36 -04:00
Michał Kępień 89c8fed449 Add CHANGES entry
5213.	[bug]		win32: Eliminated a race which allowed named.exe running
			as a service to be killed prematurely during shutdown.
			[GL #978]

(cherry picked from commit e7332343ed)
2019-04-19 09:54:20 +02:00
Michał Kępień d6b8c7da4b win32: fix service state reported during shutdown
When a Windows service receives a request to stop, it should not set its
state to SERVICE_STOPPED until it is completely shut down as doing that
allows the operating system to kill that service prematurely, which in
the case of named may e.g. prevent the PID file and/or the lock file
from being cleaned up.

Set service state to SERVICE_STOP_PENDING when named begins its shutdown
and only report the SERVICE_STOPPED state immediately before exiting.

(cherry picked from commit 964749dfdb)
2019-04-19 09:54:06 +02:00
Matthijs Mekking 00e59acab4 Merge branch '757-unsupported-algorithms-v9_11' into 'v9_11'
Resolve "Investigate and fix what happens when managed-key algorithm is not supported"

See merge request isc-projects/bind9!1825
2019-04-19 03:14:15 -04:00
Matthijs Mekking b053cd4acc Update copyrights 2019-04-19 08:45:12 +02:00
Matthijs Mekking 93f33cdd0f Add documentation
(cherry picked from commit a67dac5d21)
2019-04-19 08:45:12 +02:00
Matthijs Mekking d07f643557 DLV tests unsupported/disabled algorithms
This tests both the cases when the DLV trust anchor is of an
unsupported or disabled algorithm, as well as if the DLV zone
contains a key with an unsupported or disabled algorithm.

(cherry picked from commit 3b7c849a3f)
2019-04-19 08:45:12 +02:00
Matthijs Mekking a97061c939 Ignore unsupported trust anchors
(cherry picked from commit 1d45ad8f39)

Some adaptations were made to make the code compile and tests pass.
2019-04-19 08:45:12 +02:00
Matthijs Mekking 469ef284b3 Add inline test related to unsupported algorithms
(cherry picked from commit 924fdad0e5)
2019-04-18 15:12:04 +02:00
Matthijs Mekking 8cef3952b6 System tests for tools and unsupported algorithms
(cherry picked from commit dfcf9bb0ed)
2019-04-18 15:12:04 +02:00
Ondřej Surý 48fccbf23b Merge branch '989-check-for-typeof-extension-v9_11' into 'v9_11'
(v9_11) Use uintmax_t instead of typeof(x) in the ISC_ALIGN macro on non-GNUC systems

See merge request isc-projects/bind9!1828
2019-04-18 07:34:19 -04:00
Ondřej Surý de4fe3ed32 On non-GNUC systems, use uintmax_t in the ISC_ALIGN macro
(cherry picked from commit 2e40cc94dc)
2019-04-18 13:18:10 +02:00
Ondřej Surý 7123a4703b Merge branch 'ondrej/text-files-dont-need-copyright-v9_11' into 'v9_11'
(v9_11) Simple text files don't need copyright header

See merge request isc-projects/bind9!1823
2019-04-18 03:26:23 -04:00
Ondřej Surý c76c0f4489 Simple text files with docs on build or design don't really need copyright on their own
(cherry picked from commit 1877139a32)
2019-04-18 08:59:43 +02:00
Ondřej Surý c266d181b9 Merge branch 'ondrej/refactor-DNS_RDATASET_FIXED-code-flow-v9_11' into 'v9_11'
(v9_11) Refactor the DNS_RDATASET_FIXED code to use macros instead of ifdefs

See merge request isc-projects/bind9!1818
2019-04-17 05:50:25 -04:00
Ondřej Surý 376800b2ad Refactor the DNS_RDATASET_FIXED code to use constants instead of ifdefs
(cherry picked from commit 4edbb773a1)
2019-04-17 11:34:49 +02:00
Matthijs Mekking f5b60bb8d7 Merge branch '763-matthijs-active-zsk-but-ksk-only-v9_11' into 'v9_11'
Don't sign DNSKEY RRset with ZSK if KSK is offline

See merge request isc-projects/bind9!1797
2019-04-12 10:21:15 -04:00
Matthijs Mekking ce3d35d950 Fix dnssec test
The following changes were needed:

* Remove dnskey-sig-validity option (added in 9.12)
* Replace rndccmd, dig_with_opts with export variables
* Remove tests for CDNSKEY and CDS (in 9.11 always signed with ZSK)
2019-04-12 15:57:31 +02:00
Matthijs Mekking c5e1bfc6f9 Fix copyrights 2019-04-12 15:57:31 +02:00
Matthijs Mekking 4af2d5b6d6 With update-check-ksk also consider offline keys
The option `update-check-ksk` will look if both KSK and ZSK are
available before signing records.  It will make sure the keys are
active and available.  However, for operational practices keys may
be offline.  This commit relaxes the update-check-ksk check and will
mark a key that is offline to be available when adding signature
tasks.

(cherry picked from commit 3cb8c49c73)
(cherry picked from commit b508cffeee3bfb8bc7dcf39db59ec3782a5d9e4c)
2019-04-12 15:57:31 +02:00
Matthijs Mekking 9079ae03c7 Style: some curly brackets
(cherry picked from commit 2e83e3255a)
(cherry picked from commit 42b0bf4d3bab180876d4803fe2ec1f6e93064b28)
2019-04-12 15:57:15 +02:00
Matthijs Mekking 944c2b5a74 Add detail on echo message in autosign test
(cherry picked from commit d330986374)
(cherry picked from commit d281d9ae99985772db13fb3dce0c0e7e2fb5f5b8)
2019-04-12 15:57:15 +02:00
Matthijs Mekking 537a88e403 Add test for ZSK rollover while KSK offline
This commit adds a lengthy test where the ZSK is rolled but the
KSK is offline (except for when the DNSKEY RRset is changed).  The
specific scenario has the `dnskey-kskonly` configuration option set
meaning the DNSKEY RRset should only be signed with the KSK.

A new zone `updatecheck-kskonly.secure` is added to test against,
that can be dynamically updated, and that can be controlled with rndc
to load the DNSSEC keys.

There are some pre-checks for this test to make sure everything is
fine before the ZSK roll, after the new ZSK is published, and after
the old ZSK is deleted.  Note there are actually two ZSK rolls in
quick succession.

When the latest added ZSK becomes active and its predecessor becomes
inactive, the KSK is offline.  However, the DNSKEY RRset did not
change and it has a good signature that is valid for long enough.
The expected behavior is that the DNSKEY RRset stays signed with
the KSK only (signature does not need to change).  However, the
test will fail because after reconfiguring the keys for the zone,
it wants to add re-sign tasks for the new active keys (in sign_apex).
Because the KSK is offline, named determines that the only other
active key, the latest ZSK, will be used to resign the DNSKEY RRset,
in addition to keeping the RRSIG of the KSK.

The question is: Why do we need to resign the DNSKEY RRset
immediately when a new key becomes active?  This is not required,
only once the next resign task is triggered the new active key
should replace signatures that are in need of refreshing.

(cherry-picked from commit c48b85d0a3c34480179d44e736e3e535dbae1001)
2019-04-12 15:57:15 +02:00
Mark Andrews 13dcf61a98 Merge branch '980-util-update_copyrights-now-needs-to-handle-files-with-cr-lf-endings-v9_11' into 'v9_11'
Resolve "util/update_copyrights now needs to handle files with CR LF endings."

See merge request isc-projects/bind9!1802
2019-04-12 00:45:20 -04:00
Mark Andrews 66b82fabaa support files which have CR LF ending like those in win32utils
(cherry picked from commit e76936fd85)
2019-04-12 14:32:08 +10:00
Evan Hunt c39fc19d75 Merge branch '963-dnstap-check-ra-v9_14-v9_11' into 'v9_11'
dnstap: if recursion is not available, log queries as AQ instead of CQ

See merge request isc-projects/bind9!1800
2019-04-11 22:26:22 -04:00
Evan Hunt 9c9ee35936 CHANGES
(cherry picked from commit ded4650794)
2019-04-11 19:12:47 -07:00
Evan Hunt fbcaadb22e dnstap: if recursion is not available, log queries as AQ instead of CQ
(cherry picked from commit 1f578cdb12)
(cherry picked from commit f6c3b13522)
2019-04-11 19:12:47 -07:00
Mark Andrews c8370c486a Merge branch '899-add-totext-fromtext-to-wirechecks-v9_11' into 'v9_11'
Run wire check through "totext" and "fromtext" methods including multi-line.

See merge request isc-projects/bind9!1790
2019-04-11 06:04:57 -04:00
Mark Andrews d37c85a302 Add CHANGES
(cherry picked from commit 307a1b563b)
2019-04-11 19:52:41 +10:00
Mark Andrews cba5989651 Add debug printfs
(cherry picked from commit b78e128a2f)
2019-04-11 19:52:38 +10:00
Mark Andrews f3922dd9c1 Prevent WIRE_INVALID() being called without a argument
(cherry picked from commit e73a5b0ce3)
2019-04-11 19:51:06 +10:00
Mark Andrews 478de1f761 Check multi-line output from dns_rdata_tofmttext()
Check that multi-line output from dns_rdata_tofmttext() can be read
back in by dns_rdata_fromtext().

(cherry picked from commit b089f43b7a)
2019-04-11 19:51:06 +10:00
Mark Andrews c6ca84a0c8 Process master file comments and make input invalid again
(cherry picked from commit 1a75a5cee6)
2019-04-11 19:51:05 +10:00
Mark Andrews 1a036f324f Set 'specials' to match 'specials' in 'lib/dns/master.c'
(cherry picked from commit 7941a9554f)
2019-04-11 19:51:05 +10:00
Mark Andrews 2c5652067f Fix whitespace so that the names align
(cherry picked from commit cc5e16e4d3)
2019-04-11 19:50:41 +10:00
Mark Andrews 8a7255c9fc Add dns_rdata_totext() and dns_rdata_fromtext() to fromwire
Add dns_rdata_totext() and dns_rdata_fromtext() to fromwire for
valid inputs to ensure that what we accept in dns_rdata_fromwire()
can be written out and read back in.

(cherry picked from commit 36f30f5731)
2019-04-11 19:48:02 +10:00
Mark Andrews 377669da45 Merge branch '965-delv-prints-weird-ttl-values-2-v9_11' into 'v9_11'
Test that dig and delve print correct TTL values.

See merge request isc-projects/bind9!1787
2019-04-10 02:32:04 -04:00
Mark Andrews d5da331093 add CHANGES
(cherry picked from commit dfc485b02e)
2019-04-10 16:20:12 +10:00
Matthijs MekkingandMark Andrews c272e6799f Check dig TTLs.
(cherry picked from commit 195277ca6d)
2019-04-10 16:19:32 +10:00
Mark Andrews 8015e95b77 Check delv TTLs.
(cherry picked from commit 146202d6a8)
2019-04-10 16:10:39 +10:00
Mark Andrews 0348c1ca6b Merge branch '899-enforce-hash-in-ds-v9_11' into 'v9_11'
enforce DS hash exists

See merge request isc-projects/bind9!1784
2019-04-10 02:00:50 -04:00
Mark Andrews 4bb239abbe add CHANGES
(cherry picked from commit 97b7360ce1)
2019-04-10 15:44:00 +10:00
Mark Andrews 4e4d7d5b8b add ds unit test
(cherry picked from commit 6eb28eda1e)
2019-04-10 15:44:00 +10:00
Mark Andrews 8df14d2f89 enforce DS hash exists
(cherry picked from commit b274f3fad7)
2019-04-10 14:44:23 +10:00
Mark Andrews 13c87fdf99 Merge branch '852-run-fromtext-through-fromwire-v9_11' into 'v9_11'
check that from fromtext produces valid towire input

See merge request isc-projects/bind9!1781
2019-04-09 23:37:59 -04:00
Mark Andrews a8ead01989 add CHANGES
(cherry picked from commit d712b88048)
2019-04-10 13:24:42 +10:00
Mark Andrews 94e852bdcf check that from fromtext produces valid towire input
(cherry picked from commit 7b0a653858)
2019-04-10 13:24:42 +10:00
Ondřej Surý 17e6388db2 Merge branch '971-downgrade-DLZ_DBCLIENTINFO_VERSION-in-dlz_minimal.h-v9_11' into 'v9_11'
(v9_11) Downgrade the dns_clientinfomethod structure to the version in lib/dns/clientinfo.c

See merge request isc-projects/bind9!1779
2019-04-09 15:45:11 -04:00
Ondřej Surý 7b537d1f05 Downgrade the dns_clientinfomethod structure to the version in lib/dns/clientinfo.c
(cherry picked from commit a6f09b2255)
2019-04-09 20:28:09 +01:00
Mark Andrews 853caac188 Merge branch '899-fromwire-check-flags-for-nokey-v9_11' into 'v9_11'
Check KEY flags for empty key in fromwire method

See merge request isc-projects/bind9!1777
2019-04-09 00:39:59 -04:00
Mark Andrews 449129b8c9 add CHANGES
(cherry picked from commit f78c688c4f)
2019-04-09 14:27:40 +10:00
Mark Andrews b35eacbad2 for rkey flags MUST be zero
(cherry picked from commit 82d4931440)
2019-04-09 14:27:11 +10:00
Mark Andrews bbd7a496be check flags for no key in fromwire for *KEY
(cherry picked from commit 2592e91516)
2019-04-09 14:27:03 +10:00
Michał Kępień 0efc1c80ac Merge branch '893-do-not-rely-on-default-dig-options-in-system-tests-v9_11' into 'v9_11'
[v9_11] Do not rely on default dig options in system tests

See merge request isc-projects/bind9!1765
2019-04-03 07:21:58 -04:00
Michał Kępień 68601bd70f Do not rely on default dig options in system tests
Some system tests assume dig's default setings are in effect.  While
these defaults may only be silently overridden (because of specific
options set in /etc/resolv.conf) for BIND releases using liblwres for
parsing /etc/resolv.conf (i.e. BIND 9.11 and older), it is arguably
prudent to make sure that tests relying on specific +timeout and +tries
settings specify these explicitly in their dig invocations, in order to
prevent test failures from being triggered by any potential changes to
current defaults.

(cherry picked from commit b6cce0fb8b)
2019-04-03 13:00:23 +02:00
Michał Kępień eb4f80693e Merge branch 'michal/add-r-randfile-where-it-is-missing' into 'v9_11'
Add "-r $RANDFILE" where it is missing

See merge request isc-projects/bind9!1763
2019-04-02 07:29:02 -04:00
Michał Kępień 59e1329e9b Add "-r $RANDFILE" where it is missing
If the path to the source of random data is not passed explicitly to
dnssec-keygen or dnssec-signzone and the --with-randomdev compile-time
switch is not used, the aforementioned utilities will hang if the
default source of random data (/dev/random) runs out of entropy.  Use
"-r $RANDFILE" to prevent that from happening in affected system tests.
2019-04-02 13:09:08 +02:00
Mark Andrews 9117b34444 Merge branch '920-see-problem-when-multiple-sigs-with-besteffort-parsing-v9_11' into 'v9_11'
Address problems with best effort parsing.

See merge request isc-projects/bind9!1753
2019-03-26 06:48:30 -04:00
Mark Andrews dbd53847a3 add CHANGES
(cherry picked from commit b779342017)
2019-03-26 21:33:18 +11:00
Witold KręcickiandMark Andrews 736d8c5b80 Fix assertion failure in nslookup/dig/mdig when message has multiple SIG(0) options.
When parsing message with DNS_MESSAGE_BESTEFFORT (used exclusively in
tools, never in named itself) if we hit an invalid SIG(0) in wrong
place we continue parsing the message, and put the sig0 in msg->sig0.
If we then hit another sig0 in a proper place we see that msg->sig0
is already 'taken' and we don't free name and rdataset, and we don't
set seen_problem. This causes an assertion failure.
This fixes that issue by setting seen_problem if we hit second sig0,
tsig or opt, which causes name and rdataset to be always freed.

(cherry picked from commit 51a55ddbb7)
2019-03-26 21:32:41 +11:00
Mark Andrews e3409b6c00 Merge branch '948-dlzexternal-driver-so-failing-to-build-macos-v9_11' into 'v9_11'
Resolve "dlzexternal/driver.so failing to build MacOS v9_11"

See merge request isc-projects/bind9!1723
2019-03-26 06:08:44 -04:00
Mark Andrews 18e1c33206 back port complete SO_* block preserving SunOS disable 2019-03-26 05:51:00 -04:00
Mark Andrews f65b2c434d add CHANGES 2019-03-26 05:51:00 -04:00
Mark Andrews 2d4d4c223d backport MacOS link flags 2019-03-26 05:51:00 -04:00
Ondřej Surý d0f3b0f4d5 Merge branch '4-make-dnstap.pb-c.h-private-v9_11' into 'v9_11'
(v9_11) Make lib/dns/dnstap.pb-c.h header a private to lib/dns

See merge request isc-projects/bind9!1746
2019-03-22 07:22:25 -04:00
Ondřej Surý c927beea2d Make lib/dns/dnstap.pb-c.h private header
This changes dns_dtdata struct to not expose data types from dnstap.pb-c.h to
prevent the need for including this header where not really needed.

(cherry picked from commit 8ccce7e24b)
2019-03-22 12:08:16 +01:00
Mark Andrews 83317ae403 Merge branch '899-zonemd-check-for-hash-existence-v9_11' into 'v9_11'
zonemd require non empty hash

See merge request isc-projects/bind9!1741
2019-03-21 16:05:45 -04:00
Mark Andrews 24b66c00f9 add CHANGES
(cherry picked from commit e1db1b8dcb)
2019-03-22 06:52:32 +11:00
Mark Andrews 96b9f0340a Disallow empty ZONEMD hashes
This change is the result of discussions with the authors of
draft-wessels-dns-zone-digest.

(cherry picked from commit 473987d8d9)
2019-03-22 06:52:32 +11:00
Mark Andrews 2029ec9aa3 Merge branch '899-eid-totext-is-broken-v9_11' into 'v9_11'
EID and NIMLOC totext is broken.

See merge request isc-projects/bind9!1737
2019-03-21 05:43:09 -04:00
Mark Andrews b6952a6202 add CHANGES
(cherry picked from commit c20b89fcf8)
2019-03-21 20:27:18 +11:00
Mark Andrews 30f10bf79e add brackets for multi-line output
(cherry picked from commit 40a770b932)
2019-03-21 20:26:52 +11:00
Michał Kępień 9e58264b5a Merge branch 'michal/fix-key-id-extraction-in-the-dnssec-system-test-v9_11' into 'v9_11'
[v9_11] Fix key ID extraction in the "dnssec" system test

See merge request isc-projects/bind9!1735
2019-03-21 03:35:55 -04:00
Michał Kępień de1eba6a0f Fix key ID extraction in the "dnssec" system test
Simply looking for the key ID surrounded by spaces in the tested
dnssec-signzone output file is not a precise enough method of checking
for signatures prepared using a given key ID: it can be tripped up by
cross-algorithm key ID collisions and certain low key IDs (e.g. 60, the
TTL specified in bin/tests/system/dnssec/signer/example.db.in), which
triggers false positives for the "dnssec" system test.  Make key ID
extraction precise by using an awk script which operates on specific
fields.

(cherry picked from commit a40c60e4c1)
2019-03-21 08:12:52 +01:00
Ondřej Surý 49ed0473d9 Merge branch '4-update-gitignore-for-future-automake-v9_11' into 'v9_11'
(v9_11) Update and sort the top level .gitignore to ignore automake files

See merge request isc-projects/bind9!1730
2019-03-20 05:54:02 -04:00
Ondřej Surý ef2f3e38e4 Sort the top level .gitignore file
(cherry picked from commit b9d524ed7e)
2019-03-20 10:41:29 +01:00
Ondřej Surý af5c2186c3 Update top level .gitignore to ignore automake files
(cherry picked from commit 5c67d1d120)
2019-03-20 10:41:29 +01:00
Ondřej Surý 8e5e854858 Merge branch '946-enable-fips-mode-option-breaks-build-of-hmacmd5-c-and-md5-c' into 'v9_11'
Resolve "--enable-fips-mode option breaks build of  hmacmd5.c and md5.c"

See merge request isc-projects/bind9!1722
2019-03-20 04:33:51 -04:00
Mark Andrews d3976fe4cc add CHANGES 2019-03-20 12:52:07 +11:00
Mark Andrews 98a37c9aba add #include <isc/util.h> 2019-03-20 11:41:51 +11:00
Michał Kępień 20483dc12b Merge branch '944-make-stop.pl-wait-for-lock-file-cleanup-v9_11' into 'v9_11'
[v9_11] Make stop.pl wait for lock file cleanup

See merge request isc-projects/bind9!1711
2019-03-19 06:18:38 -04:00
Michał Kępień 537765df80 Make stop.pl wait for lock file cleanup
bin/tests/system/stop.pl only waits for the PID file to be cleaned up
while named cleans up the lock file after the PID file.  Thus, the
aforementioned script may consider a named instance to be fully shut
down when in fact it is not.

Fix by also checking whether the lock file exists when determining a
given instance's shutdown status.  This change assumes that if a named
instance uses a lock file, it is called "named.lock", and that if an
lwresd instance uses a lock file, it is called "lwresd.lock".

Also rename clean_pid_file() to pid_file_exists(), so that it is called
more appropriately (it does not clean up the PID file itself, it only
returns the server's identifier if its PID file is not yet cleaned up).

(cherry picked from commit c787a539d2)
2019-03-19 11:03:46 +01:00
Michał Kępień ebedeffa25 Correctly invoke stop.pl when start.pl fails
MR !1141 broke the way stop.pl is invoked when start.pl fails:

  - start.pl changes the working directory to $testdir/$server before
    attempting to start $server,

  - commit 27ee629e6b causes the $testdir
    variable in stop.pl to be determined using the $SYSTEMTESTTOP
    environment variable, which is set to ".." by all tests.sh scripts,

  - commit e227815af5 makes start.pl pass
    $test (the test's name) rather than $testdir (the path to the test's
    directory) to stop.pl when a given server fails to start.

Thus, when a server is restarted from within a tests.sh script and such
a restart fails, stop.pl attempts to look for the server directory in a
nonexistent location ($testdir/$server/../$test, i.e. $testdir/$test,
instead of $testdir/../$test).  Fix the issue by changing the working
directory before stop.pl is invoked in the scenario described above.

(cherry picked from commit 4afad2a047)
2019-03-19 10:28:59 +01:00
Evan Hunt 707b2349b8 Merge branch '945-remove-revoked-root-key-from-bind-keys-v9_14-v9_11' into 'v9_11'
Resolve "Remove revoked root key from bind.keys."

See merge request isc-projects/bind9!1709
2019-03-19 00:30:51 -04:00
Mark AndrewsandEvan Hunt d5c57db1ae Remove revoked root DNSKEY from bind.keys.
(cherry picked from commit 0e805b58e8)
(cherry picked from commit 3954d4ec30)
2019-03-18 21:30:22 -07:00
Matthijs Mekking a7b8090ca6 Merge branch '813-matthijs-failure-loading-rpz-v9_11' into 'v9_11'
Resolve "Problems after failure of loading rpz [ISC-support #14002]"

See merge request isc-projects/bind9!1566
2019-03-15 04:58:03 -04:00
Matthijs Mekking 1461accf9c Add test for rpz zone load fail 2019-03-15 09:16:49 +01:00
Matthijs Mekking 97118d59ba Make RPZ tests more readable 2019-03-15 08:32:03 +01:00
Matthijs Mekking a8f20871c4 Add README to RPZ tests 2019-03-15 08:32:03 +01:00
Mark Andrews fc17d57d0d Merge branch '940-unit-dnstap-pkcs11-tz-v9_11' into 'v9_11'
Fix regression in dnstap_test with native pkcs11

See merge request isc-projects/bind9!1701
2019-03-15 01:35:57 -04:00
Mark Andrews b4963500df add CHANGES
(cherry picked from commit 788f784191)
2019-03-15 16:20:14 +11:00
Petr MenšíkandMark Andrews 6992c50240 Fix regression in dnstap_test with native pkcs11
Change to cmocka broken initialization of TZ environment. This time,
commit 1cf1254051 is not soon enough. Has
to be moved more forward, before any other tests. It library is not full
reinitialized on each test.

(cherry picked from commit 71c4fad592)
2019-03-15 16:19:44 +11:00
Evan Hunt 49358c7652 Merge branch 'pmensik-skip-timer-test' into 'v9_11'
Workaround to kyua bug

See merge request isc-projects/bind9!1697
2019-03-14 17:31:08 -04:00
Petr MensikandEvan Hunt 5480d26da4 Workaround to kyua bug
Kyua 0.13 is not able to correctly handle whole test skipping.
Make workaround to it, include skipping message.
2019-03-14 14:19:45 -07:00
Evan Hunt dacfa09725 Merge branch '938-cppcheck-format-issues-v9_11' into 'v9_11'
Resolve "Cppcheck format issues."

See merge request isc-projects/bind9!1696
2019-03-14 17:03:35 -04:00
Mark AndrewsandEvan Hunt 8a85e3d924 force promotion to unsigned int
(cherry picked from commit 1eba2c5b06)
2019-03-14 13:53:04 -07:00
Evan Hunt 09f9f10ead Merge branch '890-assert-the-hevent-rdataset-is-non-null-v9_11' into 'v9_11'
Resolve "Assert the hevent->rdataset is non-NULL."

See merge request isc-projects/bind9!1694
2019-03-14 16:28:43 -04:00
Mark AndrewsandEvan Hunt 25268aaf8c assert hevent->rdataset is non NULL
(cherry picked from commit d8d04edfba)
2019-03-14 13:17:10 -07:00
Evan Hunt be1dc0d82c Merge branch '937-potential-null-pointer-dereference-in-bin-tests-system-dlzexternal-driver-c-v9_11' into 'v9_11'
Resolve "potential null pointer dereference in bin/tests/system/dlzexternal/driver.c"

See merge request isc-projects/bind9!1691
2019-03-14 16:09:07 -04:00
Mark AndrewsandEvan Hunt 3756a08d30 check that state and state->log are non NULL before calling state->log
(cherry picked from commit 7bf6750330)
2019-03-14 12:57:21 -07:00
Mark Andrews 7d70b31542 Merge branch '935-fix-ecc-algorithms-unused-constants-in-pkcs-11-build-c116fb96-falls-short' into 'v9_11'
Resolve "Fix ECC algorithms unused constants in PKCS#11 build (c116fb96) falls short"

See merge request isc-projects/bind9!1682
2019-03-13 22:29:46 -04:00
Mark Andrews 9c2f4af5a1 pkcs11-kegen build failed if ECDSA was not supported 2019-03-14 13:15:21 +11:00
Mark Andrews eb5696f04e Merge branch '936-missing-unlocks-in-sdlz-c-v9_11' into 'v9_11'
Resolve "Missing unlocks in sdlz.c"

See merge request isc-projects/bind9!1680
2019-03-13 20:08:19 -04:00
Mark Andrews 0a1e079e79 add CHANGES
(cherry picked from commit 32f2ae3791)
2019-03-14 09:02:12 +11:00
Mark Andrews e6ab8fc7d0 add missing MAYBE_UNLOCK
(cherry picked from commit ff8bf617e7)
2019-03-14 09:01:31 +11:00
Evan Hunt d87f19323c Merge branch '834-fix-race-in-fctx-cancel-v9_11' into 'v9_11'
fix race in socket code

See merge request isc-projects/bind9!1674
2019-03-12 16:18:45 -04:00
Witold KręcickiandEvan Hunt 3993503de4 CHANGES
(cherry picked from commit 50f6054294)
2019-03-12 13:00:44 -07:00
Witold KręcickiandEvan Hunt ff401e670f Fix a race in fctx_cancelquery.
When sending an udp query (resquery_send) we first issue an asynchronous
isc_socket_connect and increment query->connects, then isc_socket_sendto2
and increment query->sends.
If we happen to cancel this query (fctx_cancelquery) we need to cancel
all operations we might have issued on this socket. If we are under very high
load the callback from isc_socket_connect (resquery_udpconnected) might have
not yet been fired. In this case we only cancel the CONNECT event on socket,
and ignore the SEND that's waiting there (as there is an `else if`).
Then we call dns_dispatch_removeresponse which kills the dispatcher socket
and calls isc_socket_close - but if system is under very high load, the send
we issued earlier might still not be complete - which triggers an assertion
because we're trying to close a socket that's still in use.

The fix is to always check if we have incomplete sends on the socket and cancel
them if we do.

(cherry picked from commit 56183a3917)
2019-03-12 13:00:05 -07:00
Michał Kępień 369f3c392b Merge branch 'michal/silence-a-perl-warning-output-by-stop.pl-v9_11' into 'v9_11'
[v9_11] Silence a Perl warning output by stop.pl

See merge request isc-projects/bind9!1670
2019-03-12 04:04:15 -04:00
Michał Kępień 42a210b7cf Silence a Perl warning output by stop.pl
On Unix systems, the CYGWIN environment variable is not set at all when
BIND system tests are run.  If a named instance crashes on shutdown or
otherwise fails to clean up its pidfile and the CYGWIN environment
variable is not set, stop.pl will print an uninitialized value warning
on standard error.  Prevent this by using defined().

(cherry picked from commit 91e5a99b9b)
2019-03-12 08:43:13 +01:00
Mark Andrews e57796dd15 Merge branch 'ifconfig.sh-anywhere-v9_11' into 'v9_11'
Allow ifconfig to be called from any directory

See merge request isc-projects/bind9!1668
2019-03-11 23:24:54 -04:00
Petr MenšíkandMark Andrews 1f32ad6064 Allow ifconfig to be called from any directory
ifconfig.sh depends on config.guess for platform guessing. It uses it to
choose between ifconfig or ip tools to configure interfaces. If
system-wide automake script is installed and local was not found, use
platform guess. It should work well on mostly any sane platform. Still
prefers local guess, but passes when if cannot find it.

(cherry picked from commit 38301052e1)
2019-03-12 14:11:03 +11:00
Evan Hunt a4fef634f5 Merge branch '892-fix-redirect-name-v9_11' into 'v9_11'
use qname in redirect2

See merge request isc-projects/bind9!1664
2019-03-11 14:39:15 -04:00
Mark AndrewsandEvan Hunt 6115670bd4 add CHANGES
(cherry picked from commit ad785e4f93)
2019-03-11 11:28:29 -07:00
Mark AndrewsandEvan Hunt 93ee793d97 use client->query.qname
(cherry picked from commit 8758d36a5e)
2019-03-11 11:27:45 -07:00
Michał Kępień 64d16586f2 Merge branch 'michal/stabilize-the-gost-system-test' into 'v9_11'
Stabilize the "gost" system test

See merge request isc-projects/bind9!1642
2019-03-11 08:48:05 -04:00
Michał Kępień 170cb442a9 Stabilize the "gost" system test
In the "gost" system test, the ./NS RRset returned in the response to
ns2's priming query might not yet be validated when ns2 assembles the
response to the ./SOA query.  If that happens, the ./NS RRset will not
be placed in the AUTHORITY section of the response to the ./SOA query,
triggering a false positive for the "gost" system test as the ./NS RRset
is always present in the response sent by ns1 (since it is authoritative
for the root zone).  As the purpose of the "gost" system test is to
check whether a zone signed using GOST is properly validated and only
positive responses are inspected, use the +noauth dig option for all
queries in that test, so that the contents of the AUTHORITY section do
not influence its outcome.
2019-03-11 13:32:02 +01:00
Michał Kępień 23435c423c Merge branch '928-stabilize-delzsk.example-zone-checks-v9_11' into 'v9_11'
[v9_11] Stabilize "delzsk.example" zone checks

See merge request isc-projects/bind9!1659
2019-03-11 08:28:15 -04:00
Michał Kępień 780e1134e7 Stabilize "delzsk.example" zone checks
When a zone is converted from NSEC to NSEC3, the private record at zone
apex indicating that NSEC3 chain creation is in progress may be removed
during a different (later) zone_nsec3chain() call than the one which
adds the NSEC3PARAM record.  The "delzsk.example" zone check only waits
for the NSEC3PARAM record to start appearing in dig output while private
records at zone apex directly affect "rndc signing -list" output.  This
may trigger false positives for the "autosign" system test as the output
of the "rndc signing -list" command used for checking ZSK deletion
progress may contain extra lines which are not accounted for.  Ensure
the private record is removed from zone apex before triggering ZSK
deletion in the aforementioned check.

Also future-proof the ZSK deletion progress check by making it only look
at lines it should care about.

(cherry picked from commit e02de04e97)
2019-03-11 13:03:23 +01:00
Michał Kępień 08713b334b Merge branch '129-dnssec-system-test-tweaks-v9_11' into 'v9_11'
[v9_11] "dnssec" system test tweaks

See merge request isc-projects/bind9!1657
2019-03-11 08:02:08 -04:00
Mark AndrewsandMichał Kępień e6718cf4c4 ${ttl} must exist and be non null
(cherry picked from commit dee1f1a498)
2019-03-11 12:25:19 +01:00
Michał Kępień 7656e7431b Make ANSWER TTL capping checks stricter
For checks querying a named instance with "dnssec-accept-expired yes;"
set, authoritative responses have a TTL of 300 seconds.  Assuming empty
resolver cache, TTLs of RRsets in the ANSWER section of the first
response to a given query will always match their authoritative
counterparts.  Also note that for a DNSSEC-validating named resolver,
validated RRsets replace any existing non-validated RRsets with the same
owner name and type, e.g. cached from responses received while resolving
CD=1 queries.  Since TTL capping happens before a validated RRset is
inserted into the cache and RRSIG expiry time does not impose an upper
TTL bound when "dnssec-accept-expired yes;" is set and, as pointed out
above, the original TTLs of the relevant RRsets equal 300 seconds, the
RRsets in the ANSWER section of the responses to expiring.example/SOA
and expired.example/SOA queries sent with CD=0 should always be exactly
120 seconds, never a lower value.  Make the relevant TTL checks stricter
to reflect that.

(cherry picked from commit a85cc41486)
2019-03-11 12:23:27 +01:00
Michał Kępień bacbe3a5aa Relax ADDITIONAL TTL capping checks
Always expecting a TTL of exactly 300 seconds for RRsets found in the
ADDITIONAL section of responses received for CD=1 queries sent during
TTL capping checks is too strict since these responses will contain
records cached from multiple DNS messages received during the resolution
process.

In responses to queries sent with CD=1, ns.expiring.example/A in the
ADDITIONAL section will come from a delegation returned by ns2 while the
ANSWER section will come from an authoritative answer returned by ns3.
If the queries to ns2 and ns3 happen at different Unix timestamps,
RRsets cached from the older response will have a different TTL by the
time they are returned to dig, triggering a false positive.

Allow a safety margin of 60 seconds for checks inspecting the ADDITIONAL
section of responses to queries sent with CD=1 to fix the issue.  A
safety margin this large is likely overkill, but it is used nevertheless
for consistency with similar safety margins used in other TTL capping
checks.

(cherry picked from commit 8baf859063)
2019-03-11 12:22:23 +01:00
Michał Kępień 38da4bdf5e Fix NTA-related races
Changes introduced by commit 6b8e4d6e69
were incomplete as not all time-sensitive checks were updated to match
revised "nta-lifetime" and "nta-recheck" values.  Prevent rare false
positives by updating all NTA-related checks so that they work reliably
with "nta-lifetime 12s;" and "nta-recheck 9s;".  Update comments as well
to prevent confusion.

(cherry picked from commit 9a36a1bba3)
2019-03-11 12:17:36 +01:00
Michał Kępień d9354d32c4 Merge branch 'michal/fix-regex-used-for-mangling-druz-dnskey-v9_11' into 'v9_11'
[v9_11] Fix regex used for mangling druz/DNSKEY (in the "dlv" system test)

See merge request isc-projects/bind9!1648
2019-03-08 08:08:58 -05:00
Michał Kępień e82ef27449 Fix regex used for mangling druz/DNSKEY
During "dlv" system test setup, the "sed" regex used for mangling the
DNSKEY RRset for the "druz" zone does not include the plus sign ("+"),
which may:

  - cause the replacement to happen near the end of DNSKEY RDATA, which
    can cause the latter to become an invalid Base64 string,

  - prevent the replacement from being performed altogether.

Both cases prevent the "dlv" system test from behaving as intended and
may trigger false positives.  Add the missing character to the
aforementioned regex to ensure the replacement is always performed on
bytes 10-25 of DNSKEY RDATA.

(cherry picked from commit fd13fef299)
2019-03-08 13:49:02 +01:00
Michał Kępień 92465f23f7 Merge branch '925-make-delv-use-os-supplied-ephemeral-port-range-v9_11' into 'v9_11'
[v9_11] Make delv use OS-supplied ephemeral port range

See merge request isc-projects/bind9!1646
2019-03-08 07:46:10 -05:00
Michał Kępień addb1f3f7a Add CHANGES entry
5180.	[bug]		delv now honors the operating system's preferred
			ephemeral port range. [GL #925]

(cherry picked from commit bf98324956)
2019-03-08 13:14:11 +01:00
Michał Kępień 78ecd57872 Make delv use OS-supplied ephemeral port range
Make delv honor the operating system's preferred ephemeral port range
instead of always using the default 1024-65535 range for outgoing
messages.

(cherry picked from commit ada6846a10)
2019-03-08 13:14:10 +01:00
Mark Andrews 8d6be33c9c Merge branch 'u/fanf2/sectypes-v9_11' into 'v9_11'
cleanup: use dns_secalg_t and dns_dsdigest_t where appropriate

See merge request isc-projects/bind9!1644
2019-03-08 06:40:45 -05:00
Tony FinchandMark Andrews 660c9af77b cleanup: use dns_secalg_t and dns_dsdigest_t where appropriate
Use them in structs for various rdata types where they are missing.
This doesn't change the structs since we are replacing explicit
uint8_t field types with aliases for uint8_t.

Use dns_dsdigest_t in library function arguments.

(cherry picked from commit 0f219714e1)
2019-03-08 22:25:27 +11:00
Mark Andrews 8e10f568f8 Merge branch 'marka-define-path-max-v9_11' into 'v9_11'
#include <limits.h> for PATH_MAX, define if not found

See merge request isc-projects/bind9!1638
2019-03-08 02:44:01 -05:00
Mark Andrews b3479ae5b0 #include <limits.h> for PATH_MAX, define if not found
(cherry picked from commit 1fc7be36eb)
2019-03-08 18:24:13 +11:00
Evan Hunt 15995270d1 Merge branch 'each-silence-warning-v9_11' into 'v9_11'
silence a warning about potential snprintf overrun

See merge request isc-projects/bind9!1634
2019-03-08 01:10:11 -05:00
Evan Hunt 148aa70127 silence a warning about potential snprintf overrun
(cherry picked from commit 7f26cad247)
2019-03-07 21:49:15 -08:00
Evan Hunt ee42bdb825 Merge branch '902-hang-when-unexpected-errno-encountered-during-log-rename-v9_11' into 'v9_11'
Resolve "Hang when unexpected errno encountered during log rename"

See merge request isc-projects/bind9!1632
2019-03-08 00:44:27 -05:00
Mark AndrewsandEvan Hunt 28ea43ab35 Handle EDQUOT and ENOSPC errors
(cherry picked from commit 435ae2f29a)
2019-03-07 21:29:59 -08:00
Evan Hunt bd7dc54875 Merge branch '884-patches-to-review-3-v9_11' into 'v9_11'
fix the use of dns_wildcardname as an optimisation in DLZ

See merge request isc-projects/bind9!1630
2019-03-07 23:49:24 -05:00
Mark AndrewsandEvan Hunt 09ce08a85f fix the use of dns_wildcardname as an optimisation in DLZ
(cherry picked from commit cb32cd98bd)
2019-03-07 20:34:59 -08:00
Evan Hunt ad39501b0c Merge branch '884-patches-to-review-2' into 'v9_11'
Handle errors from ctime().

See merge request isc-projects/bind9!1531
2019-03-07 22:31:38 -05:00
Mark AndrewsandEvan Hunt dde207c0b9 fail if ctime() output is truncted 2019-03-07 19:30:28 -08:00
Evan Hunt 5debc374ce Merge branch '884-patches-to-review-5' into 'v9_11'
Use %u in format to print TTL

See merge request isc-projects/bind9!1534
2019-03-07 22:11:11 -05:00
Mark AndrewsandEvan Hunt b9732a6787 use %u for TTL 2019-03-07 19:09:40 -08:00
Evan Hunt a7fba9313a Merge branch 'ckb-statistics-test-nit-v9_11' into 'v9_11'
the wrong variable was used to count the test cases in one place.

See merge request isc-projects/bind9!1628
2019-03-07 21:55:34 -05:00
Curtis BlackburnandEvan Hunt 4aa9ecf914 the wrong variable was used to count the test cases in one place.
(cherry picked from commit 4f60a84e34)
2019-03-07 18:42:54 -08:00
Evan Hunt 8e93a5f159 Merge branch 'each-notes-911' into 'v9_11'
clear out  9.11.6 release notes

See merge request isc-projects/bind9!1624
2019-03-07 17:00:56 -05:00
Evan Hunt f68040799f clear out release notes from 9.11.6 to prepare ground for 9.11.7 2019-03-07 13:44:24 -08:00
Evan Hunt e960d24fa6 Merge branch '882-zone-data-cannot-be-loaded-with-dnssec-coverage-v9_11' into 'v9_11'
Resolve "Zone data cannot be loaded with dnssec-coverage"

See merge request isc-projects/bind9!1620
2019-03-07 00:26:28 -05:00
Evan Hunt 63c95f8a6d add CHANGES
(cherry picked from commit 57e44efc73)
2019-03-06 21:15:10 -08:00
Mark AndrewsandEvan Hunt 6f48cea0a6 explicitly convert byte to string
(cherry picked from commit ec3d830bc5)
2019-03-06 21:15:10 -08:00
Evan Hunt 45dec7d781 Merge branch 'u/fanf2/man-dnssec-keygen-v9_11' into 'v9_11'
cleanup dnssec-keygen manual page

See merge request isc-projects/bind9!1618
2019-03-06 20:47:21 -05:00
Tony FinchandEvan Hunt 0f8351b282 cleanup dnssec-keygen manual page
Alphabetize options and synopsis; remove spurious -z from synopsis;
refer to -T KEY in options that are only relevant to pre-RFC3755
DNSSEC, and add a -f KSK example.

(cherry picked from commit 1954f8d2bf)
2019-03-06 17:34:26 -08:00
Mark Andrews 8e7d87a2a6 Merge branch '926-statschannel-system-tests-fails-json-only-no-libxml-v9_11' into 'v9_11'
Resolve "statschannel system tests fails json only (no libxml)"

See merge request isc-projects/bind9!1617
2019-03-06 19:11:40 -05:00
Mark Andrews c2495053f2 add CHANGES
(cherry picked from commit 5bc06a0a11)
2019-03-07 10:59:11 +11:00
Mark Andrews 6f331e068e remove dependancy on libxml
(cherry picked from commit a9c47414b3)
2019-03-07 10:57:42 +11:00
Michał Kępień 19ad85f0c6 Merge branch '905-make-nsupdate-use-os-supplied-ephemeral-port-range-v9_11' into 'v9_11'
[v9_11] Make nsupdate use OS-supplied ephemeral port range

See merge request isc-projects/bind9!1610
2019-03-06 08:27:41 -05:00
Michał Kępień dbcabd87b6 Add CHANGES entry
5172.	[bug]		nsupdate now honors the operating system's preferred
			ephemeral port range. [GL #905]

(cherry picked from commit 0e64948274)
2019-03-06 14:03:21 +01:00
Michał Kępień ca24253980 Make nsupdate use OS-supplied ephemeral port range
Make nsupdate honor the operating system's preferred ephemeral port
range instead of always using the default 1024-65535 range for outgoing
messages.

(cherry picked from commit 06f582f23e)
2019-03-06 14:03:09 +01:00
Mark Andrews 1b72728002 Merge branch '919-add-win32util-configure-file-list-check-to-ci-v9_11' into 'v9_11'
Resolve "Add win32util/Configure file list check to CI"

See merge request isc-projects/bind9!1603
2019-03-05 17:42:24 -05:00
Mark Andrews fbae44c09d remove '..\\bin\\tests\\system\\dlz\\prereq.sh' from win32util/Configure
(cherry picked from commit 442421906b)
2019-03-05 17:42:05 -05:00
Mark Andrews d8b9ca2f5a add util/check-win32util-configure to precheck
(cherry picked from commit c3dd8bb9f0)
2019-03-05 17:42:05 -05:00
Evan Hunt 0444c7082d Merge branch '884-patches-to-review-4-v9_11' into 'v9_11'
dlz filesystem driver failed to properly detect period at end of filename.

See merge request isc-projects/bind9!1601
2019-03-05 17:38:05 -05:00
Mark AndrewsandEvan Hunt 21d6e9a91e properly detect period as last character in filename
(cherry picked from commit c9dc59eb90)
2019-03-05 14:22:46 -08:00
Evan Hunt ab44b9a3ab Merge branch 'michal/disable-servfail-cache-for-ns5-in-the-mkeys-system-test-v9_11' into 'v9_11'
Disable SERVFAIL cache for ns5 in the "mkeys" system test

See merge request isc-projects/bind9!1599
2019-03-05 16:40:43 -05:00
Michał KępieńandEvan Hunt 44e1e371e3 Disable SERVFAIL cache for ns5 in the "mkeys" system test
The "check key refreshes are resumed after root servers become
available" check may trigger a false positive for the "mkeys" system
test if the second example/TXT query sent by dig is received by ns5 less
than a second after it receives a REFUSED response to the upstream query
it sends to ns1 in order to resolve the first example/TXT query sent by
dig.  Since that REFUSED response from ns1 causes ns5 to return a
SERVFAIL answer to dig, example/TXT is added to the SERVFAIL cache,
which is enabled by default with a TTL of 1 second.  This in turn may
cause ns5 to return a cached SERVFAIL response to the second example/TXT
query sent by dig, i.e. make ns5 not perform full query processing as
expected by the check.

Since the primary purpose of the check in question is to ensure that key
refreshes are resumed once initially unavailable root servers become
available, the optimal solution appears to be disabling SERVFAIL cache
for ns5 as doing that still allows the check to fulfill its purpose and
it is arguably more prudent than always sleeping for 1 second.

(cherry picked from commit 7c6bff3c4e)
2019-03-05 13:25:40 -08:00
Evan Hunt d1221d6885 Merge branch '889-improve-clang-cmocka-interaction-v9_11' into 'v9_11'
Resolve "Improve clang/cmocka interaction."

See merge request isc-projects/bind9!1597
2019-03-05 14:17:53 -05:00
Mark AndrewsandEvan Hunt 2671666ef8 improve clang / cmocka integration
(cherry picked from commit cb913177ae)
2019-03-05 11:04:46 -08:00
Matthijs Mekking ae383b7b52 Merge branch 'matthijs-more-clean.sh-related-cleanups-v9_11' into 'v9_11'
More clean.sh related cleanups

See merge request isc-projects/bind9!1595
2019-03-05 06:11:48 -05:00
Matthijs Mekking 9227ed8665 Ensure all system tests run clean.sh from setup.sh
For consistency between all system tests, add missing setup.sh scripts
for tests which do not have one yet and ensure every setup.sh script
calls its respective clean.sh script.

(cherry picked from commit e410803919)
2019-03-05 11:44:35 +01:00
Matthijs Mekking 321e87fbb7 Only perform test cleanups in clean.sh scripts
Temporary files created by a given system test should be removed by its
clean.sh script, not its setup.sh script.  Remove redundant "rm"
invocations from setup.sh scripts.  Move required "rm" invocations from
setup.sh scripts to their corresponding clean.sh scripts.

(cherry picked from commit c64ed484c8)
2019-03-05 11:38:54 +01:00
Mark Andrews b42a68e8ad Merge branch 'feature/featuretest-dlz-v9_11' into 'v9_11'
Test dlz support in feature-test

See merge request isc-projects/bind9!1589
2019-03-03 22:23:38 -05:00
Mark Andrews f85f6b21a9 add CHANGES
(cherry picked from commit 5f125df462)
2019-03-04 14:11:30 +11:00
Mark Andrews 172dd2fd5b run autoheader and autoconf
(cherry picked from commit 4988367b53)
2019-03-04 14:10:59 +11:00
Petr MenšíkandMark Andrews 1e5c61d5cc Support DLZ filesystem detection in feature-test
Do not use variable from configure to detect the feature.

(cherry picked from commit 759a7b4ce3)
2019-03-04 14:10:16 +11:00
Michał Kępień ba3d1140ec Merge branch 'michal/fix-ip-regex-used-in-the-resolver-system-test-v9_11' into 'v9_11'
[v9_11] Fix IP regex used in the "resolver" system test

See merge request isc-projects/bind9!1584
2019-03-01 01:55:48 -05:00
Michał Kępień 17a82643fe Fix IP regex used in the "resolver" system test
If dots are not escaped in the "1.2.3.4" regular expressions used for
checking whether IP address 1.2.3.4 is present in the tested resolver's
answers, a COOKIE that matches such a regular expression will trigger a
false positive for the "resolver" system test.  Properly escape dots in
the aforementioned regular expressions to prevent that from happening.

(cherry picked from commit 70ae48e5cb)
2019-03-01 07:54:10 +01:00
Michał Kępień 11761a693e Merge branch 'michal/call-clean.sh-from-all-relevant-setup.sh-scripts-v9_11' into 'v9_11'
[v9_11] Call clean.sh from all relevant setup.sh scripts

See merge request isc-projects/bind9!1577
2019-02-28 07:11:03 -05:00
Michał Kępień beeaefb401 Call clean.sh from all relevant setup.sh scripts
For all system tests utilizing named instances, call clean.sh from each
test's setup.sh script in a consistent way to make sure running the same
system test multiple times using run.sh does not trigger false positives
caused by stale files created by previous runs.

Ideally we would just call clean.sh from run.sh, but that would break
some quirky system tests like "rpz" or "rpzrecurse" and being consistent
for the time being does not hurt.

(cherry picked from commit a077a3ae8a)
2019-02-28 12:51:36 +01:00
Tinderbox User 4c50a8f8fb Merge branch 'prep-release' into v9_11 2019-02-27 23:28:15 +00:00
Tinderbox User 639695b37d prep 9.11.6 2019-02-27 23:27:22 +00:00
3694 changed files with 69349 additions and 53299 deletions
+114
View File
@@ -0,0 +1,114 @@
;;; Directory Local Variables
;;; For more information see (info "(emacs) Directory Variables")
((c-mode .
((eval .
(set (make-local-variable 'directory-of-current-dir-locals-file)
(file-name-directory (locate-dominating-file default-directory ".dir-locals.el"))
)
)
(eval .
(set (make-local-variable 'include-directories)
(list
;; top directory
(expand-file-name
(concat directory-of-current-dir-locals-file "./"))
;; libisc
(expand-file-name
(concat directory-of-current-dir-locals-file "lib/isc/unix/include"))
(expand-file-name
(concat directory-of-current-dir-locals-file "lib/isc/pthreads/include"))
(expand-file-name
(concat directory-of-current-dir-locals-file "lib/isc/include"))
(expand-file-name
(concat directory-of-current-dir-locals-file "lib/isc"))
(expand-file-name
(concat directory-of-current-dir-locals-file "lib/isc/netmgr"))
;; libdns
(expand-file-name
(concat directory-of-current-dir-locals-file "lib/dns/include"))
(expand-file-name
(concat directory-of-current-dir-locals-file "lib/dns"))
;; libisccc
(expand-file-name
(concat directory-of-current-dir-locals-file "lib/isccc/include"))
;; libisccfg
(expand-file-name
(concat directory-of-current-dir-locals-file "lib/isccfg/include"))
;; libns
(expand-file-name
(concat directory-of-current-dir-locals-file "lib/ns/include"))
;; libirs
(expand-file-name
(concat directory-of-current-dir-locals-file "lib/irs/include"))
;; libbind9
(expand-file-name
(concat directory-of-current-dir-locals-file "lib/bind9/include"))
;; bin
(expand-file-name
(concat directory-of-current-dir-locals-file "bin/check"))
(expand-file-name
(concat directory-of-current-dir-locals-file "bin/confgen/include"))
(expand-file-name
(concat directory-of-current-dir-locals-file "bin/confgen"))
(expand-file-name
(concat directory-of-current-dir-locals-file "bin/confgen/include"))
(expand-file-name
(concat directory-of-current-dir-locals-file "bin/dig/include"))
(expand-file-name
(concat directory-of-current-dir-locals-file "bin/named/include"))
(expand-file-name
(concat directory-of-current-dir-locals-file "bin/named/unix/include"))
(expand-file-name
(concat directory-of-current-dir-locals-file "bin/rndc/include"))
(expand-file-name
(concat directory-of-current-dir-locals-file "bin/dnssec/include"))
(expand-file-name
(concat directory-of-current-dir-locals-file "bin/named/include"))
(expand-file-name
(concat directory-of-current-dir-locals-file "bin/rndc/include"))
(expand-file-name "/usr/local/opt/openssl@1.1/include")
(expand-file-name "/usr/local/opt/libxml2/include/libxml2")
(expand-file-name "/usr/local/opt/json-c/include/json-c/")
(expand-file-name "/usr/local/include")
)
)
)
(eval setq flycheck-clang-include-path include-directories)
(eval setq flycheck-cppcheck-include-path include-directories)
(eval setq flycheck-gcc-include-path include-directories)
(eval setq flycheck-clang-args
(list
"-include"
(expand-file-name
(concat directory-of-current-dir-locals-file "config.h"))
)
)
(eval setq flycheck-gcc-args
(list
"-include"
(expand-file-name
(concat directory-of-current-dir-locals-file "config.h"))
)
)
(eval setq flycheck-cppcheck-args
(list
"--enable=all"
"--suppress=missingIncludeSystem"
(concat "-include=" (expand-file-name
(concat directory-of-current-dir-locals-file "config.h")))
)
)
)
))
+14
View File
@@ -3,3 +3,17 @@
*.vcxproj.filters.in eol=crlf
*.dsw eol=crlf
win32utils/**.txt eol=crlf
.gitignore export-ignore
/EXCLUDED export-ignore
/conftools export-ignore
/doc/design export-ignore
/doc/dev export-ignore
/doc/draft export-ignore
/doc/expired export-ignore
/doc/rfc export-ignore
/lib/lwres/man/resolver.5 export-ignore
/util/** export-ignore
/util/bindkeys.pl -export-ignore
/util/check-make-install.in -export-ignore
/util/mksymtbl.pl -export-ignore
+56 -27
View File
@@ -1,33 +1,62 @@
Makefile
config.log
config.h
config.cache
config.status
libtool
/isc-config.sh
/configure.lineno
autom4te.cache/
*.o
*.lo
*.so
*.a
*.la
*.gcno
*.gcda
*_test
*-symtbl.c
timestamp
ans.run
lwresd.run
named.run
named.memstats
gen.dSYM/
*.a
*.gcda
*.gcno
*.la
*.lo
*.o
*.orig
*.plist/ # ccc-analyzer store its results in .plist directories
*.rej
*.so
*_test
*~
.ccache/
.cproject
.deps/
.dirstamp
.libs/
# ccc-analyzer store its results in .plist directories
*.plist/
*~
.project
.cproject
.settings
/aclocal.m4
/ar-lib
/autom4te.cache/
/bind.keys.h
/compile
/config.cache
/config.guess
/config.h
/config.h.in
/config.log
/config.status
/config.sub
/configure
/configure.lineno
/depcomp
/install-sh
/isc-config.sh
/libltdl/*
/libtool
/ltmain.sh
/m4/libtool.m4
/m4/ltargz.m4
/m4/ltdl.m4
/m4/ltoptions.m4
/m4/ltsugar.m4
/m4/ltversion.m4
/m4/lt~obsolete.m4
/missing
/py-compile
/stamp-h1
/test-driver
Makefile
ans.run
gen.dSYM/
kyua.log
named.memstats
named.run
timestamp
/compile_commands.json
/cppcheck_html/
/cppcheck.results
/util/check-make-install
+1394 -217
View File
File diff suppressed because it is too large Load Diff
+6
View File
@@ -0,0 +1,6 @@
[MASTER]
disable=
C0114, # missing-module-docstring
C0115, # missing-class-docstring
C0116, # missing-function-docstring
R0801, # duplicate-code
+675 -16
View File
@@ -1,3 +1,662 @@
--- 9.11.36 released ---
5736. [security] The "lame-ttl" option is now forcibly set to 0. This
effectively disables the lame server cache, as it could
previously be abused by an attacker to significantly
degrade resolver performance. (CVE-2021-25219)
[GL #2899]
5716. [bug] Multiple library names were mistakenly passed to the
krb5-config utility when ./configure was invoked with
the --with-gssapi=[/path/to/]krb5-config option. This
has been fixed by invoking krb5-config separately for
each required library. [GL #2866]
--- 9.11.35 released ---
5685. [bug] named failed to check the opcode of responses when
performing zone refreshes, stub zone updates, and UPDATE
forwarding. This has been fixed. [GL #2762]
--- 9.11.34 released ---
--- 9.11.33 released ---
--- 9.11.32 released ---
5631. [protocol] Update the implementation of the ZONEMD RR type to match
RFC 8976. [GL #2658]
5630. [func] Treat DNSSEC responses containing NSEC3 records with
iteration counts greater than 150 as insecure.
[GL #2445]
5629. [func] Reduce the maximum supported number of NSEC3 iterations
that can be configured for a zone to 150. [GL #2642]
--- 9.11.31 released ---
5621. [bug] Due to a backporting mistake in change 5609, named
binaries built against a Kerberos/GSSAPI library whose
header files did not define the GSS_SPNEGO_MECHANISM
preprocessor macro were not able to start if their
configuration included the "tkey-gssapi-credential"
option. This has been fixed. [GL #2634]
--- 9.11.30 released ---
5617. [security] A specially crafted GSS-TSIG query could cause a buffer
overflow in the ISC implementation of SPNEGO.
(CVE-2021-25216) [GL #2604]
5616. [security] named crashed when a DNAME record placed in the ANSWER
section during DNAME chasing turned out to be the final
answer to a client query. (CVE-2021-25215) [GL #2540]
5615. [security] Insufficient IXFR checks could result in named serving a
zone without an SOA record at the apex, leading to a
RUNTIME_CHECK assertion failure when the zone was
subsequently refreshed. This has been fixed by adding an
owner name check for all SOA records which are included
in a zone transfer. (CVE-2021-25214) [GL #2467]
5614. [bug] Ensure all resources are properly cleaned up when a call
to gss_accept_sec_context() fails. [GL #2620]
5609. [func] The ISC implementation of SPNEGO was removed from BIND 9
source code. It was no longer necessary as all major
contemporary Kerberos/GSSAPI libraries include support
for SPNEGO. [GL #2607]
--- 9.11.29 released ---
5586. [bug] An invalid direction field in a LOC record resulted in
an INSIST failure when a zone file containing such a
record was loaded. [GL #2499]
--- 9.11.28 released ---
5562. [security] Fix off-by-one bug in ISC SPNEGO implementation.
(CVE-2020-8625) [GL #2354]
--- 9.11.27 released ---
5559. [bug] The --with-maxminddb=PATH form of the build-time option
enabling support for libmaxminddb was not working
correctly. This has been fixed. [GL #2366]
5557. [bug] Prevent RBTDB instances from being destroyed by multiple
threads at the same time. [GL #2317]
5548. [bug] named exited with an assertion failure upon startup when
compiled with --disable-threads and --with-epoll.
[GL !4454]
5547. [bug] BIND 9 failed to build with --disable-threads and
--with-geoip2. [GL #2324]
--- 9.11.26 released ---
5544. [func] Restore the default value of "nocookie-udp-size" to 4096
bytes. [GL #2250]
5541. [func] Adjust the "max-recursion-queries" default from 75 to
100. [GL #2305]
5540. [port] Fix building with native PKCS#11 support for AEP Keyper.
[GL #2315]
5539. [bug] Tighten handling of missing DNS COOKIE responses over
UDP by falling back to TCP. [GL #2275]
5534. [bug] The CNAME synthesized from a DNAME was incorrectly
followed when the QTYPE was CNAME or ANY. [GL #2280]
--- 9.11.25 released ---
5527. [bug] A NULL pointer dereference occurred when creating an NTA
recheck query failed. [GL #2244]
5523. [bug] The initial lookup in a zone transitioning to/from a
signed state could fail if the DNSKEY RRset was not
found. [GL #2236]
5518. [bug] Stub zones now work correctly with primary servers using
"minimal-responses yes". [GL #1736]
--- 9.11.24 released ---
5516. [func] The default EDNS buffer size has been changed from 4096
to 1232 bytes. [GL #2183]
5513. [doc] The ARM section describing the "rrset-order" statement
was rewritten to make it unambiguous and up-to-date with
the source code. [GL #2139]
5510. [bug] Implement the attach/detach semantics for dns_message_t
to fix a data race in accessing an already-destroyed
fctx->rmessage. [GL #2124]
5506. [bug] Properly handle failed sysconf() calls, so we don't
report invalid memory size. [GL #2166]
--- 9.11.23 released ---
5497. [bug] 'dig +bufsize=0' failed to disable EDNS. [GL #2054]
5496. [bug] Address a TSAN report by ensuring each rate limiter
object holds a reference to its task. [GL #2081]
5492. [bug] Tighten LOC parsing to reject a period (".") and/or "m"
as a value. Fix handling of negative altitudes which are
not whole meters. [GL #2074]
5489. [bug] Named erroneously accepted certain invalid resource
records that were incorrectly processed after
subsequently being written to disk and loaded back, as
the wire format differed. Such records include: CERT,
IPSECKEY, NSEC3, NSEC3PARAM, NXT, SIG, TLSA, WKS, and
X25. [GL !3953]
5488. [bug] NTA code needed to have a weak reference on its
associated view to prevent the latter from being deleted
while NTA tests were being performed. [GL #2067]
--- 9.11.22 released ---
5481. [security] "update-policy" rules of type "subdomain" were
incorrectly treated as "zonesub" rules, which allowed
keys used in "subdomain" rules to update names outside
of the specified subdomains. The problem was fixed by
making sure "subdomain" rules are again processed as
described in the ARM. (CVE-2020-8624) [GL #2055]
5480. [security] When BIND 9 was compiled with native PKCS#11 support, it
was possible to trigger an assertion failure in code
determining the number of bits in the PKCS#11 RSA public
key with a specially crafted packet. (CVE-2020-8623)
[GL #2037]
5476. [security] It was possible to trigger an assertion failure when
verifying the response to a TSIG-signed request.
(CVE-2020-8622) [GL #2028]
5475. [bug] Wildcard RPZ passthru rules could incorrectly be
overridden by other rules that were loaded from RPZ
zones which appeared later in the "response-policy"
statement. This has been fixed. [GL #1619]
5474. [bug] dns_rdata_hip_next() failed to return ISC_R_NOMORE
when it should have. [GL !3880]
5465. [func] Added fallback to built-in trust-anchors, managed-keys,
or trusted-keys if the bindkeys-file (bind.keys) cannot
be parsed. [GL #1235]
5463. [bug] Address a potential NULL pointer dereference when out of
memory in dnstap.c. [GL #2010]
5462. [bug] Move LMDB locking from LMDB itself to named. [GL #1976]
--- 9.11.21 released ---
5458. [bug] Prevent a theoretically possible NULL dereference caused
by a data race between zone_maintenance() and
dns_zone_setview_helper(). [GL #1627]
5455. [bug] named could crash when cleaning dead nodes in
lib/dns/rbtdb.c that were being reused. [GL #1968]
5447. [bug] IPv6 addresses ending in "::" could break YAML
parsing. A "0" is now appended to such addresses
in YAML output from dig, mdig, delv, and dnstap-read.
[GL #1952]
5446. [bug] The validator could fail to accept a properly signed
RRset if an unsupported algorithm appeared earlier in
the DNSKEY RRset than a supported algorithm. It could
also stop if it detected a malformed public key.
[GL #1689]
5440. [test] Properly handle missing kyua. [GL #1950]
--- 9.11.20 released ---
5437. [bug] Fix a data race in lib/dns/resolver.c:log_formerr().
[GL #1808]
5434. [security] It was possible to trigger an INSIST in
lib/dns/rbtdb.c:new_reference() with a particular zone
content and query patterns. (CVE-2020-8619) [GL #1111]
[GL #1718]
5433. [test] Prevent the resolver system test for change #5395
(max-recursion-queries) from failing on systems without
IPv6 support. [GL #1873]
5428. [bug] Clean up GSSAPI resources in nsupdate only after taskmgr
has been destroyed. Thanks to Petr Menšík. [GL !3316]
5427. [bug] Fix a regression in address/prefix length checking that
should have been a warning instead of an error.
[GL #1849]
5415. [test] Address race in dnssec system test that led to
test failures. [GL #1852]
5413. [test] Address race in autosign system test that led to
test failures. [GL #1852]
5412. [bug] 'provide-ixfr no;' failed to return up-to-date responses
when the serial was greater than or equal to the
current serial. [GL #1714]
5409. [performance] When looking up NSEC3 data in a zone database, skip the
check for empty non-terminal nodes; the NSEC3 tree does
not have any. [GL #1834]
5408. [protocol] Print Extended DNS Errors if present in OPT record.
[GL #1835]
5405. [bug] 'named-checkconf -p' could include spurious text in
server-addresses statements due to an uninitialized DSCP
value. [GL #1812]
--- 9.11.19 released ---
5404. [bug] 'named-checkconf -z' could incorrectly indicate
success if errors were found in one view but not in a
subsequent one. [GL #1807]
5398. [bug] Named could fail to restart if a zone with a double
quote (") in its name was added with 'rndc addzone'.
[GL #1695]
5395. [security] Further limit the number of queries that can be
triggered from a request. Root and TLD servers
are no longer exempt from max-recursion-queries.
Fetches for missing name server address records
are limited to 4 for any domain. (CVE-2020-8616)
[GL #1388]
5394. [cleanup] Named formerly attempted to change the effective UID and
GID in named_os_openfile(), which could trigger a
spurious log message if they were already set to the
desired values. This has been fixed. [GL #1042]
[GL #1090]
5390. [security] Replaying a TSIG BADTIME response as a request could
trigger an assertion failure. (CVE-2020-8617)
[GL #1703]
5387. [func] Warn about AXFR streams with inconsistent message IDs.
[GL #1674]
--- 9.11.18 released ---
5380. [contrib] Fix building MySQL DLZ modules against MySQL 8
libraries. [GL #1678]
5379. [doc] Clean up serve-stale related options that leaked into
the BIND 9.11 release. [GL !3265]
5378. [bug] Receiving invalid DNS data was triggering an assertion
failure in nslookup. [GL #1652]
5377. [feature] Detect atomic operations support on ppc64le. Thanks to
Petr Menšík. [GL !3295]
5376. [bug] Fix ineffective DNS rebinding protection when BIND is
configured as a forwarding DNS server. Thanks to Tobias
Klein. [GL #1574]
5368. [bug] Named failed to restart if 'rndc addzone' names
contained special characters (e.g. '/'). [GL #1655]
--- 9.11.17 released ---
5358. [bug] Inline master zones whose master files were touched
but otherwise unchanged and were subsequently reloaded
may have stopped re-signing. [GL !3135]
5357. [bug] Newly added RRSIG records with expiry times before
the previous earliest expiry times might not be
re-signed in time. This was a side effect of 5315.
[GL !3137]
--- 9.11.16 released ---
5353. [doc] Document port and dscp parameters in forwarders
configuration option. [GL #914]
5352. [bug] Correctly handle catalog zone entries containing
characters that aren't legal in filenames. [GL #1592]
5351. [bug] CDS / CDNSKEY consistency checks failed to handle
removal records. [GL #1554]
5350. [bug] When a view was configured with class CHAOS,
dns_view_findzonecut() could incorrectly return
success for non-existent records. [GL #1540]
5348. [bug] dnssec-settime -Psync was not being honoured.
[GL !2925]
--- 9.11.15 released ---
5339. [bug] With some libmaxminddb versions, named could erroneously
match an IP address not belonging to any subnet defined
in a given GeoIP2 database to one of the existing
entries in that database. [GL #1552]
5338. [bug] Fix line spacing in `rndc secroots`.
Thanks to Tony Finch. [GL !2478]
5337. [func] 'named -V' now reports maxminddb and protobuf-c
versions. [GL !2686]
--- 9.11.14 released ---
5330. [bug] 'configure --without-python' was ineffective if
PYTHON was set in the environment. [GL #1434]
5329. [bug] Reconfiguring named caused memory to be leaked when any
GeoIP2 database was in use. [GL #1445]
5328. [bug] rbtdb.c:rdataset_{get,set}ownercase failed to obtain
a node lock. [GL #1417]
5327. [func] Added a statistics counter to track queries
dropped because the recursive-clients quota was
exceeded. [GL #1399]
5326. [bug] Add Python dependency on 'distutils.core' to configure.
'distutils.core' is required for installation.
[GL #1397]
5322. [bug] Conditional compilation of lock_callback was
inconsistent with conditional use of the function
when forcing BIND to build with older and unsupported
versions of OpenSSL. [GL #1386]
5321. [bug] Obtain write lock before updating version->records
and version->bytes. [GL #1341]
--- 9.11.13 released ---
5315. [bug] Apply the initial RRSIG expiration spread fixed
to all dynamically created records in the zone
including NSEC3. Also fix the signature clusters
when the server has been offline for prolonged
period of times. [GL #1256]
5314. [func] Added a new statistics variable "tcp-highwater"
that reports the maximum number of simultaneous TCP
clients BIND has handled while running. [GL #1206]
5313. [bug] The default GeoIP2 database location did not match
the ARM. 'named -V' now reports the default
location. [GL #1301]
5310. [bug] TCP failures were affecting EDNS statistics. [GL #1059]
5309. [bug] "geoip-use-ecs yes;" was not working for GeoIP2.
[GL #1275]
5308. [bug] Don't log DNS_R_UNCHANGED from sync_secure_journal()
at ERROR level in receive_secure_serial(). [GL #1288]
5307. [bug] Fix hang when named-compilezone output is sent to pipe.
Thanks to Tony Finch. [GL !2481]
5306. [security] Set a limit on the number of concurrently served
pipelined TCP queries. (CVE-2019-6477) [GL #1264]
5302. [bug] Fix checking that "dnstap-output" is defined when
"dnstap" is specified in a view. [GL #1281]
5301. [bug] Detect partial prefixes / incomplete IPv4 address in
acls. [GL #1143]
--- 9.11.12 released ---
5296. [bug] Address various issues reported by cppcheck. [GL !2421]
5294. [func] Fallback to ACE name on output in locale, which does not
support converting it to unicode. [GL #846]
5293. [bug] On Windows, named crashed upon any attempt to fetch XML
statistics from it. [GL #1245]
5292. [bug] Queue 'rndc nsec3param' requests while signing inline
zone changes. [GL #1205]
--- 9.11.11 released ---
5291. [cleanup] Revert change #4825 as it was not appropriate for 9.11.
[GL #1213]
5290. [bug] Address potential NULL pointer dereference in
isc_ht_find. [GL #1211]
5287. [bug] Address potential NULL pointer dereference. [GL #1208]
5286. [contrib] Address potential NULL pointer dereferences in
dlz_mysqldyn_mod.c. [GL #1207]
5285. [port] win32: implement "-T maxudpXXX". [GL #837]
5282. [bug] Fixed a bug in searching for possible wildcard matches
for query names in the RPZ summary database. [GL #1146]
5281. [cleanup] Don't escape commas when reporting named's command
line. [GL #1189]
5280. [protocol] Add support for displaying EDNS option LLQ. [GL #1201]
5279. [bug] When loading, reject zones containing CDS or CDNSKEY
RRsets at the zone apex if they would cause DNSSEC
validation failures if published in the parent zone
as the DS RRset. [GL #1187]
--- 9.11.10 released ---
5275. [bug] Mark DS records included in referral messages
with trust level "pending" so that they can be
validated and cached immediately, with no need to
re-query. [GL #964]
5273. [bug] Check that bits [64..71] of a dns64 prefix are zero.
[GL #1159]
5269. [port] cygwin: can return ETIMEDOUT on connect() with a
non-blocking socket. [GL #1133]
5268. [bug] named could crash during configuration if
configured to use "geoip continent" ACLs with
legacy GeoIP. [GL #1163]
5266. [bug] named-checkconf failed to report dnstap-output
missing from named.conf when dnstap was specified.
[GL #1136]
5265. [bug] DNS64 and RPZ nodata (CNAME *.) rules interacted badly
[GL #1106]
5264. [func] New DNS Cookie algorithm - siphash24 - has been added to
BIND 9. [GL #605]
--- 9.11.9 released ---
5260. [bug] dnstap-read was producing malformed output for large
packets. [GL #1093]
5258. [func] Added support for the GeoIP2 API from MaxMind,
when BIND is compiled using "configure --with-geoip2".
The legacy GeoIP API can be enabled by using
"configure --with-geoip" instead. These options
cannot be used together.
Certain geoip ACL settings that were available with
legacy GeoIP are not available when using GeoIP2.
See the ARM for details. [GL #182]
5257. [bug] Some statistics data was not being displayed.
Add shading to the zone tables. [GL #1030]
5256. [bug] Ensure that glue records are included in root
priming responses if "minimal-responses" is not
set to "yes". [GL #1092]
5255. [bug] Errors encountered while reloading inline-signing
zones could be ignored, causing the zone content to
be left in an incompletely updated state rather than
reverted. [GL #1109]
5253. [port] Support platforms that don't define ULLONG_MAX.
[GL #1098]
5249. [bug] Fix a possible underflow in recursion clients
statistics when hitting recursive clients
soft quota. [GL #1067]
--- 9.11.8 released ---
5244. [security] Fixed a race condition in dns_dispatch_getnext()
that could cause an assertion failure if a
significant number of incoming packets were
rejected. (CVE-2019-6471) [GL #942]
5241. [bug] Fix Ed448 private and public key ASN.1 prefix blobs.
[GL #225]
5237. [bug] Recurse to find the root server list with 'dig +trace'.
[GL #1028]
--- 9.11.7 released ---
5233. [bug] Negative trust anchors did not work with "forward only;"
to validating resolvers. [GL #997]
5232. [bug] Fix a high-load race/crash in isc_socket_cancel().
[GL #834]
5231. [protocol] Add support for displaying CLIENT-TAG and SERVER-TAG.
[GL #960]
5229. [protocol] Enforce known SSHFP fingerprint lengths. [GL #852]
5228. [cleanup] If trusted-keys and managed-keys are configured
simultaneously for the same name, the key cannot
be rolled automatically. This configuration now
logs a warning. [GL #868]
5224. [bug] Only test provide-ixfr on TCP streams. [GL #991]
5222. [bug] 'delv -t ANY' could leak memory. [GL #983]
5221. [test] Enable parallel execution of system tests on
Windows. [GL !4101]
5218. [bug] Conditionally include <dlfcn.h>. [GL #995]
5214. [bug] win32: named now removes its lock file upon shutdown.
[GL #979]
5213. [bug] win32: Eliminated a race which allowed named.exe running
as a service to be killed prematurely during shutdown.
[GL #978]
5210. [bug] When dnstap is enabled and recursion is not
available, incoming queries are now logged
as "auth". Previously, this depended on whether
recursion was requested by the client, not on
whether recursion was available. [GL #963]
5209. [bug] When update-check-ksk is true, add_sigs was not
considering offline keys, leaving record sets signed
with the incorrect type key. [GL #763]
5208. [test] Run valid rdata wire encodings through totext+fromtext
and tofmttext+fromtext methods to check these methods.
[GL #899]
5207. [test] Check delv and dig TTL values. [GL #965]
5205. [bug] Enforce that a DS hash exists. [GL #899]
5204. [test] Check that dns_rdata_fromtext() produces a record that
will be accepted by dns_rdata_fromwire(). [GL #852]
5203. [bug] Enforce whether key rdata exists or not in KEY,
DNSKEY, CDNSKEY and RKEY. [GL #899]
5197. [bug] dig could die in best effort mode on multiple SIG(0)
records. Similarly on multiple OPT and multiple TSIG
records. [GL #920]
5194. [bug] Enforce non empty ZOMEMD hash. [GL #899]
5193. [bug] EID and NIMLOC failed to do multi-line output
correctly. [GL #899]
5192. [bug] configure --fips-mode failed. [GL #946]
5191. [port] Darwin: dlzexternal/driver.so was not building.
[GL #948]
5189. [cleanup] Remove revoked root DNSKEY from bind.keys. [GL #945]
5187. [test] Set time zone before running any tests in dnstap_test.
[GL #940]
5185. [bug] PKCS11 build could fail if ECDSA is not supported.
[GL #935]
5184. [bug] Missing unlocks in sdlz.c. [GL #936]
5182. [bug] Fix a high-load race/crash in handling of
isc_socket_close() in resolver. [GL #834]
5180. [bug] delv now honors the operating system's preferred
ephemeral port range. [GL #925]
5179. [cleanup] Replace some vague type declarations with the more
specific dns_secalg_t and dns_dsdigest_t.
Thanks to Tony Finch. [GL !1498]
5178. [bug] Handle EDQUOT (disk quota) and ENOSPC (disk full)
errors when writing files. [GL #902]
5176. [tests] Remove a dependency on libxml in statschannel system
test. [GL #926]
5175. [bug] Fixed a problem with file input in dnssec-keymgr,
dnssec-coverage and dnssec-checkds when using
python3. [GL #882]
5174. [doc] Tidy dnssec-keygen manual. [GL !1557]
5172. [bug] nsupdate now honors the operating system's preferred
ephemeral port range. [GL #905]
5170. [test] Added --with-dlz-filesystem to feature-test. [GL !1587]
5168. [test] Do not crash on shutdown when RPZ fails to load. Also,
keep previous version of the database if RPZ fails to
load. [GL #813]
5167. [bug] nxdomain-redirect could sometimes lookup the wrong
redirect name. [GL #892]
--- 9.11.6-P1 released ---
5200. [security] tcp-clients settings could be exceeded in some cases,
which could lead to exhaustion of file descriptors.
(CVE-2018-5743) [GL #615]
--- 9.11.6 released ---
--- 9.11.6rc1 released ---
5166. [port] openbsd: Threads are now enabled by default. [GL !1548]
@@ -135,8 +794,8 @@
5092. [bug] Address memory leak on SIGTERM in nsupdate when using
GSS-TSIG. [GL #558]
5090. [bug] dig and mdig failed to properly preparse dash value
pairs when value was a seperate argument and started
5090. [bug] dig and mdig failed to properly pre-parse dash value
pairs when value was a separate argument and started
with a dash. [GL #584]
5088. [bug] dig/host/nslookup could crash when interrupted close to
@@ -162,7 +821,7 @@
5072. [bug] Add unit tests for isc_buffer_copyregion() and fix its
behavior for auto-reallocated buffers. [GL #644]
5071. [bug] Comparision of NXT records was broken. [GL #631]
5071. [bug] Comparison of NXT records was broken. [GL #631]
5070. [bug] Record types which support a empty rdata field were
not handling the empty rdata field case. [GL #638]
@@ -172,7 +831,7 @@
5065. [bug] Only set IPV6_USE_MIN_MTU on IPv6. [GL #553]
5064. [test] Initalize TZ environment variable before calling
5064. [test] Initialize TZ environment variable before calling
dns_test_begin in dnstap_test. [GL #624]
5061. [protocol] Add support for EID and NIMLOC. [GL #626]
@@ -357,7 +1016,7 @@
4965. [func] Add support for marking options as deprecated.
[GL #322]
4964. [bug] Reduce the probabilty of double signature when deleting
4964. [bug] Reduce the probability of double signature when deleting
a DNSKEY by checking if the node is otherwise signed
by the algorithm of the key to be deleted. [GL #240]
@@ -658,7 +1317,7 @@
[RT #46725]
4831. [bug] Convert the RRSIG expirytime to 64 bits for
comparisions in diff.c:resign. [RT #46710]
comparisons in diff.c:resign. [RT #46710]
4830. [bug] Failure to configure ATF when requested did not cause
an error in top-level configure script. [RT #46655]
@@ -799,7 +1458,7 @@
and defaulting to the working directory if not
specified) must be writable. [RT #46077]
4766. [cleanup] Addresss Coverity warnings. [RT #46150]
4766. [cleanup] Address Coverity warnings. [RT #46150]
4763. [contrib] Improve compatibility when building MySQL DLZ
module by using mysql_config if available.
@@ -4871,7 +5530,7 @@
3518. [bug] Increase the size of dns_rrl_key.s.rtype by one bit
so that all dns_rrl_rtype_t enum values fit regardless
of whether it is teated as signed or unsigned by
of whether it is treated as signed or unsigned by
the compiler. [RT #32792]
3517. [bug] Reorder destruction to avoid shutdown race. [RT #32777]
@@ -5946,7 +6605,7 @@
--- 9.9.0b1 released ---
3186. [bug] Version/db mis-match in rpz code. [RT #26180]
3186. [bug] Version/db mismatch in rpz code. [RT #26180]
3185. [func] New 'rndc signing' option for auto-dnssec zones:
- 'rndc signing -list' displays the current
@@ -6611,7 +7270,7 @@
2998. [func] Add isc_task_beginexclusive and isc_task_endexclusive
to the task api. [RT #22776]
2997. [func] named -V now reports the OpenSSL and libxml2 verions
2997. [func] named -V now reports the OpenSSL and libxml2 versions
it was compiled against. [RT #22687]
2996. [security] Temporarily disable SO_ACCEPTFILTER support.
@@ -9594,7 +10253,7 @@
2096. [bug] libbind: handle applications that fail to detect
res_init() failures better.
2095. [port] libbind: alway prototype inet_cidr_ntop_ipv6() and
2095. [port] libbind: always prototype inet_cidr_ntop_ipv6() and
net_cidr_ntop_ipv6(). [RT #16388]
2094. [contrib] Update named-bootconf. [RT #16404]
@@ -9650,7 +10309,7 @@
2076. [bug] Several files were missing #include <config.h>
causing build failures on OSF. [RT #16341]
2075. [bug] The spillat timer event hander could leak memory.
2075. [bug] The spillat timer event handler could leak memory.
[RT #16357]
2074. [bug] dns_request_createvia2(), dns_request_createvia3(),
@@ -10412,7 +11071,7 @@
1831. [doc] Update named-checkzone documentation. [RT #13604]
1830. [bug] adb lame cache has sence of test reversed. [RT #13600]
1830. [bug] adb lame cache has sense of test reversed. [RT #13600]
1829. [bug] win32: "pid-file none;" broken. [RT #13563]
@@ -10523,7 +11182,7 @@
1796. [func] "rndc freeze/thaw" now freezes/thaws all zones.
1795. [bug] "rndc dumpdb" was not fully documented. Minor
formating issues with "rndc dumpdb -all". [RT #13396]
formatting issues with "rndc dumpdb -all". [RT #13396]
1794. [func] Named and named-checkzone can now both check for
non-terminal wildcard records.
@@ -11700,7 +12359,7 @@
acl.
1393. [port] Bind to individual IPv6 interfaces if IPV6_IPV6ONLY
is not available in the kernel to prevent accidently
is not available in the kernel to prevent accidentally
listening on IPv4 interfaces.
1392. [bug] named-checkzone: update usage.
@@ -13428,7 +14087,7 @@
839. [func] Dump packets for which there was no view or that the
class could not be determined to category "unmatched".
838. [port] UnixWare 7.x.x is now suported by
838. [port] UnixWare 7.x.x is now supported by
bin/tests/system/ifconfig.sh.
837. [cleanup] Multi-threading is now enabled by default only on
+24 -24
View File
@@ -1,3 +1,5 @@
CONTRIBUTING
BIND Source Access and Contributor Guidelines
Feb 22, 2018
@@ -29,20 +31,18 @@ BIND is maintained by the Internet Systems Consortium, a public-benefit
see the source, but only ISC employees have commit access. Until recently,
the source could only be seen once ISC had published a release: read
access to the source repository was restricted just as commit access was.
That's now changing, with the opening of a public git mirror to the BIND
source tree (see below).
That's now changing, with the opening of a public git repository of the
BIND source tree (see below).
Access to source code
Public BIND releases are always available from the ISC FTP site.
A public-access GIT repository is also available at https://gitlab.isc.org
. This repository is a mirror, updated several times per day, of the
source repository maintained by ISC. It contains all the public release
branches; upcoming releases can be viewed in their current state at any
time. It does not contain development branches or unreviewed work in
progress. Commits which address security vulnerablilities are withheld
until after public disclosure.
A public-access git repository is also available at https://gitlab.isc.org
. This repository contains all public release branches. Upcoming releases
can be viewed in their current state at any time. Short-lived development
branches contain unreviewed work in progress. Commits which address
security vulnerablilities are withheld until after public disclosure.
You can browse the source online via https://gitlab.isc.org/isc-projects/
bind9
@@ -61,7 +61,7 @@ Whenever a branch is ready for publication, a tag will be placed of the
form v9_X_Y. The 9.12.0 release, for instance, is tagged as v9_12_0.
The branch in which the next major release is being developed is called
master.
main.
Reporting bugs
@@ -89,19 +89,19 @@ e-mail is not a secure choice for communications concerning undisclosed
security issues so please encrypt your communications to us if possible,
using the ISC Security Officer public key.
Do not discuss undisclosed security vulnerabilites on any public mailing
Do not discuss undisclosed security vulnerabilities on any public mailing
list. ISC has a long history of handling reported vulnerabilities promptly
and effectively and we respect and acknowledge responsible reporters.
ISC's Security Vulnerability Disclosure Policy is documented at https://
kb.isc.org/article/AA-00861/0.
ISC's Security Vulnerability Disclosure Policy is documented at
https://kb.isc.org/docs/aa-00861.
If you have a crash, you may want to consult ?What to do if your BIND or
DHCP server has crashed.?
If you have a crash, you may want to consult What to do if your BIND or
DHCP server has crashed.
Contributing code
BIND is licensed under the Mozilla Public License 2.0. Earier versions
BIND is licensed under the Mozilla Public License 2.0. Earlier versions
(BIND 9.10 and earlier) were licensed under the ISC License
ISC does not require an explicit copyright assignment for patch
@@ -117,7 +117,7 @@ Patches for BIND may be submitted directly via merge requests in ISC's
Gitlab source repository for BIND.
Patches can also be submitted as diffs against a specific version of BIND
-- preferably the current top of the master branch. Diffs may be generated
-- preferably the current top of the main branch. Diffs may be generated
using either git format-patch or git diff.
Those wanting to write code for BIND may be interested in the developer
@@ -135,12 +135,12 @@ we're busy with other work, it may take us a long time to get to it.
To ensure your patch is acted on as promptly as possible, please:
* Try to adhere to the BIND 9 coding style.
* Run make check to ensure your change hasn't caused any functional
Try to adhere to the BIND 9 coding style.
Run make check to ensure your change hasn't caused any functional
regressions.
* Document your work, both in the patch itself and in the accompanying
Document your work, both in the patch itself and in the accompanying
email.
* In patches that make non-trivial functional changes, include system
In patches that make non-trivial functional changes, include system
tests if possible; when introducing or substantially altering a
library API, include unit tests. See Testing for more information.
@@ -159,12 +159,12 @@ Documentation
All functional changes should be documented. There are three types of
documentation in the BIND source tree:
* Man pages are kept alongside the source code for the commands they
Man pages are kept alongside the source code for the commands they
document, in files ending in .docbook; for example, the named man page
is bin/named/named.docbook.
* The BIND 9 Administrator Reference Manual is mostly in doc/arm/
The BIND 9 Administrator Reference Manual is mostly in doc/arm/
Bv9ARM-book.xml, plus a few other XML files that are included in it.
* API documentation is in the header file describing the API, in
API documentation is in the header file describing the API, in
Doxygen-formatted comments.
It is not necessary to edit any documentation files other than these; all
+16 -15
View File
@@ -3,7 +3,7 @@
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- file, you can obtain one at https://mozilla.org/MPL/2.0/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
@@ -39,21 +39,19 @@ anyone can see the source, but only ISC employees have commit access.
Until recently, the source could only be seen once ISC had published
a release: read access to the source repository was restricted just
as commit access was. That's now changing, with the opening of a
public git mirror to the BIND source tree (see below).
public git repository of the BIND source tree (see below).
### <a name="access"></a>Access to source code
Public BIND releases are always available from the
[ISC FTP site](ftp://ftp.isc.org/isc/bind9).
A public-access GIT repository is also available at
[https://gitlab.isc.org](https://gitlab.isc.org).
This repository is a mirror, updated several times per day, of the
source repository maintained by ISC. It contains all the public release
branches; upcoming releases can be viewed in their current state at any
time. It does *not* contain development branches or unreviewed work in
progress. Commits which address security vulnerablilities are withheld
until after public disclosure.
A public-access git repository is also available at
[https://gitlab.isc.org](https://gitlab.isc.org). This repository
contains all public release branches. Upcoming releases can be viewed in
their current state at any time. Short-lived development branches
contain unreviewed work in progress. Commits which address security
vulnerablilities are withheld until after public disclosure.
You can browse the source online via
[https://gitlab.isc.org/isc-projects/bind9](https://gitlab.isc.org/isc-projects/bind9)
@@ -72,7 +70,7 @@ Whenever a branch is ready for publication, a tag will be placed of the
form `v9_X_Y`. The 9.12.0 release, for instance, is tagged as `v9_12_0`.
The branch in which the next major release is being developed is called
`master`.
`main`.
### <a name="bugs"></a>Reporting bugs
@@ -92,6 +90,7 @@ use credentials from an existing account at GitHub, GitLab, Google,
Twitter, or Facebook.
### Reporting possible security issues
If you think you may be seeing a potential security vulnerability in BIND
(for example, a crash with REQUIRE, INSIST, or ASSERT failure), please
report it immediately by emailing to security-officer@isc.org. Plain-text
@@ -99,11 +98,12 @@ e-mail is not a secure choice for communications concerning undisclosed
security issues so please encrypt your communications to us if possible,
using the [ISC Security Officer public key](https://www.isc.org/downloads/software-support-policy/openpgp-key/).
Do not discuss undisclosed security vulnerabilites on any public mailing list.
Do not discuss undisclosed security vulnerabilities on any public mailing list.
ISC has a long history of handling reported vulnerabilities promptly and
effectively and we respect and acknowledge responsible reporters.
ISC's Security Vulnerability Disclosure Policy is documented at [https://kb.isc.org/article/AA-00861/0](https://kb.isc.org/article/AA-00861/0).
ISC's Security Vulnerability Disclosure Policy is documented at
[https://kb.isc.org/docs/aa-00861](https://kb.isc.org/docs/aa-00861).
If you have a crash, you may want to consult
[What to do if your BIND or DHCP server has crashed.](https://kb.isc.org/article/AA-00340/89/What-to-do-if-your-BIND-or-DHCP-server-has-crashed.html)
@@ -112,7 +112,8 @@ If you have a crash, you may want to consult
BIND is licensed under the
[Mozilla Public License 2.0](http://www.isc.org/downloads/software-support-policy/isc-license/).
Earier versions (BIND 9.10 and earlier) were licensed under the [ISC License](http://www.isc.org/downloads/software-support-policy/isc-license/)
Earlier versions (BIND 9.10 and earlier) were licensed under the
[ISC License](https://www.isc.org/licenses/)
ISC does not require an explicit copyright assignment for patch
contributions. However, by submitting a patch to ISC, you implicitly
@@ -128,7 +129,7 @@ Patches for BIND may be submitted directly via merge requests in
repository for BIND.
Patches can also be submitted as diffs against a specific version of
BIND -- preferably the current top of the `master` branch. Diffs may
BIND -- preferably the current top of the `main` branch. Diffs may
be generated using either `git format-patch` or `git diff`.
Those wanting to write code for BIND may be interested in the
+2 -2
View File
@@ -1,8 +1,8 @@
Copyright (C) 1996-2019 Internet Systems Consortium, Inc. ("ISC")
Copyright (C) 1996-2021 Internet Systems Consortium, Inc. ("ISC")
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
file, you can obtain one at https://mozilla.org/MPL/2.0/.
-----------------------------------------------------------------------------
+181 -179
View File
@@ -1,3 +1,5 @@
HISTORY
Functional enhancements from prior major releases of BIND 9
BIND 9.10.0
@@ -5,10 +7,10 @@ BIND 9.10.0
BIND 9.10.0 includes a number of changes from BIND 9.9 and earlier
releases. New features include:
* DNS Response-rate limiting (DNS RRL), which blunts the impact of
DNS Response-rate limiting (DNS RRL), which blunts the impact of
reflection and amplification attacks, is always compiled in and no
longer requires a compile-time option to enable it.
* An experimental "Source Identity Token" (SIT) EDNS option is now
An experimental "Source Identity Token" (SIT) EDNS option is now
available. Similar to DNS Cookies as invented by Donald Eastlake 3rd,
these are designed to enable clients to detect off-path spoofed
responses, and to enable servers to detect spoofed-source queries.
@@ -18,10 +20,10 @@ releases. New features include:
updated; clients proven to be legitimate via SIT are not subject to
rate limiting. Use "configure --enable-sit" to enable this feature in
BIND.
* A new zone file format, "map", stores zone data in a format that can
A new zone file format, "map", stores zone data in a format that can
be mapped directly into memory, allowing significantly faster zone
loading.
* "delv" (domain entity lookup and validation) is a new tool with
"delv" (domain entity lookup and validation) is a new tool with
dig-like semantics for looking up DNS data and performing internal
DNSSEC validation. This allows easy validation in environments where
the resolver may not be trustworthy, and assists with troubleshooting
@@ -29,41 +31,41 @@ releases. New features include:
9.10, this utility was called "delve". The spelling has been changed
to avoid confusion with the "delve" utility included with the Xapian
search engine.)
* Improved EDNS(0) processing for better resolver performance and
Improved EDNS(0) processing for better resolver performance and
reliability over slow or lossy connections.
* A new "configure --with-tuning=large" option tunes certain compiled-in
A new "configure --with-tuning=large" option tunes certain compiled-in
constants and default settings to values better suited to large
servers with abundant memory. This can improve performance on such
servers, but will consume more memory and may degrade performance on
smaller systems.
* Substantial improvement in response-policy zone (RPZ) performance. Up
Substantial improvement in response-policy zone (RPZ) performance. Up
to 32 response-policy zones can be configured with minimal performance
loss.
* To improve recursive resolver performance, cache records which are
To improve recursive resolver performance, cache records which are
still being requested by clients can now be automatically refreshed
from the authoritative server before they expire, reducing or
eliminating the time window in which no answer is available in the
cache.
* New "rpz-client-ip" triggers and drop policies allowing response
New "rpz-client-ip" triggers and drop policies allowing response
policies based on the IP address of the client.
* ACLs can now be specified based on geographic location using the
ACLs can now be specified based on geographic location using the
MaxMind GeoIP databases. Use "configure --with-geoip" to enable.
* Zone data can now be shared between views, allowing multiple views to
Zone data can now be shared between views, allowing multiple views to
serve the same zones authoritatively without storing multiple copies
in memory.
* New XML schema (version 3) for the statistics channel includes many
New XML schema (version 3) for the statistics channel includes many
new statistics and uses a flattened XML tree for faster parsing. The
older schema is now deprecated.
* A new stylesheet, based on the Google Charts API, displays XML
A new stylesheet, based on the Google Charts API, displays XML
statistics in charts and graphs on javascript-enabled browsers.
* The statistics channel can now provide data in JSON format as well as
The statistics channel can now provide data in JSON format as well as
XML.
* New stats counters track TCP and UDP queries received per zone, and
New stats counters track TCP and UDP queries received per zone, and
EDNS options received in total.
* The internal and export versions of the BIND libraries (libisc,
The internal and export versions of the BIND libraries (libisc,
libdns, etc) have been unified so that external library clients can
use the same libraries as BIND itself.
* A new compile-time option, "configure --enable-native-pkcs11", allows
A new compile-time option, "configure --enable-native-pkcs11", allows
BIND 9 cryptography functions to use the PKCS#11 API natively, so that
BIND can drive a cryptographic hardware service module (HSM) directly
instead of using a modified OpenSSL as an intermediary. (Note: This
@@ -72,27 +74,27 @@ releases. New features include:
"pkcs11-tokens" command can be used to check API completeness. Native
PKCS#11 is known to work with the Thales nShield HSM and with SoftHSM
version 2 from the Open DNSSEC project.)
* The new "max-zone-ttl" option enforces maximum TTLs for zones. This
The new "max-zone-ttl" option enforces maximum TTLs for zones. This
can simplify the process of rolling DNSSEC keys by guaranteeing that
cached signatures will have expired within the specified amount of
time.
* "dig +subnet" sends an EDNS CLIENT-SUBNET option when querying.
* "dig +expire" sends an EDNS EXPIRE option when querying. When this
"dig +subnet" sends an EDNS CLIENT-SUBNET option when querying.
"dig +expire" sends an EDNS EXPIRE option when querying. When this
option is sent with an SOA query to a server that supports it, it will
report the expiry time of a slave zone.
* New "dnssec-coverage" tool to check DNSSEC key coverage for a zone and
New "dnssec-coverage" tool to check DNSSEC key coverage for a zone and
report if a lapse in signing coverage has been inadvertently
scheduled.
* Signing algorithm flexibility and other improvements for the "rndc"
Signing algorithm flexibility and other improvements for the "rndc"
control channel.
* "named-checkzone" and "named-compilezone" can now read journal files,
"named-checkzone" and "named-compilezone" can now read journal files,
allowing them to process dynamic zones.
* Multiple DLZ databases can now be configured. Individual zones can be
Multiple DLZ databases can now be configured. Individual zones can be
configured to be served from a specific DLZ database. DLZ databases
now serve zones of type "master" and "redirect".
* "rndc zonestatus" reports information about a specified zone.
* "named" now listens on IPv6 as well as IPv4 interfaces by default.
* "named" now preserves the capitalization of names when responding to
"rndc zonestatus" reports information about a specified zone.
"named" now listens on IPv6 as well as IPv4 interfaces by default.
"named" now preserves the capitalization of names when responding to
queries: for instance, a query for "example.com" may be answered with
"example.COM" if the name was configured that way in the zone file.
Some clients have a bug causing them to depend on the older behavior,
@@ -100,22 +102,22 @@ releases. New features include:
rather than the case of the name configured in the DNS. Such clients
can now be specified in the new "no-case-compress" ACL; this will
restore the older behavior of "named" for those clients only.
* new "dnssec-importkey" command allows the use of offline DNSSEC keys
new "dnssec-importkey" command allows the use of offline DNSSEC keys
with automatic DNSKEY management.
* New "named-rrchecker" tool to verify the syntactic correctness of
New "named-rrchecker" tool to verify the syntactic correctness of
individual resource records.
* When re-signing a zone, the new "dnssec-signzone -Q" option drops
When re-signing a zone, the new "dnssec-signzone -Q" option drops
signatures from keys that are still published but are no longer
active.
* "named-checkconf -px" will print the contents of configuration files
"named-checkconf -px" will print the contents of configuration files
with the shared secrets obscured, making it easier to share
configuration (e.g. when submitting a bug report) without revealing
private information.
* "rndc scan" causes named to re-scan network interfaces for changes in
"rndc scan" causes named to re-scan network interfaces for changes in
local addresses.
* On operating systems with support for routing sockets, network
On operating systems with support for routing sockets, network
interfaces are re-scanned automatically whenever they change.
* "tsig-keygen" is now available as an alternate command name to use for
"tsig-keygen" is now available as an alternate command name to use for
"ddns-confgen".
BIND 9.9.0
@@ -123,68 +125,68 @@ BIND 9.9.0
BIND 9.9.0 includes a number of changes from BIND 9.8 and earlier
releases. New features include:
* Inline signing, allowing automatic DNSSEC signing of master zones
Inline signing, allowing automatic DNSSEC signing of master zones
without modification of the zonefile, or "bump in the wire" signing in
slaves.
* NXDOMAIN redirection.
* New 'rndc flushtree' command clears all data under a given name from
NXDOMAIN redirection.
New 'rndc flushtree' command clears all data under a given name from
the DNS cache.
* New 'rndc sync' command dumps pending changes in a dynamic zone to
New 'rndc sync' command dumps pending changes in a dynamic zone to
disk without a freeze/thaw cycle.
* New 'rndc signing' command displays or clears signing status records
New 'rndc signing' command displays or clears signing status records
in 'auto-dnssec' zones.
* NSEC3 parameters for 'auto-dnssec' zones can now be set prior to
NSEC3 parameters for 'auto-dnssec' zones can now be set prior to
signing, eliminating the need to initially sign with NSEC.
* Startup time improvements on large authoritative servers.
* Slave zones are now saved in raw format by default.
* Several improvements to response policy zones (RPZ).
* Improved hardware scalability by using multiple threads to listen for
Startup time improvements on large authoritative servers.
Slave zones are now saved in raw format by default.
Several improvements to response policy zones (RPZ).
Improved hardware scalability by using multiple threads to listen for
queries and using finer-grained client locking
* The 'also-notify' option now takes the same syntax as 'masters', so it
The 'also-notify' option now takes the same syntax as 'masters', so it
can used named masterlists and TSIG keys.
* 'dnssec-signzone -D' writes an output file containing only DNSSEC
'dnssec-signzone -D' writes an output file containing only DNSSEC
data, which can be included by the primary zone file.
* 'dnssec-signzone -R' forces removal of signatures that are not expired
'dnssec-signzone -R' forces removal of signatures that are not expired
but were created by a key which no longer exists.
* 'dnssec-signzone -X' allows a separate expiration date to be specified
'dnssec-signzone -X' allows a separate expiration date to be specified
for DNSKEY signatures from other signatures.
* New '-L' option to dnssec-keygen, dnssec-settime, and
New '-L' option to dnssec-keygen, dnssec-settime, and
dnssec-keyfromlabel sets the default TTL for the key.
* dnssec-dsfromkey now supports reading from standard input, to make it
dnssec-dsfromkey now supports reading from standard input, to make it
easier to convert DNSKEY to DS.
* RFC 1918 reverse zones have been added to the empty-zones table per
RFC 1918 reverse zones have been added to the empty-zones table per
RFC 6303.
* Dynamic updates can now optionally set the zone's SOA serial number to
Dynamic updates can now optionally set the zone's SOA serial number to
the current UNIX time.
* DLZ modules can now retrieve the source IP address of the querying
DLZ modules can now retrieve the source IP address of the querying
client.
* 'request-ixfr' option can now be set at the per-zone level.
* 'dig +rrcomments' turns on comments about DNSKEY records, indicating
'request-ixfr' option can now be set at the per-zone level.
'dig +rrcomments' turns on comments about DNSKEY records, indicating
their key ID, algorithm and function
* Simplified nsupdate syntax and added readline support
Simplified nsupdate syntax and added readline support
BIND 9.8.0
BIND 9.8.0 includes a number of changes from BIND 9.7 and earlier
releases. New features include:
* Built-in trust anchor for the root zone, which can be switched on via
Built-in trust anchor for the root zone, which can be switched on via
"dnssec-validation auto;"
* Support for DNS64.
* Support for response policy zones (RPZ).
* Support for writable DLZ zones.
* Improved ease of configuration of GSS/TSIG for interoperability with
Support for DNS64.
Support for response policy zones (RPZ).
Support for writable DLZ zones.
Improved ease of configuration of GSS/TSIG for interoperability with
Active Directory
* Support for GOST signing algorithm for DNSSEC.
* Removed RTT Banding from server selection algorithm.
* New "static-stub" zone type.
* Allow configuration of resolver timeouts via "resolver-query-timeout"
Support for GOST signing algorithm for DNSSEC.
Removed RTT Banding from server selection algorithm.
New "static-stub" zone type.
Allow configuration of resolver timeouts via "resolver-query-timeout"
option.
* The DLZ "dlopen" driver is now built by default.
* Added a new include file with function typedefs for the DLZ "dlopen"
The DLZ "dlopen" driver is now built by default.
Added a new include file with function typedefs for the DLZ "dlopen"
driver.
* Made "--with-gssapi" default.
* More verbose error reporting from DLZ LDAP.
Made "--with-gssapi" default.
More verbose error reporting from DLZ LDAP.
BIND 9.7.0
@@ -192,192 +194,192 @@ BIND 9.7.0 includes a number of changes from BIND 9.6 and earlier
releases. Most are intended to simplify DNSSEC configuration. New features
include:
* Fully automatic signing of zones by "named".
* Simplified configuration of DNSSEC Lookaside Validation (DLV).
* Simplified configuration of Dynamic DNS, using the "ddns-confgen"
Fully automatic signing of zones by "named".
Simplified configuration of DNSSEC Lookaside Validation (DLV).
Simplified configuration of Dynamic DNS, using the "ddns-confgen"
command line tool or the "local" update-policy option. (As a side
effect, this also makes it easier to configure automatic zone
re-signing.)
* New named option "attach-cache" that allows multiple views to share a
New named option "attach-cache" that allows multiple views to share a
single cache.
* DNS rebinding attack prevention.
* New default values for dnssec-keygen parameters.
* Support for RFC 5011 automated trust anchor maintenance
* Smart signing: simplified tools for zone signing and key maintenance.
* The "statistics-channels" option is now available on Windows.
* A new DNSSEC-aware libdns API for use by non-BIND9 applications
* On some platforms, named and other binaries can now print out a stack
DNS rebinding attack prevention.
New default values for dnssec-keygen parameters.
Support for RFC 5011 automated trust anchor maintenance
Smart signing: simplified tools for zone signing and key maintenance.
The "statistics-channels" option is now available on Windows.
A new DNSSEC-aware libdns API for use by non-BIND9 applications
On some platforms, named and other binaries can now print out a stack
backtrace on assertion failure, to aid in debugging.
* A "tools only" installation mode on Windows, which only installs dig,
A "tools only" installation mode on Windows, which only installs dig,
host, nslookup and nsupdate.
* Improved PKCS#11 support, including Keyper support and explicit
Improved PKCS#11 support, including Keyper support and explicit
OpenSSL engine selection.
BIND 9.6.0
* Full NSEC3 support
* Automatic zone re-signing
* New update-policy methods tcp-self and 6to4-self
* The BIND 8 resolver library, libbind, has been removed from the BIND 9
Full NSEC3 support
Automatic zone re-signing
New update-policy methods tcp-self and 6to4-self
The BIND 8 resolver library, libbind, has been removed from the BIND 9
distribution and is now available as a separate download.
* Change the default pid file location from /var/run to /var/run/
Change the default pid file location from /var/run to /var/run/
{named,lwresd} for improved chroot/setuid support.
BIND 9.5.0
* GSS-TSIG support (RFC 3645).
* DHCID support.
* Experimental http server and statistics support for named via xml.
* More detailed statistics counters including those supported in BIND 8.
* Faster ACL processing.
* Use Doxygen to generate internal documentation.
* Efficient LRU cache-cleaning mechanism.
* NSID support.
GSS-TSIG support (RFC 3645).
DHCID support.
Experimental http server and statistics support for named via xml.
More detailed statistics counters including those supported in BIND 8.
Faster ACL processing.
Use Doxygen to generate internal documentation.
Efficient LRU cache-cleaning mechanism.
NSID support.
BIND 9.4.0
* Implemented "additional section caching (or acache)", an internal
Implemented "additional section caching (or acache)", an internal
cache framework for additional section content to improve response
performance. Several configuration options were provided to control
the behavior.
* New notify type 'master-only'. Enable notify for master zones only.
* Accept 'notify-source' style syntax for query-source.
* rndc now allows addresses to be set in the server clauses.
* New option "allow-query-cache". This lets "allow-query" be used to
New notify type 'master-only'. Enable notify for master zones only.
Accept 'notify-source' style syntax for query-source.
rndc now allows addresses to be set in the server clauses.
New option "allow-query-cache". This lets "allow-query" be used to
specify the default zone access level rather than having to have every
zone override the global value. "allow-query-cache" can be set at both
the options and view levels. If "allow-query-cache" is not set then
"allow-recursion" is used if set, otherwise "allow-query" is used if
set unless "recursion no;" is set in which case "none;" is used,
otherwise the default (localhost; localnets;) is used.
* rndc: the source address can now be specified.
* ixfr-from-differences now takes master and slave in addition to yes
rndc: the source address can now be specified.
ixfr-from-differences now takes master and slave in addition to yes
and no at the options and view levels.
* Allow the journal's name to be changed via named.conf.
* 'rndc notify zone [class [view]]' resend the NOTIFY messages for the
Allow the journal's name to be changed via named.conf.
'rndc notify zone [class [view]]' resend the NOTIFY messages for the
specified zone.
* 'dig +trace' now randomly selects the next servers to try. Report if
'dig +trace' now randomly selects the next servers to try. Report if
there is a bad delegation.
* Improve check-names error messages.
* Make public the function to read a key file, dst_key_read_public().
* dig now returns the byte count for axfr/ixfr.
* allow-update is now settable at the options / view level.
* named-checkconf now checks the logging configuration.
* host now can turn on memory debugging flags with '-m'.
* Don't send notify messages to self.
* Perform sanity checks on NS records which refer to 'in zone' names.
* New zone option "notify-delay". Specify a minimum delay between sets
Improve check-names error messages.
Make public the function to read a key file, dst_key_read_public().
dig now returns the byte count for axfr/ixfr.
allow-update is now settable at the options / view level.
named-checkconf now checks the logging configuration.
host now can turn on memory debugging flags with '-m'.
Don't send notify messages to self.
Perform sanity checks on NS records which refer to 'in zone' names.
New zone option "notify-delay". Specify a minimum delay between sets
of NOTIFY messages.
* Extend adjusting TTL warning messages.
* Named and named-checkzone can now both check for non-terminal wildcard
Extend adjusting TTL warning messages.
Named and named-checkzone can now both check for non-terminal wildcard
records.
* "rndc freeze/thaw" now freezes/thaws all zones.
* named-checkconf now check acls to verify that they only refer to
"rndc freeze/thaw" now freezes/thaws all zones.
named-checkconf now check acls to verify that they only refer to
existing acls.
* The server syntax has been extended to support a range of servers.
* Report differences between hints and real NS rrset and associated
The server syntax has been extended to support a range of servers.
Report differences between hints and real NS rrset and associated
address records.
* Preserve the case of domain names in rdata during zone transfers.
* Restructured the data locking framework using architecture dependent
Preserve the case of domain names in rdata during zone transfers.
Restructured the data locking framework using architecture dependent
atomic operations (when available), improving response performance on
multi-processor machines significantly. x86, x86_64, alpha, powerpc,
and mips are currently supported.
* UNIX domain controls are now supported.
* Add support for additional zone file formats for improving loading
UNIX domain controls are now supported.
Add support for additional zone file formats for improving loading
performance. The masterfile-format option in named.conf can be used to
specify a non-default format. A separate command named-compilezone was
provided to generate zone files in the new format. Additionally, the
-I and -O options for dnssec-signzone specify the input and output
formats.
* dnssec-signzone can now randomize signature end times (dnssec-signzone
dnssec-signzone can now randomize signature end times (dnssec-signzone
-j jitter).
* Add support for CH A record.
* Add additional zone data constancy checks. named-checkzone has
Add support for CH A record.
Add additional zone data constancy checks. named-checkzone has
extended checking of NS, MX and SRV record and the hosts they
reference. named has extended post zone load checks. New zone options:
check-mx and integrity-check.
* edns-udp-size can now be overridden on a per server basis.
* dig can now specify the EDNS version when making a query.
* Added framework for handling multiple EDNS versions.
* Additional memory debugging support to track size and mctx arguments.
* Detect duplicates of UDP queries we are recursing on and drop them.
edns-udp-size can now be overridden on a per server basis.
dig can now specify the EDNS version when making a query.
Added framework for handling multiple EDNS versions.
Additional memory debugging support to track size and mctx arguments.
Detect duplicates of UDP queries we are recursing on and drop them.
New stats category "duplicates".
* "USE INTERNAL MALLOC" is now runtime selectable.
* The lame cache is now done on a basis as some servers only appear to
be lame for certain query types.
* Limit the number of recursive clients that can be waiting for a single
query () to resolve. New options clients-per-query and
max-clients-per-query.
* dig: report the number of extra bytes still left in the packet after
"USE INTERNAL MALLOC" is now runtime selectable.
The lame cache is now done on a <qname,qclass,qtype> basis as some
servers only appear to be lame for certain query types.
Limit the number of recursive clients that can be waiting for a single
query (<qname,qtype,qclass>) to resolve. New options clients-per-query
and max-clients-per-query.
dig: report the number of extra bytes still left in the packet after
processing all the records.
* Support for IPSECKEY rdata type.
* Raise the UDP recieve buffer size to 32k if it is less than 32k.
* x86 and x86_64 now have seperate atomic locking implementations.
* named-checkconf now validates update-policy entries.
* Attempt to make the amount of work performed in a iteration self
Support for IPSECKEY rdata type.
Raise the UDP receive buffer size to 32k if it is less than 32k.
x86 and x86_64 now have separate atomic locking implementations.
named-checkconf now validates update-policy entries.
Attempt to make the amount of work performed in a iteration self
tuning. The covers nodes clean from the cache per iteration, nodes
written to disk when rewriting a master file and nodes destroyed per
iteration when destroying a zone or a cache.
* ISC string copy API.
* Automatic empty zone creation for D.F.IP6.ARPA and friends. Note: RFC
ISC string copy API.
Automatic empty zone creation for D.F.IP6.ARPA and friends. Note: RFC
1918 zones are not yet covered by this but are likely to be in a
future release.
* New options: empty-server, empty-contact, empty-zones-enable and
New options: empty-server, empty-contact, empty-zones-enable and
disable-empty-zone.
* dig now has a '-q queryname' and '+showsearch' options.
* host/nslookup now continue (default)/fail on SERVFAIL.
* dig now warns if 'RA' is not set in the answer when 'RD' was set in
dig now has a '-q queryname' and '+showsearch' options.
host/nslookup now continue (default)/fail on SERVFAIL.
dig now warns if 'RA' is not set in the answer when 'RD' was set in
the query. host/nslookup skip servers that fail to set 'RA' when 'RD'
is set unless a server is explicitly set.
* Integrate contibuted DLZ code into named.
* Integrate contibuted IDN code from JPNIC.
* libbind: corresponds to that from BIND 8.4.7.
Integrate contributed DLZ code into named.
Integrate contributed IDN code from JPNIC.
libbind: corresponds to that from BIND 8.4.7.
BIND 9.3.0
* DNSSEC is now DS based (RFC 3658).
* DNSSEC lookaside validation.
* check-names is now implemented.
* rrset-order is more complete.
* IPv4/IPv6 transition support, dual-stack-servers.
* IXFR deltas can now be generated when loading master files,
DNSSEC is now DS based (RFC 3658).
DNSSEC lookaside validation.
check-names is now implemented.
rrset-order is more complete.
IPv4/IPv6 transition support, dual-stack-servers.
IXFR deltas can now be generated when loading master files,
ixfr-from-differences.
* It is now possible to specify the size of a journal, max-journal-size.
* It is now possible to define a named set of master servers to be used
It is now possible to specify the size of a journal, max-journal-size.
It is now possible to define a named set of master servers to be used
in masters clause, masters.
* The advertised EDNS UDP size can now be set, edns-udp-size.
* allow-v6-synthesis has been obsoleted.
* Zones containing MD and MF will now be rejected.
* dig, nslookup name. now report "Not Implemented" as NOTIMP rather than
The advertised EDNS UDP size can now be set, edns-udp-size.
allow-v6-synthesis has been obsoleted.
Zones containing MD and MF will now be rejected.
dig, nslookup name. now report "Not Implemented" as NOTIMP rather than
NOTIMPL. This will have impact on scripts that are looking for
NOTIMPL.
* libbind: corresponds to that from BIND 8.4.5.
libbind: corresponds to that from BIND 8.4.5.
BIND 9.2.0
* The size of the cache can now be limited using the "max-cache-size"
The size of the cache can now be limited using the "max-cache-size"
option.
* The server can now automatically convert RFC1886-style recursive
The server can now automatically convert RFC1886-style recursive
lookup requests into RFC2874-style lookups, when enabled using the new
option "allow-v6-synthesis". This allows stub resolvers that support
AAAA records but not A6 record chains or binary labels to perform
lookups in domains that make use of these IPv6 DNS features.
* Performance has been improved.
* The man pages now use the more portable "man" macros rather than the
Performance has been improved.
The man pages now use the more portable "man" macros rather than the
"mandoc" macros, and are installed by "make install".
* The named.conf parser has been completely rewritten. It now supports
The named.conf parser has been completely rewritten. It now supports
"include" directives in more places such as inside "view" statements,
and it no longer has any reserved words.
* The "rndc status" command is now implemented.
* rndc can now be configured automatically.
* A BIND 8 compatible stub resolver library is now included in lib/bind.
* OpenSSL has been removed from the distribution. This means that to use
The "rndc status" command is now implemented.
rndc can now be configured automatically.
A BIND 8 compatible stub resolver library is now included in lib/bind.
OpenSSL has been removed from the distribution. This means that to use
DNSSEC, OpenSSL must be installed and the --with-openssl option must
be supplied to configure. This does not apply to the use of TSIG,
which does not require OpenSSL.
* The source distribution now builds on Windows. See win32utils/
The source distribution now builds on Windows. See win32utils/
readme1.txt and win32utils/win32-build.txt for details.
* This distribution also includes a new lightweight stub resolver
This distribution also includes a new lightweight stub resolver
library and associated resolver daemon that fully support forward and
reverse lookups of both IPv4 and IPv6 addresses. This library is
considered experimental and is not a complete replacement for the BIND
@@ -385,11 +387,11 @@ BIND 9.2.0
to perform DNS lookups or dynamic updates still need to be linked
against the BIND 8 libraries. For DNS lookups, they can also use the
new "getrrsetbyname()" API.
* BIND 9.2 is capable of acting as an authoritative server for DNSSEC
BIND 9.2 is capable of acting as an authoritative server for DNSSEC
secured zones. This functionality is believed to be stable and
complete except for lacking support for verifications involving
wildcard records in secure zones.
* When acting as a caching server, BIND 9.2 can be configured to perform
When acting as a caching server, BIND 9.2 can be configured to perform
DNSSEC secure resolution on behalf of its clients. This part of the
DNSSEC implementation is still considered experimental. For detailed
information about the state of the DNSSEC implementation, see the file
+5 -5
View File
@@ -3,7 +3,7 @@
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- file, you can obtain one at https://mozilla.org/MPL/2.0/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
@@ -333,8 +333,8 @@ BIND 9.4.0
- dig: report the number of extra bytes still left in the packet after
processing all the records.
- Support for IPSECKEY rdata type.
- Raise the UDP recieve buffer size to 32k if it is less than 32k.
- x86 and x86_64 now have seperate atomic locking implementations.
- Raise the UDP receive buffer size to 32k if it is less than 32k.
- x86 and x86_64 now have separate atomic locking implementations.
- named-checkconf now validates update-policy entries.
- Attempt to make the amount of work performed in a iteration self tuning.
The covers nodes clean from the cache per iteration, nodes written to
@@ -351,8 +351,8 @@ BIND 9.4.0
- dig now warns if 'RA' is not set in the answer when 'RD' was set in the
query. host/nslookup skip servers that fail to set 'RA' when 'RD' is set
unless a server is explicitly set.
- Integrate contibuted DLZ code into named.
- Integrate contibuted IDN code from JPNIC.
- Integrate contributed DLZ code into named.
- Integrate contributed IDN code from JPNIC.
- libbind: corresponds to that from BIND 8.4.7.
#### BIND 9.3.0
+9 -9
View File
@@ -2,7 +2,7 @@
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
@@ -95,23 +95,23 @@ test-force:
exit $$status
README: README.md
${PANDOC} --email-obfuscation=none -s -t html README.md | \
${W3M} -dump -cols 75 -O ascii -T text/html | \
${PANDOC} --email-obfuscation=none -s --metadata title="README" -f markdown-smart -t html README.md | \
${W3M} -dump -cols 75 -O utf-8 -T text/html | \
sed -e '$${/^$$/d;}' > $@
HISTORY: HISTORY.md
${PANDOC} --email-obfuscation=none -s -t html HISTORY.md | \
${W3M} -dump -cols 75 -O ascii -T text/html | \
${PANDOC} --email-obfuscation=none -s --metadata title="HISTORY" -f markdown-smart -t html HISTORY.md | \
${W3M} -dump -cols 75 -O utf-8 -T text/html | \
sed -e '$${/^$$/d;}' > $@
OPTIONS: OPTIONS.md
${PANDOC} --email-obfuscation=none -s -t html OPTIONS.md | \
${W3M} -dump -cols 75 -O ascii -T text/html | \
${PANDOC} --email-obfuscation=none -s --metadata title="OPTIONS" -f markdown-smart -t html OPTIONS.md | \
${W3M} -dump -cols 75 -O utf-8 -T text/html | \
sed -e '$${/^$$/d;}' > $@
CONTRIBUTING: CONTRIBUTING.md
${PANDOC} --email-obfuscation=none -s -t html CONTRIBUTING.md | \
${W3M} -dump -cols 75 -O ascii -T text/html | \
${PANDOC} --email-obfuscation=none -s --metadata title="CONTRIBUTING" -f markdown-smart -t html CONTRIBUTING.md | \
${W3M} -dump -cols 75 -O utf-8 -T text/html | \
sed -e '$${/^$$/d;}' > $@
unit::
+3 -1
View File
@@ -1,10 +1,12 @@
OPTIONS
Setting the STD_CDEFINES environment variable before running configure can
be used to enable certain compile-time options that are not explicitly
defined in configure.
Some of these settings are:
Setting Description
Setting Description
Don't ovewrite memory when allocating or freeing
-DISC_MEM_FILL=0 it; this improves performance but makes
debugging more difficult.
+1 -1
View File
@@ -3,7 +3,7 @@
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- file, you can obtain one at https://mozilla.org/MPL/2.0/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
+274 -97
View File
@@ -1,3 +1,5 @@
README
BIND 9
Contents
@@ -37,9 +39,9 @@ versions 4 and 8. Internet Systems Consortium (https://www.isc.org), a 501
(c)(3) public benefit corporation dedicated to providing software and
services in support of the Internet infrastructure, developed BIND 9 and
is responsible for its ongoing maintenance and improvement. BIND is open
source software licenced under the terms of ISC License for all versions
source software licensed under the terms of ISC License for all versions
up to and including BIND 9.10, and the Mozilla Public License version 2.0
for all subsequent verisons.
for all subsequent versions.
For a summary of features introduced in past major releases of BIND, see
the file HISTORY.
@@ -47,8 +49,8 @@ the file HISTORY.
For a detailed list of changes made throughout the history of BIND 9, see
the file CHANGES. See below for details on the CHANGES file format.
For up-to-date release notes and errata, see http://www.isc.org/software/
bind9/releasenotes
For up-to-date versions and release notes, see https://www.isc.org/
download/.
Reporting bugs and getting help
@@ -66,7 +68,13 @@ named-checkconf -px.
If the bug you are reporting is a potential security issue, such as an
assertion failure or other crash in named, please do NOT use GitLab to
report it. Instead, please send mail to security-officer@isc.org.
report it. Instead, send mail to security-officer@isc.org using our
OpenPGP key to secure your message. (Information about OpenPGP and links
to our key can be found at https://www.isc.org/pgpkey.) Please do not
discuss the bug on any public mailing list.
For a general overview of ISC security policies, read the Knowledge Base
article at https://kb.isc.org/docs/aa-00861.
Professional support and training for BIND are available from ISC at
https://www.isc.org/support.
@@ -87,7 +95,7 @@ Information for BIND contributors can be found in the following files: -
General information: doc/dev/contrib.md - BIND 9 code style: doc/dev/
style.md - BIND architecture and developer guide: doc/dev/dev.md
Patches for BIND may be submitted as Merge Requests in the ISC GitLab
Patches for BIND may be submitted as merge requests in the ISC GitLab
server at at https://gitlab.isc.org/isc-projects/bind9/merge_requests.
By default, external contributors don't have ability to fork BIND in the
@@ -104,124 +112,124 @@ BIND 9.11 features
BIND 9.11.0 includes a number of changes from BIND 9.10 and earlier
releases. New features include:
* Added support for Catalog Zones, a new method for provisioning
Added support for Catalog Zones, a new method for provisioning
servers: a list of zones to be served is stored in a DNS zone, along
with their configuration parameters. Changes to the catalog zone are
propagated to slaves via normal AXFR/IXFR, whereupon the zones that
are listed in it are automatically added, deleted or reconfigured.
* Added support for "dnstap", a fast and flexible method of capturing
Added support for "dnstap", a fast and flexible method of capturing
and logging DNS traffic.
* Added support for "dyndb", a new API for loading zone data from an
Added support for "dyndb", a new API for loading zone data from an
external database, developed by Red Hat for the FreeIPA project.
* "fetchlimit" quotas are now compiled in by default. These are for the
"fetchlimit" quotas are now compiled in by default. These are for the
use of recursive resolvers that are are under high query load for
domains whose authoritative servers are nonresponsive or are
experiencing a denial of service attack:
+ fetches-per-server limits the number of simultaneous queries that
fetches-per-server limits the number of simultaneous queries that
can be sent to any single authoritative server. The configured
value is a starting point; it is automatically adjusted downward
if the server is partially or completely non-responsive. The
algorithm used to adjust the quota can be configured via the
"fetch-quota-params" option.
+ fetches-per-zone limits the number of simultaneous queries that
fetches-per-zone limits the number of simultaneous queries that
can be sent for names within a single domain. (Note: Unlike
fetches-per-server, this value is not self-tuning.)
+ New stats counters have been added to count queries spilled due to
New stats counters have been added to count queries spilled due to
these quotas.
* Added a new dnssec-keymgr key mainenance utility, which can generate
Added a new dnssec-keymgr key maintenance utility, which can generate
or update keys as needed to ensure that a zone's keys match a defined
DNSSEC policy.
* The experimental "SIT" feature in BIND 9.10 has been renamed "COOKIE"
The experimental "SIT" feature in BIND 9.10 has been renamed "COOKIE"
and is no longer optional. EDNS COOKIE is a mechanism enabling clients
to detect off-path spoofed responses, and servers to detect
spoofed-source queries. Clients that identify themselves using COOKIE
options are not subject to response rate limiting (RRL) and can
receive larger UDP responses.
* SERVFAIL responses can now be cached for a limited time (defaulting to
SERVFAIL responses can now be cached for a limited time (defaulting to
1 second, with an upper limit of 30). This can reduce the frequency of
retries when a query is persistently failing.
* Added an nsip-wait-recurse switch to RPZ. This causes NSIP rules to be
Added an nsip-wait-recurse switch to RPZ. This causes NSIP rules to be
skipped if a name server IP address isn't in the cache yet; the
address will be looked up and the rule will be applied on future
queries.
* Added a Python RNDC module. This allows multiple commands to sent over
Added a Python RNDC module. This allows multiple commands to sent over
a persistent RNDC channel, which saves time.
* The controls block in named.conf can now grant read-only rndc access
The controls block in named.conf can now grant read-only rndc access
to specified clients or keys. Read-only clients could, for example,
check rndc status but could not reconfigure or shut down the server.
* rndc commands can now return arbitrarily large amounts of text to the
rndc commands can now return arbitrarily large amounts of text to the
caller.
* The zone serial number of a dynamically updatable zone can now be set
The zone serial number of a dynamically updatable zone can now be set
via rndc signing -serial <number> <zonename>. This allows
inline-signing zones to be set to a specific serial number.
* The new rndc nta command can be used to set a Negative Trust Anchor
The new rndc nta command can be used to set a Negative Trust Anchor
(NTA), disabling DNSSEC validation for a specific domain; this can be
used when responses from a domain are known to be failing validation
due to administrative error rather than because of a spoofing attack.
Negative trust anchors are strictly temporary; by default they expire
after one hour, but can be configured to last up to one week.
* rndc delzone can now be used on zones that were not originally created
rndc delzone can now be used on zones that were not originally created
by "rndc addzone".
* rndc modzone reconfigures a single zone, without requiring the entire
rndc modzone reconfigures a single zone, without requiring the entire
server to be reconfigured.
* rndc showzone displays the current configuration of a zone.
* rndc managed-keys can be used to check the status of RFC 5001 managed
rndc showzone displays the current configuration of a zone.
rndc managed-keys can be used to check the status of RFC 5001 managed
trust anchors, or to force trust anchors to be refreshed.
* max-cache-size can now be set to a percentage of available memory. The
max-cache-size can now be set to a percentage of available memory. The
default is 90%.
* Update forwarding performance has been improved by allowing a single
Update forwarding performance has been improved by allowing a single
TCP connection to be shared by multiple updates.
* The EDNS Client Subnet (ECS) option is now supported for authoritative
The EDNS Client Subnet (ECS) option is now supported for authoritative
servers; if a query contains an ECS option then ACLs containing geoip
or ecs elements can match against the the address encoded in the
option. This can be used to select a view for a query, so that
different answers can be provided depending on the client network.
* The EDNS EXPIRE option has been implemented on the client side,
The EDNS EXPIRE option has been implemented on the client side,
allowing a slave server to set the expiration timer correctly when
transferring zone data from another slave server.
* The key generation and manipulation tools (dnssec-keygen,
The key generation and manipulation tools (dnssec-keygen,
dnssec-settime, dnssec-importkey, dnssec-keyfromlabel) now take -Psync
and -Dsync options to set the publication and deletion times of CDS
and CDNSKEY parent-synchronization records. Both named and
dnssec-signzone can now publish and remove these records at the
scheduled times.
* A new minimal-any option reduces the size of UDP responses for query
A new minimal-any option reduces the size of UDP responses for query
type ANY by returning a single arbitrarily selected RRset instead of
all RRsets.
* A new masterfile-style zone option controls the formatting of text
A new masterfile-style zone option controls the formatting of text
zone files: When set to full, a zone file is dumped in
single-line-per-record format.
* serial-update-method can now be set to date. On update, the serial
serial-update-method can now be set to date. On update, the serial
number will be set to the current date in YYYYMMDDNN format.
* dnssec-signzone -N date sets the serial number to YYYYMMDDNN.
* named -L <filename> causes named to send log messages to the specified
dnssec-signzone -N date sets the serial number to YYYYMMDDNN.
named -L <filename> causes named to send log messages to the specified
file by default instead of to the system log.
* dig +ttlunits prints TTL values with time-unit suffixes: w, d, h, m, s
dig +ttlunits prints TTL values with time-unit suffixes: w, d, h, m, s
for weeks, days, hours, minutes, and seconds.
* dig +unknownformat prints dig output in RFC 3597 "unknown record"
dig +unknownformat prints dig output in RFC 3597 "unknown record"
presentation format.
* dig +ednsopt allows dig to set arbitrary EDNS options on requests.
* dig +ednsflags allows dig to set yet-to-be-defined EDNS flags on
dig +ednsopt allows dig to set arbitrary EDNS options on requests.
dig +ednsflags allows dig to set yet-to-be-defined EDNS flags on
requests.
* mdig is an alternate version of dig which sends multiple pipelined TCP
mdig is an alternate version of dig which sends multiple pipelined TCP
queries to a server. Instead of waiting for a response after sending a
query, it sends all queries immediately and displays responses in the
order received.
* serial-query-rate no longer controls NOTIFY messages. These are
serial-query-rate no longer controls NOTIFY messages. These are
separately controlled by notify-rate and startup-notify-rate.
* nsupdate now performs check-names processing by default on records to
nsupdate now performs check-names processing by default on records to
be added. This can be disabled with check-names no.
* The statistics channel now supports DEFLATE compression, reducing the
The statistics channel now supports DEFLATE compression, reducing the
size of the data sent over the network when querying statistics.
* New counters have been added to the statistics channel to track the
New counters have been added to the statistics channel to track the
sizes of incoming queries and outgoing responses in histogram buckets,
as specified in RSSAC002.
* A new NXDOMAIN redirect method (option nxdomain-redirect) has been
A new NXDOMAIN redirect method (option nxdomain-redirect) has been
added, allowing redirection to a specified DNS namespace instead of a
single redirect zone.
* When starting up, named now ensures that no other named process is
When starting up, named now ensures that no other named process is
already running.
* Files created by named to store information, including mkeys and nzf
Files created by named to store information, including mkeys and nzf
files, are now named after their corresponding views unless the view
name contains characters incompatible with use as a filename. Old
style filenames (based on the hash of the view name) will still work.
@@ -249,32 +257,168 @@ disclosed in CVE-2017-3145.
BIND 9.11.4
BIND 9.11.4 is a maintenance release, and addresses the security flaw
disclosed in CVE-2018-5738.
disclosed in CVE-2018-5738. It also introduces "root key sentinel"
support, enabling validating resolvers to indicate via a special query
which trust anchors are configured for the root zone.
BIND 9.11.5
BIND 9.11.5 is a maintenance release, and also addresses CVE-2018-5741 by
correcting faulty documentation and introducing the following new feature:
* New krb5-selfsub and ms-selfsub rule types for update-policy
New krb5-selfsub and ms-selfsub rule types for update-policy
statements allow updating of subdomains based on a Kerberos or Active
Directory machine principal.
BIND 9.11.6
BIND 9.11.6 is a maintenance release, and also addresses the security
flaws disclosed in CVE-2018-5744, CVE-2018-5745, and CVE-2019-6465.
flaws disclosed in CVE-2018-5743, CVE-2018-5745, CVE-2018-5744, and
CVE-2019-6465.
BIND 9.11.7
BIND 9.11.7 is a maintenance release, and also addresses the security flaw
disclosed in CVE-2018-5743.
BIND 9.11.8
BIND 9.11.8 is a maintenance release, and also addresses the security flaw
disclosed in CVE-2019-6471.
BIND 9.11.9
BIND 9.11.9 is a maintenance release, and also adds support for the new
MaxMind GeoIP2 geolocation API when built with configure --with-geoip2.
BIND 9.11.10
BIND 9.11.10 is a maintenance release.
BIND 9.11.11
BIND 9.11.11 is a maintenance release.
BIND 9.11.12
BIND 9.11.12 is a maintenance release.
BIND 9.11.13
BIND 9.11.13 is a maintenance release, and also addresses the security
vulnerability disclosed in CVE-2019-6477.
BIND 9.11.14
BIND 9.11.14 is a maintenance release.
BIND 9.11.15
BIND 9.11.15 is a maintenance release.
BIND 9.11.16
BIND 9.11.16 is a maintenance release.
BIND 9.11.17
BIND 9.11.17 is a maintenance release.
BIND 9.11.18
BIND 9.11.18 is a maintenance release.
BIND 9.11.19
BIND 9.11.19 is a maintenance release, and also addresses the security
vulnerabilities disclosed in CVE-2020-8616 and CVE-2020-8617.
BIND 9.11.20
BIND 9.11.20 is a maintenance release, and also addresses the security
vulnerability disclosed in CVE-2020-8619.
BIND 9.11.21
BIND 9.11.21 is a maintenance release.
BIND 9.11.22
BIND 9.11.22 is a maintenance release, and also addresses the security
vulnerabilities disclosed in CVE-2020-8622, CVE-2020-8623, and
CVE-2020-8624.
BIND 9.11.23
BIND 9.11.23 is a maintenance release.
BIND 9.11.24
BIND 9.11.24 is a maintenance release.
BIND 9.11.25
BIND 9.11.25 is a maintenance release.
BIND 9.11.26
BIND 9.11.26 is a maintenance release.
BIND 9.11.27
BIND 9.11.27 is a maintenance release.
BIND 9.11.28
BIND 9.11.28 is a maintenance release, and also addresses the security
vulnerability disclosed in CVE-2020-8625.
BIND 9.11.29
BIND 9.11.29 is a maintenance release.
BIND 9.11.30
This release was withdrawn.
BIND 9.11.31
BIND 9.11.31 is a maintenance release, and also addresses the security
vulnerabilities disclosed in CVE-2021-25214, CVE-2021-25215, and
CVE-2021-25216.
BIND 9.11.32
BIND 9.11.32 is a maintenance release.
BIND 9.11.33
BIND 9.11.33 is a maintenance release.
BIND 9.11.34
BIND 9.11.34 is a maintenance release.
BIND 9.11.35
BIND 9.11.35 is a maintenance release.
BIND 9.11.36
BIND 9.11.36 is a maintenance release, and also addresses the security
vulnerability disclosed in CVE-2021-25219.
Building BIND
BIND requires a UNIX or Linux system with an ANSI C compiler, basic POSIX
support, and a 64-bit integer type. Successful builds have been observed
on many versions of Linux and UNIX, including RedHat, Fedora, Debian,
Ubuntu, SuSE, Slackware, FreeBSD, NetBSD, OpenBSD, Mac OS X, Solaris,
HP-UX, AIX, SCO OpenServer, and OpenWRT.
Minimally, BIND requires a UNIX or Linux system with an ANSI C compiler,
basic POSIX support, and a 64-bit integer type. Successful builds have
been observed on many versions of Linux and UNIX, including RHEL/CentOS/
Oracle Linux, Fedora, Debian, Ubuntu, SLES, openSUSE, Slackware, Alpine,
FreeBSD, NetBSD, OpenBSD, macOS, Solaris, OpenIndiana, OmniOS CE, HP-UX,
and OpenWRT.
BIND is also available for Windows XP, 2003, 2008, and higher. See
win32utils/readme1st.txt for details on building for Windows systems.
BIND is also available for Windows Server 2008 and higher. See win32utils/
build.txt for details on building for Windows systems.
To build on a UNIX or Linux system, use:
@@ -285,9 +429,9 @@ If you're planning on making changes to the BIND 9 source, you should run
make depend. If you're using Emacs, you might find make tags helpful.
Several environment variables that can be set before running configure
will affect compilation:
will affect compilation. Significant ones are:
Variable Description
Variable Description
CC The C compiler to use. configure tries to figure out the
right one for supported systems.
C compiler flags. Defaults to include -g and/or -O2 as
@@ -302,26 +446,37 @@ STD_CDEFINES Defaults to empty string. For a list of possible settings,
LDFLAGS Linker flags. Defaults to empty string.
BUILD_CC Needed when cross-compiling: the native C compiler to use
when building for the target system.
BUILD_CFLAGS Optional, used for cross-compiling
BUILD_CPPFLAGS
BUILD_LDFLAGS
BUILD_LIBS
BUILD_CFLAGS CFLAGS for the target system during cross-compiling.
BUILD_CPPFLAGS CPPFLAGS for the target system during cross-compiling.
BUILD_LDFLAGS LDFLAGS for the target system during cross-compiling.
BUILD_LIBS LIBS for the target system during cross-compiling.
Additional environment variables affecting the build are listed at the end
of the configure help text, which can be obtained by running the command:
$ ./configure --help
On platforms where neither the C11 Atomic operations library nor custom
ISC atomic operations are available, updating the statistics counters is
not locked due to performance reasons and therefore the counters might be
inaccurate. Anybody building BIND 9 is strongly advised to use a modern
C11 compiler with C11 Atomic operations library support.
macOS
Building on macOS assumes that the "Command Tools for Xcode" is installed.
This can be downloaded from https://developer.apple.com/download/more/ or
if you have Xcode already installed you can run "xcode-select --install".
This will add /usr/include to the system and install the compiler and
other tools so that they can be easily found.
This can be downloaded from https://developer.apple.com/download/more/ or,
if you have Xcode already installed, you can run xcode-select --install.
(Note that an Apple ID may be required to access the download page.)
Dependencies
Portions of BIND that are written in Python, including dnssec-keymgr,
dnssec-coverage, dnssec-checkds, and some of the system tests, require the
'argparse' and 'ply' modules to be available. 'argparse' is a standard
module as of Python 2.7 and Python 3.2. 'ply' is available from https://
pypi.python.org/pypi/ply.
argparse, ply and distutils.core modules to be available. argparse is a
standard module as of Python 2.7 and Python 3.2. ply is available from
https://pypi.python.org/pypi/ply. distutils.core is required for
installation.
Compile-time options
@@ -343,16 +498,18 @@ line.
For the server to support DNSSEC, you need to build it with crypto
support. To use OpenSSL, you should have OpenSSL 1.0.2e or newer
installed. If the OpenSSL library is installed in a nonstandard location,
specify the prefix using "--with-openssl=<PREFIX>" on the configure
command line. To use a PKCS#11 hardware service module for cryptographic
specify the prefix using --with-openssl=<PREFIX> on the configure command
line. To use a PKCS#11 hardware service module for cryptographic
operations, specify the path to the PKCS#11 provider library using
"--with-pkcs11=<PREFIX>", and configure BIND with
"--enable-native-pkcs11".
--with-pkcs11=<PREFIX>, and configure BIND with "--enable-native-pkcs11".
To support the HTTP statistics channel, the server must be linked with at
least one of the following: libxml2 http://xmlsoft.org or json-c https://
github.com/json-c. If these are installed at a nonstandard location,
specify the prefix using --with-libxml2=/prefix or --with-libjson=/prefix.
least one of the following libraries: libxml2 http://xmlsoft.org or json-c
https://github.com/json-c/json-c. If these are installed at a nonstandard
location, then:
• for libxml2, specify the prefix using --with-libxml2=/prefix,
• for json-c, adjust PKG_CONFIG_PATH.
To support compression on the HTTP statistics channel, the server must be
linked against libzlib. If this is installed in a nonstandard location,
@@ -360,7 +517,7 @@ specify the prefix using --with-zlib=/prefix.
To support storing configuration data for runtime-added zones in an LMDB
database, the server must be linked with liblmdb. If this is installed in
a nonstandard location, specify the prefix using "with-lmdb=/prefix".
a nonstandard location, specify the prefix using with-lmdb=/prefix.
To support GeoIP location-based ACLs, the server must be linked with
libGeoIP. This is not turned on by default; BIND must be configured with
@@ -418,7 +575,7 @@ ifconfig.sh up as root.
Some tests require Perl and the Net::DNS and/or IO::Socket::INET6 modules,
and will be skipped if these are not available. Some tests require Python
and the 'dnspython' module and will be skipped if these are not available.
and the dnspython module and will be skipped if these are not available.
See bin/tests/system/README for further details.
Unit tests are implemented using the CMocka unit testing framework. To
@@ -429,7 +586,7 @@ tests can be run via make test or make unit.
Documentation
The BIND 9 Administrator Reference Manual is included with the source
distribution, in DocBook XML, HTML and PDF format, in the doc/arm
distribution, in DocBook XML, HTML, and PDF format, in the doc/arm
directory.
Some of the programs in the BIND 9 distribution have man pages in their
@@ -449,7 +606,7 @@ development BIND 9 is included in the file CHANGES, with the most recent
changes listed first. Change notes include tags indicating the category of
the change that was made; these categories are:
Category Description
Category Description
[func] New feature
[bug] General bug fix
[security] Fix for a significant security flaw
@@ -477,26 +634,46 @@ releases (i.e., those with version numbers ending in zero). Some new
functionality may be backported to older releases on a case-by-case basis.
All other change types may be applied to all currently-supported releases.
Bug report identifiers
Most notes in the CHANGES file include a reference to a bug report or
issue number. Prior to 2018, these were usually of the form [RT #NNN] and
referred to entries in the "bind9-bugs" RT database, which was not open to
the public. More recent entries use the form [GL #NNN] or, less often, [GL
!NNN], which, respectively, refer to issues or merge requests in the
GitLab database. Most of these are publicly readable, unless they include
information which is confidential or security sensitive.
To look up a GitLab issue by its number, use the URL https://
gitlab.isc.org/isc-projects/bind9/issues/NNN. To look up a merge request,
use https://gitlab.isc.org/isc-projects/bind9/merge_requests/NNN.
In rare cases, an issue or merge request number may be followed with the
letter "P". This indicates that the information is in the private ISC
GitLab instance, which is not visible to the public.
Acknowledgments
* The original development of BIND 9 was underwritten by the following
The original development of BIND 9 was underwritten by the following
organizations:
Sun Microsystems, Inc.
Hewlett Packard
Compaq Computer Corporation
IBM
Process Software Corporation
Silicon Graphics, Inc.
Network Associates, Inc.
U.S. Defense Information Systems Agency
USENIX Association
Stichting NLnet - NLnet Foundation
Nominum, Inc.
Sun Microsystems, Inc.
Hewlett Packard
Compaq Computer Corporation
IBM
Process Software Corporation
Silicon Graphics, Inc.
Network Associates, Inc.
U.S. Defense Information Systems Agency
USENIX Association
Stichting NLnet - NLnet Foundation
Nominum, Inc.
* This product includes software developed by the OpenSSL Project for
This product includes software developed by the OpenSSL Project for
use in the OpenSSL Toolkit. http://www.OpenSSL.org/
* This product includes cryptographic software written by Eric Young
• This product includes cryptographic software written by Eric Young
(eay@cryptsoft.com)
* This product includes software written by Tim Hudson
• This product includes software written by Tim Hudson
(tjh@cryptsoft.com)
+228 -47
View File
@@ -3,7 +3,7 @@
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- file, you can obtain one at https://mozilla.org/MPL/2.0/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
@@ -48,9 +48,9 @@ versions 4 and 8. Internet Systems Consortium
corporation dedicated to providing software and services in support of the
Internet infrastructure, developed BIND 9 and is responsible for its
ongoing maintenance and improvement. BIND is open source software
licenced under the terms of ISC License for all versions up to and
licensed under the terms of ISC License for all versions up to and
including BIND 9.10, and the Mozilla Public License version 2.0 for all
subsequent verisons.
subsequent versions.
For a summary of features introduced in past major releases of BIND,
see the file [HISTORY](HISTORY.md).
@@ -59,8 +59,8 @@ For a detailed list of changes made throughout the history of BIND 9, see
the file [CHANGES](CHANGES). See [below](#changes) for details on the
CHANGES file format.
For up-to-date release notes and errata, see
[http://www.isc.org/software/bind9/releasenotes](http://www.isc.org/software/bind9/releasenotes)
For up-to-date versions and release notes, see
[https://www.isc.org/download/](https://www.isc.org/download/).
### <a name="help"/> Reporting bugs and getting help
@@ -79,8 +79,15 @@ using `named-checkconf -px`.
If the bug you are reporting is a potential security issue, such as an
assertion failure or other crash in `named`, please do *NOT* use GitLab to
report it. Instead, please send mail to
[security-officer@isc.org](mailto:security-officer@isc.org).
report it. Instead, send mail to
[security-officer@isc.org](mailto:security-officer@isc.org) using our
OpenPGP key to secure your message. (Information about OpenPGP and links
to our key can be found at
[https://www.isc.org/pgpkey](https://www.isc.org/pgpkey).) Please do not
discuss the bug on any public mailing list.
For a general overview of ISC security policies, read the Knowledge Base
article at [https://kb.isc.org/docs/aa-00861](https://kb.isc.org/docs/aa-00861).
Professional support and training for BIND are available from
ISC at [https://www.isc.org/support](https://www.isc.org/support).
@@ -103,7 +110,7 @@ Information for BIND contributors can be found in the following files:
- BIND architecture and developer guide: [doc/dev/dev.md](doc/dev/dev.md)
Patches for BIND may be submitted as
[Merge Requests](https://gitlab.isc.org/isc-projects/bind9/merge_requests)
[merge requests](https://gitlab.isc.org/isc-projects/bind9/merge_requests)
in the [ISC GitLab server](https://gitlab.isc.org) at
at [https://gitlab.isc.org/isc-projects/bind9/merge_requests](https://gitlab.isc.org/isc-projects/bind9/merge_requests).
@@ -146,7 +153,7 @@ releases. New features include:
`fetches-per-server`, this value is not self-tuning.)
* New stats counters have been added to count queries spilled due to
these quotas.
* Added a new `dnssec-keymgr` key mainenance utility, which can generate or
* Added a new `dnssec-keymgr` key maintenance utility, which can generate or
update keys as needed to ensure that a zone's keys match a defined DNSSEC
policy.
* The experimental "SIT" feature in BIND 9.10 has been renamed "COOKIE" and
@@ -265,7 +272,9 @@ disclosed in CVE-2017-3145.
#### BIND 9.11.4
BIND 9.11.4 is a maintenance release, and addresses the security flaw
disclosed in CVE-2018-5738.
disclosed in CVE-2018-5738. It also introduces "root key sentinel" support,
enabling validating resolvers to indicate via a special query which trust
anchors are configured for the root zone.
#### BIND 9.11.5
@@ -280,18 +289,153 @@ feature:
#### BIND 9.11.6
BIND 9.11.6 is a maintenance release, and also addresses the security
flaws disclosed in CVE-2018-5744, CVE-2018-5745, and CVE-2019-6465.
flaws disclosed in CVE-2018-5743, CVE-2018-5745, CVE-2018-5744,
and CVE-2019-6465.
#### BIND 9.11.7
BIND 9.11.7 is a maintenance release, and also addresses the security
flaw disclosed in CVE-2018-5743.
#### BIND 9.11.8
BIND 9.11.8 is a maintenance release, and also addresses the security
flaw disclosed in CVE-2019-6471.
#### BIND 9.11.9
BIND 9.11.9 is a maintenance release, and also adds support for
the new MaxMind GeoIP2 geolocation API when built with
`configure --with-geoip2`.
#### BIND 9.11.10
BIND 9.11.10 is a maintenance release.
#### BIND 9.11.11
BIND 9.11.11 is a maintenance release.
#### BIND 9.11.12
BIND 9.11.12 is a maintenance release.
#### BIND 9.11.13
BIND 9.11.13 is a maintenance release, and also addresses the security
vulnerability disclosed in CVE-2019-6477.
#### BIND 9.11.14
BIND 9.11.14 is a maintenance release.
#### BIND 9.11.15
BIND 9.11.15 is a maintenance release.
#### BIND 9.11.16
BIND 9.11.16 is a maintenance release.
#### BIND 9.11.17
BIND 9.11.17 is a maintenance release.
#### BIND 9.11.18
BIND 9.11.18 is a maintenance release.
#### BIND 9.11.19
BIND 9.11.19 is a maintenance release, and also addresses the security
vulnerabilities disclosed in CVE-2020-8616 and CVE-2020-8617.
#### BIND 9.11.20
BIND 9.11.20 is a maintenance release, and also addresses the security
vulnerability disclosed in CVE-2020-8619.
#### BIND 9.11.21
BIND 9.11.21 is a maintenance release.
#### BIND 9.11.22
BIND 9.11.22 is a maintenance release, and also addresses the security
vulnerabilities disclosed in CVE-2020-8622, CVE-2020-8623, and
CVE-2020-8624.
#### BIND 9.11.23
BIND 9.11.23 is a maintenance release.
#### BIND 9.11.24
BIND 9.11.24 is a maintenance release.
#### BIND 9.11.25
BIND 9.11.25 is a maintenance release.
#### BIND 9.11.26
BIND 9.11.26 is a maintenance release.
#### BIND 9.11.27
BIND 9.11.27 is a maintenance release.
#### BIND 9.11.28
BIND 9.11.28 is a maintenance release, and also addresses the security
vulnerability disclosed in CVE-2020-8625.
#### BIND 9.11.29
BIND 9.11.29 is a maintenance release.
#### BIND 9.11.30
This release was withdrawn.
#### BIND 9.11.31
BIND 9.11.31 is a maintenance release, and also addresses the security
vulnerabilities disclosed in CVE-2021-25214, CVE-2021-25215, and
CVE-2021-25216.
#### BIND 9.11.32
BIND 9.11.32 is a maintenance release.
#### BIND 9.11.33
BIND 9.11.33 is a maintenance release.
#### BIND 9.11.34
BIND 9.11.34 is a maintenance release.
#### BIND 9.11.35
BIND 9.11.35 is a maintenance release.
#### BIND 9.11.36
BIND 9.11.36 is a maintenance release, and also addresses the security
vulnerability disclosed in CVE-2021-25219.
### <a name="build"/> Building BIND
BIND requires a UNIX or Linux system with an ANSI C compiler, basic POSIX
support, and a 64-bit integer type. Successful builds have been observed on
many versions of Linux and UNIX, including RedHat, Fedora, Debian, Ubuntu,
SuSE, Slackware, FreeBSD, NetBSD, OpenBSD, Mac OS X, Solaris, HP-UX, AIX,
SCO OpenServer, and OpenWRT.
Minimally, BIND requires a UNIX or Linux system with an ANSI C compiler,
basic POSIX support, and a 64-bit integer type. Successful builds have been
observed on many versions of Linux and UNIX, including RHEL/CentOS/Oracle Linux,
Fedora, Debian, Ubuntu, SLES, openSUSE, Slackware, Alpine, FreeBSD, NetBSD,
OpenBSD, macOS, Solaris, OpenIndiana, OmniOS CE, HP-UX, and OpenWRT.
BIND is also available for Windows XP, 2003, 2008, and higher. See
`win32utils/readme1st.txt` for details on building for Windows systems.
BIND is also available for Windows Server 2008 and higher. See
`win32utils/build.txt` for details on building for Windows
systems.
To build on a UNIX or Linux system, use:
@@ -302,7 +446,7 @@ If you're planning on making changes to the BIND 9 source, you should run
`make depend`. If you're using Emacs, you might find `make tags` helpful.
Several environment variables that can be set before running `configure` will
affect compilation:
affect compilation. Significant ones are:
|Variable|Description |
|--------------------|-----------------------------------------------|
@@ -312,26 +456,41 @@ affect compilation:
|`STD_CDEFINES`|Any additional preprocessor symbols you want defined. Defaults to empty string. For a list of possible settings, see the file [OPTIONS](OPTIONS.md).|
|`LDFLAGS`|Linker flags. Defaults to empty string.|
|`BUILD_CC`|Needed when cross-compiling: the native C compiler to use when building for the target system.|
|`BUILD_CFLAGS`|Optional, used for cross-compiling|
|`BUILD_CPPFLAGS`||
|`BUILD_LDFLAGS`||
|`BUILD_LIBS`||
|`BUILD_CFLAGS`|`CFLAGS` for the target system during cross-compiling.|
|`BUILD_CPPFLAGS`|`CPPFLAGS` for the target system during cross-compiling.|
|`BUILD_LDFLAGS`|`LDFLAGS` for the target system during cross-compiling.|
|`BUILD_LIBS`|`LIBS` for the target system during cross-compiling.|
Additional environment variables affecting the build are listed at the
end of the `configure` help text, which can be obtained by running the
command:
$ ./configure --help
On platforms where neither the C11 Atomic operations library nor custom ISC
atomic operations are available, updating the statistics counters is not
locked due to performance reasons and therefore the counters might be
inaccurate. Anybody building BIND 9 is strongly advised to use a modern
C11 compiler with C11 Atomic operations library support.
#### <a name="macos"> macOS
Building on macOS assumes that the "Command Tools for Xcode" is installed.
This can be downloaded from https://developer.apple.com/download/more/
or if you have Xcode already installed you can run "xcode-select --install".
This will add /usr/include to the system and install the compiler and other
tools so that they can be easily found.
This can be downloaded from
[https://developer.apple.com/download/more/](https://developer.apple.com/download/more/)
or, if you have Xcode already installed, you can run `xcode-select
--install`. (Note that an Apple ID may be required to access the download
page.)
### <a name="dependencies"/> Dependencies
Portions of BIND that are written in Python, including
`dnssec-keymgr`, `dnssec-coverage`, `dnssec-checkds`, and some of the
system tests, require the 'argparse' and 'ply' modules to be available.
'argparse' is a standard module as of Python 2.7 and Python 3.2.
'ply' is available from [https://pypi.python.org/pypi/ply](https://pypi.python.org/pypi/ply).
system tests, require the `argparse`, `ply` and `distutils.core` modules
to be available.
`argparse` is a standard module as of Python 2.7 and Python 3.2.
`ply` is available from [https://pypi.python.org/pypi/ply](https://pypi.python.org/pypi/ply).
`distutils.core` is required for installation.
#### <a name="opts"/> Compile-time options
@@ -353,34 +512,36 @@ command line.
For the server to support DNSSEC, you need to build it with crypto support.
To use OpenSSL, you should have OpenSSL 1.0.2e or newer installed. If the
OpenSSL library is installed in a nonstandard location, specify the prefix
using "--with-openssl=&lt;PREFIX&gt;" on the configure command line. To use a
using `--with-openssl=<PREFIX>` on the configure command line. To use a
PKCS#11 hardware service module for cryptographic operations, specify the
path to the PKCS#11 provider library using "--with-pkcs11=&lt;PREFIX&gt;", and
path to the PKCS#11 provider library using `--with-pkcs11=<PREFIX>`, and
configure BIND with "--enable-native-pkcs11".
To support the HTTP statistics channel, the server must be linked with at
least one of the following: libxml2
[http://xmlsoft.org](http://xmlsoft.org) or json-c
[https://github.com/json-c](https://github.com/json-c). If these are
installed at a nonstandard location, specify the prefix using
`--with-libxml2=/prefix` or `--with-libjson=/prefix`.
least one of the following libraries: `libxml2`
[http://xmlsoft.org](http://xmlsoft.org) or `json-c`
[https://github.com/json-c/json-c](https://github.com/json-c/json-c).
If these are installed at a nonstandard location, then:
* for `libxml2`, specify the prefix using `--with-libxml2=/prefix`,
* for `json-c`, adjust `PKG_CONFIG_PATH`.
To support compression on the HTTP statistics channel, the server must be
linked against libzlib. If this is installed in a nonstandard location,
linked against `libzlib`. If this is installed in a nonstandard location,
specify the prefix using `--with-zlib=/prefix`.
To support storing configuration data for runtime-added zones in an LMDB
database, the server must be linked with liblmdb. If this is installed in a
nonstandard location, specify the prefix using "with-lmdb=/prefix".
nonstandard location, specify the prefix using `with-lmdb=/prefix`.
To support GeoIP location-based ACLs, the server must be linked with
libGeoIP. This is not turned on by default; BIND must be configured with
"--with-geoip". If the library is installed in a nonstandard location, use
specify the prefix using "--with-geoip=/prefix".
For DNSTAP packet logging, you must have installed libfstrm
For DNSTAP packet logging, you must have installed `libfstrm`
[https://github.com/farsightsec/fstrm](https://github.com/farsightsec/fstrm)
and libprotobuf-c
and `libprotobuf-c`
[https://developers.google.com/protocol-buffers](https://developers.google.com/protocol-buffers),
and BIND must be configured with `--enable-dnstap`.
@@ -428,20 +589,21 @@ multiple servers to run locally and communicate with one another). These
IP addresses can be configured by running the command
`bin/tests/system/ifconfig.sh up` as root.
Some tests require Perl and the Net::DNS and/or IO::Socket::INET6 modules,
Some tests require Perl and the `Net::DNS` and/or `IO::Socket::INET6` modules,
and will be skipped if these are not available. Some tests require Python
and the 'dnspython' module and will be skipped if these are not available.
and the `dnspython` module and will be skipped if these are not available.
See bin/tests/system/README for further details.
Unit tests are implemented using the CMocka unit testing framework.
Unit tests are implemented using the [CMocka unit testing framework](https://cmocka.org/).
To build them, use `configure --with-cmocka`. Execution of tests is done
by the Kyua test execution engine; if the `kyua` command is available,
then unit tests can be run via `make test` or `make unit`.
by the [Kyua test execution engine](https://github.com/jmmv/kyua); if the
`kyua` command is available, then unit tests can be run via `make test`
or `make unit`.
### <a name="doc"/> Documentation
The *BIND 9 Administrator Reference Manual* is included with the source
distribution, in DocBook XML, HTML and PDF format, in the `doc/arm`
distribution, in DocBook XML, HTML, and PDF format, in the `doc/arm`
directory.
Some of the programs in the BIND 9 distribution have man pages in their
@@ -484,6 +646,25 @@ releases (i.e., those with version numbers ending in zero). Some new
functionality may be backported to older releases on a case-by-case basis.
All other change types may be applied to all currently-supported releases.
#### Bug report identifiers
Most notes in the CHANGES file include a reference to a bug report or
issue number. Prior to 2018, these were usually of the form `[RT #NNN]`
and referred to entries in the "bind9-bugs" RT database, which was not open
to the public. More recent entries use the form `[GL #NNN]` or, less often,
`[GL !NNN]`, which, respectively, refer to issues or merge requests in the
GitLab database. Most of these are publicly readable, unless they include
information which is confidential or security sensitive.
To look up a GitLab issue by its number, use the URL
[https://gitlab.isc.org/isc-projects/bind9/issues/NNN](https://gitlab.isc.org/isc-projects/bind9/issues).
To look up a merge request, use
[https://gitlab.isc.org/isc-projects/bind9/merge_requests/NNN](https://gitlab.isc.org/isc-projects/bind9/merge_requests).
In rare cases, an issue or merge request number may be followed with the
letter "P". This indicates that the information is in the private ISC
GitLab instance, which is not visible to the public.
### <a name="ack"/> Acknowledgments
* The original development of BIND 9 was underwritten by the
+1 -1
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
Vendored
+4 -2
View File
@@ -1,6 +1,6 @@
# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# Copyright (C) 1996-2020 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -288,6 +288,8 @@ AS_VAR_COPY([$1], [pkg_cv_][$1])
AS_VAR_IF([$1], [""], [$5], [$4])dnl
])dnl PKG_CHECK_VAR
m4_include([libtool.m4/ax_restore_flags.m4])
m4_include([libtool.m4/ax_save_flags.m4])
m4_include([libtool.m4/libtool.m4])
m4_include([libtool.m4/ltoptions.m4])
m4_include([libtool.m4/ltsugar.m4])
+1 -1
View File
@@ -4,7 +4,7 @@
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
+1 -1
View File
@@ -2,7 +2,7 @@
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
+2 -4
View File
@@ -2,13 +2,11 @@
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
# $Id: Makefile.in,v 1.36 2009/12/05 23:31:40 each Exp $
srcdir = @srcdir@
VPATH = @srcdir@
top_srcdir = @top_srcdir@
@@ -23,7 +21,7 @@ CINCLUDES = ${BIND9_INCLUDES} ${DNS_INCLUDES} ${ISCCFG_INCLUDES} \
CDEFINES = @CRYPTO@ -DNAMED_CONFFILE=\"${sysconfdir}/named.conf\"
CWARNINGS =
DNSLIBS = ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
DNSLIBS = ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
ISCLIBS = ../../lib/isc/libisc.@A@
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@
+2 -2
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
@@ -747,7 +747,7 @@ dump_zone(const char *zonename, dns_zone_t *zone, const char *filename,
FILE *output = stdout;
const char *flags;
flags = (fileformat == dns_masterformat_text) ? "w+" : "wb+";
flags = (fileformat == dns_masterformat_text) ? "w" : "wb";
if (debug) {
if (filename != NULL && strcmp(filename, "-") != 0)
+1 -1
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
+3 -3
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2000-2002, 2004, 2005, 2007, 2009, 2014-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2000-2002, 2004, 2005, 2007, 2009, 2014-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
.\"
.\" This Source Code Form is subject to the terms of the Mozilla Public
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -9,7 +9,7 @@
'\" t
.\" Title: named-checkconf
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 2014-01-10
.\" Manual: BIND9
.\" Source: ISC
@@ -131,5 +131,5 @@ BIND 9 Administrator Reference Manual\&.
\fBInternet Systems Consortium, Inc\&.\fR
.SH "COPYRIGHT"
.br
Copyright \(co 2000-2002, 2004, 2005, 2007, 2009, 2014-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2000-2002, 2004, 2005, 2007, 2009, 2014-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
.br
+9 -4
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
@@ -490,10 +490,15 @@ load_zones_fromconfig(const cfg_obj_t *config, isc_mem_t *mctx) {
continue;
classobj = cfg_tuple_get(vconfig, "class");
CHECK(config_getclass(classobj, dns_rdataclass_in,
&viewclass));
if (dns_rdataclass_ismeta(viewclass))
tresult = config_getclass(classobj, dns_rdataclass_in,
&viewclass);
if (tresult != ISC_R_SUCCESS) {
CHECK(tresult);
}
if (dns_rdataclass_ismeta(viewclass)) {
CHECK(ISC_R_FAILURE);
}
dns_rdataclass_format(viewclass, buf, sizeof(buf));
vname = cfg_obj_asstring(cfg_tuple_get(vconfig, "name"));
+4 -2
View File
@@ -5,14 +5,14 @@
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- file, you can obtain one at https://mozilla.org/MPL/2.0/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
-->
<!-- Converted by db4-upgrade version 1.0 -->
<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.named-checkconf">
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="man.named-checkconf">
<info>
<date>2014-01-10</date>
</info>
@@ -41,6 +41,8 @@
<year>2016</year>
<year>2018</year>
<year>2019</year>
<year>2020</year>
<year>2021</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
+38 -84
View File
@@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
- Copyright (C) 2000-2002, 2004, 2005, 2007, 2009, 2014-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2002, 2004, 2005, 2007, 2009, 2014-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -10,49 +10,30 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>named-checkconf</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry">
<a name="man.named-checkconf"></a><div class="titlepage"></div>
<div class="refnamediv">
<div class="refnamediv">
<h2>Name</h2>
<p>
<span class="application">named-checkconf</span>
&#8212; named configuration file syntax checking tool
</p>
<p><span class="application">named-checkconf</span> &#8212; named configuration file syntax checking tool</p>
</div>
<div class="refsynopsisdiv">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="cmdsynopsis"><p>
<code class="command">named-checkconf</code>
[<code class="option">-hjvz</code>]
[<code class="option">-p</code>
<div class="cmdsynopsis"><p><code class="command">named-checkconf</code> [<code class="option">-hjvz</code>] [<code class="option">-p</code>
[<code class="option">-x</code>
]]
[<code class="option">-t <em class="replaceable"><code>directory</code></em></code>]
{filename}
</p></div>
</div>
<div class="refsection">
]] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] {filename}</p></div>
</div>
<div class="refsection">
<a name="id-1.7"></a><h2>DESCRIPTION</h2>
<p><span class="command"><strong>named-checkconf</strong></span>
<p><span class="command"><strong>named-checkconf</strong></span>
checks the syntax, but not the semantics, of a
<span class="command"><strong>named</strong></span> configuration file. The file is parsed
and checked for syntax errors, along with all files included by it.
If no file is specified, <code class="filename">/etc/named.conf</code> is read
by default.
</p>
<p>
<p>
Note: files that <span class="command"><strong>named</strong></span> reads in separate
parser contexts, such as <code class="filename">rndc.key</code> and
<code class="filename">bind.keys</code>, are not automatically read
@@ -62,50 +43,37 @@
successful. <span class="command"><strong>named-checkconf</strong></span> can be run
on these files explicitly, however.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.8"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl class="variablelist">
<div class="variablelist"><dl class="variablelist">
<dt><span class="term">-h</span></dt>
<dd>
<p>
<dd><p>
Print the usage summary and exit.
</p>
</dd>
</p></dd>
<dt><span class="term">-j</span></dt>
<dd>
<p>
<dd><p>
When loading a zonefile read the journal if it exists.
</p>
</dd>
</p></dd>
<dt><span class="term">-p</span></dt>
<dd>
<p>
<dd><p>
Print out the <code class="filename">named.conf</code> and included files
in canonical form if no errors were detected.
See also the <code class="option">-x</code> option.
</p>
</dd>
</p></dd>
<dt><span class="term">-t <em class="replaceable"><code>directory</code></em></span></dt>
<dd>
<p>
<dd><p>
Chroot to <code class="filename">directory</code> so that include
directives in the configuration file are processed as if
run by a similarly chrooted <span class="command"><strong>named</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">-v</span></dt>
<dd>
<p>
<dd><p>
Print the version of the <span class="command"><strong>named-checkconf</strong></span>
program and exit.
</p>
</dd>
</p></dd>
<dt><span class="term">-x</span></dt>
<dd>
<p>
<dd><p>
When printing the configuration files in canonical
form, obscure shared secrets by replacing them with
strings of question marks ('?'). This allows the
@@ -113,46 +81,32 @@
files to be shared &#8212; for example, when submitting
bug reports &#8212; without compromising private data.
This option cannot be used without <code class="option">-p</code>.
</p>
</dd>
</p></dd>
<dt><span class="term">-z</span></dt>
<dd>
<p>
<dd><p>
Perform a test load of all master zones found in
<code class="filename">named.conf</code>.
</p>
</dd>
</p></dd>
<dt><span class="term">filename</span></dt>
<dd>
<p>
<dd><p>
The name of the configuration file to be checked. If not
specified, it defaults to <code class="filename">/etc/named.conf</code>.
</p>
</dd>
</p></dd>
</dl></div>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.9"></a><h2>RETURN VALUES</h2>
<p><span class="command"><strong>named-checkconf</strong></span>
<p><span class="command"><strong>named-checkconf</strong></span>
returns an exit status of 1 if
errors were detected and 0 otherwise.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.10"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry">
<span class="refentrytitle">named</span>(8)
</span>,
<span class="citerefentry">
<span class="refentrytitle">named-checkzone</span>(8)
</span>,
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">named-checkzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>.
</p>
</div>
</div>
</div></body>
</html>
+3 -3
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2000-2002, 2004-2007, 2009-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2000-2002, 2004-2007, 2009-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
.\"
.\" This Source Code Form is subject to the terms of the Mozilla Public
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -9,7 +9,7 @@
'\" t
.\" Title: named-checkzone
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 2014-02-19
.\" Manual: BIND9
.\" Source: ISC
@@ -325,5 +325,5 @@ BIND 9 Administrator Reference Manual\&.
\fBInternet Systems Consortium, Inc\&.\fR
.SH "COPYRIGHT"
.br
Copyright \(co 2000-2002, 2004-2007, 2009-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2000-2002, 2004-2007, 2009-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
.br
+5 -5
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
@@ -75,9 +75,9 @@ usage(void) {
fprintf(stderr,
"usage: %s [-djqvD] [-c class] "
"[-f inputformat] [-F outputformat] [-J filename] "
"[-t directory] [-w directory] [-k (ignore|warn|fail)] "
"[-n (ignore|warn|fail)] [-m (ignore|warn|fail)] "
"[-r (ignore|warn|fail)] "
"[-s (full|relative)] [-t directory] [-w directory] "
"[-k (ignore|warn|fail)] [-m (ignore|warn|fail)] "
"[-n (ignore|warn|fail)] [-r (ignore|warn|fail)] "
"[-i (full|full-sibling|local|local-sibling|none)] "
"[-M (ignore|warn|fail)] [-S (ignore|warn|fail)] "
"[-W (ignore|warn)] "
@@ -502,7 +502,7 @@ main(int argc, char **argv) {
dumpzone = 1;
/*
* If we are outputing to stdout then send the informational
* If we are printing to stdout then send the informational
* output to stderr.
*/
if (dumpzone &&
+4 -2
View File
@@ -3,14 +3,14 @@
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- file, you can obtain one at https://mozilla.org/MPL/2.0/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
-->
<!-- Converted by db4-upgrade version 1.0 -->
<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.named-checkzone">
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="man.named-checkzone">
<info>
<date>2014-02-19</date>
</info>
@@ -44,6 +44,8 @@
<year>2016</year>
<year>2018</year>
<year>2019</year>
<year>2020</year>
<year>2021</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
+82 -215
View File
@@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
- Copyright (C) 2000-2002, 2004-2007, 2009-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2002, 2004-2007, 2009-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -10,98 +10,28 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>named-checkzone</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry">
<a name="man.named-checkzone"></a><div class="titlepage"></div>
<div class="refnamediv">
<div class="refnamediv">
<h2>Name</h2>
<p>
<span class="application">named-checkzone</span>,
<span class="application">named-compilezone</span>
&#8212; zone file validity checking or converting tool
</p>
<p><span class="application">named-checkzone</span>, <span class="application">named-compilezone</span> &#8212; zone file validity checking or converting tool</p>
</div>
<div class="refsynopsisdiv">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="cmdsynopsis"><p>
<code class="command">named-checkzone</code>
[<code class="option">-d</code>]
[<code class="option">-h</code>]
[<code class="option">-j</code>]
[<code class="option">-q</code>]
[<code class="option">-v</code>]
[<code class="option">-c <em class="replaceable"><code>class</code></em></code>]
[<code class="option">-f <em class="replaceable"><code>format</code></em></code>]
[<code class="option">-F <em class="replaceable"><code>format</code></em></code>]
[<code class="option">-J <em class="replaceable"><code>filename</code></em></code>]
[<code class="option">-i <em class="replaceable"><code>mode</code></em></code>]
[<code class="option">-k <em class="replaceable"><code>mode</code></em></code>]
[<code class="option">-m <em class="replaceable"><code>mode</code></em></code>]
[<code class="option">-M <em class="replaceable"><code>mode</code></em></code>]
[<code class="option">-n <em class="replaceable"><code>mode</code></em></code>]
[<code class="option">-l <em class="replaceable"><code>ttl</code></em></code>]
[<code class="option">-L <em class="replaceable"><code>serial</code></em></code>]
[<code class="option">-o <em class="replaceable"><code>filename</code></em></code>]
[<code class="option">-r <em class="replaceable"><code>mode</code></em></code>]
[<code class="option">-s <em class="replaceable"><code>style</code></em></code>]
[<code class="option">-S <em class="replaceable"><code>mode</code></em></code>]
[<code class="option">-t <em class="replaceable"><code>directory</code></em></code>]
[<code class="option">-T <em class="replaceable"><code>mode</code></em></code>]
[<code class="option">-w <em class="replaceable"><code>directory</code></em></code>]
[<code class="option">-D</code>]
[<code class="option">-W <em class="replaceable"><code>mode</code></em></code>]
{zonename}
{filename}
</p></div>
<div class="cmdsynopsis"><p>
<code class="command">named-compilezone</code>
[<code class="option">-d</code>]
[<code class="option">-j</code>]
[<code class="option">-q</code>]
[<code class="option">-v</code>]
[<code class="option">-c <em class="replaceable"><code>class</code></em></code>]
[<code class="option">-C <em class="replaceable"><code>mode</code></em></code>]
[<code class="option">-f <em class="replaceable"><code>format</code></em></code>]
[<code class="option">-F <em class="replaceable"><code>format</code></em></code>]
[<code class="option">-J <em class="replaceable"><code>filename</code></em></code>]
[<code class="option">-i <em class="replaceable"><code>mode</code></em></code>]
[<code class="option">-k <em class="replaceable"><code>mode</code></em></code>]
[<code class="option">-m <em class="replaceable"><code>mode</code></em></code>]
[<code class="option">-n <em class="replaceable"><code>mode</code></em></code>]
[<code class="option">-l <em class="replaceable"><code>ttl</code></em></code>]
[<code class="option">-L <em class="replaceable"><code>serial</code></em></code>]
[<code class="option">-r <em class="replaceable"><code>mode</code></em></code>]
[<code class="option">-s <em class="replaceable"><code>style</code></em></code>]
[<code class="option">-t <em class="replaceable"><code>directory</code></em></code>]
[<code class="option">-T <em class="replaceable"><code>mode</code></em></code>]
[<code class="option">-w <em class="replaceable"><code>directory</code></em></code>]
[<code class="option">-D</code>]
[<code class="option">-W <em class="replaceable"><code>mode</code></em></code>]
{<code class="option">-o <em class="replaceable"><code>filename</code></em></code>}
{zonename}
{filename}
</p></div>
</div>
<div class="refsection">
<div class="cmdsynopsis"><p><code class="command">named-checkzone</code> [<code class="option">-d</code>] [<code class="option">-h</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-J <em class="replaceable"><code>filename</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-M <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-l <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-L <em class="replaceable"><code>serial</code></em></code>] [<code class="option">-o <em class="replaceable"><code>filename</code></em></code>] [<code class="option">-r <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-S <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-T <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {zonename} {filename}</p></div>
<div class="cmdsynopsis"><p><code class="command">named-compilezone</code> [<code class="option">-d</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-C <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-J <em class="replaceable"><code>filename</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-l <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-L <em class="replaceable"><code>serial</code></em></code>] [<code class="option">-r <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-T <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {<code class="option">-o <em class="replaceable"><code>filename</code></em></code>} {zonename} {filename}</p></div>
</div>
<div class="refsection">
<a name="id-1.7"></a><h2>DESCRIPTION</h2>
<p><span class="command"><strong>named-checkzone</strong></span>
<p><span class="command"><strong>named-checkzone</strong></span>
checks the syntax and integrity of a zone file. It performs the
same checks as <span class="command"><strong>named</strong></span> does when loading a
zone. This makes <span class="command"><strong>named-checkzone</strong></span> useful for
checking zone files before configuring them into a name server.
</p>
<p>
<p>
<span class="command"><strong>named-compilezone</strong></span> is similar to
<span class="command"><strong>named-checkzone</strong></span>, but it always dumps the
zone contents to a specified file in a specified format.
@@ -112,62 +42,45 @@
least be as strict as those specified in the
<span class="command"><strong>named</strong></span> configuration file.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.8"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl class="variablelist">
<div class="variablelist"><dl class="variablelist">
<dt><span class="term">-d</span></dt>
<dd>
<p>
<dd><p>
Enable debugging.
</p>
</dd>
</p></dd>
<dt><span class="term">-h</span></dt>
<dd>
<p>
<dd><p>
Print the usage summary and exit.
</p>
</dd>
</p></dd>
<dt><span class="term">-q</span></dt>
<dd>
<p>
<dd><p>
Quiet mode - exit code only.
</p>
</dd>
</p></dd>
<dt><span class="term">-v</span></dt>
<dd>
<p>
<dd><p>
Print the version of the <span class="command"><strong>named-checkzone</strong></span>
program and exit.
</p>
</dd>
</p></dd>
<dt><span class="term">-j</span></dt>
<dd>
<p>
<dd><p>
When loading a zone file, read the journal if it exists.
The journal file name is assumed to be the zone file name
appended with the string <code class="filename">.jnl</code>.
</p>
</dd>
</p></dd>
<dt><span class="term">-J <em class="replaceable"><code>filename</code></em></span></dt>
<dd>
<p>
<dd><p>
When loading the zone file read the journal from the given
file, if it exists. (Implies -j.)
</p>
</dd>
</p></dd>
<dt><span class="term">-c <em class="replaceable"><code>class</code></em></span></dt>
<dd>
<p>
<dd><p>
Specify the class of the zone. If not specified, "IN" is assumed.
</p>
</dd>
</p></dd>
<dt><span class="term">-i <em class="replaceable"><code>mode</code></em></span></dt>
<dd>
<p>
<p>
Perform post-load zone integrity checks. Possible modes are
<span class="command"><strong>"full"</strong></span> (default),
<span class="command"><strong>"full-sibling"</strong></span>,
@@ -175,19 +88,19 @@
<span class="command"><strong>"local-sibling"</strong></span> and
<span class="command"><strong>"none"</strong></span>.
</p>
<p>
<p>
Mode <span class="command"><strong>"full"</strong></span> checks that MX records
refer to A or AAAA record (both in-zone and out-of-zone
hostnames). Mode <span class="command"><strong>"local"</strong></span> only
checks MX records which refer to in-zone hostnames.
</p>
<p>
<p>
Mode <span class="command"><strong>"full"</strong></span> checks that SRV records
refer to A or AAAA record (both in-zone and out-of-zone
hostnames). Mode <span class="command"><strong>"local"</strong></span> only
checks SRV records which refer to in-zone hostnames.
</p>
<p>
<p>
Mode <span class="command"><strong>"full"</strong></span> checks that delegation NS
records refer to A or AAAA record (both in-zone and out-of-zone
hostnames). It also checks that glue address records
@@ -196,33 +109,31 @@
refer to in-zone hostnames or that some required glue exists,
that is when the nameserver is in a child zone.
</p>
<p>
<p>
Mode <span class="command"><strong>"full-sibling"</strong></span> and
<span class="command"><strong>"local-sibling"</strong></span> disable sibling glue
checks but are otherwise the same as <span class="command"><strong>"full"</strong></span>
and <span class="command"><strong>"local"</strong></span> respectively.
</p>
<p>
<p>
Mode <span class="command"><strong>"none"</strong></span> disables the checks.
</p>
</dd>
</dd>
<dt><span class="term">-f <em class="replaceable"><code>format</code></em></span></dt>
<dd>
<p>
<dd><p>
Specify the format of the zone file.
Possible formats are <span class="command"><strong>"text"</strong></span> (default),
<span class="command"><strong>"raw"</strong></span>, and <span class="command"><strong>"map"</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">-F <em class="replaceable"><code>format</code></em></span></dt>
<dd>
<p>
<p>
Specify the format of the output file specified.
For <span class="command"><strong>named-checkzone</strong></span>,
this does not cause any effects unless it dumps the zone
contents.
</p>
<p>
<p>
Possible formats are <span class="command"><strong>"text"</strong></span> (default),
which is the standard textual representation of the zone,
and <span class="command"><strong>"map"</strong></span>, <span class="command"><strong>"raw"</strong></span>,
@@ -233,10 +144,9 @@
any version of <span class="command"><strong>named</strong></span>; if N is 1, the file
can be read by release 9.9.0 or higher; the default is 1.
</p>
</dd>
</dd>
<dt><span class="term">-k <em class="replaceable"><code>mode</code></em></span></dt>
<dd>
<p>
<dd><p>
Perform <span class="command"><strong>"check-names"</strong></span> checks with the
specified failure mode.
Possible modes are <span class="command"><strong>"fail"</strong></span>
@@ -244,48 +154,38 @@
<span class="command"><strong>"warn"</strong></span>
(default for <span class="command"><strong>named-checkzone</strong></span>) and
<span class="command"><strong>"ignore"</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">-l <em class="replaceable"><code>ttl</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets a maximum permissible TTL for the input file.
Any record with a TTL higher than this value will cause
the zone to be rejected. This is similar to using the
<span class="command"><strong>max-zone-ttl</strong></span> option in
<code class="filename">named.conf</code>.
</p>
</dd>
</p></dd>
<dt><span class="term">-L <em class="replaceable"><code>serial</code></em></span></dt>
<dd>
<p>
<dd><p>
When compiling a zone to "raw" or "map" format, set the
"source serial" value in the header to the specified serial
number. (This is expected to be used primarily for testing
purposes.)
</p>
</dd>
</p></dd>
<dt><span class="term">-m <em class="replaceable"><code>mode</code></em></span></dt>
<dd>
<p>
<dd><p>
Specify whether MX records should be checked to see if they
are addresses. Possible modes are <span class="command"><strong>"fail"</strong></span>,
<span class="command"><strong>"warn"</strong></span> (default) and
<span class="command"><strong>"ignore"</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">-M <em class="replaceable"><code>mode</code></em></span></dt>
<dd>
<p>
<dd><p>
Check if a MX record refers to a CNAME.
Possible modes are <span class="command"><strong>"fail"</strong></span>,
<span class="command"><strong>"warn"</strong></span> (default) and
<span class="command"><strong>"ignore"</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">-n <em class="replaceable"><code>mode</code></em></span></dt>
<dd>
<p>
<dd><p>
Specify whether NS records should be checked to see if they
are addresses.
Possible modes are <span class="command"><strong>"fail"</strong></span>
@@ -293,30 +193,24 @@
<span class="command"><strong>"warn"</strong></span>
(default for <span class="command"><strong>named-checkzone</strong></span>) and
<span class="command"><strong>"ignore"</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">-o <em class="replaceable"><code>filename</code></em></span></dt>
<dd>
<p>
<dd><p>
Write zone output to <code class="filename">filename</code>.
If <code class="filename">filename</code> is <code class="filename">-</code> then
write to standard out.
This is mandatory for <span class="command"><strong>named-compilezone</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">-r <em class="replaceable"><code>mode</code></em></span></dt>
<dd>
<p>
<dd><p>
Check for records that are treated as different by DNSSEC but
are semantically equal in plain DNS.
Possible modes are <span class="command"><strong>"fail"</strong></span>,
<span class="command"><strong>"warn"</strong></span> (default) and
<span class="command"><strong>"ignore"</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">-s <em class="replaceable"><code>style</code></em></span></dt>
<dd>
<p>
<dd><p>
Specify the style of the dumped zone file.
Possible styles are <span class="command"><strong>"full"</strong></span> (default)
and <span class="command"><strong>"relative"</strong></span>.
@@ -329,101 +223,74 @@
contents.
It also does not have any meaning if the output format
is not text.
</p>
</dd>
</p></dd>
<dt><span class="term">-S <em class="replaceable"><code>mode</code></em></span></dt>
<dd>
<p>
<dd><p>
Check if a SRV record refers to a CNAME.
Possible modes are <span class="command"><strong>"fail"</strong></span>,
<span class="command"><strong>"warn"</strong></span> (default) and
<span class="command"><strong>"ignore"</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">-t <em class="replaceable"><code>directory</code></em></span></dt>
<dd>
<p>
<dd><p>
Chroot to <code class="filename">directory</code> so that
include
directives in the configuration file are processed as if
run by a similarly chrooted <span class="command"><strong>named</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">-T <em class="replaceable"><code>mode</code></em></span></dt>
<dd>
<p>
<dd><p>
Check if Sender Policy Framework (SPF) records exist
and issues a warning if an SPF-formatted TXT record is
not also present. Possible modes are <span class="command"><strong>"warn"</strong></span>
(default), <span class="command"><strong>"ignore"</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">-w <em class="replaceable"><code>directory</code></em></span></dt>
<dd>
<p>
<dd><p>
chdir to <code class="filename">directory</code> so that
relative
filenames in master file $INCLUDE directives work. This
is similar to the directory clause in
<code class="filename">named.conf</code>.
</p>
</dd>
</p></dd>
<dt><span class="term">-D</span></dt>
<dd>
<p>
<dd><p>
Dump zone file in canonical format.
This is always enabled for <span class="command"><strong>named-compilezone</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">-W <em class="replaceable"><code>mode</code></em></span></dt>
<dd>
<p>
<dd><p>
Specify whether to check for non-terminal wildcards.
Non-terminal wildcards are almost always the result of a
failure to understand the wildcard matching algorithm (RFC 1034).
Possible modes are <span class="command"><strong>"warn"</strong></span> (default)
and
<span class="command"><strong>"ignore"</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">zonename</span></dt>
<dd>
<p>
<dd><p>
The domain name of the zone being checked.
</p>
</dd>
</p></dd>
<dt><span class="term">filename</span></dt>
<dd>
<p>
<dd><p>
The name of the zone file.
</p>
</dd>
</p></dd>
</dl></div>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.9"></a><h2>RETURN VALUES</h2>
<p><span class="command"><strong>named-checkzone</strong></span>
<p><span class="command"><strong>named-checkzone</strong></span>
returns an exit status of 1 if
errors were detected and 0 otherwise.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.10"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry">
<span class="refentrytitle">named</span>(8)
</span>,
<span class="citerefentry">
<span class="refentrytitle">named-checkconf</span>(8)
</span>,
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">named-checkconf</span>(8)</span>,
<em class="citetitle">RFC 1035</em>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>.
</p>
</div>
</div>
</div></body>
</html>
+10 -3
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|@PLATFORM@">
<Configuration>Debug</Configuration>
@@ -14,18 +14,21 @@
<ProjectGuid>{03A96113-CB14-43AA-AEB2-48950E3915C5}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>checkconf</RootNamespace>
@WINDOWS_TARGET_PLATFORM_VERSION@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -41,19 +44,22 @@
<LinkIncremental>true</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
<TargetName>named-$(ProjectName)</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
<TargetName>named-$(ProjectName)</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>false</TreatWarningAsError>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;@CRYPTO@_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -75,7 +81,8 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level1</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
+10 -3
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|@PLATFORM@">
<Configuration>Debug</Configuration>
@@ -17,18 +17,21 @@
<ProjectGuid>{2C1F7096-C5B5-48D4-846F-A7ACA454335D}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>checktool</RootNamespace>
@WINDOWS_TARGET_PLATFORM_VERSION@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -45,18 +48,21 @@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<OutDir>.\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>false</TreatWarningAsError>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;@CRYPTO@_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -74,7 +80,8 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level1</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
+16 -9
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|@PLATFORM@">
<Configuration>Debug</Configuration>
@@ -14,18 +14,21 @@
<ProjectGuid>{66028555-7DD5-4016-B601-9EF9A1EE8BFA}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>checkzone</RootNamespace>
@WINDOWS_TARGET_PLATFORM_VERSION@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -41,19 +44,22 @@
<LinkIncremental>true</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
<TargetName>named-$(ProjectName)</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
<TargetName>named-$(ProjectName)</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>false</TreatWarningAsError>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;@CRYPTO@_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -62,15 +68,15 @@
<ObjectFileName>.\$(Configuration)\</ObjectFileName>
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
<BrowseInformation>true</BrowseInformation>
<AdditionalIncludeDirectories>.\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@..\..\..\lib\isc\win32;..\..\..\lib\isc\win32\include;..\..\..\lib\isc\include;..\..\..\lib\dns\include;..\..\..\lib\bind9\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>.\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@..\..\..\lib\isc\win32;..\..\..\lib\isc\win32\include;..\..\..\lib\isc\include;..\..\..\lib\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>checktool.lib;libisc.lib;libdns.lib;libisccfg.lib;libbind9.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>checktool.lib;libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>cd ..\..\..\Build\$(Configuration)
@@ -81,7 +87,8 @@ copy /Y named-checkzone.ilk named-compilezone.ilk
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level1</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
@@ -95,7 +102,7 @@ copy /Y named-checkzone.ilk named-compilezone.ilk
<AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>
<ObjectFileName>.\$(Configuration)\</ObjectFileName>
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
<AdditionalIncludeDirectories>.\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@..\..\..\lib\isc\win32;..\..\..\lib\isc\win32\include;..\..\..\lib\isc\include;..\..\..\lib\dns\include;..\..\..\lib\bind9\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>.\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@..\..\..\lib\isc\win32;..\..\..\lib\isc\win32\include;..\..\..\lib\isc\include;..\..\..\lib\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
<Link>
@@ -104,8 +111,8 @@ copy /Y named-checkzone.ilk named-compilezone.ilk
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>checktool.lib;libisc.lib;libdns.lib;libisccfg.lib;libbind9.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>checktool.lib;libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
</Link>
<PostBuildEvent>
+2 -4
View File
@@ -2,13 +2,11 @@
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
# $Id: Makefile.in,v 1.8 2009/12/05 23:31:40 each Exp $
srcdir = @srcdir@
VPATH = @srcdir@
top_srcdir = @top_srcdir@
@@ -31,7 +29,7 @@ ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
ISCCCLIBS = ../../lib/isccc/libisccc.@A@
ISCLIBS = ../../lib/isc/libisc.@A@
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@
DNSLIBS = ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
DNSLIBS = ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
BIND9LIBS = ../../lib/bind9/libbind9.@A@
ISCCFGDEPLIBS = ../../lib/isccfg/libisccfg.@A@
+3 -3
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2009, 2014-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2009, 2014-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
.\"
.\" This Source Code Form is subject to the terms of the Mozilla Public
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -9,7 +9,7 @@
'\" t
.\" Title: ddns-confgen
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 2014-03-06
.\" Manual: BIND9
.\" Source: ISC
@@ -155,5 +155,5 @@ BIND 9 Administrator Reference Manual\&.
\fBInternet Systems Consortium, Inc\&.\fR
.SH "COPYRIGHT"
.br
Copyright \(co 2009, 2014-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2009, 2014-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
.br
+1 -1
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
+4 -2
View File
@@ -3,14 +3,14 @@
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- file, you can obtain one at https://mozilla.org/MPL/2.0/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
-->
<!-- Converted by db4-upgrade version 1.0 -->
<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.ddns-confgen">
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="man.ddns-confgen">
<info>
<date>2014-03-06</date>
</info>
@@ -38,6 +38,8 @@
<year>2016</year>
<year>2018</year>
<year>2019</year>
<year>2020</year>
<year>2021</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
+36 -95
View File
@@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
- Copyright (C) 2009, 2014-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2009, 2014-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -10,67 +10,35 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>ddns-confgen</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry">
<a name="man.ddns-confgen"></a><div class="titlepage"></div>
<div class="refnamediv">
<div class="refnamediv">
<h2>Name</h2>
<p>
<span class="application">ddns-confgen</span>
&#8212; ddns key generation tool
</p>
<p><span class="application">ddns-confgen</span> &#8212; ddns key generation tool</p>
</div>
<div class="refsynopsisdiv">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="cmdsynopsis"><p>
<code class="command">tsig-keygen</code>
[<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>]
[<code class="option">-h</code>]
[<code class="option">-r <em class="replaceable"><code>randomfile</code></em></code>]
[name]
</p></div>
<div class="cmdsynopsis"><p>
<code class="command">ddns-confgen</code>
[<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>]
[<code class="option">-h</code>]
[<code class="option">-k <em class="replaceable"><code>keyname</code></em></code>]
[<code class="option">-q</code>]
[<code class="option">-r <em class="replaceable"><code>randomfile</code></em></code>]
[
-s <em class="replaceable"><code>name</code></em>
| -z <em class="replaceable"><code>zone</code></em>
]
</p></div>
</div>
<div class="refsection">
<div class="cmdsynopsis"><p><code class="command">tsig-keygen</code> [<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>] [<code class="option">-h</code>] [<code class="option">-r <em class="replaceable"><code>randomfile</code></em></code>] [name]</p></div>
<div class="cmdsynopsis"><p><code class="command">ddns-confgen</code> [<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>] [<code class="option">-h</code>] [<code class="option">-k <em class="replaceable"><code>keyname</code></em></code>] [<code class="option">-q</code>] [<code class="option">-r <em class="replaceable"><code>randomfile</code></em></code>] [ -s <em class="replaceable"><code>name</code></em> | -z <em class="replaceable"><code>zone</code></em> ]</p></div>
</div>
<div class="refsection">
<a name="id-1.7"></a><h2>DESCRIPTION</h2>
<p>
<p>
<span class="command"><strong>tsig-keygen</strong></span> and <span class="command"><strong>ddns-confgen</strong></span>
are invocation methods for a utility that generates keys for use
in TSIG signing. The resulting keys can be used, for example,
to secure dynamic DNS updates to a zone or for the
<span class="command"><strong>rndc</strong></span> command channel.
</p>
<p>
<p>
When run as <span class="command"><strong>tsig-keygen</strong></span>, a domain name
can be specified on the command line which will be used as
the name of the generated key. If no name is specified,
the default is <code class="constant">tsig-key</code>.
</p>
<p>
<p>
When run as <span class="command"><strong>ddns-confgen</strong></span>, the generated
key is accompanied by configuration text and instructions
that can be used with <span class="command"><strong>nsupdate</strong></span> and
@@ -80,8 +48,7 @@
<span class="command"><strong>rndc-confgen</strong></span> command for setting
up command channel security.)
</p>
<p>
<p>
Note that <span class="command"><strong>named</strong></span> itself can configure a
local DDNS key for use with <span class="command"><strong>nsupdate -l</strong></span>:
it does this when a zone is configured with
@@ -91,32 +58,24 @@
if <span class="command"><strong>nsupdate</strong></span> is to be used from a remote
system.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.8"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl class="variablelist">
<div class="variablelist"><dl class="variablelist">
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
<dd>
<p>
<dd><p>
Specifies the algorithm to use for the TSIG key. Available
choices are: hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256,
hmac-sha384 and hmac-sha512. The default is hmac-sha256.
Options are case-insensitive, and the "hmac-" prefix
may be omitted.
</p>
</dd>
</p></dd>
<dt><span class="term">-h</span></dt>
<dd>
<p>
<dd><p>
Prints a short summary of options and arguments.
</p>
</dd>
</p></dd>
<dt><span class="term">-k <em class="replaceable"><code>keyname</code></em></span></dt>
<dd>
<p>
<dd><p>
Specifies the key name of the DDNS authentication key.
The default is <code class="constant">ddns-key</code> when neither
the <code class="option">-s</code> nor <code class="option">-z</code> option is
@@ -126,19 +85,15 @@
<code class="constant">ddns-key.example.com.</code>
The key name must have the format of a valid domain name,
consisting of letters, digits, hyphens and periods.
</p>
</dd>
</p></dd>
<dt><span class="term">-q</span></dt>
<dd>
<p>
<dd><p>
(<span class="command"><strong>ddns-confgen</strong></span> only.) Quiet mode: Print
only the key, with no explanatory text or usage examples;
This is essentially identical to <span class="command"><strong>tsig-keygen</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">-r <em class="replaceable"><code>randomfile</code></em></span></dt>
<dd>
<p>
<dd><p>
Specifies a source of random data for generating the
authorization. If the operating system does not provide a
<code class="filename">/dev/random</code> or equivalent device, the
@@ -148,11 +103,9 @@
instead of the default. The special value
<code class="filename">keyboard</code> indicates that keyboard input
should be used.
</p>
</dd>
</p></dd>
<dt><span class="term">-s <em class="replaceable"><code>name</code></em></span></dt>
<dd>
<p>
<dd><p>
(<span class="command"><strong>ddns-confgen</strong></span> only.)
Generate configuration example to allow dynamic updates
of a single hostname. The example <span class="command"><strong>named.conf</strong></span>
@@ -163,11 +116,9 @@
Note that the "self" nametype cannot be used, since
the name to be updated may differ from the key name.
This option cannot be used with the <code class="option">-z</code> option.
</p>
</dd>
</p></dd>
<dt><span class="term">-z <em class="replaceable"><code>zone</code></em></span></dt>
<dd>
<p>
<dd><p>
(<span class="command"><strong>ddns-confgen</strong></span> only.)
Generate configuration example to allow dynamic updates
of a zone: The example <span class="command"><strong>named.conf</strong></span> text
@@ -177,26 +128,16 @@
all subdomain names within that
<em class="replaceable"><code>zone</code></em>.
This option cannot be used with the <code class="option">-s</code> option.
</p>
</dd>
</p></dd>
</dl></div>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.9"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry">
<span class="refentrytitle">nsupdate</span>(1)
</span>,
<span class="citerefentry">
<span class="refentrytitle">named.conf</span>(5)
</span>,
<span class="citerefentry">
<span class="refentrytitle">named</span>(8)
</span>,
<p><span class="citerefentry"><span class="refentrytitle">nsupdate</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">named.conf</span>(5)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>.
</p>
</div>
</div>
</div></body>
</html>
+1 -1
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
+1 -1
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
+1 -1
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
+3 -3
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2001, 2003-2005, 2007, 2009, 2013-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2001, 2003-2005, 2007, 2009, 2013-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
.\"
.\" This Source Code Form is subject to the terms of the Mozilla Public
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -9,7 +9,7 @@
'\" t
.\" Title: rndc-confgen
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 2013-03-14
.\" Manual: BIND9
.\" Source: ISC
@@ -217,5 +217,5 @@ BIND 9 Administrator Reference Manual\&.
\fBInternet Systems Consortium, Inc\&.\fR
.SH "COPYRIGHT"
.br
Copyright \(co 2001, 2003-2005, 2007, 2009, 2013-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2001, 2003-2005, 2007, 2009, 2013-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
.br
+1 -3
View File
@@ -3,14 +3,12 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* $Id: rndc-confgen.c,v 1.7 2011/03/12 04:59:46 tbox Exp $ */
/*! \file */
/**
+4 -2
View File
@@ -3,14 +3,14 @@
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- file, you can obtain one at https://mozilla.org/MPL/2.0/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
-->
<!-- Converted by db4-upgrade version 1.0 -->
<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.rndc-confgen">
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="man.rndc-confgen">
<info>
<date>2013-03-14</date>
</info>
@@ -44,6 +44,8 @@
<year>2016</year>
<year>2018</year>
<year>2019</year>
<year>2020</year>
<year>2021</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
+48 -109
View File
@@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
- Copyright (C) 2001, 2003-2005, 2007, 2009, 2013-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2001, 2003-2005, 2007, 2009, 2013-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -10,47 +10,21 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>rndc-confgen</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry">
<a name="man.rndc-confgen"></a><div class="titlepage"></div>
<div class="refnamediv">
<div class="refnamediv">
<h2>Name</h2>
<p>
<span class="application">rndc-confgen</span>
&#8212; rndc key generation tool
</p>
<p><span class="application">rndc-confgen</span> &#8212; rndc key generation tool</p>
</div>
<div class="refsynopsisdiv">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="cmdsynopsis"><p>
<code class="command">rndc-confgen</code>
[<code class="option">-a</code>]
[<code class="option">-A <em class="replaceable"><code>algorithm</code></em></code>]
[<code class="option">-b <em class="replaceable"><code>keysize</code></em></code>]
[<code class="option">-c <em class="replaceable"><code>keyfile</code></em></code>]
[<code class="option">-h</code>]
[<code class="option">-k <em class="replaceable"><code>keyname</code></em></code>]
[<code class="option">-p <em class="replaceable"><code>port</code></em></code>]
[<code class="option">-r <em class="replaceable"><code>randomfile</code></em></code>]
[<code class="option">-s <em class="replaceable"><code>address</code></em></code>]
[<code class="option">-t <em class="replaceable"><code>chrootdir</code></em></code>]
[<code class="option">-u <em class="replaceable"><code>user</code></em></code>]
</p></div>
</div>
<div class="refsection">
<div class="cmdsynopsis"><p><code class="command">rndc-confgen</code> [<code class="option">-a</code>] [<code class="option">-A <em class="replaceable"><code>algorithm</code></em></code>] [<code class="option">-b <em class="replaceable"><code>keysize</code></em></code>] [<code class="option">-c <em class="replaceable"><code>keyfile</code></em></code>] [<code class="option">-h</code>] [<code class="option">-k <em class="replaceable"><code>keyname</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-r <em class="replaceable"><code>randomfile</code></em></code>] [<code class="option">-s <em class="replaceable"><code>address</code></em></code>] [<code class="option">-t <em class="replaceable"><code>chrootdir</code></em></code>] [<code class="option">-u <em class="replaceable"><code>user</code></em></code>]</p></div>
</div>
<div class="refsection">
<a name="id-1.7"></a><h2>DESCRIPTION</h2>
<p><span class="command"><strong>rndc-confgen</strong></span>
<p><span class="command"><strong>rndc-confgen</strong></span>
generates configuration files
for <span class="command"><strong>rndc</strong></span>. It can be used as a
convenient alternative to writing the
@@ -63,17 +37,13 @@
avoid the need for a <code class="filename">rndc.conf</code> file
and a <span class="command"><strong>controls</strong></span> statement altogether.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.8"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl class="variablelist">
<div class="variablelist"><dl class="variablelist">
<dt><span class="term">-a</span></dt>
<dd>
<p>
<p>
Do automatic <span class="command"><strong>rndc</strong></span> configuration.
This creates a file <code class="filename">rndc.key</code>
in <code class="filename">/etc</code> (or whatever
@@ -88,7 +58,7 @@
<span class="command"><strong>named</strong></span> on the local host
with no further configuration.
</p>
<p>
<p>
Running <span class="command"><strong>rndc-confgen -a</strong></span> allows
BIND 9 and <span class="command"><strong>rndc</strong></span> to be used as
drop-in
@@ -96,7 +66,7 @@
with no changes to the existing BIND 8
<code class="filename">named.conf</code> file.
</p>
<p>
<p>
If a more elaborate configuration than that
generated by <span class="command"><strong>rndc-confgen -a</strong></span>
is required, for example if rndc is to be used remotely,
@@ -107,57 +77,44 @@
<code class="filename">named.conf</code>
as directed.
</p>
</dd>
</dd>
<dt><span class="term">-A <em class="replaceable"><code>algorithm</code></em></span></dt>
<dd>
<p>
<dd><p>
Specifies the algorithm to use for the TSIG key. Available
choices are: hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256,
hmac-sha384 and hmac-sha512. The default is hmac-md5 or
if MD5 was disabled hmac-sha256.
</p>
</dd>
</p></dd>
<dt><span class="term">-b <em class="replaceable"><code>keysize</code></em></span></dt>
<dd>
<p>
<dd><p>
Specifies the size of the authentication key in bits.
Must be between 1 and 512 bits; the default is the
hash size.
</p>
</dd>
</p></dd>
<dt><span class="term">-c <em class="replaceable"><code>keyfile</code></em></span></dt>
<dd>
<p>
<dd><p>
Used with the <span class="command"><strong>-a</strong></span> option to specify
an alternate location for <code class="filename">rndc.key</code>.
</p>
</dd>
</p></dd>
<dt><span class="term">-h</span></dt>
<dd>
<p>
<dd><p>
Prints a short summary of the options and arguments to
<span class="command"><strong>rndc-confgen</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">-k <em class="replaceable"><code>keyname</code></em></span></dt>
<dd>
<p>
<dd><p>
Specifies the key name of the rndc authentication key.
This must be a valid domain name.
The default is <code class="constant">rndc-key</code>.
</p>
</dd>
</p></dd>
<dt><span class="term">-p <em class="replaceable"><code>port</code></em></span></dt>
<dd>
<p>
<dd><p>
Specifies the command channel port where <span class="command"><strong>named</strong></span>
listens for connections from <span class="command"><strong>rndc</strong></span>.
The default is 953.
</p>
</dd>
</p></dd>
<dt><span class="term">-r <em class="replaceable"><code>randomfile</code></em></span></dt>
<dd>
<p>
<dd><p>
Specifies a source of random data for generating the
authorization. If the operating
system does not provide a <code class="filename">/dev/random</code>
@@ -168,30 +125,24 @@
data to be used instead of the default. The special value
<code class="filename">keyboard</code> indicates that keyboard
input should be used.
</p>
</dd>
</p></dd>
<dt><span class="term">-s <em class="replaceable"><code>address</code></em></span></dt>
<dd>
<p>
<dd><p>
Specifies the IP address where <span class="command"><strong>named</strong></span>
listens for command channel connections from
<span class="command"><strong>rndc</strong></span>. The default is the loopback
address 127.0.0.1.
</p>
</dd>
</p></dd>
<dt><span class="term">-t <em class="replaceable"><code>chrootdir</code></em></span></dt>
<dd>
<p>
<dd><p>
Used with the <span class="command"><strong>-a</strong></span> option to specify
a directory where <span class="command"><strong>named</strong></span> will run
chrooted. An additional copy of the <code class="filename">rndc.key</code>
will be written relative to this directory so that
it will be found by the chrooted <span class="command"><strong>named</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">-u <em class="replaceable"><code>user</code></em></span></dt>
<dd>
<p>
<dd><p>
Used with the <span class="command"><strong>-a</strong></span> option to set the
owner
of the <code class="filename">rndc.key</code> file generated.
@@ -199,45 +150,33 @@
<span class="command"><strong>-t</strong></span> is also specified only the file
in
the chroot area has its owner changed.
</p>
</dd>
</p></dd>
</dl></div>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.9"></a><h2>EXAMPLES</h2>
<p>
<p>
To allow <span class="command"><strong>rndc</strong></span> to be used with
no manual configuration, run
</p>
<p><strong class="userinput"><code>rndc-confgen -a</code></strong>
<p><strong class="userinput"><code>rndc-confgen -a</code></strong>
</p>
<p>
<p>
To print a sample <code class="filename">rndc.conf</code> file and
corresponding <span class="command"><strong>controls</strong></span> and <span class="command"><strong>key</strong></span>
statements to be manually inserted into <code class="filename">named.conf</code>,
run
</p>
<p><strong class="userinput"><code>rndc-confgen</code></strong>
<p><strong class="userinput"><code>rndc-confgen</code></strong>
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.10"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry">
<span class="refentrytitle">rndc</span>(8)
</span>,
<span class="citerefentry">
<span class="refentrytitle">rndc.conf</span>(5)
</span>,
<span class="citerefentry">
<span class="refentrytitle">named</span>(8)
</span>,
<p><span class="citerefentry"><span class="refentrytitle">rndc</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">rndc.conf</span>(5)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>.
</p>
</div>
</div>
</div></body>
</html>
+1 -1
View File
@@ -2,7 +2,7 @@
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
+1 -1
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
+1 -1
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
+1 -1
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
+10 -3
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|@PLATFORM@">
<Configuration>Debug</Configuration>
@@ -14,18 +14,21 @@
<ProjectGuid>{64964B03-4815-41F0-9057-E766A94AF197}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>confgentool</RootNamespace>
@WINDOWS_TARGET_PLATFORM_VERSION@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -41,17 +44,20 @@
<LinkIncremental>true</LinkIncremental>
<OutDir>.\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<LinkIncremental>false</LinkIncremental>
<OutDir>.\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>false</TreatWarningAsError>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -70,7 +76,8 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level1</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
+10 -3
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|@PLATFORM@">
<Configuration>Debug</Configuration>
@@ -14,18 +14,21 @@
<ProjectGuid>{1EA4FC64-F33B-4A50-970A-EA052BBE9CF1}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ddnsconfgen</RootNamespace>
@WINDOWS_TARGET_PLATFORM_VERSION@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -41,19 +44,22 @@
<LinkIncremental>true</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
<TargetName>ddns-confgen</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
<TargetName>ddns-confgen</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>false</TreatWarningAsError>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -81,7 +87,8 @@ copy /Y ddns-confgen.ilk tsig-keygen.ilk
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level1</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
+1 -1
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
+10 -3
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|@PLATFORM@">
<Configuration>Debug</Configuration>
@@ -14,18 +14,21 @@
<ProjectGuid>{1E2C1635-3093-4D59-80E7-4743AC10F22F}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>rndcconfgen</RootNamespace>
@WINDOWS_TARGET_PLATFORM_VERSION@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -41,19 +44,22 @@
<LinkIncremental>true</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
<TargetName>rndc-confgen</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
<TargetName>rndc-confgen</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>false</TreatWarningAsError>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -75,7 +81,8 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level1</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
+2 -2
View File
@@ -2,7 +2,7 @@
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
@@ -23,7 +23,7 @@ CDEFINES = @CRYPTO@ -DVERSION=\"${VERSION}\" \
CWARNINGS =
ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
DNSLIBS = ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
DNSLIBS = ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@
ISCLIBS = ../../lib/isc/libisc.@A@
IRSLIBS = ../../lib/irs/libirs.@A@
+3 -3
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2014-2019 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2014-2021 Internet Systems Consortium, Inc. ("ISC")
.\"
.\" This Source Code Form is subject to the terms of the Mozilla Public
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -9,7 +9,7 @@
'\" t
.\" Title: delv
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 2014-04-23
.\" Manual: BIND9
.\" Source: ISC
@@ -437,5 +437,5 @@ RFC5155\&.
\fBInternet Systems Consortium, Inc\&.\fR
.SH "COPYRIGHT"
.br
Copyright \(co 2014-2019 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2014-2021 Internet Systems Consortium, Inc. ("ISC")
.br
+20 -19
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
@@ -160,42 +160,43 @@ usage(void) {
" q-class is one of (in,hs,ch,...) [default: in]\n"
" q-type is one of (a,any,mx,ns,soa,hinfo,axfr,txt,...) [default:a]\n"
" q-opt is one of:\n"
" -x dot-notation (shortcut for reverse lookups)\n"
" -d level (set debugging level)\n"
" -4 (use IPv4 query transport only)\n"
" -6 (use IPv6 query transport only)\n"
" -a anchor-file (specify root and dlv trust anchors)\n"
" -b address[#port] (bind to source address/port)\n"
" -c class (option included for compatibility;\n"
" -d level (set debugging level)\n"
" -h (print help and exit)\n"
" -i (disable DNSSEC validation)\n"
" -m (enable memory usage debugging)\n"
" -p port (specify port number)\n"
" -q name (specify query name)\n"
" -t type (specify query type)\n"
" -c class (option included for compatibility;\n"
" only IN is supported)\n"
" -4 (use IPv4 query transport only)\n"
" -6 (use IPv6 query transport only)\n"
" -i (disable DNSSEC validation)\n"
" -m (enable memory usage debugging)\n"
" -v (print version and exit)\n"
" -x dot-notation (shortcut for reverse lookups)\n"
" d-opt is of the form +keyword[=value], where keyword is:\n"
" +[no]all (Set or clear all display flags)\n"
" +[no]class (Control display of class)\n"
" +[no]comments (Control display of comment lines)\n"
" +[no]crypto (Control display of cryptographic\n"
" fields in records)\n"
" +[no]dlv (DNSSEC lookaside validation anchor)\n"
" +[no]dnssec (Display DNSSEC records)\n"
" +[no]mtrace (Trace messages received)\n"
" +[no]multiline (Print records in an expanded format)\n"
" +[no]comments (Control display of comment lines)\n"
" +[no]root (DNSSEC validation trust anchor)\n"
" +[no]rrcomments (Control display of per-record "
"comments)\n"
" +[no]unknownformat (Print RDATA in RFC 3597 \"unknown\" format)\n"
" +[no]rtrace (Trace resolver fetches)\n"
" +[no]short (Short form answer)\n"
" +[no]split=## (Split hex/base64 fields into chunks)\n"
" +[no]tcp (TCP mode)\n"
" +[no]ttl (Control display of ttls in records)\n"
" +[no]trust (Control display of trust level)\n"
" +[no]rtrace (Trace resolver fetches)\n"
" +[no]mtrace (Trace messages received)\n"
" +[no]vtrace (Trace validation process)\n"
" +[no]dlv (DNSSEC lookaside validation anchor)\n"
" +[no]root (DNSSEC validation trust anchor)\n"
" +[no]dnssec (Display DNSSEC records)\n"
" -h (print help and exit)\n"
" -v (print version and exit)\n",
" +[no]unknownformat (Print RDATA in RFC 3597 "
"\"unknown\" format)\n"
" +[no]vtrace (Trace validation process)\n",
stderr);
exit(1);
}
@@ -502,7 +503,7 @@ setup_style(dns_master_style_t **stylep) {
isc_result_t result;
dns_master_style_t *style = NULL;
REQUIRE(stylep != NULL || *stylep == NULL);
REQUIRE(stylep != NULL && *stylep == NULL);
styleflags |= DNS_STYLEFLAG_REL_OWNER;
if (showcomments)
+4 -2
View File
@@ -5,14 +5,14 @@
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- file, you can obtain one at https://mozilla.org/MPL/2.0/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
-->
<!-- Converted by db4-upgrade version 1.0 -->
<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.delv">
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="man.delv">
<info>
<date>2014-04-23</date>
</info>
@@ -40,6 +40,8 @@
<year>2017</year>
<year>2018</year>
<year>2019</year>
<year>2020</year>
<year>2021</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
+114 -240
View File
@@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
- Copyright (C) 2014-2019 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2014-2021 Internet Systems Consortium, Inc. ("ISC")
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -10,76 +10,29 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>delv</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry">
<a name="man.delv"></a><div class="titlepage"></div>
<div class="refnamediv">
<div class="refnamediv">
<h2>Name</h2>
<p>
delv
&#8212; DNS lookup and validation utility
</p>
<p>delv &#8212; DNS lookup and validation utility</p>
</div>
<div class="refsynopsisdiv">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="cmdsynopsis"><p>
<code class="command">delv</code>
[@server]
[
[<code class="option">-4</code>]
| [<code class="option">-6</code>]
]
[<code class="option">-a <em class="replaceable"><code>anchor-file</code></em></code>]
[<code class="option">-b <em class="replaceable"><code>address</code></em></code>]
[<code class="option">-c <em class="replaceable"><code>class</code></em></code>]
[<code class="option">-d <em class="replaceable"><code>level</code></em></code>]
[<code class="option">-i</code>]
[<code class="option">-m</code>]
[<code class="option">-p <em class="replaceable"><code>port#</code></em></code>]
[<code class="option">-q <em class="replaceable"><code>name</code></em></code>]
[<code class="option">-t <em class="replaceable"><code>type</code></em></code>]
[<code class="option">-x <em class="replaceable"><code>addr</code></em></code>]
[name]
[type]
[class]
[queryopt...]
</p></div>
<div class="cmdsynopsis"><p>
<code class="command">delv</code>
[<code class="option">-h</code>]
</p></div>
<div class="cmdsynopsis"><p>
<code class="command">delv</code>
[<code class="option">-v</code>]
</p></div>
<div class="cmdsynopsis"><p>
<code class="command">delv</code>
[queryopt...]
[query...]
</p></div>
</div>
<div class="refsection">
<div class="cmdsynopsis"><p><code class="command">delv</code> [@server] [[<code class="option">-4</code>] | [<code class="option">-6</code>]] [<code class="option">-a <em class="replaceable"><code>anchor-file</code></em></code>] [<code class="option">-b <em class="replaceable"><code>address</code></em></code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-d <em class="replaceable"><code>level</code></em></code>] [<code class="option">-i</code>] [<code class="option">-m</code>] [<code class="option">-p <em class="replaceable"><code>port#</code></em></code>] [<code class="option">-q <em class="replaceable"><code>name</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-x <em class="replaceable"><code>addr</code></em></code>] [name] [type] [class] [queryopt...]</p></div>
<div class="cmdsynopsis"><p><code class="command">delv</code> [<code class="option">-h</code>]</p></div>
<div class="cmdsynopsis"><p><code class="command">delv</code> [<code class="option">-v</code>]</p></div>
<div class="cmdsynopsis"><p><code class="command">delv</code> [queryopt...] [query...]</p></div>
</div>
<div class="refsection">
<a name="id-1.7"></a><h2>DESCRIPTION</h2>
<p><span class="command"><strong>delv</strong></span>
<p><span class="command"><strong>delv</strong></span>
is a tool for sending
DNS queries and validating the results, using the same internal
resolver and validator logic as <span class="command"><strong>named</strong></span>.
</p>
<p>
<p>
<span class="command"><strong>delv</strong></span> will send to a specified name server all
queries needed to fetch and validate the requested data; this
includes the original requested query, subsequent queries to follow
@@ -89,7 +42,7 @@
behavior of a name server configured for DNSSEC validating and
forwarding.
</p>
<p>
<p>
By default, responses are validated using built-in DNSSEC trust
anchor for the root zone ("."). Records returned by
<span class="command"><strong>delv</strong></span> are either fully validated or
@@ -100,7 +53,7 @@
be used to check the validity of DNS responses in environments
where local name servers may not be trustworthy.
</p>
<p>
<p>
Unless it is told to query a specific name server,
<span class="command"><strong>delv</strong></span> will try each of the servers listed in
<code class="filename">/etc/resolv.conf</code>. If no usable server
@@ -108,18 +61,15 @@
queries to the localhost addresses (127.0.0.1 for IPv4, ::1
for IPv6).
</p>
<p>
<p>
When no command line arguments or options are given,
<span class="command"><strong>delv</strong></span> will perform an NS query for "."
(the root zone).
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.8"></a><h2>SIMPLE USAGE</h2>
<p>
<p>
A typical invocation of <span class="command"><strong>delv</strong></span> looks like:
</p>
<pre class="programlisting"> delv @server name type </pre>
@@ -130,7 +80,7 @@
<div class="variablelist"><dl class="variablelist">
<dt><span class="term"><code class="constant">server</code></span></dt>
<dd>
<p>
<p>
is the name or IP address of the name server to query. This
can be an IPv4 address in dotted-decimal notation or an IPv6
address in colon-delimited notation. When the supplied
@@ -140,7 +90,7 @@
initial lookup is <span class="emphasis"><em>not</em></span> validated
by DNSSEC).
</p>
<p>
<p>
If no <em class="parameter"><code>server</code></em> argument is
provided, <span class="command"><strong>delv</strong></span> consults
<code class="filename">/etc/resolv.conf</code>; if an
@@ -153,16 +103,13 @@
the localhost addresses (127.0.0.1 for IPv4,
::1 for IPv6).
</p>
</dd>
</dd>
<dt><span class="term"><code class="constant">name</code></span></dt>
<dd>
<p>
<dd><p>
is the domain name to be looked up.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="constant">type</code></span></dt>
<dd>
<p>
<dd><p>
indicates what type of query is required &#8212;
ANY, A, MX, etc.
<em class="parameter"><code>type</code></em> can be any valid query
@@ -170,27 +117,23 @@
<em class="parameter"><code>type</code></em> argument is supplied,
<span class="command"><strong>delv</strong></span> will perform a lookup for an
A record.
</p>
</dd>
</p></dd>
</dl></div>
<p>
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.9"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl class="variablelist">
<div class="variablelist"><dl class="variablelist">
<dt><span class="term">-a <em class="replaceable"><code>anchor-file</code></em></span></dt>
<dd>
<p>
<p>
Specifies a file from which to read DNSSEC trust anchors.
The default is <code class="filename">/etc/bind.keys</code>, which
is included with <acronym class="acronym">BIND</acronym> 9 and contains
one or more trust anchors for the root zone (".").
</p>
<p>
<p>
Keys that do not match the root zone name are ignored.
An alternate key name can be specified using the
<code class="option">+root=NAME</code> options. DNSSEC Lookaside
@@ -198,7 +141,7 @@
<code class="option">+dlv=NAME</code> to specify the name of a
zone containing DLV records.
</p>
<p>
<p>
Note: When reading the trust anchor file,
<span class="command"><strong>delv</strong></span> treats <code class="option">managed-keys</code>
statements and <code class="option">trusted-keys</code> statements
@@ -212,28 +155,23 @@
<code class="filename">/etc/bind.keys</code> to use DNSSEC
validation in <span class="command"><strong>delv</strong></span>.
</p>
</dd>
</dd>
<dt><span class="term">-b <em class="replaceable"><code>address</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the source IP address of the query to
<em class="parameter"><code>address</code></em>. This must be a valid address
on one of the host's network interfaces or "0.0.0.0" or "::".
An optional source port may be specified by appending
"#&lt;port&gt;"
</p>
</dd>
</p></dd>
<dt><span class="term">-c <em class="replaceable"><code>class</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the query class for the requested data. Currently,
only class "IN" is supported in <span class="command"><strong>delv</strong></span>
and any other value is ignored.
</p>
</dd>
</p></dd>
<dt><span class="term">-d <em class="replaceable"><code>level</code></em></span></dt>
<dd>
<p>
<dd><p>
Set the systemwide debug level to <code class="option">level</code>.
The allowed range is from 0 to 99.
The default is 0 (no debugging).
@@ -242,17 +180,13 @@
See the <code class="option">+mtrace</code>, <code class="option">+rtrace</code>,
and <code class="option">+vtrace</code> options below for additional
debugging details.
</p>
</dd>
</p></dd>
<dt><span class="term">-h</span></dt>
<dd>
<p>
<dd><p>
Display the <span class="command"><strong>delv</strong></span> help usage output and exit.
</p>
</dd>
</p></dd>
<dt><span class="term">-i</span></dt>
<dd>
<p>
<dd><p>
Insecure mode. This disables internal DNSSEC validation.
(Note, however, this does not set the CD bit on upstream
queries. If the server being queried is performing DNSSEC
@@ -260,37 +194,30 @@
can cause <span class="command"><strong>delv</strong></span> to time out. When it
is necessary to examine invalid data to debug a DNSSEC
problem, use <span class="command"><strong>dig +cd</strong></span>.)
</p>
</dd>
</p></dd>
<dt><span class="term">-m</span></dt>
<dd>
<p>
<dd><p>
Enables memory usage debugging.
</p>
</dd>
</p></dd>
<dt><span class="term">-p <em class="replaceable"><code>port#</code></em></span></dt>
<dd>
<p>
<dd><p>
Specifies a destination port to use for queries instead of
the standard DNS port number 53. This option would be used
with a name server that has been configured to listen
for queries on a non-standard port number.
</p>
</dd>
</p></dd>
<dt><span class="term">-q <em class="replaceable"><code>name</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the query name to <em class="parameter"><code>name</code></em>.
While the query name can be specified without using the
<code class="option">-q</code>, it is sometimes necessary to disambiguate
names from types or classes (for example, when looking up the
name "ns", which could be misinterpreted as the type NS,
or "ch", which could be misinterpreted as class CH).
</p>
</dd>
</p></dd>
<dt><span class="term">-t <em class="replaceable"><code>type</code></em></span></dt>
<dd>
<p>
<p>
Sets the query type to <em class="parameter"><code>type</code></em>, which
can be any valid query type supported in BIND 9 except
for zone transfer types AXFR and IXFR. As with
@@ -298,21 +225,18 @@
query name type or class when they are ambiguous.
it is sometimes necessary to disambiguate names from types.
</p>
<p>
<p>
The default query type is "A", unless the <code class="option">-x</code>
option is supplied to indicate a reverse lookup, in which case
it is "PTR".
</p>
</dd>
</dd>
<dt><span class="term">-v</span></dt>
<dd>
<p>
<dd><p>
Print the <span class="command"><strong>delv</strong></span> version and exit.
</p>
</dd>
</p></dd>
<dt><span class="term">-x <em class="replaceable"><code>addr</code></em></span></dt>
<dd>
<p>
<dd><p>
Performs a reverse lookup, mapping an addresses to
a name. <em class="parameter"><code>addr</code></em> is an IPv4 address in
dotted-decimal notation, or a colon-delimited IPv6 address.
@@ -322,33 +246,24 @@
lookup for a name like <code class="literal">11.12.13.10.in-addr.arpa</code>
and sets the query type to PTR. IPv6 addresses are looked up
using nibble format under the IP6.ARPA domain.
</p>
</dd>
</p></dd>
<dt><span class="term">-4</span></dt>
<dd>
<p>
<dd><p>
Forces <span class="command"><strong>delv</strong></span> to only use IPv4.
</p>
</dd>
</p></dd>
<dt><span class="term">-6</span></dt>
<dd>
<p>
<dd><p>
Forces <span class="command"><strong>delv</strong></span> to only use IPv6.
</p>
</dd>
</p></dd>
</dl></div>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.10"></a><h2>QUERY OPTIONS</h2>
<p><span class="command"><strong>delv</strong></span>
<p><span class="command"><strong>delv</strong></span>
provides a number of query options which affect the way results are
displayed, and in some cases the way lookups are performed.
</p>
<p>
<p>
Each query option is identified by a keyword preceded by a plus sign
(<code class="literal">+</code>). Some keywords set or reset an
option. These may be preceded by the string
@@ -360,8 +275,7 @@
</p>
<div class="variablelist"><dl class="variablelist">
<dt><span class="term"><code class="option">+[no]cdflag</code></span></dt>
<dd>
<p>
<dd><p>
Controls whether to set the CD (checking disabled) bit in
queries sent by <span class="command"><strong>delv</strong></span>. This may be useful
when troubleshooting DNSSEC problems from behind a validating
@@ -370,25 +284,20 @@
the CD flag on queries will cause the resolver to return
invalid responses, which <span class="command"><strong>delv</strong></span> can then
validate internally and report the errors in detail.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="option">+[no]class</code></span></dt>
<dd>
<p>
<dd><p>
Controls whether to display the CLASS when printing
a record. The default is to display the CLASS.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="option">+[no]ttl</code></span></dt>
<dd>
<p>
<dd><p>
Controls whether to display the TTL when printing
a record. The default is to display the TTL.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="option">+[no]rtrace</code></span></dt>
<dd>
<p>
<p>
Toggle resolver fetch logging. This reports the
name and type of each query sent by <span class="command"><strong>delv</strong></span>
in the process of carrying out the resolution and validation
@@ -396,69 +305,62 @@
all subsequent queries to follow CNAMEs and to establish a
chain of trust for DNSSEC validation.
</p>
<p>
<p>
This is equivalent to setting the debug level to 1 in
the "resolver" logging category. Setting the systemwide
debug level to 1 using the <code class="option">-d</code> option will
product the same output (but will affect other logging
categories as well).
</p>
</dd>
</dd>
<dt><span class="term"><code class="option">+[no]mtrace</code></span></dt>
<dd>
<p>
<p>
Toggle message logging. This produces a detailed dump of
the responses received by <span class="command"><strong>delv</strong></span> in the
process of carrying out the resolution and validation process.
</p>
<p>
<p>
This is equivalent to setting the debug level to 10
for the "packets" module of the "resolver" logging
category. Setting the systemwide debug level to 10 using
the <code class="option">-d</code> option will produce the same output
(but will affect other logging categories as well).
</p>
</dd>
</dd>
<dt><span class="term"><code class="option">+[no]vtrace</code></span></dt>
<dd>
<p>
<p>
Toggle validation logging. This shows the internal
process of the validator as it determines whether an
answer is validly signed, unsigned, or invalid.
</p>
<p>
<p>
This is equivalent to setting the debug level to 3
for the "validator" module of the "dnssec" logging
category. Setting the systemwide debug level to 3 using
the <code class="option">-d</code> option will produce the same output
(but will affect other logging categories as well).
</p>
</dd>
</dd>
<dt><span class="term"><code class="option">+[no]short</code></span></dt>
<dd>
<p>
<dd><p>
Provide a terse answer. The default is to print the answer in a
verbose form.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="option">+[no]comments</code></span></dt>
<dd>
<p>
<dd><p>
Toggle the display of comment lines in the output. The default
is to print comments.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="option">+[no]rrcomments</code></span></dt>
<dd>
<p>
<dd><p>
Toggle the display of per-record comments in the output (for
example, human-readable key information about DNSKEY records).
The default is to print per-record comments.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="option">+[no]crypto</code></span></dt>
<dd>
<p>
<dd><p>
Toggle the display of cryptographic fields in DNSSEC records.
The contents of these field are unnecessary to debug most DNSSEC
validation failures and removing them makes it easier to see
@@ -466,18 +368,14 @@
When omitted they are replaced by the string "[omitted]" or
in the DNSKEY case the key id is displayed as the replacement,
e.g. "[ key id = value ]".
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="option">+[no]trust</code></span></dt>
<dd>
<p>
<dd><p>
Controls whether to display the trust level when printing
a record. The default is to display the trust level.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="option">+[no]split[=W]</code></span></dt>
<dd>
<p>
<dd><p>
Split long hex- or base64-formatted fields in resource
records into chunks of <em class="parameter"><code>W</code></em> characters
(where <em class="parameter"><code>W</code></em> is rounded up to the nearest
@@ -486,30 +384,24 @@
<em class="parameter"><code>+split=0</code></em> causes fields not to be
split at all. The default is 56 characters, or 44 characters
when multiline mode is active.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="option">+[no]all</code></span></dt>
<dd>
<p>
<dd><p>
Set or clear the display options
<code class="option">+[no]comments</code>,
<code class="option">+[no]rrcomments</code>, and
<code class="option">+[no]trust</code> as a group.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="option">+[no]multiline</code></span></dt>
<dd>
<p>
<dd><p>
Print long records (such as RRSIG, DNSKEY, and SOA records)
in a verbose multi-line format with human-readable comments.
The default is to print each record on a single line, to
facilitate machine parsing of the <span class="command"><strong>delv</strong></span>
output.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="option">+[no]dnssec</code></span></dt>
<dd>
<p>
<dd><p>
Indicates whether to display RRSIG records in the
<span class="command"><strong>delv</strong></span> output. The default is to
do so. Note that (unlike in <span class="command"><strong>dig</strong></span>)
@@ -519,11 +411,9 @@
will always occur unless suppressed by the use of
<code class="option">-i</code> or <code class="option">+noroot</code> and
<code class="option">+nodlv</code>.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="option">+[no]root[=ROOT]</code></span></dt>
<dd>
<p>
<dd><p>
Indicates whether to perform conventional (non-lookaside)
DNSSEC validation, and if so, specifies the
name of a trust anchor. The default is to validate using
@@ -531,62 +421,46 @@
a built-in key. If specifying a different trust anchor,
then <code class="option">-a</code> must be used to specify a file
containing the key.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="option">+[no]dlv[=DLV]</code></span></dt>
<dd>
<p>
<dd><p>
Indicates whether to perform DNSSEC lookaside validation,
and if so, specifies the name of the DLV trust anchor.
The <code class="option">-a</code> option must also be used to specify
a file containing the DLV key.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="option">+[no]tcp</code></span></dt>
<dd>
<p>
<dd><p>
Controls whether to use TCP when sending queries.
The default is to use UDP unless a truncated
response has been received.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="option">+[no]unknownformat</code></span></dt>
<dd>
<p>
<dd><p>
Print all RDATA in unknown RR type presentation format
(RFC 3597). The default is to print RDATA for known types
in the type's presentation format.
</p>
</dd>
</p></dd>
</dl></div>
<p>
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.11"></a><h2>FILES</h2>
<p><code class="filename">/etc/bind.keys</code></p>
<p><code class="filename">/etc/resolv.conf</code></p>
</div>
<div class="refsection">
<p><code class="filename">/etc/bind.keys</code></p>
<p><code class="filename">/etc/resolv.conf</code></p>
</div>
<div class="refsection">
<a name="id-1.12"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry">
<span class="refentrytitle">dig</span>(1)
</span>,
<span class="citerefentry">
<span class="refentrytitle">named</span>(8)
</span>,
<p><span class="citerefentry"><span class="refentrytitle">dig</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<em class="citetitle">RFC4034</em>,
<em class="citetitle">RFC4035</em>,
<em class="citetitle">RFC4431</em>,
<em class="citetitle">RFC5074</em>,
<em class="citetitle">RFC5155</em>.
</p>
</div>
</div>
</div></body>
</html>
+10 -3
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|@PLATFORM@">
<Configuration>Debug</Configuration>
@@ -14,18 +14,21 @@
<ProjectGuid>{BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>delv</RootNamespace>
@WINDOWS_TARGET_PLATFORM_VERSION@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -41,17 +44,20 @@
<LinkIncremental>true</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>false</TreatWarningAsError>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;@CRYPTO@_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -73,7 +79,8 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level1</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
+2 -2
View File
@@ -2,7 +2,7 @@
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
@@ -25,7 +25,7 @@ CDEFINES = -DVERSION=\"${VERSION}\" @CRYPTO@
CWARNINGS =
ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
DNSLIBS = ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
DNSLIBS = ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
BIND9LIBS = ../../lib/bind9/libbind9.@A@
ISCLIBS = ../../lib/isc/libisc.@A@
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@
+27 -15
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2000-2011, 2013-2019 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2000-2011, 2013-2021 Internet Systems Consortium, Inc. ("ISC")
.\"
.\" This Source Code Form is subject to the terms of the Mozilla Public
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -9,7 +9,7 @@
'\" t
.\" Title: dig
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 2014-02-19
.\" Manual: BIND9
.\" Source: ISC
@@ -351,9 +351,15 @@ Attempt to display the contents of messages which are malformed\&. The default i
.PP
\fB+bufsize=B\fR
.RS 4
Set the UDP message buffer size advertised using EDNS0 to
This option sets the UDP message buffer size advertised using EDNS0 to
\fIB\fR
bytes\&. The maximum and minimum sizes of this buffer are 65535 and 0 respectively\&. Values outside this range are rounded up or down appropriately\&. Values other than zero will cause a EDNS query to be sent\&.
bytes\&. The maximum and minimum sizes of this buffer are 65535 and 0, respectively\&.
+bufsize=0
disables EDNS (use
+bufsize=0 +edns
to send a EDNS messages with a advertised size of 0 bytes)\&.
+bufsize
restores the default buffer size\&.
.RE
.PP
\fB+[no]cdflag\fR
@@ -368,14 +374,20 @@ Display [do not display] the CLASS when printing the record\&.
.PP
\fB+[no]cmd\fR
.RS 4
Toggles the printing of the initial comment in the output identifying the version of
Toggles the printing of the initial comment in the output, identifying the version of
\fBdig\fR
and the query options that have been applied\&. This comment is printed by default\&.
and the query options that have been applied\&. This option always has global effect; it cannot be set globally and then overridden on a per\-lookup basis\&. The default is to print this comment\&.
.RE
.PP
\fB+[no]comments\fR
.RS 4
Toggle the display of comment lines in the output\&. The default is to print comments\&.
Toggles the display of some comment lines in the output, containing information about the packet header and OPT pseudosection, and the names of the response section\&. The default is to print these comments\&.
.sp
Other types of comments in the output are not affected by this option, but can be controlled using other command line switches\&. These include
\fB+[no]cmd\fR,
\fB+[no]question\fR,
\fB+[no]stats\fR, and
\fB+[no]rrcomments\fR\&.
.RE
.PP
\fB+[no]cookie\fR\fB[=####]\fR
@@ -554,12 +566,12 @@ Set [restore] the DNS message opcode to the specified value\&. The default value
.PP
\fB+[no]qr\fR
.RS 4
Print [do not print] the query as it is sent\&. By default, the query is not printed\&.
Toggles the display of the query message as it is sent\&. By default, the query is not printed\&.
.RE
.PP
\fB+[no]question\fR
.RS 4
Print [do not print] the question section of a query when an answer is returned\&. The default is to print the question section as a comment\&.
Toggles the display of the question section of a query when an answer is returned\&. The default is to print the question section as a comment\&.
.RE
.PP
\fB+[no]rdflag\fR
@@ -572,11 +584,11 @@ A synonym for
.RS 4
Toggle the setting of the RD (recursion desired) bit in the query\&. This bit is set by default, which means
\fBdig\fR
normally sends recursive queries\&. Recursion is automatically disabled when the
normally sends recursive queries\&. Recursion is automatically disabled when using the
\fI+nssearch\fR
or
option, and when using
\fI+trace\fR
query options are used\&.
except for an initial recursive query to get the list of root servers\&.
.RE
.PP
\fB+retry=T\fR
@@ -607,7 +619,7 @@ determines if the name will be treated as relative or not and hence whether a se
.PP
\fB+[no]short\fR
.RS 4
Provide a terse answer\&. The default is to print the answer in a verbose form\&.
Provide a terse answer\&. The default is to print the answer in a verbose form\&. This option always has global effect; it cannot be set globally and then overridden on a per\-lookup basis\&.
.RE
.PP
\fB+[no]showsearch\fR
@@ -637,7 +649,7 @@ causes fields not to be split at all\&. The default is 56 characters, or 44 char
.PP
\fB+[no]stats\fR
.RS 4
This query option toggles the printing of statistics: when the query was made, the size of the reply and so on\&. The default behavior is to print the query statistics\&.
Toggles the printing of statistics: when the query was made, the size of the reply and so on\&. The default behavior is to print the query statistics as a comment after each lookup\&.
.RE
.PP
\fB+[no]subnet=addr[/prefix\-length]\fR
@@ -811,5 +823,5 @@ There are probably too many query options\&.
\fBInternet Systems Consortium, Inc\&.\fR
.SH "COPYRIGHT"
.br
Copyright \(co 2000-2011, 2013-2019 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2000-2011, 2013-2021 Internet Systems Consortium, Inc. ("ISC")
.br
+45 -31
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
@@ -173,14 +173,16 @@ help(void) {
" +[no]authority (Control display of authority section)\n"
" +[no]badcookie (Retry BADCOOKIE responses)\n"
" +[no]besteffort (Try to parse even illegal messages)\n"
" +bufsize=### (Set EDNS0 Max UDP packet size)\n"
" +bufsize[=###] (Set EDNS0 Max UDP packet size)\n"
" +[no]cdflag (Set checking disabled flag in query)\n"
" +[no]class (Control display of class in records)\n"
" +[no]cmd (Control display of command line)\n"
" +[no]comments (Control display of comment lines)\n"
" +[no]cmd (Control display of command line -\n"
" global option)\n"
" +[no]comments (Control display of packet header\n"
" and section name comments)\n"
" +[no]cookie (Add a COOKIE option to the request)\n"
" +[no]crypto (Control display of cryptographic "
"fields in records)\n"
" +[no]crypto (Control display of cryptographic\n"
" fields in records)\n"
" +[no]defname (Use search list (+[no]search))\n"
" +[no]dnssec (Request DNSSEC records)\n"
" +domain=### (Set default domainname)\n"
@@ -196,10 +198,12 @@ help(void) {
" +[no]identify (ID responders in short answers)\n"
#ifdef HAVE_LIBIDN2
" +[no]idnin (Parse IDN names [default=on on tty])\n"
" +[no]idnout (Convert IDN response [default=on on tty])\n"
" +[no]idnout (Convert IDN response "
"[default=on on tty])\n"
#endif
" +[no]ignore (Don't revert to TCP for TC responses.)\n"
" +[no]keepopen (Keep the TCP socket open between queries)\n"
" +[no]keepopen (Keep the TCP socket open between "
"queries)\n"
" +[no]mapped (Allow mapped IPv4 over IPv6)\n"
" +[no]multiline (Print records in an expanded format)\n"
" +ndots=### (Set search NDOTS value)\n"
@@ -216,7 +220,7 @@ help(void) {
"comments)\n"
" +[no]search (Set whether to use searchlist)\n"
" +[no]short (Display nothing except short\n"
" form of answer)\n"
" form of answers - global option)\n"
" +[no]showsearch (Search with intermediate results)\n"
#ifdef DIG_SIGCHASE
" +[no]sigchase (Chase DNSSEC signatures)\n"
@@ -229,14 +233,16 @@ help(void) {
#if defined(DIG_SIGCHASE) && DIG_SIGCHASE_TD
" +[no]topdown (Do +sigchase in top-down mode)\n"
#endif
" +[no]trace (Trace delegation down from root [+dnssec])\n"
" +[no]trace (Trace delegation down from root "
"[+dnssec])\n"
#ifdef DIG_SIGCHASE
" +trusted-key=#### (Trusted Key to use with +sigchase)\n"
#endif
" +tries=### (Set number of UDP attempts) [3]\n"
" +[no]ttlid (Control display of ttls in records)\n"
" +[no]ttlunits (Display TTLs in human-readable units)\n"
" +[no]unknownformat (Print RDATA in RFC 3597 \"unknown\" format)\n"
" +[no]unknownformat (Print RDATA in RFC 3597 \"unknown\" "
"format)\n"
" +[no]vc (TCP mode (+[no]tcp))\n"
" +[no]zflag (Set Z flag in query)\n"
" global d-opts and servers (before host name) affect all queries.\n"
@@ -271,11 +277,7 @@ received(unsigned int bytes, isc_sockaddr_t *from, dig_query_t *query) {
printf(";; Query time: %ld msec\n", (long) diff / 1000);
printf(";; SERVER: %s(%s)\n", fromtext, query->servname);
time(&tnow);
#if defined(ISC_PLATFORM_USETHREADS) && !defined(WIN32)
(void)localtime_r(&tnow, &tmnow);
#else
tmnow = *localtime(&tnow);
#endif
#ifdef WIN32
/*
@@ -565,8 +567,9 @@ printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
check_result(result, "dns_master_stylecreate");
if (query->lookup->cmdline[0] != 0) {
if (!short_form)
if (!short_form && printcmd) {
fputs(query->lookup->cmdline, stdout);
}
query->lookup->cmdline[0]=0;
}
debug("printmessage(%s %s %s)", headers ? "headers" : "noheaders",
@@ -588,7 +591,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
check_result(result, "isc_buffer_allocate");
if (query->lookup->comments && !short_form) {
if (query->lookup->cmdline[0] != 0)
if (query->lookup->cmdline[0] != 0 && printcmd)
printf("; %s\n", query->lookup->cmdline);
if (msg == query->lookup->sendmsg)
printf(";; Sending:\n");
@@ -892,15 +895,21 @@ plus_option(const char *option, bool is_batchfile,
break;
case 'u':/* bufsize */
FULLCHECK("bufsize");
if (value == NULL)
goto need_value;
if (!state)
if (!state) {
goto invalid_option;
}
if (value == NULL) {
lookup->udpsize = DEFAULT_EDNS_BUFSIZE;
break;
}
result = parse_uint(&num, value, COMMSIZE,
"buffer size");
if (result != ISC_R_SUCCESS)
fatal("Couldn't parse buffer size");
lookup->udpsize = num;
if (lookup->udpsize == 0) {
lookup->edns = -1;
}
break;
default:
goto invalid_option;
@@ -938,8 +947,9 @@ plus_option(const char *option, bool is_batchfile,
break;
case 'o': /* cookie */
FULLCHECK("cookie");
if (state && lookup->edns == -1)
lookup->edns = 0;
if (state && lookup->edns == -1) {
lookup->edns = DEFAULT_EDNS_VERSION;
}
lookup->sendcookie = state;
if (value != NULL) {
n = strlcpy(hexcookie, value,
@@ -972,8 +982,9 @@ plus_option(const char *option, bool is_batchfile,
break;
case 'n': /* dnssec */
FULLCHECK("dnssec");
if (state && lookup->edns == -1)
lookup->edns = 0;
if (state && lookup->edns == -1) {
lookup->edns = DEFAULT_EDNS_VERSION;
}
lookup->dnssec = state;
break;
case 'o': /* domain */
@@ -1016,7 +1027,8 @@ plus_option(const char *option, bool is_batchfile,
break;
}
if (value == NULL) {
lookup->edns = 0;
lookup->edns =
DEFAULT_EDNS_VERSION;
break;
}
result = parse_uint(&num,
@@ -1177,8 +1189,9 @@ plus_option(const char *option, bool is_batchfile,
switch (cmd[2]) {
case 'i': /* nsid */
FULLCHECK("nsid");
if (state && lookup->edns == -1)
lookup->edns = 0;
if (state && lookup->edns == -1) {
lookup->edns = DEFAULT_EDNS_VERSION;
}
lookup->nsid = state;
break;
case 's': /* nssearch */
@@ -1382,8 +1395,9 @@ plus_option(const char *option, bool is_batchfile,
}
break;
}
if (lookup->edns == -1)
lookup->edns = 0;
if (lookup->edns == -1) {
lookup->edns = DEFAULT_EDNS_VERSION;
}
if (lookup->ecs_addr != NULL) {
isc_mem_free(mctx, lookup->ecs_addr);
lookup->ecs_addr = NULL;
@@ -1431,7 +1445,7 @@ plus_option(const char *option, bool is_batchfile,
lookup->trace = state;
lookup->trace_root = state;
if (state) {
lookup->recurse = false;
lookup->recurse = true;
lookup->identify = true;
lookup->comments = false;
rrcomments = 0;
@@ -1923,7 +1937,7 @@ parse_args(bool is_batchfile, bool config_only,
debug("making new lookup");
default_lookup = make_empty_lookup();
default_lookup->adflag = true;
default_lookup->edns = 0;
default_lookup->edns = DEFAULT_EDNS_VERSION;
default_lookup->sendcookie = true;
#ifndef NOPOSIX
+42 -23
View File
@@ -5,14 +5,14 @@
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- file, you can obtain one at https://mozilla.org/MPL/2.0/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
-->
<!-- Converted by db4-upgrade version 1.0 -->
<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.dig">
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="man.dig">
<info>
<date>2014-02-19</date>
</info>
@@ -53,6 +53,8 @@
<year>2017</year>
<year>2018</year>
<year>2019</year>
<year>2020</year>
<year>2021</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
@@ -569,12 +571,14 @@
<term><option>+bufsize=B</option></term>
<listitem>
<para>
Set the UDP message buffer size advertised using EDNS0
to <parameter>B</parameter> bytes. The maximum and
minimum sizes of this buffer are 65535 and 0 respectively.
Values outside this range are rounded up or down
appropriately. Values other than zero will cause a
EDNS query to be sent.
This option sets the UDP message buffer size advertised
using EDNS0 to <parameter>B</parameter> bytes. The
maximum and minimum sizes of this buffer are 65535
and 0, respectively. <literal>+bufsize=0</literal>
disables EDNS (use <literal>+bufsize=0 +edns</literal>
to send a EDNS messages with a advertised size of 0
bytes). <literal>+bufsize</literal> restores the
default buffer size.
</para>
</listitem>
</varlistentry>
@@ -605,9 +609,11 @@
<listitem>
<para>
Toggles the printing of the initial comment in the
output identifying the version of <command>dig</command>
and the query options that have been applied. This
comment is printed by default.
output, identifying the version of <command>dig</command>
and the query options that have been applied. This option
always has global effect; it cannot be set globally
and then overridden on a per-lookup basis. The default
is to print this comment.
</para>
</listitem>
</varlistentry>
@@ -616,8 +622,18 @@
<term><option>+[no]comments</option></term>
<listitem>
<para>
Toggle the display of comment lines in the output.
The default is to print comments.
Toggles the display of some comment lines in the output,
containing information about the packet header and
OPT pseudosection, and the names of the response
section. The default is to print these comments.
</para>
<para>
Other types of comments in the output are not affected by
this option, but can be controlled using other command
line switches. These include <command>+[no]cmd</command>,
<command>+[no]question</command>,
<command>+[no]stats</command>, and
<command>+[no]rrcomments</command>.
</para>
</listitem>
</varlistentry>
@@ -940,8 +956,8 @@
<term><option>+[no]qr</option></term>
<listitem>
<para>
Print [do not print] the query as it is sent. By
default, the query is not printed.
Toggles the display of the query message as it is sent.
By default, the query is not printed.
</para>
</listitem>
</varlistentry>
@@ -950,7 +966,7 @@
<term><option>+[no]question</option></term>
<listitem>
<para>
Print [do not print] the question section of a query
Toggles the display of the question section of a query
when an answer is returned. The default is to print
the question section as a comment.
</para>
@@ -974,8 +990,10 @@
in the query. This bit is set by default, which means
<command>dig</command> normally sends recursive
queries. Recursion is automatically disabled when
the <parameter>+nssearch</parameter> or
<parameter>+trace</parameter> query options are used.
using the <parameter>+nssearch</parameter> option, and
when using <parameter>+trace</parameter> except for
an initial recursive query to get the list of root
servers.
</para>
</listitem>
</varlistentry>
@@ -1028,7 +1046,9 @@
<listitem>
<para>
Provide a terse answer. The default is to print the
answer in a verbose form.
answer in a verbose form. This option always has global
effect; it cannot be set globally and then overridden on
a per-lookup basis.
</para>
</listitem>
</varlistentry>
@@ -1074,10 +1094,9 @@
<term><option>+[no]stats</option></term>
<listitem>
<para>
This query option toggles the printing of statistics:
when the query was made, the size of the reply and
so on. The default behavior is to print the query
statistics.
Toggles the printing of statistics: when the query was made,
the size of the reply and so on. The default behavior is to
print the query statistics as a comment after each lookup.
</para>
</listitem>
</varlistentry>
+268 -477
View File
File diff suppressed because it is too large Load Diff
+87 -39
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
@@ -60,6 +60,7 @@
#include <dns/log.h>
#include <dns/message.h>
#include <dns/name.h>
#include <dns/opcode.h>
#include <dns/rcode.h>
#include <dns/rdata.h>
#include <dns/rdataclass.h>
@@ -845,7 +846,7 @@ make_empty_lookup(void) {
looknew->rdclass_sigchaseset = false;
#endif
#endif
looknew->udpsize = 0;
looknew->udpsize = -1;
looknew->edns = -1;
looknew->recurse = true;
looknew->aaonly = false;
@@ -1670,19 +1671,23 @@ typedef struct dig_ednsoptname {
} dig_ednsoptname_t;
dig_ednsoptname_t optnames[] = {
{ 3, "NSID" }, /* RFC 5001 */
{ 5, "DAU" }, /* RFC 6975 */
{ 6, "DHU" }, /* RFC 6975 */
{ 7, "N3U" }, /* RFC 6975 */
{ 8, "ECS" }, /* RFC 7871 */
{ 9, "EXPIRE" }, /* RFC 7314 */
{ 10, "COOKIE" }, /* RFC 7873 */
{ 11, "KEEPALIVE" }, /* RFC 7828 */
{ 12, "PADDING" }, /* RFC 7830 */
{ 12, "PAD" }, /* shorthand */
{ 13, "CHAIN" }, /* RFC 7901 */
{ 14, "KEY-TAG" }, /* RFC 8145 */
{ 26946, "DEVICEID" }, /* Brian Hartvigsen */
{ 1, "LLQ" }, /* draft-sekar-dns-llq */
{ 3, "NSID" }, /* RFC 5001 */
{ 5, "DAU" }, /* RFC 6975 */
{ 6, "DHU" }, /* RFC 6975 */
{ 7, "N3U" }, /* RFC 6975 */
{ 8, "ECS" }, /* RFC 7871 */
{ 9, "EXPIRE" }, /* RFC 7314 */
{ 10, "COOKIE" }, /* RFC 7873 */
{ 11, "KEEPALIVE" }, /* RFC 7828 */
{ 12, "PADDING" }, /* RFC 7830 */
{ 12, "PAD" }, /* shorthand */
{ 13, "CHAIN" }, /* RFC 7901 */
{ 14, "KEY-TAG" }, /* RFC 8145 */
{ 15, "EDE" }, /* ietf-dnsop-extended-error-16 */
{ 16, "CLIENT-TAG" }, /* draft-bellis-dnsop-edns-tags */
{ 17, "SERVER-TAG" }, /* draft-bellis-dnsop-edns-tags */
{ 26946, "DEVICEID" }, /* Brian Hartvigsen */
};
#define N_EDNS_OPTNAMES (sizeof(optnames) / sizeof(optnames[0]))
@@ -1902,7 +1907,7 @@ destroy_lookup(dig_lookup_t *lookup) {
isc_mem_free(mctx, ptr);
}
if (lookup->sendmsg != NULL)
dns_message_destroy(&lookup->sendmsg);
dns_message_detach(&lookup->sendmsg);
if (lookup->querysig != NULL) {
debug("freeing buffer %p", lookup->querysig);
isc_buffer_free(&lookup->querysig);
@@ -2382,13 +2387,14 @@ setup_lookup(dig_lookup_t *lookup) {
char idn_origin[MXNAME], idn_textname[MXNAME];
#endif
REQUIRE(lookup != NULL);
#ifdef WITH_IDN_OUT_SUPPORT
result = dns_name_settotextfilter(lookup->idnout ?
output_filter : NULL);
check_result(result, "dns_name_settotextfilter");
#endif
REQUIRE(lookup != NULL);
INSIST(!free_now);
debug("setup_lookup(%p)", lookup);
@@ -2540,12 +2546,14 @@ setup_lookup(dig_lookup_t *lookup) {
lookup->sendmsg->id = (unsigned short)id & 0xFFFF;
lookup->sendmsg->opcode = lookup->opcode;
lookup->msgcounter = 0;
/*
* If this is a trace request, completely disallow recursion, since
* it's meaningless for traces.
* If this is a trace request, completely disallow recursion after
* looking up the root name servers, since it's meaningless for traces.
*/
if (lookup->trace || (lookup->ns_search_only && !lookup->trace_root))
if ((lookup->trace || lookup->ns_search_only) && !lookup->trace_root) {
lookup->recurse = false;
}
if (lookup->recurse &&
lookup->rdtype != dns_rdatatype_axfr &&
@@ -2633,10 +2641,12 @@ setup_lookup(dig_lookup_t *lookup) {
unsigned int flags;
unsigned int i = 0;
if (lookup->udpsize == 0)
lookup->udpsize = 4096;
if (lookup->edns < 0)
lookup->edns = 0;
if (lookup->udpsize < 0) {
lookup->udpsize = DEFAULT_EDNS_BUFSIZE;
}
if (lookup->edns < 0) {
lookup->edns = DEFAULT_EDNS_VERSION;
}
if (lookup->nsid) {
INSIST(i < MAXOPTS);
@@ -4003,7 +4013,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
printf(";; Got bad packet: %s\n", isc_result_totext(result));
hex_dump(b);
query->waiting_connect = false;
dns_message_destroy(&msg);
dns_message_detach(&msg);
isc_event_free(&event);
clear_query(query);
cancel_lookup(l);
@@ -4011,6 +4021,33 @@ recv_done(isc_task_t *task, isc_event_t *event) {
UNLOCK_LOOKUP;
return;
}
if (msg->opcode != l->opcode) {
isc_buffer_t bb;
char expect[20] = { 0 }, got[20] = { 0 };
isc_buffer_init(&bb, &expect, sizeof(expect));
result = dns_opcode_totext(l->opcode, &bb);
check_result(result, "dns_opcode_totext");
isc_buffer_init(&bb, &got, sizeof(got));
result = dns_opcode_totext(msg->opcode, &bb);
check_result(result, "dns_opcode_totext");
printf(";; Warning: Opcode mismatch: expected %s, got %s",
expect, got);
dns_message_detach(&msg);
if (l->tcp_mode) {
isc_event_free(&event);
clear_query(query);
cancel_lookup(l);
check_next_lookup(l);
UNLOCK_LOOKUP;
return;
} else {
goto udp_mismatch;
}
}
if (msg->counts[DNS_SECTION_QUESTION] != 0) {
match = true;
for (result = dns_message_firstname(msg, DNS_SECTION_QUESTION);
@@ -4046,7 +4083,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
}
}
if (!match) {
dns_message_destroy(&msg);
dns_message_detach(&msg);
if (l->tcp_mode) {
isc_event_free(&event);
clear_query(query);
@@ -4070,7 +4107,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
n = requeue_lookup(l, true);
if (l->trace && l->trace_root)
n->rdtype = l->qrdtype;
dns_message_destroy(&msg);
dns_message_detach(&msg);
isc_event_free(&event);
clear_query(query);
cancel_lookup(l);
@@ -4088,7 +4125,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
n->tcp_mode = true;
if (l->trace && l->trace_root)
n->rdtype = l->qrdtype;
dns_message_destroy(&msg);
dns_message_detach(&msg);
isc_event_free(&event);
clear_query(query);
cancel_lookup(l);
@@ -4109,7 +4146,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
n->seenbadcookie = true;
if (l->trace && l->trace_root)
n->rdtype = l->qrdtype;
dns_message_destroy(&msg);
dns_message_detach(&msg);
isc_event_free(&event);
clear_query(query);
cancel_lookup(l);
@@ -4148,7 +4185,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
query->servname);
clear_query(query);
check_next_lookup(l);
dns_message_destroy(&msg);
dns_message_detach(&msg);
isc_event_free(&event);
UNLOCK_LOOKUP;
return;
@@ -4323,7 +4360,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
debug("still pending.");
if (l->doing_xfr) {
if (query != l->xfr_q) {
dns_message_destroy(&msg);
dns_message_detach(&msg);
isc_event_free(&event);
query->waiting_connect = false;
UNLOCK_LOOKUP;
@@ -4332,7 +4369,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
if (!docancel)
docancel = check_for_more_data(query, msg, sevent);
if (docancel) {
dns_message_destroy(&msg);
dns_message_detach(&msg);
clear_query(query);
cancel_lookup(l);
check_next_lookup(l);
@@ -4354,7 +4391,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
#ifdef DIG_SIGCHASE
if (!do_sigchase)
#endif
dns_message_destroy(&msg);
dns_message_detach(&msg);
cancel_lookup(l);
}
@@ -4367,7 +4404,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
msg = NULL;
else
#endif
dns_message_destroy(&msg);
dns_message_detach(&msg);
}
isc_event_free(&event);
UNLOCK_LOOKUP;
@@ -4621,7 +4658,7 @@ destroy_libs(void) {
while (chase_msg != NULL) {
INSIST(chase_msg->msg != NULL);
dns_message_destroy(&(chase_msg->msg));
dns_message_detach(&(chase_msg->msg));
ptr = chase_msg;
chase_msg = ISC_LIST_NEXT(chase_msg, link);
isc_mem_free(mctx, ptr);
@@ -4631,7 +4668,7 @@ destroy_libs(void) {
while (chase_msg != NULL) {
INSIST(chase_msg->msg != NULL);
dns_message_destroy(&(chase_msg->msg));
dns_message_detach(&(chase_msg->msg));
ptr = chase_msg;
chase_msg = ISC_LIST_NEXT(chase_msg, link);
isc_mem_free(mctx, ptr);
@@ -4860,9 +4897,20 @@ idn_ace_to_locale(const char *from, char *to, size_t tolen) {
*/
res = idn2_to_unicode_8zlz(utf8_src, &tmp_str, 0);
if (res != IDN2_OK) {
fatal("Cannot represent '%s' in the current locale (%s), "
"use +noidnout or a different locale",
from, idn2_strerror(res));
static bool warned = false;
res = idn2_to_ascii_8z(utf8_src, &tmp_str, 0);
if (res != IDN2_OK) {
fatal("Cannot represent '%s' "
"in the current locale nor ascii (%s), "
"use +noidnout or a different locale",
from, idn2_strerror(res));
} else if (!warned) {
fprintf(stderr, ";; Warning: cannot represent '%s' "
"in the current locale",
tmp_str);
warned = true;
}
}
/*
+9 -4
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2000-2002, 2004, 2005, 2007-2009, 2014-2019 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2000-2002, 2004, 2005, 2007-2009, 2014-2021 Internet Systems Consortium, Inc. ("ISC")
.\"
.\" This Source Code Form is subject to the terms of the Mozilla Public
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -9,7 +9,7 @@
'\" t
.\" Title: host
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 2009-01-20
.\" Manual: BIND9
.\" Source: ISC
@@ -39,7 +39,7 @@
host \- DNS lookup utility
.SH "SYNOPSIS"
.HP \w'\fBhost\fR\ 'u
\fBhost\fR [\fB\-aCdlnrsTUwv\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-N\ \fR\fB\fIndots\fR\fR] [\fB\-R\ \fR\fB\fInumber\fR\fR] [\fB\-t\ \fR\fB\fItype\fR\fR] [\fB\-W\ \fR\fB\fIwait\fR\fR] [\fB\-m\ \fR\fB\fIflag\fR\fR] [[\fB\-4\fR] | [\fB\-6\fR]] [\fB\-v\fR] [\fB\-V\fR] {name} [server]
\fBhost\fR [\fB\-aCdlnrsTUwv\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-N\ \fR\fB\fIndots\fR\fR] [\fB\-p\ \fR\fB\fIport\fR\fR] [\fB\-R\ \fR\fB\fInumber\fR\fR] [\fB\-t\ \fR\fB\fItype\fR\fR] [\fB\-W\ \fR\fB\fIwait\fR\fR] [\fB\-m\ \fR\fB\fIflag\fR\fR] [[\fB\-4\fR] | [\fB\-6\fR]] [\fB\-v\fR] [\fB\-V\fR] {name} [server]
.SH "DESCRIPTION"
.PP
\fBhost\fR
@@ -134,6 +134,11 @@ directive in
/etc/resolv\&.conf\&.
.RE
.PP
\-p \fIport\fR
.RS 4
Specify the port on the server to query\&. The default is 53\&.
.RE
.PP
\-r
.RS 4
Non\-recursive query: Setting this option clears the RD (recursion desired) bit in the query\&. This should mean that the name server receiving the query will not attempt to resolve
@@ -265,5 +270,5 @@ runs\&.
\fBInternet Systems Consortium, Inc\&.\fR
.SH "COPYRIGHT"
.br
Copyright \(co 2000-2002, 2004, 2005, 2007-2009, 2014-2019 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2000-2002, 2004, 2005, 2007-2009, 2014-2021 Internet Systems Consortium, Inc. ("ISC")
.br
+8 -2
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
@@ -153,6 +153,7 @@ show_usage(void) {
" -l lists all hosts in a domain, using AXFR\n"
" -m set memory debugging flag (trace|record|usage)\n"
" -N changes the number of dots allowed before root lookup is done\n"
" -p specifies the port on the server to query\n"
" -r disables recursive processing\n"
" -R specifies number of retries for UDP packets\n"
" -s a SERVFAIL response should stop query\n"
@@ -598,7 +599,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
return (result);
}
static const char * optstring = "46ac:dilnm:rst:vVwCDN:R:TUW:";
static const char * optstring = "46ac:dilnm:p:rst:vVwCDN:R:TUW:";
/*% version */
static void
@@ -647,6 +648,7 @@ pre_parse_args(int argc, char **argv) {
case 'l': break;
case 'n': break;
case 'N': break;
case 'p': break;
case 'r': break;
case 'R': break;
case 's': break;
@@ -685,6 +687,7 @@ parse_args(bool is_batchfile, int argc, char **argv) {
lookup = make_empty_lookup();
lookup->servfail_stops = false;
lookup->besteffort = false;
lookup->comments = false;
short_form = !verbose;
@@ -845,6 +848,9 @@ parse_args(bool is_batchfile, int argc, char **argv) {
case 's':
lookup->servfail_stops = true;
break;
case 'p':
port = atoi(isc_commandline_argument);
break;
}
}
+14 -2
View File
@@ -5,14 +5,14 @@
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- file, you can obtain one at https://mozilla.org/MPL/2.0/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
-->
<!-- Converted by db4-upgrade version 1.0 -->
<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.host">
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="man.host">
<info>
<date>2009-01-20</date>
</info>
@@ -48,6 +48,8 @@
<year>2017</year>
<year>2018</year>
<year>2019</year>
<year>2020</year>
<year>2021</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
@@ -58,6 +60,7 @@
<arg choice="opt" rep="norepeat"><option>-aCdlnrsTUwv</option></arg>
<arg choice="opt" rep="norepeat"><option>-c <replaceable class="parameter">class</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-N <replaceable class="parameter">ndots</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-p <replaceable class="port">port</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-R <replaceable class="parameter">number</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-t <replaceable class="parameter">type</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-W <replaceable class="parameter">wait</replaceable></option></arg>
@@ -214,6 +217,15 @@
</listitem>
</varlistentry>
<varlistentry>
<term>-p <replaceable class="parameter">port</replaceable></term>
<listitem>
<para>
Specify the port on the server to query. The default is 53.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-r</term>
<listitem>
+71 -146
View File
@@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
- Copyright (C) 2000-2002, 2004, 2005, 2007-2009, 2014-2019 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2002, 2004, 2005, 2007-2009, 2014-2021 Internet Systems Consortium, Inc. ("ISC")
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -10,60 +10,28 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>host</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry">
<a name="man.host"></a><div class="titlepage"></div>
<div class="refnamediv">
<div class="refnamediv">
<h2>Name</h2>
<p>
host
&#8212; DNS lookup utility
</p>
<p>host &#8212; DNS lookup utility</p>
</div>
<div class="refsynopsisdiv">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="cmdsynopsis"><p>
<code class="command">host</code>
[<code class="option">-aCdlnrsTUwv</code>]
[<code class="option">-c <em class="replaceable"><code>class</code></em></code>]
[<code class="option">-N <em class="replaceable"><code>ndots</code></em></code>]
[<code class="option">-R <em class="replaceable"><code>number</code></em></code>]
[<code class="option">-t <em class="replaceable"><code>type</code></em></code>]
[<code class="option">-W <em class="replaceable"><code>wait</code></em></code>]
[<code class="option">-m <em class="replaceable"><code>flag</code></em></code>]
[
[<code class="option">-4</code>]
| [<code class="option">-6</code>]
]
[<code class="option">-v</code>]
[<code class="option">-V</code>]
{name}
[server]
</p></div>
</div>
<div class="refsection">
<div class="cmdsynopsis"><p><code class="command">host</code> [<code class="option">-aCdlnrsTUwv</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-N <em class="replaceable"><code>ndots</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-R <em class="replaceable"><code>number</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-W <em class="replaceable"><code>wait</code></em></code>] [<code class="option">-m <em class="replaceable"><code>flag</code></em></code>] [[<code class="option">-4</code>] | [<code class="option">-6</code>]] [<code class="option">-v</code>] [<code class="option">-V</code>] {name} [server]</p></div>
</div>
<div class="refsection">
<a name="id-1.7"></a><h2>DESCRIPTION</h2>
<p><span class="command"><strong>host</strong></span>
<p><span class="command"><strong>host</strong></span>
is a simple utility for performing DNS lookups.
It is normally used to convert names to IP addresses and vice versa.
When no arguments or options are given,
<span class="command"><strong>host</strong></span>
prints a short summary of its command line arguments and options.
</p>
<p><em class="parameter"><code>name</code></em> is the domain name that is to be
<p><em class="parameter"><code>name</code></em> is the domain name that is to be
looked
up. It can also be a dotted-decimal IPv4 address or a colon-delimited
IPv6 address, in which case <span class="command"><strong>host</strong></span> will by
@@ -75,86 +43,68 @@
should query instead of the server or servers listed in
<code class="filename">/etc/resolv.conf</code>.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.8"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl class="variablelist">
<div class="variablelist"><dl class="variablelist">
<dt><span class="term">-4</span></dt>
<dd>
<p>
<dd><p>
Use IPv4 only for query transport.
See also the <code class="option">-6</code> option.
</p>
</dd>
</p></dd>
<dt><span class="term">-6</span></dt>
<dd>
<p>
<dd><p>
Use IPv6 only for query transport.
See also the <code class="option">-4</code> option.
</p>
</dd>
</p></dd>
<dt><span class="term">-a</span></dt>
<dd>
<p>
<dd><p>
"All". The <code class="option">-a</code> option is normally equivalent
to <code class="option">-v -t <code class="literal">ANY</code></code>.
It also affects the behaviour of the <code class="option">-l</code>
list zone option.
</p>
</dd>
</p></dd>
<dt><span class="term">-c <em class="replaceable"><code>class</code></em></span></dt>
<dd>
<p>
<dd><p>
Query class: This can be used to lookup HS (Hesiod) or CH
(Chaosnet) class resource records. The default class is IN
(Internet).
</p>
</dd>
</p></dd>
<dt><span class="term">-C</span></dt>
<dd>
<p>
<dd><p>
Check consistency: <span class="command"><strong>host</strong></span> will query the
SOA records for zone <em class="parameter"><code>name</code></em> from all
the listed authoritative name servers for that zone. The
list of name servers is defined by the NS records that are
found for the zone.
</p>
</dd>
</p></dd>
<dt><span class="term">-d</span></dt>
<dd>
<p>
<dd><p>
Print debugging traces.
Equivalent to the <code class="option">-v</code> verbose option.
</p>
</dd>
</p></dd>
<dt><span class="term">-i</span></dt>
<dd>
<p>
<dd><p>
Obsolete.
Use the IP6.INT domain for reverse lookups of IPv6
addresses as defined in RFC1886 and deprecated in RFC4159.
The default is to use IP6.ARPA as specified in RFC3596.
</p>
</dd>
</p></dd>
<dt><span class="term">-l</span></dt>
<dd>
<p>
<p>
List zone:
The <span class="command"><strong>host</strong></span> command performs a zone transfer of
zone <em class="parameter"><code>name</code></em> and prints out the NS,
PTR and address records (A/AAAA).
</p>
<p>
<p>
Together, the <code class="option">-l -a</code>
options print all records in the zone.
</p>
</dd>
</dd>
<dt><span class="term">-N <em class="replaceable"><code>ndots</code></em></span></dt>
<dd>
<p>
<dd><p>
The number of dots that have to be
in <em class="parameter"><code>name</code></em> for it to be considered
absolute. The default value is that defined using the
@@ -164,11 +114,13 @@
searched for in the domains listed in
the <span class="type">search</span> or <span class="type">domain</span> directive
in <code class="filename">/etc/resolv.conf</code>.
</p>
</dd>
</p></dd>
<dt><span class="term">-p <em class="replaceable"><code>port</code></em></span></dt>
<dd><p>
Specify the port on the server to query. The default is 53.
</p></dd>
<dt><span class="term">-r</span></dt>
<dd>
<p>
<dd><p>
Non-recursive query:
Setting this option clears the RD (recursion desired) bit
in the query. This should mean that the name server
@@ -179,35 +131,30 @@
name server by making non-recursive queries and expecting
to receive answers to those queries that can be
referrals to other name servers.
</p>
</dd>
</p></dd>
<dt><span class="term">-R <em class="replaceable"><code>number</code></em></span></dt>
<dd>
<p>
<dd><p>
Number of retries for UDP queries:
If <em class="parameter"><code>number</code></em> is negative or zero, the
number of retries will default to 1. The default value is
1, or the value of the <em class="parameter"><code>attempts</code></em>
option in <code class="filename">/etc/resolv.conf</code>, if set.
</p>
</dd>
</p></dd>
<dt><span class="term">-s</span></dt>
<dd>
<p>
<dd><p>
Do <span class="emphasis"><em>not</em></span> send the query to the next
nameserver if any server responds with a SERVFAIL
response, which is the reverse of normal stub resolver
behavior.
</p>
</dd>
</p></dd>
<dt><span class="term">-t <em class="replaceable"><code>type</code></em></span></dt>
<dd>
<p>
<p>
Query type:
The <em class="parameter"><code>type</code></em> argument can be any
recognized query type: CNAME, NS, SOA, TXT, DNSKEY, AXFR, etc.
</p>
<p>
<p>
When no query type is specified, <span class="command"><strong>host</strong></span>
automatically selects an appropriate query type. By default, it
looks for A, AAAA, and MX records.
@@ -218,18 +165,17 @@
address, <span class="command"><strong>host</strong></span> will query for PTR
records.
</p>
<p>
<p>
If a query type of IXFR is chosen the starting serial
number can be specified by appending an equal followed by
the starting serial number
(like <code class="option">-t <code class="literal">IXFR=12345678</code></code>).
</p>
</dd>
</dd>
<dt>
<span class="term">-T, </span><span class="term">-U</span>
</dt>
<dd>
<p>
<dd><p>
TCP/UDP:
By default, <span class="command"><strong>host</strong></span> uses UDP when making
queries. The <code class="option">-T</code> option makes it use a TCP
@@ -237,67 +183,55 @@
automatically selected for queries that require it, such
as zone transfer (AXFR) requests. Type ANY queries default
to TCP but can be forced to UDP initially using <code class="option">-U</code>.
</p>
</dd>
</p></dd>
<dt><span class="term">-m <em class="replaceable"><code>flag</code></em></span></dt>
<dd>
<p>
<dd><p>
Memory usage debugging: the flag can
be <em class="parameter"><code>record</code></em>, <em class="parameter"><code>usage</code></em>,
or <em class="parameter"><code>trace</code></em>. You can specify
the <code class="option">-m</code> option more than once to set
multiple flags.
</p>
</dd>
</p></dd>
<dt><span class="term">-v</span></dt>
<dd>
<p>
<dd><p>
Verbose output.
Equivalent to the <code class="option">-d</code> debug option.
Verbose output can also be enabled by setting
the <em class="parameter"><code>debug</code></em> option
in <code class="filename">/etc/resolv.conf</code>.
</p>
</dd>
</p></dd>
<dt><span class="term">-V</span></dt>
<dd>
<p>
<dd><p>
Print the version number and exit.
</p>
</dd>
</p></dd>
<dt><span class="term">-w</span></dt>
<dd>
<p>
<dd><p>
Wait forever: The query timeout is set to the maximum possible.
See also the <code class="option">-W</code> option.
</p>
</dd>
</p></dd>
<dt><span class="term">-W <em class="replaceable"><code>wait</code></em></span></dt>
<dd>
<p>
<p>
Timeout: Wait for up to <em class="parameter"><code>wait</code></em>
seconds for a reply. If <em class="parameter"><code>wait</code></em> is
less than one, the wait interval is set to one second.
</p>
<p>
<p>
By default, <span class="command"><strong>host</strong></span> will wait for 5
seconds for UDP responses and 10 seconds for TCP
connections. These defaults can be overridden by
the <em class="parameter"><code>timeout</code></em> option
in <code class="filename">/etc/resolv.conf</code>.
</p>
<p>
<p>
See also the <code class="option">-w</code> option.
</p>
</dd>
</dd>
</dl></div>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.9"></a><h2>IDN SUPPORT</h2>
<p>
<p>
If <span class="command"><strong>host</strong></span> has been built with IDN (internationalized
domain name) support, it can accept and display non-ASCII domain names.
<span class="command"><strong>host</strong></span> appropriately converts character encoding of
@@ -308,26 +242,17 @@
The IDN support is disabled if the variable is set when
<span class="command"><strong>host</strong></span> runs.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.10"></a><h2>FILES</h2>
<p><code class="filename">/etc/resolv.conf</code>
<p><code class="filename">/etc/resolv.conf</code>
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.11"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry">
<span class="refentrytitle">dig</span>(1)
</span>,
<span class="citerefentry">
<span class="refentrytitle">named</span>(8)
</span>.
<p><span class="citerefentry"><span class="refentrytitle">dig</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>.
</p>
</div>
</div>
</div></body>
</html>
+6 -2
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
@@ -63,6 +63,10 @@
#define SERVER_TIMEOUT 1
#define LOOKUP_LIMIT 64
#define DEFAULT_EDNS_VERSION 0
#define DEFAULT_EDNS_BUFSIZE 4096
/*%
* Lookup_limit is just a limiter, keeping too many lookups from being
* created. It's job is mainly to prevent the program from running away
@@ -180,7 +184,7 @@ bool sigchase;
dig_query_t *xfr_q;
uint32_t retries;
int nsfound;
uint16_t udpsize;
int16_t udpsize;
int16_t edns;
uint32_t ixfr_serial;
isc_buffer_t rdatabuf;
+8 -4
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2004-2007, 2010, 2013-2019 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2004-2007, 2010, 2013-2021 Internet Systems Consortium, Inc. ("ISC")
.\"
.\" This Source Code Form is subject to the terms of the Mozilla Public
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -9,7 +9,7 @@
'\" t
.\" Title: nslookup
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 2014-01-24
.\" Manual: BIND9
.\" Source: ISC
@@ -85,6 +85,7 @@ nslookup \-query=hinfo \-timeout=10
.if n \{\
.RE
.\}
.sp
.PP
The
\fB\-version\fR
@@ -233,7 +234,10 @@ Change the default TCP/UDP name server port to
.RS 4
Change the type of the information query\&.
.sp
(Default = A; abbreviations = q, ty)
(Default = A and then AAAA; abbreviations = q, ty)
.sp
\fBNote:\fR
It is only possible to specify one query type, only the default behavior looks up both when an alternative is not specified\&.
.RE
.PP
\fB\fI[no]\fR\fR\fBrecurse\fR
@@ -301,5 +305,5 @@ runs or when the standard output is not a tty\&.
\fBInternet Systems Consortium, Inc\&.\fR
.SH "COPYRIGHT"
.br
Copyright \(co 2004-2007, 2010, 2013-2019 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2004-2007, 2010, 2013-2021 Internet Systems Consortium, Inc. ("ISC")
.br
+10 -4
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
@@ -48,6 +48,11 @@
#elif defined(HAVE_EDITLINE_READLINE_H)
#include <editline/readline.h>
#elif defined(HAVE_READLINE_READLINE_H)
/* Prevent deprecated functions being declared. */
#define _FUNCTION_DEF 1
/* Ensure rl_message() gets prototype. */
#define USE_VARARGS 1
#define PREFER_STDARG 1
#include <readline/readline.h>
#if defined (HAVE_READLINE_HISTORY_H)
#include <readline/history.h>
@@ -803,7 +808,6 @@ addlookup(char *opt) {
lookup->recurse = recurse;
lookup->aaonly = aaonly;
lookup->retries = tries;
lookup->udpsize = 0;
lookup->comments = comments;
if (lookup->rdtype == dns_rdatatype_any && !tcpmode_set)
lookup->tcp_mode = true;
@@ -815,8 +819,10 @@ addlookup(char *opt) {
lookup->section_authority = section_authority;
lookup->section_additional = section_additional;
lookup->new_search = true;
if (nofail)
lookup->besteffort = false;
if (nofail) {
lookup->servfail_stops = false;
}
ISC_LIST_INIT(lookup->q);
ISC_LINK_INIT(lookup, link);
ISC_LIST_APPEND(lookup_list, lookup, link);
@@ -977,7 +983,7 @@ flush_lookup_list(void) {
}
if (l->sendmsg != NULL)
dns_message_destroy(&l->sendmsg);
dns_message_detach(&l->sendmsg);
lp = l;
l = ISC_LIST_NEXT(l, link);
ISC_LIST_DEQUEUE(lookup_list, lp, link);
+32 -24
View File
@@ -3,7 +3,7 @@
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- file, you can obtain one at https://mozilla.org/MPL/2.0/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
@@ -38,7 +38,7 @@
- SUCH DAMAGE.
-->
<!-- Converted by db4-upgrade version 1.0 -->
<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.nslookup">
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="man.nslookup">
<info>
<date>2014-01-24</date>
</info>
@@ -72,6 +72,8 @@
<year>2017</year>
<year>2018</year>
<year>2019</year>
<year>2020</year>
<year>2021</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
@@ -307,7 +309,7 @@ nslookup -query=hinfo -timeout=10
The class specifies the protocol group of the information.
</para>
<para>
<para>
(Default = IN; abbreviation = cl)
</para>
</listitem>
@@ -317,10 +319,10 @@ nslookup -query=hinfo -timeout=10
<term><constant><replaceable><optional>no</optional></replaceable>debug</constant></term>
<listitem>
<para>
Turn on or off the display of the full response packet and
any intermediate response packets when searching.
Turn on or off the display of the full response packet and
any intermediate response packets when searching.
</para>
<para>
<para>
(Default = nodebug; abbreviation = <optional>no</optional>deb)
</para>
</listitem>
@@ -331,9 +333,9 @@ nslookup -query=hinfo -timeout=10
<listitem>
<para>
Turn debugging mode on or off. This displays more about
what nslookup is doing.
what nslookup is doing.
</para>
<para>
<para>
(Default = nod2)
</para>
</listitem>
@@ -357,7 +359,7 @@ nslookup -query=hinfo -timeout=10
names in the domain search list to the request until an
answer is received.
</para>
<para>
<para>
(Default = search)
</para>
</listitem>
@@ -369,7 +371,7 @@ nslookup -query=hinfo -timeout=10
<para>
Change the default TCP/UDP name server port to <replaceable>value</replaceable>.
</para>
<para>
<para>
(Default = 53; abbreviation = po)
</para>
</listitem>
@@ -388,9 +390,15 @@ nslookup -query=hinfo -timeout=10
<para>
Change the type of the information query.
</para>
<para>
(Default = A; abbreviations = q, ty)
<para>
(Default = A and then AAAA; abbreviations = q, ty)
</para>
<para>
<emphasis role="bold">Note:</emphasis> It is
only possible to specify one query type, only
the default behavior looks up both when an
alternative is not specified.
</para>
</listitem>
</varlistentry>
@@ -402,7 +410,7 @@ nslookup -query=hinfo -timeout=10
have the
information.
</para>
<para>
<para>
(Default = recurse; abbreviation = [no]rec)
</para>
</listitem>
@@ -412,9 +420,9 @@ nslookup -query=hinfo -timeout=10
<term><constant>ndots=</constant><replaceable>number</replaceable></term>
<listitem>
<para>
Set the number of dots (label separators) in a domain
that will disable searching. Absolute names always
stop searching.
Set the number of dots (label separators) in a domain
that will disable searching. Absolute names always
stop searching.
</para>
</listitem>
</varlistentry>
@@ -445,7 +453,7 @@ nslookup -query=hinfo -timeout=10
Always use a virtual circuit when sending requests to the
server.
</para>
<para>
<para>
(Default = novc)
</para>
</listitem>
@@ -455,15 +463,15 @@ nslookup -query=hinfo -timeout=10
<term><constant><replaceable><optional>no</optional></replaceable>fail</constant></term>
<listitem>
<para>
Try the next nameserver if a nameserver responds with
SERVFAIL or a referral (nofail) or terminate query
(fail) on such a response.
</para>
<para>
Try the next nameserver if a nameserver responds with
SERVFAIL or a referral (nofail) or terminate query
(fail) on such a response.
</para>
<para>
(Default = nofail)
</para>
</listitem>
</varlistentry>
</listitem>
</varlistentry>
</variablelist>
</para>
+122 -197
View File
@@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
- Copyright (C) 2004-2007, 2010, 2013-2019 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2004-2007, 2010, 2013-2021 Internet Systems Consortium, Inc. ("ISC")
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -10,39 +10,21 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>nslookup</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry">
<a name="man.nslookup"></a><div class="titlepage"></div>
<div class="refnamediv">
<div class="refnamediv">
<h2>Name</h2>
<p>
nslookup
&#8212; query Internet name servers interactively
</p>
<p>nslookup &#8212; query Internet name servers interactively</p>
</div>
<div class="refsynopsisdiv">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="cmdsynopsis"><p>
<code class="command">nslookup</code>
[<code class="option">-option</code>]
[name | -]
[server]
</p></div>
</div>
<div class="refsection">
<div class="cmdsynopsis"><p><code class="command">nslookup</code> [<code class="option">-option</code>] [name | -] [server]</p></div>
</div>
<div class="refsection">
<a name="id-1.7"></a><h2>DESCRIPTION</h2>
<p><span class="command"><strong>Nslookup</strong></span>
<p><span class="command"><strong>Nslookup</strong></span>
is a program to query Internet domain name servers. <span class="command"><strong>Nslookup</strong></span>
has two modes: interactive and non-interactive. Interactive mode allows
the user to query name servers for information about various hosts and
@@ -51,37 +33,29 @@
used to print just the name and requested information for a host or
domain.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.8"></a><h2>ARGUMENTS</h2>
<p>
<p>
Interactive mode is entered in the following cases:
</p>
<div class="orderedlist"><ol class="orderedlist" type="a">
<li class="listitem">
<p>
<li class="listitem"><p>
when no arguments are given (the default name server will be used)
</p>
</li>
<li class="listitem">
<p>
</p></li>
<li class="listitem"><p>
when the first argument is a hyphen (-) and the second argument is
the host name or Internet address of a name server.
</p>
</li>
</p></li>
</ol></div>
<p>
</p>
<p>
<p>
Non-interactive mode is used when the name or Internet address of the
host to be looked up is given as the first argument. The optional second
argument specifies the host name or address of a name server.
</p>
<p>
<p>
Options can also be specified on the command line if they precede the
arguments and are prefixed with a hyphen. For example, to
change the default query type to host information, and the initial
@@ -94,277 +68,238 @@ nslookup -query=hinfo -timeout=10
<p>
</p>
<p>
<p>
The <code class="option">-version</code> option causes
<span class="command"><strong>nslookup</strong></span> to print the version
number and immediately exits.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.9"></a><h2>INTERACTIVE COMMANDS</h2>
<div class="variablelist"><dl class="variablelist">
<div class="variablelist"><dl class="variablelist">
<dt><span class="term"><code class="constant">host</code> [<span class="optional">server</span>]</span></dt>
<dd>
<p>
<p>
Look up information for host using the current default server or
using server, if specified. If host is an Internet address and
the query type is A or PTR, the name of the host is returned.
If host is a name and does not have a trailing period, the
search list is used to qualify the name.
</p>
<p>
<p>
To look up a host not in the current domain, append a period to
the name.
</p>
</dd>
</dd>
<dt><span class="term"><code class="constant">server</code> <em class="replaceable"><code>domain</code></em></span></dt>
<dd>
<p></p>
</dd>
<dd><p></p></dd>
<dt><span class="term"><code class="constant">lserver</code> <em class="replaceable"><code>domain</code></em></span></dt>
<dd>
<p>
<dd><p>
Change the default server to <em class="replaceable"><code>domain</code></em>; <code class="constant">lserver</code> uses the initial
server to look up information about <em class="replaceable"><code>domain</code></em>, while <code class="constant">server</code> uses
the current default server. If an authoritative answer can't be
found, the names of servers that might have the answer are
returned.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="constant">root</code></span></dt>
<dd>
<p>
<dd><p>
not implemented
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="constant">finger</code></span></dt>
<dd>
<p>
<dd><p>
not implemented
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="constant">ls</code></span></dt>
<dd>
<p>
<dd><p>
not implemented
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="constant">view</code></span></dt>
<dd>
<p>
<dd><p>
not implemented
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="constant">help</code></span></dt>
<dd>
<p>
<dd><p>
not implemented
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="constant">?</code></span></dt>
<dd>
<p>
<dd><p>
not implemented
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="constant">exit</code></span></dt>
<dd>
<p>
<dd><p>
Exits the program.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="constant">set</code>
<em class="replaceable"><code>keyword[<span class="optional">=value</span>]</code></em></span></dt>
<dd>
<p>
<p>
This command is used to change state information that affects
the lookups. Valid keywords are:
</p>
<div class="variablelist"><dl class="variablelist">
<dt><span class="term"><code class="constant">all</code></span></dt>
<dd>
<p>
<dd><p>
Prints the current values of the frequently used
options to <span class="command"><strong>set</strong></span>.
Information about the current default
server and host is also printed.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="constant">class=</code><em class="replaceable"><code>value</code></em></span></dt>
<dd>
<p>
<p>
Change the query class to one of:
</p>
<div class="variablelist"><dl class="variablelist">
<dt><span class="term"><code class="constant">IN</code></span></dt>
<dd>
<p>
<dd><p>
the Internet class
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="constant">CH</code></span></dt>
<dd>
<p>
<dd><p>
the Chaos class
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="constant">HS</code></span></dt>
<dd>
<p>
<dd><p>
the Hesiod class
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="constant">ANY</code></span></dt>
<dd>
<p>
<dd><p>
wildcard
</p>
</dd>
</p></dd>
</dl></div>
<p>
The class specifies the protocol group of the information.
</p>
<p>
<p>
(Default = IN; abbreviation = cl)
</p>
</dd>
</dd>
<dt><span class="term"><code class="constant"><em class="replaceable"><code>[<span class="optional">no</span>]</code></em>debug</code></span></dt>
<dd>
<p>
Turn on or off the display of the full response packet and
any intermediate response packets when searching.
<p>
Turn on or off the display of the full response packet and
any intermediate response packets when searching.
</p>
<p>
<p>
(Default = nodebug; abbreviation = [<span class="optional">no</span>]deb)
</p>
</dd>
</dd>
<dt><span class="term"><code class="constant"><em class="replaceable"><code>[<span class="optional">no</span>]</code></em>d2</code></span></dt>
<dd>
<p>
<p>
Turn debugging mode on or off. This displays more about
what nslookup is doing.
what nslookup is doing.
</p>
<p>
<p>
(Default = nod2)
</p>
</dd>
</dd>
<dt><span class="term"><code class="constant">domain=</code><em class="replaceable"><code>name</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the search list to <em class="replaceable"><code>name</code></em>.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="constant"><em class="replaceable"><code>[<span class="optional">no</span>]</code></em>search</code></span></dt>
<dd>
<p>
<p>
If the lookup request contains at least one period but
doesn't end with a trailing period, append the domain
names in the domain search list to the request until an
answer is received.
</p>
<p>
<p>
(Default = search)
</p>
</dd>
</dd>
<dt><span class="term"><code class="constant">port=</code><em class="replaceable"><code>value</code></em></span></dt>
<dd>
<p>
<p>
Change the default TCP/UDP name server port to <em class="replaceable"><code>value</code></em>.
</p>
<p>
<p>
(Default = 53; abbreviation = po)
</p>
</dd>
</dd>
<dt><span class="term"><code class="constant">querytype=</code><em class="replaceable"><code>value</code></em></span></dt>
<dd>
<p></p>
</dd>
<dd><p></p></dd>
<dt><span class="term"><code class="constant">type=</code><em class="replaceable"><code>value</code></em></span></dt>
<dd>
<p>
<p>
Change the type of the information query.
</p>
<p>
(Default = A; abbreviations = q, ty)
<p>
(Default = A and then AAAA; abbreviations = q, ty)
</p>
</dd>
<p>
<span class="bold"><strong>Note:</strong></span> It is
only possible to specify one query type, only
the default behavior looks up both when an
alternative is not specified.
</p>
</dd>
<dt><span class="term"><code class="constant"><em class="replaceable"><code>[<span class="optional">no</span>]</code></em>recurse</code></span></dt>
<dd>
<p>
<p>
Tell the name server to query other servers if it does not
have the
information.
</p>
<p>
<p>
(Default = recurse; abbreviation = [no]rec)
</p>
</dd>
</dd>
<dt><span class="term"><code class="constant">ndots=</code><em class="replaceable"><code>number</code></em></span></dt>
<dd>
<p>
Set the number of dots (label separators) in a domain
that will disable searching. Absolute names always
stop searching.
</p>
</dd>
<dd><p>
Set the number of dots (label separators) in a domain
that will disable searching. Absolute names always
stop searching.
</p></dd>
<dt><span class="term"><code class="constant">retry=</code><em class="replaceable"><code>number</code></em></span></dt>
<dd>
<p>
<dd><p>
Set the number of retries to number.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="constant">timeout=</code><em class="replaceable"><code>number</code></em></span></dt>
<dd>
<p>
<dd><p>
Change the initial timeout interval for waiting for a
reply to number seconds.
</p>
</dd>
</p></dd>
<dt><span class="term"><code class="constant"><em class="replaceable"><code>[<span class="optional">no</span>]</code></em>vc</code></span></dt>
<dd>
<p>
<p>
Always use a virtual circuit when sending requests to the
server.
</p>
<p>
<p>
(Default = novc)
</p>
</dd>
</dd>
<dt><span class="term"><code class="constant"><em class="replaceable"><code>[<span class="optional">no</span>]</code></em>fail</code></span></dt>
<dd>
<p>
Try the next nameserver if a nameserver responds with
SERVFAIL or a referral (nofail) or terminate query
(fail) on such a response.
</p>
<p>
<p>
Try the next nameserver if a nameserver responds with
SERVFAIL or a referral (nofail) or terminate query
(fail) on such a response.
</p>
<p>
(Default = nofail)
</p>
</dd>
</dd>
</dl></div>
<p>
</p>
</dd>
</dd>
</dl></div>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.10"></a><h2>RETURN VALUES</h2>
<p>
<p>
<span class="command"><strong>nslookup</strong></span> returns with an exit status of 1
if any query failed, and 0 otherwise.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.11"></a><h2>IDN SUPPORT</h2>
<p>
<p>
If <span class="command"><strong>nslookup</strong></span> has been built with IDN (internationalized
domain name) support, it can accept and display non-ASCII domain names.
<span class="command"><strong>nslookup</strong></span> appropriately converts character encoding of
@@ -376,28 +311,18 @@ nslookup -query=hinfo -timeout=10
<span class="command"><strong>nslookup</strong></span> runs or when the standard output is not
a tty.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.12"></a><h2>FILES</h2>
<p><code class="filename">/etc/resolv.conf</code>
<p><code class="filename">/etc/resolv.conf</code>
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.13"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry">
<span class="refentrytitle">dig</span>(1)
</span>,
<span class="citerefentry">
<span class="refentrytitle">host</span>(1)
</span>,
<span class="citerefentry">
<span class="refentrytitle">named</span>(8)
</span>.
<p><span class="citerefentry"><span class="refentrytitle">dig</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">host</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>.
</p>
</div>
</div>
</div></body>
</html>
+10 -3
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|@PLATFORM@">
<Configuration>Debug</Configuration>
@@ -14,18 +14,21 @@
<ProjectGuid>{F938F9B8-D395-4A40-BEC7-0122D289C692}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>dig</RootNamespace>
@WINDOWS_TARGET_PLATFORM_VERSION@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -41,17 +44,20 @@
<LinkIncremental>true</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>false</TreatWarningAsError>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;@CRYPTO@_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -73,7 +79,8 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level1</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
+10 -3
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|@PLATFORM@">
<Configuration>Debug</Configuration>
@@ -14,18 +14,21 @@
<ProjectGuid>{140DE800-E552-43CC-B0C7-A33A92E368CA}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>dighost</RootNamespace>
@WINDOWS_TARGET_PLATFORM_VERSION@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -41,17 +44,20 @@
<LinkIncremental>true</LinkIncremental>
<OutDir>.\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<LinkIncremental>false</LinkIncremental>
<OutDir>.\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>false</TreatWarningAsError>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;@CRYPTO@_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -71,7 +77,8 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level1</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
+10 -3
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|@PLATFORM@">
<Configuration>Debug</Configuration>
@@ -14,18 +14,21 @@
<ProjectGuid>{BA1048A8-6961-4A20-BE12-08BE20611C9D}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>host</RootNamespace>
@WINDOWS_TARGET_PLATFORM_VERSION@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -41,17 +44,20 @@
<LinkIncremental>true</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>false</TreatWarningAsError>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;@CRYPTO@_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -73,7 +79,8 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level1</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
+10 -3
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|@PLATFORM@">
<Configuration>Debug</Configuration>
@@ -14,18 +14,21 @@
<ProjectGuid>{C15A6E1A-94CE-4686-99F9-6BC5FD623EB5}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>nslookup</RootNamespace>
@WINDOWS_TARGET_PLATFORM_VERSION@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -41,17 +44,20 @@
<LinkIncremental>true</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>false</TreatWarningAsError>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;@CRYPTO@USE_READLINE_STATIC;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -73,7 +79,8 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level1</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
+2 -4
View File
@@ -2,13 +2,11 @@
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
# $Id: Makefile.in,v 1.42.332.1 2011/03/16 06:37:51 each Exp $
srcdir = @srcdir@
VPATH = @srcdir@
top_srcdir = @top_srcdir@
@@ -23,7 +21,7 @@ CDEFINES = -DVERSION=\"${VERSION}\" @USE_PKCS11@ @PKCS11_ENGINE@ \
@CRYPTO@ -DPK11_LIB_LOCATION=\"@PKCS11_PROVIDER@\"
CWARNINGS =
DNSLIBS = ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
DNSLIBS = ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
ISCLIBS = ../../lib/isc/libisc.@A@
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@
+6 -5
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2008-2012, 2014-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2008-2012, 2014-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
.\"
.\" This Source Code Form is subject to the terms of the Mozilla Public
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -9,7 +9,7 @@
'\" t
.\" Title: dnssec-dsfromkey
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 2012-05-02
.\" Manual: BIND9
.\" Source: ISC
@@ -77,7 +77,8 @@ option,
reads a
keyset\-
file, as generated by
\fBdnssec\-keygen\fR\fB\-C\fR\&.
\fBdnssec\-keygen\fR
\fB\-C\fR\&.
.SH "OPTIONS"
.PP
\-1
@@ -98,7 +99,7 @@ Specify a digest algorithm to use when converting DNSKEY records to DS records\&
.sp
The
\fIalgorithm\fR
must be one of SHA\-1, SHA\-256, or SHA\-384\&. These values are case insensitive, and the hyphen may be omitted\&. If no algorithm is specified, the default is SHA\-256\&.
must be one of SHA\-1, SHA\-256, or SHA\-384\&. These values are case insensitive, and the hyphen may be omitted\&. If no algorithm is specified, the default is to use both SHA\-1 and SHA\-256\&.
.RE
.PP
\-A
@@ -237,5 +238,5 @@ RFC 7344
\fBInternet Systems Consortium, Inc\&.\fR
.SH "COPYRIGHT"
.br
Copyright \(co 2008-2012, 2014-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2008-2012, 2014-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
.br
+34 -23
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
@@ -22,6 +22,7 @@
#include <isc/entropy.h>
#include <isc/hash.h>
#include <isc/mem.h>
#include <isc/platform.h>
#include <isc/print.h>
#include <isc/string.h>
#include <isc/util.h>
@@ -50,10 +51,6 @@
#include "dnssectool.h"
#ifndef PATH_MAX
#define PATH_MAX 1024 /* AIX, WIN32, and others don't define this. */
#endif
const char *program = "dnssec-dsfromkey";
int verbose;
@@ -236,7 +233,7 @@ logkey(dns_rdata_t *rdata)
}
static void
emit(unsigned int dtype, bool showall, char *lookaside,
emit(dns_dsdigest_t dtype, bool showall, char *lookaside,
bool cds, dns_rdata_t *rdata)
{
isc_result_t result;
@@ -349,9 +346,9 @@ main(int argc, char **argv) {
char *algname = NULL, *classname = NULL;
char *filename = NULL, *dir = NULL, *namestr;
char *lookaside = NULL;
char *endp;
char *endp, *arg1;
int ch;
unsigned int dtype = DNS_DSDIGEST_SHA1;
dns_dsdigest_t dtype = DNS_DSDIGEST_SHA1;
bool cds = false;
bool both = true;
bool usekeyset = false;
@@ -487,10 +484,17 @@ main(int argc, char **argv) {
if (filename == NULL)
showall = true;
if (argc < isc_commandline_index + 1 && filename == NULL)
/*
* Use local variable arg1 so that clang can correctly analyse
* reachable paths rather than 'argc < isc_commandline_index + 1'.
*/
arg1 = argv[isc_commandline_index];
if (arg1 == NULL && filename == NULL) {
fatal("the key file name was not specified");
if (argc > isc_commandline_index + 1)
}
if (arg1 != NULL && argv[isc_commandline_index + 1] != NULL) {
fatal("extraneous arguments");
}
if (ectx == NULL)
setup_entropy(mctx, NULL, &ectx);
@@ -509,24 +513,29 @@ main(int argc, char **argv) {
dns_rdataset_init(&rdataset);
if (usekeyset || filename != NULL) {
if (argc < isc_commandline_index + 1 && filename != NULL) {
/* using zone name as the zone file name */
if (arg1 == NULL) {
/* using file name as the zone name */
namestr = filename;
} else
namestr = argv[isc_commandline_index];
} else {
namestr = arg1;
}
result = initname(namestr);
if (result != ISC_R_SUCCESS)
if (result != ISC_R_SUCCESS) {
fatal("could not initialize name %s", namestr);
}
if (usekeyset)
if (usekeyset) {
result = loadkeyset(dir, &rdataset);
else
} else {
INSIST(filename != NULL);
result = loadset(filename, &rdataset);
}
if (result != ISC_R_SUCCESS)
if (result != ISC_R_SUCCESS) {
fatal("could not load DNSKEY set: %s\n",
isc_result_totext(result));
}
for (result = dns_rdataset_first(&rdataset);
result == ISC_R_SUCCESS;
@@ -534,30 +543,32 @@ main(int argc, char **argv) {
dns_rdata_init(&rdata);
dns_rdataset_current(&rdataset, &rdata);
if (verbose > 2)
if (verbose > 2) {
logkey(&rdata);
}
if (both) {
emit(DNS_DSDIGEST_SHA1, showall, lookaside,
cds, &rdata);
emit(DNS_DSDIGEST_SHA256, showall, lookaside,
cds, &rdata);
} else
} else {
emit(dtype, showall, lookaside, cds, &rdata);
}
}
} else {
unsigned char key_buf[DST_KEY_MAXSIZE];
loadkey(argv[isc_commandline_index], key_buf,
DST_KEY_MAXSIZE, &rdata);
loadkey(arg1, key_buf, DST_KEY_MAXSIZE, &rdata);
if (both) {
emit(DNS_DSDIGEST_SHA1, showall, lookaside, cds,
&rdata);
emit(DNS_DSDIGEST_SHA256, showall, lookaside, cds,
&rdata);
} else
} else {
emit(dtype, showall, lookaside, cds, &rdata);
}
}
if (dns_rdataset_isassociated(&rdataset))
+5 -3
View File
@@ -3,14 +3,14 @@
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- file, you can obtain one at https://mozilla.org/MPL/2.0/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
-->
<!-- Converted by db4-upgrade version 1.0 -->
<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.dnssec-dsfromkey">
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="man.dnssec-dsfromkey">
<info>
<date>2012-05-02</date>
</info>
@@ -42,6 +42,8 @@
<year>2016</year>
<year>2018</year>
<year>2019</year>
<year>2020</year>
<year>2021</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
@@ -177,7 +179,7 @@
The <replaceable>algorithm</replaceable> must be one of
SHA-1, SHA-256, or SHA-384. These values are case insensitive,
and the hyphen may be omitted. If no algorithm is specified,
the default is SHA-256.
the default is to use both SHA-1 and SHA-256.
</para>
</listitem>
</varlistentry>
+69 -182
View File
@@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
- Copyright (C) 2008-2012, 2014-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2008-2012, 2014-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -10,301 +10,189 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>dnssec-dsfromkey</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry">
<a name="man.dnssec-dsfromkey"></a><div class="titlepage"></div>
<div class="refnamediv">
<div class="refnamediv">
<h2>Name</h2>
<p>
<span class="application">dnssec-dsfromkey</span>
&#8212; DNSSEC DS RR generation tool
</p>
<p><span class="application">dnssec-dsfromkey</span> &#8212; DNSSEC DS RR generation tool</p>
</div>
<div class="refsynopsisdiv">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="cmdsynopsis"><p>
<code class="command">dnssec-dsfromkey</code>
[
<code class="option">-1</code>
| <code class="option">-2</code>
| <code class="option">-a <em class="replaceable"><code>alg</code></em></code>
]
[
<code class="option">-C</code>
| <code class="option">-l <em class="replaceable"><code>domain</code></em></code>
]
[<code class="option">-T <em class="replaceable"><code>TTL</code></em></code>]
[<code class="option">-v <em class="replaceable"><code>level</code></em></code>]
[<code class="option">-K <em class="replaceable"><code>directory</code></em></code>]
{keyfile}
</p></div>
<div class="cmdsynopsis"><p>
<code class="command">dnssec-dsfromkey</code>
[
<code class="option">-1</code>
| <code class="option">-2</code>
| <code class="option">-a <em class="replaceable"><code>alg</code></em></code>
]
[
<code class="option">-C</code>
| <code class="option">-l <em class="replaceable"><code>domain</code></em></code>
]
[<code class="option">-T <em class="replaceable"><code>TTL</code></em></code>]
[<code class="option">-v <em class="replaceable"><code>level</code></em></code>]
[<code class="option">-c <em class="replaceable"><code>class</code></em></code>]
[<code class="option">-A</code>]
{<code class="option">-f <em class="replaceable"><code>file</code></em></code>}
[dnsname]
</p></div>
<div class="cmdsynopsis"><p>
<code class="command">dnssec-dsfromkey</code>
[
<code class="option">-1</code>
| <code class="option">-2</code>
| <code class="option">-a <em class="replaceable"><code>alg</code></em></code>
]
[
<code class="option">-C</code>
| <code class="option">-l <em class="replaceable"><code>domain</code></em></code>
]
[<code class="option">-T <em class="replaceable"><code>TTL</code></em></code>]
[<code class="option">-v <em class="replaceable"><code>level</code></em></code>]
[<code class="option">-c <em class="replaceable"><code>class</code></em></code>]
[<code class="option">-K <em class="replaceable"><code>directory</code></em></code>]
{-s}
{dnsname}
</p></div>
<div class="cmdsynopsis"><p>
<code class="command">dnssec-dsfromkey</code>
[
<code class="option">-h</code>
| <code class="option">-V</code>
]
</p></div>
</div>
<div class="refsection">
<div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> [ <code class="option">-1</code> | <code class="option">-2</code> | <code class="option">-a <em class="replaceable"><code>alg</code></em></code> ] [ <code class="option">-C</code> | <code class="option">-l <em class="replaceable"><code>domain</code></em></code> ] [<code class="option">-T <em class="replaceable"><code>TTL</code></em></code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] {keyfile}</p></div>
<div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> [ <code class="option">-1</code> | <code class="option">-2</code> | <code class="option">-a <em class="replaceable"><code>alg</code></em></code> ] [ <code class="option">-C</code> | <code class="option">-l <em class="replaceable"><code>domain</code></em></code> ] [<code class="option">-T <em class="replaceable"><code>TTL</code></em></code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-A</code>] {<code class="option">-f <em class="replaceable"><code>file</code></em></code>} [dnsname]</p></div>
<div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> [ <code class="option">-1</code> | <code class="option">-2</code> | <code class="option">-a <em class="replaceable"><code>alg</code></em></code> ] [ <code class="option">-C</code> | <code class="option">-l <em class="replaceable"><code>domain</code></em></code> ] [<code class="option">-T <em class="replaceable"><code>TTL</code></em></code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] {-s} {dnsname}</p></div>
<div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> [ <code class="option">-h</code> | <code class="option">-V</code> ]</p></div>
</div>
<div class="refsection">
<a name="id-1.7"></a><h2>DESCRIPTION</h2>
<p>
<p>
The <span class="command"><strong>dnssec-dsfromkey</strong></span> command outputs DS (Delegation
Signer) resource records (RRs) and other similarly-constructed RRs:
with the <code class="option">-l</code> option it outputs DLV (DNSSEC Lookaside
Validation) RRs; or with the <code class="option">-C</code> it outputs CDS (Child
DS) RRs.
</p>
<p>
<p>
The input keys can be specified in a number of ways:
</p>
<p>
<p>
By default, <span class="command"><strong>dnssec-dsfromkey</strong></span> reads a key file
named like <code class="filename">Knnnn.+aaa+iiiii.key</code>, as generated
by <span class="command"><strong>dnssec-keygen</strong></span>.
</p>
<p>
<p>
With the <code class="option">-f <em class="replaceable"><code>file</code></em></code>
option, <span class="command"><strong>dnssec-dsfromkey</strong></span> reads keys from a zone file
or partial zone file (which can contain just the DNSKEY records).
</p>
<p>
<p>
With the <code class="option">-s</code>
option, <span class="command"><strong>dnssec-dsfromkey</strong></span> reads
a <code class="filename">keyset-</code> file, as generated
by <span class="command"><strong>dnssec-keygen</strong></span> <code class="option">-C</code>.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.8"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl class="variablelist">
<div class="variablelist"><dl class="variablelist">
<dt><span class="term">-1</span></dt>
<dd>
<p>
<dd><p>
An abbreviation for <code class="option">-a SHA1</code>
</p>
</dd>
</p></dd>
<dt><span class="term">-2</span></dt>
<dd>
<p>
<dd><p>
An abbreviation for <code class="option">-a SHA-256</code>
</p>
</dd>
</p></dd>
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
<dd>
<p>
<p>
Specify a digest algorithm to use when converting DNSKEY
records to DS records. This option can be repeated, so
that multiple DS records are created for each DNSKEY
record.
</p>
<p>
<p>
The <em class="replaceable"><code>algorithm</code></em> must be one of
SHA-1, SHA-256, or SHA-384. These values are case insensitive,
and the hyphen may be omitted. If no algorithm is specified,
the default is SHA-256.
the default is to use both SHA-1 and SHA-256.
</p>
</dd>
</dd>
<dt><span class="term">-A</span></dt>
<dd>
<p>
<dd><p>
Include ZSKs when generating DS records. Without this option, only
keys which have the KSK flag set will be converted to DS records
and printed. Useful only in <code class="option">-f</code> zone file mode.
</p>
</dd>
</p></dd>
<dt><span class="term">-c <em class="replaceable"><code>class</code></em></span></dt>
<dd>
<p>
<dd><p>
Specifies the DNS class (default is IN). Useful only
in <code class="option">-s</code> keyset or <code class="option">-f</code>
zone file mode.
</p>
</dd>
</p></dd>
<dt><span class="term">-C</span></dt>
<dd>
<p>
<dd><p>
Generate CDS records rather than DS records. This is mutually
exclusive with the <code class="option">-l</code> option for generating DLV
records.
</p>
</dd>
</p></dd>
<dt><span class="term">-f <em class="replaceable"><code>file</code></em></span></dt>
<dd>
<p>
<p>
Zone file mode: <span class="command"><strong>dnssec-dsfromkey</strong></span>'s
final <em class="replaceable"><code>dnsname</code></em> argument is
the DNS domain name of a zone whose master file can be read
from <code class="option">file</code>. If the zone name is the same as
<code class="option">file</code>, then it may be omitted.
</p>
<p>
<p>
If <em class="replaceable"><code>file</code></em> is <code class="literal">"-"</code>, then
the zone data is read from the standard input. This makes it
possible to use the output of the <span class="command"><strong>dig</strong></span>
command as input, as in:
</p>
<p>
<p>
<strong class="userinput"><code>dig dnskey example.com | dnssec-dsfromkey -f - example.com</code></strong>
</p>
</dd>
</dd>
<dt><span class="term">-h</span></dt>
<dd>
<p>
<dd><p>
Prints usage information.
</p>
</dd>
</p></dd>
<dt><span class="term">-K <em class="replaceable"><code>directory</code></em></span></dt>
<dd>
<p>
<dd><p>
Look for key files or <code class="filename">keyset-</code> files in
<code class="option">directory</code>.
</p>
</dd>
</p></dd>
<dt><span class="term">-l <em class="replaceable"><code>domain</code></em></span></dt>
<dd>
<p>
<dd><p>
Generate a DLV set instead of a DS set. The specified
<em class="replaceable"><code>domain</code></em> is appended to the name for each
record in the set.
This is mutually exclusive with the <code class="option">-C</code> option
for generating CDS records.
</p>
</dd>
</p></dd>
<dt><span class="term">-s</span></dt>
<dd>
<p>
<dd><p>
Keyset mode: <span class="command"><strong>dnssec-dsfromkey</strong></span>'s
final <em class="replaceable"><code>dnsname</code></em> argument is the DNS
domain name used to locate a <code class="filename">keyset-</code> file.
</p>
</dd>
</p></dd>
<dt><span class="term">-T <em class="replaceable"><code>TTL</code></em></span></dt>
<dd>
<p>
<dd><p>
Specifies the TTL of the DS records. By default the TTL is omitted.
</p>
</dd>
</p></dd>
<dt><span class="term">-v <em class="replaceable"><code>level</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the debugging level.
</p>
</dd>
</p></dd>
<dt><span class="term">-V</span></dt>
<dd>
<p>
<dd><p>
Prints version information.
</p>
</dd>
</p></dd>
</dl></div>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.9"></a><h2>EXAMPLE</h2>
<p>
<p>
To build the SHA-256 DS RR from the
<strong class="userinput"><code>Kexample.com.+003+26160</code></strong>
keyfile name, you can issue the following command:
</p>
<p><strong class="userinput"><code>dnssec-dsfromkey -2 Kexample.com.+003+26160</code></strong>
<p><strong class="userinput"><code>dnssec-dsfromkey -2 Kexample.com.+003+26160</code></strong>
</p>
<p>
<p>
The command would print something like:
</p>
<p><strong class="userinput"><code>example.com. IN DS 26160 5 2 3A1EADA7A74B8D0BA86726B0C227AA85AB8BBD2B2004F41A868A54F0C5EA0B94</code></strong>
<p><strong class="userinput"><code>example.com. IN DS 26160 5 2 3A1EADA7A74B8D0BA86726B0C227AA85AB8BBD2B2004F41A868A54F0C5EA0B94</code></strong>
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.10"></a><h2>FILES</h2>
<p>
<p>
The keyfile can be designated by the key identification
<code class="filename">Knnnn.+aaa+iiiii</code> or the full file name
<code class="filename">Knnnn.+aaa+iiiii.key</code> as generated by
<span class="refentrytitle">dnssec-keygen</span>(8).
</p>
<p>
<p>
The keyset file name is built from the <code class="option">directory</code>,
the string <code class="filename">keyset-</code> and the
<code class="option">dnsname</code>.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.11"></a><h2>CAVEAT</h2>
<p>
<p>
A keyfile error can give a "file not found" even if the file exists.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.12"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry">
<span class="refentrytitle">dnssec-keygen</span>(8)
</span>,
<span class="citerefentry">
<span class="refentrytitle">dnssec-signzone</span>(8)
</span>,
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
<em class="citetitle">RFC 3658</em> (DS RRs),
<em class="citetitle">RFC 4431</em> (DLV RRs),
@@ -312,7 +200,6 @@
<em class="citetitle">RFC 6605</em> (SHA-384 for DS RRs),
<em class="citetitle">RFC 7344</em> (CDS and CDNSKEY RRs).
</p>
</div>
</div>
</div></body>
</html>
+3 -3
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2013-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2013-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
.\"
.\" This Source Code Form is subject to the terms of the Mozilla Public
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -9,7 +9,7 @@
'\" t
.\" Title: dnssec-importkey
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: August 21, 2015
.\" Manual: BIND9
.\" Source: ISC
@@ -134,5 +134,5 @@ RFC 5011\&.
\fBInternet Systems Consortium, Inc\&.\fR
.SH "COPYRIGHT"
.br
Copyright \(co 2013-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2013-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
.br
+2 -5
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
@@ -21,6 +21,7 @@
#include <isc/entropy.h>
#include <isc/hash.h>
#include <isc/mem.h>
#include <isc/platform.h>
#include <isc/print.h>
#include <isc/string.h>
#include <isc/util.h>
@@ -49,10 +50,6 @@
#include "dnssectool.h"
#ifndef PATH_MAX
#define PATH_MAX 1024 /* AIX, WIN32, and others don't define this. */
#endif
const char *program = "dnssec-importkey";
int verbose;
+4 -2
View File
@@ -3,14 +3,14 @@
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- file, you can obtain one at https://mozilla.org/MPL/2.0/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
-->
<!-- Converted by db4-upgrade version 1.0 -->
<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.dnssec-importkey">
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="man.dnssec-importkey">
<info>
<date>2014-02-20</date>
</info>
@@ -39,6 +39,8 @@
<year>2016</year>
<year>2018</year>
<year>2019</year>
<year>2020</year>
<year>2021</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
+47 -118
View File
@@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
- Copyright (C) 2013-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2013-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -10,60 +10,22 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>dnssec-importkey</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry">
<a name="man.dnssec-importkey"></a><div class="titlepage"></div>
<div class="refnamediv">
<div class="refnamediv">
<h2>Name</h2>
<p>
<span class="application">dnssec-importkey</span>
&#8212; import DNSKEY records from external systems so they can be managed
</p>
<p><span class="application">dnssec-importkey</span> &#8212; import DNSKEY records from external systems so they can be managed</p>
</div>
<div class="refsynopsisdiv">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="cmdsynopsis"><p>
<code class="command">dnssec-importkey</code>
[<code class="option">-K <em class="replaceable"><code>directory</code></em></code>]
[<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>]
[<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-P sync <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-D sync <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-h</code>]
[<code class="option">-v <em class="replaceable"><code>level</code></em></code>]
[<code class="option">-V</code>]
{<code class="option">keyfile</code>}
</p></div>
<div class="cmdsynopsis"><p>
<code class="command">dnssec-importkey</code>
{<code class="option">-f <em class="replaceable"><code>filename</code></em></code>}
[<code class="option">-K <em class="replaceable"><code>directory</code></em></code>]
[<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>]
[<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-P sync <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-D sync <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-h</code>]
[<code class="option">-v <em class="replaceable"><code>level</code></em></code>]
[<code class="option">-V</code>]
[<code class="option">dnsname</code>]
</p></div>
</div>
<div class="refsection">
<div class="cmdsynopsis"><p><code class="command">dnssec-importkey</code> [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-P sync <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-D sync <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-h</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-V</code>] {<code class="option">keyfile</code>}</p></div>
<div class="cmdsynopsis"><p><code class="command">dnssec-importkey</code> {<code class="option">-f <em class="replaceable"><code>filename</code></em></code>} [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-P sync <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-D sync <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-h</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-V</code>] [<code class="option">dnsname</code>]</p></div>
</div>
<div class="refsection">
<a name="id-1.7"></a><h2>DESCRIPTION</h2>
<p><span class="command"><strong>dnssec-importkey</strong></span>
<p><span class="command"><strong>dnssec-importkey</strong></span>
reads a public DNSKEY record and generates a pair of
.key/.private files. The DNSKEY record may be read from an
existing .key file, in which case a corresponding .private file
@@ -71,7 +33,7 @@
from the standard input, in which case both .key and .private
files will be generated.
</p>
<p>
<p>
The newly-created .private file does <span class="emphasis"><em>not</em></span>
contain private key data, and cannot be used for signing.
However, having a .private file makes it possible to set
@@ -80,68 +42,53 @@
public key can be added to and removed from the DNSKEY RRset
on schedule even if the true private key is stored offline.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.8"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl class="variablelist">
<div class="variablelist"><dl class="variablelist">
<dt><span class="term">-f <em class="replaceable"><code>filename</code></em></span></dt>
<dd>
<p>
<p>
Zone file mode: instead of a public keyfile name, the argument
is the DNS domain name of a zone master file, which can be read
from <code class="option">file</code>. If the domain name is the same as
<code class="option">file</code>, then it may be omitted.
</p>
<p>
<p>
If <code class="option">file</code> is set to <code class="literal">"-"</code>, then
the zone data is read from the standard input.
</p>
</dd>
</dd>
<dt><span class="term">-K <em class="replaceable"><code>directory</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the directory in which the key files are to reside.
</p>
</dd>
</p></dd>
<dt><span class="term">-L <em class="replaceable"><code>ttl</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the default TTL to use for this key when it is converted
into a DNSKEY RR. If the key is imported into a zone,
this is the TTL that will be used for it, unless there was
already a DNSKEY RRset in place, in which case the existing TTL
would take precedence. Setting the default TTL to
<code class="literal">0</code> or <code class="literal">none</code> removes it.
</p>
</dd>
</p></dd>
<dt><span class="term">-h</span></dt>
<dd>
<p>
<dd><p>
Emit usage message and exit.
</p>
</dd>
</p></dd>
<dt><span class="term">-v <em class="replaceable"><code>level</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the debugging level.
</p>
</dd>
</p></dd>
<dt><span class="term">-V</span></dt>
<dd>
<p>
<dd><p>
Prints version information.
</p>
</dd>
</p></dd>
</dl></div>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.9"></a><h2>TIMING OPTIONS</h2>
<p>
<p>
Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS.
If the argument begins with a '+' or '-', it is interpreted as
an offset from the present time. For convenience, if such an offset
@@ -152,65 +99,47 @@
is computed in seconds. To explicitly prevent a date from being
set, use 'none' or 'never'.
</p>
<div class="variablelist"><dl class="variablelist">
<div class="variablelist"><dl class="variablelist">
<dt><span class="term">-P <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which a key is to be published to the zone.
After that date, the key will be included in the zone but will
not be used to sign it.
</p>
</dd>
</p></dd>
<dt><span class="term">-P sync <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which CDS and CDNSKEY records that match this
key are to be published to the zone.
</p>
</dd>
</p></dd>
<dt><span class="term">-D <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which the key is to be deleted. After that
date, the key will no longer be included in the zone. (It
may remain in the key repository, however.)
</p>
</dd>
</p></dd>
<dt><span class="term">-D sync <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which the CDS and CDNSKEY records that match
this key are to be deleted.
</p>
</dd>
</p></dd>
</dl></div>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.10"></a><h2>FILES</h2>
<p>
<p>
A keyfile can be designed by the key identification
<code class="filename">Knnnn.+aaa+iiiii</code> or the full file name
<code class="filename">Knnnn.+aaa+iiiii.key</code> as generated by
<span class="refentrytitle">dnssec-keygen</span>(8).
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.11"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry">
<span class="refentrytitle">dnssec-keygen</span>(8)
</span>,
<span class="citerefentry">
<span class="refentrytitle">dnssec-signzone</span>(8)
</span>,
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
<em class="citetitle">RFC 5011</em>.
</p>
</div>
</div>
</div></body>
</html>
+4 -4
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2008-2012, 2014-2019 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2008-2012, 2014-2021 Internet Systems Consortium, Inc. ("ISC")
.\"
.\" This Source Code Form is subject to the terms of the Mozilla Public
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -9,7 +9,7 @@
'\" t
.\" Title: dnssec-keyfromlabel
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: August 27, 2015
.\" Manual: BIND9
.\" Source: ISC
@@ -86,7 +86,7 @@ Specifies the label for a key pair in the crypto hardware\&.
.sp
When
BIND
9 is built with OpenSSL\-based PKCS#11 support, the label is an arbitrary string that identifies a particular key\&. It may be preceded by an optional OpenSSL engine name, followed by a colon, as in "pkcs11:\fIkeylabel\fR"\&.
9 is built with OpenSSL\-based PKCS#11 support, the label is an arbitrary string that identifies a particular key\&.
.sp
When
BIND
@@ -301,5 +301,5 @@ The PKCS#11 URI Scheme (draft\-pechanec\-pkcs11uri\-13)\&.
\fBInternet Systems Consortium, Inc\&.\fR
.SH "COPYRIGHT"
.br
Copyright \(co 2008-2012, 2014-2019 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2008-2012, 2014-2021 Internet Systems Consortium, Inc. ("ISC")
.br
+1 -1
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
+5 -5
View File
@@ -3,14 +3,14 @@
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- file, you can obtain one at https://mozilla.org/MPL/2.0/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
-->
<!-- Converted by db4-upgrade version 1.0 -->
<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.dnssec-keyfromlabel">
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="man.dnssec-keyfromlabel">
<info>
<date>2014-02-27</date>
</info>
@@ -44,6 +44,8 @@
<year>2017</year>
<year>2018</year>
<year>2019</year>
<year>2020</year>
<year>2021</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
@@ -166,9 +168,7 @@
<para>
When <acronym>BIND</acronym> 9 is built with OpenSSL-based
PKCS#11 support, the label is an arbitrary string that
identifies a particular key. It may be preceded by an
optional OpenSSL engine name, followed by a colon, as in
"pkcs11:<replaceable>keylabel</replaceable>".
identifies a particular key.
</para>
<para>
When <acronym>BIND</acronym> 9 is built with native PKCS#11
+99 -210
View File
@@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
- Copyright (C) 2008-2012, 2014-2019 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2008-2012, 2014-2021 Internet Systems Consortium, Inc. ("ISC")
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -10,62 +10,21 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>dnssec-keyfromlabel</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry">
<a name="man.dnssec-keyfromlabel"></a><div class="titlepage"></div>
<div class="refnamediv">
<div class="refnamediv">
<h2>Name</h2>
<p>
<span class="application">dnssec-keyfromlabel</span>
&#8212; DNSSEC key generation tool
</p>
<p><span class="application">dnssec-keyfromlabel</span> &#8212; DNSSEC key generation tool</p>
</div>
<div class="refsynopsisdiv">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="cmdsynopsis"><p>
<code class="command">dnssec-keyfromlabel</code>
{-l <em class="replaceable"><code>label</code></em>}
[<code class="option">-3</code>]
[<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>]
[<code class="option">-A <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-c <em class="replaceable"><code>class</code></em></code>]
[<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-D sync <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-E <em class="replaceable"><code>engine</code></em></code>]
[<code class="option">-f <em class="replaceable"><code>flag</code></em></code>]
[<code class="option">-G</code>]
[<code class="option">-I <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-i <em class="replaceable"><code>interval</code></em></code>]
[<code class="option">-k</code>]
[<code class="option">-K <em class="replaceable"><code>directory</code></em></code>]
[<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>]
[<code class="option">-n <em class="replaceable"><code>nametype</code></em></code>]
[<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-P sync <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-p <em class="replaceable"><code>protocol</code></em></code>]
[<code class="option">-R <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-S <em class="replaceable"><code>key</code></em></code>]
[<code class="option">-t <em class="replaceable"><code>type</code></em></code>]
[<code class="option">-v <em class="replaceable"><code>level</code></em></code>]
[<code class="option">-V</code>]
[<code class="option">-y</code>]
{name}
</p></div>
</div>
<div class="refsection">
<div class="cmdsynopsis"><p><code class="command">dnssec-keyfromlabel</code> {-l <em class="replaceable"><code>label</code></em>} [<code class="option">-3</code>] [<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>] [<code class="option">-A <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-D sync <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-f <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-G</code>] [<code class="option">-I <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-i <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-k</code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-n <em class="replaceable"><code>nametype</code></em></code>] [<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-P sync <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-p <em class="replaceable"><code>protocol</code></em></code>] [<code class="option">-R <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-S <em class="replaceable"><code>key</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-V</code>] [<code class="option">-y</code>] {name}</p></div>
</div>
<div class="refsection">
<a name="id-1.7"></a><h2>DESCRIPTION</h2>
<p><span class="command"><strong>dnssec-keyfromlabel</strong></span>
<p><span class="command"><strong>dnssec-keyfromlabel</strong></span>
generates a key pair of files that referencing a key object stored
in a cryptographic hardware service module (HSM). The private key
file can be used for DNSSEC signing of zone data as if it were a
@@ -73,57 +32,52 @@
but the key material is stored within the HSM, and the actual signing
takes place there.
</p>
<p>
<p>
The <code class="option">name</code> of the key is specified on the command
line. This must match the name of the zone for which the key is
being generated.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.8"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl class="variablelist">
<div class="variablelist"><dl class="variablelist">
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
<dd>
<p>
<p>
Selects the cryptographic algorithm. The value of
<code class="option">algorithm</code> must be one of RSAMD5, RSASHA1,
DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512, ECCGOST,
ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448.
These values are case insensitive.
</p>
<p>
<p>
If no algorithm is specified, then RSASHA1 will be used by
default, unless the <code class="option">-3</code> option is specified,
in which case NSEC3RSASHA1 will be used instead. (If
<code class="option">-3</code> is used and an algorithm is specified,
that algorithm will be checked for compatibility with NSEC3.)
</p>
<p>
<p>
Note 1: that for DNSSEC, RSASHA1 is a mandatory to implement
algorithm, and DSA is recommended.
</p>
<p>
<p>
Note 2: DH automatically sets the -k flag.
</p>
</dd>
</dd>
<dt><span class="term">-3</span></dt>
<dd>
<p>
<dd><p>
Use an NSEC3-capable algorithm to generate a DNSSEC key.
If this option is used and no algorithm is explicitly
set on the command line, NSEC3RSASHA1 will be used by
default.
</p>
</dd>
</p></dd>
<dt><span class="term">-E <em class="replaceable"><code>engine</code></em></span></dt>
<dd>
<p>
<p>
Specifies the cryptographic hardware to use.
</p>
<p>
<p>
When BIND is built with OpenSSL PKCS#11 support, this defaults
to the string "pkcs11", which identifies an OpenSSL engine
that can drive a cryptographic accelerator or hardware service
@@ -131,20 +85,18 @@
(--enable-native-pkcs11), it defaults to the path of the PKCS#11
provider library specified via "--with-pkcs11".
</p>
</dd>
</dd>
<dt><span class="term">-l <em class="replaceable"><code>label</code></em></span></dt>
<dd>
<p>
<p>
Specifies the label for a key pair in the crypto hardware.
</p>
<p>
<p>
When <acronym class="acronym">BIND</acronym> 9 is built with OpenSSL-based
PKCS#11 support, the label is an arbitrary string that
identifies a particular key. It may be preceded by an
optional OpenSSL engine name, followed by a colon, as in
"pkcs11:<em class="replaceable"><code>keylabel</code></em>".
identifies a particular key.
</p>
<p>
<p>
When <acronym class="acronym">BIND</acronym> 9 is built with native PKCS#11
support, the label is a PKCS#11 URI string in the format
"pkcs11:<code class="option">keyword</code>=<em class="replaceable"><code>value</code></em>[<span class="optional">;<code class="option">keyword</code>=<em class="replaceable"><code>value</code></em>;...</span>]"
@@ -153,7 +105,7 @@
which the HSM's PIN code can be obtained. The label will be
stored in the on-disk "private" file.
</p>
<p>
<p>
If the label contains a
<code class="option">pin-source</code> field, tools using the generated
key files will be able to use the HSM for signing and other
@@ -162,21 +114,18 @@
may reduce the security advantage of using an HSM; be sure
this is what you want to do before making use of this feature.
</p>
</dd>
</dd>
<dt><span class="term">-n <em class="replaceable"><code>nametype</code></em></span></dt>
<dd>
<p>
<dd><p>
Specifies the owner type of the key. The value of
<code class="option">nametype</code> must either be ZONE (for a DNSSEC
zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated with
a host (KEY)),
USER (for a key associated with a user(KEY)) or OTHER (DNSKEY).
These values are case insensitive.
</p>
</dd>
</p></dd>
<dt><span class="term">-C</span></dt>
<dd>
<p>
<dd><p>
Compatibility mode: generates an old-style key, without
any metadata. By default, <span class="command"><strong>dnssec-keyfromlabel</strong></span>
will include the key's creation date in the metadata stored
@@ -184,71 +133,53 @@
(publication date, activation date, etc). Keys that include
this data may be incompatible with older versions of BIND; the
<code class="option">-C</code> option suppresses them.
</p>
</dd>
</p></dd>
<dt><span class="term">-c <em class="replaceable"><code>class</code></em></span></dt>
<dd>
<p>
<dd><p>
Indicates that the DNS record containing the key should have
the specified class. If not specified, class IN is used.
</p>
</dd>
</p></dd>
<dt><span class="term">-f <em class="replaceable"><code>flag</code></em></span></dt>
<dd>
<p>
<dd><p>
Set the specified flag in the flag field of the KEY/DNSKEY record.
The only recognized flags are KSK (Key Signing Key) and REVOKE.
</p>
</dd>
</p></dd>
<dt><span class="term">-G</span></dt>
<dd>
<p>
<dd><p>
Generate a key, but do not publish it or sign with it. This
option is incompatible with -P and -A.
</p>
</dd>
</p></dd>
<dt><span class="term">-h</span></dt>
<dd>
<p>
<dd><p>
Prints a short summary of the options and arguments to
<span class="command"><strong>dnssec-keyfromlabel</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">-K <em class="replaceable"><code>directory</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the directory in which the key files are to be written.
</p>
</dd>
</p></dd>
<dt><span class="term">-k</span></dt>
<dd>
<p>
<dd><p>
Generate KEY records rather than DNSKEY records.
</p>
</dd>
</p></dd>
<dt><span class="term">-L <em class="replaceable"><code>ttl</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the default TTL to use for this key when it is converted
into a DNSKEY RR. If the key is imported into a zone,
this is the TTL that will be used for it, unless there was
already a DNSKEY RRset in place, in which case the existing TTL
would take precedence. Setting the default TTL to
<code class="literal">0</code> or <code class="literal">none</code> removes it.
</p>
</dd>
</p></dd>
<dt><span class="term">-p <em class="replaceable"><code>protocol</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the protocol value for the key. The protocol
is a number between 0 and 255. The default is 3 (DNSSEC).
Other possible values for this argument are listed in
RFC 2535 and its successors.
</p>
</dd>
</p></dd>
<dt><span class="term">-S <em class="replaceable"><code>key</code></em></span></dt>
<dd>
<p>
<dd><p>
Generate a key as an explicit successor to an existing key.
The name, algorithm, size, and type of the key will be set
to match the predecessor. The activation date of the new
@@ -256,47 +187,35 @@
one. The publication date will be set to the activation
date minus the prepublication interval, which defaults to
30 days.
</p>
</dd>
</p></dd>
<dt><span class="term">-t <em class="replaceable"><code>type</code></em></span></dt>
<dd>
<p>
<dd><p>
Indicates the use of the key. <code class="option">type</code> must be
one of AUTHCONF, NOAUTHCONF, NOAUTH, or NOCONF. The default
is AUTHCONF. AUTH refers to the ability to authenticate
data, and CONF the ability to encrypt data.
</p>
</dd>
</p></dd>
<dt><span class="term">-v <em class="replaceable"><code>level</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the debugging level.
</p>
</dd>
</p></dd>
<dt><span class="term">-V</span></dt>
<dd>
<p>
<dd><p>
Prints version information.
</p>
</dd>
</p></dd>
<dt><span class="term">-y</span></dt>
<dd>
<p>
<dd><p>
Allows DNSSEC key files to be generated even if the key ID
would collide with that of an existing key, in the event of
either key being revoked. (This is only safe to use if you
are sure you won't be using RFC 5011 trust anchor maintenance
with either of the keys involved.)
</p>
</dd>
</p></dd>
</dl></div>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.9"></a><h2>TIMING OPTIONS</h2>
<p>
<p>
Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS.
If the argument begins with a '+' or '-', it is interpreted as
an offset from the present time. For convenience, if such an offset
@@ -307,67 +226,52 @@
is computed in seconds. To explicitly prevent a date from being
set, use 'none' or 'never'.
</p>
<div class="variablelist"><dl class="variablelist">
<div class="variablelist"><dl class="variablelist">
<dt><span class="term">-P <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which a key is to be published to the zone.
After that date, the key will be included in the zone but will
not be used to sign it. If not set, and if the -G option has
not been used, the default is "now".
</p>
</dd>
</p></dd>
<dt><span class="term">-P sync <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which the CDS and CDNSKEY records which match
this key are to be published to the zone.
</p>
</dd>
</p></dd>
<dt><span class="term">-A <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which the key is to be activated. After that
date, the key will be included in the zone and used to sign
it. If not set, and if the -G option has not been used, the
default is "now".
</p>
</dd>
</p></dd>
<dt><span class="term">-R <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which the key is to be revoked. After that
date, the key will be flagged as revoked. It will be included
in the zone and will be used to sign it.
</p>
</dd>
</p></dd>
<dt><span class="term">-I <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which the key is to be retired. After that
date, the key will still be included in the zone, but it
will not be used to sign it.
</p>
</dd>
</p></dd>
<dt><span class="term">-D <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which the key is to be deleted. After that
date, the key will no longer be included in the zone. (It
may remain in the key repository, however.)
</p>
</dd>
</p></dd>
<dt><span class="term">-D sync <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which the CDS and CDNSKEY records which match
this key are to be deleted.
</p>
</dd>
</p></dd>
<dt><span class="term">-i <em class="replaceable"><code>interval</code></em></span></dt>
<dd>
<p>
<p>
Sets the prepublication interval for a key. If set, then
the publication and activation dates must be separated by at least
this much time. If the activation date is specified but the
@@ -376,83 +280,68 @@
the publication date is specified but activation date isn't,
then activation will be set to this much time after publication.
</p>
<p>
<p>
If the key is being created as an explicit successor to another
key, then the default prepublication interval is 30 days;
otherwise it is zero.
</p>
<p>
<p>
As with date offsets, if the argument is followed by one of
the suffixes 'y', 'mo', 'w', 'd', 'h', or 'mi', then the
interval is measured in years, months, weeks, days, hours,
or minutes, respectively. Without a suffix, the interval is
measured in seconds.
</p>
</dd>
</dd>
</dl></div>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.10"></a><h2>GENERATED KEY FILES</h2>
<p>
<p>
When <span class="command"><strong>dnssec-keyfromlabel</strong></span> completes
successfully,
it prints a string of the form <code class="filename">Knnnn.+aaa+iiiii</code>
to the standard output. This is an identification string for
the key files it has generated.
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<p><code class="filename">nnnn</code> is the key name.
</p>
</li>
<li class="listitem">
<p><code class="filename">aaa</code> is the numeric representation
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p><code class="filename">nnnn</code> is the key name.
</p></li>
<li class="listitem"><p><code class="filename">aaa</code> is the numeric representation
of the algorithm.
</p>
</li>
<li class="listitem">
<p><code class="filename">iiiii</code> is the key identifier (or
</p></li>
<li class="listitem"><p><code class="filename">iiiii</code> is the key identifier (or
footprint).
</p>
</li>
</p></li>
</ul></div>
<p><span class="command"><strong>dnssec-keyfromlabel</strong></span>
<p><span class="command"><strong>dnssec-keyfromlabel</strong></span>
creates two files, with names based
on the printed string. <code class="filename">Knnnn.+aaa+iiiii.key</code>
contains the public key, and
<code class="filename">Knnnn.+aaa+iiiii.private</code> contains the
private key.
</p>
<p>
<p>
The <code class="filename">.key</code> file contains a DNS KEY record
that
can be inserted into a zone file (directly or with a $INCLUDE
statement).
</p>
<p>
<p>
The <code class="filename">.private</code> file contains
algorithm-specific
fields. For obvious security reasons, this file does not have
general read permission.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.11"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry">
<span class="refentrytitle">dnssec-keygen</span>(8)
</span>,
<span class="citerefentry">
<span class="refentrytitle">dnssec-signzone</span>(8)
</span>,
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
<em class="citetitle">RFC 4034</em>,
<em class="citetitle">The PKCS#11 URI Scheme (draft-pechanec-pkcs11uri-13)</em>.
</p>
</div>
</div>
</div></body>
</html>
+32 -24
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2000-2005, 2007-2012, 2014-2019 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2000-2005, 2007-2012, 2014-2021 Internet Systems Consortium, Inc. ("ISC")
.\"
.\" This Source Code Form is subject to the terms of the Mozilla Public
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -9,7 +9,7 @@
'\" t
.\" Title: dnssec-keygen
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: August 21, 2015
.\" Manual: BIND9
.\" Source: ISC
@@ -39,7 +39,7 @@
dnssec-keygen \- DNSSEC key generation tool
.SH "SYNOPSIS"
.HP \w'\fBdnssec\-keygen\fR\ 'u
\fBdnssec\-keygen\fR [\fB\-a\ \fR\fB\fIalgorithm\fR\fR] [\fB\-b\ \fR\fB\fIkeysize\fR\fR] [\fB\-n\ \fR\fB\fInametype\fR\fR] [\fB\-3\fR] [\fB\-A\ \fR\fB\fIdate/offset\fR\fR] [\fB\-C\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-D\ \fR\fB\fIdate/offset\fR\fR] [\fB\-D\ sync\ \fR\fB\fIdate/offset\fR\fR] [\fB\-E\ \fR\fB\fIengine\fR\fR] [\fB\-f\ \fR\fB\fIflag\fR\fR] [\fB\-G\fR] [\fB\-g\ \fR\fB\fIgenerator\fR\fR] [\fB\-h\fR] [\fB\-I\ \fR\fB\fIdate/offset\fR\fR] [\fB\-i\ \fR\fB\fIinterval\fR\fR] [\fB\-K\ \fR\fB\fIdirectory\fR\fR] [\fB\-k\fR] [\fB\-L\ \fR\fB\fIttl\fR\fR] [\fB\-P\ \fR\fB\fIdate/offset\fR\fR] [\fB\-P\ sync\ \fR\fB\fIdate/offset\fR\fR] [\fB\-p\ \fR\fB\fIprotocol\fR\fR] [\fB\-q\fR] [\fB\-R\ \fR\fB\fIdate/offset\fR\fR] [\fB\-r\ \fR\fB\fIrandomdev\fR\fR] [\fB\-S\ \fR\fB\fIkey\fR\fR] [\fB\-s\ \fR\fB\fIstrength\fR\fR] [\fB\-t\ \fR\fB\fItype\fR\fR] [\fB\-V\fR] [\fB\-v\ \fR\fB\fIlevel\fR\fR] [\fB\-z\fR] {name}
\fBdnssec\-keygen\fR [\fB\-3\fR] [\fB\-A\ \fR\fB\fIdate/offset\fR\fR] [\fB\-a\ \fR\fB\fIalgorithm\fR\fR] [\fB\-b\ \fR\fB\fIkeysize\fR\fR] [\fB\-C\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-D\ \fR\fB\fIdate/offset\fR\fR] [\fB\-D\ sync\ \fR\fB\fIdate/offset\fR\fR] [\fB\-E\ \fR\fB\fIengine\fR\fR] [\fB\-f\ \fR\fB\fIflag\fR\fR] [\fB\-G\fR] [\fB\-g\ \fR\fB\fIgenerator\fR\fR] [\fB\-h\fR] [\fB\-I\ \fR\fB\fIdate/offset\fR\fR] [\fB\-i\ \fR\fB\fIinterval\fR\fR] [\fB\-K\ \fR\fB\fIdirectory\fR\fR] [\fB\-k\fR] [\fB\-L\ \fR\fB\fIttl\fR\fR] [\fB\-n\ \fR\fB\fInametype\fR\fR] [\fB\-P\ \fR\fB\fIdate/offset\fR\fR] [\fB\-P\ sync\ \fR\fB\fIdate/offset\fR\fR] [\fB\-p\ \fR\fB\fIprotocol\fR\fR] [\fB\-q\fR] [\fB\-R\ \fR\fB\fIdate/offset\fR\fR] [\fB\-r\ \fR\fB\fIrandomdev\fR\fR] [\fB\-S\ \fR\fB\fIkey\fR\fR] [\fB\-s\ \fR\fB\fIstrength\fR\fR] [\fB\-t\ \fR\fB\fItype\fR\fR] [\fB\-V\fR] [\fB\-v\ \fR\fB\fIlevel\fR\fR] {name}
.SH "DESCRIPTION"
.PP
\fBdnssec\-keygen\fR
@@ -50,6 +50,13 @@ The
of the key is specified on the command line\&. For DNSSEC keys, this must match the name of the zone for which the key is being generated\&.
.SH "OPTIONS"
.PP
\-3
.RS 4
Use an NSEC3\-capable algorithm to generate a DNSSEC key\&. If this option is used with an algorithm that has both NSEC and NSEC3 versions, then the NSEC3 version will be used; for example,
\fBdnssec\-keygen \-3a RSASHA1\fR
specifies the NSEC3RSASHA1 algorithm\&.
.RE
.PP
\-a \fIalgorithm\fR
.RS 4
Selects the cryptographic algorithm\&. For DNSSEC keys, the value of
@@ -78,21 +85,9 @@ The key size does not need to be specified if using a default algorithm\&. The d
must be used\&.
.RE
.PP
\-n \fInametype\fR
.RS 4
Specifies the owner type of the key\&. The value of
\fBnametype\fR
must either be ZONE (for a DNSSEC zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated with a host (KEY)), USER (for a key associated with a user(KEY)) or OTHER (DNSKEY)\&. These values are case insensitive\&. Defaults to ZONE for DNSKEY generation\&.
.RE
.PP
\-3
.RS 4
Use an NSEC3\-capable algorithm to generate a DNSSEC key\&. If this option is used and no algorithm is explicitly set on the command line, NSEC3RSASHA1 will be used by default\&. Note that RSASHA256, RSASHA512, ECCGOST, ECDSAP256SHA256, ECDSAP384SHA384, ED25519 and ED448 algorithms are NSEC3\-capable\&.
.RE
.PP
\-C
.RS 4
Compatibility mode: generates an old\-style key, without any metadata\&. By default,
Compatibility mode: generates an old\-style key, without any timing metadata\&. By default,
\fBdnssec\-keygen\fR
will include the key\*(Aqs creation date in the metadata stored with the private key, and other dates may be set there as well (publication date, activation date, etc)\&. Keys that include this data may be incompatible with older versions of BIND; the
\fB\-C\fR
@@ -151,9 +146,17 @@ none
is the same as leaving it unset\&.
.RE
.PP
\-n \fInametype\fR
.RS 4
Specifies the owner type of the key\&. The value of
\fBnametype\fR
must either be ZONE (for a DNSSEC zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated with a host (KEY)), USER (for a key associated with a user(KEY)) or OTHER (DNSKEY)\&. These values are case insensitive\&. Defaults to ZONE for DNSKEY generation\&.
.RE
.PP
\-p \fIprotocol\fR
.RS 4
Sets the protocol value for the generated key\&. The protocol is a number between 0 and 255\&. The default is 3 (DNSSEC)\&. Other possible values for this argument are listed in RFC 2535 and its successors\&.
Sets the protocol value for the generated key, for use with
\fB\-T KEY\fR\&. The protocol is a number between 0 and 255\&. The default is 3 (DNSSEC)\&. Other possible values for this argument are listed in RFC 2535 and its successors\&.
.RE
.PP
\-q
@@ -196,20 +199,21 @@ Using any TSIG algorithm (HMAC\-* or DH) forces this option to KEY\&.
.PP
\-t \fItype\fR
.RS 4
Indicates the use of the key\&.
Indicates the use of the key, for use with
\fB\-T KEY\fR\&.
\fBtype\fR
must be one of AUTHCONF, NOAUTHCONF, NOAUTH, or NOCONF\&. The default is AUTHCONF\&. AUTH refers to the ability to authenticate data, and CONF the ability to encrypt data\&.
.RE
.PP
\-v \fIlevel\fR
.RS 4
Sets the debugging level\&.
.RE
.PP
\-V
.RS 4
Prints version information\&.
.RE
.PP
\-v \fIlevel\fR
.RS 4
Sets the debugging level\&.
.RE
.SH "TIMING OPTIONS"
.PP
Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS\&. If the argument begins with a \*(Aq+\*(Aq or \*(Aq\-\*(Aq, it is interpreted as an offset from the present time\&. For convenience, if such an offset is followed by one of the suffixes \*(Aqy\*(Aq, \*(Aqmo\*(Aq, \*(Aqw\*(Aq, \*(Aqd\*(Aq, \*(Aqh\*(Aq, or \*(Aqmi\*(Aq, then the offset is computed in years (defined as 365 24\-hour days, ignoring leap years), months (defined as 30 24\-hour days), weeks, days, hours, or minutes, respectively\&. Without a suffix, the offset is computed in seconds\&. To explicitly prevent a date from being set, use \*(Aqnone\*(Aq or \*(Aqnever\*(Aq\&.
@@ -338,6 +342,10 @@ creates the files
Kexample\&.com\&.+003+26160\&.key
and
Kexample\&.com\&.+003+26160\&.private\&.
.PP
To generate a matching key\-signing key, issue the command:
.PP
\fBdnssec\-keygen \-a DSA \-b 768 \-n ZONE \-f KSK example\&.com\fR
.SH "SEE ALSO"
.PP
\fBdnssec-signzone\fR(8),
@@ -350,5 +358,5 @@ RFC 4034\&.
\fBInternet Systems Consortium, Inc\&.\fR
.SH "COPYRIGHT"
.br
Copyright \(co 2000-2005, 2007-2012, 2014-2019 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2000-2005, 2007-2012, 2014-2021 Internet Systems Consortium, Inc. ("ISC")
.br
+1 -1
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
+65 -58
View File
@@ -3,14 +3,14 @@
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- file, you can obtain one at https://mozilla.org/MPL/2.0/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
-->
<!-- Converted by db4-upgrade version 1.0 -->
<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.dnssec-keygen">
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="man.dnssec-keygen">
<info>
<date>2014-02-06</date>
</info>
@@ -51,6 +51,8 @@
<year>2017</year>
<year>2018</year>
<year>2019</year>
<year>2020</year>
<year>2021</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
@@ -58,11 +60,10 @@
<refsynopsisdiv>
<cmdsynopsis sepchar=" ">
<command>dnssec-keygen</command>
<arg choice="opt" rep="norepeat"><option>-a <replaceable class="parameter">algorithm</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-b <replaceable class="parameter">keysize</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-n <replaceable class="parameter">nametype</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-3</option></arg>
<arg choice="opt" rep="norepeat"><option>-A <replaceable class="parameter">date/offset</replaceable></option></arg>
<arg rep="norepeat"><option>-a <replaceable class="parameter">algorithm</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-b <replaceable class="parameter">keysize</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-C</option></arg>
<arg choice="opt" rep="norepeat"><option>-c <replaceable class="parameter">class</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-D <replaceable class="parameter">date/offset</replaceable></option></arg>
@@ -77,6 +78,7 @@
<arg choice="opt" rep="norepeat"><option>-K <replaceable class="parameter">directory</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-k</option></arg>
<arg choice="opt" rep="norepeat"><option>-L <replaceable class="parameter">ttl</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-n <replaceable class="parameter">nametype</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-P <replaceable class="parameter">date/offset</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-P sync <replaceable class="parameter">date/offset</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-p <replaceable class="parameter">protocol</replaceable></option></arg>
@@ -88,7 +90,6 @@
<arg choice="opt" rep="norepeat"><option>-t <replaceable class="parameter">type</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-V</option></arg>
<arg choice="opt" rep="norepeat"><option>-v <replaceable class="parameter">level</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-z</option></arg>
<arg choice="req" rep="norepeat">name</arg>
</cmdsynopsis>
</refsynopsisdiv>
@@ -112,6 +113,20 @@
<variablelist>
<varlistentry>
<term>-3</term>
<listitem>
<para>
Use an NSEC3-capable algorithm to generate a DNSSEC key.
If this option is used with an algorithm that has both
NSEC and NSEC3 versions, then the NSEC3 version will be
used; for example, <command>dnssec-keygen -3a RSASHA1</command>
specifies the NSEC3RSASHA1 algorithm.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-a <replaceable class="parameter">algorithm</replaceable></term>
<listitem>
@@ -168,45 +183,16 @@
</listitem>
</varlistentry>
<varlistentry>
<term>-n <replaceable class="parameter">nametype</replaceable></term>
<listitem>
<para>
Specifies the owner type of the key. The value of
<option>nametype</option> must either be ZONE (for a DNSSEC
zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated with
a host (KEY)),
USER (for a key associated with a user(KEY)) or OTHER (DNSKEY).
These values are case insensitive. Defaults to ZONE for DNSKEY
generation.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-3</term>
<listitem>
<para>
Use an NSEC3-capable algorithm to generate a DNSSEC key.
If this option is used and no algorithm is explicitly
set on the command line, NSEC3RSASHA1 will be used by
default. Note that RSASHA256, RSASHA512, ECCGOST,
ECDSAP256SHA256, ECDSAP384SHA384, ED25519 and ED448
algorithms are NSEC3-capable.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-C</term>
<listitem>
<para>
Compatibility mode: generates an old-style key, without
any metadata. By default, <command>dnssec-keygen</command>
will include the key's creation date in the metadata stored
with the private key, and other dates may be set there as well
(publication date, activation date, etc). Keys that include
this data may be incompatible with older versions of BIND; the
Compatibility mode: generates an old-style key, without any
timing metadata. By default, <command>dnssec-keygen</command>
will include the key's creation date in the metadata stored with
the private key, and other dates may be set there as well
(publication date, activation date, etc). Keys that include this
data may be incompatible with older versions of BIND; the
<option>-C</option> option suppresses them.
</para>
</listitem>
@@ -315,14 +301,28 @@
</listitem>
</varlistentry>
<varlistentry>
<term>-n <replaceable class="parameter">nametype</replaceable></term>
<listitem>
<para>
Specifies the owner type of the key. The value of
<option>nametype</option> must either be ZONE (for a DNSSEC
zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated
with a host (KEY)), USER (for a key associated with a
user(KEY)) or OTHER (DNSKEY). These values are case
insensitive. Defaults to ZONE for DNSKEY generation.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-p <replaceable class="parameter">protocol</replaceable></term>
<listitem>
<para>
Sets the protocol value for the generated key. The protocol
is a number between 0 and 255. The default is 3 (DNSSEC).
Other possible values for this argument are listed in
RFC 2535 and its successors.
Sets the protocol value for the generated key, for use
with <option>-T KEY</option>. The protocol is a number between 0
and 255. The default is 3 (DNSSEC). Other possible values for
this argument are listed in RFC 2535 and its successors.
</para>
</listitem>
</varlistentry>
@@ -409,19 +409,11 @@
<term>-t <replaceable class="parameter">type</replaceable></term>
<listitem>
<para>
Indicates the use of the key. <option>type</option> must be
one of AUTHCONF, NOAUTHCONF, NOAUTH, or NOCONF. The default
is AUTHCONF. AUTH refers to the ability to authenticate
data, and CONF the ability to encrypt data.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-v <replaceable class="parameter">level</replaceable></term>
<listitem>
<para>
Sets the debugging level.
Indicates the use of the key, for use with <option>-T
KEY</option>. <option>type</option> must be one of AUTHCONF,
NOAUTHCONF, NOAUTH, or NOCONF. The default is AUTHCONF. AUTH
refers to the ability to authenticate data, and CONF the ability
to encrypt data.
</para>
</listitem>
</varlistentry>
@@ -435,6 +427,15 @@
</listitem>
</varlistentry>
<varlistentry>
<term>-v <replaceable class="parameter">level</replaceable></term>
<listitem>
<para>
Sets the debugging level.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
@@ -637,6 +638,12 @@
and
<filename>Kexample.com.+003+26160.private</filename>.
</para>
<para>
To generate a matching key-signing key, issue the command:
</para>
<para>
<userinput>dnssec-keygen -a DSA -b 768 -n ZONE -f KSK example.com</userinput>
</para>
</refsection>
<refsection><info><title>SEE ALSO</title></info>
+147 -264
View File
@@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
- Copyright (C) 2000-2005, 2007-2012, 2014-2019 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2005, 2007-2012, 2014-2021 Internet Systems Consortium, Inc. ("ISC")
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -10,88 +10,46 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>dnssec-keygen</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry">
<a name="man.dnssec-keygen"></a><div class="titlepage"></div>
<div class="refnamediv">
<div class="refnamediv">
<h2>Name</h2>
<p>
<span class="application">dnssec-keygen</span>
&#8212; DNSSEC key generation tool
</p>
<p><span class="application">dnssec-keygen</span> &#8212; DNSSEC key generation tool</p>
</div>
<div class="refsynopsisdiv">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="cmdsynopsis"><p>
<code class="command">dnssec-keygen</code>
[<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>]
[<code class="option">-b <em class="replaceable"><code>keysize</code></em></code>]
[<code class="option">-n <em class="replaceable"><code>nametype</code></em></code>]
[<code class="option">-3</code>]
[<code class="option">-A <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-C</code>]
[<code class="option">-c <em class="replaceable"><code>class</code></em></code>]
[<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-D sync <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-E <em class="replaceable"><code>engine</code></em></code>]
[<code class="option">-f <em class="replaceable"><code>flag</code></em></code>]
[<code class="option">-G</code>]
[<code class="option">-g <em class="replaceable"><code>generator</code></em></code>]
[<code class="option">-h</code>]
[<code class="option">-I <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-i <em class="replaceable"><code>interval</code></em></code>]
[<code class="option">-K <em class="replaceable"><code>directory</code></em></code>]
[<code class="option">-k</code>]
[<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>]
[<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-P sync <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-p <em class="replaceable"><code>protocol</code></em></code>]
[<code class="option">-q</code>]
[<code class="option">-R <em class="replaceable"><code>date/offset</code></em></code>]
[<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>]
[<code class="option">-S <em class="replaceable"><code>key</code></em></code>]
[<code class="option">-s <em class="replaceable"><code>strength</code></em></code>]
[<code class="option">-t <em class="replaceable"><code>type</code></em></code>]
[<code class="option">-V</code>]
[<code class="option">-v <em class="replaceable"><code>level</code></em></code>]
[<code class="option">-z</code>]
{name}
</p></div>
</div>
<div class="refsection">
<div class="cmdsynopsis"><p><code class="command">dnssec-keygen</code> [<code class="option">-3</code>] [<code class="option">-A <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>] [<code class="option">-b <em class="replaceable"><code>keysize</code></em></code>] [<code class="option">-C</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-D sync <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-f <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-G</code>] [<code class="option">-g <em class="replaceable"><code>generator</code></em></code>] [<code class="option">-h</code>] [<code class="option">-I <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-i <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-k</code>] [<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-n <em class="replaceable"><code>nametype</code></em></code>] [<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-P sync <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-p <em class="replaceable"><code>protocol</code></em></code>] [<code class="option">-q</code>] [<code class="option">-R <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-S <em class="replaceable"><code>key</code></em></code>] [<code class="option">-s <em class="replaceable"><code>strength</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-V</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] {name}</p></div>
</div>
<div class="refsection">
<a name="id-1.7"></a><h2>DESCRIPTION</h2>
<p><span class="command"><strong>dnssec-keygen</strong></span>
<p><span class="command"><strong>dnssec-keygen</strong></span>
generates keys for DNSSEC (Secure DNS), as defined in RFC 2535
and RFC 4034. It can also generate keys for use with
TSIG (Transaction Signatures) as defined in RFC 2845, or TKEY
(Transaction Key) as defined in RFC 2930.
</p>
<p>
<p>
The <code class="option">name</code> of the key is specified on the command
line. For DNSSEC keys, this must match the name of the zone for
which the key is being generated.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.8"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl class="variablelist">
<div class="variablelist"><dl class="variablelist">
<dt><span class="term">-3</span></dt>
<dd><p>
Use an NSEC3-capable algorithm to generate a DNSSEC key.
If this option is used with an algorithm that has both
NSEC and NSEC3 versions, then the NSEC3 version will be
used; for example, <span class="command"><strong>dnssec-keygen -3a RSASHA1</strong></span>
specifies the NSEC3RSASHA1 algorithm.
</p></dd>
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
<dd>
<p>
<p>
Selects the cryptographic algorithm. For DNSSEC keys, the value
of <code class="option">algorithm</code> must be one of RSAMD5, RSASHA1,
DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512, ECCGOST,
@@ -101,26 +59,26 @@
HMAC-SHA256, HMAC-SHA384, or HMAC-SHA512. These values are
case insensitive.
</p>
<p>
<p>
If no algorithm is specified, then RSASHA1 will be used by
default, unless the <code class="option">-3</code> option is specified,
in which case NSEC3RSASHA1 will be used instead. (If
<code class="option">-3</code> is used and an algorithm is specified,
that algorithm will be checked for compatibility with NSEC3.)
</p>
<p>
<p>
Note 1: that for DNSSEC, RSASHA1 is a mandatory to implement
algorithm, and DSA is recommended. For TSIG, HMAC-MD5 is
mandatory.
</p>
<p>
<p>
Note 2: DH, HMAC-MD5, and HMAC-SHA1 through HMAC-SHA512
automatically set the -T KEY option.
</p>
</dd>
</dd>
<dt><span class="term">-b <em class="replaceable"><code>keysize</code></em></span></dt>
<dd>
<p>
<p>
Specifies the number of bits in the key. The choice of key
size depends on the algorithm used. RSA keys must be
between 512 and 2048 bits. Diffie Hellman keys must be between
@@ -129,7 +87,7 @@
between 1 and 512 bits. Elliptic curve algorithms don't need
this parameter.
</p>
<p>
<p>
The key size does not need to be specified if using a default
algorithm. The default key size is 1024 bits for zone signing
keys (ZSKs) and 2048 bits for key signing keys (KSKs,
@@ -138,55 +96,28 @@
then there is no default key size, and the <code class="option">-b</code>
must be used.
</p>
</dd>
<dt><span class="term">-n <em class="replaceable"><code>nametype</code></em></span></dt>
<dd>
<p>
Specifies the owner type of the key. The value of
<code class="option">nametype</code> must either be ZONE (for a DNSSEC
zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated with
a host (KEY)),
USER (for a key associated with a user(KEY)) or OTHER (DNSKEY).
These values are case insensitive. Defaults to ZONE for DNSKEY
generation.
</p>
</dd>
<dt><span class="term">-3</span></dt>
<dd>
<p>
Use an NSEC3-capable algorithm to generate a DNSSEC key.
If this option is used and no algorithm is explicitly
set on the command line, NSEC3RSASHA1 will be used by
default. Note that RSASHA256, RSASHA512, ECCGOST,
ECDSAP256SHA256, ECDSAP384SHA384, ED25519 and ED448
algorithms are NSEC3-capable.
</p>
</dd>
</dd>
<dt><span class="term">-C</span></dt>
<dd>
<p>
Compatibility mode: generates an old-style key, without
any metadata. By default, <span class="command"><strong>dnssec-keygen</strong></span>
will include the key's creation date in the metadata stored
with the private key, and other dates may be set there as well
(publication date, activation date, etc). Keys that include
this data may be incompatible with older versions of BIND; the
<dd><p>
Compatibility mode: generates an old-style key, without any
timing metadata. By default, <span class="command"><strong>dnssec-keygen</strong></span>
will include the key's creation date in the metadata stored with
the private key, and other dates may be set there as well
(publication date, activation date, etc). Keys that include this
data may be incompatible with older versions of BIND; the
<code class="option">-C</code> option suppresses them.
</p>
</dd>
</p></dd>
<dt><span class="term">-c <em class="replaceable"><code>class</code></em></span></dt>
<dd>
<p>
<dd><p>
Indicates that the DNS record containing the key should have
the specified class. If not specified, class IN is used.
</p>
</dd>
</p></dd>
<dt><span class="term">-E <em class="replaceable"><code>engine</code></em></span></dt>
<dd>
<p>
<p>
Specifies the cryptographic hardware to use, when applicable.
</p>
<p>
<p>
When BIND is built with OpenSSL PKCS#11 support, this defaults
to the string "pkcs11", which identifies an OpenSSL engine
that can drive a cryptographic accelerator or hardware service
@@ -194,52 +125,39 @@
(--enable-native-pkcs11), it defaults to the path of the PKCS#11
provider library specified via "--with-pkcs11".
</p>
</dd>
</dd>
<dt><span class="term">-f <em class="replaceable"><code>flag</code></em></span></dt>
<dd>
<p>
<dd><p>
Set the specified flag in the flag field of the KEY/DNSKEY record.
The only recognized flags are KSK (Key Signing Key) and REVOKE.
</p>
</dd>
</p></dd>
<dt><span class="term">-G</span></dt>
<dd>
<p>
<dd><p>
Generate a key, but do not publish it or sign with it. This
option is incompatible with -P and -A.
</p>
</dd>
</p></dd>
<dt><span class="term">-g <em class="replaceable"><code>generator</code></em></span></dt>
<dd>
<p>
<dd><p>
If generating a Diffie Hellman key, use this generator.
Allowed values are 2 and 5. If no generator
is specified, a known prime from RFC 2539 will be used
if possible; otherwise the default is 2.
</p>
</dd>
</p></dd>
<dt><span class="term">-h</span></dt>
<dd>
<p>
<dd><p>
Prints a short summary of the options and arguments to
<span class="command"><strong>dnssec-keygen</strong></span>.
</p>
</dd>
</p></dd>
<dt><span class="term">-K <em class="replaceable"><code>directory</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the directory in which the key files are to be written.
</p>
</dd>
</p></dd>
<dt><span class="term">-k</span></dt>
<dd>
<p>
<dd><p>
Deprecated in favor of -T KEY.
</p>
</dd>
</p></dd>
<dt><span class="term">-L <em class="replaceable"><code>ttl</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the default TTL to use for this key when it is converted
into a DNSKEY RR. If the key is imported into a zone,
this is the TTL that will be used for it, unless there was
@@ -248,20 +166,25 @@
is no existing DNSKEY RRset, the TTL will default to the
SOA TTL. Setting the default TTL to <code class="literal">0</code>
or <code class="literal">none</code> is the same as leaving it unset.
</p>
</dd>
</p></dd>
<dt><span class="term">-n <em class="replaceable"><code>nametype</code></em></span></dt>
<dd><p>
Specifies the owner type of the key. The value of
<code class="option">nametype</code> must either be ZONE (for a DNSSEC
zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated
with a host (KEY)), USER (for a key associated with a
user(KEY)) or OTHER (DNSKEY). These values are case
insensitive. Defaults to ZONE for DNSKEY generation.
</p></dd>
<dt><span class="term">-p <em class="replaceable"><code>protocol</code></em></span></dt>
<dd>
<p>
Sets the protocol value for the generated key. The protocol
is a number between 0 and 255. The default is 3 (DNSSEC).
Other possible values for this argument are listed in
RFC 2535 and its successors.
</p>
</dd>
<dd><p>
Sets the protocol value for the generated key, for use
with <code class="option">-T KEY</code>. The protocol is a number between 0
and 255. The default is 3 (DNSSEC). Other possible values for
this argument are listed in RFC 2535 and its successors.
</p></dd>
<dt><span class="term">-q</span></dt>
<dd>
<p>
<dd><p>
Quiet mode: Suppresses unnecessary output, including
progress indication. Without this option, when
<span class="command"><strong>dnssec-keygen</strong></span> is run interactively
@@ -273,11 +196,9 @@
round of the Miller-Rabin primality test; a space
means that the number has passed all the tests and is
a satisfactory key.
</p>
</dd>
</p></dd>
<dt><span class="term">-r <em class="replaceable"><code>randomdev</code></em></span></dt>
<dd>
<p>
<dd><p>
Specifies the source of randomness. If the operating
system does not provide a <code class="filename">/dev/random</code>
or equivalent device, the default source of randomness
@@ -287,11 +208,9 @@
data to be used instead of the default. The special value
<code class="filename">keyboard</code> indicates that keyboard
input should be used.
</p>
</dd>
</p></dd>
<dt><span class="term">-S <em class="replaceable"><code>key</code></em></span></dt>
<dd>
<p>
<dd><p>
Create a new key which is an explicit successor to an
existing key. The name, algorithm, size, and type of the
key will be set to match the existing key. The activation
@@ -299,19 +218,16 @@
the existing one. The publication date will be set to the
activation date minus the prepublication interval, which
defaults to 30 days.
</p>
</dd>
</p></dd>
<dt><span class="term">-s <em class="replaceable"><code>strength</code></em></span></dt>
<dd>
<p>
<dd><p>
Specifies the strength value of the key. The strength is
a number between 0 and 15, and currently has no defined
purpose in DNSSEC.
</p>
</dd>
</p></dd>
<dt><span class="term">-T <em class="replaceable"><code>rrtype</code></em></span></dt>
<dd>
<p>
<p>
Specifies the resource record type to use for the key.
<code class="option">rrtype</code> must be either DNSKEY or KEY. The
default is DNSKEY when using a DNSSEC algorithm, but it can be
@@ -323,36 +239,28 @@
Using any TSIG algorithm (HMAC-* or DH) forces this option
to KEY.
</p>
</dd>
</dd>
<dt><span class="term">-t <em class="replaceable"><code>type</code></em></span></dt>
<dd>
<p>
Indicates the use of the key. <code class="option">type</code> must be
one of AUTHCONF, NOAUTHCONF, NOAUTH, or NOCONF. The default
is AUTHCONF. AUTH refers to the ability to authenticate
data, and CONF the ability to encrypt data.
</p>
</dd>
<dt><span class="term">-v <em class="replaceable"><code>level</code></em></span></dt>
<dd>
<p>
Sets the debugging level.
</p>
</dd>
<dd><p>
Indicates the use of the key, for use with <code class="option">-T
KEY</code>. <code class="option">type</code> must be one of AUTHCONF,
NOAUTHCONF, NOAUTH, or NOCONF. The default is AUTHCONF. AUTH
refers to the ability to authenticate data, and CONF the ability
to encrypt data.
</p></dd>
<dt><span class="term">-V</span></dt>
<dd>
<p>
<dd><p>
Prints version information.
</p>
</dd>
</p></dd>
<dt><span class="term">-v <em class="replaceable"><code>level</code></em></span></dt>
<dd><p>
Sets the debugging level.
</p></dd>
</dl></div>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.9"></a><h2>TIMING OPTIONS</h2>
<p>
<p>
Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS.
If the argument begins with a '+' or '-', it is interpreted as
an offset from the present time. For convenience, if such an offset
@@ -363,69 +271,54 @@
is computed in seconds. To explicitly prevent a date from being
set, use 'none' or 'never'.
</p>
<div class="variablelist"><dl class="variablelist">
<div class="variablelist"><dl class="variablelist">
<dt><span class="term">-P <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which a key is to be published to the zone.
After that date, the key will be included in the zone but will
not be used to sign it. If not set, and if the -G option has
not been used, the default is "now".
</p>
</dd>
</p></dd>
<dt><span class="term">-P sync <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which CDS and CDNSKEY records that match this
key are to be published to the zone.
</p>
</dd>
</p></dd>
<dt><span class="term">-A <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which the key is to be activated. After that
date, the key will be included in the zone and used to sign
it. If not set, and if the -G option has not been used, the
default is "now". If set, if and -P is not set, then
the publication date will be set to the activation date
minus the prepublication interval.
</p>
</dd>
</p></dd>
<dt><span class="term">-R <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which the key is to be revoked. After that
date, the key will be flagged as revoked. It will be included
in the zone and will be used to sign it.
</p>
</dd>
</p></dd>
<dt><span class="term">-I <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which the key is to be retired. After that
date, the key will still be included in the zone, but it
will not be used to sign it.
</p>
</dd>
</p></dd>
<dt><span class="term">-D <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which the key is to be deleted. After that
date, the key will no longer be included in the zone. (It
may remain in the key repository, however.)
</p>
</dd>
</p></dd>
<dt><span class="term">-D sync <em class="replaceable"><code>date/offset</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the date on which the CDS and CDNSKEY records that match this
key are to be deleted.
</p>
</dd>
</p></dd>
<dt><span class="term">-i <em class="replaceable"><code>interval</code></em></span></dt>
<dd>
<p>
<p>
Sets the prepublication interval for a key. If set, then
the publication and activation dates must be separated by at least
this much time. If the activation date is specified but the
@@ -434,51 +327,42 @@
the publication date is specified but activation date isn't,
then activation will be set to this much time after publication.
</p>
<p>
<p>
If the key is being created as an explicit successor to another
key, then the default prepublication interval is 30 days;
otherwise it is zero.
</p>
<p>
<p>
As with date offsets, if the argument is followed by one of
the suffixes 'y', 'mo', 'w', 'd', 'h', or 'mi', then the
interval is measured in years, months, weeks, days, hours,
or minutes, respectively. Without a suffix, the interval is
measured in seconds.
</p>
</dd>
</dd>
</dl></div>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.10"></a><h2>GENERATED KEYS</h2>
<p>
<p>
When <span class="command"><strong>dnssec-keygen</strong></span> completes
successfully,
it prints a string of the form <code class="filename">Knnnn.+aaa+iiiii</code>
to the standard output. This is an identification string for
the key it has generated.
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<p><code class="filename">nnnn</code> is the key name.
</p>
</li>
<li class="listitem">
<p><code class="filename">aaa</code> is the numeric representation
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p><code class="filename">nnnn</code> is the key name.
</p></li>
<li class="listitem"><p><code class="filename">aaa</code> is the numeric representation
of the
algorithm.
</p>
</li>
<li class="listitem">
<p><code class="filename">iiiii</code> is the key identifier (or
</p></li>
<li class="listitem"><p><code class="filename">iiiii</code> is the key identifier (or
footprint).
</p>
</li>
</p></li>
</ul></div>
<p><span class="command"><strong>dnssec-keygen</strong></span>
<p><span class="command"><strong>dnssec-keygen</strong></span>
creates two files, with names based
on the printed string. <code class="filename">Knnnn.+aaa+iiiii.key</code>
contains the public key, and
@@ -486,60 +370,59 @@
private
key.
</p>
<p>
<p>
The <code class="filename">.key</code> file contains a DNS KEY record
that
can be inserted into a zone file (directly or with a $INCLUDE
statement).
</p>
<p>
<p>
The <code class="filename">.private</code> file contains
algorithm-specific
fields. For obvious security reasons, this file does not have
general read permission.
</p>
<p>
<p>
Both <code class="filename">.key</code> and <code class="filename">.private</code>
files are generated for symmetric cryptography algorithms such as
HMAC-MD5, even though the public and private key are equivalent.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.11"></a><h2>EXAMPLE</h2>
<p>
<p>
To generate a 768-bit DSA key for the domain
<strong class="userinput"><code>example.com</code></strong>, the following command would be
issued:
</p>
<p><strong class="userinput"><code>dnssec-keygen -a DSA -b 768 -n ZONE example.com</code></strong>
<p><strong class="userinput"><code>dnssec-keygen -a DSA -b 768 -n ZONE example.com</code></strong>
</p>
<p>
<p>
The command would print a string of the form:
</p>
<p><strong class="userinput"><code>Kexample.com.+003+26160</code></strong>
<p><strong class="userinput"><code>Kexample.com.+003+26160</code></strong>
</p>
<p>
<p>
In this example, <span class="command"><strong>dnssec-keygen</strong></span> creates
the files <code class="filename">Kexample.com.+003+26160.key</code>
and
<code class="filename">Kexample.com.+003+26160.private</code>.
</p>
</div>
<div class="refsection">
<p>
To generate a matching key-signing key, issue the command:
</p>
<p>
<strong class="userinput"><code>dnssec-keygen -a DSA -b 768 -n ZONE -f KSK example.com</code></strong>
</p>
</div>
<div class="refsection">
<a name="id-1.12"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry">
<span class="refentrytitle">dnssec-signzone</span>(8)
</span>,
<p><span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
<em class="citetitle">RFC 2539</em>,
<em class="citetitle">RFC 2845</em>,
<em class="citetitle">RFC 4034</em>.
</p>
</div>
</div>
</div></body>
</html>
+3 -3
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2009, 2011, 2014-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2009, 2011, 2014-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
.\"
.\" This Source Code Form is subject to the terms of the Mozilla Public
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -9,7 +9,7 @@
'\" t
.\" Title: dnssec-revoke
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 2014-01-15
.\" Manual: BIND9
.\" Source: ISC
@@ -99,5 +99,5 @@ RFC 5011\&.
\fBInternet Systems Consortium, Inc\&.\fR
.SH "COPYRIGHT"
.br
Copyright \(co 2009, 2011, 2014-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2009, 2011, 2014-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
.br
+1 -1
View File
@@ -3,7 +3,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
+4 -2
View File
@@ -3,14 +3,14 @@
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- file, you can obtain one at https://mozilla.org/MPL/2.0/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
-->
<!-- Converted by db4-upgrade version 1.0 -->
<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.dnssec-revoke">
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="man.dnssec-revoke">
<info>
<date>2014-01-15</date>
</info>
@@ -39,6 +39,8 @@
<year>2016</year>
<year>2018</year>
<year>2019</year>
<year>2020</year>
<year>2021</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
+33 -78
View File
@@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
- Copyright (C) 2009, 2011, 2014-2016, 2018, 2019 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2009, 2011, 2014-2016, 2018-2021 Internet Systems Consortium, Inc. ("ISC")
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -10,92 +10,56 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>dnssec-revoke</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry">
<a name="man.dnssec-revoke"></a><div class="titlepage"></div>
<div class="refnamediv">
<div class="refnamediv">
<h2>Name</h2>
<p>
<span class="application">dnssec-revoke</span>
&#8212; set the REVOKED bit on a DNSSEC key
</p>
<p><span class="application">dnssec-revoke</span> &#8212; set the REVOKED bit on a DNSSEC key</p>
</div>
<div class="refsynopsisdiv">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="cmdsynopsis"><p>
<code class="command">dnssec-revoke</code>
[<code class="option">-hr</code>]
[<code class="option">-v <em class="replaceable"><code>level</code></em></code>]
[<code class="option">-V</code>]
[<code class="option">-K <em class="replaceable"><code>directory</code></em></code>]
[<code class="option">-E <em class="replaceable"><code>engine</code></em></code>]
[<code class="option">-f</code>]
[<code class="option">-R</code>]
{keyfile}
</p></div>
</div>
<div class="refsection">
<div class="cmdsynopsis"><p><code class="command">dnssec-revoke</code> [<code class="option">-hr</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-V</code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-f</code>] [<code class="option">-R</code>] {keyfile}</p></div>
</div>
<div class="refsection">
<a name="id-1.7"></a><h2>DESCRIPTION</h2>
<p><span class="command"><strong>dnssec-revoke</strong></span>
<p><span class="command"><strong>dnssec-revoke</strong></span>
reads a DNSSEC key file, sets the REVOKED bit on the key as defined
in RFC 5011, and creates a new pair of key files containing the
now-revoked key.
</p>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.8"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl class="variablelist">
<div class="variablelist"><dl class="variablelist">
<dt><span class="term">-h</span></dt>
<dd>
<p>
<dd><p>
Emit usage message and exit.
</p>
</dd>
</p></dd>
<dt><span class="term">-K <em class="replaceable"><code>directory</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the directory in which the key files are to reside.
</p>
</dd>
</p></dd>
<dt><span class="term">-r</span></dt>
<dd>
<p>
<dd><p>
After writing the new keyset files remove the original keyset
files.
</p>
</dd>
</p></dd>
<dt><span class="term">-v <em class="replaceable"><code>level</code></em></span></dt>
<dd>
<p>
<dd><p>
Sets the debugging level.
</p>
</dd>
</p></dd>
<dt><span class="term">-V</span></dt>
<dd>
<p>
<dd><p>
Prints version information.
</p>
</dd>
</p></dd>
<dt><span class="term">-E <em class="replaceable"><code>engine</code></em></span></dt>
<dd>
<p>
<p>
Specifies the cryptographic hardware to use, when applicable.
</p>
<p>
<p>
When BIND is built with OpenSSL PKCS#11 support, this defaults
to the string "pkcs11", which identifies an OpenSSL engine
that can drive a cryptographic accelerator or hardware service
@@ -103,35 +67,26 @@
(--enable-native-pkcs11), it defaults to the path of the PKCS#11
provider library specified via "--with-pkcs11".
</p>
</dd>
</dd>
<dt><span class="term">-f</span></dt>
<dd>
<p>
<dd><p>
Force overwrite: Causes <span class="command"><strong>dnssec-revoke</strong></span> to
write the new key pair even if a file already exists matching
the algorithm and key ID of the revoked key.
</p>
</dd>
</p></dd>
<dt><span class="term">-R</span></dt>
<dd>
<p>
<dd><p>
Print the key tag of the key with the REVOKE bit set but do
not revoke the key.
</p>
</dd>
</p></dd>
</dl></div>
</div>
<div class="refsection">
</div>
<div class="refsection">
<a name="id-1.9"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry">
<span class="refentrytitle">dnssec-keygen</span>(8)
</span>,
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
<em class="citetitle">RFC 5011</em>.
</p>
</div>
</div>
</div></body>
</html>

Some files were not shown because too many files have changed in this diff Show More