Compare commits

...
Author SHA1 Message Date
Ondřej Surý cc18f4500a WIP: Add F&A Array Queue implementation 2019-09-12 09:23:16 +02:00
Ondřej Surý 80143307f8 Add implementation of hazard pointers 2019-09-12 09:22:48 +02:00
Ondřej Surý 773f429626 Update the whitespaces 2019-09-11 10:31:48 +02:00
Ondřej Surý 211f1e86b1 Update util/copyrights 2019-09-11 10:31:39 +02:00
Ondřej Surý 023d6995f5 Disable CentOS 6 and Debian Jessie in GitLab CI 2019-09-11 10:29:39 +02:00
Ondřej Surý 8f4b3e58b7 Add ISC_UNREACHABLE(); to isc_nm_send() default branch 2019-09-10 17:11:04 +02:00
Ondřej Surý c17cbec4dd fixup: Include <isc/print.h> in new netmgr.h 2019-09-10 17:10:15 +02:00
Ondřej Surý 2da9647455 Add new function prototypes for win32 def file 2019-09-10 17:09:45 +02:00
Witold KręcickiandOndřej Surý 79d45de664 netmgr: checkpoint: sanitize tcphandle handling, it was wrong 2019-09-10 17:06:47 +02:00
Witold KręcickiandOndřej Surý 086de03aa7 netmgr: checkpoint: isc_task_pause/unpause - we want to pause client->task when we're processing it outside taskmgr (directly from network thread) 2019-09-10 17:06:47 +02:00
Witold KręcickiandOndřej Surý ba28f8c96a netmgr: proper closing of TCP/TCPDNS connections, TCP quota support 2019-09-10 17:06:47 +02:00
Evan HuntandOndřej Surý edb42c66f8 fixup: simplify a complex boolean expression; fix style nits 2019-09-10 17:06:47 +02:00
Witold KręcickiandOndřej Surý 10819373a9 fixup! Split netmgr into functional pieces properly 2019-09-10 17:06:47 +02:00
Witold KręcickiandOndřej Surý 7c86ba8131 fixup! nm: first xfrout support 2019-09-10 17:06:47 +02:00
Witold KręcickiandOndřej Surý c86c24f69c netmgr: stop DNS listening, pt 2 2019-09-10 17:06:47 +02:00
Witold KręcickiandOndřej Surý 24751997c4 netmgr: stop DNS listening, pt 1 2019-09-10 17:06:47 +02:00
Witold KręcickiandOndřej Surý e34d47b651 netmgr: pause/resume netmgr when going exclusive 2019-09-10 17:06:47 +02:00
Witold KręcickiandOndřej Surý 07fc9d247c netmgr: isc_nm_pause/resume implementations - holds all processing 2019-09-10 17:06:47 +02:00
Witold KręcickiandOndřej Surý eca3b578bb DbC in dns/acl.c 2019-09-10 17:06:47 +02:00
Witold KręcickiandOndřej Surý 71c7a22923 netmgr: set thread affinity 2019-09-10 17:06:47 +02:00
Witold KręcickiandOndřej Surý 2e6ed654c4 netmgr: Set larger buffer size on UDP sockets 2019-09-10 17:06:47 +02:00
Witold KręcickiandOndřej Surý facf3af6df netmgr: client mctxs divided by thread 2019-09-10 17:06:47 +02:00
Witold KręcickiandOndřej Surý b8b6dba9f8 fixup! nm: WiP: proper udp shutdown procedure 2019-09-10 17:06:47 +02:00
Witold KręcickiandOndřej Surý d42de0c290 nm: WiP: proper udp shutdown procedure 2019-09-10 17:06:47 +02:00
Witold KręcickiandOndřej Surý 46778e475f nm: first xfrout support 2019-09-10 17:06:47 +02:00
Witold KręcickiandOndřej Surý fa74784835 nm: some style nits, better handling of UDP shutdown 2019-09-10 17:06:46 +02:00
Witold KręcickiandOndřej Surý 2ae0f9d00a isc__nm_in_netthread 2019-09-10 17:06:46 +02:00
Witold KręcickiandOndřej Surý 8461e06eb4 Don't reference sockets in unused handles, causing ref loop 2019-09-10 17:06:46 +02:00
Witold KręcickiandOndřej Surý 7524f29d50 Cleanups 2019-09-10 17:06:46 +02:00
Witold KręcickiandOndřej Surý e6e02d534a Style fixes 2019-09-10 17:06:46 +02:00
Witold KręcickiandOndřej Surý be287351f6 Missing file 2019-09-10 17:06:46 +02:00
Witold KręcickiandOndřej Surý 85262728f1 Split netmgr into functional pieces properly 2019-09-10 17:06:46 +02:00
Witold KręcickiandOndřej Surý aff025723e Dirty and ugly split of netmgr into functional parts 2019-09-10 17:06:46 +02:00
Witold KręcickiandOndřej Surý 7432f07bc1 Move netmgr to a separate diretory 2019-09-10 17:06:46 +02:00
Witold KręcickiandOndřej Surý a83be985b4 netmgr: a big WiP on TCP/DNS 2019-09-10 17:06:46 +02:00
Witold KręcickiandOndřej Surý def6642dd0 TCP WiP 2019-09-10 17:06:46 +02:00
Witold KręcickiandOndřej Surý 016a3690f4 netmgr: Some parts of tcp; reuse nm_uvreqs 2019-09-10 17:06:46 +02:00
Witold KręcickiandOndřej Surý a3272327a2 Netmgr design doc - first steps 2019-09-10 17:06:46 +02:00
Witold KręcickiandOndřej Surý 67d9c23d2b Minor cleanups 2019-09-10 17:06:46 +02:00
Witold KręcickiandOndřej Surý dac01af74f clientmgr has a taskpool, clients attach to it 2019-09-10 17:06:46 +02:00
Witold KręcickiandOndřej Surý a5392d83c6 Netmgr - work in progress (squashed)
Make a copy of ns__client_request as ns__client_request_old

The 'old' one will be used by not-yet-reworked parts, while we
keep history of ns__client_request.

Start netmgr with named, shutdown at the end

- udplistener in interfacemgr uses netmgr
- use per-client buffer for udp send
- first steps at making ns_client_request use netmgr for UDP
- uncrustify

Make interfacemgr and interface references isc_refcount_t instead of locked ints

Use clock_gettime instead of gettimeofday

Cleanup get_client, use one interface for clientmgr instead of attaching it to each client

'extra' field at the end of handle - for client data

WiP: no TCP, UDP works, no resolver
2019-09-10 17:06:46 +02:00
Witold KręcickiandOndřej Surý 2b3f2bad31 Add isc_sockaddr_fromsockaddr function to convert from struct sockaddr to isc_sockaddr 2019-09-10 17:06:46 +02:00
Tinderbox User 3be71081bf Merge branch 'prep-release' 2019-09-09 14:52:45 +00:00
Tinderbox User badb8a474e prep for 9.15.4 2019-09-09 13:13:39 +00:00
Tinderbox User 1e896fbec6 prep for 9.15.4 2019-09-09 13:02:15 +00:00
Tinderbox User efdb4f0856 prep for 9.15.4 2019-09-09 12:52:35 +00:00
Tinderbox User 3a1dbc13c9 prep for 9.15.4 2019-09-09 12:34:47 +00:00
Mark Andrews 7dcee3d44b Merge branch 'marka-placeholder' into 'master'
placeholder

See merge request isc-projects/bind9!2322
2019-09-09 02:50:07 -04:00
Mark Andrews 1d133457d6 placeholder 2019-09-09 16:41:40 +10:00
Mark Andrews dc7f168a82 Merge branch 'marka-fix-insist' into 'master'
Address "Value stored to 'dscpcount' is never read"

See merge request isc-projects/bind9!2317
2019-09-06 02:42:19 -04:00
Mark Andrews dbdd19853e also insist that keycount == dscpcount 2019-09-06 16:30:24 +10:00
Mark Andrews b36c7a99ab Merge branch 'marka-add-missing-check' into 'master'
Address "Value stored to 'result' is never read" mdig.c

See merge request isc-projects/bind9!2318
2019-09-06 02:24:55 -04:00
Mark Andrews b32feaf623 check the result from dns_message_headertotext 2019-09-06 16:12:47 +10:00
Mark Andrews db085caf7f Merge branch '1203-bug-in-new-yaml-output-when-truncation-is-retried' into 'master'
Resolve "Bug in new +yaml output when truncation is retried"

Closes #1203

See merge request isc-projects/bind9!2288
2019-09-06 02:04:22 -04:00
Mark Andrews 4906fe975c Don't print ';;' comments in yaml mode. 2019-09-06 14:14:20 +10:00
Mark Andrews 2e18e83131 Merge branch '1212-edns-udp-size-docs-not-updated-for-flag-day-changes' into 'master'
Resolve "edns-udp-size docs not updated for Flag Day changes"

Closes #1212

See merge request isc-projects/bind9!2312
2019-09-05 19:35:09 -04:00
Mark Andrews aca78add3a remove discussion about falling back to plain DNS on timeout 2019-09-05 19:13:36 -04:00
Mark Andrews 160236a780 Merge branch 'marka-win32-vsconf' into 'master'
allow VSCONF to be overridden at runtime

See merge request isc-projects/bind9!2314
2019-09-05 00:34:40 -04:00
Mark Andrews 2433e3e808 allow VSCONF to be overridden at runtime 2019-09-05 14:31:04 +10:00
Mark Andrews dae7ffc802 Merge branch 'marka-placeholder' into 'master'
placeholder

See merge request isc-projects/bind9!2311
2019-09-04 19:19:49 -04:00
Mark Andrews 142a96acfb placeholder 2019-09-05 09:12:53 +10:00
Mark Andrews fac49b7ba9 Merge branch '1210-address-potential-null-pointer-dereference-in-rpz-c' into 'master'
Resolve "Address potential NULL pointer dereference in rpz.c"

Closes #1210

See merge request isc-projects/bind9!2308
2019-09-04 17:07:13 -04:00
Mark Andrews 924f9b9e1d add CHANGES 2019-09-05 06:47:56 +10:00
Mark Andrews 3e82a2ea9a use rpzs->updater as rpz->rpzs is NULL 2019-09-05 06:47:26 +10:00
Mark Andrews 6639288d9c Merge branch '1209-dns_r_mustbesecure-failures' into 'master'
Resolve "DNS_R_MUSTBESECURE failures"

Closes #1209

See merge request isc-projects/bind9!2307
2019-09-04 16:39:04 -04:00
Mark Andrews 9528bac556 add CHANGES 2019-09-04 21:30:46 +10:00
Mark Andrews 06d9e93a57 address DNS_R_MUSTBESECURE failures 2019-09-04 21:28:34 +10:00
Mark Andrews 353d0cd8f0 Merge branch 'marka-placeholder' into 'master'
placeholder

See merge request isc-projects/bind9!2304
2019-09-04 01:13:30 -04:00
Mark Andrews 4ef24818b2 placeholder 2019-09-04 15:12:26 +10:00
Mark Andrews 769664a13f Merge branch '1207-bind-potential-for-null-pointer-de-references-plus-memory-leaks-cwe-476-in-file-dlz_mysqldyn_mod-c' into 'master'
Resolve "BIND | Potential for NULL pointer de-references plus memory leaks (CWE-476) in file 'dlz_mysqldyn_mod.c'"

Closes #1207

See merge request isc-projects/bind9!2299
2019-09-04 00:31:39 -04:00
Mark Andrews 8b65ac9128 add CHANGES 2019-09-04 11:31:28 +10:00
Mark Andrews 2de94dd4c4 address NULL pointer dereferences 2019-09-04 11:27:16 +10:00
Mark Andrews a48a612d25 Merge branch '837-win32-legacy-system-test-failure' into 'master'
Resolve "win32 legacy system test failure"

Closes #837

See merge request isc-projects/bind9!2252
2019-09-03 20:43:27 -04:00
Mark Andrews f0fd713f17 add CHANGES 2019-09-04 10:09:54 +10:00
Mark Andrews 2390d16955 silence dos2unix messages 2019-09-04 10:04:14 +10:00
Mark Andrews 2f558854b7 implement maxudp under windows 2019-09-04 10:04:14 +10:00
Diego dos Santos Fronza ac50b0180b Merge branch '106-print-unexpected-reply-messages' into 'master'
Added +unexpected option so dig will print replies from unexpected sources.

Closes #106

See merge request isc-projects/bind9!2199
2019-09-03 12:45:27 -04:00
Diego dos Santos Fronza bc53d68ae6 Added documentation for dig's +unexpected command line option. 2019-09-03 10:15:25 -03:00
Evan HuntandDiego dos Santos Fronza 3ef91562f1 add a toy name server that replies from the wrong address 2019-09-03 10:14:15 -03:00
Diego dos Santos Fronza 460d4d63ee Added +unexpected option so dig will print replies from unexpected
sources.
2019-09-03 10:14:15 -03:00
Ondřej Surý 582ba39bb6 Merge branch '1196-misaligned-address-in-siphash-c-fix' into 'master'
lib/isc/siphash.c: Get rid of duplicate block caused by bad rebase

Closes #1196

See merge request isc-projects/bind9!2295
2019-09-03 08:52:13 -04:00
Ondřej Surý 32eee57875 lib/isc/siphash.c: Get rid of duplicate block caused by bad rebase 2019-09-03 14:20:53 +02:00
Ondřej Surý 0d795ed907 Merge branch '1196-misaligned-address-in-siphash-c' into 'master'
Resolve "Misaligned address in siphash.c"

Closes #1196

See merge request isc-projects/bind9!2279
2019-09-03 05:00:29 -04:00
Ondřej Surý 30b716d220 Add OpenSSL based isc_siphash24() implementation
This commits adds an OpenSSL based isc_siphash24() implementation, which is
preferred when available.

The siphash_test has been modified to test both implementation with a trick that
renames the isc_siphash24() to openssl_ or native_ prefixed name and includes
the ../siphash.c two times (when the OpenSSL implementation is available).
2019-09-03 09:19:55 +02:00
Ondřej Surý 9b6c6f57d8 configure.ac: Add OpenSSL SipHash support detection
Add check for creating new EVP_PKEY with EVP_PKEY_SIPHASH, but disable SipHash
on OpenSSL 1.1.1 as the hash length initialization is broken before OpenSSL
1.1.1a release.
2019-09-03 09:19:55 +02:00
Ondřej Surý 6fd3259560 Fix alignment issues in the native implementation of isc_siphash24()
The native implementation's conversion from the uint8_t buffers to uint64_t now
follows the reference implementation that doesn't require aligned buffers.
2019-09-02 13:21:07 +02:00
Evan Hunt 2367d61016 Merge branch '1146-rpz-expiry' into 'master'
remove policies from RPZ summary database when policy zones expire

Closes #1146

See merge request isc-projects/bind9!2285
2019-08-30 15:08:30 -04:00
Evan Hunt 38523ac4a8 CHANGES, release note 2019-08-30 11:47:38 -07:00
Evan Hunt 7ba6d592ec when a response-policy zone expires, unload its polices from RPZ summary 2019-08-30 11:47:38 -07:00
Matthijs Mekking ccee7907e4 Merge branch 'matthijs-fix-checkconf-n' into 'master'
Add missing n increments in checkconf test

See merge request isc-projects/bind9!2289
2019-08-30 06:56:33 -04:00
Matthijs MekkingandMatthijs Mekking d0dc720d7d Add missing n increments in checkconf test 2019-08-30 12:27:24 +02:00
Ondřej Surý c76ac546de Merge branch 'ondrej/cleanup-isc_event_allocate-failure-mode' into 'master'
Cleanup isc_event_allocate() failure mode handling

