]> git.ipfire.org Git - thirdparty/bind9.git/log
thirdparty/bind9.git
8 years agoAdd CHANGES entry for GL #261.
Ondřej Surý [Tue, 26 Jun 2018 19:48:37 +0000 (21:48 +0200)] 
Add CHANGES entry for GL #261.

8 years agoremove lib/isc/print.c and lib/isc/tests/print_test.c
Mark Andrews [Fri, 18 May 2018 04:00:08 +0000 (14:00 +1000)] 
remove lib/isc/print.c and lib/isc/tests/print_test.c

8 years agoMerge branch '328-make-openssl-mandatory-windows' into 'master'
Ondřej Surý [Thu, 19 Jul 2018 22:13:27 +0000 (18:13 -0400)] 
Merge branch '328-make-openssl-mandatory-windows' into 'master'

Fix the Windows build after merging the crypto refactoring work

See merge request isc-projects/bind9!545

8 years agoIntroduce USE_OPENSSL define to Windows build, remove CRYPTO and AES conditions.
Ondřej Surý [Thu, 19 Jul 2018 20:05:57 +0000 (16:05 -0400)] 
Introduce USE_OPENSSL define to Windows build, remove CRYPTO and AES conditions.

8 years agoMerge branch '328-make-openssl-mandatory' into 'master'
Ondřej Surý [Thu, 19 Jul 2018 19:08:32 +0000 (15:08 -0400)] 
Merge branch '328-make-openssl-mandatory' into 'master'

Resolve "Refactor crypto to use OpenSSL for everything but Public-Key Cryptography"

Closes #328

See merge request isc-projects/bind9!371

8 years agoFix the Windows build
Ondřej Surý [Thu, 19 Jul 2018 17:47:41 +0000 (13:47 -0400)] 
Fix the Windows build

8 years agoFix DH and ECDSA algorithms in PKCS#11 build
Ondřej Surý [Thu, 19 Jul 2018 17:46:01 +0000 (13:46 -0400)] 
Fix DH and ECDSA algorithms in PKCS#11 build

8 years agoFix the build when EdDSA algorithms are not available
Ondřej Surý [Thu, 19 Jul 2018 15:29:05 +0000 (11:29 -0400)] 
Fix the build when EdDSA algorithms are not available

8 years agoCleanup copyrights
Ondřej Surý [Tue, 3 Jul 2018 18:43:06 +0000 (20:43 +0200)] 
Cleanup copyrights

8 years agoAdd GitLab CI tests using SoftHSMv2 as PKCS#11 provider.
Ondřej Surý [Tue, 3 Jul 2018 18:34:19 +0000 (20:34 +0200)] 
Add GitLab CI tests using SoftHSMv2 as PKCS#11 provider.

8 years agoRemove PKCS#11 DH implementation as there's no private keys stored in HSM for DH...
Ondřej Surý [Tue, 3 Jul 2018 17:35:36 +0000 (19:35 +0200)] 
Remove PKCS#11 DH implementation as there's no private keys stored in HSM for DH algorithm

8 years agoCleanup the configure feature report
Ondřej Surý [Fri, 22 Jun 2018 11:47:45 +0000 (13:47 +0200)] 
Cleanup the configure feature report

8 years agoRSA and ECDSA cryptography is now mandatory; remove the checks for those
Ondřej Surý [Mon, 18 Jun 2018 10:07:06 +0000 (12:07 +0200)] 
RSA and ECDSA cryptography is now mandatory; remove the checks for those

8 years agoDisable DH test with PKCS#11
Ondřej Surý [Mon, 18 Jun 2018 09:43:45 +0000 (11:43 +0200)] 
Disable DH test with PKCS#11

8 years agoMake OpenSSL mandatory
Ondřej Surý [Tue, 12 Jun 2018 09:26:04 +0000 (11:26 +0200)] 
Make OpenSSL mandatory

8 years agoMerge branch 'gitlab-ci-add-jessie-and-stretch' into 'master'
Ondřej Surý [Thu, 19 Jul 2018 16:44:22 +0000 (12:44 -0400)] 
Merge branch 'gitlab-ci-add-jessie-and-stretch' into 'master'

Add Debian jessie and stretch to GitLab CI

See merge request isc-projects/bind9!543

8 years agoRemove quotes around $EXTRA_CONFIGURE to break out more options into ... more options...
Ondřej Surý [Thu, 19 Jul 2018 15:24:20 +0000 (11:24 -0400)] 
Remove quotes around $EXTRA_CONFIGURE to break out more options into ... more options and not a single one

