Commit Graph

3631 Commits

Author SHA1 Message Date
Ondřej Surý
e37e27c560 Update lwres to use stdint types to finish transition to using stdint types 2018-08-22 09:04:02 +02:00
Michał Kępień
a3490ef66e Make the "inline" system test more lightweight
Each zone used in the "inline" system test contains a few dozen records.
Over a dozen of these zones are used in the test.  Most records present
in these zones are not subsequently used in the test itself, but all of
them need to be signed by the named instances launched by the test,
which puts quite a bit of strain on lower-end machines, leading to
intermittent failures of the "inline" system test.  Remove all redundant
records from the zones used in the "inline" system test in order to
stabilize it.

(cherry picked from commit 24dd865b97)
2018-08-14 10:16:39 +02:00
Michał Kępień
cbd85e0137 Queue "rndc signing -nsec3param ..." requests if needed
If "rndc signing -nsec3param ..." is ran for a zone which has not yet
been loaded or transferred (i.e. its "db" field is NULL), it will be
silently ignored by named despite rndc logging an "nsec3param request
queued" message, which is misleading.  Prevent this by keeping a
per-zone queue of NSEC3PARAM change requests which arrive before a zone
is loaded or transferred and processing that queue once the raw version
of an inline-signed zone becomes available.

(cherry picked from commit cb40c5229a)
2018-08-14 09:29:54 +02:00
Ondřej Surý
1084b40b44 Replace custom isc_boolean_t with C standard bool type
(cherry picked from commit 994e656977)
(cherry picked from commit 884929400c)
2018-08-10 15:20:57 +02:00
Ondřej Surý
aaa76dc654 Replace custom isc_u?intNN_t types with C99 u?intNN_t types
(cherry picked from commit cb6a185c69)
(cherry picked from commit d61e6a3111)
2018-08-10 15:20:57 +02:00
Evan Hunt
ba162bd0d4 caclulate nlabels and set *chainingp correctly
(cherry picked from commit e78e55f435)
2018-08-08 14:27:44 -07:00
Evan Hunt
02e8b3f8dc test case
(cherry picked from commit 73486c13f743407a50d5bbadde90c949a696506f)
(cherry picked from commit 584a1cff8b)
2018-08-08 14:27:17 -07:00
Mark Andrews
f2ce5b542e only check the bit map
(cherry picked from commit a94db46631)
(cherry picked from commit 092b739535)
2018-08-03 09:02:34 +10:00
Mark Andrews
84b5b6a659 use guard values for testing unixtime serial
(cherry picked from commit abe41ba011)
2018-08-02 11:29:15 +10:00
Mark Andrews
2e29c1f139 save SOA values
(cherry picked from commit 6b30bc73c0)
2018-08-02 11:29:15 +10:00
Mark Andrews
8c515d6b18 test mdig '+ednsopt=:' handling
(cherry picked from commit 2e688488f7)
2018-08-02 09:48:27 +10:00
Michał Kępień
88be595735 Do not replace lo0 address on Solaris
lo0 and lo0:0 are the same interface on Solaris.  Make sure
bin/tests/system/ifconfig.sh does not touch lo0:0 in order to prevent it
from changing the address of the loopback interface on Solaris.

(cherry picked from commit 618921902a)
2018-07-17 08:20:10 +02:00
Michał Kępień
12bedaef75 Do not spam console if "git status --ignored" fails during tests
The "git status" command in Git versions before 1.7.2 does not support
the "--ignored" option.  Prevent spamming the console when running
system tests from a Git repository on a host with an ancient Git version
installed.

(cherry picked from commit 2be97feb46)
2018-07-13 12:15:36 +02:00
Michał Kępień
e0dbc27c0d Remove IDN subtest from the "digdelv" system test
The output of certain "dig +idnout" invocations may be locale-dependent.
Remove the "dig +idnout" subtest from the "digdelv" system test as IDN
support is already thoroughly tested by the "idna" system test.

(cherry picked from commit fd30a03f2b)
2018-07-13 12:15:36 +02:00
Michał Kępień
4fdee34a0b Improve error handling in idn_ace_to_locale()
While idn2_to_unicode_8zlz() takes a 'flags' argument, it is ignored and
thus cannot be used to perform IDN checks on the output string.

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

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

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

(cherry picked from commit 7fe0f00a3b)
2018-07-13 12:15:03 +02:00
Michał Kępień
a996e26b8b Include conf.sh from all prereq.sh scripts
Every prereq.sh script must include bin/tests/system/conf.sh, otherwise
if some prerequisite is not met, errors about echo_i not being found
will be printed instead of actual error messages.

