Compare commits

..
Author SHA1 Message Date
Evan Hunt 309594f583 correct the configuration of the default allow-notify ACL 2018-06-25 11:39:55 -07:00
Mark Andrews ad20284104 Merge branch '254-invalid-rpz-prefix-length-log-message-improperly-displays-the-prefix-labels-not-length' into 'master'
Resolve ""invalid RPZ prefix length" log message improperly displays the prefix labels, not length"

Closes #254

See merge request isc-projects/bind9!270
2018-06-25 03:29:23 -04:00
Mukund SivaramanandMark Andrews 90e886cfc0 Add CHANGES entry 2018-06-25 17:19:40 +10:00
Mukund SivaramanandMark Andrews 2bf388a31b Add system test 2018-06-25 17:18:36 +10:00
Mukund SivaramanandMark Andrews 6a756ab654 Patch in trailing nul character to print just the length label (for various cases below) 2018-06-25 17:18:36 +10:00
Mark Andrews 16a67911d8 Merge branch '343-casecompare-of-ninfo-tkey-txt-have-wrong-return-type' into 'master'
Resolve "casecompare of NINFO, TKEY, TXT have wrong return type"

Closes #343

See merge request isc-projects/bind9!384
2018-06-24 22:57:20 -04:00
Mark Andrews 3ba1d1e43b fix casecompare return type for ninfo, tkey, txt 2018-06-24 22:48:59 -04:00
Ondřej Surý f6e1daba05 Merge branch '355-bind-9-13-1-windows-build-fails' into 'master'
Resolve "BIND 9.13.1: Windows Build Fails"

Closes #355

See merge request isc-projects/bind9!400
2018-06-22 06:37:33 -04:00
Mark AndrewsandOndřej Surý 25d693f0c1 add zoneverify.c and zoneverify.h to libdns.vcxproj.filters.in and libdns.vcxproj.in 2018-06-22 06:29:11 -04:00
Mark Andrews 5f2f68985b Merge branch '356-client-cookie-is-being-hashed-twice-when-computing-the-dns-server-cookie' into 'master'
Resolve "Client cookie is being hashed twice when computing the DNS server cookie."

Closes #356