8 years agoMake libidn2 build optional
Ondřej Surý [Thu, 19 Jul 2018 16:22:55 +0000 (12:22 -0400)] 
Make libidn2 build optional

8 years agoDisable autogen.sh in precheck, it needs newer autoconf and it breaks the older builds
Ondřej Surý [Thu, 19 Jul 2018 15:34:52 +0000 (11:34 -0400)] 
Disable autogen.sh in precheck, it needs newer autoconf and it breaks the older builds

8 years agoAdd Debian jessie and stretch images to the build to catch errors with older but...
Ondřej Surý [Thu, 19 Jul 2018 15:32:32 +0000 (11:32 -0400)] 
Add Debian jessie and stretch images to the build to catch errors with older but supported releases

8 years agoMerge branch '423-fix-handling-of-tat-sending-failures' into 'master'
Michał Kępień [Thu, 19 Jul 2018 16:15:18 +0000 (12:15 -0400)] 
Merge branch '423-fix-handling-of-tat-sending-failures' into 'master'

Fix handling of TAT sending failures

Closes #423

See merge request isc-projects/bind9!540

8 years agoFix handling of TAT sending failures
Michał Kępień [Thu, 19 Jul 2018 15:43:58 +0000 (17:43 +0200)] 
Fix handling of TAT sending failures

dns_view_zonecut() may associate the dns_rdataset_t structure passed to
it even if it returns a result different then ISC_R_SUCCESS.  Not
handling this properly may cause a reference leak.  Fix by ensuring
'nameservers' is cleaned up in all relevant failure modes.

8 years agoMerge branch 'use-internal-docker-registry' into 'master'
Ondřej Surý [Thu, 19 Jul 2018 15:40:47 +0000 (11:40 -0400)] 
Merge branch 'use-internal-docker-registry' into 'master'

Try using the integrated Docker Registry again

See merge request isc-projects/bind9!539

8 years agoTry using the integrated Docker Registry again
Ondřej Surý [Mon, 16 Jul 2018 14:40:16 +0000 (10:40 -0400)] 
Try using the integrated Docker Registry again

8 years agoMerge branch 'fix-various-tests-for-qmin' into 'master'
Witold Krecicki [Tue, 17 Jul 2018 15:09:24 +0000 (11:09 -0400)] 
Merge branch 'fix-various-tests-for-qmin' into 'master'

Fix various tests for qmin

See merge request isc-projects/bind9!520

8 years agoChanges entry
Witold Kręcicki [Tue, 17 Jul 2018 15:00:23 +0000 (17:00 +0200)] 
Changes entry

8 years ago[squash] Make resolver tests even more civilized (ans8.pl)
Michał Kępień [Tue, 17 Jul 2018 09:21:39 +0000 (11:21 +0200)] 
[squash] Make resolver tests even more civilized (ans8.pl)

Set AA=1 even for truncated responses.  Put glue record in responses to
no-questions/NS queries.  Add comments, simplify code.

8 years ago[squash] Make resolver tests even more civilized (ans2.pl and ans3.pl)
Michał Kępień [Tue, 17 Jul 2018 09:21:39 +0000 (11:21 +0200)] 
[squash] Make resolver tests even more civilized (ans2.pl and ans3.pl)

Prevent ans2.pl from responding authoritatively for any name at or below
example.net.

Make ans3.pl properly answer example.net/NS queries.  Use string
comparisons instead of regular expressions where possible.

8 years ago[squash] Put Perl code extracting a tree from a cache dump in a separate function
Michał Kępień [Tue, 17 Jul 2018 09:21:39 +0000 (11:21 +0200)] 
[squash] Put Perl code extracting a tree from a cache dump in a separate function

8 years agocacheclean test: take into account that we can have multiple RRs at one name
Witold Kręcicki [Thu, 5 Jul 2018 12:47:40 +0000 (14:47 +0200)] 
cacheclean test: take into account that we can have multiple RRs at one name

8 years agoMake resolver tests more civilized
Witold Kręcicki [Thu, 5 Jul 2018 12:46:49 +0000 (14:46 +0200)] 
Make resolver tests more civilized

8 years agoMerge branch '419-do-not-replace-lo0-address-on-solaris' into 'master'
Witold Krecicki [Mon, 16 Jul 2018 13:05:17 +0000 (09:05 -0400)] 
Merge branch '419-do-not-replace-lo0-address-on-solaris' into 'master'

Do not replace lo0 address on Solaris

Closes #419