(cherry picked from commit cc0e8cda71)
2018-07-13 08:24:55 +02:00
Ondřej Surý
d4baf8b117 Add .gitignore for PKCS#11 test files
(cherry picked from commit 96907d636d)
2018-07-12 12:18:33 -04:00
Mark Andrews
41a632bae1 add test for bad dig option '+ednsopt=:' being handled gracefully
(cherry picked from commit ad86878d61)
(cherry picked from commit 9f126bac32)
2018-07-11 12:12:32 -07:00
Mukund Sivaraman
a829bb3f1b Add system tests for "tcp-self" update-policy
(cherry picked from commit a7e6a584ea)
2018-07-11 11:13:24 -07:00
Michał Kępień
740b3a9118 Fix a Net::DNS version quirk in the "resolver" system test
Net::DNS versions older than 0.68 insert a ./ANY RR into the QUESTION
section if the latter is empty.  Since the latest Net::DNS version
available with stock RHEL/CentOS 6 packages is 0.65 and we officially
support that operating system, bin/tests/system/resolver/ans8/ans.pl
should behave consistently for various Net::DNS versions.  Ensure that
by making handleUDP() return the query ID and flags generated by
Net::DNS with 8 zero bytes appended.

(cherry picked from commit 6c3c6aea37)
2018-07-10 15:08:05 +02:00
Mukund Sivaraman
49cd7552be return FORMERR when question section is empty if COOKIE is not present
(cherry picked from commit 06d3106002)
(cherry picked from commit ed29b84e16)
2018-06-26 14:44:18 -07:00
Mark Andrews
316eebb699 construct a symtab of valid in-view targets then check that the target exists
(cherry picked from commit e01a4bcb20)
2018-06-26 10:53:59 -07:00
Evan Hunt
b330bcb8a1 add a regression test for default allow-recursion settings 2018-06-14 14:47:11 +02:00
Michał Kępień
6d8a514ecb Treat records below a DNAME as out-of-zone data
DNAME records indicate bottom of zone and thus no records below a DNAME
should be DNSSEC-signed or included in NSEC(3) chains.  Add a helper
function, has_dname(), for detecting DNAME records at a given node.
Prevent signing DNAME-obscured records.  Check that DNAME-obscured
records are not signed.

(cherry picked from commit ff7015a0f8)
2018-06-13 12:58:27 +02:00
Michał Kępień
da430b5f36 Add helper variables in mkeys system test
The keyfile and key ID for the original managed key do not change
throughout the mkeys system test.  Keep them in helper variables to
prevent calling "cat" multiple times and improve code readability.

(cherry picked from commit 2cad382552)
2018-06-13 08:08:25 +02:00
Michał Kępień
a23e9821d6 Replace duplicated code snippet with calls to helper functions
Reduce code duplication by replacing a code snippet repeated throughout
system tests using "trusted-keys" and/or "managed-keys" configuration
sections with calls to keyfile_to_{managed,trusted}_keys() helper
functions.

(cherry picked from commit dce66f7635)
2018-06-13 08:08:25 +02:00
Michał Kępień
36d6a6cc76 Add helper functions for converting keyfile data into configuration sections
Add a set of helper functions for system test scripts which enable
converting key data from a set of keyfiles to either a "trusted-keys"
section or a "managed-keys" section suitable for including in a
resolver's configuration file.