See merge request isc-projects/bind9!2277
2019-08-30 03:57:50 -04:00
Ondřej Surý 50e109d659 isc_event_allocate() cannot fail, remove the fail handling blocks
isc_event_allocate() calls isc_mem_get() to allocate the event structure.  As
isc_mem_get() cannot fail softly (e.g. it never returns NULL), the
isc_event_allocate() cannot return NULL, hence we remove the (ret == NULL)
handling blocks using the semantic patch from the previous commit.
2019-08-30 08:55:34 +02:00
Ondřej SurýandMark Andrews 2d12def6ee isc_event_allocate() can't fail now, add spatch to remove the checks 2019-08-30 01:04:28 -04:00
Evan Hunt 767de9fe30 Merge branch '1146-rpz-search' into 'master'
use an rbtnodechain for wildcard matching in RPZ summary db

See merge request isc-projects/bind9!2276
2019-08-29 22:54:12 -04:00
Evan Hunt 22349d919c CHANGES 2019-08-29 19:37:21 -07:00
Evan Hunt 6e9be9a952 use an rbtnodechain to walk up labels
when looking for a possible wildcard match in the RPZ summary database,
use an rbtnodechain to walk up label by label, rather than using the
node's parent pointer.
2019-08-29 19:37:21 -07:00
Mark Andrews 305c7f2847 Merge branch '1189-don-t-escape-commas-when-reporting-named-s-command-line' into 'master'
Resolve "Don't escape commas when reporting named's command line."

Closes #1189