See merge request isc-projects/bind9!535

8 years agoDo not replace lo0 address on Solaris
Michał Kępień [Mon, 16 Jul 2018 06:51:20 +0000 (08:51 +0200)] 
Do not replace lo0 address on Solaris

lo0 and lo0:0 are the same interface on Solaris.  Make sure
bin/tests/system/ifconfig.sh does not touch lo0:0 in order to prevent it
from changing the address of the loopback interface on Solaris.

8 years agoMerge branch 'placeholder' into 'master'
Evan Hunt [Fri, 13 Jul 2018 19:35:38 +0000 (15:35 -0400)] 
Merge branch 'placeholder' into 'master'

placeholder

See merge request isc-projects/bind9!534

8 years agoplaceholder
Evan Hunt [Fri, 13 Jul 2018 19:33:44 +0000 (12:33 -0700)] 
placeholder

8 years agoMerge branch '365-add-centos-to-ci' into 'master'
Michał Kępień [Fri, 13 Jul 2018 10:25:50 +0000 (06:25 -0400)] 
Merge branch '365-add-centos-to-ci' into 'master'

Add CentOS 6/7 to CI

Closes #365 and #404

See merge request isc-projects/bind9!531

8 years agoAdd CentOS 6/7 to CI
Michał Kępień [Thu, 12 Jul 2018 11:35:10 +0000 (13:35 +0200)] 
Add CentOS 6/7 to CI

Modify .gitlab-ci.yml so that every CI pipeline also builds and tests
BIND on CentOS versions 6 and 7.  Use --disable-warn-error on CentOS 6
since it uses GCC 4.4.7 which suffers from bugs causing bogus warnings
to be generated, e.g.:

    sigs_test.c: In function 'compare_tuples':
    sigs_test.c:75: warning: declaration of 'index' shadows a global declaration
    /usr/include/string.h:489: warning: shadowed declaration is here
    sigs_test.c: In function 'updatesigs_test':
    sigs_test.c:193: warning: declaration of 'index' shadows a global declaration
    /usr/include/string.h:489: warning: shadowed declaration is here

8 years agoDo not spam console if "git status --ignored" fails during tests
Michał Kępień [Thu, 12 Jul 2018 11:35:10 +0000 (13:35 +0200)] 
Do not spam console if "git status --ignored" fails during tests

The "git status" command in Git versions before 1.7.2 does not support
the "--ignored" option.  Prevent spamming the console when running
system tests from a Git repository on a host with an ancient Git version
installed.

8 years agoRemove IDN subtest from the "digdelv" system test
Michał Kępień [Thu, 12 Jul 2018 11:35:10 +0000 (13:35 +0200)] 
Remove IDN subtest from the "digdelv" system test

The output of certain "dig +idnout" invocations may be locale-dependent.
Remove the "dig +idnout" subtest from the "digdelv" system test as IDN
support is already thoroughly tested by the "idna" system test.

8 years agoInclude conf.sh from all prereq.sh scripts
Michał Kępień [Thu, 12 Jul 2018 11:35:10 +0000 (13:35 +0200)] 
Include conf.sh from all prereq.sh scripts

Every prereq.sh script must include bin/tests/system/conf.sh, otherwise
if some prerequisite is not met, errors about echo_i not being found
will be printed instead of actual error messages.

8 years agoUpdate ATF path in the ./configure invocation used during CI
Michał Kępień [Thu, 12 Jul 2018 11:35:10 +0000 (13:35 +0200)] 
Update ATF path in the ./configure invocation used during CI

The Docker images used for CI install ATF to /usr, not /usr/local.
Update the ./configure invocation in .gitlab-ci.yml accordingly in order
to prevent confusion.

8 years agoAdd "-f" to command line arguments for autoreconf in autogen.sh
Michał Kępień [Thu, 12 Jul 2018 11:35:10 +0000 (13:35 +0200)] 
Add "-f" to command line arguments for autoreconf in autogen.sh

Depending on tool versions used, "autoreconf -i" may not update all
Autoconf-generated files, which in turn may result in build errors.
Make autogen.sh call autoreconf with the "-f" command line argument to
ensure all Autoconf-generated files are updated when autogen.sh is run.

8 years agoMerge branch '373-generic_tostruct_tlsa-incorrectly-initialises-common-structure...
Mark Andrews [Wed, 11 Jul 2018 23:45:56 +0000 (19:45 -0400)] 
Merge branch '373-generic_tostruct_tlsa-incorrectly-initialises-common-structure' into 'master'