See merge request isc-projects/bind9!399
2018-06-22 03:40:23 -04:00
Mark Andrews 8755a249bc 4975. [bug] The server cookie computation for sha1 and sha256 did
not match the method described in RFC 7873. [GL #356]
2018-06-22 10:26:21 +10:00
Mark Andrews 4795f0ca89 the client cookie was being hashed twice when computing the server cookie for sha1 and sha256 2018-06-22 09:50:10 +10:00
Ondřej Surý dfdc6d61aa Merge branch '351-fix-with-cmocka=path-build' into 'master'
Resolve "configure fails unless --enable-developer is specified"

Closes #351

See merge request isc-projects/bind9!393
2018-06-21 08:22:48 -04:00
Ondřej Surý 0158c1a4ea Use cmocka_set_message_output as test function for cmocka presence 2018-06-21 14:12:02 +02:00
Ondřej Surý 5ed0b0d852 Merge branch '350-merge-9-13-1-release-to-master' into 'master'
Resolve "Merge 9.13.1 release to master"

Closes #350

See merge request isc-projects/bind9!392
2018-06-21 06:40:12 -04:00
Evan HuntandOndřej Surý ad94787cca prepare 9.13.1 release 2018-06-21 12:31:33 +02:00
Ondřej Surý e1400e3667 Merge branch '351-disable-cmocka-by-default' into 'master'
Resolve "configure fails unless --enable-developer is specified"

Closes #351

See merge request isc-projects/bind9!391
2018-06-21 06:29:10 -04:00
Ondřej Surý 45bee4d3c3 Cleanup cmocka related whitespace 2018-06-21 12:20:07 +02:00
Ondřej Surý ed8000f333 Set with_cmocka=no by default 2018-06-21 12:19:28 +02:00
Ondřej Surý 3385fb6456 Merge branch '250-integrate-cmocka-into-our-build-scripts' into 'master'
Add cmocka support to infrastructure (build) files

Closes #250

See merge request isc-projects/bind9!369
2018-06-20 06:38:40 -04:00
Ondřej SurýandOndřej Surý 52731c000d Add support for cmocka assert testing by overriding REQUIRE/INSIST/... macros when UNIT_TESTING is defined 2018-06-20 06:30:07 -04:00
Ondřej SurýandOndřej Surý 10535d1c79 Add --wrap linker option detection 2018-06-20 06:30:07 -04:00
Ondřej SurýandOndřej Surý bd2ddec58f Enforce TAP output from cmocka based unit tests 2018-06-20 06:30:07 -04:00
Ondřej SurýandOndřej Surý 07910f0153 Integrate cmocka unit testing framework to kyua 2018-06-20 06:30:07 -04:00
Ondřej Surý b364445fc2 Merge branch 'check-gitlab-existence' into 'master'
Check if gitlab exists in git-replay-merge.sh

See merge request isc-projects/bind9!388
2018-06-19 03:27:28 -04:00
Witold Kręcicki cdbe639fe6 Check if gitlab exists in git-replay-merge.sh{ 2018-06-19 09:18:59 +02:00
Mark Andrews 681a07229b Merge branch '336-default-of-rrset-order-silently-changed-to-be-sorted-rather-than-random' into 'master'
Resolve "Default of rrset-order silently changed to be sorted (rather than random)"

Closes #336

See merge request isc-projects/bind9!379
2018-06-18 20:34:14 -04:00
Mark Andrews e8154b50d4 Restore default rrset-order to random. 2018-06-19 10:23:44 +10:00
Michał Kępień e495999c62 Merge branch '266-convert-verifyzone-to-a-libdns-function' into 'master'
Convert verifyzone() to a libdns function

Closes #266

See merge request isc-projects/bind9!291
2018-06-15 04:58:30 -04:00
Michał Kępień ad118d6eef Add CHANGES entry
4973.	[func]		verifyzone() and the functions it uses were moved to
			libdns and refactored to prevent exit() from being
			called upon failure.  A side effect of that is that
			dnssec-signzone and dnssec-verify now check for memory
			leaks upon shutdown. [GL #266]
2018-06-15 10:40:59 +02:00
Michał Kępień 8649c59a75 Fix coding style issues in lib/dns/zoneverify.c 2018-06-15 10:40:59 +02:00
Michał Kępień c094d1e4f3 Constify function arguments throughout lib/dns/zoneverify.c
Where possible, apply the const qualifier to arguments of functions
present in lib/dns/zoneverify.c.
2018-06-15 10:40:59 +02:00
Michał Kępień 24bca1c4b4 Propagate dns_zoneverify_dnssec() errors to callers
Since exit() is no longer called upon any dns_zoneverify_dnssec() error,
verification failures should be signalled to callers.  Make
dns_zoneverify_dnssec() return an isc_result_t and handle both success
and error appropriately in bin/dnssec/dnssec-signzone.c and
bin/dnssec/dnssec-verify.c.  This enables memory leak detection during
shutdown of these tools and causes dnssec-signzone to print signing
statistics even when zone verification fails.
2018-06-15 10:40:59 +02:00
Michał Kępień a7ae615743 Remove fatal() and check_result() from lib/dns/zoneverify.c
Since no function in lib/dns/zoneverify.c uses fatal() or check_result()
any more, remove them.
2018-06-15 10:34:38 +02:00
Michał Kępień 5609472fbe Replace remaining fprintf() calls with zoneverify_*() calls
Replace all fprintf() calls inside lib/dns/zoneverify.c, but outside of
zoneverify_log_error() and zoneverify_print() with calls to these
functions.
2018-06-15 10:34:38 +02:00
Michał Kępień 11a552a614 Properly handle record_found() errors
record_found() returns an isc_result_t, but its value is not checked.
Modify the only call site of record_found() so that its errors are
properly handled.
2018-06-15 10:34:38 +02:00
Michał Kępień 5ac14cb753 Do not call exit() upon dns_zoneverify_dnssec() errors
Replace the remaining fatal() calls inside dns_zoneverify_dnssec() with
zoneverify_log_error() and zoneverify_print() calls, ensuring proper
cleanup.
2018-06-15 10:36:47 +02:00
Michał Kępień bf65f72934 Do not call exit() upon record_nsec3() errors
Replace the fprintf() call inside record_nsec3() with a
zoneverify_log_error() call.  Remove the "mctx" argument of
record_nsec3() as it can be extracted from "vctx".

Modify one of the record_nsec3() call sites so that its errors are
properly handled.
2018-06-15 10:34:38 +02:00
Michał Kępień 0d07de9228 Do not call exit() upon match_nsec3() errors
Make match_nsec3() return the verification result through a separate
pointer, thus making it possible to signal errors using function
return value.  Replace all check_result() and fprintf() calls inside
match_nsec3() with zoneverify_log_error() calls and error handling code.

Modify all call sites of match_nsec3() so that its errors are properly
handled.
2018-06-15 10:36:40 +02:00
Michał Kępień 0ed3a2b269 Do not call exit() upon isoptout() errors
Replace all check_result() calls inside isoptout() with
zoneverify_log_error() calls and error handling code.  Enable isoptout()
to signal errors to the caller using its return value.

Modify the call site of isoptout() so that its errors are properly
handled.
2018-06-15 10:36:33 +02:00
Michał Kępień c76fcdd2a2 Do not call exit() upon NSEC3 verification errors
Make verifynsec3(), verifynsec3s(), and verifyemptynodes() return the
verification result through a separate pointer, thus making it possible
to signal errors using function return values.  Replace all
check_result() and fprintf() calls inside these functions with
zoneverify_log_error() calls and error handling code.

Modify all call sites of verifynsec3(), verifynsec3s(), and
verifyemptynodes() so that their errors are properly handled.
2018-06-15 10:36:25 +02:00
Michał Kępień 8448691159 Do not call exit() upon verifynsec() errors
Make verifynsec() return the verification result through a separate
pointer, thus making it possible to signal errors using function
return value.  Replace all check_result() and fprintf() calls inside
verifynsec() with zoneverify_log_error() calls and error handling code.

Modify the call site of verifynsec() so that its errors are properly
handled.

Rename "tresult" to "tvresult" in order to improve variable naming
consistency between functions.
2018-06-15 10:36:18 +02:00
Michał Kępień 0ed9ec49ed Do not call exit() upon check_no_rrsig() errors
Replace all check_result() and fprintf() calls inside check_no_rrsig()
with zoneverify_log_error() calls and error handling code.  Enable
check_no_rrsig() to signal errors to the caller using its return
value.

Modify the call site of check_no_rrsig() so that its errors are properly
handled.

Define buffer size using a named constant rather than a plain integer.
2018-06-15 10:36:14 +02:00
Michał Kępień 30e837f31a Do not call exit() upon verifyset() errors
Replace all check_result() and fprintf() calls inside verifyset() with
zoneverify_log_error() calls and error handling code.  Enable
verifyset() to signal errors to the caller using its return value.

Modify the call site of verifyset() so that its errors are properly
handled.

Define buffer sizes using named constants rather than plain integers.
2018-06-15 10:36:06 +02:00
Michał Kępień d782fcc638 Do not call exit() upon verifynode() errors
Make verifynode() return the verification result through a separate
pointer, thus making it possible to signal errors using function
return value.  Replace all fatal() and check_result() calls inside
verifynode() with zoneverify_log_error() calls and error handling code.
Add a REQUIRE assertion to emphasize verifynode() may be called with
some of its arguments set to NULL.

Modify all call sites of verifynode() so that its errors are properly
handled.
2018-06-15 10:35:55 +02:00
Michał Kępień 7a996f0c0d Do not call exit() upon is_empty() errors
Replace the check_result() call inside is_empty() with a
zoneverify_log_error() call and error handling code.  Enable is_empty()
to signal errors to the caller using its return value.

Modify the call site of is_empty() so that its errors are properly
handled.
2018-06-15 10:35:49 +02:00
Michał Kępień 04038baf1a Do not call exit() upon check_no_nsec() errors
Replace the fatal() call inside check_no_nsec() with a
zoneverify_log_error() call.  Enable check_no_nsec() to signal errors to
the caller using its return value.

Modify all call sites of check_no_nsec() so that its errors are properly
handled.
2018-06-15 10:35:45 +02:00
Michał Kępień 4354f44d9c Do not call exit() upon verify_nodes() errors
Replace all fatal(), check_result(), and check_dns_dbiterator_current()
calls inside verify_nodes() with zoneverify_log_error() calls and error
handling code.  Enable verify_nodes() to signal errors to the caller
using its return value.

Modify the call site of verify_nodes() so that its errors are properly
handled.

Free all heap elements upon verification context cleanup as a
verification error may prevent them from being freed elsewhere.

Remove the check_dns_dbiterator_current() macro as it is no longer used
anywhere in lib/dns/zoneverify.c.
2018-06-15 10:35:40 +02:00
Michał Kępień 00ecbad2d0 Do not call exit() upon check_bad_algorithms() errors
Replace all fatal() and fprintf() calls inside check_bad_algorithms()
with zoneverify_print() calls and error handling code.  Enable
check_bad_algorithms() to signal errors to the caller using its return
value.

Modify the call site of check_bad_algorithms() so that its errors are
properly handled.
2018-06-15 10:35:25 +02:00
Michał Kępień 7c3f653112 Do not call exit() upon check_dnskey() errors
Replace all fatal() and check_result() calls inside check_dnskey() with
zoneverify_log_error() calls and error handling code.  Enable
check_dnskey() to signal errors to the caller using its return value.

Modify the call site of check_dnskey() so that its errors are properly
handled.
2018-06-15 10:35:10 +02:00
Michał Kępień 1a6525ffa2 Do not call exit() upon check_apex_rrsets() errors
Replace all fatal() calls inside check_apex_rrsets() with
zoneverify_log_error() calls and error handling code.  Enable
check_apex_rrsets() to signal errors to the caller using its return
value.

Modify the call site of check_apex_rrsets() so that its errors are
properly handled.
2018-06-15 10:34:38 +02:00
Michał Kępień ee06182057 Use RUNTIME_CHECK instead of check_result() where it is safe to do so
Replace calls to check_result() with RUNTIME_CHECK assertions for all
dns_rdata_tostruct() calls in lib/dns/zoneverify.c as this function
cannot fail when the "mctx" argument is NULL (and that is the case for
all call sites of this function throughout lib/dns/zoneverify.c).
2018-06-15 10:16:41 +02:00
Michał Kępień fc6b5ad585 Extract print_summary() from dns_zoneverify_dnssec()
Extract the part of dns_zoneverify_dnssec() responsible for printing a
summary for a fully signed zone to a separate function.
2018-06-15 10:10:24 +02:00
Michał Kępień b3d2ab442c Extract check_bad_algorithms() from dns_zoneverify_dnssec()
Extract the part of dns_zoneverify_dnssec() responsible for checking
whether the zone is fully signed using all active algorithms to a
separate function.
2018-06-15 10:10:24 +02:00
Michał Kępień eb17957c3d Extract verify_nodes() from dns_zoneverify_dnssec()
Extract the part of dns_zoneverify_dnssec() responsible for verifying
DNSSEC signatures against the DNSKEY RRset at zone apex and checking
consistency of NSEC/NSEC3 chains to a separate function.
2018-06-15 10:10:24 +02:00
Michał Kępień dc81d8cb67 Extract determine_active_algorithms() from dns_zoneverify_dnssec()
Extract the part of dns_zoneverify_dnssec() responsible for determining
and printing a list of DNSSEC algorithms active in the verified zone to
a separate function.
2018-06-15 10:10:24 +02:00
Michał Kępień f06a755dd2 Extract check_dnskey_sigs() from check_dnskey()
Extract the part of check_dnskey() responsible for determining active
algorithms in the verified zone based on the signatures at zone apex to
a separate function.
2018-06-15 10:10:24 +02:00
Michał Kępień d4f3b14c78 Extract check_dnskey() from dns_zoneverify_dnssec()
Extract the part of dns_zoneverify_dnssec() responsible for checking the
DNSKEY RRset at zone apex to a separate function.
2018-06-15 10:10:24 +02:00
Michał Kępień 097b57744a Extract check_apex_rrsets() from dns_zoneverify_dnssec()
Extract the part of dns_zoneverify_dnssec() responsible for fetching and
preliminarily checking DNSKEY, SOA, NSEC, and NSEC3PARAM RRsets from
zone apex to a separate function.
2018-06-15 10:10:24 +02:00
Michał Kępień d949a5d83c Implement zoneverify_log_error() and zoneverify_print()
These functions will be used in the process of replacing fatal(),
check_result(), and fprintf() calls throughout lib/dns/zoneverify.c with
code that does not call exit().  They are intended for:

  - zoneverify_log_error(): logging problems encountered while
    performing zone verification,

  - zoneverify_print(): printing status messages and reports which are
    only useful in standalone tools.

To make using dns_zone_logv() possible, add a new "zone" argument to
dns_zoneverify_dnssec() that standalone tools are expected to set to
NULL.
2018-06-15 10:10:24 +02:00
Michał Kępień 730cc3e3c5 Move algorithm tables to the verification context structure
Tables representing algorithm use in the verified zone are commonly
accessed throughout dns_zoneverify_dnssec().  Move them into the
structure representing a verification context.  While this does not
really simplify currently existing code, it will facilitate passing data
around between smaller functions that dns_zoneverify_dnssec() is about
to get split into.
2018-06-15 10:10:24 +02:00
Michał Kępień 5d666f533b Move commonly used dns_rdataset_t structures to the verification context structure
Eight structures representing four RRsets and their signatures are
commonly accessed throughout dns_zoneverify_dnssec().  Move them into
the structure representing a verification context.  While this does not
really simplify currently existing code, it will facilitate passing data
around between smaller functions that dns_zoneverify_dnssec() is about
to get split into.
2018-06-15 10:10:24 +02:00
Michał Kępień 43d0fb84e7 Move commonly used variables to the verification context structure
Move variables commonly used throughout dns_zoneverify_dnssec() and its
helper functions to the structure representing a verification context in
order to reduce the number of arguments passed between functions.
2018-06-15 10:10:24 +02:00
Michał Kępień ffc7997723 Do not use static variables in lib/dns/zoneverify.c
Make dns_zoneverify_dnssec() eligible for multithreaded use by replacing
the static variables it accesses with a stack-allocated structure
containing these variables.  Implement setup and cleanup routines for
that structure, ensuring no error in these routines causes exit() to be
called any more.  Pass a pointer to that structure to functions
requiring access to variables which were previously static.
2018-06-15 10:10:24 +02:00
Michał Kępień 7554e8d2ca Rename verifyzone() to dns_zoneverify_dnssec()
This makes the function's name match the naming convention used for
libdns functions.
2018-06-15 10:07:22 +02:00
Michał Kępień 3a14450d39 Move verifyzone() and its dependencies into lib/dns/zoneverify.c
This commit only moves code around, with the following exceptions:

  - the check_dns_dbiterator_current() macro and functions
    is_delegation() and has_dname() were removed from
    bin/dnssec/dnssectool.{c,h} and duplicated in two locations:
    bin/dnssec/dnssec-signzone.c and lib/dns/zoneverify.c; these
    functions are used both by the code in bin/dnssec/dnssec-signzone.c
    and verifyzone(), but are not a good fit for being exported by a
    code module responsible for zone verification,

  - fatal() and check_result() were duplicated in lib/dns/zoneverify.c
    as static functions which do not use the "program" variable any more
    (as it is only set by the tools in bin/dnssec/); this is a temporary
    step which only aims to prevent compilation from breaking - these
    duplicate functions will be removed once lib/dns/zoneverify.c is
    refactored not to use them,

  - the list of header files included by lib/dns/zoneverify.c was
    expanded to encompass all header files that are actually used by the
    code in that file,

  - a description of the purpose of the commented out "fields" inside
    struct nsec3_chain_fixed was added.
2018-06-15 10:07:22 +02:00
Michał Kępień ffe8ddd95f Replace type_format() and TYPE_FORMATSIZE with their libdns counterparts
Rather than use custom functions and macros local to bin/dnssec/, use
their counterparts provided by libdns.
2018-06-15 09:59:20 +02:00
Michał Kępień c37537cfe7 Merge branch '341-constify-dns_rdata_tostruct' into 'master'
Resolve "constify dns_rdata_tostruct"

Closes #341

See merge request isc-projects/bind9!378
2018-06-15 02:57:54 -04:00
Mark AndrewsandMichał Kępień abb2fd1027 Declare the 'rdata' argument for dns_rdata_tostruct() to be const 2018-06-15 08:48:49 +02:00
Ondřej Surý 3668e152bb Merge branch 'fix-pkcs11-build' into 'master'
Fix pkcs11 build

See merge request isc-projects/bind9!377
2018-06-14 18:06:22 -04:00
Ondřej SurýandOndřej Surý 8ee23a47e8 Add better EMPTY_TRANSLATION_UNIT to isc/util.h 2018-06-14 17:58:03 -04:00
Ondřej SurýandOndřej Surý 38060959c7 Put proper guards in openssl_shim.{c,h} when compiling with PKCS#11 2018-06-14 17:58:03 -04:00
Ondřej Surý 0b559ccb33 Merge branch 'tests-server-stale-prereq' into 'master'
Fix serve-stale requirement, skip without Time::HiRes

See merge request isc-projects/bind9!356
2018-06-14 10:36:14 -04:00
Petr MenšíkandOndřej Surý 7a0c7bf9c8 Fix server-stale requirement, skip without Time::HiRes 2018-06-14 10:26:54 -04:00
Ondřej Surý 85da0086a8 Merge branch '309-fix-default-recursion' into 'master'
Resolve "Recursion improperly allowed by default"

Closes #309

See merge request isc-projects/bind9!372
2018-06-14 08:51:55 -04:00
Evan HuntandOndřej Surý 05f25f8970 add a regression test for default allow-recursion settings 2018-06-14 14:42:50 +02:00
Evan HuntandOndřej Surý 03ecba2cdc allow-recursion could incorrectly inherit from the default allow-query 2018-06-14 14:42:50 +02:00
Ondřej Surý 92b4e70d35 Merge branch '337-remove-copyright-information-from-generated-configure-file' into 'master'
Resolve "Remove copyright information from generated configure file"

Closes #337

See merge request isc-projects/bind9!370
2018-06-14 03:56:00 -04:00
Ondřej Surý 369d8cd432 Remove copyright information from the generated configure file 2018-06-14 09:46:33 +02:00
Ondřej Surý e4295bb46c Merge branch '328-add-openssl-shim' into 'master'
Add thin openssl shim for OpenSSL 1.1.x and LibreSSL compatibility functions

See merge request isc-projects/bind9!367
2018-06-13 08:27:21 -04:00
Ondřej Surý de23b20ccf Update copyrights and whitespace 2018-06-13 14:19:07 +02:00
Ondřej Surý 302c6cbe7f Add thin openssl shim for OpenSSL 1.1.x and LibreSSL compatibility functions 2018-06-13 14:19:07 +02:00
Witold Krecicki be8a607341 Merge branch 'fix-qmin-test-addr-order' into 'master'
Fix qname minimization test failures with A/AAAA ordering

See merge request isc-projects/bind9!368
2018-06-13 07:58:34 -04:00
Witold Kręcicki 524233a9d0 Fix qname minimization test failures with A/AAAA ordering 2018-06-13 13:47:26 +02:00
Michał Kępień 9b58500c6a Merge branch '298-fix-dname-handling-in-dnssec-tools' into 'master'
Fix DNAME handling in DNSSEC tools

Closes #298

See merge request isc-projects/bind9!345
2018-06-13 07:29:20 -04:00
Michał Kępień f467ba8e1f Add CHANGES entry
4971.	[bug]		dnssec-signzone and dnssec-verify did not treat records
			below a DNAME as out-of-zone data. [GL #298]
2018-06-13 12:55:34 +02:00
Mark AndrewsandMichał Kępień 7be900a98f Pull out the saving of the zone cut into a separate function 2018-06-13 12:55:32 +02:00
Michał Kępień 75c0d85fc4 Treat records below a DNAME as out-of-zone data
DNAME records indicate bottom of zone and thus no records below a DNAME
should be DNSSEC-signed or included in NSEC(3) chains.  Add a helper
function, has_dname(), for detecting DNAME records at a given node.
Prevent signing DNAME-obscured records.  Check that DNAME-obscured
records are not signed.
2018-06-13 12:19:54 +02:00
Ondřej Surý cf9fd889a6 Merge branch '328-remove-openssl-patch' into 'master'
Remove the OpenSSL PKCS#11 patches

See merge request isc-projects/bind9!362
2018-06-13 05:01:49 -04:00
Ondřej Surý c92d09320b Remove the OpenSSL PKCS#11 patches - not really needed now 2018-06-13 10:53:21 +02:00
Michał Kępień 337e37a6cf Merge branch '284-unify-keyfile-to-configuration-conversions-in-system-tests' into 'master'
Unify keyfile-to-configuration conversions in system tests

Closes #284

See merge request isc-projects/bind9!312
2018-06-13 02:06:15 -04:00
Michał Kępień 68f056b2a0 Add helper variables in mkeys system test
The keyfile and key ID for the original managed key do not change
throughout the mkeys system test.  Keep them in helper variables to
prevent calling "cat" multiple times and improve code readability.
2018-06-13 07:57:40 +02:00
Michał Kępień 120af964ce Replace duplicated code snippet with calls to helper functions
Reduce code duplication by replacing a code snippet repeated throughout
system tests using "trusted-keys" and/or "managed-keys" configuration
sections with calls to keyfile_to_{managed,trusted}_keys() helper
functions.
2018-06-13 07:57:40 +02:00
Michał Kępień 2392b8bc7d Add helper functions for converting keyfile data into configuration sections
Add a set of helper functions for system test scripts which enable
converting key data from a set of keyfiles to either a "trusted-keys"
section or a "managed-keys" section suitable for including in a
resolver's configuration file.
2018-06-13 07:57:40 +02:00
Witold Krecicki 7dc84eaa8e Merge branch '16-qname-minimization' into 'master'
QNAME Minimization

See merge request isc-projects/bind9!253
2018-06-12 07:44:36 -04:00
Witold Kręcicki 7ec88b384d Add qname-minimization off as an option; test fixes 2018-06-12 10:24:05 +02:00
Witold Kręcicki dfa43e6dd5 CHANGES entry 2018-06-12 09:20:37 +02:00
Witold Kręcicki 1c36eed760 qname minimization: ARM entry 2018-06-12 09:20:13 +02:00
Evan HuntandWitold Kręcicki dde66b8012 nits
- capitalize QNAME in the doc
- regenerate options/docbook
- whitespace
2018-06-12 09:20:13 +02:00
Witold Kręcicki 265052df49 qname-minimization: Some post-review style/minor fixes 2018-06-12 09:20:12 +02:00
Mark AndrewsandWitold Kręcicki 9cef87d835 update qname-minimization 2018-06-12 09:18:47 +02:00
Witold Kręcicki 1bf6b3ea65 +x permissions on bin/tests/system scripts 2018-06-12 09:18:47 +02:00
Witold Kręcicki 31b0dc1f20 Require python with dnspython module 2018-06-12 09:18:47 +02:00
Witold Kręcicki 058ce1e732 qname minimization: log how many qmin steps were taken 2018-06-12 09:18:47 +02:00
Witold Kręcicki c04784c144 Disable qname minimization if we encounter a bad server 2018-06-12 09:18:47 +02:00
Evan HuntandWitold Kręcicki c8015eb33b style nits (mostly line length) 2018-06-12 09:18:47 +02:00
Evan HuntandWitold Kręcicki 2ea47c7f34 rename test to qmin; add it to conf.sh.in and Makefile.in; fix copyrights 2018-06-12 09:18:47 +02:00
Witold Kręcicki 4f9c718803 qname minimization: fix tests 2018-06-12 09:18:47 +02:00
Witold Kręcicki dd7bb617be - qname minimization:
- make qname-minimization option tristate {strict,relaxed,disabled}
 - go straight for the record if we hit NXDOMAIN in relaxed mode
 - go straight for the record after 3 labels without new delegation or 7 labels total

- use start of fetch (and not time of response) as 'now' time for querying cache for
  zonecut when following delegation.
2018-06-12 09:18:46 +02:00
Witold Kręcicki 0698158eb0 QNAME minimization 2018-06-12 09:18:46 +02:00
Michał Kępień b7968f6c25 Merge branch '269-refactor-zone-logging-functions' into 'master'
Refactor zone logging functions

Closes #269

See merge request isc-projects/bind9!295
2018-06-11 07:04:39 -04:00
Michał Kępień c8de677eae Add CHANGES entry
4969.	[cleanup]	Refactor zone logging functions. [GL #269]
2018-06-11 12:49:06 +02:00
Michał Kępień 5c03cd339e Reimplement all zone logging functions using dns_zone_logv()
In order to decrease code duplication, express the logic contained in
all zone logging functions using dns_zone_logv() calls.
2018-06-11 12:49:06 +02:00
Michał Kępień bb2dfb3f49 Add dns_zone_logv()
Add a new libdns function, dns_zone_logv(), which takes a single va_list
argument rather than a variable number of arguments and can be used as a
base for implementing more specific zone logging functions.
2018-06-11 12:49:06 +02:00
Evan Hunt b8fbe4aab4 Merge branch 'validate-glue' into 'master'
ensure that we attempt to validate glue if it's signed

See merge request isc-projects/bind9!300
2018-06-08 14:48:01 -04:00
Evan Hunt bde9c2ec39 CHANGES 2018-06-08 11:39:39 -07:00
Evan Hunt 8d923a05a9 ensure that we attempt to validate glue if it's signed
- incidentally fixed a bug in the dnssec system test where TTLs in the
  answer section rather than the additional section were being checked
2018-06-08 11:39:25 -07:00
Evan Hunt 4aecd153de Merge branch '324-add-obsolete-answer-cookie-to-master' into 'master'
Resolve "add obsolete answer-cookie to master."

Closes #324

See merge request isc-projects/bind9!352
2018-06-08 14:30:13 -04:00
Mark AndrewsandEvan Hunt 0e10223029 add answer-cookie as a obsolete option 2018-06-08 11:21:43 -07:00
Mark Andrews 2368c3d2de Merge branch '325-add-cfg_parse_buffer4' into 'master'
Resolve "add cfg_parse_buffer4"

Closes #325

See merge request isc-projects/bind9!353
2018-06-08 03:38:18 -04:00
Mark Andrews b313084af2 add cfg_parse_buffer4 2018-06-08 17:37:14 +10:00
Mark Andrews 2a7025f962 Merge branch '322-add-support-for-marking-options-as-deprecated' into 'master'
Resolve "add support for marking options as deprecated."

Closes #322

See merge request isc-projects/bind9!351
2018-06-08 01:54:22 -04:00
Mark Andrews befff9452c Add support for marking a option as deprecated. 2018-06-08 15:45:16 +10:00
Witold Krecicki d70726b0d2 Merge branch 'XX-dont-fetch-keys-when-fuzzing' into 'master'
Don't fetch DNSKEY when fuzzing resolver

See merge request isc-projects/bind9!347
2018-06-06 09:25:20 -04:00
Witold Kręcicki cb3208aa43 Don't fetch DNSKEY when fuzzing resolver 2018-06-06 15:06:23 +02:00
Ondřej Surý 5fc4bd3f76 Merge branch '313-fix-spurious-entropy.h-installation' into 'master'
Resolve ""make install" error on master - missing `entropy.h`"

Closes #313

See merge request isc-projects/bind9!346
2018-06-06 08:45:49 -04:00
Ondřej Surý 013a49474c fix whitespaces 2018-06-06 14:37:22 +02:00
Ondřej Surý b4aa7a9d7e Remove entropy.h from Makefile.in 2018-06-06 14:36:33 +02:00
Ondřej Surý e582a10133 Merge branch '307-add-VALIDATION_DEFAULT-to-win32/Configure' into 'master'
VALIDATION_DEFAULT now comes from config.h.{in,win32}

Closes #307

See merge request isc-projects/bind9!344
2018-06-06 08:22:07 -04:00
Ondřej Surý 82e68ffbf0 Add VALIDATION_DEFAULT to Windows Configure script 2018-06-06 14:03:16 +02:00
Mark Andrews 18c3a08471 Merge branch '240-multiple-rrsigs-on-some-records-in-signed-zone-even-though-only-one-key-is-ever-active-at-a-time' into 'master'
Resolve "Multiple RRSIGs on some records in signed zone even though only one key is ever active at a time"

Closes #240

See merge request isc-projects/bind9!231
2018-06-06 02:29:20 -04:00
Mark Andrews ba7a343156 add CHANGES note 2018-06-06 15:59:23 +10:00
Mark Andrews 0db5b087ed add duplicate signature test 2018-06-06 15:58:49 +10:00
Mark Andrews 87a3dc8ab9 add support -T sigvalinsecs 2018-06-06 15:35:57 +10:00
Mark Andrews 0667bf7ae7 only sign with other keys when deleting a key if there are not already existing signature for the deleted algorithm 2018-06-06 15:33:41 +10:00
Evan Hunt b8b731bd20 Merge branch '302-use-ip-for-ifconfig' into 'master'
Resolve "ifconfig.sh doesn't work on centos7"

Closes #302

See merge request isc-projects/bind9!330
2018-06-06 00:44:08 -04:00
Evan Hunt 71f2335f5a CHANGES 2018-06-05 21:35:29 -07:00
Evan Hunt d7c5400798 use "ip" on linux, falling back to "ifconfig" when it isn't available 2018-06-05 21:35:16 -07:00
Evan Hunt 41b29a436b expand address range in ifconfig.sh to include more than one subnet 2018-06-05 21:35:16 -07:00
Mark Andrews 56bbad6b78 Merge branch '316-move-named-t-processing-to-its-own-function' into 'master'
Resolve "move named -T processing to its own function"

Closes #316

See merge request isc-projects/bind9!343
2018-06-06 00:26:09 -04:00
Mark Andrews ef7401e4a7 add CHANGES 2018-06-06 13:30:28 +10:00
Mark Andrews b491ceeb50 move -T parsing to its own function 2018-06-06 13:26:59 +10:00
Ondřej Surý f0d97a7cb4 Merge branch 'disable-random-test' into 'master'
Disable the random_test from the regular kyua run, we are either using cryptolib…

See merge request isc-projects/bind9!341
2018-06-05 16:57:38 -04:00
Ondřej Surý edcdfe9619 Disable the random_test from the regular kyua run, we are either using cryptolib PRNG or non-CS PRNG 2018-06-05 22:49:14 +02:00
Ondřej Surý 3d39d805c7 Merge branch '295-remove-ecc-gost' into 'master'
Resolve "Remove ECC-GOST (GOST R 34.11-94) support"

Closes #295

See merge request isc-projects/bind9!320
2018-06-05 15:41:18 -04:00
Ondřej Surý 2f7ffadfc0 Add CHANGES entry
4952.   [protocol]      Remove support for ECC-GOST (GOST R 34.11-94).
			[GL #295]
2018-06-05 09:14:14 +02:00
Ondřej Surý e771326f60 Add note about removing ECC-GOST to release notes 2018-06-05 09:14:14 +02:00
Ondřej Surý 27593e65dc Remove support for obsoleted ECC-GOST (GOST R 34.11-94) algorithm 2018-06-05 09:14:14 +02:00
Evan Hunt 57f0949e2b Merge branch 'placeholder' into 'master'
placeholder

See merge request isc-projects/bind9!339
2018-06-05 01:08:37 -04:00
Evan Hunt 94567f96ef placeholder 2018-06-04 22:07:58 -07:00
Mark Andrews 3b66a7bbd7 Merge branch 'fanf/bind9-u/fanf2/nsid-logging' into 'master'
Fanf/bind9 u/fanf2/nsid logging

See merge request isc-projects/bind9!338
2018-06-04 22:31:00 -04:00
Tony FinchandMark Andrews 4862d8ffc1 Add CHANGES and release notes entries
4957.	[func]		NSID logging (enabled by the "request-nsid" option)
			now has its own "nsid" category, instead of using the
			"resolver" category. [GL !331]
2018-06-05 12:11:12 +10:00
Tony FinchandMark Andrews abfbedc0b1 Move NSID logging to its own category
It is very verbose, so it is useful to be able to filter it out.
2018-06-05 12:10:37 +10:00
Mark Andrews 193cc42b44 Merge branch '281-dont-insert-extra-space-between-nsec3-nexthash-and-typemap' into 'master'
Resolve "9.11.3-S1 totext_nsec3 inserts a redundant white space between next hash and type map [ISC-support #12887]"

See merge request isc-projects/bind9!313
2018-06-03 22:34:28 -04:00
Mark Andrews f98d8115e3 Add CHANGES note 2018-06-04 12:24:00 +10:00
Mukund SivaramanandMark Andrews b0d9198e03 Add NSEC3 fromtext/totext unittests 2018-06-04 12:21:48 +10:00
Mukund SivaramanandMark Andrews d4ea1edd2c Don't insert 2nd space between NSEC3 nexthash and typemap fields 2018-06-04 12:21:48 +10:00
Ondřej Surý 374746430d Merge branch 'update-git-replay-merge' into 'master'
Update git-replay-merge script to use gitlab CLI to push merge request automatically

See merge request isc-projects/bind9!289
2018-05-31 15:47:16 -04:00
Ondřej SurýandOndřej Surý 3a643ee5b8 Add *.rej and *.orig to the global .gitignore 2018-05-31 15:39:08 -04:00
Ondřej SurýandOndřej Surý cabf9ab27a Update git-replay-merge script to use gitlab CLI to push merge request automatically 2018-05-31 15:39:08 -04:00
Ondřej Surý 4cbe9c501d Merge branch '30-deprecated-dnssec-validation-auto' into 'master'
Resolve "Update the default for dnssec-validation to auto"

Closes #30

See merge request isc-projects/bind9!145
2018-05-31 12:40:43 -04:00
Evan HuntandOndřej Surý d91e313337 CHANGES and release note 2018-05-31 18:23:43 +02:00
Evan HuntandOndřej Surý a7a2fa296a update system tests so validation won't fail when using IANA key
- all tests with "recursion yes" now also specify "dnssec-validation yes",
  and all tests with "recursion no" also specify "dnssec-validation no".
  this must be maintained in all new tests, or else validation will fail
  when we use local root zones for testing.
- clean.sh has been modified where necessary to remove managed-keys.bind
  and viewname.mkeys files.
2018-05-31 18:22:33 +02:00
Evan HuntandOndřej Surý bef18ecac6 Set "dnssec-validation auto" by default
- the default setting for dnssec-validation is now "auto", which
  activates DNSSEC validation using the IANA root key.  The old behavior
  can be restored by explicitly setting "dnssec-validation yes", which
  "yes", which activates DNSSEC validation only if keys are explicitly
  configured in named.conf.
- the ARM has been updated to describe the new behavior
2018-05-31 18:22:32 +02:00
Ondřej Surý 1f743fe0da Merge branch 'ignore-more-files-in-bin-tests-optional' into 'master'
Add backtrace_test and nsecify to bin/tests/optional/.gitignore

See merge request isc-projects/bind9!331
2018-05-31 06:15:04 -04:00
Ondřej Surý 192f777ee8 Add backtrace_test and nsecify to bin/tests/optional/.gitignore 2018-05-31 12:06:51 +02:00
Ondřej Surý 3dcc303d10 Merge branch '289-fix-non-threaded-and-windows-builds' into 'master'
Fixup the Windows and non-threaded builds

See merge request isc-projects/bind9!328
2018-05-31 05:41:46 -04:00
Ondřej Surý 4f6d6919ab Remove thread_local macro from win32 platform.h 2018-05-30 23:03:22 +02:00
Ondřej Surý 29be9cddaf Uninline isc_nonce_buf 2018-05-30 22:43:39 +02:00
Ondřej Surý e50210c695 Add isc_entropy_get to libisc.def.in 2018-05-30 22:34:57 +02:00
Ondřej Surý ed3389a72c Remove return from void function 2018-05-30 22:14:38 +02:00
Ondřej Surý eb242959cb Add nonce.{c,h} and entropy.c to libisc.vcxproj.* 2018-05-30 22:07:51 +02:00
Ondřej Surý 05d7aa5734 Fix various build failures on Windows (Courtesy of rockerinthelocker) 2018-05-30 15:09:55 +02:00
Ondřej Surý 57c3064785 Remove non-existant GUIDs from bind9.sln.in 2018-05-30 13:27:35 +02:00
Ondřej Surý 430e8d6858 Change the _LOCK macro on Windows and the variable initialization to be more VC compatible 2018-05-30 07:28:19 +02:00
Ondřej Surý 12bdee3aa7 Turn the _LOCK/_UNLOCK in xoshiro128** to no-op for non-threaded builds 2018-05-30 06:37:51 +02:00
Ondřej Surý 28e0b2c4c4 Use isc int types to be able to build with old VS 2018-05-30 06:26:05 +02:00
Evan Hunt b1e2ecbc03 Merge branch '72-supported-platforms' into 'master'
add PLATFORMS.md file to list supported platforms

Closes #72

See merge request isc-projects/bind9!315
2018-05-29 22:33:30 -04:00
Evan Hunt 79bf79082b add PLATFORMS.md/PLATFORMS, for a supported platform list 2018-05-29 22:25:27 -04:00
Curtis Blackburn 09aaed4329 Merge branch '301-rpzrecurse-output' into 'master'
Resolve "output of the rpzrecurse test is incorrect on windows"

Closes #301

See merge request isc-projects/bind9!327
2018-05-29 22:14:12 -04:00
Evan Hunt 75d348bed6 bits of conf.sh.in and conf.sh.win32 were out of sync 2018-05-29 22:06:09 -04:00
Evan Hunt 02f591f54c Merge branch 'cleanups' into 'master'
fix missing config.h and win32 symbols

See merge request isc-projects/bind9!326
2018-05-29 22:05:24 -04:00
Evan Hunt 3abb2db9e8 fix missing config.h and win32 symbols 2018-05-29 18:39:56 -07:00
Ondřej Surý 0369ee1b85 Merge branch '289-add-non-cs-prng' into 'master'
Change isc_random() to be just PRNG, and add isc_nonce_buf() that uses CSPRNG

Closes #289

See merge request isc-projects/bind9!325
2018-05-29 17:08:52 -04:00
Ondřej Surý a3aed02e43 Add CHANGES entry.
4956.   [func]          Change isc_random() to be just PRNG using xoshiro128**,
                        and add isc_nonce_buf() that uses CSPRNG. [GL #289]
2018-05-29 22:58:49 +02:00
Ondřej Surý ce71d94434 Make the xoshiro128plusplus thread-safe 2018-05-29 22:58:49 +02:00
Ondřej Surý 99ba29bc52 Change isc_random() to be just PRNG, and add isc_nonce_buf() that uses CSPRNG
This commit reverts the previous change to use system provided
entropy, as (SYS_)getrandom is very slow on Linux because it is
a syscall.

The change introduced in this commit adds a new call isc_nonce_buf
that uses CSPRNG from cryptographic library provider to generate
secure data that can be and must be used for generating nonces.
Example usage would be DNS cookies.

The isc_random() API has been changed to use fast PRNG that is not
cryptographically secure, but runs entirely in user space.  Two
contestants have been considered xoroshiro family of the functions
by Villa&Blackman and PCG by O'Neill.  After a consideration the
xoshiro128starstar function has been used as uint32_t random number
provider because it is very fast and has good enough properties
for our usage pattern.

The other change introduced in the commit is the more extensive usage
of isc_random_uniform in places where the usage pattern was
isc_random() % n to prevent modulo bias.  For usage patterns where
only 16 or 8 bits are needed (DNS Message ID), the isc_random()
functions has been renamed to isc_random32(), and isc_random16() and
isc_random8() functions have been introduced by &-ing the
isc_random32() output with 0xffff and 0xff.  Please note that the
functions that uses stripped down bit count doesn't pass our
NIST SP 800-22 based random test.
2018-05-29 22:58:21 +02:00
Mark Andrews 1a9a1b48d7 Merge branch '286-new-cppcheck-detected-errors' into 'master'
Resolve "New cppcheck-detected errors"

See merge request isc-projects/bind9!324
2018-05-28 19:40:53 -04:00
Mark Andrews e9134b15eb add CHANGES note 2018-05-29 09:28:30 +10:00
Mark Andrews cb5802e854 work around cppcheck false positive 2018-05-29 09:28:30 +10:00
Evan Hunt d71ee81676 Merge branch '293-cleanup-radix' into 'master'
Resolve "Follow-up from "Remove ECS authoritative implementation from BIND""

Closes #293

See merge request isc-projects/bind9!322
2018-05-28 19:07:20 -04:00
Evan Hunt 3006ccb7f0 improve readability of radix code
- use RADIX_V4 and RADIX_V6 instead of 0 and 1 as array indices
- remove some unused macros
2018-05-28 18:45:41 -04:00
Evan Hunt e7b2b097ed Merge branch 'serve-stale-doc-and-logging' into 'master'
Serve stale doc and logging

See merge request isc-projects/bind9!323
2018-05-28 18:38:49 -04:00
Evan Hunt 049777d6c5 CHANGES 2018-05-25 22:10:24 -07:00
Tony FinchandEvan Hunt 4b442c309d Move serve-stale logging to its own category, so that its verbosity can be curtailed. 2018-05-25 22:00:51 -07:00
Evan Hunt d1ca21d50a clarify serve-stale documentation, and add a floor for max-stale-ttl
- added a 1-second floor to max-stale-ttl similar to stale-answer-ttl;
  if set to 0, it will be silently updated to 1.
- fixed the ARM entry on max-stale-ttl, which incorrectly suggested that
  the default was 0 instead of 1 week.
- clarified rndc serve-stale documentation.
2018-05-25 22:00:37 -07:00
Evan Hunt 58ad54e7a1 Merge branch '245-fix-test-color' into 'master'
Resolve "rpz test fails to launch ns2 on openbsd"

Closes #245

See merge request isc-projects/bind9!321
2018-05-25 15:58:32 -04:00
Evan Hunt 1e31fdb76d fix openbsd color-display problem in system test output 2018-05-25 12:47:40 -07:00
Evan Hunt 17871ac914 Merge branch '184-lock-bucket-mapping-is-broken-in-rbtdb-c-when-dns_rbt_usehash-is-not-defined' into 'master'
Resolve "Lock bucket mapping is broken in rbtdb.c when DNS_RBT_USEHASH is not defined"

Closes #184

See merge request isc-projects/bind9!159
2018-05-25 12:29:56 -04:00
Evan Hunt 5a509f9e54 CHANGES 2018-05-25 09:12:28 -07:00
Evan Hunt 7fbffa6c44 remove #ifndef DNS_RBT_USEHASH from rbtdb.c
- this was a compile time option to disable the use of a hash table in
  the RBTDB. the code path without the hash table was buggy and
  untested, and unlikely to be needed by anyone anyway.
2018-05-25 09:12:17 -07:00
Evan Hunt 5354adc403 Merge branch '32-remove-ecs-auth' into 'master'
Resolve "Remove ECS authoritative implementation from BIND"

Closes #32

See merge request isc-projects/bind9!219
2018-05-25 11:31:11 -04:00
Evan Hunt 9f8ba2eb82 CHANGES, release note 2018-05-25 08:21:25 -07:00
Evan Hunt cb96608fd8 copyrights 2018-05-25 08:21:25 -07:00
Evan Hunt e324449349 remove the experimental authoritative ECS support from named
- mark the 'geoip-use-ecs' option obsolete; warn when it is used
  in named.conf
- prohibit 'ecs' ACL tags in named.conf; note that this is a fatal error
  since simply ignoring the tags could make ACLs behave unpredictably
- re-simplify the radix and iptable code
- clean up dns_acl_match(), dns_aclelement_match(), dns_acl_allowed()
  and dns_geoip_match() so they no longer take ecs options
- remove the ECS-specific unit and system test cases
- remove references to ECS from the ARM
2018-05-25 08:21:25 -07:00
Mark Andrews 59d076caed Merge branch '290-documentation-error-missing' into 'master'
Resolve "Documentation error - missing "};""

Closes #290

See merge request isc-projects/bind9!318
2018-05-24 23:09:03 -04:00
Mark Andrews ab22160a1c add closing '};' 2018-05-25 12:48:55 +10:00
Evan Hunt 101eafb044 Merge branch 'fix-catz-test' into 'master'
fix catz test

See merge request isc-projects/bind9!317
2018-05-24 19:12:51 -04:00
Evan HuntandCurtis Blackburn af73e16c9c files were left in place after catz run because of non-portable bracket use 2018-05-24 18:59:43 -04:00
Evan Hunt 4049ba866e Merge branch 'add-readme-features' into 'master'
add new feature list to README

See merge request isc-projects/bind9!316
2018-05-24 14:35:22 -04:00
Evan Hunt b4d8349237 add new feature list to README 2018-05-24 11:26:12 -07:00
Evan Hunt 86899552cc Merge branch '283-ensure-there-is-a-blank-line-before-a-changes-entry-and-a-release-marker' into 'master'
Resolve "ensure there is a blank line before a changes entry and a release marker."

Closes #283

See merge request isc-projects/bind9!311
2018-05-23 20:55:12 -04:00
Mark AndrewsandEvan Hunt e1358d1460 add blank line 2018-05-23 20:46:38 -04:00
Mark AndrewsandEvan Hunt c91770549f ensure there is a blank line before a changes entry and a release marker 2018-05-23 20:46:38 -04:00
Evan Hunt 2d750a15a9 Merge branch 'generate-notes-txt' into 'master'
use w3m to generate notes.txt as part of the doc build

See merge request isc-projects/bind9!310
2018-05-23 12:48:42 -04:00
Evan Hunt 9147a31b94 copyrights 2018-05-23 12:39:40 -04:00
Evan Hunt 7c955e0eb8 use w3m to generate notes.txt as part of the doc build 2018-05-23 12:39:40 -04:00
562 changed files with 8751 additions and 70316 deletions
+2
View File
@@ -7,6 +7,8 @@ libtool
/isc-config.sh
/configure.lineno
autom4te.cache/
*.rej
*.orig
*.o
*.lo
*.so
+102
View File
@@ -1,5 +1,107 @@
4977. [cleanup] Fixed an inconsistency in setting up the
default "allow-notify" ACL. [GL !342]
4976. [bug] Log the label with invalid prefix length correctly
when loading RPZ zones. [GL #254]
4975. [bug] The server cookie computation for sha1 and sha256 did
not match the method described in RFC 7873. [GL #356]
4974. [bug] Restore default rrset-order to random. [GL #336]
4973. [func] verifyzone() and the functions it uses were moved to
libdns and refactored to prevent exit() from being
called upon failure. A side effect of that is that
dnssec-signzone and dnssec-verify now check for memory
leaks upon shutdown. [GL #266]
4972. [func] Declare the 'rdata' argument for dns_rdata_tostruct()
to be const. [GL #341]
4971. [bug] dnssec-signzone and dnssec-verify did not treat records
below a DNAME as out-of-zone data. [GL #298]
4970. [func] Add QNAME minimization option to resolver. [GL #16]
4969. [cleanup] Refactor zone logging functions. [GL #269]
--- 9.13.1 released ---
4968. [bug] If glue records are signed, attempt to validate them.
[GL #209]
4967. [cleanup] Add "answer-cookie" to the parser, marked obsolete.
4966. [placeholder]
4965. [func] Add support for marking options as deprecated.
[GL #322]
4964. [bug] Reduce the probabilty 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]
4963. [test] ifconfig.sh now uses "ip" instead of "ifconfig",
if available, to configure the test interfaces on
linux. [GL #302]
4962. [cleanup] Move 'named -T' processing to its own function.
[GL #316]
4961. [protocol] Remove support for ECC-GOST (GOST R 34.11-94).
[GL #295]
4960. [security] When recursion is enabled, but the "allow-recursion"
and "allow-query-cache" ACLs are not specified,
they should be limited to local networks,
but were inadvertently set to match the default
"allow-query", thus allowing remote queries.
(CVE-2018-5738) [GL #309]
4959. [func] NSID logging (enabled by the "request-nsid" option)
now has its own "nsid" category, instead of using the
"resolver" category. [GL !332]
4958. [bug] Remove redundant space from NSEC3 record. [GL #281]
4957. [func] The default setting for "dnssec-validation" is now
"auto", which activates DNSSEC validation using the
IANA root key. (The default can be changed back to
"yes", which activates DNSSEC validation only when keys
are explicitly configured in named.conf, by building
BIND with "configure --disable-auto-validation".)
[GL #30]
4956. [func] Change isc_random() to be just PRNG using xoshiro128**,
and add isc_nonce_buf() that uses CSPRNG. [GL #289]
4955. [cleanup] Silence cppcheck warnings in lib/dns/master.c.
[GL #286]
4954. [func] Messages about serving of stale answers are now
directed to the "serve-stale" logging category.
Also clarified serve-stale documentation. [GL !323]
4953. [bug] Removed the option to build the red black tree
database without a hash table; the non-hashing
version was buggy and is not needed. [GL #184]
4952. [func] Authoritative server support in named for the
EDNS CLIENT-SUBNET option (which was experimental
and not practical to deploy) has been removed.
The ECS option is still supported in dig and mdig
via the +subnet option, and can be parsed and logged
when received by named, but it is no longer used
for ACL processing. The "geoip-use-ecs" option
is now obsolete; a warning will be logged if it is
used in named.conf. "ecs" tags in an ACL definition
are also obsolete and will cause the configuration
to fail to load. [GL #32]
4951. [protocol] Add "HOME.ARPA" to list of built in empty zones as
per RFC 8375. [GL #273]
--- 9.13.0 released ---
4950. [bug] ISC_SOCKEVENTATTR_TRUNC was not be set. [GL #238]
+7 -1
View File
@@ -22,7 +22,8 @@ MANPAGES = isc-config.sh.1
HTMLPAGES = isc-config.sh.html
MANOBJS = README HISTORY OPTIONS CONTRIBUTING ${MANPAGES} ${HTMLPAGES}
MANOBJS = README HISTORY OPTIONS CONTRIBUTING PLATFORMS \
${MANPAGES} ${HTMLPAGES}
@BIND9_MAKE_RULES@
@@ -114,6 +115,11 @@ CONTRIBUTING: CONTRIBUTING.md
${W3M} -dump -cols 75 -O ascii -T text/html | \
sed -e '$${/^$$/d;}' > $@
PLATFORMS: PLATFORMS.md
${PANDOC} --email-obfuscation=none -s -t html PLATFORMS.md | \
${W3M} -dump -cols 75 -O ascii -T text/html | \
sed -e '$${/^$$/d;}' > $@
unit::
sh ${top_builddir}/unit/unittest.sh
+56
View File
@@ -0,0 +1,56 @@
Supported platforms
In general, this version of BIND will build and run on any POSIX-compliant
system with a C99-compliant C compiler, BSD-style sockets, and the OpenSSL
cryptography library. To build with multiprocessing support, a
C11-compliant C compiler will be needed for standard atomics.
ISC regularly tests BIND on many operating systems and architectures, but
lacks the resources to test all of them. Consequently, ISC is only able to
offer support on a "best effort" basis for some.
Regularly tested platforms
As of May 2018, BIND 9.13 is tested on the following systems:
* Debian 8, 9
* Ubuntu 16.04, 18.04
* Fedora 27, 28
* Red Hat/CentOS 6, 7
* FreeBSD 10.x, 11.x
* OpenBSD 6.3
The amd64, i386, armhf and arm64 CPU architectures are all fully
supported.
Best effort
The following are platforms on which BIND is known to build and run, but
on which it is not routinely tested. ISC makes every effort to fix bugs on
these platforms, but may be unable to do so quickly due to lack of
hardware, less familiarity on the part of engineering staff, and other
constraints.
* Windows 10 / x64
* Windows Server 2012 R2, 2016 / x64
* macOS 10.12+
* Solaris 10
* FreeBSD 12+
* OpenBSD 6.2
* NetBSD
* Older or less popular Linux distributions still supported by their
vendors, such as:
+ Ubuntu 14.04, 18.10+
+ Gentoo
+ ArchLinux
+ Alpine Linux
* OpenWRT/LEDE 17.0
* Other CPU architectures (mips, mipsel, sparc, ...)
Unsupported platforms
These are platforms on which BIND is known not to build or run:
* Platforms without at least OpenSSL 1.0.2
* Windows 10 / x86
* Windows Server 2012
+64
View File
@@ -0,0 +1,64 @@
<!--
- Copyright (C) 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/.
-
- See the COPYRIGHT file distributed with this work for additional
- information regarding copyright ownership.
-->
## Supported platforms
In general, this version of BIND will build and run on any POSIX-compliant
system with a C99-compliant C compiler, BSD-style sockets, and the OpenSSL
cryptography library. To build with multiprocessing support, a
C11-compliant C compiler will be needed for standard atomics.
ISC regularly tests BIND on many operating systems and architectures, but
lacks the resources to test all of them. Consequently, ISC is only able to
offer support on a "best effort" basis for some.
### Regularly tested platforms
As of May 2018, BIND 9.13 is tested on the following systems:
* Debian 8, 9
* Ubuntu 16.04, 18.04
* Fedora 27, 28
* Red Hat/CentOS 6, 7
* FreeBSD 10.x, 11.x
* OpenBSD 6.3
The amd64, i386, armhf and arm64 CPU architectures are all fully supported.
### Best effort
The following are platforms on which BIND is known to build and run,
but on which it is not routinely tested. ISC makes every effort to fix bugs
on these platforms, but may be unable to do so quickly due to lack of
hardware, less familiarity on the part of engineering staff, and other
constraints.
* Windows 10 / x64
* Windows Server 2012 R2, 2016 / x64
* macOS 10.12+
* Solaris 10
* FreeBSD 12+
* OpenBSD 6.2
* NetBSD
* Older or less popular Linux distributions still supported by their vendors, such as:
* Ubuntu 14.04, 18.10+
* Gentoo
* ArchLinux
* Alpine Linux
* OpenWRT/LEDE 17.0
* Other CPU architectures (mips, mipsel, sparc, ...)
## Unsupported platforms
These are platforms on which BIND is known *not* to build or run:
* Platforms without at least OpenSSL 1.0.2
* Windows 10 / x86
* Windows Server 2012
+18 -7
View File
@@ -31,9 +31,9 @@ administrative tools, including the dig and delv DNS lookup tools,
nsupdate for dynamic DNS zone updates, rndc for remote name server
administration, and more.
BIND 9 is a complete re-write of the BIND architecture that was used in
versions 4 and 8. Internet Systems Consortium (https://www.isc.org), a 501
(c)(3) public benefit corporation dedicated to providing software and
BIND 9 began as a complete re-write of the BIND architecture that was used
in 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 the Mozilla Public License,
@@ -48,6 +48,8 @@ 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 information about supported platforms, see PLATFORMS.
Reporting bugs and getting help
To report non-security-sensitive bugs or request new features, you may
@@ -99,11 +101,20 @@ format-patch.
BIND 9.13 features
BIND 9.13.0 is the newest development branch of BIND 9. It includes a
number of changes from BIND 9.12 and earlier releases. New features
include:
BIND 9.13 is the newest development branch of BIND 9. It includes a number
of changes from BIND 9.12 and earlier releases. New features include:
* TBD
* The default value of "dnssec-validation" is now "auto".
* Support for IDNA2008 when linking with libidn2.
* "Root key sentinel" support, enabling validating resolvers to indicate
via a special query which trust anchors are configured for the root
zone.
In addition, cryptographic support has been modernized. BIND now uses the
best available pseudo-random number generator for the platform on which
it's built. Very old versions of OpenSSL are no longer supported.
Cryptography is now mandatory; building BIND without DNSSEC is now longer
supported.
Building BIND
+15 -4
View File
@@ -41,8 +41,8 @@ administrative tools, including the `dig` and `delv` DNS lookup tools,
`nsupdate` for dynamic DNS zone updates, `rndc` for remote name server
administration, and more.
BIND 9 is a complete re-write of the BIND architecture that was used in
versions 4 and 8. Internet Systems Consortium
BIND 9 began as a complete re-write of the BIND architecture that was
used in versions 4 and 8. Internet Systems Consortium
([https://www.isc.org](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
@@ -59,6 +59,8 @@ 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 information about supported platforms, see [PLATFORMS](PLATFORMS.md).
### <a name="help"/> Reporting bugs and getting help
To report non-security-sensitive bugs or request new features, you may
@@ -116,11 +118,20 @@ including your patch as an attachment, preferably generated by
### <a name="features"/> BIND 9.13 features
BIND 9.13.0 is the newest development branch of BIND 9. It includes a
BIND 9.13 is the newest development branch of BIND 9. It includes a
number of changes from BIND 9.12 and earlier releases. New features
include:
* TBD
* The default value of "dnssec-validation" is now "auto".
* Support for IDNA2008 when linking with `libidn2`.
* "Root key sentinel" support, enabling validating resolvers to indicate
via a special query which trust anchors are configured for the root zone.
In addition, cryptographic support has been modernized. BIND now uses the
best available pseudo-random number generator for the platform on which
it's built. Very old versions of OpenSSL are no longer supported.
Cryptography is now mandatory; building BIND without DNSSEC is now
longer supported.
### <a name="build"/> Building BIND
Vendored
+293 -15
View File
@@ -1,17 +1,295 @@
sinclude(libtool.m4/libtool.m4)dnl
sinclude(libtool.m4/ltoptions.m4)dnl
sinclude(libtool.m4/ltsugar.m4)dnl
sinclude(libtool.m4/ltversion.m4)dnl
sinclude(libtool.m4/lt~obsolete.m4)dnl
# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
m4_divert_text(HELP_CANON, [[
NOTE: If PREFIX is not set, then the default values for --sysconfdir
and --localstatedir are /etc and /var, respectively.]])
m4_divert_text(HELP_END, [[
Professional support for BIND is provided by Internet Systems Consortium,
Inc. Information about paid support and training options is available at
https://www.isc.org/support.
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
Help can also often be found on the BIND Users mailing list
(https://lists.isc.org/mailman/listinfo/bind-users) or in the #bind
channel of the Freenode IRC service.]])
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
# serial 12 (pkg-config-0.29.2)
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 2 of the License, or
dnl (at your option) any later version.
dnl
dnl This program is distributed in the hope that it will be useful, but
dnl WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
dnl 02111-1307, USA.
dnl
dnl As a special exception to the GNU General Public License, if you
dnl distribute this file as part of a program that contains a
dnl configuration script generated by Autoconf, you may include it under
dnl the same distribution terms that you use for the rest of that
dnl program.
dnl PKG_PREREQ(MIN-VERSION)
dnl -----------------------
dnl Since: 0.29
dnl
dnl Verify that the version of the pkg-config macros are at least
dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
dnl installed version of pkg-config, this checks the developer's version
dnl of pkg.m4 when generating configure.
dnl
dnl To ensure that this macro is defined, also add:
dnl m4_ifndef([PKG_PREREQ],
dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
dnl
dnl See the "Since" comment for each macro you use to see what version
dnl of the macros you require.
m4_defun([PKG_PREREQ],
[m4_define([PKG_MACROS_VERSION], [0.29.2])
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
])dnl PKG_PREREQ
dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
dnl ----------------------------------
dnl Since: 0.16
dnl
dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
dnl first found in the path. Checks that the version of pkg-config found
dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
dnl used since that's the first version where most current features of
dnl pkg-config existed.
AC_DEFUN([PKG_PROG_PKG_CONFIG],
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
fi
if test -n "$PKG_CONFIG"; then
_pkg_min_version=m4_default([$1], [0.9.0])
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
PKG_CONFIG=""
fi
fi[]dnl
])dnl PKG_PROG_PKG_CONFIG
dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
dnl -------------------------------------------------------------------
dnl Since: 0.18
dnl
dnl Check to see whether a particular set of modules exists. Similar to
dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
dnl
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
dnl only at the first occurence in configure.ac, so if the first place
dnl it's called might be skipped (such as if it is within an "if", you
dnl have to call PKG_CHECK_EXISTS manually
AC_DEFUN([PKG_CHECK_EXISTS],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
if test -n "$PKG_CONFIG" && \
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
m4_default([$2], [:])
m4_ifvaln([$3], [else
$3])dnl
fi])
dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
dnl ---------------------------------------------
dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
dnl pkg_failed based on the result.
m4_define([_PKG_CONFIG],
[if test -n "$$1"; then
pkg_cv_[]$1="$$1"
elif test -n "$PKG_CONFIG"; then
PKG_CHECK_EXISTS([$3],
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes ],
[pkg_failed=yes])
else
pkg_failed=untried
fi[]dnl
])dnl _PKG_CONFIG
dnl _PKG_SHORT_ERRORS_SUPPORTED
dnl ---------------------------
dnl Internal check to see if pkg-config supports short errors.
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
else
_pkg_short_errors_supported=no
fi[]dnl
])dnl _PKG_SHORT_ERRORS_SUPPORTED
dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
dnl [ACTION-IF-NOT-FOUND])
dnl --------------------------------------------------------------
dnl Since: 0.4.0
dnl
dnl Note that if there is a possibility the first call to
dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
AC_DEFUN([PKG_CHECK_MODULES],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
pkg_failed=no
AC_MSG_CHECKING([for $2])
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
_PKG_CONFIG([$1][_LIBS], [libs], [$2])
m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
and $1[]_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.])
if test $pkg_failed = yes; then
AC_MSG_RESULT([no])
_PKG_SHORT_ERRORS_SUPPORTED
if test $_pkg_short_errors_supported = yes; then
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
else
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
m4_default([$4], [AC_MSG_ERROR(
[Package requirements ($2) were not met:
$$1_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
_PKG_TEXT])[]dnl
])
elif test $pkg_failed = untried; then
AC_MSG_RESULT([no])
m4_default([$4], [AC_MSG_FAILURE(
[The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
_PKG_TEXT
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
])
else
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
AC_MSG_RESULT([yes])
$3
fi[]dnl
])dnl PKG_CHECK_MODULES
dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
dnl [ACTION-IF-NOT-FOUND])
dnl ---------------------------------------------------------------------
dnl Since: 0.29
dnl
dnl Checks for existence of MODULES and gathers its build flags with
dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
dnl and VARIABLE-PREFIX_LIBS from --libs.
dnl
dnl Note that if there is a possibility the first call to
dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
dnl configure.ac.
AC_DEFUN([PKG_CHECK_MODULES_STATIC],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
_save_PKG_CONFIG=$PKG_CONFIG
PKG_CONFIG="$PKG_CONFIG --static"
PKG_CHECK_MODULES($@)
PKG_CONFIG=$_save_PKG_CONFIG[]dnl
])dnl PKG_CHECK_MODULES_STATIC
dnl PKG_INSTALLDIR([DIRECTORY])
dnl -------------------------
dnl Since: 0.27
dnl
dnl Substitutes the variable pkgconfigdir as the location where a module
dnl should install pkg-config .pc files. By default the directory is
dnl $libdir/pkgconfig, but the default can be changed by passing
dnl DIRECTORY. The user can override through the --with-pkgconfigdir
dnl parameter.
AC_DEFUN([PKG_INSTALLDIR],
[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
m4_pushdef([pkg_description],
[pkg-config installation directory @<:@]pkg_default[@:>@])
AC_ARG_WITH([pkgconfigdir],
[AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
[with_pkgconfigdir=]pkg_default)
AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
m4_popdef([pkg_default])
m4_popdef([pkg_description])
])dnl PKG_INSTALLDIR
dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
dnl --------------------------------
dnl Since: 0.27
dnl
dnl Substitutes the variable noarch_pkgconfigdir as the location where a
dnl module should install arch-independent pkg-config .pc files. By
dnl default the directory is $datadir/pkgconfig, but the default can be
dnl changed by passing DIRECTORY. The user can override through the
dnl --with-noarch-pkgconfigdir parameter.
AC_DEFUN([PKG_NOARCH_INSTALLDIR],
[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
m4_pushdef([pkg_description],
[pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
AC_ARG_WITH([noarch-pkgconfigdir],
[AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
[with_noarch_pkgconfigdir=]pkg_default)
AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
m4_popdef([pkg_default])
m4_popdef([pkg_description])
])dnl PKG_NOARCH_INSTALLDIR
dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
dnl -------------------------------------------
dnl Since: 0.28
dnl
dnl Retrieves the value of the pkg-config variable for the given module.
AC_DEFUN([PKG_CHECK_VAR],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
_PKG_CONFIG([$1], [variable="][$3]["], [$2])
AS_VAR_COPY([$1], [pkg_cv_][$1])
AS_VAR_IF([$1], [""], [$5], [$4])dnl
])dnl PKG_CHECK_VAR
m4_include([libtool.m4/libtool.m4])
m4_include([libtool.m4/ltoptions.m4])
m4_include([libtool.m4/ltsugar.m4])
m4_include([libtool.m4/ltversion.m4])
m4_include([libtool.m4/lt~obsolete.m4])
+1 -1
View File
@@ -1933,7 +1933,7 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only,
{
debug("config line %s", batchline);
bargc = split_batchline(batchline, bargv, 62,
".digrc argv");
".digrc argv");
bargv[0] = argv[0];
argv0 = argv[0];
parse_args(ISC_TRUE, ISC_TRUE,
+4 -6
View File
@@ -63,6 +63,7 @@
#include <isc/log.h>
#include <isc/netaddr.h>
#include <isc/netdb.h>
#include <isc/nonce.h>
#include <isc/parseint.h>
#include <isc/print.h>
#include <isc/random.h>
@@ -1315,7 +1316,7 @@ setup_system(isc_boolean_t ipv4only, isc_boolean_t ipv6only) {
else if (keysecret[0] != 0)
setup_text_key();
isc_random_buf(cookie_secret, sizeof(cookie_secret));
isc_nonce_buf(cookie_secret, sizeof(cookie_secret));
}
/*%
@@ -1870,8 +1871,7 @@ followup_lookup(dns_message_t *msg, dig_query_t *query, dns_section_t section)
srv != NULL;
srv = ISC_LIST_HEAD(lookup->my_server_list)) {
INSIST(i > 0);
j = isc_random();
j %= i;
j = isc_random_uniform(i);
next = ISC_LIST_NEXT(srv, link);
while (j-- > 0 && next != NULL) {
srv = next;
@@ -2023,7 +2023,6 @@ compute_cookie(unsigned char *clientcookie, size_t len) {
isc_boolean_t
setup_lookup(dig_lookup_t *lookup) {
isc_result_t result;
isc_uint32_t id;
unsigned int len;
dig_server_t *serv;
dig_query_t *query;
@@ -2198,8 +2197,7 @@ setup_lookup(dig_lookup_t *lookup) {
dighost_trying(store, lookup);
INSIST(dns_name_isabsolute(lookup->name));
id = isc_random();
lookup->sendmsg->id = (unsigned short)id & 0xFFFF;
lookup->sendmsg->id = (dns_messageid_t)isc_random16();
lookup->sendmsg->opcode = lookup->opcode;
lookup->msgcounter = 0;
/*
+1 -1
View File
@@ -102,7 +102,7 @@ Specify a digest algorithm to use when converting CDNSKEY records to DS records\
.sp
The
\fIalgorithm\fR
must be one of SHA\-1 (SHA1), SHA\-256 (SHA256), GOST, or SHA\-384 (SHA384)\&. These values are case insensitive\&. If no algorithm is specified, the default is SHA\-256\&.
must be one of SHA\-1 (SHA1), SHA\-256 (SHA256), or SHA\-384 (SHA384)\&. These values are case insensitive\&. If no algorithm is specified, the default is SHA\-256\&.
.RE
.PP
\-c \fIclass\fR
+1 -1
View File
@@ -1115,7 +1115,7 @@ usage(void) {
program);
fprintf(stderr, "Version: %s\n", VERSION);
fprintf(stderr, "Options:\n"
" -a <algorithm> digest algorithm (SHA-1 / SHA-256 / GOST / SHA-384)\n"
" -a <algorithm> digest algorithm (SHA-1 / SHA-256 / SHA-384)\n"
" -c <class> of domain (default IN)\n"
" -D prefer CDNSKEY records instead of CDS\n"
" -d <file|dir> where to find parent dsset- file\n"
+1 -1
View File
@@ -144,7 +144,7 @@
</para>
<para>
The <replaceable>algorithm</replaceable> must be one of SHA-1
(SHA1), SHA-256 (SHA256), GOST, or SHA-384 (SHA384). These
(SHA1), SHA-256 (SHA256), or SHA-384 (SHA384). These
values are case insensitive. If no algorithm is specified,
the default is SHA-256.
</para>
+1 -1
View File
@@ -130,7 +130,7 @@
</p>
<p>
The <em class="replaceable"><code>algorithm</code></em> must be one of SHA-1
(SHA1), SHA-256 (SHA256), GOST, or SHA-384 (SHA384). These
(SHA1), SHA-256 (SHA256), or SHA-384 (SHA384). These
values are case insensitive. If no algorithm is specified,
the default is SHA-256.
</p>
+1 -1
View File
@@ -64,7 +64,7 @@ Use SHA\-256 as the digest algorithm\&.
.RS 4
Select the digest algorithm\&. The value of
\fBalgorithm\fR
must be one of SHA\-1 (SHA1), SHA\-256 (SHA256), GOST or SHA\-384 (SHA384)\&. These values are case insensitive\&.
must be one of SHA\-1 (SHA1), SHA\-256 (SHA256) or SHA\-384 (SHA384)\&. These values are case insensitive\&.
.RE
.PP
\-C
+1 -1
View File
@@ -117,7 +117,7 @@
<para>
Select the digest algorithm. The value of
<option>algorithm</option> must be one of SHA-1 (SHA1),
SHA-256 (SHA256), GOST or SHA-384 (SHA384).
SHA-256 (SHA256) or SHA-384 (SHA384).
These values are case insensitive.
</para>
</listitem>
+1 -1
View File
@@ -97,7 +97,7 @@
<p>
Select the digest algorithm. The value of
<code class="option">algorithm</code> must be one of SHA-1 (SHA1),
SHA-256 (SHA256), GOST or SHA-384 (SHA384).
SHA-256 (SHA256) or SHA-384 (SHA384).
These values are case insensitive.
</p>
</dd>
+1 -1
View File
@@ -55,7 +55,7 @@ of the key is specified on the command line\&. This must match the name of the z
.RS 4
Selects the cryptographic algorithm\&. The value of
\fBalgorithm\fR
must be one of RSAMD5, RSASHA1, DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512, ECCGOST, ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448\&.
must be one of RSAMD5, RSASHA1, DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512, ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448\&.
.sp
If no algorithm is specified, then RSASHA1 will be used by default, unless the
\fB\-3\fR
+1 -2
View File
@@ -64,7 +64,7 @@ usage(void) {
fprintf(stderr, " -a algorithm: \n"
" RSA | RSAMD5 | DH | DSA | RSASHA1 |\n"
" NSEC3DSA | NSEC3RSASHA1 |\n"
" RSASHA256 | RSASHA512 | ECCGOST |\n"
" RSASHA256 | RSASHA512 |\n"
" ECDSAP256SHA256 | ECDSAP384SHA384\n");
fprintf(stderr, " -3: use NSEC3-capable algorithm\n");
fprintf(stderr, " -c class (default: IN)\n");
@@ -427,7 +427,6 @@ main(int argc, char **argv) {
case DST_ALG_NSEC3RSASHA1:
case DST_ALG_RSASHA256:
case DST_ALG_RSASHA512:
case DST_ALG_ECCGOST:
case DST_ALG_ECDSA256:
case DST_ALG_ECDSA384:
case DST_ALG_ED25519:
+1 -1
View File
@@ -106,7 +106,7 @@
<para>
Selects the cryptographic algorithm. The value of
<option>algorithm</option> must be one of RSAMD5, RSASHA1,
DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512, ECCGOST,
DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512,
ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448.
</para>
<para>
+1 -1
View File
@@ -90,7 +90,7 @@
<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,
DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512,
ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448.
</p>
<p>
+1 -1
View File
@@ -62,7 +62,7 @@ may be preferable to direct use of
.RS 4
Selects the cryptographic algorithm\&. For DNSSEC keys, the value of
\fBalgorithm\fR
must be one of RSAMD5, RSASHA1, DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512, ECCGOST, ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448\&. For TKEY, the value must be DH (Diffie Hellman); specifying his value will automatically set the
must be one of RSAMD5, RSASHA1, DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512, ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448\&. For TKEY, the value must be DH (Diffie Hellman); specifying his value will automatically set the
\fB\-T KEY\fR
option as well\&.
.sp
+1 -1
View File
@@ -79,7 +79,7 @@ usage(void) {
fprintf(stderr, " -a <algorithm>:\n");
fprintf(stderr, " RSA | RSAMD5 | DSA | RSASHA1 | NSEC3RSASHA1"
" | NSEC3DSA |\n");
fprintf(stderr, " RSASHA256 | RSASHA512 | ECCGOST |\n");
fprintf(stderr, " RSASHA256 | RSASHA512 |\n");
fprintf(stderr, " ECDSAP256SHA256 | ECDSAP384SHA384 |\n");
fprintf(stderr, " ED25519 | ED448 | DH\n");
fprintf(stderr, " -3: use NSEC3-capable algorithm\n");
+1 -1
View File
@@ -123,7 +123,7 @@
<para>
Selects the cryptographic algorithm. For DNSSEC keys, the value
of <option>algorithm</option> must be one of RSAMD5, RSASHA1,
DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512, ECCGOST,
DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512,
ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448. For
TKEY, the value must be DH (Diffie Hellman); specifying
his value will automatically set the <option>-T KEY</option>
+1 -1
View File
@@ -100,7 +100,7 @@
<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,
DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512,
ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448. For
TKEY, the value must be DH (Diffie Hellman); specifying
his value will automatically set the <code class="option">-T KEY</code>
+114 -27
View File
@@ -76,6 +76,7 @@
#include <dns/soa.h>
#include <dns/time.h>
#include <dns/update.h>
#include <dns/zoneverify.h>
#include <dst/dst.h>
@@ -96,6 +97,10 @@ typedef struct hashlist hashlist_t;
static int nsec_datatype = dns_rdatatype_nsec;
#define check_dns_dbiterator_current(result) \
check_result((result == DNS_R_NEWORIGIN) ? ISC_R_SUCCESS : result, \
"dns_dbiterator_current()")
#define IS_NSEC3 (nsec_datatype == dns_rdatatype_nsec3)
#define OPTOUT(x) (((x) & DNS_NSEC3FLAG_OPTOUT) != 0)
@@ -189,6 +194,19 @@ static dns_ttl_t maxttl = 0;
static void
sign(isc_task_t *task, isc_event_t *event);
/*%
* Store a copy of 'name' in 'fzonecut' and return a pointer to that copy.
*/
static dns_name_t *
savezonecut(dns_fixedname_t *fzonecut, dns_name_t *name) {
dns_name_t *result;
result = dns_fixedname_initname(fzonecut);
dns_name_copy(name, result, NULL);
return (result);
}
static void
dumpnode(dns_name_t *name, dns_dbnode_t *node) {
dns_rdataset_t rds;
@@ -485,11 +503,11 @@ signset(dns_diff_t *del, dns_diff_t *add, dns_dbnode_t *node, dns_name_t *name,
dns_ttl_t ttl;
int i;
char namestr[DNS_NAME_FORMATSIZE];
char typestr[TYPE_FORMATSIZE];
char typestr[DNS_RDATATYPE_FORMATSIZE];
char sigstr[SIG_FORMATSIZE];
dns_name_format(name, namestr, sizeof(namestr));
type_format(set->type, typestr, sizeof(typestr));
dns_rdatatype_format(set->type, typestr, sizeof(typestr));
ttl = ISC_MIN(set->ttl, endtime - starttime);
@@ -1029,6 +1047,47 @@ secure(dns_name_t *name, dns_dbnode_t *node) {
return (ISC_TF(result == ISC_R_SUCCESS));
}
static isc_boolean_t
is_delegation(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
dns_name_t *name, dns_dbnode_t *node, isc_uint32_t *ttlp)
{
dns_rdataset_t nsset;
isc_result_t result;
if (dns_name_equal(name, origin))
return (ISC_FALSE);
dns_rdataset_init(&nsset);
result = dns_db_findrdataset(db, node, ver, dns_rdatatype_ns,
0, 0, &nsset, NULL);
if (dns_rdataset_isassociated(&nsset)) {
if (ttlp != NULL)
*ttlp = nsset.ttl;
dns_rdataset_disassociate(&nsset);
}
return (ISC_TF(result == ISC_R_SUCCESS));
}
/*%
* Return ISC_TRUE if version 'ver' of database 'db' contains a DNAME RRset at
* 'node'; return ISC_FALSE otherwise.
*/
static isc_boolean_t
has_dname(dns_db_t *db, dns_dbversion_t *ver, dns_dbnode_t *node) {
dns_rdataset_t dnameset;
isc_result_t result;
dns_rdataset_init(&dnameset);
result = dns_db_findrdataset(db, node, ver, dns_rdatatype_dname, 0, 0,
&dnameset, NULL);
if (dns_rdataset_isassociated(&dnameset)) {
dns_rdataset_disassociate(&dnameset);
}
return (ISC_TF(result == ISC_R_SUCCESS));
}
/*%
* Signs all records at a name.
*/
@@ -1485,14 +1544,19 @@ assignwork(isc_task_t *task, isc_task_t *worker) {
if (dns_name_issubdomain(name, gorigin) &&
(zonecut == NULL ||
!dns_name_issubdomain(name, zonecut))) {
if (is_delegation(gdb, gversion, gorigin, name, node, NULL)) {
zonecut = dns_fixedname_initname(&fzonecut);
dns_name_copy(name, zonecut, NULL);
if (is_delegation(gdb, gversion, gorigin,
name, node, NULL))
{
zonecut = savezonecut(&fzonecut, name);
if (!OPTOUT(nsec3flags) ||
secure(name, node))
found = ISC_TRUE;
} else
} else if (has_dname(gdb, gversion, node)) {
zonecut = savezonecut(&fzonecut, name);
found = ISC_TRUE;
} else {
found = ISC_TRUE;
}
}
}
@@ -1731,7 +1795,6 @@ nsecify(void) {
dns_rdataset_init(&rdataset);
name = dns_fixedname_initname(&fname);
nextname = dns_fixedname_initname(&fnextname);
dns_fixedname_init(&fzonecut);
zonecut = NULL;
/*
@@ -1793,11 +1856,12 @@ nsecify(void) {
}
if (is_delegation(gdb, gversion, gorigin, name, node, &nsttl)) {
zonecut = dns_fixedname_name(&fzonecut);
dns_name_copy(name, zonecut, NULL);
zonecut = savezonecut(&fzonecut, name);
remove_sigs(node, ISC_TRUE, 0);
if (generateds)
add_ds(name, node, nsttl);
} else if (has_dname(gdb, gversion, node)) {
zonecut = savezonecut(&fzonecut, name);
}
result = dns_dbiterator_next(dbiter);
@@ -2072,10 +2136,10 @@ rrset_cleanup(dns_name_t *name, dns_rdataset_t *rdataset,
unsigned int count1 = 0;
dns_rdataset_t tmprdataset;
char namestr[DNS_NAME_FORMATSIZE];
char typestr[TYPE_FORMATSIZE];
char typestr[DNS_RDATATYPE_FORMATSIZE];
dns_name_format(name, namestr, sizeof(namestr));
type_format(rdataset->type, typestr, sizeof(typestr));
dns_rdatatype_format(rdataset->type, typestr, sizeof(typestr));
dns_rdataset_init(&tmprdataset);
for (result = dns_rdataset_first(rdataset);
@@ -2204,7 +2268,6 @@ nsec3ify(unsigned int hashalg, dns_iterations_t iterations,
dns_rdataset_init(&rdataset);
name = dns_fixedname_initname(&fname);
nextname = dns_fixedname_initname(&fnextname);
dns_fixedname_init(&fzonecut);
zonecut = NULL;
/*
@@ -2238,6 +2301,10 @@ nsec3ify(unsigned int hashalg, dns_iterations_t iterations,
(void)active_node(node);
}
if (has_dname(gdb, gversion, node)) {
zonecut = savezonecut(&fzonecut, name);
}
result = dns_dbiterator_next(dbiter);
nextnode = NULL;
while (result == ISC_R_SUCCESS) {
@@ -2261,8 +2328,7 @@ nsec3ify(unsigned int hashalg, dns_iterations_t iterations,
if (is_delegation(gdb, gversion, gorigin,
nextname, nextnode, &nsttl))
{
zonecut = dns_fixedname_name(&fzonecut);
dns_name_copy(nextname, zonecut, NULL);
zonecut = savezonecut(&fzonecut, nextname);
remove_sigs(nextnode, ISC_TRUE, 0);
if (generateds)
add_ds(nextname, nextnode, nsttl);
@@ -2272,6 +2338,8 @@ nsec3ify(unsigned int hashalg, dns_iterations_t iterations,
result = dns_dbiterator_next(dbiter);
continue;
}
} else if (has_dname(gdb, gversion, nextnode)) {
zonecut = savezonecut(&fzonecut, nextname);
}
dns_db_detachnode(gdb, &nextnode);
break;
@@ -2370,6 +2438,11 @@ nsec3ify(unsigned int hashalg, dns_iterations_t iterations,
dns_db_detachnode(gdb, &node);
continue;
}
if (has_dname(gdb, gversion, node)) {
zonecut = savezonecut(&fzonecut, name);
}
result = dns_dbiterator_next(dbiter);
nextnode = NULL;
while (result == ISC_R_SUCCESS) {
@@ -2392,14 +2465,15 @@ nsec3ify(unsigned int hashalg, dns_iterations_t iterations,
if (is_delegation(gdb, gversion, gorigin,
nextname, nextnode, NULL))
{
zonecut = dns_fixedname_name(&fzonecut);
dns_name_copy(nextname, zonecut, NULL);
zonecut = savezonecut(&fzonecut, nextname);
if (OPTOUT(nsec3flags) &&
!secure(nextname, nextnode)) {
dns_db_detachnode(gdb, &nextnode);
result = dns_dbiterator_next(dbiter);
continue;
}
} else if (has_dname(gdb, gversion, nextnode)) {
zonecut = savezonecut(&fzonecut, nextname);
}
dns_db_detachnode(gdb, &nextnode);
break;
@@ -3153,7 +3227,7 @@ main(int argc, char *argv[]) {
isc_time_t timer_start, timer_finish;
isc_time_t sign_start, sign_finish;
dns_dnsseckey_t *key;
isc_result_t result;
isc_result_t result, vresult;
isc_log_t *log = NULL;
#ifdef USE_PKCS11
const char *engine = PKCS11_ENGINE;
@@ -3838,9 +3912,18 @@ main(int argc, char *argv[]) {
postsign();
TIME_NOW(&sign_finish);
if (!disable_zone_check)
verifyzone(gdb, gversion, gorigin, mctx,
ignore_kskflag, keyset_kskonly);
if (disable_zone_check) {
vresult = ISC_R_SUCCESS;
} else {
vresult = dns_zoneverify_dnssec(NULL, gdb, gversion, gorigin,
mctx, ignore_kskflag,
keyset_kskonly);
if (vresult != ISC_R_SUCCESS) {
fprintf(output_stdout ? stderr : stdout,
"Zone verification failed (%s)\n",
isc_result_totext(vresult));
}
}
if (outputformat != dns_masterformat_text) {
dns_masterrawheader_t header;
@@ -3866,12 +3949,16 @@ main(int argc, char *argv[]) {
check_result(result, "isc_stdio_close");
removefile = ISC_FALSE;
result = isc_file_rename(tempfile, output);
if (result != ISC_R_SUCCESS)
fatal("failed to rename temp file to %s: %s",
output, isc_result_totext(result));
printf("%s\n", output);
if (vresult == ISC_R_SUCCESS) {
result = isc_file_rename(tempfile, output);
if (result != ISC_R_SUCCESS) {
fatal("failed to rename temp file to %s: %s",
output, isc_result_totext(result));
}
printf("%s\n", output);
} else {
isc_file_remove(tempfile);
}
}
dns_db_closeversion(gdb, &gversion, ISC_FALSE);
@@ -3911,5 +3998,5 @@ main(int argc, char *argv[]) {
#ifdef _WIN32
DestroySockets();
#endif
return (0);
return (vresult == ISC_R_SUCCESS ? 0 : 1);
}
+4 -3
View File
@@ -58,6 +58,7 @@
#include <dns/result.h>
#include <dns/soa.h>
#include <dns/time.h>
#include <dns/zoneverify.h>
#include <dst/dst.h>
@@ -322,8 +323,8 @@ main(int argc, char *argv[]) {
result = dns_db_newversion(gdb, &gversion);
check_result(result, "dns_db_newversion()");
verifyzone(gdb, gversion, gorigin, mctx,
ignore_kskflag, keyset_kskonly);
result = dns_zoneverify_dnssec(NULL, gdb, gversion, gorigin, mctx,
ignore_kskflag, keyset_kskonly);
dns_db_closeversion(gdb, &gversion, ISC_FALSE);
dns_db_detach(&gdb);
@@ -337,5 +338,5 @@ main(int argc, char *argv[]) {
(void) isc_app_finish();
return (0);
return (result == ISC_R_SUCCESS ? 0 : 1);
}
File diff suppressed because it is too large Load Diff
-18
View File
@@ -18,11 +18,6 @@
#include <dns/rdatastruct.h>
#include <dst/dst.h>
#define check_dns_dbiterator_current(result) \
check_result((result == DNS_R_NEWORIGIN) ? ISC_R_SUCCESS : result, \
"dns_dbiterator_current()")
typedef void (fatalcallback_t)(void);
ISC_PLATFORM_NORETURN_PRE void
@@ -41,10 +36,6 @@ vbprintf(int level, const char *fmt, ...) ISC_FORMAT_PRINTF(2, 3);
ISC_PLATFORM_NORETURN_PRE void
version(const char *program) ISC_PLATFORM_NORETURN_POST;
void
type_format(const dns_rdatatype_t type, char *cp, unsigned int size);
#define TYPE_FORMATSIZE 20
void
sig_format(dns_rdata_rrsig_t *sig, char *cp, unsigned int size);
#define SIG_FORMATSIZE (DNS_NAME_FORMATSIZE + DNS_SECALG_FORMATSIZE + sizeof("65535"))
@@ -80,15 +71,6 @@ isc_boolean_t
key_collision(dst_key_t *key, dns_name_t *name, const char *dir,
isc_mem_t *mctx, isc_boolean_t *exact);
isc_boolean_t
is_delegation(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
dns_name_t *name, dns_dbnode_t *node, isc_uint32_t *ttlp);
void
verifyzone(dns_db_t *db, dns_dbversion_t *ver,
dns_name_t *origin, isc_mem_t *mctx,
isc_boolean_t ignore_kskflag, isc_boolean_t keyset_kskonly);
isc_boolean_t
isoptarg(const char *arg, char **argv, void (*usage)(void));
+8 -3
View File
@@ -27,6 +27,7 @@
#include <pk11/site.h>
#include <isccfg/grammar.h>
#include <isccfg/namedconf.h>
#include <dns/fixedname.h>
@@ -46,6 +47,7 @@
/*% default configuration */
static char defaultconf[] = "\
options {\n\
# answer-cookie <obsolete>;\n\
automatic-interface-scan yes;\n\
bindkeys-file \"" NAMED_SYSCONFDIR "/bind.keys\";\n\
# blackhole {none;};\n"
@@ -94,6 +96,7 @@ options {\n\
request-nsid false;\n\
reserved-sockets 512;\n\
resolver-query-timeout 10;\n\
rrset-order { order random; };\n\
secroots-file \"named.secroots\";\n\
send-cookie true;\n\
# serial-queries <obsolete>;\n\
@@ -146,7 +149,7 @@ options {\n\
clients-per-query 10;\n\
dnssec-accept-expired no;\n\
dnssec-enable yes;\n\
dnssec-validation yes; \n"
dnssec-validation " VALIDATION_DEFAULT "; \n"
#ifdef HAVE_DNSTAP
" dnstap-identity hostname;\n"
#endif
@@ -181,6 +184,7 @@ options {\n\
notify-source-v6 *;\n\
nsec3-test-zone no;\n\
provide-ixfr true;\n\
qname-minimization relaxed;\n\
query-source address *;\n\
query-source-v6 address *;\n\
recursion true;\n\
@@ -308,8 +312,9 @@ named_config_parsedefaults(cfg_parser_t *parser, cfg_obj_t **conf) {
isc_buffer_init(&b, defaultconf, sizeof(defaultconf) - 1);
isc_buffer_add(&b, sizeof(defaultconf) - 1);
return (cfg_parse_buffer3(parser, &b, __FILE__, 0,
&cfg_type_namedconf, conf));
return (cfg_parse_buffer4(parser, &b, __FILE__, 0,
&cfg_type_namedconf,
CFG_PCTX_NODEPRECATED, conf));
}
isc_result_t
+6 -6
View File
@@ -20,6 +20,7 @@
#include <isc/mem.h>
#include <isc/net.h>
#include <isc/netaddr.h>
#include <isc/nonce.h>
#include <isc/random.h>
#include <isc/result.h>
#include <isc/stdtime.h>
@@ -230,13 +231,12 @@ address_ok(isc_sockaddr_t *sockaddr, dns_acl_t *acl) {
isc_netaddr_fromsockaddr(&netaddr, sockaddr);
result = dns_acl_match(&netaddr, NULL, NULL, 0, NULL, acl, env, &match,
NULL);
if (result != ISC_R_SUCCESS || match <= 0)
result = dns_acl_match(&netaddr, NULL, acl, env, &match, NULL);
if (result != ISC_R_SUCCESS || match <= 0) {
return (ISC_FALSE);
else
} else {
return (ISC_TRUE);
}
}
static isc_result_t
@@ -458,7 +458,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
*/
if (conn->nonce == 0) {
while (conn->nonce == 0) {
isc_random_buf(&conn->nonce, sizeof(conn->nonce));
isc_nonce_buf(&conn->nonce, sizeof(conn->nonce));
}
eresult = ISC_R_SUCCESS;
} else
+90 -90
View File
@@ -129,6 +129,7 @@ static unsigned int delay = 0;
static isc_boolean_t nonearest = ISC_FALSE;
static isc_boolean_t notcp = ISC_FALSE;
static isc_boolean_t fixedlocal = ISC_FALSE;
static isc_boolean_t sigvalinsecs = ISC_FALSE;
/*
* -4 and -6
@@ -464,12 +465,97 @@ parse_fuzz_arg(void) {
}
}
static void
parse_T_opt(char *option) {
const char *p;
char *last = NULL;
/*
* force the server to behave (or misbehave) in
* specified ways for testing purposes.
*
* clienttest: make clients single shot with their
* own memory context.
* delay=xxxx: delay client responses by xxxx ms to
* simulate remote servers.
* dscp=x: check that dscp values are as
* expected and assert otherwise.
*/
if (!strcmp(option, "clienttest")) {
clienttest = ISC_TRUE;
} else if (!strncmp(option, "delay=", 6)) {
delay = atoi(option + 6);
} else if (!strcmp(option, "dropedns")) {
dropedns = ISC_TRUE;
} else if (!strncmp(option, "dscp=", 5)) {
isc_dscp_check_value = atoi(option + 5);
} else if (!strcmp(option, "fixedlocal")) {
fixedlocal = ISC_TRUE;
} else if (!strcmp(option, "keepstderr")) {
named_g_keepstderr = ISC_TRUE;
} else if (!strcmp(option, "noaa")) {
noaa = ISC_TRUE;
} else if (!strcmp(option, "noedns")) {
noedns = ISC_TRUE;
} else if (!strcmp(option, "nonearest")) {
nonearest = ISC_TRUE;
} else if (!strcmp(option, "nosoa")) {
nosoa = ISC_TRUE;
} else if (!strcmp(option, "nosyslog")) {
named_g_nosyslog = ISC_TRUE;
} else if (!strcmp(option, "notcp")) {
notcp = ISC_TRUE;
} else if (!strcmp(option, "maxudp512")) {
maxudp = 512;
} else if (!strcmp(option, "maxudp1460")) {
maxudp = 1460;
} else if (!strncmp(option, "maxudp=", 7)) {
maxudp = atoi(option + 7);
} else if (!strncmp(option, "mkeytimers=", 11)) {
p = strtok_r(option + 11, "/", &last);
if (p == NULL) {
named_main_earlyfatal("bad mkeytimer");
}
dns_zone_mkey_hour = atoi(p);
if (dns_zone_mkey_hour == 0) {
named_main_earlyfatal("bad mkeytimer");
}
p = strtok_r(NULL, "/", &last);
if (p == NULL) {
dns_zone_mkey_day = (24 * dns_zone_mkey_hour);
dns_zone_mkey_month = (30 * dns_zone_mkey_day);
return;
}
dns_zone_mkey_day = atoi(p);
if (dns_zone_mkey_day < dns_zone_mkey_hour)
named_main_earlyfatal("bad mkeytimer");
p = strtok_r(NULL, "/", &last);
if (p == NULL) {
dns_zone_mkey_month = (30 * dns_zone_mkey_day);
return;
}
dns_zone_mkey_month = atoi(p);
if (dns_zone_mkey_month < dns_zone_mkey_day) {
named_main_earlyfatal("bad mkeytimer");
}
} else if (!strcmp(option, "sigvalinsecs")) {
sigvalinsecs = ISC_TRUE;
} else if (!strncmp(option, "tat=", 4)) {
named_g_tat_interval = atoi(option + 4);
} else {
fprintf(stderr, "unknown -T flag '%s\n", option);
}
}
static void
parse_command_line(int argc, char *argv[]) {
int ch;
int port;
const char *p;
char *last;
save_command_line(argc, argv);
@@ -564,95 +650,7 @@ parse_command_line(int argc, char *argv[]) {
named_g_chrootdir = isc_commandline_argument;
break;
case 'T': /* NOT DOCUMENTED */
/*
* force the server to behave (or misbehave) in
* specified ways for testing purposes.
*
* clienttest: make clients single shot with their
* own memory context.
* delay=xxxx: delay client responses by xxxx ms to
* simulate remote servers.
* dscp=x: check that dscp values are as
* expected and assert otherwise.
*/
if (!strcmp(isc_commandline_argument, "clienttest"))
clienttest = ISC_TRUE;
else if (!strcmp(isc_commandline_argument, "nosoa"))
nosoa = ISC_TRUE;
else if (!strcmp(isc_commandline_argument, "noaa"))
noaa = ISC_TRUE;
else if (!strcmp(isc_commandline_argument,
"maxudp512"))
maxudp = 512;
else if (!strcmp(isc_commandline_argument,
"maxudp1460"))
maxudp = 1460;
else if (!strcmp(isc_commandline_argument, "dropedns"))
dropedns = ISC_TRUE;
else if (!strcmp(isc_commandline_argument, "noedns"))
noedns = ISC_TRUE;
else if (!strncmp(isc_commandline_argument,
"maxudp=", 7))
maxudp = atoi(isc_commandline_argument + 7);
else if (!strncmp(isc_commandline_argument,
"delay=", 6))
delay = atoi(isc_commandline_argument + 6);
else if (!strcmp(isc_commandline_argument, "nosyslog"))
named_g_nosyslog = ISC_TRUE;
else if (!strcmp(isc_commandline_argument, "nonearest"))
nonearest = ISC_TRUE;
else if (!strncmp(isc_commandline_argument, "dscp=", 5))
isc_dscp_check_value =
atoi(isc_commandline_argument + 5);
else if (!strncmp(isc_commandline_argument,
"mkeytimers=", 11))
{
p = strtok_r(isc_commandline_argument + 11, "/", &last);
if (p == NULL)
named_main_earlyfatal("bad mkeytimer");
dns_zone_mkey_hour = atoi(p);
if (dns_zone_mkey_hour == 0)
named_main_earlyfatal("bad mkeytimer");
p = strtok_r(NULL, "/", &last);
if (p == NULL) {
dns_zone_mkey_day =
(24 * dns_zone_mkey_hour);
dns_zone_mkey_month =
(30 * dns_zone_mkey_day);
break;
}
dns_zone_mkey_day = atoi(p);
if (dns_zone_mkey_day < dns_zone_mkey_hour)
named_main_earlyfatal("bad mkeytimer");
p = strtok_r(NULL, "/", &last);
if (p == NULL) {
dns_zone_mkey_month =
(30 * dns_zone_mkey_day);
break;
}
dns_zone_mkey_month = atoi(p);
if (dns_zone_mkey_month < dns_zone_mkey_day)
named_main_earlyfatal("bad mkeytimer");
} else if (!strcmp(isc_commandline_argument, "notcp"))
notcp = ISC_TRUE;
else if (!strncmp(isc_commandline_argument, "tat=", 4))
{
named_g_tat_interval =
atoi(isc_commandline_argument + 4);
} else if (!strcmp(isc_commandline_argument,
"keepstderr"))
{
named_g_keepstderr = ISC_TRUE;
} else if (!strcmp(isc_commandline_argument,
"fixedlocal"))
{
fixedlocal = ISC_TRUE;
} else {
fprintf(stderr, "unknown -T flag '%s\n",
isc_commandline_argument);
}
parse_T_opt(isc_commandline_argument);
break;
case 'U':
named_g_udpdisp = parse_int(isc_commandline_argument,
@@ -1116,6 +1114,8 @@ setup(void) {
ns_server_setoption(sctx, NS_SERVER_DISABLE4, ISC_TRUE);
if (disable6)
ns_server_setoption(sctx, NS_SERVER_DISABLE6, ISC_TRUE);
if (sigvalinsecs)
ns_server_setoption(sctx, NS_SERVER_SIGVALINSECS, ISC_TRUE);
named_g_server->sctx->delay = delay;
}
+21 -14
View File
@@ -13,7 +13,7 @@
<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.named.conf">
<info>
<date>2018-01-22</date>
<date>2018-05-29</date>
</info>
<refentryinfo>
<corpname>ISC</corpname>
@@ -205,7 +205,7 @@ options {
<replaceable>integer</replaceable> ] [ dscp <replaceable>integer</replaceable> ] { ( <replaceable>masters</replaceable> | <replaceable>ipv4_address</replaceable> [
port <replaceable>integer</replaceable> ] | <replaceable>ipv6_address</replaceable> [ port <replaceable>integer</replaceable> ] ) [ key
<replaceable>string</replaceable> ]; ... } ] [ zone-directory <replaceable>quoted_string</replaceable> ] [
in-memory <replaceable>boolean</replaceable> ] [ min-update-interval <replaceable>integer</replaceable> ]; ... };
in-memory <replaceable>boolean</replaceable> ] [ min-update-interval <replaceable>ttlval</replaceable> ]; ... };
check-dup-records ( fail | warn | ignore );
check-integrity <replaceable>boolean</replaceable>;
check-mx ( fail | warn | ignore );
@@ -244,6 +244,7 @@ options {
};
dns64-contact <replaceable>string</replaceable>;
dns64-server <replaceable>string</replaceable>;
dnskey-sig-validity <replaceable>integer</replaceable>;
dnsrps-enable <replaceable>boolean</replaceable>;
dnsrps-options { <replaceable>unspecified-text</replaceable> };
dnssec-accept-expired <replaceable>boolean</replaceable>;
@@ -292,14 +293,13 @@ options {
fstrm-set-output-notify-threshold <replaceable>integer</replaceable>;
fstrm-set-output-queue-model ( mpsc | spsc );
fstrm-set-output-queue-size <replaceable>integer</replaceable>;
fstrm-set-reopen-interval <replaceable>integer</replaceable>;
fstrm-set-reopen-interval <replaceable>ttlval</replaceable>;
geoip-directory ( <replaceable>quoted_string</replaceable> | none );
geoip-use-ecs <replaceable>boolean</replaceable>;
glue-cache <replaceable>boolean</replaceable>;
heartbeat-interval <replaceable>integer</replaceable>;
hostname ( <replaceable>quoted_string</replaceable> | none );
inline-signing <replaceable>boolean</replaceable>;
interface-interval <replaceable>integer</replaceable>;
interface-interval <replaceable>ttlval</replaceable>;
ixfr-from-differences ( primary | master | secondary | slave |
<replaceable>boolean</replaceable> );
keep-response-order { <replaceable>address_match_element</replaceable>; ... };
@@ -318,10 +318,10 @@ options {
masterfile-style ( full | relative );
match-mapped-addresses <replaceable>boolean</replaceable>;
max-cache-size ( default | unlimited | <replaceable>sizeval</replaceable> | <replaceable>percentage</replaceable> );
max-cache-ttl <replaceable>integer</replaceable>;
max-cache-ttl <replaceable>ttlval</replaceable>;
max-clients-per-query <replaceable>integer</replaceable>;
max-journal-size ( default | unlimited | <replaceable>sizeval</replaceable> );
max-ncache-ttl <replaceable>integer</replaceable>;
max-ncache-ttl <replaceable>ttlval</replaceable>;
max-records <replaceable>integer</replaceable>;
max-recursion-depth <replaceable>integer</replaceable>;
max-recursion-queries <replaceable>integer</replaceable>;
@@ -362,6 +362,7 @@ options {
preferred-glue <replaceable>string</replaceable>;
prefetch <replaceable>integer</replaceable> [ <replaceable>integer</replaceable> ];
provide-ixfr <replaceable>boolean</replaceable>;
qname-minimization ( strict | relaxed | disabled );
query-source ( ( [ address ] ( <replaceable>ipv4_address</replaceable> | * ) [ port (
<replaceable>integer</replaceable> | * ) ] ) | ( [ [ address ] ( <replaceable>ipv4_address</replaceable> | * ) ]
port ( <replaceable>integer</replaceable> | * ) ) ) [ dscp <replaceable>integer</replaceable> ];
@@ -401,18 +402,19 @@ options {
response-padding { <replaceable>address_match_element</replaceable>; ... } block-size
<replaceable>integer</replaceable>;
response-policy { zone <replaceable>quoted_string</replaceable> [ log <replaceable>boolean</replaceable> ] [
max-policy-ttl <replaceable>integer</replaceable> ] [ min-update-interval <replaceable>integer</replaceable> ] [
max-policy-ttl <replaceable>ttlval</replaceable> ] [ min-update-interval <replaceable>ttlval</replaceable> ] [
policy ( cname | disabled | drop | given | no-op | nodata |
nxdomain | passthru | tcp-only <replaceable>quoted_string</replaceable> ) ] [
recursive-only <replaceable>boolean</replaceable> ] [ nsip-enable <replaceable>boolean</replaceable> ] [
nsdname-enable <replaceable>boolean</replaceable> ]; ... } [ break-dnssec <replaceable>boolean</replaceable> ] [
max-policy-ttl <replaceable>integer</replaceable> ] [ min-update-interval <replaceable>integer</replaceable> ] [
max-policy-ttl <replaceable>ttlval</replaceable> ] [ min-update-interval <replaceable>ttlval</replaceable> ] [
min-ns-dots <replaceable>integer</replaceable> ] [ nsip-wait-recurse <replaceable>boolean</replaceable> ] [
qname-wait-recurse <replaceable>boolean</replaceable> ] [ recursive-only <replaceable>boolean</replaceable> ] [
nsip-enable <replaceable>boolean</replaceable> ] [ nsdname-enable <replaceable>boolean</replaceable> ] [
dnsrps-enable <replaceable>boolean</replaceable> ] [ dnsrps-options { <replaceable>unspecified-text</replaceable>
} ];
root-delegation-only [ exclude { <replaceable>quoted_string</replaceable>; ... } ];
root-key-sentinel <replaceable>boolean</replaceable>;
rrset-order { [ class <replaceable>string</replaceable> ] [ type <replaceable>string</replaceable> ] [ name
<replaceable>quoted_string</replaceable> ] <replaceable>string</replaceable> <replaceable>string</replaceable>; ... };
secroots-file <replaceable>quoted_string</replaceable>;
@@ -557,7 +559,7 @@ view <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
<replaceable>integer</replaceable> ] [ dscp <replaceable>integer</replaceable> ] { ( <replaceable>masters</replaceable> | <replaceable>ipv4_address</replaceable> [
port <replaceable>integer</replaceable> ] | <replaceable>ipv6_address</replaceable> [ port <replaceable>integer</replaceable> ] ) [ key
<replaceable>string</replaceable> ]; ... } ] [ zone-directory <replaceable>quoted_string</replaceable> ] [
in-memory <replaceable>boolean</replaceable> ] [ min-update-interval <replaceable>integer</replaceable> ]; ... };
in-memory <replaceable>boolean</replaceable> ] [ min-update-interval <replaceable>ttlval</replaceable> ]; ... };
check-dup-records ( fail | warn | ignore );
check-integrity <replaceable>boolean</replaceable>;
check-mx ( fail | warn | ignore );
@@ -595,6 +597,7 @@ view <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
};
dns64-contact <replaceable>string</replaceable>;
dns64-server <replaceable>string</replaceable>;
dnskey-sig-validity <replaceable>integer</replaceable>;
dnsrps-enable <replaceable>boolean</replaceable>;
dnsrps-options { <replaceable>unspecified-text</replaceable> };
dnssec-accept-expired <replaceable>boolean</replaceable>;
@@ -648,10 +651,10 @@ view <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
match-destinations { <replaceable>address_match_element</replaceable>; ... };
match-recursive-only <replaceable>boolean</replaceable>;
max-cache-size ( default | unlimited | <replaceable>sizeval</replaceable> | <replaceable>percentage</replaceable> );
max-cache-ttl <replaceable>integer</replaceable>;
max-cache-ttl <replaceable>ttlval</replaceable>;
max-clients-per-query <replaceable>integer</replaceable>;
max-journal-size ( default | unlimited | <replaceable>sizeval</replaceable> );
max-ncache-ttl <replaceable>integer</replaceable>;
max-ncache-ttl <replaceable>ttlval</replaceable>;
max-records <replaceable>integer</replaceable>;
max-recursion-depth <replaceable>integer</replaceable>;
max-recursion-queries <replaceable>integer</replaceable>;
@@ -686,6 +689,7 @@ view <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
preferred-glue <replaceable>string</replaceable>;
prefetch <replaceable>integer</replaceable> [ <replaceable>integer</replaceable> ];
provide-ixfr <replaceable>boolean</replaceable>;
qname-minimization ( strict | relaxed | disabled );
query-source ( ( [ address ] ( <replaceable>ipv4_address</replaceable> | * ) [ port (
<replaceable>integer</replaceable> | * ) ] ) | ( [ [ address ] ( <replaceable>ipv4_address</replaceable> | * ) ]
port ( <replaceable>integer</replaceable> | * ) ) ) [ dscp <replaceable>integer</replaceable> ];
@@ -720,18 +724,19 @@ view <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
response-padding { <replaceable>address_match_element</replaceable>; ... } block-size
<replaceable>integer</replaceable>;
response-policy { zone <replaceable>quoted_string</replaceable> [ log <replaceable>boolean</replaceable> ] [
max-policy-ttl <replaceable>integer</replaceable> ] [ min-update-interval <replaceable>integer</replaceable> ] [
max-policy-ttl <replaceable>ttlval</replaceable> ] [ min-update-interval <replaceable>ttlval</replaceable> ] [
policy ( cname | disabled | drop | given | no-op | nodata |
nxdomain | passthru | tcp-only <replaceable>quoted_string</replaceable> ) ] [
recursive-only <replaceable>boolean</replaceable> ] [ nsip-enable <replaceable>boolean</replaceable> ] [
nsdname-enable <replaceable>boolean</replaceable> ]; ... } [ break-dnssec <replaceable>boolean</replaceable> ] [
max-policy-ttl <replaceable>integer</replaceable> ] [ min-update-interval <replaceable>integer</replaceable> ] [
max-policy-ttl <replaceable>ttlval</replaceable> ] [ min-update-interval <replaceable>ttlval</replaceable> ] [
min-ns-dots <replaceable>integer</replaceable> ] [ nsip-wait-recurse <replaceable>boolean</replaceable> ] [
qname-wait-recurse <replaceable>boolean</replaceable> ] [ recursive-only <replaceable>boolean</replaceable> ] [
nsip-enable <replaceable>boolean</replaceable> ] [ nsdname-enable <replaceable>boolean</replaceable> ] [
dnsrps-enable <replaceable>boolean</replaceable> ] [ dnsrps-options { <replaceable>unspecified-text</replaceable>
} ];
root-delegation-only [ exclude { <replaceable>quoted_string</replaceable>; ... } ];
root-key-sentinel <replaceable>boolean</replaceable>;
rrset-order { [ class <replaceable>string</replaceable> ] [ type <replaceable>string</replaceable> ] [ name
<replaceable>quoted_string</replaceable> ] <replaceable>string</replaceable> <replaceable>string</replaceable>; ... };
send-cookie <replaceable>boolean</replaceable>;
@@ -824,6 +829,7 @@ view <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
dialup ( notify | notify-passive | passive | refresh |
<replaceable>boolean</replaceable> );
dlz <replaceable>string</replaceable>;
dnskey-sig-validity <replaceable>integer</replaceable>;
dnssec-dnskey-kskonly <replaceable>boolean</replaceable>;
dnssec-loadkeys-interval <replaceable>integer</replaceable>;
dnssec-secure-to-insecure <replaceable>boolean</replaceable>;
@@ -930,6 +936,7 @@ zone <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
delegation-only <replaceable>boolean</replaceable>;
dialup ( notify | notify-passive | passive | refresh | <replaceable>boolean</replaceable> );
dlz <replaceable>string</replaceable>;
dnskey-sig-validity <replaceable>integer</replaceable>;
dnssec-dnskey-kskonly <replaceable>boolean</replaceable>;
dnssec-loadkeys-interval <replaceable>integer</replaceable>;
dnssec-secure-to-insecure <replaceable>boolean</replaceable>;
+62 -40
View File
@@ -32,11 +32,11 @@
#include <isc/httpd.h>
#include <isc/lex.h>
#include <isc/meminfo.h>
#include <isc/nonce.h>
#include <isc/parseint.h>
#include <isc/platform.h>
#include <isc/portset.h>
#include <isc/print.h>
#include <isc/random.h>
#include <isc/refcount.h>
#include <isc/resource.h>
#include <isc/sha2.h>
@@ -3613,8 +3613,7 @@ create_mapped_acl(void) {
if (result != ISC_R_SUCCESS)
return (result);
result = dns_iptable_addprefix(acl->iptable, &addr, 96,
ISC_TRUE, ISC_FALSE);
result = dns_iptable_addprefix(acl->iptable, &addr, 96, ISC_TRUE);
if (result == ISC_R_SUCCESS)
dns_acl_attach(acl, &named_g_mapped);
dns_acl_detach(&acl);
@@ -3691,6 +3690,7 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
isc_dscp_t dscp4 = -1, dscp6 = -1;
dns_dyndbctx_t *dctx = NULL;
unsigned int resolver_param;
const char *qminmode = NULL;
REQUIRE(DNS_VIEW_VALID(view));
@@ -3726,10 +3726,6 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
CHECKM(named_config_getport(config, &port), "port");
dns_view_setdstport(view, port);
CHECK(configure_view_acl(vconfig, config, named_g_config,
"allow-query", NULL, actx,
named_g_mctx, &view->queryacl));
/*
* Make the list of response policy zone names for a view that
* is used for real lookups and so cares about hints.
@@ -4094,7 +4090,7 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
obj = NULL;
result = named_config_get(maps, "max-stale-ttl", &obj);
INSIST(result == ISC_R_SUCCESS);
max_stale_ttl = cfg_obj_asuint32(obj);
max_stale_ttl = ISC_MAX(cfg_obj_asuint32(obj), 1);
obj = NULL;
result = named_config_get(maps, "stale-answer-enable", &obj);
@@ -4640,6 +4636,22 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
INSIST(result == ISC_R_SUCCESS);
view->recursion = cfg_obj_asboolean(obj);
obj = NULL;
result = named_config_get(maps, "qname-minimization", &obj);
INSIST(result == ISC_R_SUCCESS);
qminmode = cfg_obj_asstring(obj);
INSIST(qminmode != NULL);
if (!strcmp(qminmode, "strict")) {
view->qminimization = ISC_TRUE;
view->qmin_strict = ISC_TRUE;
} else if (!strcmp(qminmode, "relaxed")) {
view->qminimization = ISC_TRUE;
view->qmin_strict = ISC_FALSE;
} else { /* "disabled" or "off" */
view->qminimization = ISC_FALSE;
view->qmin_strict = ISC_FALSE;
}
obj = NULL;
result = named_config_get(maps, "auth-nxdomain", &obj);
INSIST(result == ISC_R_SUCCESS);
@@ -4698,21 +4710,35 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
"allow-query-cache-on", NULL, actx,
named_g_mctx, &view->cacheonacl));
/*
* Set "allow-query-cache", "allow-recursion", and
* "allow-recursion-on" acls if configured in named.conf.
* (Ignore the global defaults for now, because these ACLs
* can inherit from each other when only some of them set at
* the options/view level.)
* Set the "allow-query", "allow-query-cache", "allow-recursion",
* and "allow-recursion-on" ACLs if configured in named.conf, but
* NOT from the global defaults. This is done by leaving the third
* argument to configure_view_acl() NULL.
*
* We ignore the global defaults here because these ACLs
* can inherit from each other. If any are still unset after
* applying the inheritance rules, we'll look up the defaults at
* that time.
*/
CHECK(configure_view_acl(vconfig, config, NULL, "allow-query-cache",
NULL, actx, named_g_mctx, &view->cacheacl));
/* named.conf only */
CHECK(configure_view_acl(vconfig, config, NULL,
"allow-query", NULL, actx,
named_g_mctx, &view->queryacl));
/* named.conf only */
CHECK(configure_view_acl(vconfig, config, NULL,
"allow-query-cache", NULL, actx,
named_g_mctx, &view->cacheacl));
if (strcmp(view->name, "_bind") != 0 &&
view->rdclass != dns_rdataclass_chaos)
{
/* named.conf only */
CHECK(configure_view_acl(vconfig, config, NULL,
"allow-recursion", NULL, actx,
named_g_mctx, &view->recursionacl));
/* named.conf only */
CHECK(configure_view_acl(vconfig, config, NULL,
"allow-recursion-on", NULL, actx,
named_g_mctx, &view->recursiononacl));
@@ -4750,18 +4776,21 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
* the global config.
*/
if (view->recursionacl == NULL) {
/* global default only */
CHECK(configure_view_acl(NULL, NULL, named_g_config,
"allow-recursion", NULL,
actx, named_g_mctx,
&view->recursionacl));
}
if (view->recursiononacl == NULL) {
/* global default only */
CHECK(configure_view_acl(NULL, NULL, named_g_config,
"allow-recursion-on", NULL,
actx, named_g_mctx,
&view->recursiononacl));
}
if (view->cacheacl == NULL) {
/* global default only */
CHECK(configure_view_acl(NULL, NULL, named_g_config,
"allow-query-cache", NULL,
actx, named_g_mctx,
@@ -4775,6 +4804,14 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
CHECK(dns_acl_none(mctx, &view->cacheacl));
}
if (view->queryacl == NULL) {
/* global default only */
CHECK(configure_view_acl(NULL, NULL, named_g_config,
"allow-query", NULL,
actx, named_g_mctx,
&view->queryacl));
}
/*
* Ignore case when compressing responses to the specified
* clients. This causes case not always to be preserved,
@@ -4827,7 +4864,7 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
* options/view level.)
*/
if (view->notifyacl == NULL) {
CHECK(configure_view_acl(vconfig, config, named_g_config,
CHECK(configure_view_acl(NULL, NULL, named_g_config,
"allow-notify", NULL, actx,
named_g_mctx, &view->notifyacl));
}
@@ -5671,7 +5708,7 @@ create_view(const cfg_obj_t *vconfig, dns_viewlist_t *viewlist,
if (result != ISC_R_SUCCESS)
return (result);
isc_random_buf(view->secret, sizeof(view->secret));
isc_nonce_buf(view->secret, sizeof(view->secret));
ISC_LIST_APPEND(*viewlist, view, link);
dns_view_attach(view, viewp);
@@ -6262,7 +6299,7 @@ add_listenelt(isc_mem_t *mctx, ns_listenlist_t *list, isc_sockaddr_t *addr,
return (result);
result = dns_iptable_addprefix(src_acl->iptable, &netaddr,
128, ISC_TRUE, ISC_FALSE);
128, ISC_TRUE);
if (result != ISC_R_SUCCESS)
goto clean;
@@ -7910,11 +7947,6 @@ load_configuration(const char *filename, named_server_t *server,
named_geoip_load(NULL);
}
named_g_aclconfctx->geoip = named_g_geoip;
obj = NULL;
result = named_config_get(maps, "geoip-use-ecs", &obj);
INSIST(result == ISC_R_SUCCESS);
env->geoip_use_ecs = cfg_obj_asboolean(obj);
#endif /* HAVE_GEOIP */
/*
@@ -8851,8 +8883,8 @@ load_configuration(const char *filename, named_server_t *server,
}
}
} else {
isc_random_buf(server->sctx->secret,
sizeof(server->sctx->secret));
isc_nonce_buf(server->sctx->secret,
sizeof(server->sctx->secret));
}
/*
@@ -9266,7 +9298,7 @@ shutdown_server(isc_task_t *task, isc_event_t *event) {
*/
static isc_result_t
get_matching_view(isc_netaddr_t *srcaddr, isc_netaddr_t *destaddr,
dns_message_t *message, dns_aclenv_t *env, dns_ecs_t *ecs,
dns_message_t *message, dns_aclenv_t *env,
isc_result_t *sigresult, dns_view_t **viewp)
{
dns_view_t *view;
@@ -9283,9 +9315,6 @@ get_matching_view(isc_netaddr_t *srcaddr, isc_netaddr_t *destaddr,
message->rdclass == dns_rdataclass_any)
{
dns_name_t *tsig = NULL;
isc_netaddr_t *addr = NULL;
isc_uint8_t *scope = NULL;
isc_uint8_t source = 0;
*sigresult = dns_message_rechecksig(message, view);
if (*sigresult == ISC_R_SUCCESS) {
@@ -9295,15 +9324,9 @@ get_matching_view(isc_netaddr_t *srcaddr, isc_netaddr_t *destaddr,
tsig = dns_tsigkey_identity(tsigkey);
}
if (ecs != NULL) {
addr = &ecs->addr;
source = ecs->source;
scope = &ecs->scope;
}
if (dns_acl_allowed(srcaddr, tsig, addr, source,
scope, view->matchclients, env) &&
dns_acl_allowed(destaddr, tsig, NULL, 0, NULL,
if (dns_acl_allowed(srcaddr, tsig,
view->matchclients, env) &&
dns_acl_allowed(destaddr, tsig,
view->matchdestinations, env) &&
!(view->matchrecursiveonly &&
(message->flags & DNS_MESSAGEFLAG_RD) == 0))
@@ -13528,7 +13551,7 @@ generate_salt(unsigned char *salt, size_t saltlen) {
if (saltlen > 256U)
return (ISC_R_RANGE);
isc_random_buf(salt, saltlen);
isc_nonce_buf(salt, saltlen);
r.base = salt;
r.length = (unsigned int) saltlen;
@@ -14420,7 +14443,6 @@ mkey_destroy(named_server_t *server, dns_view_t *view, isc_buffer_t **text) {
return (result);
}
static isc_result_t
mkey_dumpzone(dns_view_t *view, isc_buffer_t **text) {
isc_result_t result;
+2 -2
View File
@@ -3196,8 +3196,8 @@ client_ok(const isc_sockaddr_t *fromaddr, void *arg) {
isc_netaddr_fromsockaddr(&netaddr, fromaddr);
LOCK(&listener->lock);
if (dns_acl_match(&netaddr, NULL, NULL, 0, NULL, listener->acl, env,
&match, NULL) == ISC_R_SUCCESS && match > 0)
if ((dns_acl_match(&netaddr, NULL, listener->acl, env,
&match, NULL) == ISC_R_SUCCESS) && match > 0)
{
UNLOCK(&listener->lock);
return (ISC_TRUE);
+28 -22
View File
@@ -815,11 +815,12 @@ isself(dns_view_t *myview, dns_tsigkey_t *mykey,
tsig = dns_tsigkey_identity(mykey);
}
if (dns_acl_allowed(&netsrc, tsig, NULL, 0, NULL,
view->matchclients, env) &&
dns_acl_allowed(&netdst, tsig, NULL, 0, NULL,
view->matchdestinations, env))
if (dns_acl_allowed(&netsrc, tsig, view->matchclients, env) &&
dns_acl_allowed(&netdst, tsig, view->matchdestinations,
env))
{
break;
}
}
return (ISC_TF(view == myview));
}
@@ -1438,7 +1439,9 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
}
if (ztype == dns_zone_master || raw != NULL) {
const cfg_obj_t *validity, *resign;
isc_boolean_t allow = ISC_FALSE, maint = ISC_FALSE;
isc_boolean_t sigvalinsecs;
obj = NULL;
result = named_config_get(maps, "dnskey-sig-validity", &obj);
@@ -1449,26 +1452,29 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
obj = NULL;
result = named_config_get(maps, "sig-validity-interval", &obj);
INSIST(result == ISC_R_SUCCESS && obj != NULL);
{
const cfg_obj_t *validity, *resign;
validity = cfg_tuple_get(obj, "validity");
seconds = cfg_obj_asuint32(validity) * 86400;
dns_zone_setsigvalidityinterval(zone, seconds);
resign = cfg_tuple_get(obj, "re-sign");
if (cfg_obj_isvoid(resign)) {
seconds /= 4;
} else {
if (seconds > 7 * 86400)
seconds = cfg_obj_asuint32(resign) *
86400;
else
seconds = cfg_obj_asuint32(resign) *
3600;
}
dns_zone_setsigresigninginterval(zone, seconds);
sigvalinsecs = ns_server_getoption(named_g_server->sctx,
NS_SERVER_SIGVALINSECS);
validity = cfg_tuple_get(obj, "validity");
seconds = cfg_obj_asuint32(validity);
if (!sigvalinsecs) {
seconds *= 86400;
}
dns_zone_setsigvalidityinterval(zone, seconds);
resign = cfg_tuple_get(obj, "re-sign");
if (cfg_obj_isvoid(resign)) {
seconds /= 4;
} else if (!sigvalinsecs) {
if (seconds > 7 * 86400) {
seconds = cfg_obj_asuint32(resign) * 86400;
} else {
seconds = cfg_obj_asuint32(resign) * 3600;
}
} else {
seconds = cfg_obj_asuint32(resign);
}
dns_zone_setsigresigninginterval(zone, seconds);
obj = NULL;
result = named_config_get(maps, "key-directory", &obj);
+8 -4
View File
@@ -29,6 +29,7 @@
#include <isc/lex.h>
#include <isc/log.h>
#include <isc/mem.h>
#include <isc/nonce.h>
#include <isc/parseint.h>
#include <isc/print.h>
#include <isc/platform.h>
@@ -2829,14 +2830,16 @@ start_gssrequest(dns_name_t *master) {
fatal("out of memory");
}
memmove(kserver, &master_servers[master_inuse], sizeof(isc_sockaddr_t));
memmove(kserver, &master_servers[master_inuse],
sizeof(isc_sockaddr_t));
servname = dns_fixedname_initname(&fname);
if (realm == NULL)
get_ticket_realm(gmctx);
result = snprintf(servicename, sizeof(servicename), "DNS/%s%s", namestr, realm ? realm : "");
result = snprintf(servicename, sizeof(servicename), "DNS/%s%s",
namestr, realm ? realm : "");
RUNTIME_CHECK(result < sizeof(servicename));
isc_buffer_init(&buf, servicename, strlen(servicename));
isc_buffer_add(&buf, strlen(servicename));
@@ -2848,9 +2851,10 @@ start_gssrequest(dns_name_t *master) {
keyname = dns_fixedname_initname(&fkname);
val = isc_random();
isc_nonce_buf(&val, sizeof(val));
result = snprintf(mykeystr, sizeof(mykeystr), "%u.sig-%s", val, namestr);
result = snprintf(mykeystr, sizeof(mykeystr), "%u.sig-%s", val,
namestr);
RUNTIME_CHECK(result <= sizeof(mykeystr));
isc_buffer_init(&buf, mykeystr, strlen(mykeystr));
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -32,7 +32,7 @@ class dnskey:
_ALGNAMES = (None, 'RSAMD5', 'DH', 'DSA', 'ECC', 'RSASHA1',
'NSEC3DSA', 'NSEC3RSASHA1', 'RSASHA256', None,
'RSASHA512', None, 'ECCGOST', 'ECDSAP256SHA256',
'RSASHA512', None, None, 'ECDSAP256SHA256',
'ECDSAP384SHA384', 'ED25519', 'ED448')
def __init__(self, key, directory=None, keyttl=None):
+2 -8
View File
@@ -71,7 +71,7 @@ class PolicyLex:
return t
def t_ALGNAME(self, t):
r'(?i)\b(RSAMD5|DH|DSA|NSEC3DSA|ECC|RSASHA1|NSEC3RSASHA1|RSASHA256|RSASHA512|ECCGOST|ECDSAP256SHA256|ECDSAP384SHA384|ED25519|ED448)\b'
r'(?i)\b(RSAMD5|DH|DSA|NSEC3DSA|ECC|RSASHA1|NSEC3RSASHA1|RSASHA256|RSASHA512|ECDSAP256SHA256|ECDSAP384SHA384|ED25519|ED448)\b'
t.value = t.value.upper()
return t
@@ -139,7 +139,6 @@ class Policy:
'NSEC3RSASHA1': [512, 4096],
'RSASHA256': [1024, 4096],
'RSASHA512': [1024, 4096],
'ECCGOST': None,
'ECDSAP256SHA256': None,
'ECDSAP384SHA384': None,
'ED25519': None,
@@ -278,8 +277,7 @@ class Policy:
('ZSK key size %d not divisible by 64 ' +
'as required for DSA') % self.zsk_keysize
if self.algorithm in ['ECCGOST', \
'ECDSAP256SHA256', \
if self.algorithm in ['ECDSAP256SHA256', \
'ECDSAP384SHA384', \
'ED25519', \
'ED448']:
@@ -369,10 +367,6 @@ class dnssec_policy:
self.alg_policy['RSASHA512'].algorithm = "RSASHA512"
self.alg_policy['RSASHA512'].name = "RSASHA512"
self.alg_policy['ECCGOST'] = copy(p)
self.alg_policy['ECCGOST'].algorithm = "ECCGOST"
self.alg_policy['ECCGOST'].name = "ECCGOST"
self.alg_policy['ECDSAP256SHA256'] = copy(p)
self.alg_policy['ECDSAP256SHA256'].algorithm = "ECDSAP256SHA256"
self.alg_policy['ECDSAP256SHA256'].name = "ECDSAP256SHA256"
+17 -5
View File
@@ -524,13 +524,25 @@ See also
\fBrndc managed\-keys\fR\&.
.RE
.PP
\fBserve\-stale ( on | off | status | reset ) \fR\fB[\fIclass\fR [\fIview\fR]]\fR
\fBserve\-stale ( on | off | reset | status ) \fR\fB[\fIclass\fR [\fIview\fR]]\fR
.RS 4
Enable, disable, or reset the serving of stale answers as configured in named\&.conf\&. Serving of stale answers will remain disabled across
named\&.conf
reloads if disabled via rndc until it is reset via rndc\&.
Enable, disable, reset, or report the current status of the serving of stale answers as configured in
named\&.conf\&.
.sp
Status will report whether serving of stale answers is currently enabled, disabled or not configured for a view\&. If serving of stale records is configured then the values of stale\-answer\-ttl and max\-stale\-ttl are reported\&.
If serving of stale answers is disabled by
\fBrndc\-serve\-stale off\fR, then it will remain disabled even if
\fBnamed\fR
is reloaded or reconfigured\&.
\fBrndc serve\-stale reset\fR
restores the setting as configured in
named\&.conf\&.
.sp
\fBrndc serve\-stale status\fR
will report whether serving of stale answers is currently enabled, disabled by the configuration, or disabled by
\fBrndc\fR\&. It will also report the values of
\fBstale\-answer\-ttl\fR
and
\fBmax\-stale\-ttl\fR\&.
.RE
.PP
\fBshowzone \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR\fB \fR
+1 -1
View File
@@ -930,7 +930,7 @@ main(int argc, char **argv) {
if (argc < 1)
usage(1);
serial = isc_random();
serial = isc_random32();
DO("create memory context", isc_mem_create(0, 0, &rndc_mctx));
DO("create socket manager", isc_socketmgr_create(rndc_mctx, &socketmgr));
+18 -10
View File
@@ -785,20 +785,28 @@
</varlistentry>
<varlistentry>
<term><userinput>serve-stale ( on | off | status | reset ) <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term>
<term><userinput>serve-stale ( on | off | reset | status ) <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term>
<listitem>
<para>
Enable, disable, or reset the serving of stale answers
as configured in named.conf. Serving of stale answers
will remain disabled across <filename>named.conf</filename>
reloads if disabled via rndc until it is reset via rndc.
Enable, disable, reset, or report the current status
of the serving of stale answers as configured in
<filename>named.conf</filename>.
</para>
<para>
Status will report whether serving of stale answers is
currently enabled, disabled or not configured for a
view. If serving of stale records is configured then
the values of stale-answer-ttl and max-stale-ttl are
reported.
If serving of stale answers is disabled by
<command>rndc-serve-stale off</command>, then it
will remain disabled even if <command>named</command>
is reloaded or reconfigured.
<command>rndc serve-stale reset</command> restores
the setting as configured in <filename>named.conf</filename>.
</para>
<para>
<command>rndc serve-stale status</command> will report
whether serving of stale answers is currently enabled,
disabled by the configuration, or disabled by
<command>rndc</command>. It will also report the
values of <command>stale-answer-ttl</command> and
<command>max-stale-ttl</command>.
</para>
</listitem>
</varlistentry>
+18 -10
View File
@@ -664,20 +664,28 @@
See also <span class="command"><strong>rndc managed-keys</strong></span>.
</p>
</dd>
<dt><span class="term"><strong class="userinput"><code>serve-stale ( on | off | status | reset ) [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
<dt><span class="term"><strong class="userinput"><code>serve-stale ( on | off | reset | status ) [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
<dd>
<p>
Enable, disable, or reset the serving of stale answers
as configured in named.conf. Serving of stale answers
will remain disabled across <code class="filename">named.conf</code>
reloads if disabled via rndc until it is reset via rndc.
Enable, disable, reset, or report the current status
of the serving of stale answers as configured in
<code class="filename">named.conf</code>.
</p>
<p>
Status will report whether serving of stale answers is
currently enabled, disabled or not configured for a
view. If serving of stale records is configured then
the values of stale-answer-ttl and max-stale-ttl are
reported.
If serving of stale answers is disabled by
<span class="command"><strong>rndc-serve-stale off</strong></span>, then it
will remain disabled even if <span class="command"><strong>named</strong></span>
is reloaded or reconfigured.
<span class="command"><strong>rndc serve-stale reset</strong></span> restores
the setting as configured in <code class="filename">named.conf</code>.
</p>
<p>
<span class="command"><strong>rndc serve-stale status</strong></span> will report
whether serving of stale answers is currently enabled,
disabled by the configuration, or disabled by
<span class="command"><strong>rndc</strong></span>. It will also report the
values of <span class="command"><strong>stale-answer-ttl</strong></span> and
<span class="command"><strong>max-stale-ttl</strong></span>.
</p>
</dd>
<dt><span class="term"><strong class="userinput"><code>showzone <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] </code></strong></span></dt>
+5
View File
@@ -0,0 +1,5 @@
/backtrace_test.dSYM/
/backtrace_test0.dSYM/
/backtrace_test_nosymtbl
/backtrace_test_nosymtbl.dSYM/
/nsecify
+1 -1
View File
@@ -64,7 +64,7 @@ PARALLEL = rpzrecurse serve-stale dnssec \
legacy limits logfileconfig \
masterfile masterformat metadata mkeys \
names notify nslookup nsupdate nzd2nzf \
padding pending pipelined \
padding pending pipelined qmin \
reclimit redirect resolver rndc rootkeysentinel rpz \
rrchecker rrl rrsetorder rsabigexponent runtime \
sfcache smartsign sortlist \
+1
View File
@@ -21,3 +21,4 @@ rm -f */named.run
rm -f ns*/named.lock
rm -f ns*/_default.nzf
rm -f ns*/_default.nzd*
rm -f ns*/managed-keys.bind* ns*/*.mkeys*
-60
View File
@@ -1,60 +0,0 @@
/*
* Copyright (C) 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/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
key rndc_key {
secret "1234abcd8765";
algorithm hmac-sha256;
};
controls {
inet 10.53.0.2 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
};
options {
query-source address 10.53.0.2;
notify-source 10.53.0.2;
transfer-source 10.53.0.2;
port @PORT@;
pid-file "named.pid";
listen-on { 10.53.0.2; };
listen-on-v6 { none; };
recursion no;
notify yes;
ixfr-from-differences yes;
check-integrity no;
allow-query-on { 10.53.0.2; };
};
view one {
match-clients { ecs 192.0.2/24; };
zone "." {
type hint;
file "../../common/root.hint";
};
zone "example" {
type master;
file "example.db";
};
};
view two {
zone "." {
type hint;
file "../../common/root.hint";
};
zone "example" {
type master;
file "example.db";
};
};
-30
View File
@@ -144,36 +144,6 @@ $DIG -p ${PORT} +tcp soa example. \
@10.53.0.2 -b 10.53.0.3 > dig.out.${t}
grep "status: NOERROR" dig.out.${t} > /dev/null 2>&1 || { echo_i "test $t failed" ; status=1; }
echo_i "testing EDNS client-subnet ACL processing"
copy_setports ns2/named6.conf.in ns2/named.conf
$RNDCCMD 10.53.0.2 reload 2>&1 | sed 's/^/ns2 /' | cat_i
sleep 5
# should fail
t=`expr $t + 1`
$DIG $DIGOPTS tsigzone. \
@10.53.0.2 -b 10.53.0.2 axfr > dig.out.${t}
grep "^;" dig.out.${t} > /dev/null 2>&1 || { echo_i "test $t failed" ; status=1; }
# should succeed
t=`expr $t + 1`
$DIG $DIGOPTS tsigzone. \
@10.53.0.2 -b 10.53.0.2 +subnet="10.53.0/24" axfr > dig.out.${t}
grep "^;" dig.out.${t} > /dev/null 2>&1 && { echo_i "test $t failed" ; status=1; }
echo_i "testing EDNS client-subnet response scope"
copy_setports ns2/named7.conf.in ns2/named.conf
$RNDCCMD 10.53.0.2 reload 2>&1 | sed 's/^/ns2 /' | cat_i
sleep 5
t=`expr $t + 1`
$DIG -p ${PORT} example. soa @10.53.0.2 +subnet="10.53.0.1/32" > dig.out.${t}
grep "CLIENT-SUBNET.*10.53.0.1/32/0" dig.out.${t} > /dev/null || { echo_i "test $t failed" ; status=1; }
t=`expr $t + 1`
$DIG -p ${PORT} example. soa @10.53.0.2 +subnet="192.0.2.128/32" > dig.out.${t}
grep "CLIENT-SUBNET.*192.0.2.128/32/24" dig.out.${t} > /dev/null || { echo_i "test $t failed" ; status=1; }
# AXFR tests against ns3
echo_i "testing allow-transfer ACLs against ns3 (no existing zones)"
+1
View File
@@ -18,3 +18,4 @@ rm -f */named.memstats
rm -f */named.conf
rm -f */named.run
rm -f ns*/named.lock
rm -f ns*/managed-keys.bind*
@@ -14,6 +14,7 @@ options {
notify-source 10.53.0.1;
transfer-source 10.53.0.1;
recursion no;
dnssec-validation no;
port @PORT@;
pid-file "named.pid";
listen-on { 10.53.0.1; };
@@ -14,6 +14,7 @@ options {
notify-source 10.53.0.1;
transfer-source 10.53.0.1;
recursion no;
dnssec-validation no;
port @PORT@;
pid-file "named.pid";
listen-on { 10.53.0.1; };
@@ -14,6 +14,7 @@ options {
notify-source 10.53.0.1;
transfer-source 10.53.0.1;
recursion no;
dnssec-validation no;
port @PORT@;
pid-file "named.pid";
listen-on { 10.53.0.1; };
@@ -14,6 +14,7 @@ options {
notify-source 10.53.0.1;
transfer-source 10.53.0.1;
recursion no;
dnssec-validation no;
port @PORT@;
pid-file "named.pid";
listen-on { 10.53.0.1; };
@@ -9,27 +9,20 @@
* information regarding copyright ownership.
*/
// NS2
controls { /* empty */ };
options {
query-source address 10.53.0.2;
notify-source 10.53.0.2;
transfer-source 10.53.0.2;
port 5300;
recursion no;
port @PORT@;
pid-file "named.pid";
listen-on { 10.53.0.2; };
listen-on-v6 { none; };
recursion yes;
notify yes;
dnssec-enable yes;
dnssec-validation yes;
notify no;
minimal-responses yes;
};
zone "." {
type hint;
file "../../common/root.hint";
type master;
file "root.db";
};
include "trusted.conf";
+19
View File
@@ -0,0 +1,19 @@
; Copyright (C) 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/.
;
; See the COPYRIGHT file distributed with this work for additional
; information regarding copyright ownership.
. IN SOA ns2. hostmaster ( 2 8H 2H 4W 1D);
. NS ns2.
ns1. A 10.53.0.1
ns2. A 10.53.0.2
rt.example. NS ns1.
naptr.example. NS ns1.
rt2.example. NS ns1.
naptr2.example. NS ns1.
nid.example. NS ns1.
@@ -20,6 +20,7 @@ options {
listen-on { 10.53.0.3; };
listen-on-v6 { none; };
recursion yes;
dnssec-validation yes;
};
zone "." {
+2 -2
View File
@@ -7,5 +7,5 @@
; See the COPYRIGHT file distributed with this work for additional
; information regarding copyright ownership.
. NS ns1.
ns1. A 10.53.0.1
. NS ns2.
ns2. A 10.53.0.2
+1
View File
@@ -14,4 +14,5 @@ SYSTEMTESTTOP=..
$SHELL clean.sh
copy_setports ns1/named1.conf.in ns1/named.conf
copy_setports ns2/named.conf.in ns2/named.conf
copy_setports ns3/named.conf.in ns3/named.conf
+1
View File
@@ -37,3 +37,4 @@ rm -f ns1/redirect.db
rm -f ns2/redirect.db
rm -f ns2/redirect.bk
rm -f ns3/redirect.db
rm -f ns*/managed-keys.bind* ns*/*.mkeys*
+3 -1
View File
@@ -14,7 +14,9 @@
#
rm -f dig.out.*
rm -f ns2/named.conf ns2/controls.conf
rm -f ns*/named.conf
rm -f ns2/controls.conf
rm -f */named.memstats
rm -f ns*/named.lock
rm -f ns*/named.run ns*/named.run.prev
rm -f ns*/managed-keys.bind* ns*/*.mkeys*
@@ -0,0 +1,23 @@
/*
* Copyright (C) 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/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
options {
port @PORT@;
pid-file "named.pid";
listen-on { 10.53.0.1; };
listen-on-v6 { none; };
recursion no;
};
zone "." {
type master;
file "root.db";
};
+16
View File
@@ -0,0 +1,16 @@
; Copyright (C) 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/.
;
; See the COPYRIGHT file distributed with this work for additional
; information regarding copyright ownership.
$TTL 300
@ SOA ns1. hostmaster.localhost. 1 3600 1200 604800 3600
NS ns1.
ns1. A 10.53.0.1
normal.example. NS ns2.normal.example.
ns2.normal.example. A 10.53.0.2
@@ -0,0 +1,2 @@
# this server only has 127.0.0.1 in its localhost/localnets ACLs
-m record,size,mctx -c named.conf -d 99 -X named.lock -g -T clienttest -T fixedlocal
@@ -0,0 +1,24 @@
/*
* Copyright (C) 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/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
options {
port @PORT@;
pid-file "named.pid";
listen-on { 10.53.0.3; };
listen-on-v6 { none; };
recursion yes;
dnssec-validation no;
};
zone "." {
type hint;
file "../../common/root.hint";
};
+2
View File
@@ -13,4 +13,6 @@ SYSTEMTESTTOP=..
. $SYSTEMTESTTOP/conf.sh
copy_setports ../common/controls.conf.in ns2/controls.conf
copy_setports ns1/named.conf.in ns1/named.conf
copy_setports ns2/named01.conf.in ns2/named.conf
copy_setports ns3/named.conf.in ns3/named.conf
+11
View File
@@ -602,5 +602,16 @@ grep '^a.aclnotallow.example' dig.out.ns2.2.$n > /dev/null && ret=1
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
# Test 58 - allow-recursion inheritance
n=`expr $n + 1`
echo_i "test $n: default recursion configuration"
ret=0
$DIG -p ${PORT} @10.53.0.3 -b 127.0.0.1 a.normal.example a > dig.out.ns3.1.$n
grep 'status: NOERROR' dig.out.ns3.1.$n > /dev/null || ret=1
$DIG -p ${PORT} @10.53.0.3 -b 10.53.0.1 a.normal.example a > dig.out.ns3.2.$n
grep 'status: REFUSED' dig.out.ns3.2.$n > /dev/null || ret=1
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
echo_i "exit status: $status"
[ $status -eq 0 ] || exit 1
+1
View File
@@ -13,3 +13,4 @@ rm -f */named.conf
rm -f dig.out.test*
rm -f ns2/example.com.bk
rm -f ns2/example.net.bk
rm -f ns*/managed-keys.bind*
+1
View File
@@ -63,3 +63,4 @@ rm -f nsupdate.out
rm -f settime.out.*
rm -f signing.out.*
rm -f sync.key
rm -f ns*/managed-keys.bind*
+2 -18
View File
@@ -33,28 +33,12 @@ rm $zsknopriv.private
ksksby=`$KEYGEN -3 -a RSASHA1 -q -P now -A now+15s -fk $zone`
kskrev=`$KEYGEN -3 -a RSASHA1 -q -R now+15s -fk $zone`
cat $ksksby.key | grep -v '^; ' | $PERL -n -e '
local ($dn, $class, $type, $flags, $proto, $alg, @rest) = split;
local $key = join("", @rest);
print <<EOF
trusted-keys {
"$dn" $flags $proto $alg "$key";
};
EOF
' > trusted.conf
keyfile_to_trusted_keys $ksksby > trusted.conf
cp trusted.conf ../ns2/trusted.conf
cp trusted.conf ../ns3/trusted.conf
cp trusted.conf ../ns4/trusted.conf
cat $kskrev.key | grep -v '^; ' | $PERL -n -e '
local ($dn, $class, $type, $flags, $proto, $alg, @rest) = split;
local $key = join("", @rest);
print <<EOF
trusted-keys {
"$dn" $flags $proto $alg "$key";
};
EOF
' > trusted.conf
keyfile_to_trusted_keys $kskrev > trusted.conf
cp trusted.conf ../ns5/trusted.conf
echo $zskact > ../active.key
+1 -9
View File
@@ -36,15 +36,7 @@ zonefile="${zone}.db"
infile="${zonefile}.in"
ksk=`$KEYGEN -a RSASHA1 -3 -q -fk $zone`
$KEYGEN -a RSASHA1 -3 -q $zone > /dev/null
cat $ksk.key | grep -v '^; ' | $PERL -n -e '
local ($dn, $class, $type, $flags, $proto, $alg, @rest) = split;
local $key = join("", @rest);
print <<EOF
trusted-keys {
"$dn" $flags $proto $alg "$key";
};
EOF
' > private.conf
keyfile_to_trusted_keys $ksk > private.conf
cp private.conf ../ns4/private.conf
$SIGNER -S -3 beef -A -o $zone -f $zonefile $infile > /dev/null 2>&1
+1
View File
@@ -15,3 +15,4 @@ rm -f ns?/named.conf
rm -f rndc.status.ns*
rm -f dig.out.ns*
rm -f ns*/named.lock
rm -f ns*/managed-keys.bind*
+1
View File
@@ -21,3 +21,4 @@ rm -f */named.run
rm -f */named.conf
rm -f ns2/named_dump.db.*
rm -f ns*/named.lock
rm -f ns*/managed-keys.bind*
@@ -18,6 +18,7 @@ options {
listen-on { 10.53.0.1; };
listen-on-v6 { none; };
recursion no;
dnssec-validation no;
notify yes;
check-integrity no;
minimal-responses no;
@@ -20,6 +20,8 @@ options {
notify yes;
max-cache-size 80%;
disable-empty-zone 127.IN-ADDR.ARPA;
recursion yes;
dnssec-validation yes;
};
key rndc_key {
+1
View File
@@ -19,3 +19,4 @@ rm -f ns1/dynamic.db.jnl
rm -f ns2/dynamic.bk
rm -f ns2/dynamic.bk.jnl
rm -f ns2/example.bk
rm -f ns*/managed-keys.bind*
+3 -2
View File
@@ -17,8 +17,9 @@ rm -f ns*/named.run
rm -f ns1/*dom*example.db
rm -f ns2/__catz__*db
rm -f ns2/named.conf.tmp
rm -f ns3/dom{13,14}.example.db
rm -f ns3/dom13.example.db ns3/dom14.example.db
rm -f nsupdate.out.*
rm -f ns{1,2,3}/catalog{1,2,3,4}.example.db
rm -f ns[123]/catalog[1234].example.db
rm -rf ns2/zonedir
rm -f ns*/*.nzd ns*/*.nzd-lock
rm -f ns*/managed-keys.bind*
+1
View File
@@ -13,3 +13,4 @@ rm -f dig.out.* named*.pid
rm -f ns*/named.conf
rm -f */named.memstats */named.recursing */named.lock */named.run */ans.run
rm -f ns2/K* ns2/dsset-* ns2/example.db.signed
rm -f ns*/managed-keys.bind*
+1 -1
View File
@@ -18,8 +18,8 @@ options {
listen-on { 10.53.0.1; };
listen-on-v6 { none; };
recursion no;
dnssec-validation yes;
notify yes;
dnssec-enable yes;
};
zone "." { type master; file "root.db"; };
+1
View File
@@ -20,6 +20,7 @@ options {
listen-on { 10.53.0.2; };
listen-on-v6 { none; };
recursion no;
dnssec-validation no;
notify yes;
};
+1
View File
@@ -20,6 +20,7 @@ options {
listen-on { 10.53.0.5; };
listen-on-v6 { none; };
recursion no;
dnssec-validation no;
notify yes;
};
+1
View File
@@ -20,6 +20,7 @@ options {
listen-on-v6 { fd92:7065:b8e:ffff::7; };
recursion yes;
allow-recursion { any; };
dnssec-validation yes;
};
key rndc_key {
@@ -0,0 +1,14 @@
/*
* Copyright (C) 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/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
options {
geoip-use-ecs yes;
};
+8
View File
@@ -396,5 +396,13 @@ grep "trusted-key for dlv.isc.org still present" checkconf.out$n > /dev/null ||
if [ $ret != 0 ]; then echo_i "failed"; ret=1; fi
status=`expr $status + $ret`
echo_i "check that 'geoip-use-ecs no' generates a warning ($n)"
ret=0
$CHECKCONF warn-geoip-use-ecs.conf > checkconf.out$n 2>/dev/null || ret=1
[ -s checkconf.out$n ] || ret=1
grep "'geoip-use-ecs' is obsolete" checkconf.out$n > /dev/null || ret=1
if [ $ret != 0 ]; then echo_i "failed"; ret=1; fi
status=`expr $status + $ret`
echo_i "exit status: $status"
[ $status -eq 0 ] || exit 1
@@ -0,0 +1,14 @@
/*
* Copyright (C) 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/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
options {
geoip-use-ecs no;
};
+1
View File
@@ -20,3 +20,4 @@ rm -f ns4/*.update.db.jnl
rm -f */named.memstats
rm -f */named.run
rm -f ns*/named.lock
rm -f ns*/managed-keys.bind*
@@ -18,6 +18,7 @@ options {
listen-on { 10.53.0.1; };
listen-on-v6 { none; };
recursion no;
dnssec-validation no;
notify yes;
check-integrity no;
};
@@ -18,6 +18,7 @@ options {
listen-on { 10.53.0.2; };
listen-on-v6 { none; };
recursion yes;
dnssec-validation yes;
check-names response warn;
notify yes;
};
@@ -18,6 +18,7 @@ options {
listen-on { 10.53.0.3; };
listen-on-v6 { none; };
recursion yes;
dnssec-validation yes;
check-names response fail;
notify yes;
};
@@ -18,6 +18,7 @@ options {
listen-on { 10.53.0.4; };
listen-on-v6 { none; };
recursion yes;
dnssec-validation yes;
check-names master ignore;
notify yes;
};
+40 -5
View File
@@ -71,12 +71,12 @@ KRB5_CONFIG=/dev/null
# The "stress" test is not run by default since it creates enough
# load on the machine to make it unusable to other users.
# The "dialup" and "delzone" tests are also not run by default because
# they take a very long time to complete.
# The "dialup", "delzone", and "dupsigs" tests are also not run by
# default because they take a very long time to complete.
#
# List of tests hard-coded to use ports 5300 and 9953. For this
# reason, these must be run sequentially.
SEQUENTIALDIRS="ecdsa eddsa gost @PKCS11_TEST@ tkey"
SEQUENTIALDIRS="ecdsa eddsa @PKCS11_TEST@ tkey"
# List of tests that use ports assigned by caller (other than 5300
# and 9953). Because separate blocks of ports can be used for teach
@@ -95,7 +95,7 @@ PARALLELDIRS="acl additional addzone allow-query auth autosign \
legacy limits logfileconfig \
masterfile masterformat metadata mkeys \
names notify nslookup nsupdate nzd2nzf \
padding pending pipelined \
padding pending pipelined qmin \
reclimit redirect resolver rndc rootkeysentinel rpz rpzrecurse \
rrchecker rrl rrsetorder rsabigexponent runtime \
serve-stale sfcache smartsign sortlist \
@@ -163,7 +163,7 @@ NZD=@NZD_TOOLS@
#
# Set up color-coded test output
#
if [ ${SYSTEMTEST_FORCE_COLOR:-0} -eq 1 ] || test -t 1 && type tput > /dev/null 2>&1 ; then
if [ ${SYSTEMTEST_FORCE_COLOR:-0} -eq 1 ] || test -t 1 && type tput > /dev/null 2>&1 && tput setaf 7 > /dev/null 2>&1 ; then
COLOR_END=`tput setaf 4` # blue
COLOR_FAIL=`tput setaf 1` # red
COLOR_INFO=`tput bold` # bold
@@ -254,6 +254,41 @@ digcomp() {
# Useful functions in test scripts
#
# keyfile_to_keys_section: helper function for keyfile_to_*_keys() which
# converts keyfile data into a configuration section using the supplied
# parameters
keyfile_to_keys_section() {
section_name=$1
key_prefix=$2
shift
shift
echo "$section_name {"
for keyname in $*; do
awk '!/^; /{
printf "\t\""$1"\" "
printf "'"$key_prefix"'"
printf $4 " " $5 " " $6 " \""
for (i=7; i<=NF; i++) printf $i
printf "\";\n"
}' $keyname.key
done
echo "};"
}
# keyfile_to_trusted_keys: convert key data contained in the keyfile(s)
# provided to a "trusted-keys" section suitable for including in a
# resolver's configuration file
keyfile_to_trusted_keys() {
keyfile_to_keys_section "trusted-keys" "" $*
}
# keyfile_to_managed_keys: convert key data contained in the keyfile(s)
# provided to a "managed-keys" section suitable for including in a
# resolver's configuration file
keyfile_to_managed_keys() {
keyfile_to_keys_section "managed-keys" "initial-key " $*
}
# nextpart: read everything that's been appended to a file since the
# last time 'nextpart' was called.
nextpart () {
+48 -6
View File
@@ -77,7 +77,8 @@ KRB5_CONFIG=NUL
# The "stress" test is not run by default since it creates enough
# load on the machine to make it unusable to other users.
# v6synth
# The "dialup", "delzone", and "dupsigs" tests are also not run by
# default because they take a very long time to complete.
#
# List of tests that use ports 5300 and 9953. For this reason, these must
# be run sequentially.
@@ -87,11 +88,11 @@ SEQUENTIALDIRS="acl additional addzone autosign builtin \
database digdelv dlv dlvauto dlz dlzexternal dname \
dns64 dnssec @DNSTAP@ dscp dsdigest dyndb ecdsa eddsa \
ednscompliance emptyzones \
fetchlimit filter-aaaa formerr forward geoip glue gost idna inline ixfr \
fetchlimit filter-aaaa formerr forward geoip glue idna inline ixfr \
keepalive @KEYMGR@ legacy limits logfileconfig masterfile \
masterformat metadata mkeys names notify nslookup nsupdate \
nzd2nzf padding pending pipelined @PKCS11_TEST@ reclimit \
redirect resolver rndc rpz rrchecker rrl \
nzd2nzf padding pending pipelined @PKCS11_TEST@ qmin \
reclimit redirect resolver rndc rpz rrchecker rrl \
rrsetorder rsabigexponent runtime sfcache smartsign sortlist \
spf staticstub statistics statschannel stub tcp tkey tsig \
tsiggss unknown upforwd verify views wildcard xfer xferquota \
@@ -199,11 +200,17 @@ echoend () {
printf "${COLOR_END}%s${COLOR_NONE}\n" "$*"
}
TESTNAME="`basename $PWD`"
SYSTESTDIR="`basename $PWD`"
echo_i() {
echo "$@" | while read LINE ; do
echoinfo "I:$TESTNAME:$LINE"
echoinfo "I:$SYSTESTDIR:$LINE"
done
}
echo_ic() {
echo "$@" | while read LINE ; do
echoinfo "I:$SYSTESTDIR: $LINE"
done
}
@@ -224,6 +231,41 @@ digcomp() {
# Useful functions in test scripts
#
# keyfile_to_keys_section: helper function for keyfile_to_*_keys() which
# converts keyfile data into a configuration section using the supplied
# parameters
keyfile_to_keys_section() {
section_name=$1
key_prefix=$2
shift
shift
echo "$section_name {"
for keyname in $*; do
awk '!/^; /{
printf "\t\""$1"\" "
printf "'"$key_prefix"'"
printf $4 " " $5 " " $6 " \""
for (i=7; i<=NF; i++) printf $i
printf "\";\n"
}' $keyname.key
done
echo "};"
}
# keyfile_to_trusted_keys: convert key data contained in the keyfile(s)
# provided to a "trusted-keys" section suitable for including in a
# resolver's configuration file
keyfile_to_trusted_keys() {
keyfile_to_keys_section "trusted-keys" "" $*
}
# keyfile_to_managed_keys: convert key data contained in the keyfile(s)
# provided to a "managed-keys" section suitable for including in a
# resolver's configuration file
keyfile_to_managed_keys() {
keyfile_to_keys_section "managed-keys" "initial-key " $*
}
# nextpart: read everything that's been appended to a file since the
# last time 'nextpart' was called.
nextpart () {
+1
View File
@@ -13,3 +13,4 @@ rm -f ns1/named_dump.db
rm -f ns*/named.memstats
rm -f ns*/named.run
rm -f ns*/named.lock
rm -f ns*/managed-keys.bind*
@@ -27,6 +27,7 @@ options {
listen-on { 10.53.0.1; };
listen-on-v6 { none; };
recursion yes;
dnssec-validation yes;
deny-answer-addresses { 192.0.2.0/24; 2001:db8:beef::/48; }
except-from { "example.org"; };
deny-answer-aliases { "example.org"; }
@@ -18,6 +18,7 @@ options {
listen-on { 10.53.0.2; };
listen-on-v6 { none; };
recursion no;
dnssec-validation no;
send-cookie yes;
nocookie-udp-size 512;
};
@@ -27,6 +27,7 @@ options {
listen-on { 10.53.0.3; };
listen-on-v6 { none; };
recursion yes;
dnssec-validation yes;
deny-answer-addresses { 192.0.2.0/24; 2001:db8:beef::/48; }
except-from { "example.org"; };
deny-answer-aliases { "example.org"; }
@@ -27,6 +27,7 @@ options {
listen-on { 10.53.0.4; };
listen-on-v6 { none; };
recursion yes;
dnssec-validation yes;
cookie-algorithm sha1;
cookie-secret "569d36a6cc27d6bf55502183302ba352745255a2";
require-server-cookie yes;

Some files were not shown because too many files have changed in this diff Show More