Commit Graph

27116 Commits

Author SHA1 Message Date
Michał Kępień
9dc1b43f3c Display a per-view list of zones in the web interface
The XSL stylesheet used by the web interface does not currently include
any element which would cause a list of zones configured in each view to
be displayed, making the "Zones" section of the web interface empty
unless some zone has been configured with "zone-statistics full;" and
queried.  Since this can be confusing, modify the XSL stylesheet so that
a list of zones configured in each view is displayed in the web
interface.

(cherry picked from commit aeda3f389e)
2018-10-25 10:21:26 +02:00
Michał Kępień
043445db8b Merge branch '582-fix-server-addresses-configuration-type-v9_12' into 'v9_12'
[v9_12] Fix the configuration type used by the "server-addresses" option

See merge request isc-projects/bind9!897
2018-10-25 03:22:25 -04:00
Michał Kępień
963a441921 Add CHANGES entry
5051.	[doc]		Documentation incorrectly stated that the
			"server-addresses" static-stub zone option accepts
			custom port numbers. [GL #582]

(cherry picked from commit 6b1c0a8e6f)
2018-10-25 09:00:46 +02:00
Michał Kępień
7b9a5ed7d5 Fix the configuration type used by the "server-addresses" option
Contrary to what the documentation states, the "server-addresses"
static-stub zone option does not accept custom port numbers.  Fix the
configuration type used by the "server-addresses" option to ensure
documentation matches source code.  Remove a check_zoneconf() test which
is unnecessary with this fix in place.

(cherry picked from commit b324576858)
2018-10-25 08:58:56 +02:00
Mark Andrews
ae7e59c268 Merge branch '619-implement-atma-v9_12' into 'v9_12'
Resolve "Implement ATMA"

See merge request isc-projects/bind9!893
2018-10-24 23:18:30 -04:00
Mark Andrews
f6515be8f6 Add support for ATMA
(cherry picked from commit f9ceddd8ca)
2018-10-25 14:08:42 +11:00
Mark Andrews
efa5eeeb51 Merge branch '609-address-memory-leak-on-error-v9_12' into 'v9_12'
Resolve "Address memory leak on error"

See merge request isc-projects/bind9!891
2018-10-24 23:05:36 -04:00
Mark Andrews
7f07a0bb5d expand the pool then copy over the old entries so we that failures do not break the old pool; also don't leak the new pool on error
(cherry picked from commit afde30fe9b)
2018-10-25 13:20:03 +11:00
Mark Andrews
7796546fb2 Merge branch '610-address-memory-leak-on-error-v9_12' into 'v9_12'
Resolve "Address memory leak on error"

See merge request isc-projects/bind9!883
2018-10-23 21:05:47 -04:00
Mark Andrews
e388288322 free key on error
(cherry picked from commit 607c2d7441)
2018-10-24 11:57:46 +11:00
Evan Hunt
1b276bdb14 Merge branch 'cleanup-changes-v9_12' into 'v9_12'
minor CHANGES edits

See merge request isc-projects/bind9!881
2018-10-23 16:32:17 -04:00
Evan Hunt
512cdf8344 minor edits 2018-10-23 13:31:48 -07:00
Michał Kępień
4cd0ee8fab Merge branch '187-libirs-handle-scoped-ipv6-addresses-in-etc-resolv.conf-v9_12' into 'v9_12'
[v9_12] libirs: handle scoped IPv6 addresses in /etc/resolv.conf

See merge request isc-projects/bind9!879
2018-10-23 09:13:16 -04:00
Michał Kępień
9b802174f6 Add CHANGES entry
5050.	[bug]		The libirs version of getaddrinfo() was unable to parse
			scoped IPv6 addresses present in /etc/resolv.conf.
			[GL #187]

(cherry picked from commit b7564cc898)
2018-10-23 14:54:18 +02:00
Michał Kępień
97c7021e24 libirs: handle scoped IPv6 addresses in /etc/resolv.conf
Commonly used network configuration tools write scoped IPv6 nameserver
addresses to /etc/resolv.conf.  libirs only handles these when it is
compiled with -DIRS_HAVE_SIN6_SCOPE_ID, which is not the default, and
only handles numeric scopes, which is not what network configuration
tools typically use.  This causes dig to be practically unable to handle
scoped IPv6 nameserver addresses in /etc/resolv.conf.

Fix the problem by:

  - not requiring a custom compile-time flag to be set in order for
    scoped IPv6 addresses to be processed by getaddrinfo(),

  - parsing non-numeric scope identifiers using if_nametoindex(),

  - setting the sin6_scope_id field in struct sockaddr_in6 structures
    returned by getaddrinfo() even if the AI_CANONNAME flag is not set.

(cherry picked from commit 76d49c05be)
2018-10-23 14:54:07 +02:00
Michał Kępień
f6c677c100 Merge branch 'wpk-servfail-on-upstream-formerr-v9_12' into 'v9_12'
[v9_12] Set result to SERVFAIL if upstream responded with FORMERR

See merge request isc-projects/bind9!877
2018-10-23 08:12:28 -04:00
Witold Kręcicki
886cc5f64d Set result to SERVFAIL if upstream responded with FORMERR
Commit 2bc4c92ed4 causes the resolver to
respond to a client query with FORMERR when all upstream queries sent to
the servers authoritative for QNAME elicit FORMERR responses.  This
happens because resolver code returns DNS_R_FORMERR in such a case and
dns_result_torcode() acts as a pass-through for all arguments which are
already a valid RCODE.

The correct RCODE to set in the response returned to the client in the
case described above is SERVFAIL.  Make sure this happens by overriding
the RCODE in query_gotanswer(), on the grounds that any format errors in
the client query itself should be caught long before execution reaches
that point.  This change should not reduce query error logging accuracy
as the resolver code itself reports the exact reason for returning a
DNS_R_FORMERR result using log_formerr().

(cherry picked from commit b5c9a8caad)
2018-10-23 14:00:12 +02:00
Ondřej Surý
75e9a98df8 Merge branch '4-rename-configure.in-to-configure.ac-v9_12' into 'v9_12'
[v9_12] Rename configure.in to configure.ac

See merge request isc-projects/bind9!873
2018-10-23 04:11:00 -04:00
Ondřej Surý
704ae93e47 Rename configure.in to configure.ac 2018-10-23 09:59:16 +02:00
Ondřej Surý
5a2b525abf Merge branch '506-print-fips-mode-v9_12-fix' into 'v9_12'
Fix the FIPS mode merge

See merge request isc-projects/bind9!871
2018-10-22 15:56:13 -04:00
Ondřej Surý
a5116a777c Fix missing enable_fips_mode merged in wrong place 2018-10-22 21:34:16 +02:00
Ondřej Surý
cf30a5221b Merge branch '506-print-fips-mode-v9_12' into 'v9_12'
(v9_12) Add configure option to enable FIPS mode if OpenSSL provides the option

See merge request isc-projects/bind9!870
2018-10-22 15:29:03 -04:00
Ondřej Surý
cca0507fed Add CHANGES note.
XXXX.	[feature]	Add configure option to enabled and enforce FIPS mode
			in BIND 9. [GL #506]

(cherry picked from commit 9d29f73b79)
2018-10-22 21:28:38 +02:00
Ondřej Surý
c1bb094621 Add release notes for the FIPS mode feature
(cherry picked from commit 60862c5769)
2018-10-22 21:28:38 +02:00
Ondřej Surý
38777de529 Add support for enabling and enforcing FIPS mode in OpenSSL:
* Add configure option --enable-fips-mode that detects and enables FIPS mode
* Add a function to enable FIPS mode and call it on crypto init
* Log an OpenSSL error when FIPS_mode_set() fails and exit
* Report FIPS mode status in a separate log message from named

(cherry picked from commit c4cee27f9b)
2018-10-22 21:28:34 +02:00
Michał Kępień
b28af25241 Merge branch '565-automatically-trigger-gitlab-pages-pipelines-v9_12' into 'v9_12'
[v9_12] Automatically trigger GitLab Pages pipelines

See merge request isc-projects/bind9!867
2018-10-20 18:01:53 -04:00
Michał Kępień
e172da365d Automatically trigger GitLab Pages pipelines
Whenever master or one for the v9_* branches gets updated, the current
ARM should be published on GitLab Pages.  Add a pipeline stage which
takes care of triggering GitLab Pages pipelines.  Extend the lifetime of
artifact archives containing the ARM to prevent GitLab Pages pipelines
from failing due to artifacts being unavailable.

(cherry picked from commit 31bde118db)
2018-10-20 23:29:41 +02:00
Michał Kępień
423ae551c5 Merge branch '565-generate-the-arm-during-ci-v9_12' into 'v9_12'
[v9_12] Generate the ARM during CI

See merge request isc-projects/bind9!864
2018-10-20 06:17:13 -04:00
Michał Kępień
b28fc8c936 Generate the ARM during CI
Add a CI job which generates the HTML version of the ARM and makes it
available for download.  Since this is expected to be a quick process,
the new job is enabled for all pipelines.

(cherry picked from commit 3f443468e0)
2018-10-19 22:42:58 +02:00
Michał Kępień
f5ae26616a Merge branch 'fix-ci-v9_12' into 'v9_12'
[v9_12] Fix CI

See merge request isc-projects/bind9!861
2018-10-19 16:41:22 -04:00
Michał Kępień
e5ebc13989 Fix CI
Use GitLab Registry for CI purposes.  Disable EdDSA support for Debian
sid since the OpenSSL version shipped with it has broken Ed448 support.
2018-10-19 22:22:10 +02:00
Michał Kępień
f5074c12e8 Merge branch '572-improve-accuracy-of-query-error-logging-v9_12' into 'v9_12'
[v9_12] Improve accuracy of query error logging

See merge request isc-projects/bind9!850
2018-10-08 07:01:45 -04:00
Michał Kępień
8053e6fa95 Add CHANGES entry
5047.	[bug]		Messages logged for certain query processing failures
			now include a more specific error description if it is
			available. [GL #572]

(cherry picked from commit dc531dc340)
2018-10-08 12:50:14 +02:00
Michał Kępień
2bc4c92ed4 Do not set qctx->result to DNS_R_SERVFAIL unless necessary
In some cases, setting qctx->result to DNS_R_SERVFAIL causes the value
of a 'result' variable containing a more specific failure reason to be
effectively discarded.  This may cause certain query error log messages
to lack specificity despite a more accurate problem cause being
determined during query processing.

In other cases, qctx->result is set to DNS_R_SERVFAIL even though a more
specific error (e.g. ISC_R_NOMEMORY) could be explicitly indicated.

Since the response message's RCODE is derived from qctx->result using
dns_result_torcode(), which handles a number of possible isc_result_t
values and returns SERVFAIL for anything not explicitly listed, it is
fine to set qctx->result to something more specific than DNS_R_SERVFAIL
(in fact, this is already being done in a few cases).  Modify most
QUERY_ERROR() calls so that qctx->result is set to a more specific error
code when possible.  Adjust query_error() so that statistics are still
calculated properly.  Remove the RECURSE_ERROR() macro which was
introduced exactly because qctx->result could be set to DNS_R_SERVFAIL
instead of DNS_R_DUPLICATE or DNS_R_DROP, which need special handling.
Modify dns_sdlz_putrr() so that it returns DNS_R_SERVFAIL when a DLZ
driver returns invalid RDATA, in order to prevent setting RCODE to
FORMERR (which is what dns_result_torcode() translates e.g. DNS_R_SYNTAX
to) while responding authoritatively.

(cherry picked from commit ba91243542)
2018-10-08 12:50:14 +02:00
Michał Kępień
3d0cde3fe8 Remove the 'want_stale' field from struct query_ctx
As the previous commit makes the 'want_stale' field of struct query_ctx
redundant, remove it.

(cherry picked from commit b3cd868c4b)
2018-10-08 12:50:14 +02:00
Michał Kępień
6736b08c13 Set up stale response lookup before query_done() is called
When something goes wrong while recursing for an answer to a query,
query_gotanswer() sets a flag (qctx->want_stale) in the query context.
query_done() is subsequently called and it can either set up a stale
response lookup (if serve-stale is enabled) or conclude that a SERVFAIL
response should be sent.  This may cause confusion when looking at query
error logs since the QUERY_ERROR() line responsible for setting the
response's RCODE to SERVFAIL is not in a catch-all branch of a switch
statement inside query_gotanswer() (like it is for authoritative
responses) but rather in a code branch which appears to have something
to do with serve-stale, even when the latter is not enabled.

Extract the part of query_done() responsible for checking serve-stale
configuration and optionally setting up a stale response lookup into a
separate function, query_usestale(), shifting the responsibility for
setting the response's RCODE to SERVFAIL to the same QUERY_ERROR() line
in query_gotanswer() which is evaluated for authoritative responses.

(cherry picked from commit cb48d410d8)
2018-10-08 12:50:14 +02:00
Evan Hunt
e34900f6e9 Merge branch 'rpz-shutdown-crash-v9_12' into 'v9_12'
Fix crash at shutdown during an RPZ reload. [RT

See merge request isc-projects/bind9!848
2018-10-05 14:21:29 -04:00
Tony Finch
b895e7eaaf Fix crash at shutdown during an RPZ reload. [RT #46210]
(cherry picked from commit 7a2b0ac92a)
2018-10-05 11:12:17 -07:00
Mark Andrews
6d028f0f75 Merge branch '578-make-the-chained-delegations-in-reclimit-behave-like-they-would-in-a-regular-name-server-v9_12' into 'v9_12'
Resolve "Make the chained delegations in reclimit behave like they would in a regular name server."

See merge request isc-projects/bind9!841
2018-10-03 23:32:01 -04:00
Mark Andrews
466f550c5c add CHANGES
(cherry picked from commit f1308ef186)
2018-10-04 13:22:06 +10:00
Mark Andrews
2a54fefea8 add bin/tests/system/reclimit/ans4/ans.pl
(cherry picked from commit ae77468e63)
2018-10-04 13:22:06 +10:00
Mark Andrews
39914dd221 reclimit: delegate to ans4 so that ans2 can behave like a real name server
(cherry picked from commit a216135a15)
2018-10-04 13:22:06 +10:00
Mark Andrews
7dbae0246c Merge branch '568-the-chain-system-test-is-missing-a-delegation-v9_12' into 'v9_12'
Resolve "the chain system test is missing a delegation."

See merge request isc-projects/bind9!838
2018-10-03 22:38:42 -04:00
Mark Andrews
c3899d9b73 add CHANGES note
(cherry picked from commit e97199b0d0)
2018-10-04 12:29:35 +10:00
Mark Andrews
732521e993 chain: change nameserver name so that the delegation matches
(cherry picked from commit 848e42227e)
2018-10-04 12:29:15 +10:00
Mark Andrews
298db257c2 chain: add 'start test' messages to named.run
(cherry picked from commit 524c1317f7)
2018-10-04 12:29:15 +10:00
Mark Andrews
7b49de3a79 Merge branch 'update-log-fix-v9_12' into 'v9_12'
make update_log() work if zone is not set

See merge request isc-projects/bind9!834
2018-10-03 03:00:36 -04:00
Evan Hunt
d67b5cd65b make update_log() work if zone is not set
- update_log() is called to log update errors, but if those errors
  occur before the zone is set (for example, when returning NOTAUTH)
  it returns without logging anything.

(cherry picked from commit 395f6a1474)
2018-10-03 02:39:02 -04:00
Mark Andrews
f0cedee039 Merge branch 'irs_buflen_socklen' into 'v9_12'
Fix arch-dependent getnameinfo types

See merge request isc-projects/bind9!787
2018-10-03 02:32:52 -04:00
Petr Menšík
b427dcce83 Fix arch-dependent getnameinfo types
getnameinfo() parameters are detected by configure. Current glibc uses
socklen_t for BUFLEN and int for flags. Because that parameters are
tested only as fallback, it does detect it different way on 32-bit
system. socklen_t is compatible with size_t type on these systems.
Try all variants with int flags, use unsigned flags as last resort.
2018-10-03 02:16:41 -04:00