Resolve "generic_tostruct_tlsa incorrectly initialises common structure."

Closes #373

See merge request isc-projects/bind9!460

8 years agoremove re-initalisation of common structure
Mark Andrews [Mon, 2 Jul 2018 05:51:26 +0000 (15:51 +1000)] 
remove re-initalisation of common structure

8 years agoMerge branch '403-missing-sanity-check-for-call-to-next_token-in-file-dig-c' into...
Evan Hunt [Wed, 11 Jul 2018 18:51:32 +0000 (14:51 -0400)] 
Merge branch '403-missing-sanity-check-for-call-to-next_token-in-file-dig-c' into 'master'

Resolve "Missing Sanity Check for call to next_token() in file 'dig.c'"

Closes #403

See merge request isc-projects/bind9!504

8 years agoCHANGES
Evan Hunt [Wed, 11 Jul 2018 18:43:18 +0000 (11:43 -0700)] 
CHANGES

8 years agoadd test for bad dig option '+ednsopt=:' being handled gracefully
Mark Andrews [Wed, 11 Jul 2018 03:49:26 +0000 (13:49 +1000)] 
add test for bad dig option '+ednsopt=:' being handled gracefully

8 years agocheck code is non NULL
Bill Parker [Wed, 11 Jul 2018 03:48:08 +0000 (13:48 +1000)] 
check code is non NULL

8 years agoMerge branch '235-enhance-denied-logging-for-dynamic-updates' into 'master'
Evan Hunt [Wed, 11 Jul 2018 18:04:42 +0000 (14:04 -0400)] 
Merge branch '235-enhance-denied-logging-for-dynamic-updates' into 'master'

Add tcp-self policy tests.

See merge request isc-projects/bind9!282

8 years agoAdd system tests for "tcp-self" update-policy
Mukund Sivaraman [Tue, 15 May 2018 12:08:54 +0000 (17:38 +0530)] 
Add system tests for "tcp-self" update-policy

8 years agoMerge branch 'add-space-around-function' into 'master'
Mark Andrews [Wed, 11 Jul 2018 08:22:17 +0000 (04:22 -0400)] 
Merge branch 'add-space-around-function' into 'master'

add required whitespace

See merge request isc-projects/bind9!512

8 years agoadd required whitespace
Mark Andrews [Wed, 11 Jul 2018 04:25:53 +0000 (14:25 +1000)] 
add required whitespace

8 years agoMerge branch '392-send-upstream-tat-queries-for-locally-served-zones' into 'master'
Michał Kępień [Wed, 11 Jul 2018 07:13:19 +0000 (03:13 -0400)] 
Merge branch '392-send-upstream-tat-queries-for-locally-served-zones' into 'master'

Send upstream trust anchor telemetry queries for locally served zones

Closes #392

See merge request isc-projects/bind9!484

8 years agoAdd CHANGES entry
Michał Kępień [Wed, 11 Jul 2018 06:27:10 +0000 (08:27 +0200)] 
Add CHANGES entry