See merge request isc-projects/bind9!2253
2019-08-29 20:36:04 -04:00
Mark Andrews ecba23bc24 add CHANGES 2019-08-29 20:16:33 -04:00
Mark Andrews 70dd93bf8a don't escape commas when saving named's command line 2019-08-29 20:16:33 -04:00
173 changed files with 4737 additions and 2284 deletions
+1
View File
@@ -10,6 +10,7 @@
*.rej *.rej
*.so *.so
*_test *_test
*.ipch # vscode/intellisense precompiled header
*~ *~
.ccache/ .ccache/
.cproject .cproject
-48
View File
@@ -300,30 +300,6 @@ unit:gcc:alpine3.10:amd64:
- gcc:alpine3.10:amd64 - gcc:alpine3.10:amd64
needs: ["gcc:alpine3.10:amd64"] needs: ["gcc:alpine3.10:amd64"]
# Jobs for regular GCC builds on CentOS 6 (amd64)
gcc:centos6:amd64:
variables:
CC: gcc
CFLAGS: "-Wall -Wextra -O2 -g"
EXTRA_CONFIGURE: "--with-libidn2 --disable-warn-error"
<<: *centos_centos6_amd64_image
<<: *build_job
system:gcc:centos6:amd64:
<<: *centos_centos6_amd64_image
<<: *system_test_job
dependencies:
- gcc:centos6:amd64
needs: ["gcc:centos6:amd64"]
unit:gcc:centos6:amd64:
<<: *centos_centos6_amd64_image
<<: *unit_test_job
dependencies:
- gcc:centos6:amd64
needs: ["gcc:centos6:amd64"]
# Jobs for regular GCC builds on CentOS 7 (amd64) # Jobs for regular GCC builds on CentOS 7 (amd64)
gcc:centos7:amd64: gcc:centos7:amd64:
@@ -348,30 +324,6 @@ unit:gcc:centos7:amd64:
- gcc:centos7:amd64 - gcc:centos7:amd64
needs: ["gcc:centos7:amd64"] needs: ["gcc:centos7:amd64"]
# Jobs for regular GCC builds on Debian 8 Jessie (amd64)
gcc:jessie:amd64:
variables:
CC: gcc
CFLAGS: "-Wall -Wextra -O2 -g"
EXTRA_CONFIGURE: "--without-cmocka --with-python --disable-geoip"
<<: *debian_jessie_amd64_image
<<: *build_job
system:gcc:jessie:amd64:
<<: *debian_jessie_amd64_image
<<: *system_test_job
dependencies:
- gcc:jessie:amd64
needs: ["gcc:jessie:amd64"]
unit:gcc:jessie:amd64:
<<: *debian_jessie_amd64_image
<<: *unit_test_job
dependencies:
- gcc:jessie:amd64
needs: ["gcc:jessie:amd64"]
# Jobs for regular GCC builds on Debian 9 Stretch (amd64) # Jobs for regular GCC builds on Debian 9 Stretch (amd64)
gcc:stretch:amd64: gcc:stretch:amd64:
+1 -1
View File
@@ -642,7 +642,7 @@ align_with_tabs = true # false/true
align_on_tabstop = false # false/true align_on_tabstop = false # false/true
# Whether to left-align numbers # Whether to left-align numbers
align_number_left = false # false/true #align_number_left = false # false/true
# Align variable definitions in prototypes and functions # Align variable definitions in prototypes and functions
align_func_params = false # false/true align_func_params = false # false/true
+35
View File
@@ -1,3 +1,38 @@
--- 9.15.3 released ---
5291. [placeholder]
5290. [placeholder]
5289. [bug] Address NULL pointer dereference in rpz.c:rpz_detach.
[GL #1210]
5288. [bug] dnssec-must-be-secure was not always honoured.
[GL #1209]
5287. [placeholder]
5286. [contrib] Address potential NULL pointer dereferences in
dlz_mysqldyn_mod.c. [GL #1207]
5285. [port] win32: implement "-T maxudpXXX". [GL #837]
5284. [func] Added +unexpected command line option to dig.
By default, dig won't accept a reply from a source
other than the one to which it sent the query.
Invoking dig with +unexpected argument will allow it
to process replies from unexpected sources.
5283. [bug] When a response-policy zone expires, ensure that
its policies are removed from the RPZ summary
database. [GL #1146]
5282. [bug] Fixed a bug in searching for possible wildcard matches
for query names in the RPZ summary database. [GL #1146]
5281. [cleanup] Don't escape commas when reporting named's command
line. [GL #1189]
5280. [protocol] Add support for displaying EDNS option LLQ. [GL #1201] 5280. [protocol] Add support for displaying EDNS option LLQ. [GL #1201]
5279. [bug] When loading, reject zones containing CDS or CDNSKEY 5279. [bug] When loading, reject zones containing CDS or CDNSKEY
+1 -1
View File
@@ -104,7 +104,7 @@ PLATFORMS: PLATFORMS.md
sed -e '$${/^$$/d;}' > $@ sed -e '$${/^$$/d;}' > $@
CODE_OF_CONDUCT: CODE_OF_CONDUCT.md CODE_OF_CONDUCT: CODE_OF_CONDUCT.md
${PANDOC} --email-obfuscation=none -s --metadata title="CODE OF CONDUCT" -f markdown-smart -t html $< | \ ${PANDOC} --email-obfuscation=none -s --metadata title="CODE OF CONDUCT" -f markdown-smart -t html CODE_OF_CONDUCT.md | \
${W3M} -dump -cols 75 -O ascii -T text/html | \ ${W3M} -dump -cols 75 -O ascii -T text/html | \
sed -e '$${/^$$/d;}' > $@ sed -e '$${/^$$/d;}' > $@
+1
View File
@@ -110,6 +110,7 @@ of changes from BIND 9.14 and earlier releases. New features include:
* Support for the new GeoIP2 geolocation API * Support for the new GeoIP2 geolocation API
* Improved DNSSEC key configuration using dnssec-keys * Improved DNSSEC key configuration using dnssec-keys
* YAML output for dig, mdig, and delv.
Building BIND Building BIND
+5
View File
@@ -409,6 +409,11 @@ Controls whether to use TCP when sending queries\&. The default is to use UDP un
.RS 4 .RS 4
Print all RDATA in unknown RR type presentation format (RFC 3597)\&. The default is to print RDATA for known types in the type\*(Aqs presentation format\&. Print all RDATA in unknown RR type presentation format (RFC 3597)\&. The default is to print RDATA for known types in the type\*(Aqs presentation format\&.
.RE .RE
.PP
\fB+[no]yaml\fR
.RS 4
Print response data in YAML format\&.
.RE
.SH "FILES" .SH "FILES"
.PP .PP
/etc/bind\&.keys /etc/bind\&.keys
+6
View File
@@ -548,6 +548,12 @@
in the type's presentation format. in the type's presentation format.
</p> </p>
</dd> </dd>
<dt><span class="term"><code class="option">+[no]yaml</code></span></dt>
<dd>
<p>
Print response data in YAML format.
</p>
</dd>
</dl></div> </dl></div>
<p> <p>
+14
View File
@@ -744,6 +744,13 @@ Display [do not display] the TTL when printing the record\&.
Display [do not display] the TTL in friendly human\-readable time units of "s", "m", "h", "d", and "w", representing seconds, minutes, hours, days and weeks\&. Implies +ttlid\&. Display [do not display] the TTL in friendly human\-readable time units of "s", "m", "h", "d", and "w", representing seconds, minutes, hours, days and weeks\&. Implies +ttlid\&.
.RE .RE
.PP .PP
\fB+[no]unexpected\fR
.RS 4
Accept [do not accept] answers from unexpected sources\&. By default,
\fBdig\fR
won\*(Aqt accept a reply from a source other than the one to which it sent the query\&.
.RE
.PP
\fB+[no]unknownformat\fR \fB+[no]unknownformat\fR
.RS 4 .RS 4
Print all RDATA in unknown RR type presentation format (RFC 3597)\&. The default is to print RDATA for known types in the type\*(Aqs presentation format\&. Print all RDATA in unknown RR type presentation format (RFC 3597)\&. The default is to print RDATA for known types in the type\*(Aqs presentation format\&.
@@ -756,6 +763,13 @@ Use [do not use] TCP when querying name servers\&. This alternate syntax to
is provided for backwards compatibility\&. The "vc" stands for "virtual circuit"\&. is provided for backwards compatibility\&. The "vc" stands for "virtual circuit"\&.
.RE .RE
.PP .PP
\fB+[no]yaml\fR
.RS 4
Print the responses (and, if
\fB+qr\fR
is in use, also the outgoing queries) in a detailed YAML format\&.
.RE
.PP
\fB+[no]zflag\fR \fB+[no]zflag\fR
.RS 4 .RS 4
Set [do not set] the last unassigned DNS header flag in a DNS query\&. This flag is off by default\&. Set [do not set] the last unassigned DNS header flag in a DNS query\&. This flag is off by default\&.
+54 -4
View File
@@ -64,8 +64,7 @@ static char hexcookie[81];
static bool short_form = false, printcmd = true, static bool short_form = false, printcmd = true,
plusquest = false, pluscomm = false, plusquest = false, pluscomm = false,
ipv4only = false, ipv6only = false, digrc = true, ipv4only = false, ipv6only = false, digrc = true;
yaml = false;
static uint32_t splitwidth = 0xffffffff; static uint32_t splitwidth = 0xffffffff;
/*% opcode text */ /*% opcode text */
@@ -235,6 +234,8 @@ help(void) {
" +tries=### (Set number of UDP attempts) [3]\n" " +tries=### (Set number of UDP attempts) [3]\n"
" +[no]ttlid (Control display of ttls in records)\n" " +[no]ttlid (Control display of ttls in records)\n"
" +[no]ttlunits (Display TTLs in human-readable units)\n" " +[no]ttlunits (Display TTLs in human-readable units)\n"
" +[no]unexpected (Print replies from unexpected sources\n"
" default=off)\n"
" +[no]unknownformat (Print RDATA in RFC 3597 \"unknown\" " " +[no]unknownformat (Print RDATA in RFC 3597 \"unknown\" "
"format)\n" "format)\n"
" +[no]vc (TCP mode (+[no]tcp))\n" " +[no]vc (TCP mode (+[no]tcp))\n"
@@ -1667,8 +1668,25 @@ plus_option(char *option, bool is_batchfile,
} }
break; break;
case 'u': case 'u':
FULLCHECK("unknownformat"); switch (cmd[1]) {
lookup->print_unknown_format = state; case 'n':
switch (cmd[2]) {
case 'e':
FULLCHECK("unexpected");
lookup->accept_reply_unexpected_src = state;
break;
case 'k':
FULLCHECK("unknownformat");
lookup->print_unknown_format = state;
break;
default:
goto invalid_option;
}
break;
default:
goto invalid_option;
}
break; break;
case 'v': case 'v':
FULLCHECK("vc"); FULLCHECK("vc");
@@ -2427,6 +2445,36 @@ dig_error(const char *format, ...) {
} }
} }
static void
dig_warning(const char *format, ...) {
va_list args;
if (!yaml) {
printf(";; ");
va_start(args, format);
vprintf(format, args);
va_end(args);
printf("\n");
}
}
static void
dig_comments(dig_lookup_t *lookup, const char *format, ...) {
va_list args;
if (lookup->comments && !yaml) {
printf(";; ");
va_start(args, format);
vprintf(format, args);
va_end(args);
printf("\n");
}
}
void void
dig_setup(int argc, char **argv) { dig_setup(int argc, char **argv) {
isc_result_t result; isc_result_t result;
@@ -2443,6 +2491,8 @@ dig_setup(int argc, char **argv) {
dighost_trying = trying; dighost_trying = trying;
dighost_shutdown = query_finished; dighost_shutdown = query_finished;
dighost_error = dig_error; dighost_error = dig_error;
dighost_warning = dig_warning;
dighost_comments = dig_comments;
progname = argv[0]; progname = argv[0];
preparse_args(argc, argv); preparse_args(argc, argv);
+11
View File
@@ -1269,6 +1269,17 @@
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><option>+[no]unexpected</option></term>
<listitem>
<para>
Accept [do not accept] answers from unexpected sources. By
default, <command>dig</command> won't accept a reply from a
source other than the one to which it sent the query.
</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term><option>+[no]unknownformat</option></term> <term><option>+[no]unknownformat</option></term>
<listitem> <listitem>
+15
View File
@@ -1000,6 +1000,14 @@
seconds, minutes, hours, days and weeks. Implies +ttlid. seconds, minutes, hours, days and weeks. Implies +ttlid.
</p> </p>
</dd> </dd>
<dt><span class="term"><code class="option">+[no]unexpected</code></span></dt>
<dd>
<p>
Accept [do not accept] answers from unexpected sources. By
default, <span class="command"><strong>dig</strong></span> won't accept a reply from a
source other than the one to which it sent the query.
</p>
</dd>
<dt><span class="term"><code class="option">+[no]unknownformat</code></span></dt> <dt><span class="term"><code class="option">+[no]unknownformat</code></span></dt>
<dd> <dd>
<p> <p>
@@ -1017,6 +1025,13 @@
stands for "virtual circuit". stands for "virtual circuit".
</p> </p>
</dd> </dd>
<dt><span class="term"><code class="option">+[no]yaml</code></span></dt>
<dd>
<p>
Print the responses (and, if <code class="option">+qr</code> is in use,
also the outgoing queries) in a detailed YAML format.
</p>
</dd>
<dt><span class="term"><code class="option">+[no]zflag</code></span></dt> <dt><span class="term"><code class="option">+[no]zflag</code></span></dt>
<dd> <dd>
<p> <p>
+127 -79
View File
@@ -112,7 +112,8 @@ bool
showsearch = false, showsearch = false,
is_dst_up = false, is_dst_up = false,
keep_open = false, keep_open = false,
verbose = false; verbose = false,
yaml = false;
in_port_t port = 53; in_port_t port = 53;
unsigned int timeout = 0; unsigned int timeout = 0;
unsigned int extrabytes; unsigned int extrabytes;
@@ -190,6 +191,30 @@ dig_lookup_t *current_lookup = NULL;
"isc_mutex_unlock");\ "isc_mutex_unlock");\
} }
static void
default_warnerr(const char *format, ...) {
va_list args;
printf(";; ");
va_start(args, format);
vprintf(format, args);
va_end(args);
printf("\n");
};
static void
default_comments(dig_lookup_t *lookup, const char *format, ...) {
va_list args;
if (lookup->comments) {
printf(";; ");
va_start(args, format);
vprintf(format, args);
va_end(args);
printf("\n");
}
};
/* dynamic callbacks */ /* dynamic callbacks */
isc_result_t isc_result_t
@@ -197,7 +222,13 @@ isc_result_t
dns_message_t *msg, bool headers); dns_message_t *msg, bool headers);
void void
(*dighost_error)(const char *format, ...); (*dighost_error)(const char *format, ...) = default_warnerr;
void
(*dighost_warning)(const char *format, ...) = default_warnerr;
void
(*dighost_comments)(dig_lookup_t *lookup, const char *format, ...) = default_comments;
void void
(*dighost_received)(unsigned int bytes, isc_sockaddr_t *from, (*dighost_received)(unsigned int bytes, isc_sockaddr_t *from,
@@ -621,6 +652,7 @@ make_empty_lookup(void) {
looknew->ttlunits = false; looknew->ttlunits = false;
looknew->expandaaaa = false; looknew->expandaaaa = false;
looknew->qr = false; looknew->qr = false;
looknew->accept_reply_unexpected_src = false;
#ifdef HAVE_LIBIDN2 #ifdef HAVE_LIBIDN2
looknew->idnin = isatty(1)?(getenv("IDN_DISABLE") == NULL):false; looknew->idnin = isatty(1)?(getenv("IDN_DISABLE") == NULL):false;
looknew->idnout = looknew->idnin; looknew->idnout = looknew->idnin;
@@ -766,6 +798,8 @@ clone_lookup(dig_lookup_t *lookold, bool servers) {
looknew->ttlunits = lookold->ttlunits; looknew->ttlunits = lookold->ttlunits;
looknew->expandaaaa = lookold->expandaaaa; looknew->expandaaaa = lookold->expandaaaa;
looknew->qr = lookold->qr; looknew->qr = lookold->qr;
looknew->accept_reply_unexpected_src =
lookold->accept_reply_unexpected_src;
looknew->idnin = lookold->idnin; looknew->idnin = lookold->idnin;
looknew->idnout = lookold->idnout; looknew->idnout = lookold->idnout;
looknew->udpsize = lookold->udpsize; looknew->udpsize = lookold->udpsize;
@@ -1347,7 +1381,7 @@ setup_libs(void) {
isc_log_setdebuglevel(lctx, 0); isc_log_setdebuglevel(lctx, 0);
result = isc_taskmgr_create(mctx, 1, 0, &taskmgr); result = isc_taskmgr_create(mctx, 1, 0, NULL, &taskmgr);
check_result(result, "isc_taskmgr_create"); check_result(result, "isc_taskmgr_create");
result = isc_task_create(taskmgr, 0, &global_task); result = isc_task_create(taskmgr, 0, &global_task);
@@ -1757,12 +1791,15 @@ followup_lookup(dns_message_t *msg, dig_query_t *query, dns_section_t section)
namereln = dns_name_fullcompare(name, domain, namereln = dns_name_fullcompare(name, domain,
&order, &nlabels); &order, &nlabels);
if (namereln == dns_namereln_equal) { if (namereln == dns_namereln_equal) {
if (!horizontal) if (!horizontal) {
printf(";; BAD (HORIZONTAL) REFERRAL\n"); dighost_warning("BAD (HORIZONTAL) "
"REFERRAL");
}
horizontal = true; horizontal = true;
} else if (namereln != dns_namereln_subdomain) { } else if (namereln != dns_namereln_subdomain) {
if (!bad) if (!bad) {
printf(";; BAD REFERRAL\n"); dighost_warning( "BAD REFERRAL");
}
bad = true; bad = true;
continue; continue;
} }
@@ -2633,10 +2670,6 @@ force_timeout(dig_query_t *query) {
event = isc_event_allocate(mctx, query, ISC_TIMEREVENT_IDLE, event = isc_event_allocate(mctx, query, ISC_TIMEREVENT_IDLE,
connect_timeout, query, connect_timeout, query,
sizeof(isc_event_t)); sizeof(isc_event_t));
if (event == NULL) {
fatal("isc_event_allocate: %s",
isc_result_totext(ISC_R_NOMEMORY));
}
isc_task_send(global_task, &event); isc_task_send(global_task, &event);
/* /*
@@ -2688,7 +2721,7 @@ send_tcp_connect(dig_query_t *query) {
isc_netaddr_fromsockaddr(&netaddr, &query->sockaddr); isc_netaddr_fromsockaddr(&netaddr, &query->sockaddr);
isc_netaddr_format(&netaddr, buf, sizeof(buf)); isc_netaddr_format(&netaddr, buf, sizeof(buf));
printf(";; Skipping mapped address '%s'\n", buf); dighost_warning("Skipping mapped address '%s'", buf);
query->waiting_connect = false; query->waiting_connect = false;
if (ISC_LINK_LINKED(query, link)) if (ISC_LINK_LINKED(query, link))
@@ -2698,7 +2731,7 @@ send_tcp_connect(dig_query_t *query) {
l = query->lookup; l = query->lookup;
clear_query(query); clear_query(query);
if (next == NULL) { if (next == NULL) {
printf(";; No acceptable nameservers\n"); dighost_warning("No acceptable nameservers");
check_next_lookup(l); check_next_lookup(l);
return; return;
} }
@@ -2759,6 +2792,14 @@ send_tcp_connect(dig_query_t *query) {
} }
} }
static void
print_query_size(dig_query_t *query) {
if (!yaml) {
printf(";; QUERY SIZE: %u\n\n",
isc_buffer_usedlength(&query->lookup->renderbuf));
}
}
/*% /*%
* Send a UDP packet to the remote nameserver, possible starting the * Send a UDP packet to the remote nameserver, possible starting the
* recv action as well. Also make sure that the timer is running and * recv action as well. Also make sure that the timer is running and
@@ -2797,13 +2838,12 @@ send_udp(dig_query_t *query) {
isc_netaddr_fromsockaddr(&netaddr, &query->sockaddr); isc_netaddr_fromsockaddr(&netaddr, &query->sockaddr);
isc_netaddr_format(&netaddr, buf, sizeof(buf)); isc_netaddr_format(&netaddr, buf, sizeof(buf));
printf(";; Skipping mapped address '%s'\n", buf); dighost_warning("Skipping mapped address '%s'", buf);
next = ISC_LIST_NEXT(query, link); next = ISC_LIST_NEXT(query, link);
l = query->lookup; l = query->lookup;
clear_query(query); clear_query(query);
if (next == NULL) { if (next == NULL) {
printf(";; No acceptable nameservers\n"); dighost_warning("No acceptable nameservers");
check_next_lookup(l); check_next_lookup(l);
} else { } else {
send_udp(next); send_udp(next);
@@ -2862,8 +2902,7 @@ send_udp(dig_query_t *query) {
&query->lookup->renderbuf, &query->lookup->renderbuf,
query->lookup->sendmsg, true); query->lookup->sendmsg, true);
if (query->lookup->stats) { if (query->lookup->stats) {
printf(";; QUERY SIZE: %u\n\n", print_query_size(query);
isc_buffer_usedlength(&query->lookup->renderbuf));
} }
} }
} }
@@ -3149,9 +3188,7 @@ launch_next_query(dig_query_t *query, bool include_question) {
&query->lookup->renderbuf, &query->lookup->renderbuf,
query->lookup->sendmsg, true); query->lookup->sendmsg, true);
if (query->lookup->stats) { if (query->lookup->stats) {
printf(";; QUERY SIZE: %u\n\n", print_query_size(query);
isc_buffer_usedlength(
&query->lookup->renderbuf));
} }
} }
} }
@@ -3193,11 +3230,12 @@ connect_done(isc_task_t *task, isc_event_t *event) {
if (sevent->result == ISC_R_CANCELED) { if (sevent->result == ISC_R_CANCELED) {
debug("in cancel handler"); debug("in cancel handler");
isc_sockaddr_format(&query->sockaddr, sockstr, sizeof(sockstr)); isc_sockaddr_format(&query->sockaddr, sockstr, sizeof(sockstr));
if (query->timedout) if (query->timedout) {
printf(";; Connection to %s(%s) for %s failed: %s.\n", dighost_warning("Connection to %s(%s) for %s failed: "
sockstr, query->servname, "%s.", sockstr, query->servname,
query->lookup->textname, query->lookup->textname,
isc_result_totext(ISC_R_TIMEDOUT)); isc_result_totext(ISC_R_TIMEDOUT));
}
isc_socket_detach(&query->sock); isc_socket_detach(&query->sock);
INSIST(sockcount > 0); INSIST(sockcount > 0);
sockcount--; sockcount--;
@@ -3215,11 +3253,12 @@ connect_done(isc_task_t *task, isc_event_t *event) {
debug("unsuccessful connection: %s", debug("unsuccessful connection: %s",
isc_result_totext(sevent->result)); isc_result_totext(sevent->result));
isc_sockaddr_format(&query->sockaddr, sockstr, sizeof(sockstr)); isc_sockaddr_format(&query->sockaddr, sockstr, sizeof(sockstr));
if (sevent->result != ISC_R_CANCELED) if (sevent->result != ISC_R_CANCELED) {
printf(";; Connection to %s(%s) for %s failed: " dighost_warning("Connection to %s(%s) for %s failed: "
"%s.\n", sockstr, "%s.", sockstr, query->servname,
query->servname, query->lookup->textname, query->lookup->textname,
isc_result_totext(sevent->result)); isc_result_totext(sevent->result));
}
isc_socket_detach(&query->sock); isc_socket_detach(&query->sock);
INSIST(sockcount > 0); INSIST(sockcount > 0);
sockcount--; sockcount--;
@@ -3427,12 +3466,12 @@ process_cookie(dig_lookup_t *l, dns_message_t *msg,
if (isc_safe_memequal(isc_buffer_current(optbuf), sent, 8)) { if (isc_safe_memequal(isc_buffer_current(optbuf), sent, 8)) {
msg->cc_ok = 1; msg->cc_ok = 1;
} else { } else {
printf(";; Warning: Client COOKIE mismatch\n"); dighost_warning("Warning: Client COOKIE mismatch");
msg->cc_bad = 1; msg->cc_bad = 1;
copy = false; copy = false;
} }
} else { } else {
printf(";; Warning: COOKIE bad token (too short)\n"); dighost_warning("Warning: COOKIE bad token (too short)");
msg->cc_bad = 1; msg->cc_bad = 1;
copy = false; copy = false;
} }
@@ -3604,9 +3643,11 @@ recv_done(isc_task_t *task, isc_event_t *event) {
sizeof(buf1)); sizeof(buf1));
isc_sockaddr_format(&query->sockaddr, buf2, isc_sockaddr_format(&query->sockaddr, buf2,
sizeof(buf2)); sizeof(buf2));
printf(";; reply from unexpected source: %s," dighost_warning("reply from unexpected source: %s,"
" expected %s\n", buf1, buf2); " expected %s\n", buf1, buf2);
match = false; if (!l->accept_reply_unexpected_src) {
match = false;
}
} }
} }
@@ -3616,19 +3657,22 @@ recv_done(isc_task_t *task, isc_event_t *event) {
if (l->tcp_mode) { if (l->tcp_mode) {
bool fail = true; bool fail = true;
if (result == ISC_R_SUCCESS) { if (result == ISC_R_SUCCESS) {
if (!query->first_soa_rcvd || if ((!query->first_soa_rcvd || query->warn_id))
query->warn_id) {
printf(";; %s: ID mismatch: " dighost_warning("%s: ID mismatch: "
"expected ID %u, got %u\n", "expected ID %u, got "
query->first_soa_rcvd ? "%u",
"WARNING" : "ERROR", query->first_soa_rcvd ?
l->sendmsg->id, id); "WARNING" : "ERROR",
l->sendmsg->id, id);
}
if (query->first_soa_rcvd) if (query->first_soa_rcvd)
fail = false; fail = false;
query->warn_id = false; query->warn_id = false;
} else } else {
printf(";; ERROR: short " dighost_warning("ERROR: short (< header size) "
"(< header size) message\n"); "message");
}
if (fail) { if (fail) {
isc_event_free(&event); isc_event_free(&event);
clear_query(query); clear_query(query);
@@ -3638,16 +3682,18 @@ recv_done(isc_task_t *task, isc_event_t *event) {
return; return;
} }
match = true; match = true;
} else if (result == ISC_R_SUCCESS) } else if (result == ISC_R_SUCCESS) {
printf(";; Warning: ID mismatch: " dighost_warning("Warning: ID mismatch: expected ID %u,"
"expected ID %u, got %u\n", l->sendmsg->id, id); " got %u", l->sendmsg->id, id);
else } else {
printf(";; Warning: short " dighost_warning("Warning: short (< header size) "
"(< header size) message received\n"); "message received");
}
} }
if (result == ISC_R_SUCCESS && (msgflags & DNS_MESSAGEFLAG_QR) == 0) if (result == ISC_R_SUCCESS && (msgflags & DNS_MESSAGEFLAG_QR) == 0) {
printf(";; Warning: query response not set\n"); dighost_warning("Warning: query response not set");
}
if (!match) if (!match)
goto udp_mismatch; goto udp_mismatch;
@@ -3681,13 +3727,16 @@ recv_done(isc_task_t *task, isc_event_t *event) {
} }
result = dns_message_parse(msg, &b, parseflags); result = dns_message_parse(msg, &b, parseflags);
if (result == DNS_R_RECOVERABLE) { if (result == DNS_R_RECOVERABLE) {
printf(";; Warning: Message parser reports malformed " dighost_warning("Warning: Message parser reports malformed "
"message packet.\n"); "message packet.");
result = ISC_R_SUCCESS; result = ISC_R_SUCCESS;
} }
if (result != ISC_R_SUCCESS) { if (result != ISC_R_SUCCESS) {
printf(";; Got bad packet: %s\n", isc_result_totext(result)); if (!yaml) {
hex_dump(&b); printf(";; Got bad packet: %s\n",
isc_result_totext(result));
hex_dump(&b);
}
query->waiting_connect = false; query->waiting_connect = false;
dns_message_destroy(&msg); dns_message_destroy(&msg);
isc_event_free(&event); isc_event_free(&event);
@@ -3724,9 +3773,10 @@ recv_done(isc_task_t *task, isc_event_t *event) {
dns_rdataclass_format(rdataset->rdclass, dns_rdataclass_format(rdataset->rdclass,
classbuf, classbuf,
sizeof(classbuf)); sizeof(classbuf));
printf(";; Question section mismatch: " dighost_warning(";; Question section "
"got %s/%s/%s\n", "mismatch: got "
namestr, typebuf, classbuf); "%s/%s/%s", namestr,
typebuf, classbuf);
match = false; match = false;
} }
} }
@@ -3749,9 +3799,8 @@ recv_done(isc_task_t *task, isc_event_t *event) {
/* /*
* Add minimum EDNS version required checks here if needed. * Add minimum EDNS version required checks here if needed.
*/ */
if (l->comments) dighost_comments(l, "BADVERS, retrying with EDNS version %u.",
printf(";; BADVERS, retrying with EDNS version %u.\n", (unsigned int)newedns);
(unsigned int)newedns);
l->edns = newedns; l->edns = newedns;
n = requeue_lookup(l, true); n = requeue_lookup(l, true);
if (l->trace && l->trace_root) if (l->trace && l->trace_root)
@@ -3768,8 +3817,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
!l->ignore && !l->tcp_mode) { !l->ignore && !l->tcp_mode) {
if (l->cookie == NULL && l->sendcookie && msg->opt != NULL) if (l->cookie == NULL && l->sendcookie && msg->opt != NULL)
process_opt(l, msg); process_opt(l, msg);
if (l->comments) dighost_comments(l, "Truncated, retrying in TCP mode.");
printf(";; Truncated, retrying in TCP mode.\n");
n = requeue_lookup(l, true); n = requeue_lookup(l, true);
n->tcp_mode = true; n->tcp_mode = true;
if (l->trace && l->trace_root) if (l->trace && l->trace_root)
@@ -3786,9 +3834,9 @@ recv_done(isc_task_t *task, isc_event_t *event) {
l->sendcookie && l->badcookie) { l->sendcookie && l->badcookie) {
process_opt(l, msg); process_opt(l, msg);
if (msg->cc_ok) { if (msg->cc_ok) {
if (l->comments) dighost_comments(l, "BADCOOKIE, retrying%s.",
printf(";; BADCOOKIE, retrying%s.\n", l->seenbadcookie ?
l->seenbadcookie ? " in TCP mode" : ""); " in TCP mode" : "");
n = requeue_lookup(l, true); n = requeue_lookup(l, true);
if (l->seenbadcookie) if (l->seenbadcookie)
n->tcp_mode = true; n->tcp_mode = true;
@@ -3825,13 +3873,12 @@ recv_done(isc_task_t *task, isc_event_t *event) {
*/ */
if ((ISC_LIST_HEAD(l->q) != query) || if ((ISC_LIST_HEAD(l->q) != query) ||
(ISC_LIST_NEXT(query, link) != NULL)) { (ISC_LIST_NEXT(query, link) != NULL)) {
if (l->comments) dighost_comments(l, "Got %s from %s, trying next "
printf(";; Got %s from %s, " "server",
"trying next server\n", msg->rcode == dns_rcode_servfail ?
msg->rcode == dns_rcode_servfail ? "SERVFAIL reply" :
"SERVFAIL reply" : "recursion not available",
"recursion not available", query->servname);
query->servname);
clear_query(query); clear_query(query);
check_next_lookup(l); check_next_lookup(l);
dns_message_destroy(&msg); dns_message_destroy(&msg);
@@ -3844,8 +3891,8 @@ recv_done(isc_task_t *task, isc_event_t *event) {
if (tsigkey != NULL) { if (tsigkey != NULL) {
result = dns_tsig_verify(&b, msg, NULL, NULL); result = dns_tsig_verify(&b, msg, NULL, NULL);
if (result != ISC_R_SUCCESS) { if (result != ISC_R_SUCCESS) {
printf(";; Couldn't verify signature: %s\n", dighost_warning("Couldn't verify signature: %s",
isc_result_totext(result)); isc_result_totext(result));
validated = false; validated = false;
} }
l->tsigctx = msg->tsigctx; l->tsigctx = msg->tsigctx;
@@ -3896,7 +3943,8 @@ recv_done(isc_task_t *task, isc_event_t *event) {
if (!done_process_opt) { if (!done_process_opt) {
if (l->cookie != NULL) { if (l->cookie != NULL) {
if (msg->opt == NULL) { if (msg->opt == NULL) {
printf(";; expected opt record in response\n"); dighost_warning("expected opt record in "
"response");
} else { } else {
process_opt(l, msg); process_opt(l, msg);
} }
-12
View File
@@ -857,17 +857,6 @@ parse_args(bool is_batchfile, int argc, char **argv) {
ISC_LIST_APPEND(lookup_list, lookup, link); ISC_LIST_APPEND(lookup_list, lookup, link);
} }
static void
host_error(const char *format, ...) {
va_list args;
printf(";; ");
va_start(args, format);
vfprintf(stdout, format, args);
va_end(args);
printf("\n");
}
int int
main(int argc, char **argv) { main(int argc, char **argv) {
isc_result_t result; isc_result_t result;
@@ -885,7 +874,6 @@ main(int argc, char **argv) {
dighost_received = received; dighost_received = received;
dighost_trying = trying; dighost_trying = trying;
dighost_shutdown = host_shutdown; dighost_shutdown = host_shutdown;
dighost_error = host_error;
debug("main()"); debug("main()");
progname = argv[0]; progname = argv[0];
+16 -2
View File
@@ -141,7 +141,9 @@ struct dig_lookup {
idnin, idnin,
idnout, idnout,
expandaaaa, expandaaaa,
qr; qr,
accept_reply_unexpected_src; /*% print replies from unexpected
sources. */
char textname[MXNAME]; /*% Name we're going to be looking up */ char textname[MXNAME]; /*% Name we're going to be looking up */
char cmdline[MXNAME]; char cmdline[MXNAME];
dns_rdatatype_t rdtype; dns_rdatatype_t rdtype;
@@ -250,7 +252,7 @@ extern dig_searchlistlist_t search_list;
extern unsigned int extrabytes; extern unsigned int extrabytes;
extern bool check_ra, have_ipv4, have_ipv6, specified_source, extern bool check_ra, have_ipv4, have_ipv6, specified_source,
usesearch, showsearch; usesearch, showsearch, yaml;
extern in_port_t port; extern in_port_t port;
extern unsigned int timeout; extern unsigned int timeout;
extern isc_mem_t *mctx; extern isc_mem_t *mctx;
@@ -389,6 +391,18 @@ extern isc_result_t
extern void extern void
(*dighost_error)(const char *format, ...); (*dighost_error)(const char *format, ...);
/*
* Print a warning message in the appropriate format.
*/
extern void
(*dighost_warning)(const char *format, ...);
/*
* Print a comment in the appropriate format.
*/
extern void
(*dighost_comments)(dig_lookup_t *lookup, const char *format, ...);
/*%< /*%<
* Print the final result of the lookup. * Print the final result of the lookup.
*/ */
-12
View File
@@ -983,17 +983,6 @@ getinput(isc_task_t *task, isc_event_t *event) {
isc_app_shutdown(); isc_app_shutdown();
} }
static void
nsl_error(const char *format, ...) {
va_list args;
printf(";; ");
va_start(args, format);
vfprintf(stdout, format, args);
va_end(args);
printf("\n");
}
int int
main(int argc, char **argv) { main(int argc, char **argv) {
isc_result_t result; isc_result_t result;
@@ -1011,7 +1000,6 @@ main(int argc, char **argv) {
dighost_received = received; dighost_received = received;
dighost_trying = trying; dighost_trying = trying;
dighost_shutdown = query_finished; dighost_shutdown = query_finished;
dighost_error = nsl_error;
result = isc_app_start(); result = isc_app_start();
check_result(result, "isc_app_start"); check_result(result, "isc_app_start");
+1 -5
View File
@@ -1570,8 +1570,6 @@ assignwork(isc_task_t *task, isc_task_t *worker) {
sevent = (sevent_t *) sevent = (sevent_t *)
isc_event_allocate(mctx, task, SIGNER_EVENT_WORK, isc_event_allocate(mctx, task, SIGNER_EVENT_WORK,
sign, NULL, sizeof(sevent_t)); sign, NULL, sizeof(sevent_t));
if (sevent == NULL)
fatal("failed to allocate event\n");
sevent->node = node; sevent->node = node;
sevent->fname = fname; sevent->fname = fname;
@@ -1627,8 +1625,6 @@ sign(isc_task_t *task, isc_event_t *event) {
wevent = (sevent_t *) wevent = (sevent_t *)
isc_event_allocate(mctx, task, SIGNER_EVENT_WRITE, isc_event_allocate(mctx, task, SIGNER_EVENT_WRITE,
writenode, NULL, sizeof(sevent_t)); writenode, NULL, sizeof(sevent_t));
if (wevent == NULL)
fatal("failed to allocate event\n");
wevent->node = node; wevent->node = node;
wevent->fname = fname; wevent->fname = fname;
isc_task_send(master, ISC_EVENT_PTR(&wevent)); isc_task_send(master, ISC_EVENT_PTR(&wevent));
@@ -3802,7 +3798,7 @@ main(int argc, char *argv[]) {
print_time(outfp); print_time(outfp);
print_version(outfp); print_version(outfp);
result = isc_taskmgr_create(mctx, ntasks, 0, &taskmgr); result = isc_taskmgr_create(mctx, ntasks, 0, NULL, &taskmgr);
if (result != ISC_R_SUCCESS) if (result != ISC_R_SUCCESS)
fatal("failed to create task manager: %s", fatal("failed to create task manager: %s",
isc_result_totext(result)); isc_result_totext(result));
+1
View File
@@ -855,6 +855,7 @@ named_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
isc_mem_put(mctx, stack, stackcount * sizeof(*stack)); isc_mem_put(mctx, stack, stackcount * sizeof(*stack));
INSIST(keycount == addrcount); INSIST(keycount == addrcount);
INSIST(keycount == dscpcount);
ipkl->addrs = addrs; ipkl->addrs = addrs;
ipkl->dscps = dscps; ipkl->dscps = dscps;
+2
View File
@@ -19,6 +19,7 @@
#include <isc/rwlock.h> #include <isc/rwlock.h>
#include <isc/log.h> #include <isc/log.h>
#include <isc/net.h> #include <isc/net.h>
#include <isc/netmgr.h>
#include <isccfg/aclconf.h> #include <isccfg/aclconf.h>
#include <isccfg/cfg.h> #include <isccfg/cfg.h>
@@ -62,6 +63,7 @@ EXTERN bool named_g_run_done INIT(false);
*/ */
EXTERN isc_timermgr_t * named_g_timermgr INIT(NULL); EXTERN isc_timermgr_t * named_g_timermgr INIT(NULL);
EXTERN isc_socketmgr_t * named_g_socketmgr INIT(NULL); EXTERN isc_socketmgr_t * named_g_socketmgr INIT(NULL);
EXTERN isc_nm_t * named_g_nm INIT(NULL);
EXTERN cfg_parser_t * named_g_parser INIT(NULL); EXTERN cfg_parser_t * named_g_parser INIT(NULL);
EXTERN cfg_parser_t * named_g_addparser INIT(NULL); EXTERN cfg_parser_t * named_g_addparser INIT(NULL);
EXTERN const char * named_g_version INIT(VERSION); EXTERN const char * named_g_version INIT(VERSION);
+16 -12
View File
@@ -24,6 +24,7 @@
#include <isc/file.h> #include <isc/file.h>
#include <isc/hash.h> #include <isc/hash.h>
#include <isc/httpd.h> #include <isc/httpd.h>
#include <isc/netmgr.h>
#include <isc/os.h> #include <isc/os.h>
#include <isc/platform.h> #include <isc/platform.h>
#include <isc/print.h> #include <isc/print.h>
@@ -123,7 +124,6 @@ static int maxudp = 0;
/* /*
* -T options: * -T options:
*/ */
static bool clienttest = false;
static bool dropedns = false; static bool dropedns = false;
static bool ednsformerr = false; static bool ednsformerr = false;
static bool ednsnotimp = false; static bool ednsnotimp = false;
@@ -352,7 +352,7 @@ save_command_line(int argc, char *argv[]) {
*dst++ = ' '; *dst++ = ' ';
while (*src != '\0' && dst < eob) { while (*src != '\0' && dst < eob) {
if (isalnum(*src) || if (isalnum(*src) || *src == ',' ||
*src == '-' || *src == '_' || *src == '-' || *src == '_' ||
*src == '.' || *src == '/') *src == '.' || *src == '/')
{ {
@@ -602,17 +602,12 @@ parse_T_opt(char *option) {
/* /*
* force the server to behave (or misbehave) in * force the server to behave (or misbehave) in
* specified ways for testing purposes. * specified ways for testing purposes.
* * * delay=xxxx: delay client responses by xxxx ms to
* clienttest: make clients single shot with their
* own memory context.
* delay=xxxx: delay client responses by xxxx ms to
* simulate remote servers. * simulate remote servers.
* dscp=x: check that dscp values are as * dscp=x: check that dscp values are as
* expected and assert otherwise. * expected and assert otherwise.
*/ */
if (!strcmp(option, "clienttest")) { if (!strncmp(option, "delay=", 6)) {
clienttest = true;
} else if (!strncmp(option, "delay=", 6)) {
delay = atoi(option + 6); delay = atoi(option + 6);
} else if (!strcmp(option, "dropedns")) { } else if (!strcmp(option, "dropedns")) {
dropedns = true; dropedns = true;
@@ -646,6 +641,9 @@ parse_T_opt(char *option) {
maxudp = 1460; maxudp = 1460;
} else if (!strncmp(option, "maxudp=", 7)) { } else if (!strncmp(option, "maxudp=", 7)) {
maxudp = atoi(option + 7); maxudp = atoi(option + 7);
if (maxudp <= 0) {
named_main_earlyfatal("bad maxudp");
}
} else if (!strncmp(option, "mkeytimers=", 11)) { } else if (!strncmp(option, "mkeytimers=", 11)) {
p = strtok_r(option + 11, "/", &last); p = strtok_r(option + 11, "/", &last);
if (p == NULL) { if (p == NULL) {
@@ -874,8 +872,15 @@ create_managers(void) {
"using %u UDP listener%s per interface", "using %u UDP listener%s per interface",
named_g_udpdisp, named_g_udpdisp == 1 ? "" : "s"); named_g_udpdisp, named_g_udpdisp == 1 ? "" : "s");
named_g_nm = isc_nm_start(named_g_mctx, named_g_cpus);
if (named_g_nm == NULL) {
UNEXPECTED_ERROR(__FILE__, __LINE__,
"isc_nm_start() failed");
return (ISC_R_UNEXPECTED);
}
result = isc_taskmgr_create(named_g_mctx, named_g_cpus, 0, result = isc_taskmgr_create(named_g_mctx, named_g_cpus, 0,
&named_g_taskmgr); named_g_nm, &named_g_taskmgr);
if (result != ISC_R_SUCCESS) { if (result != ISC_R_SUCCESS) {
UNEXPECTED_ERROR(__FILE__, __LINE__, UNEXPECTED_ERROR(__FILE__, __LINE__,
"isc_taskmgr_create() failed: %s", "isc_taskmgr_create() failed: %s",
@@ -918,6 +923,7 @@ destroy_managers(void) {
isc_taskmgr_destroy(&named_g_taskmgr); isc_taskmgr_destroy(&named_g_taskmgr);
isc_timermgr_destroy(&named_g_timermgr); isc_timermgr_destroy(&named_g_timermgr);
isc_socketmgr_destroy(&named_g_socketmgr); isc_socketmgr_destroy(&named_g_socketmgr);
isc_nm_shutdown(&named_g_nm);
} }
static void static void
@@ -1231,8 +1237,6 @@ setup(void) {
/* /*
* Modify server context according to command line options * Modify server context according to command line options
*/ */
if (clienttest)
ns_server_setoption(sctx, NS_SERVER_CLIENTTEST, true);
if (disable4) if (disable4)
ns_server_setoption(sctx, NS_SERVER_DISABLE4, true); ns_server_setoption(sctx, NS_SERVER_DISABLE4, true);
if (disable6) if (disable6)
+5 -5
View File
@@ -2827,8 +2827,6 @@ catz_create_chg_task(dns_catz_entry_t *entry, dns_catz_zone_t *origin,
event = (catz_chgzone_event_t *) isc_event_allocate(view->mctx, origin, event = (catz_chgzone_event_t *) isc_event_allocate(view->mctx, origin,
type, action, NULL, type, action, NULL,
sizeof(*event)); sizeof(*event));
if (event == NULL)
return (ISC_R_NOMEMORY);
event->cbd = (catz_cb_data_t *) udata; event->cbd = (catz_cb_data_t *) udata;
event->entry = NULL; event->entry = NULL;
@@ -9401,6 +9399,7 @@ run_server(isc_task_t *task, isc_event_t *event) {
CHECKFATAL(ns_interfacemgr_create(named_g_mctx, server->sctx, CHECKFATAL(ns_interfacemgr_create(named_g_mctx, server->sctx,
named_g_taskmgr, named_g_timermgr, named_g_taskmgr, named_g_timermgr,
named_g_socketmgr, named_g_socketmgr,
named_g_nm,
named_g_dispatchmgr, named_g_dispatchmgr,
server->task, named_g_udpdisp, geoip, server->task, named_g_udpdisp, geoip,
&server->interfacemgr), &server->interfacemgr),
@@ -9463,6 +9462,10 @@ shutdown_server(isc_task_t *task, isc_event_t *event) {
UNUSED(task); UNUSED(task);
INSIST(task == server->task); INSIST(task == server->task);
/* We need to shutdown the interface before going exclusive (and
* pausing netmgr. */
ns_interfacemgr_shutdown(server->interfacemgr);
result = isc_task_beginexclusive(server->task); result = isc_task_beginexclusive(server->task);
RUNTIME_CHECK(result == ISC_R_SUCCESS); RUNTIME_CHECK(result == ISC_R_SUCCESS);
@@ -9512,7 +9515,6 @@ shutdown_server(isc_task_t *task, isc_event_t *event) {
isc_timer_detach(&server->pps_timer); isc_timer_detach(&server->pps_timer);
isc_timer_detach(&server->tat_timer); isc_timer_detach(&server->tat_timer);
ns_interfacemgr_shutdown(server->interfacemgr);
ns_interfacemgr_detach(&server->interfacemgr); ns_interfacemgr_detach(&server->interfacemgr);
dns_dispatchmgr_destroy(&named_g_dispatchmgr); dns_dispatchmgr_destroy(&named_g_dispatchmgr);
@@ -13565,8 +13567,6 @@ named_server_delzone(named_server_t *server, isc_lex_t *lex,
dns_zone_attach(zone, &dz->zone); dns_zone_attach(zone, &dz->zone);
dzevent = isc_event_allocate(named_g_mctx, server, NAMED_EVENT_DELZONE, dzevent = isc_event_allocate(named_g_mctx, server, NAMED_EVENT_DELZONE,
rmzone, dz, sizeof(isc_event_t)); rmzone, dz, sizeof(isc_event_t));
if (dzevent == NULL)
CHECK(ISC_R_NOMEMORY);
dns_zone_gettask(zone, &task); dns_zone_gettask(zone, &task);
isc_task_send(task, &dzevent); isc_task_send(task, &dzevent);
+1 -1
View File
@@ -906,7 +906,7 @@ setup_system(void) {
result = isc_timermgr_create(gmctx, &timermgr); result = isc_timermgr_create(gmctx, &timermgr);
check_result(result, "dns_timermgr_create"); check_result(result, "dns_timermgr_create");
result = isc_taskmgr_create(gmctx, 1, 0, &taskmgr); result = isc_taskmgr_create(gmctx, 1, 0, NULL, &taskmgr);
check_result(result, "isc_taskmgr_create"); check_result(result, "isc_taskmgr_create");
result = isc_task_create(taskmgr, 0, &global_task); result = isc_task_create(taskmgr, 0, &global_task);
+2 -1
View File
@@ -932,7 +932,8 @@ main(int argc, char **argv) {
DO("create memory context", isc_mem_create(0, 0, &rndc_mctx)); DO("create memory context", isc_mem_create(0, 0, &rndc_mctx));
DO("create socket manager", isc_socketmgr_create(rndc_mctx, &socketmgr)); DO("create socket manager", isc_socketmgr_create(rndc_mctx, &socketmgr));
DO("create task manager", isc_taskmgr_create(rndc_mctx, 1, 0, &taskmgr)); DO("create task manager",
isc_taskmgr_create(rndc_mctx, 1, 0, NULL, &taskmgr));
DO("create task", isc_task_create(taskmgr, 0, &task)); DO("create task", isc_task_create(taskmgr, 0, &task));
DO("create logging context", isc_log_create(rndc_mctx, &log, &logconfig)); DO("create logging context", isc_log_create(rndc_mctx, &log, &logconfig));
+1 -1
View File
@@ -144,7 +144,7 @@ create_managers(void) {
isc_result_t result; isc_result_t result;
taskmgr = NULL; taskmgr = NULL;
result = isc_taskmgr_create(mctx, 5, 0, &taskmgr); result = isc_taskmgr_create(mctx, 5, 0, NULL, &taskmgr);
check_result(result, "isc_taskmgr_create"); check_result(result, "isc_taskmgr_create");
timermgr = NULL; timermgr = NULL;
+1 -1
View File
@@ -112,7 +112,7 @@ main(int argc, char *argv[]) {
} }
taskmgr = NULL; taskmgr = NULL;
RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, 0, &taskmgr) RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, 0, NULL, &taskmgr)
== ISC_R_SUCCESS); == ISC_R_SUCCESS);
task = NULL; task = NULL;
RUNTIME_CHECK(isc_task_create(taskmgr, 0, &task) RUNTIME_CHECK(isc_task_create(taskmgr, 0, &task)
+1 -1
View File
@@ -226,7 +226,7 @@ main(int argc, char *argv[]) {
} }
taskmgr = NULL; taskmgr = NULL;
RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, 0, &taskmgr) == RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, 0, NULL, &taskmgr) ==
ISC_R_SUCCESS); ISC_R_SUCCESS);
task = NULL; task = NULL;
RUNTIME_CHECK(isc_task_create(taskmgr, 0, &task) == RUNTIME_CHECK(isc_task_create(taskmgr, 0, &task) ==
+1 -1
View File
@@ -470,7 +470,7 @@ main(int argc, char *argv[]) {
RUNCHECK(dst_lib_init(mctx, NULL)); RUNCHECK(dst_lib_init(mctx, NULL));
taskmgr = NULL; taskmgr = NULL;
RUNCHECK(isc_taskmgr_create(mctx, 1, 0, &taskmgr)); RUNCHECK(isc_taskmgr_create(mctx, 1, 0, NULL, &taskmgr));
task = NULL; task = NULL;
RUNCHECK(isc_task_create(taskmgr, 0, &task)); RUNCHECK(isc_task_create(taskmgr, 0, &task));
timermgr = NULL; timermgr = NULL;
+1 -1
View File
@@ -102,7 +102,7 @@ main(int argc, char *argv[]) {
isc_interval_set(&linterval, 1, 0); isc_interval_set(&linterval, 1, 0);
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
RUNTIME_CHECK(isc_taskmgr_create(mctx, 3, 0, &taskmgr) == RUNTIME_CHECK(isc_taskmgr_create(mctx, 3, 0, NULL, &taskmgr) ==
ISC_R_SUCCESS); ISC_R_SUCCESS);
RUNTIME_CHECK(isc_timermgr_create(mctx, &timermgr) == RUNTIME_CHECK(isc_timermgr_create(mctx, &timermgr) ==
ISC_R_SUCCESS); ISC_R_SUCCESS);
+1 -1
View File
@@ -181,7 +181,7 @@ main(int argc, char *argv[]) {
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
mctx2 = NULL; mctx2 = NULL;
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx2) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_mem_create(0, 0, &mctx2) == ISC_R_SUCCESS);
RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, 0, &task_manager) == RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, 0, NULL, &task_manager) ==
ISC_R_SUCCESS); ISC_R_SUCCESS);
RUNTIME_CHECK(isc_timermgr_create(mctx, &timer_manager) == RUNTIME_CHECK(isc_timermgr_create(mctx, &timer_manager) ==
ISC_R_SUCCESS); ISC_R_SUCCESS);
+1 -1
View File
@@ -226,7 +226,7 @@ main(int argc, char *argv[]) {
dst_result_register(); dst_result_register();
taskmgr = NULL; taskmgr = NULL;
RUNTIME_CHECK(isc_taskmgr_create(mctx, 2, 0, &taskmgr) == RUNTIME_CHECK(isc_taskmgr_create(mctx, 2, 0, NULL, &taskmgr) ==
ISC_R_SUCCESS); ISC_R_SUCCESS);
task1 = NULL; task1 = NULL;
RUNTIME_CHECK(isc_task_create(taskmgr, 0, &task1) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_task_create(taskmgr, 0, &task1) == ISC_R_SUCCESS);
+1 -1
View File
@@ -292,7 +292,7 @@ main(int argc, char *argv[]) {
* The task manager is independent (other than memory context) * The task manager is independent (other than memory context)
*/ */
manager = NULL; manager = NULL;
RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, 0, &manager) == RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, 0, NULL, &manager) ==
ISC_R_SUCCESS); ISC_R_SUCCESS);
/* /*
+1 -1
View File
@@ -79,7 +79,7 @@ main(int argc, char *argv[]) {
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, 0, &manager) == RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, 0, NULL, &manager) ==
ISC_R_SUCCESS); ISC_R_SUCCESS);
RUNTIME_CHECK(isc_task_create(manager, 0, &t1) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_task_create(manager, 0, &t1) == ISC_R_SUCCESS);
+1 -1
View File
@@ -108,7 +108,7 @@ main(int argc, char *argv[]) {
printf("%u workers\n", workers); printf("%u workers\n", workers);
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx1) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_mem_create(0, 0, &mctx1) == ISC_R_SUCCESS);
RUNTIME_CHECK(isc_taskmgr_create(mctx1, workers, 0, &manager) == RUNTIME_CHECK(isc_taskmgr_create(mctx1, workers, 0, NULL, &manager) ==
ISC_R_SUCCESS); ISC_R_SUCCESS);
RUNTIME_CHECK(isc_timermgr_create(mctx1, &timgr) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_timermgr_create(mctx1, &timgr) == ISC_R_SUCCESS);
+1 -1
View File
@@ -281,7 +281,7 @@ main(int argc, char **argv) {
RUNTIME_CHECK(isc_app_start() == ISC_R_SUCCESS); RUNTIME_CHECK(isc_app_start() == ISC_R_SUCCESS);
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
RUNTIME_CHECK(isc_taskmgr_create(mctx, 2, 0, &taskmgr) == RUNTIME_CHECK(isc_taskmgr_create(mctx, 2, 0, NULL, &taskmgr) ==
ISC_R_SUCCESS); ISC_R_SUCCESS);
RUNTIME_CHECK(isc_timermgr_create(mctx, &timermgr) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_timermgr_create(mctx, &timermgr) == ISC_R_SUCCESS);
RUNTIME_CHECK(isc_socketmgr_create(mctx, &socketmgr) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_socketmgr_create(mctx, &socketmgr) == ISC_R_SUCCESS);
+5
View File
@@ -425,6 +425,7 @@ $CHECKCONF check-root-ksk-both.conf > checkconf.out$n 2>/dev/null || ret=1
if [ $ret != 0 ]; then echo_i "failed"; ret=1; fi if [ $ret != 0 ]; then echo_i "failed"; ret=1; fi
status=`expr $status + $ret` status=`expr $status + $ret`
n=`expr $n + 1`
echo_i "check that the 2017 ICANN ROOT KSK alone does not generate a warning ($n)" echo_i "check that the 2017 ICANN ROOT KSK alone does not generate a warning ($n)"
ret=0 ret=0
$CHECKCONF check-root-ksk-2017.conf > checkconf.out$n 2>/dev/null || ret=1 $CHECKCONF check-root-ksk-2017.conf > checkconf.out$n 2>/dev/null || ret=1
@@ -432,6 +433,7 @@ $CHECKCONF check-root-ksk-2017.conf > checkconf.out$n 2>/dev/null || ret=1
if [ $ret != 0 ]; then echo_i "failed"; ret=1; fi if [ $ret != 0 ]; then echo_i "failed"; ret=1; fi
status=`expr $status + $ret` status=`expr $status + $ret`
n=`expr $n + 1`
echo_i "check that a static root key generates a warning ($n)" echo_i "check that a static root key generates a warning ($n)"
ret=0 ret=0
$CHECKCONF check-root-static-key.conf > checkconf.out$n 2>/dev/null || ret=1 $CHECKCONF check-root-static-key.conf > checkconf.out$n 2>/dev/null || ret=1
@@ -439,6 +441,7 @@ grep "static-key entry for the root zone WILL FAIL" checkconf.out$n > /dev/null
if [ $ret != 0 ]; then echo_i "failed"; ret=1; fi if [ $ret != 0 ]; then echo_i "failed"; ret=1; fi
status=`expr $status + $ret` status=`expr $status + $ret`
n=`expr $n + 1`
echo_i "check that a trusted-keys entry for root generates a warning ($n)" echo_i "check that a trusted-keys entry for root generates a warning ($n)"
ret=0 ret=0
$CHECKCONF check-root-trusted-key.conf > checkconf.out$n 2>/dev/null || ret=1 $CHECKCONF check-root-trusted-key.conf > checkconf.out$n 2>/dev/null || ret=1
@@ -446,6 +449,7 @@ grep "trusted-keys entry for the root zone WILL FAIL" checkconf.out$n > /dev/nul
if [ $ret != 0 ]; then echo_i "failed"; ret=1; fi if [ $ret != 0 ]; then echo_i "failed"; ret=1; fi
status=`expr $status + $ret` status=`expr $status + $ret`
n=`expr $n + 1`
echo_i "check that using dnssec-keys and managed-keys generates an error ($n)" echo_i "check that using dnssec-keys and managed-keys generates an error ($n)"
ret=0 ret=0
$CHECKCONF check-mixed-keys.conf > checkconf.out$n 2>/dev/null && ret=1 $CHECKCONF check-mixed-keys.conf > checkconf.out$n 2>/dev/null && ret=1
@@ -453,6 +457,7 @@ grep "use of managed-keys is not allowed" checkconf.out$n > /dev/null || ret=1
if [ $ret != 0 ]; then echo_i "failed"; ret=1; fi if [ $ret != 0 ]; then echo_i "failed"; ret=1; fi
status=`expr $status + $ret` status=`expr $status + $ret`
n=`expr $n + 1`
echo_i "check that 'geoip-use-ecs no' generates a warning ($n)" echo_i "check that 'geoip-use-ecs no' generates a warning ($n)"
ret=0 ret=0
$CHECKCONF warn-geoip-use-ecs.conf > checkconf.out$n 2>/dev/null || ret=1 $CHECKCONF warn-geoip-use-ecs.conf > checkconf.out$n 2>/dev/null || ret=1
+1 -1
View File
@@ -28,7 +28,7 @@ CYGWIN=1
. $TOP/bin/tests/system/conf.sh.common . $TOP/bin/tests/system/conf.sh.common
# Visual Studio build configurations are Release and Debug # Visual Studio build configurations are Release and Debug
VSCONF=Debug VSCONF=${VSCONF:-Debug}
ARPANAME=$TOP/Build/$VSCONF/arpaname@EXEEXT@ ARPANAME=$TOP/Build/$VSCONF/arpaname@EXEEXT@
CDS=$TOP/Build/$VSCONF/dnssec-cds@EXEEXT@ CDS=$TOP/Build/$VSCONF/dnssec-cds@EXEEXT@
+82
View File
@@ -0,0 +1,82 @@
#!/usr/bin/perl -w
#
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
use IO::File;
use IO::Socket;
use Net::DNS;
use Net::DNS::Packet;
my $localport = int($ENV{'PORT'});
if (!$localport) { $localport = 5300; }
my $sock = IO::Socket::INET->new(LocalAddr => "10.53.0.6",
LocalPort => $localport, Proto => "udp") or die "$!";
my $pidf = new IO::File "ans.pid", "w" or die "cannot open pid file: $!";
print $pidf "$$\n" or die "cannot write pid file: $!";
$pidf->close or die "cannot close pid file: $!";
sub rmpid { unlink "ans.pid"; exit 1; };
$SIG{INT} = \&rmpid;
$SIG{TERM} = \&rmpid;
for (;;) {
$sock->recv($buf, 512);
print "**** request from " , $sock->peerhost, " port ", $sock->peerport, "\n";
my $packet;
if ($Net::DNS::VERSION > 0.68) {
$packet = new Net::DNS::Packet(\$buf, 0);
$@ and die $@;
} else {
my $err;
($packet, $err) = new Net::DNS::Packet(\$buf, 0);
$err and die $err;
}
print "REQUEST:\n";
$packet->print;
$packet->header->qr(1);
my @questions = $packet->question;
my $qname = $questions[0]->qname;
my $qtype = $questions[0]->qtype;
my $donotrespond = 0;
$packet->header->aa(1);
if ($qtype eq "A") {
$packet->push("answer",
new Net::DNS::RR($qname . " 300 A 10.53.0.5"));
} else {
$donotrespond = 1;
}
if ($donotrespond == 0) {
my $sendsock =
IO::Socket::INET->new(LocalAddr => "10.53.1.2",
PeerAddr => $sock->peerhost,
PeerPort => $sock->peerport,
Proto => "udp") or die "$!";
print "**** response from ", $sendsock->sockhost, " to " ,
$sendsock->peerhost, " port ", $sendsock->peerport, "\n";
$sendsock->send($packet->data);
$sendsock->close;
print "RESPONSE:\n";
$packet->print;
print "\n";
} else {
print "DROP:\n";
}
}
+29
View File
@@ -68,6 +68,7 @@ if [ -n "$PYTHON" ] ; then
fi fi
if [ -x "$DIG" ] ; then if [ -x "$DIG" ] ; then
n=$((n+1)) n=$((n+1))
echo_i "checking dig short form works ($n)" echo_i "checking dig short form works ($n)"
ret=0 ret=0
@@ -723,6 +724,7 @@ if [ -x "$DIG" ] ; then
status=$((status+ret)) status=$((status+ret))
n=$((n+1)) n=$((n+1))
echo_i "check that dig +short +expandaaaa works ($n)" echo_i "check that dig +short +expandaaaa works ($n)"
ret=0 ret=0
dig_with_opts @10.53.0.3 +short +expandaaaa AAAA ns2.example > dig.out.test$n 2>&1 || ret=1 dig_with_opts @10.53.0.3 +short +expandaaaa AAAA ns2.example > dig.out.test$n 2>&1 || ret=1
@@ -744,6 +746,33 @@ if [ -x "$DIG" ] ; then
if [ $ret -ne 0 ]; then echo_i "failed"; fi if [ $ret -ne 0 ]; then echo_i "failed"; fi
status=$((status+ret)) status=$((status+ret))
fi fi
echo_i "check that dig +unexpected works ($n)"
ret=0
dig_with_opts @10.53.0.6 +unexpected a a.example > dig.out.test$n || ret=1
grep 'reply from unexpected source' dig.out.test$n > /dev/null || ret=1
grep 'status: NOERROR' dig.out.test$n > /dev/null || ret=1
if [ $ret -ne 0 ]; then echo_i "failed"; fi
status=$((status+ret))
n=$((n+1))
echo_i "check that dig +nounexpected works ($n)"
ret=0
dig_with_opts @10.53.0.6 +nounexpected +tries=1 +time=2 a a.example > dig.out.test$n && ret=1
grep 'reply from unexpected source' dig.out.test$n > /dev/null || ret=1
grep "status: NOERROR" < dig.out.test$n > /dev/null && ret=1
if [ $ret -ne 0 ]; then echo_i "failed"; fi
status=$((status+ret))
n=$((n+1))
echo_i "check that dig default for +[no]unexpected (+nounexpected) works ($n)"
ret=0
dig_with_opts @10.53.0.6 +tries=1 +time=2 a a.example > dig.out.test$n && ret=1
grep 'reply from unexpected source' dig.out.test$n > /dev/null || ret=1
grep "status: NOERROR" < dig.out.test$n > /dev/null && ret=1
if [ $ret -ne 0 ]; then echo_i "failed"; fi
status=$((status+ret))
else else
echo_i "$DIG is needed, so skipping these dig tests" echo_i "$DIG is needed, so skipping these dig tests"
fi fi
-4
View File
@@ -213,10 +213,6 @@ syncptr(sample_instance_t *inst, dns_name_t *name,
SYNCPTR_WRITE_EVENT, SYNCPTR_WRITE_EVENT,
syncptr_write, NULL, syncptr_write, NULL,
sizeof(syncptrevent_t)); sizeof(syncptrevent_t));
if (pevent == NULL) {
result = ISC_R_NOMEMORY;
goto cleanup;
}
isc_buffer_init(&pevent->b, pevent->buf, sizeof(pevent->buf)); isc_buffer_init(&pevent->b, pevent->buf, sizeof(pevent->buf));
dns_fixedname_init(&pevent->ptr_target_name); dns_fixedname_init(&pevent->ptr_target_name);
+1 -1
View File
@@ -20,7 +20,7 @@ rm -f dig.out.*
DIGOPTS="+tcp +noau +noadd +nosea +nostat +nocmd +dnssec -p 5300" DIGOPTS="+tcp +noau +noadd +nosea +nostat +nocmd +dnssec -p 5300"
# Check the example. domain # Check the example. domain
sleep 5
echo "I:checking that positive validation works ($n)" echo "I:checking that positive validation works ($n)"
ret=0 ret=0
$DIG $DIGOPTS . @10.53.0.1 soa > dig.out.ns1.test$n || ret=1 $DIG $DIGOPTS . @10.53.0.1 soa > dig.out.ns1.test$n || ret=1
+1 -1
View File
@@ -134,7 +134,7 @@ n=`expr $n + 1`
echo_i "checking policy.conf parser ($n)" echo_i "checking policy.conf parser ($n)"
ret=0 ret=0
${PYTHON} testpolicy.py policy.sample > policy.out ${PYTHON} testpolicy.py policy.sample > policy.out
$DOS2UNIX policy.out > /dev/null $DOS2UNIX policy.out > /dev/null 2>&1
cmp -s policy.good policy.out || ret=1 cmp -s policy.good policy.out || ret=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`
+1 -1
View File
@@ -277,7 +277,7 @@ main(int argc, char *argv[]) {
RUNCHECK(dst_lib_init(mctx, NULL)); RUNCHECK(dst_lib_init(mctx, NULL));
taskmgr = NULL; taskmgr = NULL;
RUNCHECK(isc_taskmgr_create(mctx, 1, 0, &taskmgr)); RUNCHECK(isc_taskmgr_create(mctx, 1, 0, NULL, &taskmgr));
task = NULL; task = NULL;
RUNCHECK(isc_task_create(taskmgr, 0, &task)); RUNCHECK(isc_task_create(taskmgr, 0, &task));
timermgr = NULL; timermgr = NULL;
+7
View File
@@ -795,5 +795,12 @@ grep "status: SERVFAIL" dig.ns5.out.${n} > /dev/null || ret=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`
n=`expr $n + 1`
echo_i "check logged command line ($n)"
ret=0
grep "running as: .* -m record,size,mctx " ns1/named.run > /dev/null || ret=1
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
echo_i "exit status: $status" echo_i "exit status: $status"
[ $status -eq 0 ] || exit 1 [ $status -eq 0 ] || exit 1
+2 -2
View File
@@ -29,9 +29,9 @@ fi
# remove those files first, then decide whether to remove the others. # remove those files first, then decide whether to remove the others.
rm -f ns*/*.key ns*/*.private rm -f ns*/*.key ns*/*.private
rm -f ns2/tld2s.db ns2/bl.tld2.db rm -f ns2/tld2s.db ns2/bl.tld2.db
rm -f ns3/bl*.db ns*/empty.db rm -f ns3/bl*.db ns3/fast-expire.db ns*/empty.db
rm -f ns3/manual-update-rpz.db rm -f ns3/manual-update-rpz.db
rm -f ns5/example.db ns5/bl.db rm -f ns5/example.db ns5/bl.db ns5/fast-expire.db ns5/expire.conf
rm -f ns8/manual-update-rpz.db rm -f ns8/manual-update-rpz.db
rm -f */policy2.db rm -f */policy2.db
rm -f */*.jnl rm -f */*.jnl
+10
View File
@@ -28,8 +28,11 @@ options {
minimal-responses no; minimal-responses no;
recursion yes; recursion yes;
dnssec-validation yes; dnssec-validation yes;
min-refresh-time 1;
min-retry-time 1;
response-policy { response-policy {
zone "fast-expire";
zone "bl" max-policy-ttl 100; zone "bl" max-policy-ttl 100;
zone "bl-2"; zone "bl-2";
zone "bl-given" policy given recursive-only yes; zone "bl-given" policy given recursive-only yes;
@@ -110,3 +113,10 @@ zone "manual-update-rpz." {
file "manual-update-rpz.db"; file "manual-update-rpz.db";
notify no; notify no;
}; };
zone "fast-expire." {
type secondary;
file "fast-expire.db";
masters { 10.53.0.5; };
notify no;
};
+17
View File
@@ -0,0 +1,17 @@
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
zone "fast-expire." {
type master;
file "fast-expire.db";
allow-transfer { any; };
notify no;
};
@@ -0,0 +1,16 @@
; Copyright (C) Internet Systems Consortium, Inc. ("ISC")
;
; This Source Code Form is subject to the terms of the Mozilla Public
; License, v. 2.0. If a copy of the MPL was not distributed with this
; file, You can obtain one at http://mozilla.org/MPL/2.0/.
;
; See the COPYRIGHT file distributed with this work for additional
; information regarding copyright ownership.
$TTL 300
@ SOA fast-expire. hostmaster (
1 3 1 5 60
)
NS ns.tld3.
expired.fast-expire. A 10.0.0.10
+2
View File
@@ -86,3 +86,5 @@ zone "policy2" {
allow-update { any; }; allow-update { any; };
allow-transfer { any; }; allow-transfer { any; };
}; };
include "expire.conf";
+4
View File
@@ -74,6 +74,10 @@ done
cp ns3/manual-update-rpz.db.in ns3/manual-update-rpz.db cp ns3/manual-update-rpz.db.in ns3/manual-update-rpz.db
cp ns8/manual-update-rpz.db.in ns8/manual-update-rpz.db cp ns8/manual-update-rpz.db.in ns8/manual-update-rpz.db
# a zone that expires quickly and then can't be refreshed
cp ns5/fast-expire.db.in ns5/fast-expire.db
cp ns5/expire.conf.in ns5/expire.conf
# $1=directory # $1=directory
# $2=domain name # $2=domain name
# $3=input zone file # $3=input zone file
+11
View File
@@ -759,6 +759,11 @@ EOF
done done
fi fi
# reconfigure the ns5 master server without the fast-exire zone, so
# it can't be refreshed on ns3, and will expire in 5 seconds.
cat /dev/null > ns5/expire.conf
rndc_reconfig ns5 10.53.0.5
# restart the main test RPZ server to see if that creates a core file # restart the main test RPZ server to see if that creates a core file
if test -z "$HAVE_CORE"; then if test -z "$HAVE_CORE"; then
$PERL $SYSTEMTESTTOP/stop.pl --use-rndc --port ${CONTROLPORT} rpz ns3 $PERL $SYSTEMTESTTOP/stop.pl --use-rndc --port ${CONTROLPORT} rpz ns3
@@ -854,6 +859,12 @@ EOF
echo_i "checking rpz with delegation fails correctly (${t})" echo_i "checking rpz with delegation fails correctly (${t})"
$DIG -p ${PORT} @$ns3 ns example.com > dig.out.$t $DIG -p ${PORT} @$ns3 ns example.com > dig.out.$t
grep "status: SERVFAIL" dig.out.$t > /dev/null || setret "failed" grep "status: SERVFAIL" dig.out.$t > /dev/null || setret "failed"
t=`expr $t + 1`
echo_i "checking policies from expired zone are no longer in effect ($t)"
$DIG -p ${PORT} @$ns3 a expired > dig.out.$t
grep "expired.*10.0.0.10" dig.out.$t > /dev/null && setret "failed"
grep "fast-expire/IN: response-policy zone expired" ns3/named.run > /dev/null || setret "failed"
fi fi
# RPZ 'CNAME *.' (NODATA) trumps DNS64. Test against various DNS64 senarios. # RPZ 'CNAME *.' (NODATA) trumps DNS64. Test against various DNS64 senarios.
+1 -1
View File
@@ -236,7 +236,7 @@ main(int argc, char *argv[]) {
RUNCHECK(dst_lib_init(mctx, NULL)); RUNCHECK(dst_lib_init(mctx, NULL));
taskmgr = NULL; taskmgr = NULL;
RUNCHECK(isc_taskmgr_create(mctx, 1, 0, &taskmgr)); RUNCHECK(isc_taskmgr_create(mctx, 1, 0, NULL, &taskmgr));
task = NULL; task = NULL;
RUNCHECK(isc_task_create(taskmgr, 0, &task)); RUNCHECK(isc_task_create(taskmgr, 0, &task));
timermgr = NULL; timermgr = NULL;
+1 -1
View File
@@ -175,7 +175,7 @@ main(int argc, char **argv) {
RUNCHECK(dst_lib_init(mctx, NULL)); RUNCHECK(dst_lib_init(mctx, NULL));
taskmgr = NULL; taskmgr = NULL;
RUNCHECK(isc_taskmgr_create(mctx, 1, 0, &taskmgr)); RUNCHECK(isc_taskmgr_create(mctx, 1, 0, NULL, &taskmgr));
task = NULL; task = NULL;
RUNCHECK(isc_task_create(taskmgr, 0, &task)); RUNCHECK(isc_task_create(taskmgr, 0, &task));
timermgr = NULL; timermgr = NULL;
+1 -1
View File
@@ -410,7 +410,7 @@ echo_i "test smaller transfer TCP message size ($n)"
$DIG $DIGOPTS example. @10.53.0.8 axfr \ $DIG $DIGOPTS example. @10.53.0.8 axfr \
-y key1.:1234abcd8765 > dig.out.msgsize || status=1 -y key1.:1234abcd8765 > dig.out.msgsize || status=1
$DOS2UNIX dig.out.msgsize >/dev/null $DOS2UNIX dig.out.msgsize >/dev/null 2>&1
bytes=`wc -c < dig.out.msgsize` bytes=`wc -c < dig.out.msgsize`
if [ $bytes -ne 459357 ]; then if [ $bytes -ne 459357 ]; then
+5
View File
@@ -233,6 +233,11 @@ Use [do not use] TCP when querying name servers\&. This alternate syntax to
\fI+[no]tcp\fR \fI+[no]tcp\fR
is provided for backwards compatibility\&. The "vc" stands for "virtual circuit"\&. is provided for backwards compatibility\&. The "vc" stands for "virtual circuit"\&.
.RE .RE
.PP
\fB+[no]yaml\fR
.RS 4
Print the responses in a detailed YAML format\&.
.RE
.SH "LOCAL OPTIONS" .SH "LOCAL OPTIONS"
.PP .PP
The The
+2 -1
View File
@@ -364,6 +364,7 @@ recvresponse(isc_task_t *task, isc_event_t *event) {
printf(" %s:\n", "response_message_data"); printf(" %s:\n", "response_message_data");
result = dns_message_headertotext(response, style, flags, buf); result = dns_message_headertotext(response, style, flags, buf);
CHECK("dns_message_headertotext", result);
} else if (display_comments && !display_short_form) { } else if (display_comments && !display_short_form) {
printf(";; Got answer:\n"); printf(";; Got answer:\n");
@@ -2046,7 +2047,7 @@ main(int argc, char *argv[]) {
fatal("can't choose between IPv4 and IPv6"); fatal("can't choose between IPv4 and IPv6");
taskmgr = NULL; taskmgr = NULL;
RUNCHECK(isc_taskmgr_create(mctx, 1, 0, &taskmgr)); RUNCHECK(isc_taskmgr_create(mctx, 1, 0, NULL, &taskmgr));
task = NULL; task = NULL;
RUNCHECK(isc_task_create(taskmgr, 0, &task)); RUNCHECK(isc_task_create(taskmgr, 0, &task));
timermgr = NULL; timermgr = NULL;
+6
View File
@@ -333,6 +333,12 @@
stands for "virtual circuit". stands for "virtual circuit".
</p> </p>
</dd> </dd>
<dt><span class="term"><code class="option">+[no]yaml</code></span></dt>
<dd>
<p>
Print the responses in a detailed YAML format.
</p>
</dd>
</dl></div> </dl></div>
<p> <p>
+33
View File
@@ -0,0 +1,33 @@
@@
statement S;
expression V;
@@
V = isc_event_allocate(...);
- if (V == NULL) S
@@
type T;
statement S;
expression V;
@@
V = (T *)isc_event_allocate(...);
- if (V == NULL) S
@@
statement S;
expression V;
@@
if (V == NULL) V = isc_event_allocate(...);
- if (V == NULL) S
@@
statement S1, S2;
expression V;
@@
V = isc_event_allocate(...);
- if (V == NULL) S1 else { S2 }
+ S2
+3
View File
@@ -279,6 +279,9 @@
/* define if OpenSSL supports Ed448 */ /* define if OpenSSL supports Ed448 */
#undef HAVE_OPENSSL_ED448 #undef HAVE_OPENSSL_ED448
/* define if OpenSSL supports SipHash */
#undef HAVE_OPENSSL_SIPHASH
/* Define to 1 if you have the `processor_bind' function. */ /* Define to 1 if you have the `processor_bind' function. */
#undef HAVE_PROCESSOR_BIND #undef HAVE_PROCESSOR_BIND
Vendored
+110 -7
View File
@@ -850,6 +850,7 @@ infodir
docdir docdir
oldincludedir oldincludedir
includedir includedir
runstatedir
localstatedir localstatedir
sharedstatedir sharedstatedir
sysconfdir sysconfdir
@@ -1020,6 +1021,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}'
@@ -1272,6 +1274,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=* \
@@ -1409,7 +1420,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.
@@ -1562,6 +1573,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]
@@ -4002,7 +4014,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807, We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */ incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) #define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1) && LARGE_OFF_T % 2147483647 == 1)
? 1 : -1]; ? 1 : -1];
@@ -4048,7 +4060,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807, We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */ incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) #define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1) && LARGE_OFF_T % 2147483647 == 1)
? 1 : -1]; ? 1 : -1];
@@ -4072,7 +4084,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807, We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */ incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) #define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1) && LARGE_OFF_T % 2147483647 == 1)
? 1 : -1]; ? 1 : -1];
@@ -4117,7 +4129,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807, We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */ incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) #define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1) && LARGE_OFF_T % 2147483647 == 1)
? 1 : -1]; ? 1 : -1];
@@ -4141,7 +4153,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807, We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */ incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) #define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1) && LARGE_OFF_T % 2147483647 == 1)
? 1 : -1]; ? 1 : -1];
@@ -15770,6 +15782,66 @@ fi
done done
# libuv
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing uv_run" >&5
$as_echo_n "checking for library containing uv_run... " >&6; }
if ${ac_cv_search_uv_run+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char uv_run ();
int
main ()
{
return uv_run ();
;
return 0;
}
_ACEOF
for ac_lib in '' uv; do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_search_uv_run=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
if ${ac_cv_search_uv_run+:} false; then :
break
fi
done
if ${ac_cv_search_uv_run+:} false; then :
else
ac_cv_search_uv_run=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_uv_run" >&5
$as_echo "$ac_cv_search_uv_run" >&6; }
ac_res=$ac_cv_search_uv_run
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
else
as_fn_error $? "The uv library was not found. Please install libuv!" "$LINENO" 5
fi
# #
# flockfile is usually provided by pthreads # flockfile is usually provided by pthreads
# #
@@ -16596,6 +16668,36 @@ $as_echo "no" >&6; }
fi fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SipHash support" >&5
$as_echo_n "checking for SipHash support... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <openssl/evp.h>
#include <openssl/opensslv.h>
int
main ()
{
#if OPENSSL_VERSION_NUMBER < 0x10101010L
#error OpenSSL >= 1.1.1a required for working SipHash initialization
#endif
EVP_PKEY *key = EVP_PKEY_new_raw_private_key(
EVP_PKEY_SIPHASH, NULL, NULL, 0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
$as_echo "#define HAVE_OPENSSL_SIPHASH 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
# #
# Check for OpenSSL SHA-1 support # Check for OpenSSL SHA-1 support
# #
@@ -23326,7 +23428,7 @@ ac_config_commands="$ac_config_commands chmod"
# elsewhere if there's a good reason for doing so. # elsewhere if there's a good reason for doing so.
# #
ac_config_files="$ac_config_files make/Makefile make/mkdep Makefile bin/Makefile bin/check/Makefile bin/confgen/Makefile bin/confgen/unix/Makefile bin/delv/Makefile bin/dig/Makefile bin/dnssec/Makefile bin/named/Makefile bin/named/unix/Makefile bin/nsupdate/Makefile bin/pkcs11/Makefile bin/plugins/Makefile bin/python/Makefile bin/python/isc/Makefile bin/python/isc/utils.py bin/python/isc/tests/Makefile bin/python/dnssec-checkds.py bin/python/dnssec-coverage.py bin/python/dnssec-keymgr.py bin/python/isc/__init__.py bin/python/isc/checkds.py bin/python/isc/coverage.py bin/python/isc/dnskey.py bin/python/isc/eventlist.py bin/python/isc/keydict.py bin/python/isc/keyevent.py bin/python/isc/keymgr.py bin/python/isc/keyseries.py bin/python/isc/keyzone.py bin/python/isc/policy.py bin/python/isc/rndc.py bin/python/isc/tests/dnskey_test.py bin/python/isc/tests/policy_test.py bin/rndc/Makefile bin/tests/Makefile bin/tests/headerdep_test.sh bin/tests/optional/Makefile bin/tests/pkcs11/Makefile bin/tests/pkcs11/benchmarks/Makefile bin/tests/system/Makefile bin/tests/system/conf.sh bin/tests/system/dlzexternal/Makefile bin/tests/system/dlzexternal/ns1/dlzs.conf bin/tests/system/dyndb/Makefile bin/tests/system/dyndb/driver/Makefile bin/tests/system/pipelined/Makefile bin/tests/system/rndc/Makefile bin/tests/system/rpz/Makefile bin/tests/system/rsabigexponent/Makefile bin/tests/system/tkey/Makefile bin/tools/Makefile contrib/scripts/check-secure-delegation.pl contrib/scripts/zone-edit.sh doc/Makefile doc/arm/Makefile doc/arm/noteversion.xml doc/arm/pkgversion.xml doc/arm/releaseinfo.xml doc/doxygen/Doxyfile doc/doxygen/Makefile doc/doxygen/doxygen-input-filter doc/misc/Makefile doc/tex/Makefile doc/tex/armstyle.sty doc/xsl/Makefile doc/xsl/isc-docbook-chunk.xsl doc/xsl/isc-docbook-html.xsl doc/xsl/isc-manpage.xsl doc/xsl/isc-notes-html.xsl lib/Makefile lib/bind9/Makefile lib/bind9/include/Makefile lib/bind9/include/bind9/Makefile lib/dns/Makefile lib/dns/include/Makefile lib/dns/include/dns/Makefile lib/dns/include/dst/Makefile lib/dns/tests/Makefile lib/irs/Makefile lib/irs/include/Makefile lib/irs/include/irs/Makefile lib/irs/include/irs/netdb.h lib/irs/include/irs/platform.h lib/irs/tests/Makefile lib/isc/pthreads/Makefile lib/isc/pthreads/include/Makefile lib/isc/pthreads/include/isc/Makefile lib/isc/Makefile lib/isc/include/Makefile lib/isc/include/isc/Makefile lib/isc/include/isc/platform.h lib/isc/include/pk11/Makefile lib/isc/include/pkcs11/Makefile lib/isc/tests/Makefile lib/isc/unix/Makefile lib/isc/unix/include/Makefile lib/isc/unix/include/isc/Makefile lib/isc/unix/include/pkcs11/Makefile lib/isccc/Makefile lib/isccc/include/Makefile lib/isccc/include/isccc/Makefile lib/isccc/tests/Makefile lib/isccfg/Makefile lib/isccfg/include/Makefile lib/isccfg/include/isccfg/Makefile lib/isccfg/tests/Makefile lib/ns/Makefile lib/ns/include/Makefile lib/ns/include/ns/Makefile lib/ns/tests/Makefile lib/samples/Makefile lib/samples/Makefile-postinstall unit/unittest.sh fuzz/Makefile" ac_config_files="$ac_config_files make/Makefile make/mkdep Makefile bin/Makefile bin/check/Makefile bin/confgen/Makefile bin/confgen/unix/Makefile bin/delv/Makefile bin/dig/Makefile bin/dnssec/Makefile bin/named/Makefile bin/named/unix/Makefile bin/nsupdate/Makefile bin/pkcs11/Makefile bin/plugins/Makefile bin/python/Makefile bin/python/isc/Makefile bin/python/isc/utils.py bin/python/isc/tests/Makefile bin/python/dnssec-checkds.py bin/python/dnssec-coverage.py bin/python/dnssec-keymgr.py bin/python/isc/__init__.py bin/python/isc/checkds.py bin/python/isc/coverage.py bin/python/isc/dnskey.py bin/python/isc/eventlist.py bin/python/isc/keydict.py bin/python/isc/keyevent.py bin/python/isc/keymgr.py bin/python/isc/keyseries.py bin/python/isc/keyzone.py bin/python/isc/policy.py bin/python/isc/rndc.py bin/python/isc/tests/dnskey_test.py bin/python/isc/tests/policy_test.py bin/rndc/Makefile bin/tests/Makefile bin/tests/headerdep_test.sh bin/tests/optional/Makefile bin/tests/pkcs11/Makefile bin/tests/pkcs11/benchmarks/Makefile bin/tests/system/Makefile bin/tests/system/conf.sh bin/tests/system/dlzexternal/Makefile bin/tests/system/dlzexternal/ns1/dlzs.conf bin/tests/system/dyndb/Makefile bin/tests/system/dyndb/driver/Makefile bin/tests/system/pipelined/Makefile bin/tests/system/rndc/Makefile bin/tests/system/rpz/Makefile bin/tests/system/rsabigexponent/Makefile bin/tests/system/tkey/Makefile bin/tools/Makefile contrib/scripts/check-secure-delegation.pl contrib/scripts/zone-edit.sh doc/Makefile doc/arm/Makefile doc/arm/noteversion.xml doc/arm/pkgversion.xml doc/arm/releaseinfo.xml doc/doxygen/Doxyfile doc/doxygen/Makefile doc/doxygen/doxygen-input-filter doc/misc/Makefile doc/tex/Makefile doc/tex/armstyle.sty doc/xsl/Makefile doc/xsl/isc-docbook-chunk.xsl doc/xsl/isc-docbook-html.xsl doc/xsl/isc-manpage.xsl doc/xsl/isc-notes-html.xsl lib/Makefile lib/bind9/Makefile lib/bind9/include/Makefile lib/bind9/include/bind9/Makefile lib/dns/Makefile lib/dns/include/Makefile lib/dns/include/dns/Makefile lib/dns/include/dst/Makefile lib/dns/tests/Makefile lib/irs/Makefile lib/irs/include/Makefile lib/irs/include/irs/Makefile lib/irs/include/irs/netdb.h lib/irs/include/irs/platform.h lib/irs/tests/Makefile lib/isc/pthreads/Makefile lib/isc/pthreads/include/Makefile lib/isc/pthreads/include/isc/Makefile lib/isc/Makefile lib/isc/include/Makefile lib/isc/include/isc/Makefile lib/isc/include/isc/platform.h lib/isc/include/pk11/Makefile lib/isc/include/pkcs11/Makefile lib/isc/netmgr/Makefile lib/isc/tests/Makefile lib/isc/unix/Makefile lib/isc/unix/include/Makefile lib/isc/unix/include/isc/Makefile lib/isc/unix/include/pkcs11/Makefile lib/isccc/Makefile lib/isccc/include/Makefile lib/isccc/include/isccc/Makefile lib/isccc/tests/Makefile lib/isccfg/Makefile lib/isccfg/include/Makefile lib/isccfg/include/isccfg/Makefile lib/isccfg/tests/Makefile lib/ns/Makefile lib/ns/include/Makefile lib/ns/include/ns/Makefile lib/ns/tests/Makefile lib/samples/Makefile lib/samples/Makefile-postinstall unit/unittest.sh fuzz/Makefile"
# #
@@ -24426,6 +24528,7 @@ do
"lib/isc/include/isc/platform.h") CONFIG_FILES="$CONFIG_FILES lib/isc/include/isc/platform.h" ;; "lib/isc/include/isc/platform.h") CONFIG_FILES="$CONFIG_FILES lib/isc/include/isc/platform.h" ;;
"lib/isc/include/pk11/Makefile") CONFIG_FILES="$CONFIG_FILES lib/isc/include/pk11/Makefile" ;; "lib/isc/include/pk11/Makefile") CONFIG_FILES="$CONFIG_FILES lib/isc/include/pk11/Makefile" ;;
"lib/isc/include/pkcs11/Makefile") CONFIG_FILES="$CONFIG_FILES lib/isc/include/pkcs11/Makefile" ;; "lib/isc/include/pkcs11/Makefile") CONFIG_FILES="$CONFIG_FILES lib/isc/include/pkcs11/Makefile" ;;
"lib/isc/netmgr/Makefile") CONFIG_FILES="$CONFIG_FILES lib/isc/netmgr/Makefile" ;;
"lib/isc/tests/Makefile") CONFIG_FILES="$CONFIG_FILES lib/isc/tests/Makefile" ;; "lib/isc/tests/Makefile") CONFIG_FILES="$CONFIG_FILES lib/isc/tests/Makefile" ;;
"lib/isc/unix/Makefile") CONFIG_FILES="$CONFIG_FILES lib/isc/unix/Makefile" ;; "lib/isc/unix/Makefile") CONFIG_FILES="$CONFIG_FILES lib/isc/unix/Makefile" ;;
"lib/isc/unix/include/Makefile") CONFIG_FILES="$CONFIG_FILES lib/isc/unix/include/Makefile" ;; "lib/isc/unix/include/Makefile") CONFIG_FILES="$CONFIG_FILES lib/isc/unix/include/Makefile" ;;
+17
View File
@@ -641,6 +641,9 @@ AC_CHECK_FUNCS([pthread_setaffinity_np cpuset_setaffinity processor_bind sched_s
AC_CHECK_FUNCS([pthread_setname_np pthread_set_name_np]) AC_CHECK_FUNCS([pthread_setname_np pthread_set_name_np])
AC_CHECK_HEADERS([pthread_np.h], [], [], [#include <pthread.h>]) AC_CHECK_HEADERS([pthread_np.h], [], [], [#include <pthread.h>])
# libuv
AC_SEARCH_LIBS([uv_run], [uv], [], AC_MSG_ERROR([The uv library was not found. Please install libuv!]))
# #
# flockfile is usually provided by pthreads # flockfile is usually provided by pthreads
# #
@@ -776,6 +779,19 @@ AC_COMPILE_IFELSE(
AC_MSG_RESULT([yes])], AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])]) [AC_MSG_RESULT([no])])
AC_MSG_CHECKING([for SipHash support])
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([[#include <openssl/evp.h>
#include <openssl/opensslv.h>]],
[[#if OPENSSL_VERSION_NUMBER < 0x10101010L
#error OpenSSL >= 1.1.1a required for working SipHash initialization
#endif
EVP_PKEY *key = EVP_PKEY_new_raw_private_key(
EVP_PKEY_SIPHASH, NULL, NULL, 0);]])],
[AC_DEFINE([HAVE_OPENSSL_SIPHASH], [1], [define if OpenSSL supports SipHash])
AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])])
# #
# Check for OpenSSL SHA-1 support # Check for OpenSSL SHA-1 support
# #
@@ -2810,6 +2826,7 @@ AC_CONFIG_FILES([
lib/isc/include/isc/platform.h lib/isc/include/isc/platform.h
lib/isc/include/pk11/Makefile lib/isc/include/pk11/Makefile
lib/isc/include/pkcs11/Makefile lib/isc/include/pkcs11/Makefile
lib/isc/netmgr/Makefile
lib/isc/tests/Makefile lib/isc/tests/Makefile
lib/isc/unix/Makefile lib/isc/unix/Makefile
lib/isc/unix/include/Makefile lib/isc/unix/include/Makefile
@@ -1297,9 +1297,21 @@ dlz_newversion(const char *zone, void *dbdata, void **versionp) {
* Create new transaction * Create new transaction
*/ */
newtx = (mysql_transaction_t *) newtx = (mysql_transaction_t *)
malloc(sizeof(mysql_transaction_t)); calloc(1, sizeof(mysql_transaction_t));
if (newtx == NULL) {
result = ISC_R_NOMEMORY;
goto cleanup;
}
newtx->zone = strdup(zone); newtx->zone = strdup(zone);
if (newtx->zone == NULL) {
result = ISC_R_NOMEMORY;
goto cleanup;
}
newtx->zone_id = strdup(zone_id); newtx->zone_id = strdup(zone_id);
if (newtx->zone_id == NULL) {
result = ISC_R_NOMEMORY;
goto cleanup;
}
newtx->dbi = get_dbi(state); newtx->dbi = get_dbi(state);
newtx->next = NULL; newtx->next = NULL;
@@ -1329,9 +1341,15 @@ dlz_newversion(const char *zone, void *dbdata, void **versionp) {
*versionp = (void *) newtx; *versionp = (void *) newtx;
} else { } else {
dlz_mutex_unlock(&state->tx_mutex); dlz_mutex_unlock(&state->tx_mutex);
free(newtx->zone); if (newtx != NULL) {
free(newtx->zone_id); if (newtx->zone != NULL) {
free(newtx); free(newtx->zone);
}
if (newtx->zone != NULL) {
free(newtx->zone_id);
}
free(newtx);
}
} }
return (result); return (result);
+1 -12
View File
@@ -8963,18 +8963,7 @@ avoid-v6-udp-ports { 40000; range 50000 60000; };
this has the greatest chance of success on the first try. this has the greatest chance of success on the first try.
</para> </para>
<para> <para>
If the initial response times out, <command>named</command> If the initial query is successful with
will try again with plain DNS, and if that is successful,
it will be taken as evidence that the server does not
support EDNS. After enough failures using EDNS and
successes using plain DNS, <command>named</command>
will default to plain DNS for future communications
with that server. (Periodically, <command>named</command>
will send an EDNS query to see if the situation has
improved.)
</para>
<para>
However, if the initial query is successful with
EDNS advertising a buffer size of 512, then EDNS advertising a buffer size of 512, then
<command>named</command> will advertise progressively <command>named</command> will advertise progressively
larger buffer sizes on successive queries, until larger buffer sizes on successive queries, until
+1 -1
View File
@@ -614,6 +614,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -146,6 +146,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -856,6 +856,6 @@ controls {
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -2840,6 +2840,6 @@ $ORIGIN 0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+2 -29
View File
@@ -6968,18 +6968,7 @@ avoid-v6-udp-ports { 40000; range 50000 60000; };
this has the greatest chance of success on the first try. this has the greatest chance of success on the first try.
</p> </p>
<p> <p>
If the initial response times out, <span class="command"><strong>named</strong></span> If the initial query is successful with
will try again with plain DNS, and if that is successful,
it will be taken as evidence that the server does not
support EDNS. After enough failures using EDNS and
successes using plain DNS, <span class="command"><strong>named</strong></span>
will default to plain DNS for future communications
with that server. (Periodically, <span class="command"><strong>named</strong></span>
will send an EDNS query to see if the situation has
improved.)
</p>
<p>
However, if the initial query is successful with
EDNS advertising a buffer size of 512, then EDNS advertising a buffer size of 512, then
<span class="command"><strong>named</strong></span> will advertise progressively <span class="command"><strong>named</strong></span> will advertise progressively
larger buffer sizes on successive queries, until larger buffer sizes on successive queries, until
@@ -8258,22 +8247,6 @@ example.com CNAME rpz-tcp-only.
but are counted to compute the query per second rate. but are counted to compute the query per second rate.
</p> </p>
<p>
Rate limiters for different name spaces maintain
separate counters: If, for example, there is a
<span class="command"><strong>rate-limit</strong></span> statement for "com" and
another for "example.com", queries matching "example.com"
will not be debited against the rate limiter for "com".
</p>
<p>
If a <span class="command"><strong>rate-limit</strong></span> statement does not specify a
<span class="command"><strong>domain</strong></span>, then it applies to the root domain
(".") and thus affects the entire DNS namespace, except those
portions covered by other <span class="command"><strong>rate-limit</strong></span>
statements.
</p>
<p> <p>
Communities of DNS clients can be given their own parameters or no Communities of DNS clients can be given their own parameters or no
rate limiting by putting rate limiting by putting
@@ -14924,6 +14897,6 @@ HOST-127.EXAMPLE. MX 0 .
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -360,6 +360,6 @@ allow-query { !{ !10/8; any; }; key example; };
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -191,6 +191,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+30 -7
View File
@@ -36,7 +36,7 @@
<div class="toc"> <div class="toc">
<p><b>Table of Contents</b></p> <p><b>Table of Contents</b></p>
<dl class="toc"> <dl class="toc">
<dt><span class="section"><a href="Bv9ARM.ch08.html#id-1.9.2">Release Notes for BIND Version 9.15.3</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch08.html#id-1.9.2">Release Notes for BIND Version 9.15.4</a></span></dt>
<dd><dl> <dd><dl>
<dt><span class="section"><a href="Bv9ARM.ch08.html#relnotes_intro">Introduction</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch08.html#relnotes_intro">Introduction</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch08.html#relnotes_versions">Note on Version Numbering</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch08.html#relnotes_versions">Note on Version Numbering</a></span></dt>
@@ -55,7 +55,7 @@
</div> </div>
<div class="section"> <div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both"> <div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="id-1.9.2"></a>Release Notes for BIND Version 9.15.3</h2></div></div></div> <a name="id-1.9.2"></a>Release Notes for BIND Version 9.15.4</h2></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">
@@ -163,6 +163,15 @@
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="relnotes_features"></a>New Features</h3></div></div></div> <a name="relnotes_features"></a>New Features</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">
<p>
Added a new command line option to <span class="command"><strong>dig</strong></span>:
<span style="color: red">&lt;comand&gt;+[no]unexpected&lt;/comand&gt;</span>. By default, <span class="command"><strong>dig</strong></span>
won't accept a reply from a source other than the one to which
it sent the query. Add the <span class="command"><strong>+unexpected</strong></span> argument
to enable it to process replies from unexpected sources.
</p>
</li>
<li class="listitem"> <li class="listitem">
<p> <p>
The GeoIP2 API from MaxMind is now supported. Geolocation support The GeoIP2 API from MaxMind is now supported. Geolocation support
@@ -236,9 +245,16 @@
</li> </li>
<li class="listitem"> <li class="listitem">
<p> <p>
Statistics channel groups are now toggleable. [GL #1030] Statistics channel groups are now toggleable. [GL #1030]
</p> </p>
</li> </li>
<li class="listitem">
<p>
<span class="command"><strong>dig</strong></span>, <span class="command"><strong>mdig</strong></span> and
<span class="command"><strong>delv</strong></span> can all now take a <span class="command"><strong>+yaml</strong></span>
option to print output in a a detailed YAML format. [RT #1145]
</p>
</li>
</ul></div> </ul></div>
</div> </div>
@@ -328,7 +344,7 @@
A SipHash 2-4 based DNS Cookie (RFC 7873) algorithm has been added and A SipHash 2-4 based DNS Cookie (RFC 7873) algorithm has been added and
made default. Old non-default HMAC-SHA based DNS Cookie algorithms made default. Old non-default HMAC-SHA based DNS Cookie algorithms
have been removed, and only the default AES algorithm is being kept have been removed, and only the default AES algorithm is being kept
for legacy reasons. This changes doesn't have any operational impact for legacy reasons. This change doesn't have any operational impact
in most common scenarios. [GL #605] in most common scenarios. [GL #605]
</p> </p>
<p> <p>
@@ -426,8 +442,8 @@
</li> </li>
<li class="listitem"> <li class="listitem">
<p> <p>
<span class="command"><strong>named-checkconf</strong></span> now correctly reports missing <span class="command"><strong>named-checkconf</strong></span> now correctly reports
<span class="command"><strong>dnstap-output</strong></span> option when a missing <span class="command"><strong>dnstap-output</strong></span> option when
<span class="command"><strong>dnstap</strong></span> is set. [GL #1136] <span class="command"><strong>dnstap</strong></span> is set. [GL #1136]
</p> </p>
</li> </li>
@@ -443,6 +459,13 @@
when run with <span class="command"><strong>+expandaaaa +short</strong></span>. [GL #1152] when run with <span class="command"><strong>+expandaaaa +short</strong></span>. [GL #1152]
</p> </p>
</li> </li>
<li class="listitem">
<p>
When a <span class="command"><strong>response-policy</strong></span> zone expires, ensure
that its policies are removed from the RPZ summary database.
[GL #1146]
</p>
</li>
</ul></div> </ul></div>
</div> </div>
@@ -518,6 +541,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -148,6 +148,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -914,6 +914,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -537,6 +537,6 @@ $ <strong class="userinput"><code>sample-update -a sample-update -k Kxxx.+nnn+mm
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -210,6 +210,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+3 -3
View File
@@ -32,7 +32,7 @@
<div> <div>
<div><h1 class="title"> <div><h1 class="title">
<a name="id-1"></a>BIND 9 Administrator Reference Manual</h1></div> <a name="id-1"></a>BIND 9 Administrator Reference Manual</h1></div>
<div><p class="releaseinfo">BIND Version 9.15.3</p></div> <div><p class="releaseinfo">BIND Version 9.15.4</p></div>
<div><p class="copyright">Copyright © 2000-2019 Internet Systems Consortium, Inc. ("ISC")</p></div> <div><p class="copyright">Copyright © 2000-2019 Internet Systems Consortium, Inc. ("ISC")</p></div>
</div> </div>
<hr> <hr>
@@ -245,7 +245,7 @@
</dl></dd> </dl></dd>
<dt><span class="appendix"><a href="Bv9ARM.ch08.html">A. Release Notes</a></span></dt> <dt><span class="appendix"><a href="Bv9ARM.ch08.html">A. Release Notes</a></span></dt>
<dd><dl> <dd><dl>
<dt><span class="section"><a href="Bv9ARM.ch08.html#id-1.9.2">Release Notes for BIND Version 9.15.3</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch08.html#id-1.9.2">Release Notes for BIND Version 9.15.4</a></span></dt>
<dd><dl> <dd><dl>
<dt><span class="section"><a href="Bv9ARM.ch08.html#relnotes_intro">Introduction</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch08.html#relnotes_intro">Introduction</a></span></dt>
<dt><span class="section"><a href="Bv9ARM.ch08.html#relnotes_versions">Note on Version Numbering</a></span></dt> <dt><span class="section"><a href="Bv9ARM.ch08.html#relnotes_versions">Note on Version Numbering</a></span></dt>
@@ -443,6 +443,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
Binary file not shown.
+1 -1
View File
@@ -90,6 +90,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -220,6 +220,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+7 -1
View File
@@ -566,6 +566,12 @@
in the type's presentation format. in the type's presentation format.
</p> </p>
</dd> </dd>
<dt><span class="term"><code class="option">+[no]yaml</code></span></dt>
<dd>
<p>
Print response data in YAML format.
</p>
</dd>
</dl></div> </dl></div>
<p> <p>
@@ -615,6 +621,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+16 -1
View File
@@ -1018,6 +1018,14 @@
seconds, minutes, hours, days and weeks. Implies +ttlid. seconds, minutes, hours, days and weeks. Implies +ttlid.
</p> </p>
</dd> </dd>
<dt><span class="term"><code class="option">+[no]unexpected</code></span></dt>
<dd>
<p>
Accept [do not accept] answers from unexpected sources. By
default, <span class="command"><strong>dig</strong></span> won't accept a reply from a
source other than the one to which it sent the query.
</p>
</dd>
<dt><span class="term"><code class="option">+[no]unknownformat</code></span></dt> <dt><span class="term"><code class="option">+[no]unknownformat</code></span></dt>
<dd> <dd>
<p> <p>
@@ -1035,6 +1043,13 @@
stands for "virtual circuit". stands for "virtual circuit".
</p> </p>
</dd> </dd>
<dt><span class="term"><code class="option">+[no]yaml</code></span></dt>
<dd>
<p>
Print the responses (and, if <code class="option">+qr</code> is in use,
also the outgoing queries) in a detailed YAML format.
</p>
</dd>
<dt><span class="term"><code class="option">+[no]zflag</code></span></dt> <dt><span class="term"><code class="option">+[no]zflag</code></span></dt>
<dd> <dd>
<p> <p>
@@ -1173,6 +1188,6 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -376,6 +376,6 @@ nsupdate -l
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -156,6 +156,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -270,6 +270,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -341,6 +341,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -250,6 +250,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -498,6 +498,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -555,6 +555,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -405,6 +405,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -171,6 +171,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -349,6 +349,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -707,6 +707,6 @@ db.example.com.signed
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -214,6 +214,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -143,6 +143,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -168,6 +168,6 @@ plugin query "/usr/local/lib/filter-aaaa.so" {
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -366,6 +366,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+7 -1
View File
@@ -351,6 +351,12 @@
stands for "virtual circuit". stands for "virtual circuit".
</p> </p>
</dd> </dd>
<dt><span class="term"><code class="option">+[no]yaml</code></span></dt>
<dd>
<p>
Print the responses in a detailed YAML format.
</p>
</dd>
</dl></div> </dl></div>
<p> <p>
@@ -604,6 +610,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -214,6 +214,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -463,6 +463,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -117,6 +117,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>
+1 -1
View File
@@ -119,6 +119,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.3 (Development Release)</p> <p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.15.4 (Development Release)</p>
</body> </body>
</html> </html>

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