(cherry picked from commit 21d3658bcb)
2018-06-13 08:08:25 +02:00
Evan Hunt
7a00ce2e77 ensure we try to validate glue records so RRSIG TTLs will be capped 2018-06-08 11:41:48 -07:00
Mukund Sivaraman
db12b1a9f9 Add system test
(cherry picked from commit a5933fa2bb)
2018-06-08 17:29:45 +10:00
Mark Andrews
1710e5cfca add duplicate signature test
(cherry picked from commit 0db5b087ed)
(cherry picked from commit 1783fa5aba)
2018-06-06 17:21:29 +10:00
Evan Hunt
81c2298665 use "ip" on linux, falling back to "ifconfig" when it isn't available
(cherry picked from commit d7c5400798)
(cherry picked from commit 3e1a0c2b62)
2018-06-05 21:46:08 -07:00
Evan Hunt
35f4aafb20 expand address range in ifconfig.sh to include more than one subnet
(cherry picked from commit 41b29a436b)
(cherry picked from commit e4487b160c)
2018-06-05 21:46:08 -07:00
Evan Hunt
e229ae6999 add prerequisite check 2018-06-04 17:41:22 -04:00
Mark Andrews
9448c4fd21 add system test for root-key-sentinel
(cherry picked from commit a23b305e6b)
(cherry picked from commit b9e6b124aa)
2018-06-04 17:41:22 -04:00
Mark Andrews
f9d19cab7f 4699. [func] Multiple cookie-secret clauses can now be specified.
The first one specified is used to generate new
                        server cookies.  [RT #45672]
2018-06-04 13:16:28 -07:00
Mukund Sivaraman
3d62545657 Add system test
(cherry picked from commit 303391ea41)
2018-06-04 01:12:18 -04:00
Mukund Sivaraman
0aa9c410d7 Don't insert 2nd space between NSEC3 nexthash and typemap fields
(cherry picked from commit d4ea1edd2c)
2018-06-04 13:02:44 +10:00
Evan Hunt
eb0964a501 fix openbsd color-display problem in system test output
(cherry picked from commit 1e31fdb76d)
2018-05-25 13:01:38 -07:00
Evan Hunt
3fe5acd39f files were left in place after catz run because of non-portable bracket use
(cherry picked from commit af73e16c9c)
2018-05-24 16:18:44 -07:00
Mark Andrews
8543097699 add HOME.ARPA to the list of empty zones
(cherry picked from commit 10dd0b3efe)
2018-05-23 11:14:18 +10:00
Mark Andrews
8d96f3a207 fix handling of failed tests
(cherry picked from commit 4283f9552f)
2018-05-23 11:13:53 +10:00
Ondřej Surý
188526f41c Remove $Id markers, Principal Author and Reviewed tags from the full source tree
(cherry picked from commit 55a10b7acd)
2018-05-11 14:25:15 +02:00
Ondřej Surý
0cbad1b3fc Update tests to not use '>&-' that closes file descriptor, but instead use correct redirection to '>/dev/null'
(cherry picked from commit 3f66b8acb0)
2018-05-11 13:11:20 +02:00
Ondřej Surý
18f4f0d1ac Address GCC 8 -Wstringop-truncation warning
(cherry picked from commit 9845c4c4a7)
2018-05-10 10:54:38 +02:00
Michał Kępień
911836509e Apply raw zone deltas to yet unsigned secure zones
When inline signing is enabled for a zone without creating signing keys
for it, changes subsequently applied to the raw zone will not be
reflected in the secure zone due to the dns_update_signaturesinc() call
inside receive_secure_serial() failing.  Given that an inline zone will
be served (without any signatures) even with no associated signing keys
being present, keep applying raw zone deltas to the secure zone until
keys become available in an attempt to follow the principle of least
astonishment.

(cherry picked from commit 6acf326969)
(cherry picked from commit 8a58a60772)
2018-04-25 12:09:53 -07:00
Evan Hunt
2a6a2014b4 Alter distclean rule to prevent recursing into the same directory twice
Commit f87e0c03ee removed the "system" directory from the TESTDIRS
variable in bin/tests/Makefile.in in an attempt to fix "make distclean"
which was broken since commit 0d784de16a.  However, this change
prevented any system tests from being run when "make test" is invoked.

We now put it back into both SUBDIRS and TESTDIRS, but with a modified
rule to check for the existence of a Makefile in each subdirectory before
trying to run make there. This prevents "make distclean" from trying to
run again in a directory where it's already been run.

(cherry picked from commit 93ee6b8a22)
2018-04-10 20:04:40 -07:00
Michał Kępień
ab88043e74 Do not access dns_fixedname_t fields directly
Employ dns_fixedname_name() and dns_fixedname_initname() to no longer
directly access dns_fixedname_t fields.

(cherry picked from commit 39ddf9991f)
(cherry picked from commit 706f865a20)
2018-04-10 13:27:48 -07:00
Michał Kępień
ecea678dac Use dns_fixedname_initname() where possible
Replace dns_fixedname_init() calls followed by dns_fixedname_name()
calls with calls to dns_fixedname_initname() where it is possible
without affecting current behavior and/or performance.

This patch was mostly prepared using Coccinelle and the following
semantic patch:

    @@
    expression fixedname, name;
    @@
    -	dns_fixedname_init(&fixedname);
    	...
    -	name = dns_fixedname_name(&fixedname);
    +	name = dns_fixedname_initname(&fixedname);

The resulting set of changes was then manually reviewed to exclude false
positives and apply minor tweaks.

It is likely that more occurrences of this pattern can be refactored in
an identical way.  This commit only takes care of the low-hanging fruit.

(cherry picked from commit 4df4a8e731)
(cherry picked from commit 0041aeb751)
2018-04-10 13:26:23 -07:00
Mark Andrews
0f67278a7e system should only be in SUBDIRS
(cherry picked from commit 342e146fe3)
2018-04-06 13:09:45 +10:00
Kevin Chen
a39c613ccc Add a Net::DNS prereq for digdelv, fetchlimit, rpzrecurse, and zero
tests to avoid failed tests when Net::DNS is not present.

(cherry picked from commit 8b1b809ab4)
2018-04-04 23:02:58 +02:00