4994. [bug] Trust anchor telemetry queries were not being sent
upstream for locally served zones. [GL #392]

8 years agoSend upstream TAT queries for locally served zones
Michał Kępień [Wed, 11 Jul 2018 06:27:10 +0000 (08:27 +0200)] 
Send upstream TAT queries for locally served zones

Trying to resolve a trust anchor telemetry query for a locally served
zone does not cause upstream queries to be sent as the response is
determined just by consulting local data.  Work around this issue by
calling dns_view_findzonecut() first in order to determine the NS RRset
for a given domain name and then passing the zone cut found to
dns_resolver_createfetch().

Note that this change only applies to TAT queries generated by the
resolver itself, not to ones received from downstream resolvers.

8 years agoExtract TAT QNAME preparation to a separate function
Michał Kępień [Wed, 11 Jul 2018 06:27:10 +0000 (08:27 +0200)] 
Extract TAT QNAME preparation to a separate function

Extract the part of dotat() reponsible for preparing the QNAME for a TAT
query to a separate function in order to limit the number of local
variables used by each function and improve code readability.

Rename 'name' to 'origin' to better convey the purpose of that variable.
Also mark it with the const qualifier.

8 years agoMerge branch 'pkcs11-missing-gitignore' into 'master'
Ondřej Surý [Wed, 11 Jul 2018 06:09:41 +0000 (02:09 -0400)] 
Merge branch 'pkcs11-missing-gitignore' into 'master'

PKCS#11 build missing some .gitignore files and ignore .gitignore files

See merge request isc-projects/bind9!513

8 years agoDon't check copyrights on .gitignore files
Ondřej Surý [Wed, 11 Jul 2018 06:01:05 +0000 (08:01 +0200)] 
Don't check copyrights on .gitignore files

8 years agoAdd .gitignore for PKCS#11 test files
Ondřej Surý [Wed, 11 Jul 2018 05:56:48 +0000 (07:56 +0200)] 
Add .gitignore for PKCS#11 test files

8 years agoMerge branch 'fix-replay-merge' into 'master'
Evan Hunt [Wed, 11 Jul 2018 04:02:05 +0000 (00:02 -0400)] 
Merge branch 'fix-replay-merge' into 'master'

fix replay-merge

See merge request isc-projects/bind9!509

8 years agofixed an argument counting bug
Evan Hunt [Wed, 11 Jul 2018 04:00:48 +0000 (21:00 -0700)] 
fixed an argument counting bug

8 years agoMerge branch 'git-replay-merge-no-push-option' into 'master'
Evan Hunt [Wed, 11 Jul 2018 03:44:58 +0000 (23:44 -0400)] 
Merge branch 'git-replay-merge-no-push-option' into 'master'

Add --no-push and --push options and DONT_PUSH environment variable

See merge request isc-projects/bind9!439

8 years agoAdd --no-push and --push options and DONT_PUSH environment as default to control...
Ondřej Surý [Wed, 27 Jun 2018 07:30:05 +0000 (09:30 +0200)] 
Add --no-push and --push options and DONT_PUSH environment as default to control what happens after merge

8 years agoMerge branch 'ci-check-libs' into 'master'
Evan Hunt [Wed, 11 Jul 2018 03:08:28 +0000 (23:08 -0400)] 
Merge branch 'ci-check-libs' into 'master'

check correctness of win32 .def files in CI 'precheck' step

See merge request isc-projects/bind9!455

8 years agoadd checklibs to precheck CI step
Evan Hunt [Thu, 28 Jun 2018 16:04:11 +0000 (09:04 -0700)] 
add checklibs to precheck CI step

8 years agoremove no-longer-needed check for strsep()
Evan Hunt [Thu, 28 Jun 2018 16:03:02 +0000 (09:03 -0700)] 
remove no-longer-needed check for strsep()

8 years agoMerge branch '369-remove-bind8_compat-from-lib-dns-journal-c' into 'master'
Evan Hunt [Wed, 11 Jul 2018 02:30:02 +0000 (22:30 -0400)] 
Merge branch '369-remove-bind8_compat-from-lib-dns-journal-c' into 'master'

Remove compatibility with BIND 8 "no-change" IXFR deltas in lib/dns/journal.c

Closes #369

See merge request isc-projects/bind9!446

8 years agoRemove support for silently ignoring 'no-change' deltas from BIND 8 when processing...
Mark Andrews [Thu, 28 Jun 2018 02:21:43 +0000 (12:21 +1000)] 
Remove support for silently ignoring 'no-change' deltas from BIND 8 when processing an IXFR stream. 'no-change' deltas will now trigger a fallback to AXFR as the recovery mechanism.

8 years agoMerge branch 'remove-redundant-test' into 'master'
Evan Hunt [Wed, 11 Jul 2018 02:04:19 +0000 (22:04 -0400)] 
Merge branch 'remove-redundant-test' into 'master'

remove redundant test

See merge request isc-projects/bind9!497

8 years agoremove redundant test
Mark Andrews [Wed, 11 Jul 2018 00:46:25 +0000 (10:46 +1000)] 
remove redundant test

8 years agoMerge branch '379-trust-anchor-telemetry-log-should-include-client-ip-address' into...
Evan Hunt [Wed, 11 Jul 2018 01:28:14 +0000 (21:28 -0400)] 
Merge branch '379-trust-anchor-telemetry-log-should-include-client-ip-address' into 'master'

Resolve "trust anchor telemetry log should include client IP address"

Closes #379

See merge request isc-projects/bind9!476

8 years agoadd CHANGES note
Mark Andrews [Wed, 4 Jul 2018 00:36:41 +0000 (10:36 +1000)] 
add CHANGES note

8 years agofix spelling of 'telemetry'
Mark Andrews [Wed, 4 Jul 2018 00:19:53 +0000 (10:19 +1000)] 
fix spelling of 'telemetry'

8 years agouse extracted netaddr rather than client->destaddr
Mark Andrews [Wed, 4 Jul 2018 00:12:38 +0000 (10:12 +1000)] 
use extracted netaddr rather than client->destaddr

8 years agoMerge branch '378-run-xmllint-on-xml-and-docbook-in-precheck' into 'master'
Evan Hunt [Wed, 11 Jul 2018 00:49:40 +0000 (20:49 -0400)] 
Merge branch '378-run-xmllint-on-xml-and-docbook-in-precheck' into 'master'

Check correctness of *.xml, *.docbook, and *.html during precheck

Closes #378

8 years agoResolve "run xmllint on *.xml and *.docbook in precheck"
Mark Andrews [Wed, 11 Jul 2018 00:49:40 +0000 (20:49 -0400)] 
Resolve "run xmllint on *.xml and *.docbook in precheck"

8 years agoMerge branch '381-fix-mirror-option-handling-during-zone-reconfiguration' into 'master'
Evan Hunt [Wed, 11 Jul 2018 00:45:25 +0000 (20:45 -0400)] 
Merge branch '381-fix-mirror-option-handling-during-zone-reconfiguration' into 'master'

Fix "mirror" option handling during zone reconfiguration

Closes #381

See merge request isc-projects/bind9!480

8 years agoAdd CHANGES entry
Michał Kępień [Thu, 5 Jul 2018 08:54:56 +0000 (10:54 +0200)] 
Add CHANGES entry

4988. [bug] "rndc reconfig" was incorrectly handling zones whose
"mirror" setting was changed. [GL #381]

8 years agoDo not reuse zones whose "mirror" setting was changed
Michał Kępień [Thu, 5 Jul 2018 08:54:56 +0000 (10:54 +0200)] 
Do not reuse zones whose "mirror" setting was changed

Update named_zone_reusable() so that it does not consider a zone to be
eligible for reuse if its old value of the "mirror" option differs from
the new one.  This causes "rndc reconfig" to create a new zone structure
whenever the value of the "mirror" option is changed, which ensures that
the previous zone database is not reused and that flags are properly set
in responses sourced from zones whose "mirror" setting was changed at
runtime.

8 years agoMerge branch '401-null-pointer-de-reference-found-in-bind-9-12-1-p2' into 'master'
Evan Hunt [Tue, 10 Jul 2018 21:33:17 +0000 (17:33 -0400)] 
Merge branch '401-null-pointer-de-reference-found-in-bind-9-12-1-p2' into 'master'

Resolve "NULL Pointer de-reference found in BIND 9.12.1-P2"

Closes #401

See merge request isc-projects/bind9!487

8 years agoCHANGES
Evan Hunt [Tue, 10 Jul 2018 21:24:43 +0000 (14:24 -0700)] 
CHANGES

8 years agocheck param_template[i].pValue is non NULL
Bill Parker [Tue, 10 Jul 2018 02:34:00 +0000 (12:34 +1000)] 
check param_template[i].pValue is non NULL

8 years agoMerge branch '399-do-not-use-net-dns-nameserver-in-the-serve-stale-system-test' into...
Michał Kępień [Tue, 10 Jul 2018 13:14:26 +0000 (09:14 -0400)] 
Merge branch '399-do-not-use-net-dns-nameserver-in-the-serve-stale-system-test' into 'master'

Do not use Net::DNS::Nameserver in the "serve-stale" system test

Closes #399

See merge request isc-projects/bind9!486

8 years agoDo not use Net::DNS::Nameserver in the "serve-stale" system test
Michał Kępień [Mon, 9 Jul 2018 12:35:12 +0000 (14:35 +0200)] 
Do not use Net::DNS::Nameserver in the "serve-stale" system test

Net::DNS versions older than 0.67 respond to queries sent to a
Net::DNS::Nameserver even if its ReplyHandler returns undef.  This makes
the "serve-stale" system test fail as it takes advantage of the newer
behavior.  Since the latest Net::DNS version available with stock
RHEL/CentOS 6 packages is 0.65 and we officially support that operating
system, bin/tests/system/serve-stale/ans2/ans.pl should behave
consistently for various Net::DNS versions.  Ensure that by reworking it
so that it does not use Net::DNS::Nameserver.

8 years agoMerge branch '393-fix-a-net-dns-version-quirk-in-the-resolver-system-test' into ...
Michał Kępień [Tue, 10 Jul 2018 13:01:53 +0000 (09:01 -0400)] 
Merge branch '393-fix-a-net-dns-version-quirk-in-the-resolver-system-test' into 'master'

Fix a Net::DNS version quirk in the "resolver" system test

Closes #393

See merge request isc-projects/bind9!485

8 years agoFix a Net::DNS version quirk in the "resolver" system test
Michał Kępień [Mon, 9 Jul 2018 10:57:23 +0000 (12:57 +0200)] 
Fix a Net::DNS version quirk in the "resolver" system test

Net::DNS versions older than 0.68 insert a ./ANY RR into the QUESTION
section if the latter is empty.  Since the latest Net::DNS version
available with stock RHEL/CentOS 6 packages is 0.65 and we officially
support that operating system, bin/tests/system/resolver/ans8/ans.pl
should behave consistently for various Net::DNS versions.  Ensure that
by making handleUDP() return the query ID and flags generated by
Net::DNS with 8 zero bytes appended.

8 years agoMerge branch '384-rework-idn-support-in-dig' into 'master'
Michał Kępień [Tue, 10 Jul 2018 12:49:22 +0000 (08:49 -0400)] 
Merge branch '384-rework-idn-support-in-dig' into 'master'

Rework IDN support in dig

Closes #384

See merge request isc-projects/bind9!478

8 years agoAdd CHANGES entry
Michał Kępień [Tue, 10 Jul 2018 12:34:35 +0000 (14:34 +0200)] 
Add CHANGES entry

4989. [cleanup] IDN support in dig has been reworked.  IDNA2003
fallbacks were removed in the process. [GL #384]

8 years agoDo not set IDN2_NFC_INPUT explicitly
Michał Kępień [Tue, 10 Jul 2018 12:34:35 +0000 (14:34 +0200)] 
Do not set IDN2_NFC_INPUT explicitly

IDN2_NFC_INPUT is always set implicitly by idn2_to_ascii_lz(), so there
is no need to set it explicitly.

8 years agoImprove error handling in idn_ace_to_locale()
Michał Kępień [Tue, 10 Jul 2018 12:34:35 +0000 (14:34 +0200)] 
Improve error handling in idn_ace_to_locale()

While idn2_to_unicode_8zlz() takes a 'flags' argument, it is ignored and
thus cannot be used to perform IDN checks on the output string.

The bug in libidn2 versions before 2.0.5 was not that a call to
idn2_to_unicode_8zlz() with certain flags set did not cause IDN checks
to be performed.  The bug was that idn2_to_unicode_8zlz() did not check
whether a conversion can be performed between UTF-8 and the current
locale's character encoding.  In other words, with libidn2 version
2.0.5+, if the current locale's character encoding is ASCII, then
idn2_to_unicode_8zlz() will fail when it is passed any Punycode string
which decodes to a non-ASCII string, even if it is a valid IDNA2008
name.

Rework idn_ace_to_locale() so that invalid IDNA2008 names are properly
and consistently detected for all libidn2 versions and locales.

Update the "idna" system test accordingly.  Add checks for processing a
server response containing Punycode which decodes to an invalid IDNA2008
name.  Fix invalid subtest description.

8 years agoRemove redundant dns_name_totextfilter_t argument
Michał Kępień [Tue, 10 Jul 2018 12:34:35 +0000 (14:34 +0200)] 
Remove redundant dns_name_totextfilter_t argument

Since idn_output_filter() no longer uses its 'absolute' argument and no
other callback is used with dns_name_settotextfilter(), remove the
'absolute' argument from the dns_name_totextfilter_t prototype.

8 years agoSimplify and rename output_filter()
Michał Kępień [Tue, 10 Jul 2018 12:34:35 +0000 (14:34 +0200)] 
Simplify and rename output_filter()

output_filter() does not need to dot-terminate its input name because
libidn2 properly handles both dot-terminated and non-dot-terminated
names.  libidn2 also does not implicitly dot-terminate names passed to
it, so parts of output_filter() handling dot termination can simply be
removed.

Fix a logical condition to make sure 'src' can fit the terminating NULL
byte.  Replace the MAXDLEN macro with the MXNAME macro used in the rest
of dig source code.  Tweak comments and variable names.

Rename output_filter() to idn_output_filter() so that it can be easily
associated with IDN and other idn_*() functions.

8 years agoSimplify idn_ace_to_locale()
Michał Kępień [Tue, 10 Jul 2018 12:34:35 +0000 (14:34 +0200)] 
Simplify idn_ace_to_locale()

idn_ace_to_locale() may return a string longer than MAXDLEN because it
is using the current locale's character encoding.  Rather then imposing
an arbitrary limit on the length of the string that function can return,
make it pass the string prepared by libidn2 back to the caller verbatim,
making the latter responsible for freeing that string.  In conjunction
with the fact that libidn2 errors are considered fatal, this makes
returning an isc_result_t from idn_ace_to_locale() unnecessary.

Do not process success cases in conditional branches for improved
consistency with the rest of BIND source code.  Add a comment explaining
the purpose of idn_ace_to_locale().  Rename that function's parameters
to match common BIND naming pattern.

8 years agoSimplify idn_locale_to_ace()
Michał Kępień [Tue, 10 Jul 2018 12:34:35 +0000 (14:34 +0200)] 
Simplify idn_locale_to_ace()

idn_locale_to_ace() is a static function which is always used with a
buffer of size MXNAME, i.e. one that can fit any valid domain name.
Since libidn2 detects invalid domain names and libidn2 errors are
considered fatal, remove size checks from idn_locale_to_ace().  This
makes returning an isc_result_t from it unnecessary.

Do not process success cases in conditional branches for improved
consistency with the rest of BIND source code.  Add a comment explaining
the purpose of idn_locale_to_ace().  Rename that function's parameters
to match common BIND naming pattern.

8 years agoRemove IDNA2003 fallback from dig
Michał Kępień [Tue, 10 Jul 2018 12:34:35 +0000 (14:34 +0200)] 
Remove IDNA2003 fallback from dig

Certain characters, like symbols, are allowed by IDNA2003, but not by
IDNA2008.  Make dig reject such symbols when IDN input processing is
enabled to ensure BIND only supports IDNA2008.  Update the "idna" system
test so that it uses one of such symbols rather than one which is
disallowed by both IDNA2003 and IDNA2008.

8 years agoRemove redundant dns_name_settotextfilter() call
Michał Kępień [Tue, 10 Jul 2018 12:34:35 +0000 (14:34 +0200)] 
Remove redundant dns_name_settotextfilter() call

There is no need to call dns_name_settotextfilter() in setup_system()
because setup_lookup() determines whether IDN output processing should
be enabled for a specific lookup (taking the global setting into
consideration) and calls dns_name_settotextfilter() anyway if it is.
Remove the dns_name_settotextfilter() call from setup_system().

8 years agoRemove empty idn_initialize() function
Michał Kępień [Tue, 10 Jul 2018 12:34:35 +0000 (14:34 +0200)] 
Remove empty idn_initialize() function

8 years agoRework libidn2 detection
Michał Kępień [Tue, 10 Jul 2018 12:34:35 +0000 (14:34 +0200)] 
Rework libidn2 detection

Clean up the parts of configure.in responsible for handling libidn2
detection and adjust other pieces of the build system to match these
cleanups:

  - use pkg-config when --with-libidn2 is used without an explicit path,

  - look for idn2_to_ascii_lz() rather than idn2_to_ascii_8z() as the
    former is used in BIND while the latter is not,

  - do not look for idn2_to_unicode_8zlz() as it is present in all
    libidn2 versions which have idn2_to_ascii_lz(),

  - check whether the <idn2.h> header is usable,

  - set LDFLAGS in the Makefile for dig so that, if specified, the
    requested libidn2 path is used when linking with libidn2,

  - override CPPFLAGS when looking for libidn2 components so that the
    configure script does not produce warnings when libidn2 is not
    installed system-wide,

  - merge the AS_CASE() call into the AS_IF() call below it to simplify
    code,

  - indicate the default value of --with-libidn2 in "./configure --help"
    output,

  - use $with_libidn2 rather than $use_libidn2 to better match the name
    of the configure script argument,

  - stop differentiating between IDN "in" and "out" support, i.e. make
    dig either support libidn2 or not; remove WITH_* Autoconf macros and
    use a new one, HAVE_LIBIDN2, to determine whether libidn2 support
    should be enabled.

8 years agoMerge branch 'fix-synth-from-dnssec-dname-handling' into 'master'
Witold Krecicki [Tue, 10 Jul 2018 07:28:26 +0000 (03:28 -0400)] 
Merge branch 'fix-synth-from-dnssec-dname-handling' into 'master'

Don't synthesize NXDOMAIN from NSEC for records under a DNAME.

Closes #386

See merge request isc-projects/bind9!481

8 years agothe presence of a DNAME record proves that the name does not exist in the zone but...
Mark Andrews [Fri, 6 Jul 2018 05:07:59 +0000 (15:07 +1000)] 
the presence of a DNAME record proves that the name does not exist in the zone but as we don't want to use that for NXDMOMAIN return DNS_R_DNAME from dns_nsec_noexistnodata