Compare commits

...
54 Commits
Author SHA1 Message Date
Brian ConryandOndřej Surý 740c8050b4 Bump the maximum TCP timeout to 65535 [RT #44710] 2017-10-25 14:15:04 +04:00
Evan Hunt eb2ef7b53e [master] check new-zones-directory
4789.	[cleanup]	Check writability of new-zones-directory. [RT #46308]
2017-10-25 01:19:46 -07:00
Evan Hunt aebdc6cd7d [master] log when update-policy local gets a key match from a remote host
4788.	[cleanup]	When using "update-policy local", log a warning
			when an update matching the session key is received
			from a remote host. [RT #46213]

- this completes change #4762.
2017-10-25 00:58:11 -07:00
Michał Kępień 910a01550a [master] Rename nsec3param_salt_totext() to dns_nsec3param_salttotext(), make it public, add unit tests
4786.	[cleanup]	Turn nsec3param_salt_totext() into a public function,
			dns_nsec3param_salttotext(), and add unit tests for it.
			[RT #46289]
2017-10-25 09:46:18 +02:00
Evan Hunt 65314b0fd8 [master] "enable-filter-aaaa" no longer optional
4786.	[func]		The "filter-aaaa-on-v4" and "filter-aaaa-on-v6"
			options are no longer conditionally compiled.
			[RT #46340]
2017-10-25 00:33:51 -07:00
Mark Andrews 80739779fc read dig.out.ns3.test$n rather than dig.out.ns2.test$n 2017-10-25 15:02:36 +11:00
Tinderbox User a53e03205a regen master 2017-10-25 01:08:58 +00:00
Tinderbox User ea055a82cd update copyright notice / whitespace 2017-10-24 23:47:14 +00:00
Tinderbox User 89c95e7141 newcopyrights 2017-10-24 23:30:30 +00:00
Mark Andrews 79e78994d0 add missing semicolon 2017-10-25 10:29:10 +11:00
Evan Hunt 21761bfe79 [master] deprecate HMAC in dnssec-keygen, MD5 in rndc-confgen
4785.	[func]		The hmac-md5 algorithm is no longer recommended for
			use with RNDC keys. For compatibility reasons, it
			it is still the default algorithm in rndc-confgen,
			but this will be changed to hmac-sha256 in a future
			release. [RT #42272]

4784.	[func]		The use of dnssec-keygen to generate HMAC keys is
			deprecated in favor of tsig-keygen.  dnssec-keygen
			will print a warning when used for this purpose.
			All HMAC algorithms will be removed from
			dnssec-keygen in a future release. [RT #42272]
2017-10-24 15:35:13 -07:00
Mark Andrews 969d923536 4783. [test] dnssec: 'check that NOTIFY is sent at the end of
NSEC3 chain generation failed' required more time
                        on some machines for the IXFR to complete. [RT #46388]
2017-10-25 09:21:14 +11:00
Mark Andrews 6b8e4d6e69 4782. [test] dnssec: 'checking positive and negative validation
with negative trust anchors' required more time to
                        complete on some machines. [RT #46386]
2017-10-25 09:13:05 +11:00
Michał Kępień a94d68ce43 [master] Remove REQUIRE preventing change 4592 from working
Change 4592 was supposed to replace a REQUIRE with a conditional return.
While the latter was added, the former was not removed.  Remove the
relevant REQUIRE to fix RT #43822 for good.
2017-10-24 21:11:31 +02:00
Evan Hunt 7810817b71 [master] update B.ROOT-SERVERS.NET 2017-10-24 09:17:08 -07:00
Mark Andrews b49042a6a5 report test number 2017-10-24 15:02:00 +11:00
Evan Hunt b1042e011c [master] zone "file" option was undocumented 2017-10-23 19:39:56 -07:00
Evan Hunt 0207f6ff9e [master] omit NS from authority section if it was in answer
4780.	[bug]		When answering ANY queries, don't include the NS
			RRset in the authority section if it was already
			in the answer section. [RT #44543]
2017-10-23 19:16:27 -07:00
Mark Andrews 65f8b51893 remove named.memstats and named.run 2017-10-24 12:51:03 +11:00
Mark Andrews 5bead588b7 report if named.run or named.memstats not removed after successful test 2017-10-24 12:45:13 +11:00
Mark Andrews 3f2e5f840a update 2017-10-24 10:41:13 +11:00
Mark Andrews c9438ee2e0 4779. [bug] Expire NTA at the start of the second. Don't update
the expiry value if the record has already expired
                        after a successful check. [RT #46368]
2017-10-24 09:54:25 +11:00
Mark Andrews a59d687db4 4778. [test] Improve synth-from-dnssec testing. [RT #46352] 2017-10-24 09:49:07 +11:00
Evan Hunt 89636d8f30 [master] clean up a redundancy
4777.	[cleanup]	Removed a redundant call to configure_view_acl().
			[RT #46369]
2017-10-23 11:11:19 -07:00
Michał Kępień 34ee1cdb56 [master] Extend hooks documentation 2017-10-23 14:17:44 +02:00
Michał Kępień 6853af8fc5 [master] Deconstify hook tables as replacing single entries is allowed 2017-10-23 14:17:07 +02:00
Tinderbox User 2e662cf514 regen master 2017-10-22 01:10:28 +00:00
Evan Hunt 321b8429f5 [master] doc nit: Base64 is capitalized and not hyphenated 2017-10-21 13:28:38 -07:00
Evan Hunt 172aa40e8f [master] add DNS_RPZ_MAX_ZONES to OPTIONS 2017-10-21 13:27:55 -07:00
Tinderbox User 0fc861dea9 regen master 2017-10-21 01:13:05 +00:00
Evan Hunt b284857f96 [master] mapapi should have been bumped when rbtdb changed 2017-10-20 09:39:55 -07:00
Mark Andrews 807ad469fe use correct tag
(cherry picked from commit 317330c25a)
2017-10-20 19:06:28 +11:00
Mark Andrews 5ff48dca18 #include <inttypes.h> 2017-10-20 16:36:07 +11:00
Mark Andrews 66258ca349 4776. [bug] Improve portability of ht_test. [RT #46333] 2017-10-20 16:04:59 +11:00
Tinderbox User 2115e319ba regen master 2017-10-20 01:09:53 +00:00
Tinderbox User 429a43b720 update copyright notice / whitespace 2017-10-19 23:46:02 +00:00
Tinderbox User bf9b90f977 newcopyrights 2017-10-19 23:30:21 +00:00
Mark Andrews d8442c1a15 s/made/may/ 2017-10-20 10:29:24 +11:00
Mark Andrews 9e5439a6d8 note removal of <isc/util.h> from other header files 2017-10-20 10:25:45 +11:00
Mark Andrews 0fab171196 s/REQUIRE/ISC_REQUIRE/; include <isc/assertions.h> if ISC_REQUIRE is used; include <isc/likely.h> if ISC_{UN}LIKELY is used 2017-10-19 16:39:53 +11:00
Mark Andrews 583e355951 4775. [bug] Address Coverity warnings in ht_test.c and mem_test.c
[RT #46281]
2017-10-19 13:08:31 +11:00
Mark Andrews fe79e2efbf 4774. [bug] <isc/util.h> was incorrectly included in several
header files. [RT #46311]
2017-10-19 12:26:32 +11:00
Tinderbox User b7b8e298f6 regen master 2017-10-19 01:09:18 +00:00
Evan Hunt d99d5249b7 [master] clarify releates notes about deprecated/ineffective options 2017-10-18 12:41:25 -07:00
Tinderbox User 208abf3fc7 regen master 2017-10-18 01:10:52 +00:00
Tinderbox User 6e87e723a4 update copyright notice / whitespace 2017-10-17 23:47:21 +00:00
Tinderbox User 4f554c2445 newcopyrights 2017-10-17 23:30:15 +00:00
Evan Hunt 30419509dd [master] README and relnote fixes 2017-10-17 13:47:33 -07:00
Michał Kępień 2361003a88 [master] Doxygen fixes and cleanups
4773.	[doc]		Fixed generating Doxygen documentation for functions
			annotated using certain macros.  Miscellaneous
			Doxygen-related cleanups. [RT #46276]
2017-10-17 06:56:46 +02:00
Tinderbox User 94d96121b9 regen master 2017-10-17 01:08:55 +00:00
Evan Hunt 31275c3f39 [master] fixes to release notes
- some typos
- call out removed features in a "Removed Features" section
- mention TAT logging
2017-10-16 17:46:12 -07:00
Evan Hunt d63943f063 [master] fixes to release notes
- fixed some typos
- call out feature removals in a "Removed Features" section
- TAT logging
2017-10-16 17:45:08 -07:00
Tinderbox User ebf5459c44 newcopyrights 2017-10-16 23:30:10 +00:00
Michał Kępień 9d47a267c4 [master] Regenerate presigned zone for the filter-aaaa system test [RT #46283]
This change is only applied to master for consistency with other
branches, where it is required to fix the filter-aaaa system test for
builds without DNSSEC support.
2017-10-16 09:38:34 +02:00
122 changed files with 1868 additions and 931 deletions
+61
View File
@@ -1,3 +1,64 @@
4789. [cleanup] Check writability of new-zones-directory. [RT #46308]
4788. [cleanup] When using "update-policy local", log a warning
when an update matching the session key is received
from a remote host. [RT #46213]
4787. [cleanup] Turn nsec3param_salt_totext() into a public function,
dns_nsec3param_salttotext(), and add unit tests for it.
[RT #46289]
4786. [func] The "filter-aaaa-on-v4" and "filter-aaaa-on-v6"
options are no longer conditionally compiled.
[RT #46340]
4785. [func] The hmac-md5 algorithm is no longer recommended for
use with RNDC keys. For compatibility reasons, it
it is still the default algorithm in rndc-confgen,
but this will be changed to hmac-sha256 in a future
release. [RT #42272]
4784. [func] The use of dnssec-keygen to generate HMAC keys is
deprecated in favor of tsig-keygen. dnssec-keygen
will print a warning when used for this purpose.
All HMAC algorithms will be removed from
dnssec-keygen in a future release. [RT #42272]
4783. [test] dnssec: 'check that NOTIFY is sent at the end of
NSEC3 chain generation failed' required more time
on some machines for the IXFR to complete. [RT #46388]
4782. [test] dnssec: 'checking positive and negative validation
with negative trust anchors' required more time to
complete on some machines. [RT #46386]
4781. [maint] B.ROOT-SERVERS.NET is now 199.9.14.201. [RT #45889]
4780. [bug] When answering ANY queries, don't include the NS
RRset in the authority section if it was already
in the answer section. [RT #44543]
4779. [bug] Expire NTA at the start of the second. Don't update
the expiry value if the record has already expired
after a successful check. [RT #46368]
4778. [test] Improve synth-from-dnssec testing. [RT #46352]
4777. [cleanup] Removed a redundant call to configure_view_acl().
[RT #46369]
4776. [bug] Improve portability of ht_test. [RT #46333]
4775. [bug] Address Coverity warnings in ht_test.c and mem_test.c
[RT #46281]
4774. [bug] <isc/util.h> was incorrectly included in several
header files. [RT #46311]
4773. [doc] Fixed generating Doxygen documentation for functions
annotated using certain macros. Miscellaneous
Doxygen-related cleanups. [RT #46276]
--- 9.12.0b1 released --- --- 9.12.0b1 released ---
4772. [test] Expanded unit testing framework for libns, using 4772. [test] Expanded unit testing framework for libns, using
+3
View File
@@ -19,4 +19,7 @@ Setting Description
named-checkzone named-checkzone
-DNS_RUN_PID_DIR=0 Create default PID files in ${localstatedir}/run -DNS_RUN_PID_DIR=0 Create default PID files in ${localstatedir}/run
rather than ${localstatedir}/run/named/ rather than ${localstatedir}/run/named/
Increase the maximum number of configurable
-DNS_RPZ_MAX_ZONES=64 response policy zones from 32 to 64; this is the
highest possible setting
+1
View File
@@ -20,3 +20,4 @@ Some of these settings are:
|`-DCHECK_SIBLING=0`|Don't check sibling glue in `named-checkzone`| |`-DCHECK_SIBLING=0`|Don't check sibling glue in `named-checkzone`|
|`-DCHECK_LOCAL=0`|Don't check out-of-zone addresses in `named-checkzone`| |`-DCHECK_LOCAL=0`|Don't check out-of-zone addresses in `named-checkzone`|
|`-DNS_RUN_PID_DIR=0`|Create default PID files in `${localstatedir}/run` rather than `${localstatedir}/run/named/`| |`-DNS_RUN_PID_DIR=0`|Create default PID files in `${localstatedir}/run` rather than `${localstatedir}/run/named/`|
|`-DNS_RPZ_MAX_ZONES=64`|Increase the maximum number of configurable response policy zones from 32 to 64; this is the highest possible setting|
+26 -23
View File
@@ -56,12 +56,12 @@ General bug reports can be sent to bind9-bugs@isc.org.
Feature requests can be sent to bind-suggest@isc.org. Feature requests can be sent to bind-suggest@isc.org.
Please note that, while ISC's ticketing system is not currently publicly Please note that, while tickets submitted to ISC's ticketing system are
readable, this may change in the future. Please do not include information not initially publicly readable by default, they can be made publicly
in bug reports that you consider to be confidential. For example, when acessible afterward. Please do not include information in bug reports that
sending the contents of your configuration file, it is advisable to you consider to be confidential. In particular, when sending the contents
obscure key secrets; this can be done automatically by using of your configuration file, it is advisable to obscure key secrets: this
named-checkconf -px. can be done automatically by using named-checkconf -px.
Professional support and training for BIND are available from ISC at Professional support and training for BIND are available from ISC at
https://www.isc.org/support. https://www.isc.org/support.
@@ -75,8 +75,9 @@ mailman/listinfo/bind-workers.
Contributing to BIND Contributing to BIND
A public git repository for BIND is maintained at http://www.isc.org/git/, ISC maintains a public git repository for BIND; details can be found at
and also on Github at https://github.com/isc-projects. http://www.isc.org/git/, and also on Github at https://github.com/
isc-projects.
Information for BIND contributors can be found in the following files: - Information for BIND contributors can be found in the following files: -
General information: doc/dev/contrib.md - BIND 9 code style: doc/dev/ General information: doc/dev/contrib.md - BIND 9 code style: doc/dev/
@@ -103,10 +104,8 @@ include:
* Cached, validated NSEC and other records can now be used to synthesize * Cached, validated NSEC and other records can now be used to synthesize
NXDOMAIN responses. NXDOMAIN responses.
* The DNS Response Policy Service API (DNSRPS) is now supported. * The DNS Response Policy Service API (DNSRPS) is now supported.
* Setting max-journal-size default now limits the size of journal files * Setting 'max-journal-size default' now limits the size of journal
to twice the size of the zone. files to twice the size of the zone.
* The query handling code has been substantially refactored for improved
readability, maintainability and testability .
* dnstap-read -x prints a hex dump of the wire format of each logged DNS * dnstap-read -x prints a hex dump of the wire format of each logged DNS
message. message.
* dnstap output files can now be configured to roll automatically when * dnstap output files can now be configured to roll automatically when
@@ -115,7 +114,7 @@ include:
ISO 8601 (UTC) formats. ISO 8601 (UTC) formats.
* Logging channels and dnstap output files can now be configured to use * Logging channels and dnstap output files can now be configured to use
a timestamp as the suffix when rolling to a new file. a timestamp as the suffix when rolling to a new file.
* named-checkconf -l lists zones found in named.conf. * 'named-checkconf -l' lists zones found in named.conf.
* Added support for the EDNS Padding and Keepalive options. * Added support for the EDNS Padding and Keepalive options.
* 'new-zones-directory' option sets the location where the configuration * 'new-zones-directory' option sets the location where the configuration
data for zones added by rndc addzone is stored data for zones added by rndc addzone is stored
@@ -189,10 +188,11 @@ smaller systems.
For the server to support DNSSEC, you need to build it with crypto For the server to support DNSSEC, you need to build it with crypto
support. To use OpenSSL, you should have OpenSSL 1.0.2e or newer support. To use OpenSSL, you should have OpenSSL 1.0.2e or newer
installed. If the OpenSSL library is installed in a nonstandard location, installed. If the OpenSSL library is installed in a nonstandard location,
specify the prefix using "--with-openssl=/prefix" on the configure command specify the prefix using "--with-openssl=<PREFIX>" on the configure
line. To use a PKCS#11 hardware service module for cryptographic command line. To use a PKCS#11 hardware service module for cryptographic
operations, specify the path to the PKCS#11 provider library using operations, specify the path to the PKCS#11 provider library using
"--with-pkcs11=/prefix", and configure BIND with "--enable-native-pkcs11". "--with-pkcs11=<PREFIX>", and configure BIND with
"--enable-native-pkcs11".
To support the HTTP statistics channel, the server must be linked with at To support the HTTP statistics channel, the server must be linked with at
least one of the following: libxml2 http://xmlsoft.org or json-c https:// least one of the following: libxml2 http://xmlsoft.org or json-c https://
@@ -212,13 +212,16 @@ libGeoIP. This is not turned on by default; BIND must be configured with
"--with-geoip". If the library is installed in a nonstandard location, use "--with-geoip". If the library is installed in a nonstandard location, use
specify the prefix using "--with-geoip=/prefix". specify the prefix using "--with-geoip=/prefix".
For DNSTAP packet logging, you must have libfstrm https://github.com/ For DNSTAP packet logging, you must have installed libfstrm https://
farsightsec/fstrm and libprotobuf-c https://developers.google.com/ github.com/farsightsec/fstrm and libprotobuf-c https://
protocol-buffers, and BIND must be configured with "--enable-dnstap". developers.google.com/protocol-buffers, and BIND must be configured with
"--enable-dnstap".
Python requires the 'argparse' and 'ply' modules to be available. Portions of BIND that are written in Python, including dnssec-keymgr,
'argparse' is a standard module as of Python 2.7 and Python 3.2. 'ply' is dnssec-coverage, dnssec-checkds, and some of the system tests, require the
available from https://pypi.python.org/pypi/ply. 'argparse' and 'ply' modules to be available. 'argparse' is a standard
module as of Python 2.7 and Python 3.2. 'ply' is available from https://
pypi.python.org/pypi/ply.
On some platforms it is necessary to explicitly request large file support On some platforms it is necessary to explicitly request large file support
to handle files bigger than 2GB. This can be done by using to handle files bigger than 2GB. This can be done by using
@@ -250,7 +253,7 @@ Automated testing
A system test suite can be run with make test. The system tests require A system test suite can be run with make test. The system tests require
you to configure a set of virtual IP addresses on your system (this allows you to configure a set of virtual IP addresses on your system (this allows
multiple servers to run locally and communicate with one another). These multiple servers to run locally and communicate with one another). These
IP addresses can be configured by by running the script bin/tests/system/ IP addresses can be configured by running the command bin/tests/system/
ifconfig.sh up as root. ifconfig.sh up as root.
Some tests require Perl and the Net::DNS and/or IO::Socket::INET6 modules, Some tests require Perl and the Net::DNS and/or IO::Socket::INET6 modules,
+17 -17
View File
@@ -66,12 +66,12 @@ General bug reports can be sent to
Feature requests can be sent to Feature requests can be sent to
[bind-suggest@isc.org](mailto:bind-suggest@isc.org). [bind-suggest@isc.org](mailto:bind-suggest@isc.org).
Please note that, while ISC's ticketing system is not currently publicly Please note that, while tickets submitted to ISC's ticketing system
readable, this may change in the future. Please do not include information are not initially publicly readable by default, they can be made publicly
in bug reports that you consider to be confidential. For example, when acessible afterward. Please do not include information in bug reports that
sending the contents of your configuration file, it is advisable to obscure you consider to be confidential. In particular, when sending the contents of
key secrets; this can be done automatically by using `named-checkconf your configuration file, it is advisable to obscure key secrets: this can
-px`. be done automatically by using `named-checkconf -px`.
Professional support and training for BIND are available from Professional support and training for BIND are available from
ISC at [https://www.isc.org/support](https://www.isc.org/support). ISC at [https://www.isc.org/support](https://www.isc.org/support).
@@ -85,8 +85,8 @@ may also want to join the __BIND Workers__ mailing list, at
### <a name="contrib"/> Contributing to BIND ### <a name="contrib"/> Contributing to BIND
A public git repository for BIND is maintained at ISC maintains a public git repository for BIND; details can be found
[http://www.isc.org/git/](http://www.isc.org/git/), and also on Github at [http://www.isc.org/git/](http://www.isc.org/git/), and also on Github
at [https://github.com/isc-projects](https://github.com/isc-projects). at [https://github.com/isc-projects](https://github.com/isc-projects).
Information for BIND contributors can be found in the following files: Information for BIND contributors can be found in the following files:
@@ -116,10 +116,8 @@ include:
* Cached, validated NSEC and other records can now be used to synthesize * Cached, validated NSEC and other records can now be used to synthesize
NXDOMAIN responses. NXDOMAIN responses.
* The DNS Response Policy Service API (DNSRPS) is now supported. * The DNS Response Policy Service API (DNSRPS) is now supported.
* Setting `max-journal-size default` now limits the size of journal files * Setting `'max-journal-size default'` now limits the size of journal files
to twice the size of the zone. to twice the size of the zone.
* The query handling code has been substantially refactored for improved
readability, maintainability and testability .
* `dnstap-read -x` prints a hex dump of the wire format of each logged * `dnstap-read -x` prints a hex dump of the wire format of each logged
DNS message. DNS message.
* `dnstap` output files can now be configured to roll automatically when * `dnstap` output files can now be configured to roll automatically when
@@ -128,7 +126,7 @@ include:
8601 (UTC) formats. 8601 (UTC) formats.
* Logging channels and `dnstap` output files can now be configured to use a * Logging channels and `dnstap` output files can now be configured to use a
timestamp as the suffix when rolling to a new file. timestamp as the suffix when rolling to a new file.
* `named-checkconf -l` lists zones found in `named.conf`. * `'named-checkconf -l'` lists zones found in `named.conf`.
* Added support for the EDNS Padding and Keepalive options. * Added support for the EDNS Padding and Keepalive options.
* 'new-zones-directory' option sets the location where the configuration * 'new-zones-directory' option sets the location where the configuration
data for zones added by rndc addzone is stored data for zones added by rndc addzone is stored
@@ -195,9 +193,9 @@ performance on smaller systems.
For the server to support DNSSEC, you need to build it with crypto support. For the server to support DNSSEC, you need to build it with crypto support.
To use OpenSSL, you should have OpenSSL 1.0.2e or newer installed. If the To use OpenSSL, you should have OpenSSL 1.0.2e or newer installed. If the
OpenSSL library is installed in a nonstandard location, specify the prefix OpenSSL library is installed in a nonstandard location, specify the prefix
using "--with-openssl=/prefix" on the configure command line. To use a using "--with-openssl=&lt;PREFIX&gt;" on the configure command line. To use a
PKCS#11 hardware service module for cryptographic operations, specify the PKCS#11 hardware service module for cryptographic operations, specify the
path to the PKCS#11 provider library using "--with-pkcs11=/prefix", and path to the PKCS#11 provider library using "--with-pkcs11=&lt;PREFIX&gt;", and
configure BIND with "--enable-native-pkcs11". configure BIND with "--enable-native-pkcs11".
To support the HTTP statistics channel, the server must be linked with at To support the HTTP statistics channel, the server must be linked with at
@@ -220,13 +218,15 @@ libGeoIP. This is not turned on by default; BIND must be configured with
"--with-geoip". If the library is installed in a nonstandard location, use "--with-geoip". If the library is installed in a nonstandard location, use
specify the prefix using "--with-geoip=/prefix". specify the prefix using "--with-geoip=/prefix".
For DNSTAP packet logging, you must have libfstrm For DNSTAP packet logging, you must have installed libfstrm
[https://github.com/farsightsec/fstrm](https://github.com/farsightsec/fstrm) [https://github.com/farsightsec/fstrm](https://github.com/farsightsec/fstrm)
and libprotobuf-c and libprotobuf-c
[https://developers.google.com/protocol-buffers](https://developers.google.com/protocol-buffers), [https://developers.google.com/protocol-buffers](https://developers.google.com/protocol-buffers),
and BIND must be configured with "--enable-dnstap". and BIND must be configured with "--enable-dnstap".
Python requires the 'argparse' and 'ply' modules to be available. Portions of BIND that are written in Python, including
`dnssec-keymgr`, `dnssec-coverage`, `dnssec-checkds`, and some of the
system tests, require the 'argparse' and 'ply' modules to be available.
'argparse' is a standard module as of Python 2.7 and Python 3.2. 'argparse' is a standard module as of Python 2.7 and Python 3.2.
'ply' is available from [https://pypi.python.org/pypi/ply](https://pypi.python.org/pypi/ply). 'ply' is available from [https://pypi.python.org/pypi/ply](https://pypi.python.org/pypi/ply).
@@ -260,7 +260,7 @@ localstatedir defaults to `$prefix/var`.
A system test suite can be run with `make test`. The system tests require A system test suite can be run with `make test`. The system tests require
you to configure a set of virtual IP addresses on your system (this allows you to configure a set of virtual IP addresses on your system (this allows
multiple servers to run locally and communicate with one another). These multiple servers to run locally and communicate with one another). These
IP addresses can be configured by by running the script IP addresses can be configured by running the command
`bin/tests/system/ifconfig.sh up` as root. `bin/tests/system/ifconfig.sh up` as root.
Some tests require Perl and the Net::DNS and/or IO::Socket::INET6 modules, Some tests require Perl and the Net::DNS and/or IO::Socket::INET6 modules,
+5 -3
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2001, 2003-2005, 2007, 2009, 2013-2016 Internet Systems Consortium, Inc. ("ISC") .\" Copyright (C) 2001, 2003-2005, 2007, 2009, 2013-2017 Internet Systems Consortium, Inc. ("ISC")
.\" .\"
.\" This Source Code Form is subject to the terms of the Mozilla Public .\" 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 .\" License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -111,7 +111,9 @@ as directed\&.
.PP .PP
\-A \fIalgorithm\fR \-A \fIalgorithm\fR
.RS 4 .RS 4
Specifies the algorithm to use for the TSIG key\&. Available choices are: hmac\-md5, hmac\-sha1, hmac\-sha224, hmac\-sha256, hmac\-sha384 and hmac\-sha512\&. The default is hmac\-md5 or if MD5 was disabled hmac\-sha256\&. Specifies the algorithm to use for the TSIG key\&. Available choices are: hmac\-md5, hmac\-sha1, hmac\-sha224, hmac\-sha256, hmac\-sha384 and hmac\-sha512\&. The default is hmac\-md5, or if MD5 was disabled at compile time, hmac\-sha256\&.
.sp
Note: Use of hmac\-md5 is no longer recommended, and the default value will be changed to hmac\-sha256 in a future release\&.
.RE .RE
.PP .PP
\-b \fIkeysize\fR \-b \fIkeysize\fR
@@ -217,5 +219,5 @@ BIND 9 Administrator Reference Manual\&.
\fBInternet Systems Consortium, Inc\&.\fR \fBInternet Systems Consortium, Inc\&.\fR
.SH "COPYRIGHT" .SH "COPYRIGHT"
.br .br
Copyright \(co 2001, 2003-2005, 2007, 2009, 2013-2016 Internet Systems Consortium, Inc. ("ISC") Copyright \(co 2001, 2003-2005, 2007, 2009, 2013-2017 Internet Systems Consortium, Inc. ("ISC")
.br .br
+18 -2
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2001, 2003-2005, 2007-2009, 2011, 2013, 2014, 2016 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2001, 2003-2005, 2007-2009, 2011, 2013, 2014, 2016, 2017 Internet Systems Consortium, Inc. ("ISC")
* *
* This Source Code Form is subject to the terms of the Mozilla Public * 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 * License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -73,7 +73,7 @@ Usage:\n\
%s [-a] [-b bits] [-c keyfile] [-k keyname] [-p port] [-r randomfile] \ %s [-a] [-b bits] [-c keyfile] [-k keyname] [-p port] [-r randomfile] \
[-s addr] [-t chrootdir] [-u user]\n\ [-s addr] [-t chrootdir] [-u user]\n\
-a: generate just the key clause and write it to keyfile (%s)\n\ -a: generate just the key clause and write it to keyfile (%s)\n\
-A alg: algorithm (default hmac-md5)\n\ -A alg: algorithm (default hmac-md5 (deprecated and will change))\n\
-b bits: from 1 through 512, default 256; total length of the secret\n\ -b bits: from 1 through 512, default 256; total length of the secret\n\
-c keyfile: specify an alternate key file (requires -a)\n\ -c keyfile: specify an alternate key file (requires -a)\n\
-k keyname: the name as it will be used in named.conf and rndc.conf\n\ -k keyname: the name as it will be used in named.conf and rndc.conf\n\
@@ -115,6 +115,7 @@ main(int argc, char **argv) {
const char *randomfile = NULL; const char *randomfile = NULL;
const char *serveraddr = NULL; const char *serveraddr = NULL;
dns_secalg_t alg; dns_secalg_t alg;
isc_boolean_t algset = ISC_FALSE;
const char *algname; const char *algname;
char *p; char *p;
int ch; int ch;
@@ -153,6 +154,7 @@ main(int argc, char **argv) {
keyonly = ISC_TRUE; keyonly = ISC_TRUE;
break; break;
case 'A': case 'A':
algset = ISC_TRUE;
algname = isc_commandline_argument; algname = isc_commandline_argument;
alg = alg_fromtext(algname); alg = alg_fromtext(algname);
if (alg == DST_ALG_UNKNOWN) if (alg == DST_ALG_UNKNOWN)
@@ -225,6 +227,20 @@ main(int argc, char **argv) {
if (argc > 0) if (argc > 0)
usage(1); usage(1);
if (alg == DST_ALG_HMACMD5) {
if (algset) {
fprintf(stderr,
"warning: use of hmac-md5 for RNDC keys "
"is deprecated; hmac-sha256 is now "
"recommended.\n");
} else {
fprintf(stderr,
"warning: the default algorithm hmac-md5 "
"is deprecated and will be\n"
"changed to hmac-sha256 in a future release\n");
}
}
if (keysize < 0) if (keysize < 0)
keysize = alg_bits(alg); keysize = alg_bits(alg);
algname = alg_totext(alg); algname = alg_totext(alg);
+8 -3
View File
@@ -1,5 +1,5 @@
<!-- <!--
- Copyright (C) 2001, 2003-2005, 2007, 2009, 2013-2016 Internet Systems Consortium, Inc. ("ISC") - Copyright (C) 2001, 2003-2005, 2007, 2009, 2013-2017 Internet Systems Consortium, Inc. ("ISC")
- -
- This Source Code Form is subject to the terms of the Mozilla Public - 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 - License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -39,6 +39,7 @@
<year>2014</year> <year>2014</year>
<year>2015</year> <year>2015</year>
<year>2016</year> <year>2016</year>
<year>2017</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder> <holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright> </copyright>
</docinfo> </docinfo>
@@ -128,8 +129,12 @@
<para> <para>
Specifies the algorithm to use for the TSIG key. Available Specifies the algorithm to use for the TSIG key. Available
choices are: hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256, choices are: hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256,
hmac-sha384 and hmac-sha512. The default is hmac-md5 or hmac-sha384 and hmac-sha512. The default is hmac-md5, or
if MD5 was disabled hmac-sha256. if MD5 was disabled at compile time, hmac-sha256.
</para>
<para>
Note: Use of hmac-md5 is no longer recommended, and the default
value will be changed to hmac-sha256 in a future release.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
+7 -3
View File
@@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- <!--
- Copyright (C) 2001, 2003-2005, 2007, 2009, 2013-2016 Internet Systems Consortium, Inc. ("ISC") - Copyright (C) 2001, 2003-2005, 2007, 2009, 2013-2017 Internet Systems Consortium, Inc. ("ISC")
- -
- This Source Code Form is subject to the terms of the Mozilla Public - 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 - License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -113,8 +113,12 @@
<p> <p>
Specifies the algorithm to use for the TSIG key. Available Specifies the algorithm to use for the TSIG key. Available
choices are: hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256, choices are: hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256,
hmac-sha384 and hmac-sha512. The default is hmac-md5 or hmac-sha384 and hmac-sha512. The default is hmac-md5, or
if MD5 was disabled hmac-sha256. if MD5 was disabled at compile time, hmac-sha256.
</p>
<p>
Note: Use of hmac-md5 is no longer recommended, and the default
value will be changed to hmac-sha256 in a future release.
</p> </p>
</dd> </dd>
<dt><span class="term">-b <em class="replaceable"><code>keysize</code></em></span></dt> <dt><span class="term">-b <em class="replaceable"><code>keysize</code></em></span></dt>
+8 -5
View File
@@ -62,12 +62,15 @@ may be preferable to direct use of
.RS 4 .RS 4
Selects the cryptographic algorithm\&. For DNSSEC keys, the value of Selects the cryptographic algorithm\&. For DNSSEC keys, the value of
\fBalgorithm\fR \fBalgorithm\fR
must be one of RSAMD5, RSASHA1, DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512, ECCGOST, ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448\&. For TSIG/TKEY keys, the value must be one of DH (Diffie Hellman), HMAC\-MD5, HMAC\-SHA1, HMAC\-SHA224, HMAC\-SHA256, HMAC\-SHA384, or HMAC\-SHA512; specifying any of these algorithms will automatically set the must be one of RSAMD5, RSASHA1, DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512, ECCGOST, ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448\&. For TKEY and SIG(0) keys, the value must be DH (Diffie Hellman); specifying this value will automatically set the
\fB\-T KEY\fR \fB\-T KEY\fR
option as well\&. (Note: option as well\&.
.sp
TSIG keys can also by generated by setting the value to one of HMAC\-MD5, HMAC\-SHA1, HMAC\-SHA224, HMAC\-SHA256, HMAC\-SHA384, or HMAC\-SHA512\&. As with DH, specifying these values will automatically set
\fB\-T KEY\fR\&. Note, however, that
\fBtsig\-keygen\fR \fBtsig\-keygen\fR
produces TSIG keys in a more useful format than produces TSIG keys in a more useful format\&. These algorithms have been deprecated in
\fBdnssec\-keygen\fR\&.) \fBdnssec\-keygen\fR, and will be removed in a future release\&.
.sp .sp
These values are case insensitive\&. In some cases, abbreviations are supported, such as ECDSA256 for ECDSAP256SHA256 and ECDSA384 for ECDSAP384SHA384\&. If RSASHA1 or DSA is specified along with the These values are case insensitive\&. In some cases, abbreviations are supported, such as ECDSA256 for ECDSAP256SHA256 and ECDSA384 for ECDSAP384SHA384\&. If RSASHA1 or DSA is specified along with the
\fB\-3\fR \fB\-3\fR
@@ -75,7 +78,7 @@ option, then NSEC3RSASHA1 or NSEC3DSA will be used instead\&.
.sp .sp
As of BIND 9\&.12\&.0, this option is mandatory except when using the As of BIND 9\&.12\&.0, this option is mandatory except when using the
\fB\-S\fR \fB\-S\fR
option (which copies the algorithm from the predecessor key)\&. Previously, the default for newly generated keys was RSASHA1\&. option, which copies the algorithm from the predecessor key\&. Previously, the default for newly generated keys was RSASHA1\&.
.RE .RE
.PP .PP
\-b \fIkeysize\fR \-b \fIkeysize\fR
+10
View File
@@ -582,6 +582,16 @@ main(int argc, char **argv) {
INSIST((alg != DNS_KEYALG_RSAMD5) && (alg != DST_ALG_HMACMD5)); INSIST((alg != DNS_KEYALG_RSAMD5) && (alg != DST_ALG_HMACMD5));
#endif #endif
if (alg == DST_ALG_HMACMD5 || alg == DST_ALG_HMACSHA1 ||
alg == DST_ALG_HMACSHA224 || alg == DST_ALG_HMACSHA256 ||
alg == DST_ALG_HMACSHA384 || alg == DST_ALG_HMACSHA512)
{
fprintf(stderr,
"Use of dnssec-keygen for HMAC keys is "
"deprecated: use tsig-keygen\n");
}
if (!dst_algorithm_supported(alg)) if (!dst_algorithm_supported(alg))
fatal("unsupported algorithm: %d", alg); fatal("unsupported algorithm: %d", alg);
+15 -8
View File
@@ -122,12 +122,19 @@
of <option>algorithm</option> must be one of RSAMD5, RSASHA1, of <option>algorithm</option> must be one of RSAMD5, RSASHA1,
DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512, ECCGOST, DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512, ECCGOST,
ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448. For ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448. For
TSIG/TKEY keys, the value must be one of DH (Diffie Hellman), TKEY and SIG(0) keys, the value must be DH (Diffie Hellman);
HMAC-MD5, HMAC-SHA1, HMAC-SHA224, HMAC-SHA256, HMAC-SHA384, specifying this value will automatically set the
or HMAC-SHA512; specifying any of these algorithms will <option>-T KEY</option> option as well.
automatically set the <option>-T KEY</option> option as well. </para>
(Note: <command>tsig-keygen</command> produces TSIG keys in a <para>
more useful format than <command>dnssec-keygen</command>.) TSIG keys can also by generated by setting the value to
one of HMAC-MD5, HMAC-SHA1, HMAC-SHA224, HMAC-SHA256,
HMAC-SHA384, or HMAC-SHA512. As with DH, specifying these
values will automatically set <option>-T KEY</option>. Note,
however, that <command>tsig-keygen</command> produces TSIG keys
in a more useful format. These algorithms have been deprecated
in <command>dnssec-keygen</command>, and will be removed in a
future release.
</para> </para>
<para> <para>
These values are case insensitive. In some cases, abbreviations These values are case insensitive. In some cases, abbreviations
@@ -138,8 +145,8 @@
</para> </para>
<para> <para>
As of BIND 9.12.0, this option is mandatory except when using As of BIND 9.12.0, this option is mandatory except when using
the <option>-S</option> option (which copies the algorithm from the <option>-S</option> option, which copies the algorithm from
the predecessor key). Previously, the default for newly the predecessor key. Previously, the default for newly
generated keys was RSASHA1. generated keys was RSASHA1.
</para> </para>
</listitem> </listitem>
+15 -8
View File
@@ -103,12 +103,19 @@
of <code class="option">algorithm</code> must be one of RSAMD5, RSASHA1, of <code class="option">algorithm</code> must be one of RSAMD5, RSASHA1,
DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512, ECCGOST, DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512, ECCGOST,
ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448. For ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448. For
TSIG/TKEY keys, the value must be one of DH (Diffie Hellman), TKEY and SIG(0) keys, the value must be DH (Diffie Hellman);
HMAC-MD5, HMAC-SHA1, HMAC-SHA224, HMAC-SHA256, HMAC-SHA384, specifying this value will automatically set the
or HMAC-SHA512; specifying any of these algorithms will <code class="option">-T KEY</code> option as well.
automatically set the <code class="option">-T KEY</code> option as well. </p>
(Note: <span class="command"><strong>tsig-keygen</strong></span> produces TSIG keys in a <p>
more useful format than <span class="command"><strong>dnssec-keygen</strong></span>.) TSIG keys can also by generated by setting the value to
one of HMAC-MD5, HMAC-SHA1, HMAC-SHA224, HMAC-SHA256,
HMAC-SHA384, or HMAC-SHA512. As with DH, specifying these
values will automatically set <code class="option">-T KEY</code>. Note,
however, that <span class="command"><strong>tsig-keygen</strong></span> produces TSIG keys
in a more useful format. These algorithms have been deprecated
in <span class="command"><strong>dnssec-keygen</strong></span>, and will be removed in a
future release.
</p> </p>
<p> <p>
These values are case insensitive. In some cases, abbreviations These values are case insensitive. In some cases, abbreviations
@@ -119,8 +126,8 @@
</p> </p>
<p> <p>
As of BIND 9.12.0, this option is mandatory except when using As of BIND 9.12.0, this option is mandatory except when using
the <code class="option">-S</code> option (which copies the algorithm from the <code class="option">-S</code> option, which copies the algorithm from
the predecessor key). Previously, the default for newly the predecessor key. Previously, the default for newly
generated keys was RSASHA1. generated keys was RSASHA1.
</p> </p>
</dd> </dd>
+8
View File
@@ -349,6 +349,14 @@ If the key\*(Aqs revocation date is set and in the past, and the key is publishe
.RS 4 .RS 4
If either of the key\*(Aqs unpublication or deletion dates are set and in the past, the key is NOT published or used to sign the zone, regardless of any other metadata\&. If either of the key\*(Aqs unpublication or deletion dates are set and in the past, the key is NOT published or used to sign the zone, regardless of any other metadata\&.
.RE .RE
.PP
.RS 4
If key\*(Aqs sync publication date is set and in the past, synchronization records (type CDS and/or CDNSKEY) are created\&.
.RE
.PP
.RS 4
If key\*(Aqs sync deletion date is set and in the past, synchronization records (type CDS and/or CDNSKEY) are removed\&.
.RE
.RE .RE
.PP .PP
\-T \fIttl\fR \-T \fIttl\fR
+1 -1
View File
@@ -1958,7 +1958,7 @@ addnsec3(dns_name_t *name, dns_dbnode_t *node,
* any NSEC3 records which have the same parameters as the chain we * any NSEC3 records which have the same parameters as the chain we
* are building. * are building.
* *
* XXXMPA Should we also check that it of the form <hash>.<origin>? * XXXMPA Should we also check that it of the form &lt;hash&gt;.&lt;origin&gt;?
*/ */
static void static void
nsec3clean(dns_name_t *name, dns_dbnode_t *node, nsec3clean(dns_name_t *name, dns_dbnode_t *node,
+20
View File
@@ -646,6 +646,26 @@
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<listitem>
<para>
If key's sync publication date is set and in the past,
synchronization records (type CDS and/or CDNSKEY) are
created.
</para>
</listitem>
</varlistentry>
<varlistentry>
<listitem>
<para>
If key's sync deletion date is set and in the past,
synchronization records (type CDS and/or CDNSKEY) are
removed.
</para>
</listitem>
</varlistentry>
</variablelist> </variablelist>
</listitem> </listitem>
</varlistentry> </varlistentry>
+16
View File
@@ -519,6 +519,22 @@
zone, regardless of any other metadata. zone, regardless of any other metadata.
</p> </p>
</dd> </dd>
<dt></dt>
<dd>
<p>
If key's sync publication date is set and in the past,
synchronization records (type CDS and/or CDNSKEY) are
created.
</p>
</dd>
<dt></dt>
<dd>
<p>
If key's sync deletion date is set and in the past,
synchronization records (type CDS and/or CDNSKEY) are
removed.
</p>
</dd>
</dl></div> </dl></div>
</dd> </dd>
<dt><span class="term">-T <em class="replaceable"><code>ttl</code></em></span></dt> <dt><span class="term">-T <em class="replaceable"><code>ttl</code></em></span></dt>
+2 -4
View File
@@ -156,12 +156,10 @@ options {\n\
# fetch-glue <obsolete>;\n\ # fetch-glue <obsolete>;\n\
fetch-quota-params 100 0.1 0.3 0.7;\n\ fetch-quota-params 100 0.1 0.3 0.7;\n\
fetches-per-server 0;\n\ fetches-per-server 0;\n\
fetches-per-zone 0;\n" fetches-per-zone 0;\n\
#ifdef ALLOW_FILTER_AAAA filter-aaaa-on-v4 no;\n\
" filter-aaaa-on-v4 no;\n\
filter-aaaa-on-v6 no;\n\ filter-aaaa-on-v6 no;\n\
filter-aaaa { any; };\n" filter-aaaa { any; };\n"
#endif
#ifdef HAVE_GEOIP #ifdef HAVE_GEOIP
" geoip-use-ecs yes;\n" " geoip-use-ecs yes;\n"
#endif #endif
+1
View File
@@ -17,6 +17,7 @@
#include <isc/stdio.h> #include <isc/stdio.h>
#include <isc/string.h> #include <isc/string.h>
#include <isc/syslog.h> #include <isc/syslog.h>
#include <isc/util.h>
#include <isccfg/cfg.h> #include <isccfg/cfg.h>
#include <isccfg/log.h> #include <isccfg/log.h>
+27 -20
View File
@@ -160,6 +160,8 @@
#define DIR_PERM_OK W_OK|X_OK #define DIR_PERM_OK W_OK|X_OK
#endif #endif
#define MAX_TCP_TIMEOUT 65535
/*% /*%
* Check an operation for failure. Assumes that the function * Check an operation for failure. Assumes that the function
* using it has a 'result' variable and a 'cleanup' label. * using it has a 'result' variable and a 'cleanup' label.
@@ -4681,20 +4683,19 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
* "allow-recursion" inherits from "allow-query-cache" if set, * "allow-recursion" inherits from "allow-query-cache" if set,
* otherwise from "allow-query" if set. * otherwise from "allow-query" if set.
*/ */
if (view->cacheacl == NULL && view->recursionacl != NULL) if (view->cacheacl == NULL && view->recursionacl != NULL) {
dns_acl_attach(view->recursionacl, &view->cacheacl); dns_acl_attach(view->recursionacl, &view->cacheacl);
/* }
* XXXEACH: This call to configure_view_acl() is redundant. We
* are leaving it as it is because we are making a minimal change if (view->cacheacl == NULL && view->recursion) {
* for a patch release. In the future this should be changed to dns_acl_attach(view->queryacl, &view->cacheacl);
* dns_acl_attach(view->queryacl, &view->cacheacl). }
*/
if (view->cacheacl == NULL && view->recursion)
CHECK(configure_view_acl(vconfig, config, "allow-query", NULL,
actx, named_g_mctx, &view->cacheacl));
if (view->recursion && if (view->recursion &&
view->recursionacl == NULL && view->cacheacl != NULL) view->recursionacl == NULL && view->cacheacl != NULL)
{
dns_acl_attach(view->cacheacl, &view->recursionacl); dns_acl_attach(view->cacheacl, &view->recursionacl);
}
/* /*
* Set default "allow-recursion", "allow-recursion-on" and * Set default "allow-recursion", "allow-recursion-on" and
@@ -4875,7 +4876,6 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
dns_quotatype_zone, r); dns_quotatype_zone, r);
} }
#ifdef ALLOW_FILTER_AAAA
obj = NULL; obj = NULL;
result = named_config_get(maps, "filter-aaaa-on-v4", &obj); result = named_config_get(maps, "filter-aaaa-on-v4", &obj);
INSIST(result == ISC_R_SUCCESS); INSIST(result == ISC_R_SUCCESS);
@@ -4910,7 +4910,7 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
CHECK(configure_view_acl(vconfig, config, "filter-aaaa", NULL, CHECK(configure_view_acl(vconfig, config, "filter-aaaa", NULL,
actx, named_g_mctx, &view->aaaa_acl)); actx, named_g_mctx, &view->aaaa_acl));
#endif
obj = NULL; obj = NULL;
result = named_config_get(maps, "prefetch", &obj); result = named_config_get(maps, "prefetch", &obj);
if (result == ISC_R_SUCCESS) { if (result == ISC_R_SUCCESS) {
@@ -7053,6 +7053,13 @@ setup_newzones(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
dir, isc_result_totext(result)); dir, isc_result_totext(result));
return (result); return (result);
} }
if (access(dir, DIR_PERM_OK) != 0) {
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
NAMED_LOGMODULE_SERVER, ISC_LOG_ERROR,
"new-zones-directory '%s' "
"is not writable", dir);
return (ISC_R_NOPERM);
}
dns_view_setnewzonedir(view, dir); dns_view_setnewzonedir(view, dir);
} }
@@ -7881,11 +7888,11 @@ load_configuration(const char *filename, named_server_t *server,
result = named_config_get(maps, "tcp-keepalive-timeout", &obj); result = named_config_get(maps, "tcp-keepalive-timeout", &obj);
INSIST(result == ISC_R_SUCCESS); INSIST(result == ISC_R_SUCCESS);
keepalive = cfg_obj_asuint32(obj); keepalive = cfg_obj_asuint32(obj);
if (keepalive > 1200) { if (keepalive > MAX_TCP_TIMEOUT) {
cfg_obj_log(obj, named_g_lctx, ISC_LOG_WARNING, cfg_obj_log(obj, named_g_lctx, ISC_LOG_WARNING,
"tcp-keepalive-timeout value is out of range: " "tcp-keepalive-timeout value is out of range: "
"lowering to 1200"); "lowering to %u", MAX_TCP_TIMEOUT);
keepalive = 1200; keepalive = MAX_TCP_TIMEOUT;
} else if (keepalive < 1) { } else if (keepalive < 1) {
cfg_obj_log(obj, named_g_lctx, ISC_LOG_WARNING, cfg_obj_log(obj, named_g_lctx, ISC_LOG_WARNING,
"tcp-keepalive-timeout value is out of range: " "tcp-keepalive-timeout value is out of range: "
@@ -7897,11 +7904,11 @@ load_configuration(const char *filename, named_server_t *server,
result = named_config_get(maps, "tcp-advertised-timeout", &obj); result = named_config_get(maps, "tcp-advertised-timeout", &obj);
INSIST(result == ISC_R_SUCCESS); INSIST(result == ISC_R_SUCCESS);
advertised = cfg_obj_asuint32(obj); advertised = cfg_obj_asuint32(obj);
if (advertised > 1200) { if (advertised > MAX_TCP_TIMEOUT) {
cfg_obj_log(obj, named_g_lctx, ISC_LOG_WARNING, cfg_obj_log(obj, named_g_lctx, ISC_LOG_WARNING,
"tcp-advertized-timeout value is out of range: " "tcp-advertized-timeout value is out of range: "
"lowering to 1200"); "lowering to %u", MAX_TCP_TIMEOUT);
advertised = 1200; advertised = MAX_TCP_TIMEOUT;
} }
ns_server_settimeouts(named_g_server->sctx, ns_server_settimeouts(named_g_server->sctx,
@@ -14695,7 +14702,7 @@ named_server_tcptimeouts(isc_lex_t *lex, isc_buffer_t **text) {
if (ptr == NULL) if (ptr == NULL)
return (ISC_R_UNEXPECTEDEND); return (ISC_R_UNEXPECTEDEND);
CHECK(isc_parse_uint32(&keepalive, ptr, 10)); CHECK(isc_parse_uint32(&keepalive, ptr, 10));
if (keepalive > 1200) if (keepalive > MAX_TCP_TIMEOUT)
CHECK(ISC_R_RANGE); CHECK(ISC_R_RANGE);
if (keepalive < 1) if (keepalive < 1)
CHECK(ISC_R_RANGE); CHECK(ISC_R_RANGE);
@@ -14704,7 +14711,7 @@ named_server_tcptimeouts(isc_lex_t *lex, isc_buffer_t **text) {
if (ptr == NULL) if (ptr == NULL)
return (ISC_R_UNEXPECTEDEND); return (ISC_R_UNEXPECTEDEND);
CHECK(isc_parse_uint32(&advertised, ptr, 10)); CHECK(isc_parse_uint32(&advertised, ptr, 10));
if (advertised > 1200) if (advertised > MAX_TCP_TIMEOUT)
CHECK(ISC_R_RANGE); CHECK(ISC_R_RANGE);
result = isc_task_beginexclusive(named_g_server->task); result = isc_task_beginexclusive(named_g_server->task);
+1
View File
@@ -20,6 +20,7 @@
#include <isc/stats.h> #include <isc/stats.h>
#include <isc/string.h> #include <isc/string.h>
#include <isc/task.h> #include <isc/task.h>
#include <isc/util.h>
#include <dns/cache.h> #include <dns/cache.h>
#include <dns/db.h> #include <dns/db.h>
+1
View File
@@ -16,6 +16,7 @@
#include <isc/buffer.h> #include <isc/buffer.h>
#include <isc/mem.h> #include <isc/mem.h>
#include <isc/string.h> #include <isc/string.h>
#include <isc/util.h>
#include <isccfg/cfg.h> #include <isccfg/cfg.h>
+2 -4
View File
@@ -1,19 +1,17 @@
#!/bin/sh #!/bin/sh
# #
# Copyright (C) 2013, 2014, 2016 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2013, 2014, 2016, 2017 Internet Systems Consortium, Inc. ("ISC")
# #
# This Source Code Form is subject to the terms of the Mozilla Public # 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 # License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
# $Id: clean.sh,v 1.6 2007/09/26 03:22:44 marka Exp $
# #
# Clean up after tests. # Clean up after tests.
# #
rm -f dig.out.* rm -f dig.out.*
rm -f */named.memstats rm -f */named.memstats
rm -f */named.conf rm -f ns1/named.conf
rm -f */named.run rm -f */named.run
rm -f ns*/named.lock rm -f ns*/named.lock
@@ -0,0 +1,25 @@
/*
* Copyright (C) 2017 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/.
*/
controls { /* empty */ };
options {
query-source address 10.53.0.3;
notify-source 10.53.0.3;
transfer-source 10.53.0.3;
port 5300;
pid-file "named.pid";
listen-on { 10.53.0.3; };
listen-on-v6 { none; };
recursion yes;
};
zone "." {
type hint;
file "root.hint";
};
@@ -0,0 +1,8 @@
; Copyright (C) 2017 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/.
. NS ns1.
ns1. A 10.53.0.1
+28 -3
View File
@@ -212,7 +212,7 @@ echo "I:testing with 'minimal-responses yes;'"
minimal=yes minimal=yes
dotests dotests
echo "I:reconfiguring server" echo "I:reconfiguring server: minimal-responses no"
cp ns1/named2.conf ns1/named.conf cp ns1/named2.conf ns1/named.conf
$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 reconfig 2>&1 | sed 's/^/I:ns1 /' $RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 reconfig 2>&1 | sed 's/^/I:ns1 /'
sleep 2 sleep 2
@@ -230,7 +230,7 @@ if [ $ret -eq 1 ] ; then
echo "I: failed"; status=1 echo "I: failed"; status=1
fi fi
echo "I:reconfiguring server" echo "I:reconfiguring server: minimal-any yes"
cp ns1/named3.conf ns1/named.conf cp ns1/named3.conf ns1/named.conf
$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 reconfig 2>&1 | sed 's/^/I:ns1 /' $RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 reconfig 2>&1 | sed 's/^/I:ns1 /'
sleep 2 sleep 2
@@ -266,7 +266,7 @@ echo "I:testing with 'minimal-responses no-auth;'"
minimal=no-auth minimal=no-auth
dotests dotests
echo "I:reconfiguring server" echo "I:reconfiguring server: minimal-responses no-auth-recursive"
cp ns1/named4.conf ns1/named.conf cp ns1/named4.conf ns1/named.conf
$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 reconfig 2>&1 | sed 's/^/I:ns1 /' $RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 reconfig 2>&1 | sed 's/^/I:ns1 /'
sleep 2 sleep 2
@@ -297,5 +297,30 @@ if [ $ret -eq 1 ] ; then
echo "I: failed"; status=1 echo "I: failed"; status=1
fi fi
echo "I:reconfiguring server: minimal-responses no"
cp ns1/named2.conf ns1/named.conf
$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 reconfig 2>&1 | sed 's/^/I:ns1 /'
sleep 2
n=`expr $n + 1`
echo "I:testing NS handling in ANY responses (authoritative) ($n)"
ret=0
$DIG -t ANY rt.example @10.53.0.1 -p 5300 > dig.out.$n || ret=1
grep "AUTHORITY: 0" dig.out.$n > /dev/null || ret=1
grep "NS[ ]*ns" dig.out.$n > /dev/null || ret=1
if [ $ret -eq 1 ] ; then
echo "I: failed"; status=1
fi
n=`expr $n + 1`
echo "I:testing NS handling in ANY responses (recursive) ($n)"
ret=0
$DIG -t ANY rt.example @10.53.0.3 -p 5300 > dig.out.$n || ret=1
grep "AUTHORITY: 0" dig.out.$n > /dev/null || ret=1
grep "NS[ ]*ns" dig.out.$n > /dev/null || ret=1
if [ $ret -eq 1 ] ; then
echo "I: failed"; status=1
fi
echo "I:exit status: $status" echo "I:exit status: $status"
[ $status -eq 0 ] || exit 1 [ $status -eq 0 ] || exit 1
+2 -2
View File
@@ -24,8 +24,8 @@ options {
dnssec-must-be-secure mustbesecure.example yes; dnssec-must-be-secure mustbesecure.example yes;
minimal-responses no; minimal-responses no;
nta-lifetime 10s; nta-lifetime 12s;
nta-recheck 7s; nta-recheck 9s;
# Note: We only reference the bind.keys file here to confirm that it # Note: We only reference the bind.keys file here to confirm that it
# is *not* being used. It contains the real root key, and we're # is *not* being used. It contains the real root key, and we're
+10 -4
View File
@@ -1722,7 +1722,7 @@ echo "I: waiting for NTA rechecks/expirations"
# fakenode.secure.example should both be lifted, but badds.example # fakenode.secure.example should both be lifted, but badds.example
# should still be going. # should still be going.
# #
$PERL -e 'my $delay = '$start' + 8 - time(); select(undef, undef, undef, $delay) if ($delay > 0);' $PERL -e 'my $delay = '$start' + 10 - time(); select(undef, undef, undef, $delay) if ($delay > 0);'
$DIG $DIGOPTS b.secure.example. a @10.53.0.4 > dig.out.ns4.test$n.8 || ret=1 $DIG $DIGOPTS b.secure.example. a @10.53.0.4 > dig.out.ns4.test$n.8 || ret=1
grep "status: SERVFAIL" dig.out.ns4.test$n.8 > /dev/null && ret=1 grep "status: SERVFAIL" dig.out.ns4.test$n.8 > /dev/null && ret=1
grep "flags:[^;]* ad[^;]*;" dig.out.ns4.test$n.8 > /dev/null || ret=1 grep "flags:[^;]* ad[^;]*;" dig.out.ns4.test$n.8 > /dev/null || ret=1
@@ -1742,7 +1742,7 @@ ret=0
# it should still be NTA'd, but badds.example used the default # it should still be NTA'd, but badds.example used the default
# lifetime of 10s, so it should revert to SERVFAIL now. # lifetime of 10s, so it should revert to SERVFAIL now.
# #
$PERL -e 'my $delay = '$start' + 11 - time(); select(undef, undef, undef, $delay) if ($delay > 0);' $PERL -e 'my $delay = '$start' + 13 - time(); select(undef, undef, undef, $delay) if ($delay > 0);'
# check nta table # check nta table
$RNDC -c ../common/rndc.conf -s 10.53.0.4 -p 9953 nta -d > rndc.out.ns4.test$n._11 $RNDC -c ../common/rndc.conf -s 10.53.0.4 -p 9953 nta -d > rndc.out.ns4.test$n._11
lines=`grep " expiry " rndc.out.ns4.test$n._11 | wc -l` lines=`grep " expiry " rndc.out.ns4.test$n._11 | wc -l`
@@ -2501,9 +2501,15 @@ do
done; done;
grep "ANSWER: 3," dig.out.ns2.test$n > /dev/null || ret=1 grep "ANSWER: 3," dig.out.ns2.test$n > /dev/null || ret=1
if [ $ret != 0 ]; then echo "I:nsec3 chain generation not complete"; fi if [ $ret != 0 ]; then echo "I:nsec3 chain generation not complete"; fi
sleep 3
$DIG $DIGOPTS +noauth +nodnssec soa nsec3chain-test @10.53.0.2 > dig.out.ns2.test$n || ret=1 $DIG $DIGOPTS +noauth +nodnssec soa nsec3chain-test @10.53.0.2 > dig.out.ns2.test$n || ret=1
$DIG $DIGOPTS +noauth +nodnssec soa nsec3chain-test @10.53.0.3 > dig.out.ns3.test$n || ret=1 s2=`awk '$4 == "SOA" { print $7}' dig.out.ns2.test$n`
for i in 1 2 3 4 5 6 7 8 9 10
do
$DIG $DIGOPTS +noauth +nodnssec soa nsec3chain-test @10.53.0.3 > dig.out.ns3.test$n || ret=1
s3=`awk '$4 == "SOA" { print $7}' dig.out.ns3.test$n`
test "$s2" = "$s3" && break
sleep 1
done
$PERL ../digcomp.pl dig.out.ns2.test$n dig.out.ns3.test$n || ret=1 $PERL ../digcomp.pl dig.out.ns2.test$n dig.out.ns3.test$n || ret=1
n=`expr $n + 1` n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi if [ $ret != 0 ]; then echo "I:failed"; fi
+1
View File
@@ -13,6 +13,7 @@
#include <config.h> #include <config.h>
#include <isc/string.h> #include <isc/string.h>
#include <isc/util.h>
#include <dns/db.h> #include <dns/db.h>
#include <dns/diff.h> #include <dns/diff.h>
+1
View File
@@ -10,6 +10,7 @@
#include <isc/eventclass.h> #include <isc/eventclass.h>
#include <isc/netaddr.h> #include <isc/netaddr.h>
#include <isc/task.h> #include <isc/task.h>
#include <isc/util.h>
#include <dns/byaddr.h> #include <dns/byaddr.h>
#include <dns/db.h> #include <dns/db.h>
-9
View File
@@ -36,7 +36,6 @@ usage() {
fprintf(stderr, "args:\n"); fprintf(stderr, "args:\n");
fprintf(stderr, " --edns-version\n"); fprintf(stderr, " --edns-version\n");
fprintf(stderr, " --enable-dnsrps\n"); fprintf(stderr, " --enable-dnsrps\n");
fprintf(stderr, " --enable-filter-aaaa\n");
fprintf(stderr, " --gethostname\n"); fprintf(stderr, " --gethostname\n");
fprintf(stderr, " --gssapi\n"); fprintf(stderr, " --gssapi\n");
fprintf(stderr, " --have-dlopen\n"); fprintf(stderr, " --have-dlopen\n");
@@ -63,14 +62,6 @@ main(int argc, char **argv) {
#endif #endif
} }
if (strcmp(argv[1], "--enable-filter-aaaa") == 0) {
#ifdef ALLOW_FILTER_AAAA
return (0);
#else
return (1);
#endif
}
if (strcmp(argv[1], "--edns-version") == 0) { if (strcmp(argv[1], "--edns-version") == 0) {
#ifdef DNS_EDNS_VERSION #ifdef DNS_EDNS_VERSION
printf("%d\n", DNS_EDNS_VERSION); printf("%d\n", DNS_EDNS_VERSION);
@@ -1,110 +1,125 @@
; File written on Thu May 1 12:16:00 2014 ; File written on Mon Oct 16 09:16:28 2017
; dnssec_signzone version 9.8.5-P1 ; dnssec_signzone version 9.11.2
signed. 120 IN SOA ns.utld. hostmaster.ns.utld. ( signed. 120 IN SOA ns.signed. hostmaster.ns.signed. (
1 ; serial 1 ; serial
3600 ; refresh (1 hour) 3600 ; refresh (1 hour)
1200 ; retry (20 minutes) 1200 ; retry (20 minutes)
604800 ; expire (1 week) 604800 ; expire (1 week)
60 ; minimum (1 minute) 60 ; minimum (1 minute)
) )
120 RRSIG SOA 3 1 120 20820519023008 ( 120 RRSIG SOA 3 1 120 (
20140501011600 12955 signed. 20820519023008 20140501011600 17876 signed.
BEFlElqfz17JeL/ISbgEz7yenWy2QjhgdMUx BJDbUrXS4UzBrTeNUMA0sSGYd+h9M5d8qzsE
VDLBx3+Eiz1nyB1CpWw= ) q7RJyDtUNJIwP5vAnSQ= )
120 NS ns.utld. 120 NS ns.signed.
120 RRSIG NS 3 1 120 20820519023008 ( 120 RRSIG NS 3 1 120 (
20140501011600 12955 signed. 20820519023008 20140501011600 17876 signed.
BC4nYbfEyROe0CZPj/cHRl7BCIc0MbzpDBwz BGoYuOkkcTAYnym27q2BgqkjUgP/0/Tip1yc
an8bPTHrbaHpC8rdX54= ) txRS1D0CipTUZhCNrXc= )
120 MX 10 mx.signed. 120 MX 10 mx.signed.
120 RRSIG MX 3 1 120 20820519023008 ( 120 RRSIG MX 3 1 120 (
20140501011600 12955 signed. 20820519023008 20140501011600 17876 signed.
BEp7iUXEnBCXVtKHcIRfkiK34J83ZbC3g7qQ BOUPCSEEJ8dZ0oWeiYEvGIonjagvM1OS+mEY
XY+wdpJ7TxavEBtZO94= ) i5VUmysn7kArWqeFERs= )
60 NSEC a-only.signed. NS SOA MX RRSIG NSEC DNSKEY 60 NSEC a-only.signed. NS SOA MX RRSIG NSEC DNSKEY
60 RRSIG NSEC 3 1 60 20820519023008 ( 60 RRSIG NSEC 3 1 60 (
20140501011600 12955 signed. 20820519023008 20140501011600 17876 signed.
BAjeMFAXkfL9AypyihxU7lvhGCENKAwpoGt6 BBzvCsFw4EgfrIsFOu5IjP2gncm8dntwHaMD
WYd6G0kb6zdpZ/AR1GQ= ) IeJ6g6s7IOwFT5nyrOU= )
120 DNSKEY 256 3 3 ( 120 DNSKEY 256 3 3 (
BJIozpii3vZYz7LNraaDEOOpLFcdlw091gEG BPXo3mJOeCCuorn7Hc7bxR3QDHrJvq9gUpPS
+SHpTEVDdb7atLaYCYoSaodASSYutOQbba1o s8QYF3eiSpB97c8Br7fFzFYHQCJWWnCtpt1E
i6xLiEAZdb4MNoM50vOtQlb4NJDAGElTOShK h7SveJSl1ASNl9W2KE6hDNXfDX+ixDOtFZ/7
RE60G1veNVuN87ZpsiPlLU7m307l03aNUkJu PCh/obX36VK86EH+ZBNLxxEy9tHHCGO08zy8
LNd19kEuq1ItZt1SFVUkLvAHxs8hSLyDpq/u 3lWI3E5bk9a1sks2dy6hbQfMmyXWI5QwYS9D
4P/6QnPG294dk2eh83m2PuQVChvJLcrFhIbJ j5Vs5yeUQ5e6SPmIqgqpn6VnDtAIfR2My7/r
CWxCEsW9fe2eO1YtwoyFmqIIFSlAs84bwy2O /Jgf73gpZugZmn6wDbzNCyGIvtOJCHAY2OEg
iA7x0PeoXpKGLhuKCbvre5zVLRaqMFoMDJmr ZfACKVdJrXZ42NKcJCgSTd1xY81UyMI9QAMq
vpGTxJ+AbOLEzDgO8QkGT+WCEBSMqRXvUkX0 64Lx/tENCo1GKBCk/1HMdiO6WKeXCJd1SYzN
rBcSDAa8GpCTyhVs0j9KIedRbYalV24JzViy VM+n4fRzEkmVT9wfyiSmoq6SxjeqrRebDz8G
m7UrKcZojCcXEjl0rXIJHNlfvQsfy6F3cq4m 42d4lsm2/0bmOlle+fva7LwtGOaS+tBqtD8K
GimMrtxmA5Wf1xoJ kexFaixL5iY+LB0Q
) ; key id = 12955 ) ; ZSK; alg = DSA ; key id = 17876
120 DNSKEY 257 3 3 ( 120 DNSKEY 257 3 3 (
BJIozpii3vZYz7LNraaDEOOpLFcdlw091gEG BOOhXnn+YV6RQ+jRPdayrnC2cd9x5P77c1/6
+SHpTEVDdb7atLaYCYoSaodASSYutOQbba1o Ev41qaWl1N7QRDXYh7VDS1UowoPbvQOvgQU0
i6xLiEAZdb4MNoM50vOtQlb4NJDAGElTOShK X7+zKWrB8UQcdsUe96IH/wPab1qkJlKanZni
RE60G1veNVuN87ZpsiPlLU7m307l03aNUkJu uFdB/2sTvQ6yabIC41dItnGeuN9VY1qwCa7T
LNd19kEuq1ItZt1SFVUkLvAHxs8hSLyDpq/u 4QFRVYyDPKgxo7MRLq9YoUN8RTcB6lY1BH9Z
4P/6QnPG294dk2eh83m2PuQVChvJLcrFhIbJ QgcHZljAFVgU1Zc/6DZlQeBZyJafwIR+I7Eq
CWxCEsW9fe2eO1YtwoyFmqIIFSlAs84bwy2O Oe+rR44ZeD5JRgI1OwGyw/b1wKUxFhM+4XJi
iA7x0PeoXpKGLhuKCbvre5zVLRaqMFoMDJmr i8mQ1mrvzZ27iQbYP4WEzaskU6P5X+nPrTFi
vpGTxJ+AbOLEzDgO8QkGT+WCEBSMqRXvUkX0 tLEaPugt8Oe7+lHLjpHvHzSOJZ5Radfiqgzg
rBcSDAa8GpCTyhVs0j9KIedRbYalV24JzViy GGOzj1qmLfKLdRmp4VuBQ+1kguiz9D3ev89d
m7UrKcZojCcXEjl0rXIJHNlfvQsfy6F3cq4m pzP7dYHuSdCjc9X0fLmPjU1xD6RyLCDEmUm7
GimMrtxmA5Wf1xoJ eeRP55SiTiQCzJFr
) ; key id = 12956 ) ; KSK; alg = DSA ; key id = 3746
120 RRSIG DNSKEY 3 1 120 20820519023008 ( 120 RRSIG DNSKEY 3 1 120 (
20140501011600 12955 signed. 20820519023008 20140501011600 3746 signed.
BG/sW/I/ZVcUCjGfAicxv4kYLLYoMZlivDqU BFuLN7ACQrD6/3WaieXRD1JpSXW9s+/xCZ1x
V3GfAXR5Bp69ywKp1OA= ) 0ihUT1iKNvJS8F4Pafc= )
120 RRSIG DNSKEY 3 1 120 20820519023008 ( 120 RRSIG DNSKEY 3 1 120 (
20140501011600 12956 signed. 20820519023008 20140501011600 17876 signed.
BAoQwXiKVoWwY+IDfzRndz9ndLPTSShDHpxS BN+8hbh1FGTNqHds0In57dPr5fVRU/P28dZa
Z9+uTx+KCPzUsZYQy4k= ) zIP19bAwTH/ZvgrqUF0= )
a-only.signed. 120 IN NS 1.0.0.1.signed. a-only.signed. 120 IN NS 1.0.0.1.signed.
60 NSEC aaaa-only.signed. NS RRSIG NSEC 60 NSEC aaaa-only.signed. NS RRSIG NSEC
60 RRSIG NSEC 3 2 60 20820519023008 ( 60 RRSIG NSEC 3 2 60 (
20140501011600 12955 signed. 20820519023008 20140501011600 17876 signed.
BBRjTWMwkjpanDw386nblW6fwyliYRUeNNo+ BHpGpjMihpoIykHTpK1XmkVn0jqSST3/K6Fx
OHwhqHXXd4bathApttg= ) vTaIb24rpkTriaXxChM= )
aaaa-only.signed. 120 IN AAAA 2001:db8::2 aaaa-only.signed. 120 IN AAAA 2001:db8::2
120 RRSIG AAAA 3 2 120 20820519023008 ( 120 RRSIG AAAA 3 2 120 (
20140501011600 12955 signed. 20820519023008 20140501011600 17876 signed.
BDukZxGM62Wmk9JE7F5etkcX4LZyFLK0YS0H BOvYax/3CDnEKTtbc6zoP4hYwhMe5SoXZh0w
CF0lovOlBeK5zLgi/MA= ) muzBWw9bEH+Bdt1ZEQ4= )
60 NSEC dual.signed. AAAA RRSIG NSEC 60 NSEC dual.signed. AAAA RRSIG NSEC
60 RRSIG NSEC 3 2 60 20820519023008 ( 60 RRSIG NSEC 3 2 60 (
20140501011600 12955 signed. 20820519023008 20140501011600 17876 signed.
BH1TJpK7j1Gu01hb2PimefFISv59NDLfZ9Gr BIqxE79TUnT2DUuocTitGhTNGnLs0+3sLJdz
ojpnjDQNV6bA7HcHeEM= ) 8haJbyH8pig1h7mqimU= )
dual.signed. 120 IN A 1.0.0.3 dual.signed. 120 IN A 1.0.0.3
120 RRSIG A 3 2 120 20820519023008 ( 120 RRSIG A 3 2 120 (
20140501011600 12955 signed. 20820519023008 20140501011600 17876 signed.
BBIDPDxbSm3X/Xf5xh/MYIkAvZ9CWpEzSwbM BIGL70eEIGVDW0gcYpEWgCFv4ne14hutQCMh
Pks77CGb4rW8IF8WXxs= ) gQ6kcEbl2qszosJA60E= )
120 AAAA 2001:db8::3 120 AAAA 2001:db8::3
120 RRSIG AAAA 3 2 120 20820519023008 ( 120 RRSIG AAAA 3 2 120 (
20140501011600 12955 signed. 20820519023008 20140501011600 17876 signed.
BHKD6egOF6e2DfY7+iPNDPcMS6TdU8/OCm8u BCmwk+ng/x1O7MhheK8MgAXYFVDDbyiZ76RV
OYjmr11t5cI8S0R1Iqk= ) iwQrPRm0ThNRtsQU+UY= )
60 NSEC mx.signed. A AAAA RRSIG NSEC 60 NSEC mx.signed. A AAAA RRSIG NSEC
60 RRSIG NSEC 3 2 60 20820519023008 ( 60 RRSIG NSEC 3 2 60 (
20140501011600 12955 signed. 20820519023008 20140501011600 17876 signed.
BHeXsjvM4Bmr/Ih4eDgR9VTC7R/UFlz5ns+g BLlLAIHF4SX/eWMCkUvj0XTFmaOp3xnifqkL
7LPl+H9Oe6zGnM5rGOs= ) nSWOAqtzJ5fwAdbNBdM= )
mx.signed. 120 IN A 1.0.0.3 ns.signed. 120 IN A 10.53.0.1
120 RRSIG A 3 2 120 20820519023008 ( 120 RRSIG A 3 2 120 (
20140501011600 12955 signed. 20820519023008 20140501011600 17876 signed.
BAq3t2X4XDI/dIofEkALZsNn1ezNWDYFH0M2 BJ+Wll7VfNEjM4EfLY2rlx74oIwKRg9pjcJO
2GI5F0JHr/iZPlAzRbk= ) Zxt6GHQIJ2D6EfyMZ00= )
120 AAAA 2001:db8::3 120 AAAA fd92:7065:b8e:ffff::1
120 RRSIG AAAA 3 2 120 20820519023008 ( 120 RRSIG AAAA 3 2 120 (
20140501011600 12955 signed. 20820519023008 20140501011600 17876 signed.
BFts4Mon2FQaLQb6kPOKTEFkHaPIE1xUgrI6 BGT/agHn4qcHzLV2hYcGeLJ6Tz1to9sTB8LI
qV8tEaAyFXfhH4su6Y0= ) lMwkV/KUu6UO7yvrnYk= )
60 NSEC signed. A AAAA RRSIG NSEC 60 NSEC signed. A AAAA RRSIG NSEC
60 RRSIG NSEC 3 2 60 20820519023008 ( 60 RRSIG NSEC 3 2 60 (
20140501011600 12955 signed. 20820519023008 20140501011600 17876 signed.
BCQWnlB8hrID+v5xG/o8t8E+YDb3Fz7Qodmw BNe3XmEGd/xxoh8FN3T3V9G1enCzNQJ7l3G+
kBQ+ZwyIeLOoH2+as5A= ) D3QPrp7mYtPAGMxCLlc= )
mx.signed. 120 IN A 1.0.0.3
120 RRSIG A 3 2 120 (
20820519023008 20140501011600 17876 signed.
BMlIQp1acUSUvgzV1CWlM0+cS1bGkFsbS6HQ
d0S6TbNV+uNw0S1q0Dk= )
120 AAAA 2001:db8::3
120 RRSIG AAAA 3 2 120 (
20820519023008 20140501011600 17876 signed.
BGtSuYQF7sRVT5OdVHPJjm0PERzSp4v+d/DP
Vp2UD0vSVSr3Vj2Wi4M= )
60 NSEC ns.signed. A AAAA RRSIG NSEC
60 RRSIG NSEC 3 2 60 (
20820519023008 20140501011600 17876 signed.
BMzQWws37wYfHvLnqgvjd+j5dkzBb2RYhrQk
ykM0GnTAR6ZpmgQO6jc= )
-16
View File
@@ -1,16 +0,0 @@
#!/bin/sh
#
# Copyright (C) 2010, 2012, 2014, 2016 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/.
SYSTEMTESTTOP=..
. $SYSTEMTESTTOP/conf.sh
$FEATURETEST --enable-filter-aaaa || {
echo "I:This test requires --enable-filter-aaaa at compile time." >&2
exit 255
}
exit 0
+2
View File
@@ -486,6 +486,7 @@ fi
n=`expr $n + 1` n=`expr $n + 1`
ret=0 ret=0
echo "I:check that 'update-policy local' fails from non-localhost address ($n)" echo "I:check that 'update-policy local' fails from non-localhost address ($n)"
grep 'match on session key not from localhost' ns5/named.run > /dev/null && ret=1
$NSUPDATE -p 5300 -k ns5/session.key > nsupdate.out.$n 2>&1 << END && ret=1 $NSUPDATE -p 5300 -k ns5/session.key > nsupdate.out.$n 2>&1 << END && ret=1
server 10.53.0.5 5300 server 10.53.0.5 5300
local 10.53.0.1 local 10.53.0.1
@@ -493,6 +494,7 @@ update add nonlocal.local.nil. 600 A 4.3.2.1
send send
END END
grep REFUSED nsupdate.out.$n > /dev/null 2>&1 || ret=1 grep REFUSED nsupdate.out.$n > /dev/null 2>&1 || ret=1
grep 'match on session key not from localhost' ns5/named.run > /dev/null || ret=1
$DIG @10.53.0.5 -p 5300 \ $DIG @10.53.0.5 -p 5300 \
+tcp +noadd +nosea +nostat +noquest +nocomm +nocmd \ +tcp +noadd +nosea +nostat +noquest +nocomm +nocmd \
nonlocal.local.nil. > dig.out.ns5.$n || ret=1 nonlocal.local.nil. > dig.out.ns5.$n || ret=1
+17 -16
View File
@@ -100,26 +100,27 @@ $PERL stop.pl $test
status=`expr $status + $?` status=`expr $status + $?`
if [ $status != 0 ]; then if [ $status != 0 ]; then
echofail "R:FAIL" echofail "R:FAIL"
# Don't clean up - we need the evidence. # Don't clean up - we need the evidence.
find . -name core -exec chmod 0644 '{}' \; find . -name core -exec chmod 0644 '{}' \;
else else
echopass "R:PASS" echopass "R:PASS"
if $clean if $clean
then
rm -f $SYSTEMTESTTOP/random.data
if test -f $test/clean.sh
then then
rm -f $SYSTEMTESTTOP/random.data ( cd $test && $SHELL clean.sh "$@" )
if test -f $test/clean.sh
then
( cd $test && $SHELL clean.sh "$@" )
fi
if test -d ../../../.git
then
git status -su $test |
sed -n 's/^?? \(.*\)/I:file \1 not removed/p'
fi
fi fi
if test -d ../../../.git
then
git status -su --ignored $test |
sed -n -e 's|^?? \(.*\)|I:file \1 not removed|p' \
-e 's|^!! \(.*/named.run\)$|I:file \1 not removed|p' \
-e 's|^!! \(.*/named.memstats\)$|I:file \1 not removed|p'
fi
fi
fi fi
echoinfo "E:$test:`date`" echoinfo "E:$test:`date`"
@@ -0,0 +1,16 @@
/*
* Copyright (C) 2017 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/.
*/
options {
new-zones-directory "./nope";
port 5300;
pid-file "../named.pid";
listen-on { 127.0.0.1; };
listen-on-v6 { none; };
recursion no;
};
+11
View File
@@ -73,6 +73,17 @@ grep "managed-keys-directory './nope' is not writable" ns2/named.run > /dev/null
if [ $ret != 0 ]; then echo "I:failed"; fi if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret` status=`expr $status + $ret`
n=`expr $n + 1`
echo "I: checking that named refuses to reconfigure if new-zones-directory is not writable ($n)"
ret=0
cp -f ns2/named-alt6.conf ns2/named.conf
$RNDC -c ../common/rndc.conf -s 10.53.0.2 -p 9953 reconfig > rndc.out.$n 2>&1
grep "failed: permission denied" rndc.out.$n > /dev/null 2>&1 || ret=1
sleep 1
grep "new-zones-directory './nope' is not writable" ns2/named.run > /dev/null 2>&1 || ret=1
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
n=`expr $n + 1` n=`expr $n + 1`
echo "I: checking that named refuses to start if working directory is not writable ($n)" echo "I: checking that named refuses to start if working directory is not writable ($n)"
ret=0 ret=0
@@ -4,6 +4,8 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this # License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
rm -f */named.memstats
rm -f */named.run
rm -f dig.out.* rm -f dig.out.*
rm -f ns1/K*+*+*.key rm -f ns1/K*+*+*.key
rm -f ns1/K*+*+*.private rm -f ns1/K*+*+*.private
@@ -0,0 +1,34 @@
/*
* Copyright (C) 2017 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/.
*/
// NS4
controls { /* empty */ };
options {
query-source address 10.53.0.4;
notify-source 10.53.0.4;
transfer-source 10.53.0.4;
port 5300;
pid-file "named.pid";
listen-on { 10.53.0.4; };
listen-on-v6 { none; };
recursion yes;
notify no;
dnssec-enable yes;
dnssec-validation yes;
synth-from-dnssec no;
};
zone "." {
type hint;
file "root.hints";
};
include "../ns1/trusted.conf";
// include "../../common/controls.conf";
@@ -0,0 +1,8 @@
; Copyright (C) 2017 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/.
. NS ns1
ns1 A 10.53.0.1
@@ -0,0 +1,33 @@
/*
* Copyright (C) 2017 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/.
*/
// NS5
controls { /* empty */ };
options {
query-source address 10.53.0.5;
notify-source 10.53.0.5;
transfer-source 10.53.0.5;
port 5300;
pid-file "named.pid";
listen-on { 10.53.0.5; };
listen-on-v6 { none; };
recursion yes;
notify no;
dnssec-enable yes;
dnssec-validation yes;
synth-from-dnssec yes;
};
zone "." {
type hint;
file "root.hints";
};
include "../ns1/trusted.conf";
@@ -0,0 +1,8 @@
; Copyright (C) 2017 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/.
. NS ns1
ns1 A 10.53.0.1
+125 -82
View File
@@ -17,49 +17,58 @@ rm -f dig.out.*
DIGOPTS="+tcp +noadd +nosea +nostat +nocmd +dnssec -p 5300" DIGOPTS="+tcp +noadd +nosea +nostat +nocmd +dnssec -p 5300"
DELVOPTS="-a ns1/trusted.conf -p 5300" DELVOPTS="-a ns1/trusted.conf -p 5300"
echo "I:prime negative NXDOMAIN response ($n)" for ns in 2 4 5
ret=0 do
$DIG $DIGOPTS a.example. @10.53.0.2 a > dig.out.ns2.test$n || ret=1 case $ns in
grep "flags:[^;]* ad[ ;]" dig.out.ns2.test$n > /dev/null || ret=1 2) description="<default>";;
grep "status: NXDOMAIN," dig.out.ns2.test$n > /dev/null || ret=1 4) description="no";;
grep "example.*3600.IN.SOA" dig.out.ns2.test$n > /dev/null || ret=1 5) description="yes";;
nxdomain=dig.out.ns2.test$n *) exit 1;;
n=`expr $n + 1` esac
if [ $ret != 0 ]; then echo "I:failed"; fi echo "I:prime negative NXDOMAIN response (synth-from-dnssec ${description};) ($n)"
status=`expr $status + $ret` ret=0
$DIG $DIGOPTS a.example. @10.53.0.${ns} a > dig.out.ns${ns}.test$n || ret=1
grep "flags:[^;]* ad[ ;]" dig.out.ns${ns}.test$n > /dev/null || ret=1
grep "status: NXDOMAIN," dig.out.ns${ns}.test$n > /dev/null || ret=1
grep "example.*3600.IN.SOA" dig.out.ns${ns}.test$n > /dev/null || ret=1
[ $ns -eq ${ns} ] && nxdomain=dig.out.ns${ns}.test$n
n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
echo "I:prime negative NODATA response ($n)" echo "I:prime negative NODATA response (synth-from-dnssec ${description};) ($n)"
ret=0 ret=0
$DIG $DIGOPTS nodata.example. @10.53.0.2 a > dig.out.ns2.test$n || ret=1 $DIG $DIGOPTS nodata.example. @10.53.0.${ns} a > dig.out.ns${ns}.test$n || ret=1
grep "flags:[^;]* ad[ ;]" dig.out.ns2.test$n > /dev/null || ret=1 grep "flags:[^;]* ad[ ;]" dig.out.ns${ns}.test$n > /dev/null || ret=1
grep "status: NOERROR," dig.out.ns2.test$n > /dev/null || ret=1 grep "status: NOERROR," dig.out.ns${ns}.test$n > /dev/null || ret=1
grep "example.*3600.IN.SOA" dig.out.ns2.test$n > /dev/null || ret=1 grep "example.*3600.IN.SOA" dig.out.ns${ns}.test$n > /dev/null || ret=1
nodata=dig.out.ns2.test$n [ $ns -eq 2 ] && nodata=dig.out.ns${ns}.test$n
n=`expr $n + 1` n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret` status=`expr $status + $ret`
echo "I:prime wildcard response ($n)" echo "I:prime wildcard response (synth-from-dnssec ${description};) ($n)"
ret=0 ret=0
$DIG $DIGOPTS a.wild-a.example. @10.53.0.2 a > dig.out.ns2.test$n || ret=1 $DIG $DIGOPTS a.wild-a.example. @10.53.0.${ns} a > dig.out.ns${ns}.test$n || ret=1
grep "flags:[^;]* ad[ ;]" dig.out.ns2.test$n > /dev/null || ret=1 grep "flags:[^;]* ad[ ;]" dig.out.ns${ns}.test$n > /dev/null || ret=1
grep "status: NOERROR," dig.out.ns2.test$n > /dev/null || ret=1 grep "status: NOERROR," dig.out.ns${ns}.test$n > /dev/null || ret=1
grep "a.wild-a.example.*3600.IN.A" dig.out.ns2.test$n > /dev/null || ret=1 grep "a.wild-a.example.*3600.IN.A" dig.out.ns${ns}.test$n > /dev/null || ret=1
n=`expr $n + 1` n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret` status=`expr $status + $ret`
echo "I:prime wildcard CNAME response ($n)" echo "I:prime wildcard CNAME response (synth-from-dnssec ${description};) ($n)"
ret=0 ret=0
$DIG $DIGOPTS a.wild-cname.example. @10.53.0.2 a > dig.out.ns2.test$n || ret=1 $DIG $DIGOPTS a.wild-cname.example. @10.53.0.${ns} a > dig.out.ns${ns}.test$n || ret=1
grep "flags:[^;]* ad[ ;]" dig.out.ns2.test$n > /dev/null || ret=1 grep "flags:[^;]* ad[ ;]" dig.out.ns${ns}.test$n > /dev/null || ret=1
grep "status: NOERROR," dig.out.ns2.test$n > /dev/null || ret=1 grep "status: NOERROR," dig.out.ns${ns}.test$n > /dev/null || ret=1
grep "a.wild-cname.example.*3600.IN.CNAME" dig.out.ns2.test$n > /dev/null || ret=1 grep "a.wild-cname.example.*3600.IN.CNAME" dig.out.ns${ns}.test$n > /dev/null || ret=1
n=`expr $n + 1` n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret` status=`expr $status + $ret`
done
echo "I:prime redirect response (+nodnssec) ($n)" echo "I:prime redirect response (+nodnssec) (synth-from-dnssec <default>;) ($n)"
ret=0 ret=0
$DIG $DIGOPTS +nodnssec a.redirect. @10.53.0.3 a > dig.out.ns2.test$n || ret=1 $DIG $DIGOPTS +nodnssec a.redirect. @10.53.0.3 a > dig.out.ns2.test$n || ret=1
grep "flags:[^;]* ad[ ;]" dig.out.ns2.test$n > /dev/null && ret=1 grep "flags:[^;]* ad[ ;]" dig.out.ns2.test$n > /dev/null && ret=1
@@ -69,54 +78,88 @@ n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret` status=`expr $status + $ret`
#
# ensure TTL of synthesised answers differs from direct answers.
#
sleep 1 sleep 1
$RNDC -c ../common/rndc.conf -s 10.53.0.2 -p 9953 dumpdb for ns in 2 4 5
do
case $ns in
2) synth=yes description="<default>";;
4) synth=no description="no";;
5) synth=yes description="yes";;
*) exit 1;;
esac
echo "I:check synthesized NXDOMAIN response (synth-from-dnssec ${description};) ($n)"
ret=0
$DIG $DIGOPTS b.example. @10.53.0.${ns} a > dig.out.ns${ns}.test$n || ret=1
grep "flags:[^;]* ad[ ;]" dig.out.ns${ns}.test$n > /dev/null || ret=1
grep "status: NXDOMAIN," dig.out.ns${ns}.test$n > /dev/null || ret=1
if [ ${synth} = yes ]
then
grep "example.*IN.SOA" dig.out.ns${ns}.test$n > /dev/null || ret=1
grep "example.*3600.IN.SOA" dig.out.ns${ns}.test$n > /dev/null && ret=1
else
grep "example.*3600.IN.SOA" dig.out.ns${ns}.test$n > /dev/null || ret=1
fi
$PERL ../digcomp.pl $nxdomain dig.out.ns${ns}.test$n || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
echo "I:check synthesized NXDOMAIN response ($n)" echo "I:check synthesized NODATA response (synth-from-dnssec ${description};) ($n)"
ret=0 ret=0
$DIG $DIGOPTS b.example. @10.53.0.2 a > dig.out.ns2.test$n || ret=1 $DIG $DIGOPTS nodata.example. @10.53.0.${ns} aaaa > dig.out.ns${ns}.test$n || ret=1
grep "flags:[^;]* ad[ ;]" dig.out.ns2.test$n > /dev/null || ret=1 grep "flags:[^;]* ad[ ;]" dig.out.ns${ns}.test$n > /dev/null || ret=1
grep "status: NXDOMAIN," dig.out.ns2.test$n > /dev/null || ret=1 grep "status: NOERROR," dig.out.ns${ns}.test$n > /dev/null || ret=1
grep "example.*3600.IN.SOA" dig.out.ns2.test$n > /dev/null && ret=1 if [ ${synth} = yes ]
$PERL ../digcomp.pl $nxdomain dig.out.ns2.test$n || ret=1 then
n=`expr $n + 1` grep "example.*IN.SOA" dig.out.ns${ns}.test$n > /dev/null || ret=1
if [ $ret != 0 ]; then echo "I:failed"; fi grep "example.*3600.IN.SOA" dig.out.ns${ns}.test$n > /dev/null && ret=1
status=`expr $status + $ret` else
grep "example.*3600.IN.SOA" dig.out.ns${ns}.test$n > /dev/null || ret=1
fi
$PERL ../digcomp.pl $nodata dig.out.ns${ns}.test$n || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
echo "I:check synthesized NODATA response ($n)" echo "I:check synthesized wildcard response (synth-from-dnssec ${description};) ($n)"
ret=0 ret=0
$DIG $DIGOPTS nodata.example. @10.53.0.2 aaaa > dig.out.ns2.test$n || ret=1 $DIG $DIGOPTS b.wild-a.example. @10.53.0.${ns} a > dig.out.ns${ns}.test$n || ret=1
grep "flags:[^;]* ad[ ;]" dig.out.ns2.test$n > /dev/null || ret=1 grep "flags:[^;]* ad[ ;]" dig.out.ns${ns}.test$n > /dev/null || ret=1
grep "status: NOERROR," dig.out.ns2.test$n > /dev/null || ret=1 grep "status: NOERROR," dig.out.ns${ns}.test$n > /dev/null || ret=1
grep "example.*3600.IN.SOA" dig.out.ns2.test$n > /dev/null && ret=1 if [ ${synth} = yes ]
$PERL ../digcomp.pl $nodata dig.out.ns2.test$n || ret=1 then
n=`expr $n + 1` grep "b\.wild-a\.example\..*IN.A" dig.out.ns${ns}.test$n > /dev/null || ret=1
if [ $ret != 0 ]; then echo "I:failed"; fi grep "b\.wild-a\.example\..*3600.IN.A" dig.out.ns${ns}.test$n > /dev/null && ret=1
status=`expr $status + $ret` else
grep "b\.wild-a\.example\..*3600.IN.A" dig.out.ns${ns}.test$n > /dev/null || ret=1
fi
n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
echo "I:check synthesized wildcard response ($n)" echo "I:check synthesized wildcard CNAME response (synth-from-dnssec ${description};) ($n)"
ret=0 ret=0
$DIG $DIGOPTS b.wild-a.example. @10.53.0.2 a > dig.out.ns2.test$n || ret=1 $DIG $DIGOPTS b.wild-cname.example. @10.53.0.${ns} a > dig.out.ns${ns}.test$n || ret=1
grep "flags:[^;]* ad[ ;]" dig.out.ns2.test$n > /dev/null || ret=1 grep "flags:[^;]* ad[ ;]" dig.out.ns${ns}.test$n > /dev/null || ret=1
grep "status: NOERROR," dig.out.ns2.test$n > /dev/null || ret=1 grep "status: NOERROR," dig.out.ns${ns}.test$n > /dev/null || ret=1
grep "b\.wild-a\.example\..*3600.IN.A" dig.out.ns2.test$n > /dev/null && ret=1 if [ ${synth} = yes ]
n=`expr $n + 1` then
if [ $ret != 0 ]; then echo "I:failed"; fi grep "b.wild-cname.example.*IN.CNAME" dig.out.ns${ns}.test$n > /dev/null || ret=1
status=`expr $status + $ret` grep "b.wild-cname.example.*3600.IN.CNAME" dig.out.ns${ns}.test$n > /dev/null && ret=1
else
grep "b.wild-cname.example.*3600.IN.CNAME" dig.out.ns${ns}.test$n > /dev/null || ret=1
fi
grep "ns1.example.*.IN.A" dig.out.ns${ns}.test$n > /dev/null || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
done
echo "I:check synthesized wildcard CNAME response ($n)" echo "I:check redirect response (+dnssec) (synth-from-dnssec <default>;) ($n)"
ret=0
$DIG $DIGOPTS b.wild-cname.example. @10.53.0.2 a > dig.out.ns2.test$n || ret=1
grep "flags:[^;]* ad[ ;]" dig.out.ns2.test$n > /dev/null || ret=1
grep "status: NOERROR," dig.out.ns2.test$n > /dev/null || ret=1
grep "b.wild-cname.example.*3600.IN.CNAME" dig.out.ns2.test$n > /dev/null && ret=1
grep "ns1.example.*.IN.A" dig.out.ns2.test$n > /dev/null || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
echo "I:check redirect response (+dnssec) ($n)"
ret=0 ret=0
$DIG $DIGOPTS b.redirect. @10.53.0.3 a > dig.out.ns2.test$n || ret=1 $DIG $DIGOPTS b.redirect. @10.53.0.3 a > dig.out.ns2.test$n || ret=1
grep "flags:[^;]* ad[ ;]" dig.out.ns2.test$n > /dev/null || ret=1 grep "flags:[^;]* ad[ ;]" dig.out.ns2.test$n > /dev/null || ret=1
@@ -126,7 +169,7 @@ n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret` status=`expr $status + $ret`
echo "I:check redirect response (+nodnssec) ($n)" echo "I:check redirect response (+nodnssec) (synth-from-dnssec <default>;) ($n)"
ret=0 ret=0
$DIG $DIGOPTS +nodnssec b.redirect. @10.53.0.3 a > dig.out.ns2.test$n || ret=1 $DIG $DIGOPTS +nodnssec b.redirect. @10.53.0.3 a > dig.out.ns2.test$n || ret=1
grep "flags:[^;]* ad[ ;]" dig.out.ns2.test$n > /dev/null && ret=1 grep "flags:[^;]* ad[ ;]" dig.out.ns2.test$n > /dev/null && ret=1
-4
View File
@@ -141,10 +141,6 @@ int sigwait(const unsigned int *set, int *sig);
/* Use AES for Client Cookie generation */ /* Use AES for Client Cookie generation */
#undef AES_CC #undef AES_CC
/* Define to enable the "filter-aaaa-on-v4" and "filter-aaaa-on-v6" options.
*/
#undef ALLOW_FILTER_AAAA
/* define if ATF unit tests are to be built. */ /* define if ATF unit tests are to be built. */
#undef ATF_TEST #undef ATF_TEST
-4
View File
@@ -306,10 +306,6 @@ typedef __int64 off_t;
/* Define to the sockaddr length type used by getnameinfo(3). */ /* Define to the sockaddr length type used by getnameinfo(3). */
#define IRS_GETNAMEINFO_SOCKLEN_T socklen_t #define IRS_GETNAMEINFO_SOCKLEN_T socklen_t
/* Define to enable the "filter-aaaa-on-v4" and "filter-aaaa-on-v6" options.
*/
@ALLOW_FILTER_AAAA@
/* Define to enable "rrset-order fixed" syntax. */ /* Define to enable "rrset-order fixed" syntax. */
@DNS_RDATASET_FIXED@ @DNS_RDATASET_FIXED@
Vendored
+13 -28
View File
@@ -940,6 +940,7 @@ infodir
docdir docdir
oldincludedir oldincludedir
includedir includedir
runstatedir
localstatedir localstatedir
sharedstatedir sharedstatedir
sysconfdir sysconfdir
@@ -1033,7 +1034,6 @@ enable_dnsrps_dl
with_dnsrps_libname with_dnsrps_libname
with_dnsrps_dir with_dnsrps_dir
enable_dnsrps enable_dnsrps
enable_filter_aaaa
enable_dnstap enable_dnstap
with_protobuf_c with_protobuf_c
with_libfstrm with_libfstrm
@@ -1103,6 +1103,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc' sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com' sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var' localstatedir='${prefix}/var'
runstatedir='${localstatedir}/run'
includedir='${prefix}/include' includedir='${prefix}/include'
oldincludedir='/usr/include' oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1355,6 +1356,15 @@ do
| -silent | --silent | --silen | --sile | --sil) | -silent | --silent | --silen | --sile | --sil)
silent=yes ;; silent=yes ;;
-runstatedir | --runstatedir | --runstatedi | --runstated \
| --runstate | --runstat | --runsta | --runst | --runs \
| --run | --ru | --r)
ac_prev=runstatedir ;;
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
| --run=* | --ru=* | --r=*)
runstatedir=$ac_optarg ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;; ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1492,7 +1502,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \ datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir libdir localedir mandir runstatedir
do do
eval ac_val=\$$ac_var eval ac_val=\$$ac_var
# Remove trailing slashes. # Remove trailing slashes.
@@ -1645,6 +1655,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var] --localstatedir=DIR modifiable single-machine data [PREFIX/var]
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib] --libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include] --includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include] --oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -1719,7 +1730,6 @@ Optional Features:
--disable-rpz-nsdname disable rpz nsdname rules [default=enabled] --disable-rpz-nsdname disable rpz nsdname rules [default=enabled]
--enable-dnsrps-dl DNS Response Policy Service delayed link [default=$librpz_dl] --enable-dnsrps-dl DNS Response Policy Service delayed link [default=$librpz_dl]
--enable-dnsrps enable DNS Response Policy Service API --enable-dnsrps enable DNS Response Policy Service API
--enable-filter-aaaa enable filtering of AAAA records [default=no]
--enable-dnstap enable dnstap support (requires fstrm, protobuf-c) --enable-dnstap enable dnstap support (requires fstrm, protobuf-c)
--enable-querytrace enable very verbose query trace logging [default=no] --enable-querytrace enable very verbose query trace logging [default=no]
--enable-full-report report values of all configure options --enable-full-report report values of all configure options
@@ -11470,7 +11480,6 @@ yes)
test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes
test "${enable_querytrace+set}" = set || enable_querytrace=yes test "${enable_querytrace+set}" = set || enable_querytrace=yes
test "${with_atf+set}" = set || with_atf=yes test "${with_atf+set}" = set || with_atf=yes
test "${enable_filter_aaaa+set}" = set || enable_filter_aaaa=yes
test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes
test "${enable_symtable+set}" = set || enable_symtable=all test "${enable_symtable+set}" = set || enable_symtable=all
test "${enable_warn_error+set}" = set || enable_warn_error=yes test "${enable_warn_error+set}" = set || enable_warn_error=yes
@@ -20944,28 +20953,6 @@ $as_echo "#define USE_DNSRPS 1" >>confdefs.h
fi fi
#
# Activate "filter-aaaa-on-v4/v6" or not?
#
# Check whether --enable-filter-aaaa was given.
if test "${enable_filter_aaaa+set}" = set; then :
enableval=$enable_filter_aaaa; enable_filter="$enableval"
else
enable_filter="no"
fi
case "$enable_filter" in
yes)
$as_echo "#define ALLOW_FILTER_AAAA 1" >>confdefs.h
;;
no)
;;
*)
;;
esac
# #
# Activate dnstap? # Activate dnstap?
# #
@@ -26238,8 +26225,6 @@ report() {
echo " DNS Response Policy Service interface (--enable-dnsrps)" echo " DNS Response Policy Service interface (--enable-dnsrps)"
test "yes" = "$enable_fixed" && \ test "yes" = "$enable_fixed" && \
echo " Allow 'fixed' rrset-order (--enable-fixed-rrset)" echo " Allow 'fixed' rrset-order (--enable-fixed-rrset)"
test "yes" = "$enable_filter" && \
echo " AAAA filtering (--enable-filter-aaaa)"
test "yes" = "$enable_seccomp" && \ test "yes" = "$enable_seccomp" && \
echo " Use libseccomp system call filtering (--enable-seccomp)" echo " Use libseccomp system call filtering (--enable-seccomp)"
test "yes" = "$want_backtrace" && \ test "yes" = "$want_backtrace" && \
-21
View File
@@ -66,7 +66,6 @@ yes)
test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes
test "${enable_querytrace+set}" = set || enable_querytrace=yes test "${enable_querytrace+set}" = set || enable_querytrace=yes
test "${with_atf+set}" = set || with_atf=yes test "${with_atf+set}" = set || with_atf=yes
test "${enable_filter_aaaa+set}" = set || enable_filter_aaaa=yes
test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes
test "${enable_symtable+set}" = set || enable_symtable=all test "${enable_symtable+set}" = set || enable_symtable=all
test "${enable_warn_error+set}" = set || enable_warn_error=yes test "${enable_warn_error+set}" = set || enable_warn_error=yes
@@ -4413,24 +4412,6 @@ if test "x$enable_dnsrps" != "xno"; then
AC_DEFINE([USE_DNSRPS], [1], [Enable DNS Response Policy Service API]) AC_DEFINE([USE_DNSRPS], [1], [Enable DNS Response Policy Service API])
fi fi
#
# Activate "filter-aaaa-on-v4/v6" or not?
#
AC_ARG_ENABLE(filter-aaaa,
[ --enable-filter-aaaa enable filtering of AAAA records [[default=no]]],
enable_filter="$enableval",
enable_filter="no")
case "$enable_filter" in
yes)
AC_DEFINE(ALLOW_FILTER_AAAA, 1,
[Define to enable the "filter-aaaa-on-v4" and "filter-aaaa-on-v6" options.])
;;
no)
;;
*)
;;
esac
# #
# Activate dnstap? # Activate dnstap?
# #
@@ -5481,8 +5462,6 @@ report() {
echo " DNS Response Policy Service interface (--enable-dnsrps)" echo " DNS Response Policy Service interface (--enable-dnsrps)"
test "yes" = "$enable_fixed" && \ test "yes" = "$enable_fixed" && \
echo " Allow 'fixed' rrset-order (--enable-fixed-rrset)" echo " Allow 'fixed' rrset-order (--enable-fixed-rrset)"
test "yes" = "$enable_filter" && \
echo " AAAA filtering (--enable-filter-aaaa)"
test "yes" = "$enable_seccomp" && \ test "yes" = "$enable_seccomp" && \
echo " Use libseccomp system call filtering (--enable-seccomp)" echo " Use libseccomp system call filtering (--enable-seccomp)"
test "yes" = "$want_backtrace" && \ test "yes" = "$want_backtrace" && \
+50 -27
View File
@@ -1171,7 +1171,7 @@ zone "eng.example.com" {
"<userinput>hmac-sha256</userinput>", "<userinput>hmac-sha256</userinput>",
"<userinput>hmac-sha384</userinput>" "<userinput>hmac-sha384</userinput>"
and "<userinput>hmac-sha512</userinput>" and "<userinput>hmac-sha512</userinput>"
have any meaning. The secret is a base-64 encoded string have any meaning. The secret is a Base64 encoded string
as specified in RFC 3548. as specified in RFC 3548.
</para> </para>
@@ -3552,7 +3552,7 @@ $ORIGIN 0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.
number of required bits preceded by a dash, e.g. number of required bits preceded by a dash, e.g.
<literal>hmac-sha1-80</literal>. The <literal>hmac-sha1-80</literal>. The
<replaceable>secret_string</replaceable> is the secret <replaceable>secret_string</replaceable> is the secret
to be used by the algorithm, and is treated as a base-64 to be used by the algorithm, and is treated as a Base64
encoded string. encoded string.
</para> </para>
@@ -3815,17 +3815,17 @@ notrace</command>. All debugging messages in the server have a debug
<command>print-time</command> can be set to <command>print-time</command> can be set to
<userinput>yes</userinput>, <userinput>no</userinput>, <userinput>yes</userinput>, <userinput>no</userinput>,
or a time format specifier, which may be one of or a time format specifier, which may be one of
<option>local</option>, <option>iso8601</option> or <userinput>local</userinput>, <userinput>iso8601</userinput> or
<option>iso8601-utc</option>. If set to <userinput>iso8601-utc</userinput>. If set to
<userinput>no</userinput>, then the date and time will <userinput>no</userinput>, then the date and time will
not be logged. If set to <userinput>yes</userinput> not be logged. If set to <userinput>yes</userinput>
or <option>local</option>, the date and time are logged or <userinput>local</userinput>, the date and time are logged
in a human readable format, using the local time zone. in a human readable format, using the local time zone.
If set to <option>iso8601</option> the local time is If set to <userinput>iso8601</userinput> the local time is
logged in ISO8601 format. If set to logged in ISO8601 format. If set to
<option>iso8601-utc</option>, then the date and time <userinput>iso8601-utc</userinput>, then the date and time
are logged in ISO8601 format, with time zone set to are logged in ISO8601 format, with time zone set to
UTC. The default is <option>local</option>. UTC. The default is <userinput>local</userinput>.
</para> </para>
<para> <para>
<command>print-time</command> may <command>print-time</command> may
@@ -4987,7 +4987,10 @@ badresp:1,adberr:0,findfail:0,valfail:0]
<para> <para>
Specifies the directory in which to store the configuration Specifies the directory in which to store the configuration
parameters for zones added via <command>rndc addzone</command>. parameters for zones added via <command>rndc addzone</command>.
By default, this is the working directory. By default, this is the working directory. If set to a relative
path, it will be relative to the working directory. The
directory <emphasis>must</emphasis> be writable by the
effective user ID of the <command>named</command> process.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@@ -5710,12 +5713,14 @@ options {
<listitem> <listitem>
<para> <para>
Specifies the TTL to be returned on stale answers. Specifies the TTL to be returned on stale answers.
The default is 1 second. The minimal allowed is The default is 1 second. The minimum allowed is
also 1 second; a value of 0 will be updated silently also 1 second; a value of 0 will be updated silently
to 1 second. For stale answers to be returned to 1 second. For stale answers to be returned,
they must be enabled (either in the configuration file
using <command>stale-answer-enable</command> or via
<command>rndc</command>), and
<option>max-stale-ttl</option> must be set to a <option>max-stale-ttl</option> must be set to a
non zero value and they must not have been disabled nonzero value.
by <command>rndc</command>.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@@ -6448,17 +6453,21 @@ options {
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><command>serve-stale-enable</command></term> <term><command>stale-answer-enable</command></term>
<listitem> <listitem>
<para> <para>
Enable the returning of stale answers when the Enable the returning of stale answers when the
nameservers for the zone are not answering. This nameservers for the zone are not answering. This
is off by default but can be enabled/disabled via is off by default, but can be enabled/disabled via
<command>rndc server-stale on</command> and <command>rndc serve-stale on</command> and
<command>rndc server-stale off</command> which <command>rndc serve-stale off</command>, which
override the named.conf setting. <command>rndc override the <filename>named.conf</filename>
server-stale reset</command> will restore control setting. <command>rndc serve-stale reset</command>
via named.conf. restores the setting to the one specified in
<filename>named.conf</filename>. Note that
reloading or reconfiguring <command>named</command>
will not re-enable serving of stale records if they
have been disabled via <command>rndc</command>.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@@ -6707,10 +6716,7 @@ options {
<term><command>filter-aaaa-on-v4</command></term> <term><command>filter-aaaa-on-v4</command></term>
<listitem> <listitem>
<para> <para>
This option is only available when This option is intended to help the
<acronym>BIND</acronym> 9 is compiled with the
<userinput>--enable-filter-aaaa</userinput> option on the
"configure" command line. It is intended to help the
transition from IPv4 to IPv6 by not giving IPv6 addresses transition from IPv4 to IPv6 by not giving IPv6 addresses
to DNS clients unless they have connections to the IPv6 to DNS clients unless they have connections to the IPv6
Internet. This is not recommended unless absolutely Internet. This is not recommended unless absolutely
@@ -8824,7 +8830,7 @@ avoid-v6-udp-ports { 40000; range 50000 60000; };
server waits on an idle TCP connection before closing server waits on an idle TCP connection before closing
it when the client is using the EDNS TCP keepalive it when the client is using the EDNS TCP keepalive
option. The default is 300 (30 seconds), the maximum option. The default is 300 (30 seconds), the maximum
is 1200 (two minutes), and the minimum is 1 (one tenth is 65535 (about 1.8 hours), and the minimum is 1 (one tenth
of a second). Values above the maximum or below the minimum of a second). Values above the maximum or below the minimum
will be adjusted with a logged warning. will be adjusted with a logged warning.
This value may be greater than This value may be greater than
@@ -8846,7 +8852,7 @@ avoid-v6-udp-ports { 40000; range 50000 60000; };
keepalive option. This informs a client of the keepalive option. This informs a client of the
amount of time it may keep the session open. amount of time it may keep the session open.
The default is 300 (30 seconds), the maximum is The default is 300 (30 seconds), the maximum is
1200 (two minutes), and the minimum is 0, which 65535 (about 1.8 hours), and the minimum is 0, which
signals that the clients must close TCP connections signals that the clients must close TCP connections
immediately. Ordinarily this should be set to the immediately. Ordinarily this should be set to the
same value as <command>tcp-keepalive-timeout</command>. same value as <command>tcp-keepalive-timeout</command>.
@@ -11356,7 +11362,7 @@ example.com CNAME rpz-tcp-only.
<para> <para>
The <command>trusted-keys</command> statement can contain The <command>trusted-keys</command> statement can contain
multiple key entries, each consisting of the key's multiple key entries, each consisting of the key's
domain name, flags, protocol, algorithm, and the Base-64 domain name, flags, protocol, algorithm, and the Base64
representation of the key data. representation of the key data.
Spaces, tabs, newlines and carriage returns are ignored Spaces, tabs, newlines and carriage returns are ignored
in the key data, so the configuration may be split up into in the key data, so the configuration may be split up into
@@ -12503,6 +12509,23 @@ view "external" {
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><command>file</command></term>
<listitem>
<para>
Set the zone's filename. In <command>master</command>,
<command>hint</command>, and <command>redirect</command>
zones which do not have <command>masters</command>
defined, zone data is loaded from this file. In
<command>slave</command>, <command>stub</command>, and
<command>redirect</command> zones which do have
<command>masters</command> defined, zone data is
retrieved from another server and saved in this file.
This option is not applicable to other zone types.
</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term><command>forward</command></term> <term><command>forward</command></term>
<listitem> <listitem>
+1 -1
View File
@@ -603,7 +603,7 @@ zone "eng.example.com" {
"<strong class="userinput"><code>hmac-sha256</code></strong>", "<strong class="userinput"><code>hmac-sha256</code></strong>",
"<strong class="userinput"><code>hmac-sha384</code></strong>" "<strong class="userinput"><code>hmac-sha384</code></strong>"
and "<strong class="userinput"><code>hmac-sha512</code></strong>" and "<strong class="userinput"><code>hmac-sha512</code></strong>"
have any meaning. The secret is a base-64 encoded string have any meaning. The secret is a Base64 encoded string
as specified in RFC 3548. as specified in RFC 3548.
</p> </p>
+41 -20
View File
@@ -1232,7 +1232,7 @@
number of required bits preceded by a dash, e.g. number of required bits preceded by a dash, e.g.
<code class="literal">hmac-sha1-80</code>. The <code class="literal">hmac-sha1-80</code>. The
<em class="replaceable"><code>secret_string</code></em> is the secret <em class="replaceable"><code>secret_string</code></em> is the secret
to be used by the algorithm, and is treated as a base-64 to be used by the algorithm, and is treated as a Base64
encoded string. encoded string.
</p> </p>
@@ -1501,17 +1501,17 @@ notrace</strong></span>. All debugging messages in the server have a debug
<span class="command"><strong>print-time</strong></span> can be set to <span class="command"><strong>print-time</strong></span> can be set to
<strong class="userinput"><code>yes</code></strong>, <strong class="userinput"><code>no</code></strong>, <strong class="userinput"><code>yes</code></strong>, <strong class="userinput"><code>no</code></strong>,
or a time format specifier, which may be one of or a time format specifier, which may be one of
<code class="option">local</code>, <code class="option">iso8601</code> or <strong class="userinput"><code>local</code></strong>, <strong class="userinput"><code>iso8601</code></strong> or
<code class="option">iso8601-utc</code>. If set to <strong class="userinput"><code>iso8601-utc</code></strong>. If set to
<strong class="userinput"><code>no</code></strong>, then the date and time will <strong class="userinput"><code>no</code></strong>, then the date and time will
not be logged. If set to <strong class="userinput"><code>yes</code></strong> not be logged. If set to <strong class="userinput"><code>yes</code></strong>
or <code class="option">local</code>, the date and time are logged or <strong class="userinput"><code>local</code></strong>, the date and time are logged
in a human readable format, using the local time zone. in a human readable format, using the local time zone.
If set to <code class="option">iso8601</code> the local time is If set to <strong class="userinput"><code>iso8601</code></strong> the local time is
logged in ISO8601 format. If set to logged in ISO8601 format. If set to
<code class="option">iso8601-utc</code>, then the date and time <strong class="userinput"><code>iso8601-utc</code></strong>, then the date and time
are logged in ISO8601 format, with time zone set to are logged in ISO8601 format, with time zone set to
UTC. The default is <code class="option">local</code>. UTC. The default is <strong class="userinput"><code>local</code></strong>.
</p> </p>
<p> <p>
<span class="command"><strong>print-time</strong></span> may <span class="command"><strong>print-time</strong></span> may
@@ -3045,7 +3045,8 @@ badresp:1,adberr:0,findfail:0,valfail:0]
<p> <p>
Specifies the directory in which to store the configuration Specifies the directory in which to store the configuration
parameters for zones added via <span class="command"><strong>rndc addzone</strong></span>. parameters for zones added via <span class="command"><strong>rndc addzone</strong></span>.
By default, this is the working directory. By default, this is the working directory. If set to a relative
path, it will be relative to the working directory.
</p> </p>
</dd> </dd>
<dt><span class="term"><span class="command"><strong>named-xfer</strong></span></span></dt> <dt><span class="term"><span class="command"><strong>named-xfer</strong></span></span></dt>
@@ -3671,12 +3672,14 @@ options {
<dd> <dd>
<p> <p>
Specifies the TTL to be returned on stale answers. Specifies the TTL to be returned on stale answers.
The default is 1 second. The minimal allowed is The default is 1 second. The minimum allowed is
also 1 second; a value of 0 will be updated silently also 1 second; a value of 0 will be updated silently
to 1 second. For stale answers to be returned to 1 second. For stale answers to be returned,
they must be enabled (either in the configuration file
using <span class="command"><strong>stale-answer-enable</strong></span> or via
<span class="command"><strong>rndc</strong></span>), and
<code class="option">max-stale-ttl</code> must be set to a <code class="option">max-stale-ttl</code> must be set to a
non zero value and they must not have been disabled nonzero value.
by <span class="command"><strong>rndc</strong></span>.
</p> </p>
</dd> </dd>
<dt><span class="term"><span class="command"><strong>serial-update-method</strong></span></span></dt> <dt><span class="term"><span class="command"><strong>serial-update-method</strong></span></span></dt>
@@ -4330,17 +4333,21 @@ options {
<span class="command"><strong>nocookie-udp-size</strong></span> option. <span class="command"><strong>nocookie-udp-size</strong></span> option.
</p> </p>
</dd> </dd>
<dt><span class="term"><span class="command"><strong>serve-stale-enable</strong></span></span></dt> <dt><span class="term"><span class="command"><strong>stale-answer-enable</strong></span></span></dt>
<dd> <dd>
<p> <p>
Enable the returning of stale answers when the Enable the returning of stale answers when the
nameservers for the zone are not answering. This nameservers for the zone are not answering. This
is off by default but can be enabled/disabled via is off by default, but can be enabled/disabled via
<span class="command"><strong>rndc server-stale on</strong></span> and <span class="command"><strong>rndc serve-stale on</strong></span> and
<span class="command"><strong>rndc server-stale off</strong></span> which <span class="command"><strong>rndc serve-stale off</strong></span>, which
override the named.conf setting. <span class="command"><strong>rndc override the <code class="filename">named.conf</code>
server-stale reset</strong></span> will restore control setting. <span class="command"><strong>rndc serve-stale reset</strong></span>
via named.conf. restores the setting to the one specified in
<code class="filename">named.conf</code>. Note that
reloading or reconfiguring <span class="command"><strong>named</strong></span>
will not re-enable serving of stale records if they
have been disabled via <span class="command"><strong>rndc</strong></span>.
</p> </p>
</dd> </dd>
<dt><span class="term"><span class="command"><strong>nocookie-udp-size</strong></span></span></dt> <dt><span class="term"><span class="command"><strong>nocookie-udp-size</strong></span></span></dt>
@@ -8884,7 +8891,7 @@ example.com CNAME rpz-tcp-only.
<p> <p>
The <span class="command"><strong>trusted-keys</strong></span> statement can contain The <span class="command"><strong>trusted-keys</strong></span> statement can contain
multiple key entries, each consisting of the key's multiple key entries, each consisting of the key's
domain name, flags, protocol, algorithm, and the Base-64 domain name, flags, protocol, algorithm, and the Base64
representation of the key data. representation of the key data.
Spaces, tabs, newlines and carriage returns are ignored Spaces, tabs, newlines and carriage returns are ignored
in the key data, so the configuration may be split up into in the key data, so the configuration may be split up into
@@ -9981,6 +9988,20 @@ view "external" {
See caveats in <a class="xref" href="Bv9ARM.ch06.html#root_delegation_only"><span class="command"><strong>root-delegation-only</strong></span></a>. See caveats in <a class="xref" href="Bv9ARM.ch06.html#root_delegation_only"><span class="command"><strong>root-delegation-only</strong></span></a>.
</p> </p>
</dd> </dd>
<dt><span class="term"><span class="command"><strong>file</strong></span></span></dt>
<dd>
<p>
Set the zone's filename. In <span class="command"><strong>master</strong></span>,
<span class="command"><strong>hint</strong></span>, and <span class="command"><strong>redirect</strong></span>
zones which do not have <span class="command"><strong>masters</strong></span>
defined, zone data is loaded from this file. In
<span class="command"><strong>slave</strong></span>, <span class="command"><strong>stub</strong></span>, and
<span class="command"><strong>redirect</strong></span> zones which do have
<span class="command"><strong>masters</strong></span> defined, zone data is
retrieved from another server and saved in this file.
This option is not applicable to other zone types.
</p>
</dd>
<dt><span class="term"><span class="command"><strong>forward</strong></span></span></dt> <dt><span class="term"><span class="command"><strong>forward</strong></span></span></dt>
<dd> <dd>
<p> <p>
+107 -34
View File
@@ -41,9 +41,10 @@
<dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_intro">Introduction</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_intro">Introduction</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_download">Download</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_download">Download</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_license">License Change</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_license">License Change</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#win_support">Windows XP No Longer Supported</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#win_support">Legacy Windows No Longer Supported</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_security">Security Fixes</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_security">Security Fixes</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_features">New Features</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_features">New Features</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_removed">Removed Features</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#proto_changes">Protocol Changes</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#proto_changes">Protocol Changes</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_changes">Feature Changes</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_changes">Feature Changes</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_bugs">Bug Fixes</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_bugs">Bug Fixes</a></span></dt>
@@ -96,10 +97,11 @@
anything other than the changes you made to our software. anything other than the changes you made to our software.
</p> </p>
<p> <p>
This requirement will not affect anyone who is using BIND This requirement will not affect anyone who is using BIND, with
without redistributing it, nor anyone redistributing it without or without modifications, without redistributing it, nor anyone
changes, therefore this change will be without consequence redistributing it without changes. Therefore, this change will be
for most individuals and organizations who are using BIND. without consequence for most individuals and organizations who are
using BIND.
</p> </p>
<p> <p>
Those unsure whether or not the license change affects their Those unsure whether or not the license change affects their
@@ -111,10 +113,10 @@
<div class="section"> <div class="section">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="win_support"></a>Windows XP No Longer Supported</h3></div></div></div> <a name="win_support"></a>Legacy Windows No Longer Supported</h3></div></div></div>
<p> <p>
As of BIND 9.11.2, Windows XP is no longer a supported platform for As of BIND 9.11.2, Windows XP and Windows 2003 are no longer supported
BIND, and Windows XP binaries are no longer available for download platforms for BIND; "XP" binaries are no longer available for download
from ISC. from ISC.
</p> </p>
</div> </div>
@@ -143,10 +145,12 @@
<li class="listitem"> <li class="listitem">
<p> <p>
The additional cache ("acache") was found not to The additional cache ("acache") was found not to
significantly improve performance and has been removed; significantly improve performance and has been removed.
the <span class="command"><strong>acache-enable</strong></span> and As a result, the <span class="command"><strong>acache-enable</strong></span> and
<span class="command"><strong>acache-cleaning-interval</strong></span> options are now <span class="command"><strong>acache-cleaning-interval</strong></span> options no longer
deprecated. have any effect. For backwards compatibility, BIND will
accept their presence in a configuration file, but
will log a warning.
</p> </p>
</li> </li>
<li class="listitem"> <li class="listitem">
@@ -159,15 +163,16 @@
</li> </li>
<li class="listitem"> <li class="listitem">
<p> <p>
The <span class="command"><strong>additional-from-cache</strong></span> <span class="command"><strong>minimal-responses</strong></span> is now set
and <span class="command"><strong>additional-from-auth</strong></span> options have been to <code class="literal">no-auth-recursive</code> by default.
deprecated.
</p> </p>
</li> </li>
<li class="listitem"> <li class="listitem">
<p> <p>
<span class="command"><strong>minimal-responses</strong></span> is now set The <span class="command"><strong>additional-from-cache</strong></span>
to <code class="literal">yes</code> by default. and <span class="command"><strong>additional-from-auth</strong></span> options no longer
have any effect. <span class="command"><strong>named</strong></span> will log a warning
if they are set.
</p> </p>
</li> </li>
<li class="listitem"> <li class="listitem">
@@ -342,13 +347,14 @@
zone's validated CDS or CDNSKEY records. It can produce a zone's validated CDS or CDNSKEY records. It can produce a
<code class="filename">dsset</code> file suitable for input to <code class="filename">dsset</code> file suitable for input to
<span class="command"><strong>dnssec-signzone</strong></span>, or a series of <span class="command"><strong>dnssec-signzone</strong></span>, or a series of
<span class="command"><strong>nsupdate</strong></span> to update the parent zone via dynamic <span class="command"><strong>nsupdate</strong></span> commands to update the parent zone
DNS. Thanks to Tony Finch for the contribution. [RT #46090] via dynamic DNS. Thanks to Tony Finch for the contribution.
[RT #46090]
</p> </p>
</li> </li>
<li class="listitem"> <li class="listitem">
<p> <p>
<span class="command"><strong>nsupdate</strong></span> and <span class="command"><strong>rndc</strong></span> now accepts <span class="command"><strong>nsupdate</strong></span> and <span class="command"><strong>rndc</strong></span> now accept
command line options <span class="command"><strong>-4</strong></span> and <span class="command"><strong>-6</strong></span> command line options <span class="command"><strong>-4</strong></span> and <span class="command"><strong>-6</strong></span>
which force using only IPv4 or only IPv6, respectively. [RT #45632] which force using only IPv4 or only IPv6, respectively. [RT #45632]
</p> </p>
@@ -497,6 +503,58 @@
<div class="section"> <div class="section">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="relnotes_removed"></a>Removed Features</h3></div></div></div>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<p>
The ISC DNSSEC Lookaside Validation (DLV) service has been shut
down; all DLV records in the dlv.isc.org zone have been removed.
References to the service have been removed from BIND documentation.
Lookaside validation is no longer used by default by
<span class="command"><strong>delv</strong></span>. The DLV key has been removed from
<code class="filename">bind.keys</code>. Setting
<span class="command"><strong>dnssec-lookaside</strong></span> to
<span class="command"><strong>auto</strong></span> or to use dlv.isc.org as a trust
anchor is now a fatal configuration error. [RT #46155]
</p>
</li>
<li class="listitem">
<p>
As noted above, the <span class="command"><strong>acache-enable</strong></span>,
<span class="command"><strong>acache-cleaning-interval</strong></span>,
<span class="command"><strong>additional-from-cache</strong></span> and
<span class="command"><strong>additional-from-auth</strong></span> options are no longer
effective and <span class="command"><strong>named</strong></span> will log a warning if
they are set.
</p>
</li>
<li class="listitem">
<p>
The use of <span class="command"><strong>dnssec-keygen</strong></span> to generate
HMAC keys for TSIG authentication has been deprecated in favor
of <span class="command"><strong>tsig-keygen</strong></span>. If the algorithms HMAC-MD5,
HMAC-SHA1, HMAC-SHA224, HMAC-SHA256, HMAC-SHA384, or
HMAC-SHA512 are specified, <span class="command"><strong>dnssec-keygen</strong></span>
will print a warning message. These algorithms will be
removed from <span class="command"><strong>dnssec-keygen</strong></span> entirely in
a future release. [RT #42272]
</p>
</li>
<li class="listitem">
<p>
The use of HMAC-MD5 for RNDC keys is no longer recommended.
For compatibility, this is still the default algorithm generated
by <span class="command"><strong>rndc-confgen</strong></span>, but it will print a
warning message. The default algorithm in
<span class="command"><strong>rndc-confgen</strong></span> will be changed to HMAC-SHA256
in a future release. [RT #42272]
</p>
</li>
</ul></div>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="proto_changes"></a>Protocol Changes</h3></div></div></div> <a name="proto_changes"></a>Protocol Changes</h3></div></div></div>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"> <li class="listitem">
@@ -506,13 +564,17 @@
these algorithms must be supported in OpenSSL; these algorithms must be supported in OpenSSL;
currently they are only available in the development branch currently they are only available in the development branch
of OpenSSL at of OpenSSL at
<a class="link" href="https://github.com/openssl/openssl" target="_top">https://github.com/openssl/openssl</a>. <a class="link" href="https://github.com/openssl/openssl" target="_top">
https://github.com/openssl/openssl</a>.
[RT #44696] [RT #44696]
</p> </p>
</li> </li>
<li class="listitem"> <li class="listitem">
<p> <p>
EDNS KEY TAG options are verified and printed. When parsing DNS messages, EDNS KEY TAG options are checked
for correctness. When printing messages (for example, in
<span class="command"><strong>dig</strong></span>), EDNS KEY TAG options are printed
in readable format.
</p> </p>
</li> </li>
</ul></div> </ul></div>
@@ -530,7 +592,7 @@
Lookaside validation is no longer used by default by Lookaside validation is no longer used by default by
<span class="command"><strong>delv</strong></span>. The DLV key has been removed from <span class="command"><strong>delv</strong></span>. The DLV key has been removed from
<code class="filename">bind.keys</code>. Setting <code class="filename">bind.keys</code>. Setting
<span class="command"><strong>dnssec-lookaside</strong></span> set to <span class="command"><strong>dnssec-lookaside</strong></span> to
<span class="command"><strong>auto</strong></span> or to use dlv.isc.org as a trust <span class="command"><strong>auto</strong></span> or to use dlv.isc.org as a trust
anchor is now a fatal configuration error. [RT #46155] anchor is now a fatal configuration error. [RT #46155]
</p> </p>
@@ -651,15 +713,6 @@
are now fully rolled back in the event of failure. [RT #45841] are now fully rolled back in the event of failure. [RT #45841]
</p> </p>
</li> </li>
<li class="listitem">
<p>
Fixed a bug that was introduced in an earlier development
release which caused multi-packet AXFR and IXFR messages to fail
validation if not all packets contained TSIG records; this
caused interoperability problems with some other DNS
implementations. [RT #45509]
</p>
</li>
<li class="listitem"> <li class="listitem">
<p> <p>
Multiple <span class="command"><strong>cookie-secret</strong></span> clauses are now Multiple <span class="command"><strong>cookie-secret</strong></span> clauses are now
@@ -686,19 +739,39 @@
contribution. [RT #45689] contribution. [RT #45689]
</p> </p>
</li> </li>
<li class="listitem">
<p>
Trust anchor telemetry messages, as specified by
RFC 8145, are now logged to the
<span class="command"><strong>trust-anchor-telemetry</strong></span> logging
catagory.
</p>
</li>
</ul></div> </ul></div>
</div> </div>
<div class="section"> <div class="section">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="relnotes_bugs"></a>Bug Fixes</h3></div></div></div> <a name="relnotes_bugs"></a>Bug Fixes</h3></div></div></div>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<p> <p>
The introduction of <span class="command"><strong>libns</strong></span> caused a bug The introduction of <span class="command"><strong>libns</strong></span> caused a bug
in which TCP client objects were not recycled after use, in which TCP client objects were not recycled after use,
leading to unconstrained memory growth. [RT #46029] leading to unconstrained memory growth. [RT #46029]
</p> </p>
</li></ul></div> </li>
<li class="listitem">
<p>
Some header files included &lt;isc/util.h&gt; incorrectly as
it pollutes with namespace with non ISC_ macros and this should
only be done by explicitly including &lt;isc/util.h&gt;. This
has been corrected. Some code may depend on &lt;isc/util.h&gt;
being implicitly included via other header files. Such
code should explicitly include &lt;isc/util.h&gt;.
</p>
</li>
</ul></div>
</div> </div>
<div class="section"> <div class="section">
+2 -1
View File
@@ -241,9 +241,10 @@
<dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_intro">Introduction</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_intro">Introduction</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_download">Download</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_download">Download</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_license">License Change</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_license">License Change</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#win_support">Windows XP No Longer Supported</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#win_support">Legacy Windows No Longer Supported</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_security">Security Fixes</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_security">Security Fixes</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_features">New Features</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_features">New Features</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_removed">Removed Features</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#proto_changes">Protocol Changes</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#proto_changes">Protocol Changes</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_changes">Feature Changes</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_changes">Feature Changes</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_bugs">Bug Fixes</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch09.html#relnotes_bugs">Bug Fixes</a></span></dt>
+15 -8
View File
@@ -121,12 +121,19 @@
of <code class="option">algorithm</code> must be one of RSAMD5, RSASHA1, of <code class="option">algorithm</code> must be one of RSAMD5, RSASHA1,
DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512, ECCGOST, DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512, ECCGOST,
ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448. For ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448. For
TSIG/TKEY keys, the value must be one of DH (Diffie Hellman), TKEY and SIG(0) keys, the value must be DH (Diffie Hellman);
HMAC-MD5, HMAC-SHA1, HMAC-SHA224, HMAC-SHA256, HMAC-SHA384, specifying this value will automatically set the
or HMAC-SHA512; specifying any of these algorithms will <code class="option">-T KEY</code> option as well.
automatically set the <code class="option">-T KEY</code> option as well. </p>
(Note: <span class="command"><strong>tsig-keygen</strong></span> produces TSIG keys in a <p>
more useful format than <span class="command"><strong>dnssec-keygen</strong></span>.) TSIG keys can also by generated by setting the value to
one of HMAC-MD5, HMAC-SHA1, HMAC-SHA224, HMAC-SHA256,
HMAC-SHA384, or HMAC-SHA512. As with DH, specifying these
values will automatically set <code class="option">-T KEY</code>. Note,
however, that <span class="command"><strong>tsig-keygen</strong></span> produces TSIG keys
in a more useful format. These algorithms have been deprecated
in <span class="command"><strong>dnssec-keygen</strong></span>, and will be removed in a
future release.
</p> </p>
<p> <p>
These values are case insensitive. In some cases, abbreviations These values are case insensitive. In some cases, abbreviations
@@ -137,8 +144,8 @@
</p> </p>
<p> <p>
As of BIND 9.12.0, this option is mandatory except when using As of BIND 9.12.0, this option is mandatory except when using
the <code class="option">-S</code> option (which copies the algorithm from the <code class="option">-S</code> option, which copies the algorithm from
the predecessor key). Previously, the default for newly the predecessor key. Previously, the default for newly
generated keys was RSASHA1. generated keys was RSASHA1.
</p> </p>
</dd> </dd>
+16
View File
@@ -537,6 +537,22 @@
zone, regardless of any other metadata. zone, regardless of any other metadata.
</p> </p>
</dd> </dd>
<dt></dt>
<dd>
<p>
If key's sync publication date is set and in the past,
synchronization records (type CDS and/or CDNSKEY) are
created.
</p>
</dd>
<dt></dt>
<dd>
<p>
If key's sync deletion date is set and in the past,
synchronization records (type CDS and/or CDNSKEY) are
removed.
</p>
</dd>
</dl></div> </dl></div>
</dd> </dd>
<dt><span class="term">-T <em class="replaceable"><code>ttl</code></em></span></dt> <dt><span class="term">-T <em class="replaceable"><code>ttl</code></em></span></dt>
+6 -2
View File
@@ -131,8 +131,12 @@
<p> <p>
Specifies the algorithm to use for the TSIG key. Available Specifies the algorithm to use for the TSIG key. Available
choices are: hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256, choices are: hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256,
hmac-sha384 and hmac-sha512. The default is hmac-md5 or hmac-sha384 and hmac-sha512. The default is hmac-md5, or
if MD5 was disabled hmac-sha256. if MD5 was disabled at compile time, hmac-sha256.
</p>
<p>
Note: Use of hmac-md5 is no longer recommended, and the default
value will be changed to hmac-sha256 in a future release.
</p> </p>
</dd> </dd>
<dt><span class="term">-b <em class="replaceable"><code>keysize</code></em></span></dt> <dt><span class="term">-b <em class="replaceable"><code>keysize</code></em></span></dt>
+105 -33
View File
@@ -57,10 +57,11 @@
anything other than the changes you made to our software. anything other than the changes you made to our software.
</p> </p>
<p> <p>
This requirement will not affect anyone who is using BIND This requirement will not affect anyone who is using BIND, with
without redistributing it, nor anyone redistributing it without or without modifications, without redistributing it, nor anyone
changes, therefore this change will be without consequence redistributing it without changes. Therefore, this change will be
for most individuals and organizations who are using BIND. without consequence for most individuals and organizations who are
using BIND.
</p> </p>
<p> <p>
Those unsure whether or not the license change affects their Those unsure whether or not the license change affects their
@@ -72,10 +73,10 @@
<div class="section"> <div class="section">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="win_support"></a>Windows XP No Longer Supported</h3></div></div></div> <a name="win_support"></a>Legacy Windows No Longer Supported</h3></div></div></div>
<p> <p>
As of BIND 9.11.2, Windows XP is no longer a supported platform for As of BIND 9.11.2, Windows XP and Windows 2003 are no longer supported
BIND, and Windows XP binaries are no longer available for download platforms for BIND; "XP" binaries are no longer available for download
from ISC. from ISC.
</p> </p>
</div> </div>
@@ -104,10 +105,12 @@
<li class="listitem"> <li class="listitem">
<p> <p>
The additional cache ("acache") was found not to The additional cache ("acache") was found not to
significantly improve performance and has been removed; significantly improve performance and has been removed.
the <span class="command"><strong>acache-enable</strong></span> and As a result, the <span class="command"><strong>acache-enable</strong></span> and
<span class="command"><strong>acache-cleaning-interval</strong></span> options are now <span class="command"><strong>acache-cleaning-interval</strong></span> options no longer
deprecated. have any effect. For backwards compatibility, BIND will
accept their presence in a configuration file, but
will log a warning.
</p> </p>
</li> </li>
<li class="listitem"> <li class="listitem">
@@ -120,15 +123,16 @@
</li> </li>
<li class="listitem"> <li class="listitem">
<p> <p>
The <span class="command"><strong>additional-from-cache</strong></span> <span class="command"><strong>minimal-responses</strong></span> is now set
and <span class="command"><strong>additional-from-auth</strong></span> options have been to <code class="literal">no-auth-recursive</code> by default.
deprecated.
</p> </p>
</li> </li>
<li class="listitem"> <li class="listitem">
<p> <p>
<span class="command"><strong>minimal-responses</strong></span> is now set The <span class="command"><strong>additional-from-cache</strong></span>
to <code class="literal">yes</code> by default. and <span class="command"><strong>additional-from-auth</strong></span> options no longer
have any effect. <span class="command"><strong>named</strong></span> will log a warning
if they are set.
</p> </p>
</li> </li>
<li class="listitem"> <li class="listitem">
@@ -303,13 +307,14 @@
zone's validated CDS or CDNSKEY records. It can produce a zone's validated CDS or CDNSKEY records. It can produce a
<code class="filename">dsset</code> file suitable for input to <code class="filename">dsset</code> file suitable for input to
<span class="command"><strong>dnssec-signzone</strong></span>, or a series of <span class="command"><strong>dnssec-signzone</strong></span>, or a series of
<span class="command"><strong>nsupdate</strong></span> to update the parent zone via dynamic <span class="command"><strong>nsupdate</strong></span> commands to update the parent zone
DNS. Thanks to Tony Finch for the contribution. [RT #46090] via dynamic DNS. Thanks to Tony Finch for the contribution.
[RT #46090]
</p> </p>
</li> </li>
<li class="listitem"> <li class="listitem">
<p> <p>
<span class="command"><strong>nsupdate</strong></span> and <span class="command"><strong>rndc</strong></span> now accepts <span class="command"><strong>nsupdate</strong></span> and <span class="command"><strong>rndc</strong></span> now accept
command line options <span class="command"><strong>-4</strong></span> and <span class="command"><strong>-6</strong></span> command line options <span class="command"><strong>-4</strong></span> and <span class="command"><strong>-6</strong></span>
which force using only IPv4 or only IPv6, respectively. [RT #45632] which force using only IPv4 or only IPv6, respectively. [RT #45632]
</p> </p>
@@ -458,6 +463,58 @@
<div class="section"> <div class="section">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="relnotes_removed"></a>Removed Features</h3></div></div></div>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<p>
The ISC DNSSEC Lookaside Validation (DLV) service has been shut
down; all DLV records in the dlv.isc.org zone have been removed.
References to the service have been removed from BIND documentation.
Lookaside validation is no longer used by default by
<span class="command"><strong>delv</strong></span>. The DLV key has been removed from
<code class="filename">bind.keys</code>. Setting
<span class="command"><strong>dnssec-lookaside</strong></span> to
<span class="command"><strong>auto</strong></span> or to use dlv.isc.org as a trust
anchor is now a fatal configuration error. [RT #46155]
</p>
</li>
<li class="listitem">
<p>
As noted above, the <span class="command"><strong>acache-enable</strong></span>,
<span class="command"><strong>acache-cleaning-interval</strong></span>,
<span class="command"><strong>additional-from-cache</strong></span> and
<span class="command"><strong>additional-from-auth</strong></span> options are no longer
effective and <span class="command"><strong>named</strong></span> will log a warning if
they are set.
</p>
</li>
<li class="listitem">
<p>
The use of <span class="command"><strong>dnssec-keygen</strong></span> to generate
HMAC keys for TSIG authentication has been deprecated in favor
of <span class="command"><strong>tsig-keygen</strong></span>. If the algorithms HMAC-MD5,
HMAC-SHA1, HMAC-SHA224, HMAC-SHA256, HMAC-SHA384, or
HMAC-SHA512 are specified, <span class="command"><strong>dnssec-keygen</strong></span>
will print a warning message. These algorithms will be
removed from <span class="command"><strong>dnssec-keygen</strong></span> entirely in
a future release. [RT #42272]
</p>
</li>
<li class="listitem">
<p>
The use of HMAC-MD5 for RNDC keys is no longer recommended.
For compatibility, this is still the default algorithm generated
by <span class="command"><strong>rndc-confgen</strong></span>, but it will print a
warning message. The default algorithm in
<span class="command"><strong>rndc-confgen</strong></span> will be changed to HMAC-SHA256
in a future release. [RT #42272]
</p>
</li>
</ul></div>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="proto_changes"></a>Protocol Changes</h3></div></div></div> <a name="proto_changes"></a>Protocol Changes</h3></div></div></div>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"> <li class="listitem">
@@ -467,13 +524,17 @@
these algorithms must be supported in OpenSSL; these algorithms must be supported in OpenSSL;
currently they are only available in the development branch currently they are only available in the development branch
of OpenSSL at of OpenSSL at
<a class="link" href="https://github.com/openssl/openssl" target="_top">https://github.com/openssl/openssl</a>. <a class="link" href="https://github.com/openssl/openssl" target="_top">
https://github.com/openssl/openssl</a>.
[RT #44696] [RT #44696]
</p> </p>
</li> </li>
<li class="listitem"> <li class="listitem">
<p> <p>
EDNS KEY TAG options are verified and printed. When parsing DNS messages, EDNS KEY TAG options are checked
for correctness. When printing messages (for example, in
<span class="command"><strong>dig</strong></span>), EDNS KEY TAG options are printed
in readable format.
</p> </p>
</li> </li>
</ul></div> </ul></div>
@@ -491,7 +552,7 @@
Lookaside validation is no longer used by default by Lookaside validation is no longer used by default by
<span class="command"><strong>delv</strong></span>. The DLV key has been removed from <span class="command"><strong>delv</strong></span>. The DLV key has been removed from
<code class="filename">bind.keys</code>. Setting <code class="filename">bind.keys</code>. Setting
<span class="command"><strong>dnssec-lookaside</strong></span> set to <span class="command"><strong>dnssec-lookaside</strong></span> to
<span class="command"><strong>auto</strong></span> or to use dlv.isc.org as a trust <span class="command"><strong>auto</strong></span> or to use dlv.isc.org as a trust
anchor is now a fatal configuration error. [RT #46155] anchor is now a fatal configuration error. [RT #46155]
</p> </p>
@@ -612,15 +673,6 @@
are now fully rolled back in the event of failure. [RT #45841] are now fully rolled back in the event of failure. [RT #45841]
</p> </p>
</li> </li>
<li class="listitem">
<p>
Fixed a bug that was introduced in an earlier development
release which caused multi-packet AXFR and IXFR messages to fail
validation if not all packets contained TSIG records; this
caused interoperability problems with some other DNS
implementations. [RT #45509]
</p>
</li>
<li class="listitem"> <li class="listitem">
<p> <p>
Multiple <span class="command"><strong>cookie-secret</strong></span> clauses are now Multiple <span class="command"><strong>cookie-secret</strong></span> clauses are now
@@ -647,19 +699,39 @@
contribution. [RT #45689] contribution. [RT #45689]
</p> </p>
</li> </li>
<li class="listitem">
<p>
Trust anchor telemetry messages, as specified by
RFC 8145, are now logged to the
<span class="command"><strong>trust-anchor-telemetry</strong></span> logging
catagory.
</p>
</li>
</ul></div> </ul></div>
</div> </div>
<div class="section"> <div class="section">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="relnotes_bugs"></a>Bug Fixes</h3></div></div></div> <a name="relnotes_bugs"></a>Bug Fixes</h3></div></div></div>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<p> <p>
The introduction of <span class="command"><strong>libns</strong></span> caused a bug The introduction of <span class="command"><strong>libns</strong></span> caused a bug
in which TCP client objects were not recycled after use, in which TCP client objects were not recycled after use,
leading to unconstrained memory growth. [RT #46029] leading to unconstrained memory growth. [RT #46029]
</p> </p>
</li></ul></div> </li>
<li class="listitem">
<p>
Some header files included &lt;isc/util.h&gt; incorrectly as
it pollutes with namespace with non ISC_ macros and this should
only be done by explicitly including &lt;isc/util.h&gt;. This
has been corrected. Some code may depend on &lt;isc/util.h&gt;
being implicitly included via other header files. Such
code should explicitly include &lt;isc/util.h&gt;.
</p>
</li>
</ul></div>
</div> </div>
<div class="section"> <div class="section">
+107 -31
View File
@@ -50,10 +50,11 @@
anything other than the changes you made to our software. anything other than the changes you made to our software.
</para> </para>
<para> <para>
This requirement will not affect anyone who is using BIND This requirement will not affect anyone who is using BIND, with
without redistributing it, nor anyone redistributing it without or without modifications, without redistributing it, nor anyone
changes, therefore this change will be without consequence redistributing it without changes. Therefore, this change will be
for most individuals and organizations who are using BIND. without consequence for most individuals and organizations who are
using BIND.
</para> </para>
<para> <para>
Those unsure whether or not the license change affects their Those unsure whether or not the license change affects their
@@ -65,10 +66,10 @@
</para> </para>
</section> </section>
<section xml:id="win_support"><info><title>Windows XP No Longer Supported</title></info> <section xml:id="win_support"><info><title>Legacy Windows No Longer Supported</title></info>
<para> <para>
As of BIND 9.11.2, Windows XP is no longer a supported platform for As of BIND 9.11.2, Windows XP and Windows 2003 are no longer supported
BIND, and Windows XP binaries are no longer available for download platforms for BIND; "XP" binaries are no longer available for download
from ISC. from ISC.
</para> </para>
</section> </section>
@@ -95,10 +96,12 @@
<listitem> <listitem>
<para> <para>
The additional cache ("acache") was found not to The additional cache ("acache") was found not to
significantly improve performance and has been removed; significantly improve performance and has been removed.
the <command>acache-enable</command> and As a result, the <command>acache-enable</command> and
<command>acache-cleaning-interval</command> options are now <command>acache-cleaning-interval</command> options no longer
deprecated. have any effect. For backwards compatibility, BIND will
accept their presence in a configuration file, but
will log a warning.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
@@ -111,15 +114,16 @@
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
The <command>additional-from-cache</command> <command>minimal-responses</command> is now set
and <command>additional-from-auth</command> options have been to <literal>no-auth-recursive</literal> by default.
deprecated.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
<command>minimal-responses</command> is now set The <command>additional-from-cache</command>
to <literal>yes</literal> by default. and <command>additional-from-auth</command> options no longer
have any effect. <command>named</command> will log a warning
if they are set.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
@@ -294,13 +298,14 @@
zone's validated CDS or CDNSKEY records. It can produce a zone's validated CDS or CDNSKEY records. It can produce a
<filename>dsset</filename> file suitable for input to <filename>dsset</filename> file suitable for input to
<command>dnssec-signzone</command>, or a series of <command>dnssec-signzone</command>, or a series of
<command>nsupdate</command> to update the parent zone via dynamic <command>nsupdate</command> commands to update the parent zone
DNS. Thanks to Tony Finch for the contribution. [RT #46090] via dynamic DNS. Thanks to Tony Finch for the contribution.
[RT #46090]
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
<command>nsupdate</command> and <command>rndc</command> now accepts <command>nsupdate</command> and <command>rndc</command> now accept
command line options <command>-4</command> and <command>-6</command> command line options <command>-4</command> and <command>-6</command>
which force using only IPv4 or only IPv6, respectively. [RT #45632] which force using only IPv4 or only IPv6, respectively. [RT #45632]
</para> </para>
@@ -447,6 +452,56 @@
</itemizedlist> </itemizedlist>
</section> </section>
<section xml:id="relnotes_removed"><info><title>Removed Features</title></info>
<itemizedlist>
<listitem>
<para>
The ISC DNSSEC Lookaside Validation (DLV) service has been shut
down; all DLV records in the dlv.isc.org zone have been removed.
References to the service have been removed from BIND documentation.
Lookaside validation is no longer used by default by
<command>delv</command>. The DLV key has been removed from
<filename>bind.keys</filename>. Setting
<command>dnssec-lookaside</command> to
<command>auto</command> or to use dlv.isc.org as a trust
anchor is now a fatal configuration error. [RT #46155]
</para>
</listitem>
<listitem>
<para>
As noted above, the <command>acache-enable</command>,
<command>acache-cleaning-interval</command>,
<command>additional-from-cache</command> and
<command>additional-from-auth</command> options are no longer
effective and <command>named</command> will log a warning if
they are set.
</para>
</listitem>
<listitem>
<para>
The use of <command>dnssec-keygen</command> to generate
HMAC keys for TSIG authentication has been deprecated in favor
of <command>tsig-keygen</command>. If the algorithms HMAC-MD5,
HMAC-SHA1, HMAC-SHA224, HMAC-SHA256, HMAC-SHA384, or
HMAC-SHA512 are specified, <command>dnssec-keygen</command>
will print a warning message. These algorithms will be
removed from <command>dnssec-keygen</command> entirely in
a future release. [RT #42272]
</para>
</listitem>
<listitem>
<para>
The use of HMAC-MD5 for RNDC keys is no longer recommended.
For compatibility, this is still the default algorithm generated
by <command>rndc-confgen</command>, but it will print a
warning message. The default algorithm in
<command>rndc-confgen</command> will be changed to HMAC-SHA256
in a future release. [RT #42272]
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="proto_changes"><info><title>Protocol Changes</title></info> <section xml:id="proto_changes"><info><title>Protocol Changes</title></info>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
@@ -456,13 +511,18 @@
these algorithms must be supported in OpenSSL; these algorithms must be supported in OpenSSL;
currently they are only available in the development branch currently they are only available in the development branch
of OpenSSL at of OpenSSL at
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://github.com/openssl/openssl">https://github.com/openssl/openssl</link>. <link xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:href="https://github.com/openssl/openssl">
https://github.com/openssl/openssl</link>.
[RT #44696] [RT #44696]
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
EDNS KEY TAG options are verified and printed. When parsing DNS messages, EDNS KEY TAG options are checked
for correctness. When printing messages (for example, in
<command>dig</command>), EDNS KEY TAG options are printed
in readable format.
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
@@ -478,7 +538,7 @@
Lookaside validation is no longer used by default by Lookaside validation is no longer used by default by
<command>delv</command>. The DLV key has been removed from <command>delv</command>. The DLV key has been removed from
<filename>bind.keys</filename>. Setting <filename>bind.keys</filename>. Setting
<command>dnssec-lookaside</command> set to <command>dnssec-lookaside</command> to
<command>auto</command> or to use dlv.isc.org as a trust <command>auto</command> or to use dlv.isc.org as a trust
anchor is now a fatal configuration error. [RT #46155] anchor is now a fatal configuration error. [RT #46155]
</para> </para>
@@ -599,15 +659,6 @@
are now fully rolled back in the event of failure. [RT #45841] are now fully rolled back in the event of failure. [RT #45841]
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Fixed a bug that was introduced in an earlier development
release which caused multi-packet AXFR and IXFR messages to fail
validation if not all packets contained TSIG records; this
caused interoperability problems with some other DNS
implementations. [RT #45509]
</para>
</listitem>
<listitem> <listitem>
<para> <para>
Multiple <command>cookie-secret</command> clauses are now Multiple <command>cookie-secret</command> clauses are now
@@ -634,6 +685,21 @@
contribution. [RT #45689] contribution. [RT #45689]
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Trust anchor telemetry messages, as specified by
RFC 8145, are now logged to the
<command>trust-anchor-telemetry</command> logging
catagory.
</para>
</listitem>
<listitem>
<para>
The <command>filter-aaaa-on-v4</command> and
<command>filter-aaaa-on-v6</command> options are no longer
conditionally compiled in <command>named</command>. [RT #46340]
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
@@ -646,6 +712,16 @@
leading to unconstrained memory growth. [RT #46029] leading to unconstrained memory growth. [RT #46029]
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Some header files included &lt;isc/util.h&gt; incorrectly as
it pollutes with namespace with non ISC_ macros and this should
only be done by explicitly including &lt;isc/util.h&gt;. This
has been corrected. Some code may depend on &lt;isc/util.h&gt;
being implicitly included via other header files. Such
code should explicitly include &lt;isc/util.h&gt;.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
+4 -3
View File
@@ -992,13 +992,13 @@ ENABLE_PREPROCESSING = YES
# compilation will be performed. Macro expansion can be done in a controlled # compilation will be performed. Macro expansion can be done in a controlled
# way by setting EXPAND_ONLY_PREDEF to YES. # way by setting EXPAND_ONLY_PREDEF to YES.
MACRO_EXPANSION = NO MACRO_EXPANSION = YES
# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
# then the macro expansion is limited to the macros specified with the # then the macro expansion is limited to the macros specified with the
# PREDEFINED and EXPAND_AS_DEFINED tags. # PREDEFINED and EXPAND_AS_DEFINED tags.
EXPAND_ONLY_PREDEF = NO EXPAND_ONLY_PREDEF = YES
# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
# in the INCLUDE_PATH (see below) will be search if a #include is found. # in the INCLUDE_PATH (see below) will be search if a #include is found.
@@ -1026,7 +1026,8 @@ INCLUDE_FILE_PATTERNS =
# undefined via #undef or recursively expanded use the := operator # undefined via #undef or recursively expanded use the := operator
# instead of the = operator. # instead of the = operator.
PREDEFINED = PREDEFINED = "ISC_FORMAT_PRINTF(fmt, args)=" \
"LIBRPZ_PF(f, l)="
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
# this tag can be used to specify a list of macro names that should be expanded. # this tag can be used to specify a list of macro names that should be expanded.
+2 -2
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2001, 2004-2007, 2009, 2016 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2001, 2004-2007, 2009, 2016, 2017 Internet Systems Consortium, Inc. ("ISC")
* *
* This Source Code Form is subject to the terms of the Mozilla Public * 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 * License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -43,7 +43,7 @@ bind9_getaddresses(const char *hostname, in_port_t port,
* Returns: * Returns:
*\li #ISC_R_SUCCESS *\li #ISC_R_SUCCESS
*\li #ISC_R_NOTFOUND *\li #ISC_R_NOTFOUND
*\li #ISC_R_NOFAMILYSUPPORT - 'hostname' is an IPv6 address, and IPv6 is *\li #ISC_R_FAMILYNOSUPPORT - 'hostname' is an IPv6 address, and IPv6 is
* not supported. * not supported.
*/ */
+1
View File
@@ -17,6 +17,7 @@
#include <isc/result.h> #include <isc/result.h>
#include <isc/sha2.h> #include <isc/sha2.h>
#include <isc/task.h> #include <isc/task.h>
#include <isc/util.h>
#include <dns/catz.h> #include <dns/catz.h>
#include <dns/dbiterator.h> #include <dns/dbiterator.h>
-1
View File
@@ -3718,7 +3718,6 @@ dns_dispatch_importrecv(dns_dispatch_t *disp, isc_event_t *event) {
isc_socketevent_t *sevent, *newsevent; isc_socketevent_t *sevent, *newsevent;
REQUIRE(VALID_DISPATCH(disp)); REQUIRE(VALID_DISPATCH(disp));
REQUIRE((disp->attributes & DNS_DISPATCHATTR_NOLISTEN) != 0);
REQUIRE(event != NULL); REQUIRE(event != NULL);
if ((disp->attributes & DNS_DISPATCHATTR_NOLISTEN) == 0) if ((disp->attributes & DNS_DISPATCHATTR_NOLISTEN) == 0)
+1 -8
View File
@@ -45,6 +45,7 @@
***** Imports ***** Imports
*****/ *****/
#include <isc/deprecated.h>
#include <isc/lang.h> #include <isc/lang.h>
#include <isc/magic.h> #include <isc/magic.h>
#include <isc/ondestroy.h> #include <isc/ondestroy.h>
@@ -859,14 +860,6 @@ dns_db_findext(dns_db_t *db, const dns_name_t *name, dns_dbversion_t *version,
* \li #ISC_R_SUCCESS The desired node and type were * \li #ISC_R_SUCCESS The desired node and type were
* found. * found.
* *
* \li #DNS_R_WILDCARD The desired node and type were
* found after performing
* wildcard matching. This is
* only returned if the
* #DNS_DBFIND_INDICATEWILD
* option is set; otherwise
* #ISC_R_SUCCESS is returned.
*
* \li #DNS_R_GLUE The desired node and type were * \li #DNS_R_GLUE The desired node and type were
* found, but are glue. This * found, but are glue. This
* result can only occur if * result can only occur if
+2 -2
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2011-2013, 2016 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2011-2013, 2016, 2017 Internet Systems Consortium, Inc. ("ISC")
* *
* This Source Code Form is subject to the terms of the Mozilla Public * 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 * License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -8,7 +8,7 @@
/* $Id$ */ /* $Id$ */
/*! \file dns/dlz_open.h */ /*! \file dns/dlz_dlopen.h */
#ifndef DLZ_DLOPEN_H #ifndef DLZ_DLOPEN_H
#define DLZ_DLOPEN_H #define DLZ_DLOPEN_H
+1 -1
View File
@@ -355,7 +355,7 @@ dns_dt_open(const char *filename, dns_dtmode_t mode,
*\li #ISC_R_NOMEMORY if the fstrm library was unable to allocate a *\li #ISC_R_NOMEMORY if the fstrm library was unable to allocate a
* reader or options structure * reader or options structure
*\li #ISC_R_FAILURE if 'filename' could not be opened. *\li #ISC_R_FAILURE if 'filename' could not be opened.
*\li #ISC_R_BADDNSTAP if 'filename' does not contain a dnstap *\li #DNS_R_BADDNSTAP if 'filename' does not contain a dnstap
* framestream. * framestream.
*/ */
+2 -2
View File
@@ -393,7 +393,7 @@ LIBDEF_F(clist_detach)
/** /**
* Create a librpz client handle. * Create a librpz client handle.
* @param[out] emsg: error message * @param[out] emsg: error message
* @param: list of dnsrpzd connections * @param clist: of dnsrpzd connections
* @param cstr: string of configuration settings separated by ';' or '\n' * @param cstr: string of configuration settings separated by ';' or '\n'
* @param use_expired: true to not ignore expired zones * @param use_expired: true to not ignore expired zones
* @return client handle or NULL if the handle could not be created * @return client handle or NULL if the handle could not be created
@@ -668,7 +668,7 @@ LIBDEF_F(db_info)
/** /**
* Start a context for listing the nodes and/or zones in the mapped file * Start a context for listing the nodes and/or zones in the mapped file
* @param[out] emsg: error message for false return or *rspp=NULL * @param[out] emsg: error message for false return or *rspp=NULL
* @param[out[ rspp created context or NULL * @param[out] rspp: created context or NULL
* @param client context * @param client context
* @return false after error * @return false after error
*/ */
+1
View File
@@ -73,6 +73,7 @@ LIBDNS_EXTERNAL_DATA extern isc_logmodule_t dns_modules[];
#define DNS_LOGMODULE_NTA (&dns_modules[30]) #define DNS_LOGMODULE_NTA (&dns_modules[30])
#define DNS_LOGMODULE_DYNDB (&dns_modules[31]) #define DNS_LOGMODULE_DYNDB (&dns_modules[31])
#define DNS_LOGMODULE_DNSTAP (&dns_modules[32]) #define DNS_LOGMODULE_DNSTAP (&dns_modules[32])
#define DNS_LOGMODULE_SSU (&dns_modules[33])
ISC_LANG_BEGINDECLS ISC_LANG_BEGINDECLS
-2
View File
@@ -176,9 +176,7 @@ typedef int dns_messagetextflag_t;
additional section. */ additional section. */
#define DNS_MESSAGERENDER_PREFER_AAAA 0x0010 /*%< prefer AAAA records in #define DNS_MESSAGERENDER_PREFER_AAAA 0x0010 /*%< prefer AAAA records in
additional section. */ additional section. */
#ifdef ALLOW_FILTER_AAAA
#define DNS_MESSAGERENDER_FILTER_AAAA 0x0020 /*%< filter AAAA records */ #define DNS_MESSAGERENDER_FILTER_AAAA 0x0020 /*%< filter AAAA records */
#endif
typedef struct dns_msgblock dns_msgblock_t; typedef struct dns_msgblock dns_msgblock_t;
-2
View File
@@ -814,8 +814,6 @@ dns_name_fromtext(dns_name_t *name, isc_buffer_t *source,
*\li #DNS_R_EMPTYLABEL *\li #DNS_R_EMPTYLABEL
*\li #DNS_R_LABELTOOLONG *\li #DNS_R_LABELTOOLONG
*\li #DNS_R_BADESCAPE *\li #DNS_R_BADESCAPE
*\li (#DNS_R_BADBITSTRING: should not be returned)
*\li (#DNS_R_BITSTRINGTOOLONG: should not be returned)
*\li #DNS_R_BADDOTTEDQUAD *\li #DNS_R_BADDOTTEDQUAD
*\li #ISC_R_NOSPACE *\li #ISC_R_NOSPACE
*\li #ISC_R_UNEXPECTEDEND *\li #ISC_R_UNEXPECTEDEND
+13
View File
@@ -235,6 +235,19 @@ dns_nsec3param_toprivate(dns_rdata_t *src, dns_rdata_t *target,
* 'buf' should be at least src->length + 1 in size. * 'buf' should be at least src->length + 1 in size.
*/ */
isc_result_t
dns_nsec3param_salttotext(dns_rdata_nsec3param_t *nsec3param, char *dst,
size_t dstlen);
/*%<
* Convert the salt of given NSEC3PARAM RDATA into hex-encoded, NULL-terminated
* text stored at "dst".
*
* Requires:
*
*\li "dst" to have enough space (as indicated by "dstlen") to hold the
* resulting text and its NULL-terminating byte.
*/
isc_result_t isc_result_t
dns_nsec3param_deletechains(dns_db_t *db, dns_dbversion_t *ver, dns_nsec3param_deletechains(dns_db_t *db, dns_dbversion_t *ver,
dns_zone_t *zone, isc_boolean_t nonsec, dns_zone_t *zone, isc_boolean_t nonsec,
+3 -3
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2002, 2004-2007, 2016 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2002, 2004-2007, 2016, 2017 Internet Systems Consortium, Inc. ("ISC")
* *
* This Source Code Form is subject to the terms of the Mozilla Public * 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 * License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -44,8 +44,8 @@ dns_order_add(dns_order_t *order, const dns_name_t *name,
* Requires: * Requires:
* \li 'order' to be valid. * \li 'order' to be valid.
*\li 'name' to be valid. *\li 'name' to be valid.
*\li 'mode' to be one of #DNS_RDATASERATTR_RANDOMIZE, *\li 'mode' to be one of #DNS_RDATASETATTR_RANDOMIZE,
* #DNS_RDATASERATTR_RANDOMIZE or zero (#DNS_RDATASERATTR_CYCLIC). * #DNS_RDATASETATTR_FIXEDORDER or zero (#DNS_RDATASETATTR_CYCLIC).
* *
* Returns: * Returns:
*\li #ISC_R_SUCCESS *\li #ISC_R_SUCCESS
+6 -5
View File
@@ -13,6 +13,7 @@
/*! \file dns/rbt.h */ /*! \file dns/rbt.h */
#include <isc/assertions.h>
#include <isc/crc64.h> #include <isc/crc64.h>
#include <isc/lang.h> #include <isc/lang.h>
#include <isc/magic.h> #include <isc/magic.h>
@@ -1077,7 +1078,7 @@ dns_rbtnodechain_nextflat(dns_rbtnodechain_t *chain, dns_name_t *name);
} while (0) } while (0)
#else /* DNS_RBT_USEISCREFCOUNT */ #else /* DNS_RBT_USEISCREFCOUNT */
#define dns_rbtnode_refinit(node, n) ((node)->references = (n)) #define dns_rbtnode_refinit(node, n) ((node)->references = (n))
#define dns_rbtnode_refdestroy(node) REQUIRE((node)->references == 0) #define dns_rbtnode_refdestroy(node) ISC_REQUIRE((node)->references == 0)
#define dns_rbtnode_refcurrent(node) ((node)->references) #define dns_rbtnode_refcurrent(node) ((node)->references)
#if (__STDC_VERSION__ + 0) >= 199901L || defined __GNUC__ #if (__STDC_VERSION__ + 0) >= 199901L || defined __GNUC__
@@ -1090,7 +1091,7 @@ dns_rbtnode_refincrement0(dns_rbtnode_t *node, unsigned int *refs) {
static inline void static inline void
dns_rbtnode_refincrement(dns_rbtnode_t *node, unsigned int *refs) { dns_rbtnode_refincrement(dns_rbtnode_t *node, unsigned int *refs) {
REQUIRE(node->references > 0); ISC_REQUIRE(node->references > 0);
node->references++; node->references++;
if (refs != NULL) if (refs != NULL)
*refs = node->references; *refs = node->references;
@@ -1098,7 +1099,7 @@ dns_rbtnode_refincrement(dns_rbtnode_t *node, unsigned int *refs) {
static inline void static inline void
dns_rbtnode_refdecrement(dns_rbtnode_t *node, unsigned int *refs) { dns_rbtnode_refdecrement(dns_rbtnode_t *node, unsigned int *refs) {
REQUIRE(node->references > 0); ISC_REQUIRE(node->references > 0);
node->references--; node->references--;
if (refs != NULL) if (refs != NULL)
*refs = node->references; *refs = node->references;
@@ -1113,14 +1114,14 @@ dns_rbtnode_refdecrement(dns_rbtnode_t *node, unsigned int *refs) {
} while (0) } while (0)
#define dns_rbtnode_refincrement(node, refs) \ #define dns_rbtnode_refincrement(node, refs) \
do { \ do { \
REQUIRE((node)->references > 0); \ ISC_REQUIRE((node)->references > 0); \
(node)->references++; \ (node)->references++; \
if ((refs) != NULL) \ if ((refs) != NULL) \
(*refs) = (node)->references; \ (*refs) = (node)->references; \
} while (0) } while (0)
#define dns_rbtnode_refdecrement(node, refs) \ #define dns_rbtnode_refdecrement(node, refs) \
do { \ do { \
REQUIRE((node)->references > 0); \ ISC_REQUIRE((node)->references > 0); \
(node)->references--; \ (node)->references--; \
if ((refs) != NULL) \ if ((refs) != NULL) \
(*refs) = (node)->references; \ (*refs) = (node)->references; \
+3 -2
View File
@@ -10,12 +10,13 @@
#ifndef DNS_RPZ_H #ifndef DNS_RPZ_H
#define DNS_RPZ_H 1 #define DNS_RPZ_H 1
#include <isc/deprecated.h>
#include <isc/event.h>
#include <isc/ht.h>
#include <isc/lang.h> #include <isc/lang.h>
#include <isc/refcount.h> #include <isc/refcount.h>
#include <isc/rwlock.h> #include <isc/rwlock.h>
#include <isc/ht.h>
#include <isc/time.h> #include <isc/time.h>
#include <isc/event.h>
#include <isc/timer.h> #include <isc/timer.h>
#include <dns/fixedname.h> #include <dns/fixedname.h>
+2 -1
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2009, 2013, 2014, 2016 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2007-2009, 2013, 2014, 2016, 2017 Internet Systems Consortium, Inc. ("ISC")
* *
* This Source Code Form is subject to the terms of the Mozilla Public * 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 * License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -10,6 +10,7 @@
#include <isc/mem.h> #include <isc/mem.h>
#include <isc/radix.h> #include <isc/radix.h>
#include <isc/util.h>
#include <dns/acl.h> #include <dns/acl.h>
+1
View File
@@ -79,6 +79,7 @@ LIBDNS_EXTERNAL_DATA isc_logmodule_t dns_modules[] = {
{ "dns/nta", 0 }, { "dns/nta", 0 },
{ "dns/dyndb", 0 }, { "dns/dyndb", 0 },
{ "dns/dnstap", 0 }, { "dns/dnstap", 0 },
{ "dns/ssu", 0 },
{ NULL, 0 } { NULL, 0 }
}; };
+1 -1
View File
@@ -13,4 +13,4 @@
# Whenever releasing a new major release of BIND9, set this value # Whenever releasing a new major release of BIND9, set this value
# back to 1.0 when releasing the first alpha. Map files are *never* # back to 1.0 when releasing the first alpha. Map files are *never*
# compatible across major releases. # compatible across major releases.
MAPAPI=1.0 MAPAPI=1.1
+3 -5
View File
@@ -1897,7 +1897,6 @@ wrong_priority(dns_rdataset_t *rds, int pass, dns_rdatatype_t preferred_glue) {
return (ISC_TRUE); return (ISC_TRUE);
} }
#ifdef ALLOW_FILTER_AAAA
/* /*
* Decide whether to not answer with an AAAA record and its RRSIG * Decide whether to not answer with an AAAA record and its RRSIG
*/ */
@@ -1939,7 +1938,6 @@ norender_rdataset(const dns_rdataset_t *rdataset, unsigned int options,
return (ISC_TRUE); return (ISC_TRUE);
} }
#endif
static isc_result_t static isc_result_t
renderset(dns_rdataset_t *rdataset, const dns_name_t *owner_name, renderset(dns_rdataset_t *rdataset, const dns_name_t *owner_name,
@@ -2100,13 +2098,14 @@ dns_message_rendersection(dns_message_t *msg, dns_section_t sectionid,
preferred_glue)) preferred_glue))
goto next; goto next;
#ifdef ALLOW_FILTER_AAAA
/* /*
* Suppress AAAAs if asked and we are * Suppress AAAAs if asked and we are
* not doing DNSSEC or are breaking DNSSEC. * not doing DNSSEC or are breaking DNSSEC.
* Say so in the AD bit if we break DNSSEC. * Say so in the AD bit if we break DNSSEC.
*/ */
if (norender_rdataset(rdataset, options, sectionid)) { if (norender_rdataset(rdataset, options,
sectionid))
{
if (sectionid == DNS_SECTION_ANSWER || if (sectionid == DNS_SECTION_ANSWER ||
sectionid == DNS_SECTION_AUTHORITY) sectionid == DNS_SECTION_AUTHORITY)
msg->flags &= ~DNS_MESSAGEFLAG_AD; msg->flags &= ~DNS_MESSAGEFLAG_AD;
@@ -2115,7 +2114,6 @@ dns_message_rendersection(dns_message_t *msg, dns_section_t sectionid,
goto next; goto next;
} }
#endif
st = *(msg->buffer); st = *(msg->buffer);
count = 0; count = 0;
+36
View File
@@ -1009,6 +1009,42 @@ rr_exists(dns_db_t *db, dns_dbversion_t *ver, const dns_name_t *name,
return (result); return (result);
} }
isc_result_t
dns_nsec3param_salttotext(dns_rdata_nsec3param_t *nsec3param, char *dst,
size_t dstlen)
{
isc_result_t result;
isc_region_t r;
isc_buffer_t b;
REQUIRE(nsec3param != NULL);
REQUIRE(dst != NULL);
if (nsec3param->salt_length == 0) {
if (dstlen < 2U) {
return (ISC_R_NOSPACE);
}
strlcpy(dst, "-", dstlen);
return (ISC_R_SUCCESS);
}
r.base = nsec3param->salt;
r.length = nsec3param->salt_length;
isc_buffer_init(&b, dst, (unsigned int)dstlen);
result = isc_hex_totext(&r, 2, "", &b);
if (result != ISC_R_SUCCESS) {
return (result);
}
if (isc_buffer_availablelength(&b) < 1) {
return (ISC_R_NOSPACE);
}
isc_buffer_putuint8(&b, 0);
return (ISC_R_SUCCESS);
}
isc_result_t isc_result_t
dns_nsec3param_deletechains(dns_db_t *db, dns_dbversion_t *ver, dns_nsec3param_deletechains(dns_db_t *db, dns_dbversion_t *ver,
dns_zone_t *zone, isc_boolean_t nonsec, dns_zone_t *zone, isc_boolean_t nonsec,
+6 -5
View File
@@ -227,7 +227,8 @@ fetch_done(isc_task_t *task, isc_event_t *event) {
case DNS_R_NXDOMAIN: case DNS_R_NXDOMAIN:
case DNS_R_NCACHENXRRSET: case DNS_R_NCACHENXRRSET:
case DNS_R_NXRRSET: case DNS_R_NXRRSET:
nta->expiry = now; if (nta->expiry > now)
nta->expiry = now;
break; break;
default: default:
break; break;
@@ -458,7 +459,7 @@ dns_ntatable_covered(dns_ntatable_t *ntatable, isc_stdtime_t now,
} }
if (result == ISC_R_SUCCESS) { if (result == ISC_R_SUCCESS) {
nta = (dns_nta_t *) node->data; nta = (dns_nta_t *) node->data;
answer = ISC_TF(nta->expiry >= now); answer = ISC_TF(nta->expiry > now);
} }
/* Deal with expired NTA */ /* Deal with expired NTA */
@@ -551,7 +552,7 @@ dns_ntatable_totext(dns_ntatable_t *ntatable, isc_buffer_t **buf) {
snprintf(obuf, sizeof(obuf), "%s%s: %s %s", snprintf(obuf, sizeof(obuf), "%s%s: %s %s",
first ? "" : "\n", nbuf, first ? "" : "\n", nbuf,
n->expiry < now ? "expired" : "expiry", n->expiry <= now ? "expired" : "expiry",
tbuf); tbuf);
first = ISC_FALSE; first = ISC_FALSE;
result = putstr(buf, obuf); result = putstr(buf, obuf);
@@ -605,7 +606,7 @@ dns_ntatable_dump(dns_ntatable_t *ntatable, FILE *fp) {
isc_time_set(&t, n->expiry, 0); isc_time_set(&t, n->expiry, 0);
isc_time_formattimestamp(&t, tbuf, sizeof(tbuf)); isc_time_formattimestamp(&t, tbuf, sizeof(tbuf));
fprintf(fp, "%s: %s %s\n", nbuf, fprintf(fp, "%s: %s %s\n", nbuf,
n->expiry < now ? "expired" : "expiry", n->expiry <= now ? "expired" : "expiry",
tbuf); tbuf);
} }
result = dns_rbtnodechain_next(&chain, NULL, NULL); result = dns_rbtnodechain_next(&chain, NULL, NULL);
@@ -672,7 +673,7 @@ dns_ntatable_save(dns_ntatable_t *ntatable, FILE *fp) {
dns_rbtnodechain_current(&chain, NULL, NULL, &node); dns_rbtnodechain_current(&chain, NULL, NULL, &node);
if (node->data != NULL) { if (node->data != NULL) {
dns_nta_t *n = (dns_nta_t *) node->data; dns_nta_t *n = (dns_nta_t *) node->data;
if (now <= n->expiry) { if (n->expiry > now) {
isc_buffer_t b; isc_buffer_t b;
char nbuf[DNS_NAME_FORMATSIZE + 1], tbuf[80]; char nbuf[DNS_NAME_FORMATSIZE + 1], tbuf[80];
dns_fixedname_t fn; dns_fixedname_t fn;
+1 -2
View File
@@ -6,8 +6,6 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. * file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/ */
/* $Id$ */
#include "config.h" #include "config.h"
#include <isc/base64.h> #include <isc/base64.h>
@@ -15,6 +13,7 @@
#include <isc/result.h> #include <isc/result.h>
#include <isc/string.h> #include <isc/string.h>
#include <isc/types.h> #include <isc/types.h>
#include <isc/util.h>
#include <dns/nsec3.h> #include <dns/nsec3.h>
#include <dns/private.h> #include <dns/private.h>
+4 -4
View File
@@ -226,11 +226,11 @@ getdata(dns_rbtnode_t *node, file_header_t *header) {
* The variable length stuff stored after the node has the following * The variable length stuff stored after the node has the following
* structure. * structure.
* *
* <name_data>{1..255}<oldoffsetlen>{1}<offsets>{1..128} * &lt;name_data&gt;{1..255}&lt;oldoffsetlen&gt;{1}&lt;offsets&gt;{1..128}
* *
* <name_data> contains the name of the node when it was created. * &lt;name_data&gt; contains the name of the node when it was created.
* <oldoffsetlen> contains the length of <offsets> when the node was created. * &lt;oldoffsetlen&gt; contains the length of &lt;offsets&gt; when the node was created.
* <offsets> contains the offets into name for each label when the node was * &lt;offsets&gt; contains the offets into name for each label when the node was
* created. * created.
*/ */
+1 -1
View File
@@ -52,7 +52,7 @@ static char root_ns[] =
". 518400 IN NS M.ROOT-SERVERS.NET.\n" ". 518400 IN NS M.ROOT-SERVERS.NET.\n"
"A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4\n" "A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4\n"
"A.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:503:BA3E::2:30\n" "A.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:503:BA3E::2:30\n"
"B.ROOT-SERVERS.NET. 3600000 IN A 192.228.79.201\n" "B.ROOT-SERVERS.NET. 3600000 IN A 199.9.14.201\n"
"B.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:500:200::b\n" "B.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:500:200::b\n"
"C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12\n" "C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12\n"
"C.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:500:2::c\n" "C.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:500:2::c\n"
+1
View File
@@ -19,6 +19,7 @@
#include <isc/net.h> #include <isc/net.h>
#include <isc/netaddr.h> #include <isc/netaddr.h>
#include <isc/print.h> #include <isc/print.h>
#include <isc/util.h>
#include <dns/result.h> #include <dns/result.h>
#include <dns/rcode.h> #include <dns/rcode.h>
+10 -1
View File
@@ -425,12 +425,21 @@ dns_ssutable_checkrules2(dns_ssutable_t *table, const dns_name_t *signer,
continue; continue;
} }
if (!dns_name_issubdomain(name, rule->name)) { if (!dns_name_issubdomain(name, rule->name)) {
continue; continue;
} }
dns_acl_match(addr, NULL, env->localhost, dns_acl_match(addr, NULL, env->localhost,
NULL, &match, NULL); NULL, &match, NULL);
if (match == 0) { if (match == 0) {
if (signer != NULL) {
isc_log_write(dns_lctx,
DNS_LOGCATEGORY_GENERAL,
DNS_LOGMODULE_SSU,
ISC_LOG_WARNING,
"update-policy local: "
"match on session "
"key not from "
"localhost");
}
continue; continue;
} }
break; break;
+58 -2
View File
@@ -22,6 +22,7 @@
#include <isc/file.h> #include <isc/file.h>
#include <isc/hash.h> #include <isc/hash.h>
#include <isc/hex.h> #include <isc/hex.h>
#include <isc/lex.h>
#include <isc/mem.h> #include <isc/mem.h>
#include <isc/os.h> #include <isc/os.h>
#include <isc/print.h> #include <isc/print.h>
@@ -100,7 +101,7 @@ create_managers(void) {
CHECK(isc_task_create(taskmgr, 0, &maintask)); CHECK(isc_task_create(taskmgr, 0, &maintask));
return (ISC_R_SUCCESS); return (ISC_R_SUCCESS);
cleanup: cleanup:
cleanup_managers(); cleanup_managers();
return (result); return (result);
} }
@@ -158,7 +159,7 @@ dns_test_begin(FILE *logfile, isc_boolean_t start_managers) {
return (ISC_R_SUCCESS); return (ISC_R_SUCCESS);
cleanup: cleanup:
dns_test_end(); dns_test_end();
return (result); return (result);
} }
@@ -434,3 +435,58 @@ dns_test_getdata(const char *file, unsigned char *buf,
isc_stdio_close(f); isc_stdio_close(f);
return (result); return (result);
} }
isc_result_t
dns_test_rdata_fromstring(dns_rdata_t *rdata, dns_rdataclass_t rdclass,
dns_rdatatype_t rdtype, unsigned char *dst,
size_t dstlen, const char *src)
{
isc_buffer_t source, target;
isc_lex_t *lex = NULL;
isc_result_t result;
size_t length;
REQUIRE(rdata != NULL);
REQUIRE(DNS_RDATA_INITIALIZED(rdata));
REQUIRE(dst != NULL);
REQUIRE(src != NULL);
/*
* Set up source to hold the input string.
*/
length = strlen(src);
isc_buffer_constinit(&source, src, length);
isc_buffer_add(&source, length);
/*
* Create a lexer as one is required by dns_rdata_fromtext().
*/
result = isc_lex_create(mctx, 64, &lex);
if (result != ISC_R_SUCCESS) {
return (result);
}
/*
* Point lexer at source.
*/
result = isc_lex_openbuffer(lex, &source);
if (result != ISC_R_SUCCESS) {
goto destroy_lexer;
}
/*
* Set up target for storing uncompressed wire form of provided RDATA.
*/
isc_buffer_init(&target, dst, dstlen);
/*
* Parse input string, determining result.
*/
result = dns_rdata_fromtext(rdata, rdclass, rdtype, lex, dns_rootname,
0, NULL, &target, NULL);
destroy_lexer:
isc_lex_destroy(&lex);
return (result);
}
+10
View File
@@ -80,3 +80,13 @@ dns_test_getdata(const char *file, unsigned char *buf,
char * char *
dns_test_tohex(const unsigned char *data, size_t len, char *buf, size_t buflen); dns_test_tohex(const unsigned char *data, size_t len, char *buf, size_t buflen);
/*%
* Try parsing text form RDATA in "src" (of class "rdclass" and type "rdtype")
* into a structure representing that RDATA at "rdata", storing the
* uncompressed wire form of that RDATA at "dst", which is "dstlen" bytes long.
*/
isc_result_t
dns_test_rdata_fromstring(dns_rdata_t *rdata, dns_rdataclass_t rdclass,
dns_rdatatype_t rdtype, unsigned char *dst,
size_t dstlen, const char *src);
+111
View File
@@ -43,6 +43,82 @@ iteration_test(const char *file, unsigned int expected) {
dns_db_detach(&db); dns_db_detach(&db);
} }
/*%
* Structure containing parameters for nsec3param_salttotext_test().
*/
typedef struct {
const char *nsec3param_text; /* NSEC3PARAM RDATA in text form */
const char *expected_salt; /* string expected in target buffer */
} nsec3param_salttotext_test_params_t;
/*%
* Check whether dns_nsec3param_salttotext() handles supplied text form
* NSEC3PARAM RDATA correctly: test whether the result of calling the former is
* as expected and whether it properly checks available buffer space.
*
* Assumes supplied text form NSEC3PARAM RDATA is valid as testing handling of
* invalid NSEC3PARAM RDATA is out of scope of this unit test.
*/
static void
nsec3param_salttotext_test(const nsec3param_salttotext_test_params_t *params) {
dns_rdata_t rdata = DNS_RDATA_INIT;
dns_rdata_nsec3param_t nsec3param;
unsigned char buf[1024];
isc_result_t result;
char salt[64];
size_t length;
/*
* Prepare a dns_rdata_nsec3param_t structure for testing.
*/
result = dns_test_rdata_fromstring(&rdata, dns_rdataclass_in,
dns_rdatatype_nsec3param, buf,
sizeof(buf),
params->nsec3param_text);
ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
result = dns_rdata_tostruct(&rdata, &nsec3param, NULL);
ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
/*
* Check typical use.
*/
result = dns_nsec3param_salttotext(&nsec3param, salt, sizeof(salt));
ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS,
"\"%s\": expected success, got %s\n",
params->nsec3param_text, isc_result_totext(result));
ATF_CHECK_EQ_MSG(strcmp(salt, params->expected_salt), 0,
"\"%s\": expected salt \"%s\", got \"%s\"",
params->nsec3param_text, params->expected_salt, salt);
/*
* Ensure available space in the buffer is checked before the salt is
* printed to it and that the amount of space checked for includes the
* terminating NULL byte.
*/
length = strlen(params->expected_salt);
ATF_REQUIRE(length < sizeof(salt) - 1); /* prevent buffer overwrite */
ATF_REQUIRE(length > 0U); /* prevent length underflow */
result = dns_nsec3param_salttotext(&nsec3param, salt, length - 1);
ATF_CHECK_EQ_MSG(result, ISC_R_NOSPACE,
"\"%s\": expected a %lu-byte target buffer to be "
"rejected, got %s\n",
params->nsec3param_text, length - 1,
isc_result_totext(result));
result = dns_nsec3param_salttotext(&nsec3param, salt, length);
ATF_CHECK_EQ_MSG(result, ISC_R_NOSPACE,
"\"%s\": expected a %lu-byte target buffer to be "
"rejected, got %s\n",
params->nsec3param_text, length,
isc_result_totext(result));
result = dns_nsec3param_salttotext(&nsec3param, salt, length + 1);
ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS,
"\"%s\": expected a %lu-byte target buffer to be "
"accepted, got %s\n",
params->nsec3param_text, length + 1,
isc_result_totext(result));
}
/* /*
* Individual unit tests * Individual unit tests
*/ */
@@ -68,6 +144,40 @@ ATF_TC_BODY(max_iterations, tc) {
dns_test_end(); dns_test_end();
} }
ATF_TC(nsec3param_salttotext);
ATF_TC_HEAD(nsec3param_salttotext, tc) {
atf_tc_set_md_var(tc, "descr", "check dns_nsec3param_salttotext()");
}
ATF_TC_BODY(nsec3param_salttotext, tc) {
isc_result_t result;
size_t i;
const nsec3param_salttotext_test_params_t tests[] = {
/*
* Tests with non-empty salts.
*/
{ "0 0 10 0123456789abcdef", "0123456789ABCDEF" },
{ "0 1 11 0123456789abcdef", "0123456789ABCDEF" },
{ "1 0 12 42", "42" },
{ "1 1 13 42", "42" },
/*
* Test with empty salt.
*/
{ "0 0 0 -", "-" },
};
UNUSED(tc);
result = dns_test_begin(NULL, ISC_FALSE);
ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
nsec3param_salttotext_test(&tests[i]);
}
dns_test_end();
}
#else #else
ATF_TC(untested); ATF_TC(untested);
ATF_TC_HEAD(untested, tc) { ATF_TC_HEAD(untested, tc) {
@@ -85,6 +195,7 @@ ATF_TC_BODY(untested, tc) {
ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TCS(tp) {
#if defined(OPENSSL) || defined(PKCS11CRYPTO) #if defined(OPENSSL) || defined(PKCS11CRYPTO)
ATF_TP_ADD_TC(tp, max_iterations); ATF_TP_ADD_TC(tp, max_iterations);
ATF_TP_ADD_TC(tp, nsec3param_salttotext);
#else #else
ATF_TP_ADD_TC(tp, untested); ATF_TP_ADD_TC(tp, untested);
#endif #endif
+5 -25
View File
@@ -141,38 +141,18 @@ static void
check_text_ok_single(const text_ok_t *text_ok, dns_rdataclass_t rdclass, check_text_ok_single(const text_ok_t *text_ok, dns_rdataclass_t rdclass,
dns_rdatatype_t type, size_t structsize) dns_rdatatype_t type, size_t structsize)
{ {
isc_buffer_t source, target; dns_rdata_t rdata = DNS_RDATA_INIT;
unsigned char buf_fromtext[1024]; unsigned char buf_fromtext[1024];
char buf_totext[1024] = { 0 }; char buf_totext[1024] = { 0 };
isc_lex_t *lex = NULL; isc_buffer_t target;
isc_result_t result; isc_result_t result;
dns_rdata_t rdata;
size_t length;
/*
* Set up lexer to read data.
*/
result = isc_lex_create(mctx, 64, &lex);
ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
length = strlen(text_ok->text_in);
isc_buffer_constinit(&source, text_ok->text_in, length);
isc_buffer_add(&source, length);
result = isc_lex_openbuffer(lex, &source);
ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
/*
* Initialize target structures.
*/
isc_buffer_init(&target, buf_fromtext, sizeof(buf_fromtext));
dns_rdata_init(&rdata);
/* /*
* Try converting text form RDATA into uncompressed wire form. * Try converting text form RDATA into uncompressed wire form.
*/ */
result = dns_rdata_fromtext(&rdata, rdclass, type, lex, dns_rootname, result = dns_test_rdata_fromstring(&rdata, rdclass, type, buf_fromtext,
0, NULL, &target, NULL); sizeof(buf_fromtext),
/* text_ok->text_in);
* Destroy lexer now to simplify error handling below.
*/
isc_lex_destroy(&lex);
/* /*
* Check whether result is as expected. * Check whether result is as expected.
*/ */
+2 -3
View File
@@ -1,16 +1,15 @@
/* /*
* Copyright (C) 2009, 2010, 2016 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2009, 2010, 2016, 2017 Internet Systems Consortium, Inc. ("ISC")
* *
* This Source Code Form is subject to the terms of the Mozilla Public * 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 * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. * file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/ */
/* $Id: tsec.c,v 1.7 2010/12/09 00:54:34 marka Exp $ */
#include <config.h> #include <config.h>
#include <isc/mem.h> #include <isc/mem.h>
#include <isc/util.h>
#include <pk11/site.h> #include <pk11/site.h>
+1
View File
@@ -637,6 +637,7 @@ dns_nsec3_supportedhash
dns_nsec3_typepresent dns_nsec3_typepresent
dns_nsec3param_deletechains dns_nsec3param_deletechains
dns_nsec3param_fromprivate dns_nsec3param_fromprivate
dns_nsec3param_salttotext
dns_nsec3param_toprivate dns_nsec3param_toprivate
dns_nsec_build dns_nsec_build
dns_nsec_buildrdata dns_nsec_buildrdata
+3 -46
View File
@@ -3303,50 +3303,6 @@ resume_signingwithkey(dns_zone_t *zone) {
} }
} }
/*
* Convert the salt of given NSEC3PARAM RDATA into hex-encoded, NULL-terminated
* text stored at "dst".
*
* Requires:
* "dst" to have enough space (as indicated by "dstlen") to hold the
* resulting text and its NULL-terminating byte.
*/
static isc_result_t
nsec3param_salt_totext(dns_rdata_nsec3param_t *nsec3param, char *dst,
size_t dstlen)
{
isc_result_t result;
isc_region_t r;
isc_buffer_t b;
REQUIRE(nsec3param != NULL);
REQUIRE(dst != NULL);
if (nsec3param->salt_length == 0) {
if (dstlen < 2U) {
return (ISC_R_NOSPACE);
}
strlcpy(dst, "-", dstlen);
return (ISC_R_SUCCESS);
}
r.base = nsec3param->salt;
r.length = nsec3param->salt_length;
isc_buffer_init(&b, dst, (unsigned int)dstlen);
result = isc_hex_totext(&r, 2, "", &b);
if (result != ISC_R_SUCCESS) {
return (result);
}
if (isc_buffer_availablelength(&b) < 1) {
return (ISC_R_NOSPACE);
}
isc_buffer_putuint8(&b, 0);
return (ISC_R_SUCCESS);
}
/* /*
* Initiate adding/removing NSEC3 records belonging to the chain defined by the * Initiate adding/removing NSEC3 records belonging to the chain defined by the
* supplied NSEC3PARAM RDATA. * supplied NSEC3PARAM RDATA.
@@ -3450,7 +3406,8 @@ zone_addnsec3chain(dns_zone_t *zone, dns_rdata_nsec3param_t *nsec3param) {
strlcat(flags, "|OPTOUT", sizeof(flags)); strlcat(flags, "|OPTOUT", sizeof(flags));
} }
} }
result = nsec3param_salt_totext(nsec3param, saltbuf, sizeof(saltbuf)); result = dns_nsec3param_salttotext(nsec3param, saltbuf,
sizeof(saltbuf));
RUNTIME_CHECK(result == ISC_R_SUCCESS); RUNTIME_CHECK(result == ISC_R_SUCCESS);
dns_zone_log(zone, ISC_LOG_INFO, dns_zone_log(zone, ISC_LOG_INFO,
"zone_addnsec3chain(%u,%s,%u,%s)", "zone_addnsec3chain(%u,%s,%u,%s)",
@@ -17258,7 +17215,7 @@ dns_zone_addnsec3chain(dns_zone_t *zone, dns_rdata_nsec3param_t *nsec3param) {
REQUIRE(DNS_ZONE_VALID(zone)); REQUIRE(DNS_ZONE_VALID(zone));
result = nsec3param_salt_totext(nsec3param, salt, sizeof(salt)); result = dns_nsec3param_salttotext(nsec3param, salt, sizeof(salt));
RUNTIME_CHECK(result == ISC_R_SUCCESS); RUNTIME_CHECK(result == ISC_R_SUCCESS);
dns_zone_log(zone, ISC_LOG_NOTICE, dns_zone_log(zone, ISC_LOG_NOTICE,
"dns_zone_addnsec3chain(hash=%u, iterations=%u, salt=%s)", "dns_zone_addnsec3chain(hash=%u, iterations=%u, salt=%s)",
+2 -2
View File
@@ -17,12 +17,12 @@ VERSION=@BIND9_VERSION@
# #
HEADERS = aes.h app.h assertions.h backtrace.h base32.h base64.h \ HEADERS = aes.h app.h assertions.h backtrace.h base32.h base64.h \
bind9.h boolean.h buffer.h bufferlist.h \ bind9.h boolean.h buffer.h bufferlist.h \
commandline.h counter.h crc64.h \ commandline.h counter.h crc64.h deprecated.h \
entropy.h errno.h error.h event.h eventclass.h \ entropy.h errno.h error.h event.h eventclass.h \
file.h formatcheck.h fsaccess.h fuzz.h \ file.h formatcheck.h fsaccess.h fuzz.h \
hash.h heap.h hex.h hmacmd5.h hmacsha.h ht.h httpd.h \ hash.h heap.h hex.h hmacmd5.h hmacsha.h ht.h httpd.h \
interfaceiter.h @ISC_IPV6_H@ iterated_hash.h \ interfaceiter.h @ISC_IPV6_H@ iterated_hash.h \
json.h lang.h lex.h lfsr.h lib.h list.h log.h \ json.h lang.h lex.h lfsr.h lib.h likely.h list.h log.h \
magic.h md5.h mem.h meminfo.h msgcat.h msgs.h mutexblock.h \ magic.h md5.h mem.h meminfo.h msgcat.h msgs.h mutexblock.h \
netaddr.h netscope.h ondestroy.h os.h parseint.h \ netaddr.h netscope.h ondestroy.h os.h parseint.h \
pool.h portset.h print.h queue.h quota.h \ pool.h portset.h print.h queue.h quota.h \
+2 -1
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1997-2001, 2004-2009, 2016 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1997-2001, 2004-2009, 2016, 2017 Internet Systems Consortium, Inc. ("ISC")
* *
* This Source Code Form is subject to the terms of the Mozilla Public * 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 * License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -16,6 +16,7 @@
#define ISC_ASSERTIONS_H 1 #define ISC_ASSERTIONS_H 1
#include <isc/lang.h> #include <isc/lang.h>
#include <isc/likely.h>
#include <isc/platform.h> #include <isc/platform.h>
ISC_LANG_BEGINDECLS ISC_LANG_BEGINDECLS
+15 -12
View File
@@ -96,7 +96,10 @@
*** Imports *** Imports
***/ ***/
#include <isc/assertions.h>
#include <isc/formatcheck.h>
#include <isc/lang.h> #include <isc/lang.h>
#include <isc/likely.h>
#include <isc/magic.h> #include <isc/magic.h>
#include <isc/types.h> #include <isc/types.h>
@@ -910,10 +913,10 @@ ISC_LANG_ENDDECLS
do { \ do { \
if (ISC_UNLIKELY((_b)->autore)) { \ if (ISC_UNLIKELY((_b)->autore)) { \
isc_buffer_t *_tmp = _b; \ isc_buffer_t *_tmp = _b; \
REQUIRE(isc_buffer_reserve(&_tmp, _length) \ ISC_REQUIRE(isc_buffer_reserve(&_tmp, _length) \
== ISC_R_SUCCESS); \ == ISC_R_SUCCESS); \
} \ } \
REQUIRE(isc_buffer_availablelength(_b) >= (unsigned int) _length); \ ISC_REQUIRE(isc_buffer_availablelength(_b) >= (unsigned int) _length); \
memmove(isc_buffer_used(_b), (_base), (_length)); \ memmove(isc_buffer_used(_b), (_base), (_length)); \
(_b)->used += (_length); \ (_b)->used += (_length); \
} while (0) } while (0)
@@ -925,10 +928,10 @@ ISC_LANG_ENDDECLS
_length = strlen(_source); \ _length = strlen(_source); \
if (ISC_UNLIKELY((_b)->autore)) { \ if (ISC_UNLIKELY((_b)->autore)) { \
isc_buffer_t *_tmp = _b; \ isc_buffer_t *_tmp = _b; \
REQUIRE(isc_buffer_reserve(&_tmp, _length) \ ISC_REQUIRE(isc_buffer_reserve(&_tmp, _length) \
== ISC_R_SUCCESS); \ == ISC_R_SUCCESS); \
} \ } \
REQUIRE(isc_buffer_availablelength(_b) >= (unsigned int) _length); \ ISC_REQUIRE(isc_buffer_availablelength(_b) >= (unsigned int) _length); \
_cp = isc_buffer_used(_b); \ _cp = isc_buffer_used(_b); \
memmove(_cp, (_source), _length); \ memmove(_cp, (_source), _length); \
(_b)->used += (_length); \ (_b)->used += (_length); \
@@ -941,10 +944,10 @@ ISC_LANG_ENDDECLS
isc_uint8_t _val2 = (_val); \ isc_uint8_t _val2 = (_val); \
if (ISC_UNLIKELY((_b)->autore)) { \ if (ISC_UNLIKELY((_b)->autore)) { \
isc_buffer_t *_tmp = _b; \ isc_buffer_t *_tmp = _b; \
REQUIRE(isc_buffer_reserve(&_tmp, 1) \ ISC_REQUIRE(isc_buffer_reserve(&_tmp, 1) \
== ISC_R_SUCCESS); \ == ISC_R_SUCCESS); \
} \ } \
REQUIRE(isc_buffer_availablelength(_b) >= 1U); \ ISC_REQUIRE(isc_buffer_availablelength(_b) >= 1U); \
_cp = isc_buffer_used(_b); \ _cp = isc_buffer_used(_b); \
(_b)->used++; \ (_b)->used++; \
_cp[0] = _val2; \ _cp[0] = _val2; \
@@ -957,10 +960,10 @@ ISC_LANG_ENDDECLS
isc_uint16_t _val2 = (_val); \ isc_uint16_t _val2 = (_val); \
if (ISC_UNLIKELY((_b)->autore)) { \ if (ISC_UNLIKELY((_b)->autore)) { \
isc_buffer_t *_tmp = _b; \ isc_buffer_t *_tmp = _b; \
REQUIRE(isc_buffer_reserve(&_tmp, 2) \ ISC_REQUIRE(isc_buffer_reserve(&_tmp, 2) \
== ISC_R_SUCCESS); \ == ISC_R_SUCCESS); \
} \ } \
REQUIRE(isc_buffer_availablelength(_b) >= 2U); \ ISC_REQUIRE(isc_buffer_availablelength(_b) >= 2U); \
_cp = isc_buffer_used(_b); \ _cp = isc_buffer_used(_b); \
(_b)->used += 2; \ (_b)->used += 2; \
_cp[0] = (unsigned char)(_val2 >> 8); \ _cp[0] = (unsigned char)(_val2 >> 8); \
@@ -974,10 +977,10 @@ ISC_LANG_ENDDECLS
isc_uint32_t _val2 = (_val); \ isc_uint32_t _val2 = (_val); \
if (ISC_UNLIKELY((_b)->autore)) { \ if (ISC_UNLIKELY((_b)->autore)) { \
isc_buffer_t *_tmp = _b; \ isc_buffer_t *_tmp = _b; \
REQUIRE(isc_buffer_reserve(&_tmp, 3) \ ISC_REQUIRE(isc_buffer_reserve(&_tmp, 3) \
== ISC_R_SUCCESS); \ == ISC_R_SUCCESS); \
} \ } \
REQUIRE(isc_buffer_availablelength(_b) >= 3U); \ ISC_REQUIRE(isc_buffer_availablelength(_b) >= 3U); \
_cp = isc_buffer_used(_b); \ _cp = isc_buffer_used(_b); \
(_b)->used += 3; \ (_b)->used += 3; \
_cp[0] = (unsigned char)(_val2 >> 16); \ _cp[0] = (unsigned char)(_val2 >> 16); \
@@ -992,10 +995,10 @@ ISC_LANG_ENDDECLS
isc_uint32_t _val2 = (_val); \ isc_uint32_t _val2 = (_val); \
if (ISC_UNLIKELY((_b)->autore)) { \ if (ISC_UNLIKELY((_b)->autore)) { \
isc_buffer_t *_tmp = _b; \ isc_buffer_t *_tmp = _b; \
REQUIRE(isc_buffer_reserve(&_tmp, 4) \ ISC_REQUIRE(isc_buffer_reserve(&_tmp, 4) \
== ISC_R_SUCCESS); \ == ISC_R_SUCCESS); \
} \ } \
REQUIRE(isc_buffer_availablelength(_b) >= 4U); \ ISC_REQUIRE(isc_buffer_availablelength(_b) >= 4U); \
_cp = isc_buffer_used(_b); \ _cp = isc_buffer_used(_b); \
(_b)->used += 4; \ (_b)->used += 4; \
_cp[0] = (unsigned char)(_val2 >> 24); \ _cp[0] = (unsigned char)(_val2 >> 24); \
+19
View File
@@ -0,0 +1,19 @@
/*
* Copyright (C) 2017 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/.
*/
#ifndef ISC_DEPRECATED_H
#define ISC_DEPRECATED_H
#ifdef __GNUC__
#define ISC_DEPRECATED __attribute__((deprecated))
#else
#define ISC_DEPRECATED /* none */
#endif /* __GNUC __ */
#endif
+1
View File
@@ -17,6 +17,7 @@
#include <isc/formatcheck.h> #include <isc/formatcheck.h>
#include <isc/lang.h> #include <isc/lang.h>
#include <isc/likely.h>
#include <isc/platform.h> #include <isc/platform.h>
ISC_LANG_BEGINDECLS ISC_LANG_BEGINDECLS
+2 -2
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2003-2007, 2009, 2013-2016 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2003-2007, 2009, 2013-2017 Internet Systems Consortium, Inc. ("ISC")
* *
* This Source Code Form is subject to the terms of the Mozilla Public * 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 * License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -9,8 +9,8 @@
#ifndef ISC_HASH_H #ifndef ISC_HASH_H
#define ISC_HASH_H 1 #define ISC_HASH_H 1
#include <isc/deprecated.h>
#include <isc/types.h> #include <isc/types.h>
#include <isc/util.h>
/***** /*****
***** Module Info ***** Module Info
+23
View File
@@ -0,0 +1,23 @@
/*
* Copyright (C) 2017 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/.
*/
#ifndef ISC_LIKELY_H
#define ISC_LIKELY_H 1
/*%
* Performance
*/
#ifdef HAVE_BUILTIN_EXPECT
#define ISC_LIKELY(x) __builtin_expect(!!(x), 1)
#define ISC_UNLIKELY(x) __builtin_expect(!!(x), 0)
#else
#define ISC_LIKELY(x) (x)
#define ISC_UNLIKELY(x) (x)
#endif
#endif /* ISC_LIKELY_H */
+2 -2
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 1999-2001, 2004-2007, 2016 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001, 2004-2007, 2016, 2017 Internet Systems Consortium, Inc. ("ISC")
* *
* This Source Code Form is subject to the terms of the Mozilla Public * 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 * License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -11,7 +11,7 @@
#ifndef ISC_MAGIC_H #ifndef ISC_MAGIC_H
#define ISC_MAGIC_H 1 #define ISC_MAGIC_H 1
#include <isc/util.h> #include <isc/likely.h>
/*! \file isc/magic.h */ /*! \file isc/magic.h */
+60 -42
View File
@@ -11,12 +11,13 @@
#ifndef ISC_REFCOUNT_H #ifndef ISC_REFCOUNT_H
#define ISC_REFCOUNT_H 1 #define ISC_REFCOUNT_H 1
#include <isc/assertions.h>
#include <isc/atomic.h> #include <isc/atomic.h>
#include <isc/error.h>
#include <isc/lang.h> #include <isc/lang.h>
#include <isc/mutex.h> #include <isc/mutex.h>
#include <isc/platform.h> #include <isc/platform.h>
#include <isc/types.h> #include <isc/types.h>
#include <isc/util.h>
#if defined(ISC_PLATFORM_HAVESTDATOMIC) #if defined(ISC_PLATFORM_HAVESTDATOMIC)
#include <stdatomic.h> #include <stdatomic.h>
@@ -109,7 +110,7 @@ typedef struct isc_refcount {
#define isc_refcount_current(rp) \ #define isc_refcount_current(rp) \
((unsigned int)(atomic_load_explicit(&(rp)->refs, \ ((unsigned int)(atomic_load_explicit(&(rp)->refs, \
memory_order_relaxed))) memory_order_relaxed)))
#define isc_refcount_destroy(rp) REQUIRE(isc_refcount_current(rp) == 0) #define isc_refcount_destroy(rp) ISC_REQUIRE(isc_refcount_current(rp) == 0)
#define isc_refcount_increment0(rp, tp) \ #define isc_refcount_increment0(rp, tp) \
do { \ do { \
@@ -127,7 +128,7 @@ typedef struct isc_refcount {
isc_int32_t prev; \ isc_int32_t prev; \
prev = atomic_fetch_add_explicit \ prev = atomic_fetch_add_explicit \
(&(rp)->refs, 1, memory_order_relaxed); \ (&(rp)->refs, 1, memory_order_relaxed); \
REQUIRE(prev > 0); \ ISC_REQUIRE(prev > 0); \
if (_tmp != NULL) \ if (_tmp != NULL) \
*_tmp = prev + 1; \ *_tmp = prev + 1; \
} while (0) } while (0)
@@ -138,7 +139,7 @@ typedef struct isc_refcount {
isc_int32_t prev; \ isc_int32_t prev; \
prev = atomic_fetch_sub_explicit \ prev = atomic_fetch_sub_explicit \
(&(rp)->refs, 1, memory_order_relaxed); \ (&(rp)->refs, 1, memory_order_relaxed); \
REQUIRE(prev > 0); \ ISC_REQUIRE(prev > 0); \
if (_tmp != NULL) \ if (_tmp != NULL) \
*_tmp = prev - 1; \ *_tmp = prev - 1; \
} while (0) } while (0)
@@ -147,7 +148,7 @@ typedef struct isc_refcount {
#define isc_refcount_current(rp) \ #define isc_refcount_current(rp) \
((unsigned int)(isc_atomic_xadd(&(rp)->refs, 0))) ((unsigned int)(isc_atomic_xadd(&(rp)->refs, 0)))
#define isc_refcount_destroy(rp) REQUIRE(isc_refcount_current(rp) == 0) #define isc_refcount_destroy(rp) ISC_REQUIRE(isc_refcount_current(rp) == 0)
#define isc_refcount_increment0(rp, tp) \ #define isc_refcount_increment0(rp, tp) \
do { \ do { \
@@ -163,7 +164,7 @@ typedef struct isc_refcount {
unsigned int *_tmp = (unsigned int *)(tp); \ unsigned int *_tmp = (unsigned int *)(tp); \
isc_int32_t prev; \ isc_int32_t prev; \
prev = isc_atomic_xadd(&(rp)->refs, 1); \ prev = isc_atomic_xadd(&(rp)->refs, 1); \
REQUIRE(prev > 0); \ ISC_REQUIRE(prev > 0); \
if (_tmp != NULL) \ if (_tmp != NULL) \
*_tmp = prev + 1; \ *_tmp = prev + 1; \
} while (0) } while (0)
@@ -173,7 +174,7 @@ typedef struct isc_refcount {
unsigned int *_tmp = (unsigned int *)(tp); \ unsigned int *_tmp = (unsigned int *)(tp); \
isc_int32_t prev; \ isc_int32_t prev; \
prev = isc_atomic_xadd(&(rp)->refs, -1); \ prev = isc_atomic_xadd(&(rp)->refs, -1); \
REQUIRE(prev > 0); \ ISC_REQUIRE(prev > 0); \
if (_tmp != NULL) \ if (_tmp != NULL) \
*_tmp = prev - 1; \ *_tmp = prev - 1; \
} while (0) } while (0)
@@ -188,46 +189,63 @@ typedef struct isc_refcount {
} isc_refcount_t; } isc_refcount_t;
/*% Destroys a reference counter. */ /*% Destroys a reference counter. */
#define isc_refcount_destroy(rp) \ #define isc_refcount_destroy(rp) \
do { \ do { \
REQUIRE((rp)->refs == 0); \ isc_result_t _result; \
DESTROYLOCK(&(rp)->lock); \ ISC_REQUIRE((rp)->refs == 0); \
_result = isc_mutex_destroy(&(rp)->lock); \
ISC_ERROR_RUNTIMECHECK(_result == ISC_R_SUCCESS); \
} while (0) } while (0)
#define isc_refcount_current(rp) ((unsigned int)((rp)->refs)) #define isc_refcount_current(rp) ((unsigned int)((rp)->refs))
/*% Increments the reference count, returning the new value in targetp if it's not NULL. */ /*%
#define isc_refcount_increment0(rp, tp) \ * Increments the reference count, returning the new value in
do { \ * 'tp' if it's not NULL.
unsigned int *_tmp = (unsigned int *)(tp); \ */
LOCK(&(rp)->lock); \ #define isc_refcount_increment0(rp, tp) \
++((rp)->refs); \ do { \
if (_tmp != NULL) \ isc_result_t _result; \
*_tmp = ((rp)->refs); \ unsigned int *_tmp = (unsigned int *)(tp); \
UNLOCK(&(rp)->lock); \ _result = isc_mutex_lock(&(rp)->lock); \
ISC_ERROR_RUNTIMECHECK(_result == ISC_R_SUCCESS); \
++((rp)->refs); \
if (_tmp != NULL) \
*_tmp = ((rp)->refs); \
_result = isc_mutex_unlock(&(rp)->lock); \
ISC_ERROR_RUNTIMECHECK(_result == ISC_R_SUCCESS); \
} while (0) } while (0)
#define isc_refcount_increment(rp, tp) \ #define isc_refcount_increment(rp, tp) \
do { \ do { \
unsigned int *_tmp = (unsigned int *)(tp); \ isc_result_t _result; \
LOCK(&(rp)->lock); \ unsigned int *_tmp = (unsigned int *)(tp); \
REQUIRE((rp)->refs > 0); \ _result = isc_mutex_lock(&(rp)->lock); \
++((rp)->refs); \ ISC_ERROR_RUNTIMECHECK(_result == ISC_R_SUCCESS); \
if (_tmp != NULL) \ ISC_REQUIRE((rp)->refs > 0); \
*_tmp = ((rp)->refs); \ ++((rp)->refs); \
UNLOCK(&(rp)->lock); \ if (_tmp != NULL) \
*_tmp = ((rp)->refs); \
_result = isc_mutex_unlock(&(rp)->lock); \
ISC_ERROR_RUNTIMECHECK(_result == ISC_R_SUCCESS); \
} while (0) } while (0)
/*% Decrements the reference count, returning the new value in targetp if it's not NULL. */ /*%
#define isc_refcount_decrement(rp, tp) \ * Decrements the reference count, returning the new value in 'tp'
do { \ * if it's not NULL.
unsigned int *_tmp = (unsigned int *)(tp); \ */
LOCK(&(rp)->lock); \ #define isc_refcount_decrement(rp, tp) \
REQUIRE((rp)->refs > 0); \ do { \
--((rp)->refs); \ isc_result_t _result; \
if (_tmp != NULL) \ unsigned int *_tmp = (unsigned int *)(tp); \
*_tmp = ((rp)->refs); \ _result = isc_mutex_lock(&(rp)->lock); \
UNLOCK(&(rp)->lock); \ ISC_ERROR_RUNTIMECHECK(_result == ISC_R_SUCCESS); \
ISC_REQUIRE((rp)->refs > 0); \
--((rp)->refs); \
if (_tmp != NULL) \
*_tmp = ((rp)->refs); \
_result = isc_mutex_unlock(&(rp)->lock); \
ISC_ERROR_RUNTIMECHECK(_result == ISC_R_SUCCESS); \
} while (0) } while (0)
#endif /* (defined(ISC_PLATFORM_HAVESTDATOMIC) && defined(ATOMIC_INT_LOCK_FREE)) || defined(ISC_PLATFORM_HAVEXADD) */ #endif /* (defined(ISC_PLATFORM_HAVESTDATOMIC) && defined(ATOMIC_INT_LOCK_FREE)) || defined(ISC_PLATFORM_HAVEXADD) */
@@ -237,7 +255,7 @@ typedef struct isc_refcount {
int refs; int refs;
} isc_refcount_t; } isc_refcount_t;
#define isc_refcount_destroy(rp) REQUIRE((rp)->refs == 0) #define isc_refcount_destroy(rp) ISC_REQUIRE((rp)->refs == 0)
#define isc_refcount_current(rp) ((unsigned int)((rp)->refs)) #define isc_refcount_current(rp) ((unsigned int)((rp)->refs))
#define isc_refcount_increment0(rp, tp) \ #define isc_refcount_increment0(rp, tp) \
@@ -252,7 +270,7 @@ typedef struct isc_refcount {
do { \ do { \
unsigned int *_tmp = (unsigned int *)(tp); \ unsigned int *_tmp = (unsigned int *)(tp); \
int _n; \ int _n; \
REQUIRE((rp)->refs > 0); \ ISC_REQUIRE((rp)->refs > 0); \
_n = ++(rp)->refs; \ _n = ++(rp)->refs; \
if (_tmp != NULL) \ if (_tmp != NULL) \
*_tmp = _n; \ *_tmp = _n; \
@@ -262,7 +280,7 @@ typedef struct isc_refcount {
do { \ do { \
unsigned int *_tmp = (unsigned int *)(tp); \ unsigned int *_tmp = (unsigned int *)(tp); \
int _n; \ int _n; \
REQUIRE((rp)->refs > 0); \ ISC_REQUIRE((rp)->refs > 0); \
_n = --(rp)->refs; \ _n = --(rp)->refs; \
if (_tmp != NULL) \ if (_tmp != NULL) \
*_tmp = _n; \ *_tmp = _n; \
+1 -1
View File
@@ -458,7 +458,7 @@ isc_task_onshutdown(isc_task_t *task, isc_taskaction_t action,
* *
*\li #ISC_R_SUCCESS *\li #ISC_R_SUCCESS
*\li #ISC_R_NOMEMORY *\li #ISC_R_NOMEMORY
*\li #ISC_R_TASKSHUTTINGDOWN Task is shutting down. *\li #ISC_R_SHUTTINGDOWN Task is shutting down.
*/ */
void void

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