Compare commits

..
Author SHA1 Message Date
Evan Hunt 051a810e4b README formatting 2013-12-11 20:08:48 -08:00
Evan Hunt 0ff6e400ef [v9_6] s/isc__socket_sendtov2/isc_socket_sendtov2/ for win32 2013-12-10 18:32:21 -08:00
Evan Hunt aa7c993ded [v9_6] fix typo 2013-12-10 18:28:53 -08:00
Tinderbox User 33a86c079a regenerate 2013-12-11 01:48:43 +00:00
Evan Hunt 5c009b2f1d [v9_6] prep 9.6-ESV-R11b1 2013-12-10 17:41:37 -08:00
Evan Hunt 263618e847 remove unnecessary echo 2013-12-04 09:55:13 -08:00
Evan Hunt cacc8fc782 reword/reorder configuration summary 2013-12-04 09:51:19 -08:00
Evan Hunt 2470cd0369 [v9_6] dig could miss tcp connections when cleaning up
3679.	[bug]		dig could fail to clean up TCP sockets still
			waiting on connect(). [RT #35074]

(cherry picked from commit fb507315d4)
2013-12-02 13:40:41 -08:00
Mark Andrews a2e6e9033d 3678. [port] Update config.guess and config.sub. [RT #35060]
(cherry picked from commit ae871ebb28)
2013-12-02 10:56:16 +11:00
Mark Andrews db9a2a2291 3677. [bug] 'nsupdate' leaked memory if 'realm' was used multiple
times.  [RT #35073]

(cherry picked from commit 49ae04f6ee)
2013-11-28 06:46:56 +11:00
Tinderbox User 171c9675b0 update copyright notice 2013-11-25 23:45:15 +00:00
Mark Andrews 21a4b2cc75 update 2013-11-26 10:44:30 +11:00
Evan Hunt 21e26d8f65 [v9_6] check hint files in named-checkconf -z
3676.	[bug]		"named-checkconf -z" now checks zones of type
			hint and redirect as well as master. [RT #35046]

(cherry picked from commit d999ca28d4)
(cherry picked from commit 2254826e4c)
(cherry picked from commit 4ed930b4f8)
2013-11-25 13:25:00 -08:00
Mark Andrews 7ba2a7b8a7 3675. [misc] Provide a place for third parties to add version
information for their extensions in the version
                        file by setting the EXTENSIONS variable.

(cherry picked from commit fd63f3110f)
2013-11-22 13:29:45 +11:00
Evan Hunt 15f24bad63 [v9_6] previous commit incomplete
(cherry picked from commit 5255b631b1)
2013-11-18 16:00:32 -08:00
Evan Hunt b10bcfabb8 [v9_6] win32 portability fix
(cherry picked from commit 2b57986603)
2013-11-18 15:48:03 -08:00
Mark Andrews 39ce3f5e5c adjust EDNS query returned status warning message
(cherry picked from commit 0b565f6060)
2013-11-14 22:52:47 +11:00
Mark Andrews 6aedca8783 fix dereference before null check warning
(cherry picked from commit 9800974419)
2013-11-14 12:33:38 +11:00
Tinderbox User b6dc9a1e00 update copyright notice 2013-11-13 23:45:16 +00:00
Tinderbox User e62688fb80 regen v9_6 2013-11-13 01:07:35 +00:00
Mark Andrews dfb88adc7c 3667. [func] dig: add support to keep the TCP socket open between
successive queries (+[no]keepopen).  [RT #34918]

(cherry picked from commit 2048955015)
2013-11-13 11:11:19 +11:00
Tinderbox User a6ba4245fc update copyright notice 2013-11-12 23:45:17 +00:00
Tinderbox User 65047627e2 newcopyrights 2013-11-12 23:30:03 +00:00
Jeremy C. ReedandMark Andrews fc6c1a2c81 Fix misspelling.
Spell out month date while here.

(cherry picked from commit 8012d70ea4)
2013-11-13 09:23:43 +11:00
Mark Andrews 6500789c9c 3670. [bug] Address read after free in server side of
lwres_getrrsetbyname. [RT #29075]

(cherry picked from commit eb5e0b8dec)
2013-11-12 15:00:38 +11:00
Mark Andrews 4d49146505 3669. [port] freebsd: --with-gssapi needs -lhx509. [RT #35001]
(cherry picked from commit b564c8503d4377f6b423fcd67a5ce60798d8123e)
2013-11-12 11:38:57 +11:00
Tinderbox User 0e93df3d13 update copyright notice 2013-11-11 23:45:15 +00:00
Tinderbox User c87d9fdccf newcopyrights 2013-11-11 23:30:05 +00:00
Mark Andrews 88d9b6752e bad collision resolution 2013-11-11 12:02:27 +11:00
Mark Andrews 0239dfa344 3668. [bug] Fix cast in lex.c which could see 0xff treated as eof.
[RT #34993]

(cherry picked from commit 0a47bc90af)
2013-11-11 10:55:46 +11:00
Tinderbox User dc4634ebc7 regen v9_6 2013-10-31 01:07:35 +00:00
Mark Andrews 906c765f9a mention EventViewer
(cherry picked from commit 28343c910e549f2159073ffad6b9f15dc80da72b)
2013-10-31 11:13:25 +11:00
Mark Andrews 6d47d7de8d use smaller buffers
(cherry picked from commit 2502a568e7)
2013-10-26 20:37:04 +11:00
Tinderbox User c0dd9cb1b8 update copyright notice 2013-10-25 23:45:15 +00:00
Tinderbox User 41da997a0c newcopyrights 2013-10-25 23:30:03 +00:00
Mark Andrews be4c5c3810 address memory leak in change #3662, force format matching, attempt to address coverity false positives
(cherry picked from commit 938aea1dc4)
(cherry picked from commit dc44093efc)
2013-10-26 10:11:12 +11:00
Mark Andrews 690e894997 3663. [bug] Address bugs in dns_rdata_fromstruct and
dns_rdata_tostruct for WKS and ISDN types. [RT #34910]
2013-10-25 13:06:38 +11:00
Mark Andrews f1c5e05b7a UPD -> UDP
(cherry picked from commit 11e9195ad1)
2013-10-25 12:59:04 +11:00
Mark Andrews 4733a1d216 %ld.%06g -> %ld.%06d
(cherry picked from commit 7f0e47b3c2)
2013-10-25 12:54:18 +11:00
Mark Andrews 13c15ce5d1 3662. [bug] 'host' could die if a UPD query timed out. [RT #34870]
(cherry picked from commit 6100b17699)
2013-10-25 12:33:01 +11:00
Mark Andrews 51901bce61 missing FCTXTRACE2 macro RT#34914
(cherry picked from commit 0bfc15fe59)
2013-10-21 15:52:44 +11:00
Tinderbox User 344130de7f update copyright notice 2013-10-18 23:45:12 +00:00
Tinderbox User cab7e0d34d newcopyrights 2013-10-18 23:30:03 +00:00
Jeremy C. ReedandMark Andrews 860b5cf3e7 fix typo in warning output
okayed via jabber

(cherry picked from commit d9ff5f9c7a)
2013-10-18 14:41:25 +11:00
Mark Andrews b278aecc9e grammar
(cherry picked from commit 5bb783ce9a)
2013-10-17 07:16:13 +11:00
Tinderbox User 86cb24eb06 regen v9_6 2013-10-14 01:07:29 +00:00
Tinderbox User d0c7132c79 update copyright notice 2013-10-13 23:45:14 +00:00
Tinderbox User c71d60e983 newcopyrights 2013-10-13 23:30:03 +00:00
Tinderbox User 876164c45f regen v9_6 2013-10-13 01:07:30 +00:00
Mark Andrews 44c8b0defc typos
(cherry picked from commit cbadc440b9)
2013-10-13 11:15:20 +11:00
Evan Hunt 4599d2b5d6 [v9_6] link isc-config.sh to bind9-config
3660.	[cleanup]	Changed the name of "isc-config.sh" to "bind9-config".
			[RT #23825]
(cherry picked from commit aacd7daaf7)
(cherry picked from commit cb177b8811)
2013-10-04 09:25:25 -07:00
Mark Andrews b86c2c0e51 3658. [port] linux: Address platform specific compilation issue
when libcap-devel is installed. [RT #34838]

(cherry picked from commit 7433a204d3)
2013-09-26 15:27:53 +10:00
Mark Andrews d4f0b9da4d 3656. [bug] Treat a all zero netmask as invalid when generating
the localnets acl. [RT #34687]

(cherry picked from commit c9ee72cb3a)
2013-09-26 07:41:28 +10:00
Mark Andrews b29c34ec5d 3655. [cleanup] Simplify TCP message processing when requesting a
zone transfer.  [RT #34825]

(cherry picked from commit fb623f9a07)
2013-09-25 09:59:09 +10:00
Mark Andrews 26dcdf0de8 3654. [bug] Address race condition with manual notify requests.
[RT #34806]

(cherry picked from commit 5116f25421)
2013-09-25 09:51:38 +10:00
Mark Andrews 09b7d5191f 3653. [func] Create delegations for all "children" of empty zones
except "forward first". [RT #34826]

(cherry picked from commit 00043fc284)
2013-09-25 09:41:58 +10:00
Tinderbox User 5b1ee81b35 update copyright notice 2013-09-23 23:45:12 +00:00
Tinderbox User a714ae8cd9 newcopyrights 2013-09-23 23:30:04 +00:00
Mark Andrews 339aa73489 silence clang warning
(cherry picked from commit 9084a3e58f)
2013-09-23 13:27:08 +10:00
Tinderbox User 37d9161561 update copyright notice 2013-09-21 23:45:13 +00:00
Tinderbox User 0f54781dbf newcopyrights 2013-09-21 23:30:03 +00:00
Mark Andrews 2b0066dc1a 3651. [tuning] Adjust when a master server is deemed unreachable.
[RT #27075]

(cherry picked from commit 97a2a26cd9)
2013-09-21 17:20:42 +10:00
Mark Andrews bb48d3d9c7 3650. [tuning] Use separate rate limiting queues for refresh and
notify requests. [RT #30589]

(cherry picked from commit c1b8fa6160)
2013-09-21 16:47:21 +10:00
Tinderbox User c0cdf5517d update copyright notice 2013-09-18 23:45:14 +00:00
Tinderbox User c7270666c2 newcopyrights 2013-09-18 23:30:08 +00:00
Mark Andrews c1061e4f80 silence compiler warning
(cherry picked from commit 01b7d52a9f)
2013-09-18 22:38:55 +10:00
Mark Andrews b3c9161400 3645. [protocol] Use case sensitive compression when responding to
queries. [RT #34737]

(cherry picked from commit cb69994ff8)
2013-09-18 17:17:37 +10:00
Mark Andrews 5d091bfe7c use $1 instead of \\1
(cherry picked from commit 3b84724c44)
2013-09-18 11:55:12 +10:00
Mark Andrews 3a93dc9e59 3644. [protocol] Check that EDNS subnet client options are well forme
[RT #34718]

    (cherry picked from commit 3ad8f24ddd)

Conflicts:
	lib/dns/tests/rdata_test.c
2013-09-18 11:50:28 +10:00
Tinderbox User 40d9226217 regen v9_6 2013-09-18 01:07:25 +00:00
Mark Andrews 12b6d39732 tabify CHANGES/CHANGES.SE/EXCLUDED
(cherry picked from commit 1229ebb09b)
2013-09-18 10:36:46 +10:00
Tinderbox User b972eaa32d update copyright notice 2013-09-17 23:45:14 +00:00
Mark Andrews 5829fc62db update 2013-09-18 09:32:54 +10:00
Mark Andrews d7faf343fe Merge branch 'v9_6' of repo.isc.org:/proj/git/prod/bind9 into v9_6 2013-09-17 16:46:27 +10:00
Mark Andrews 81ab934445 3641. [bug] Handle changes to sig-validity-interval settings
better. [RT #34625]
2013-09-17 16:45:56 +10:00
Mark Andrews db56bdab05 3641. [bug] Handle changes to sig-validity-interval settings
better. [RT #34625]
2013-09-17 16:41:40 +10:00
Mark Andrews c5b7770621 remove static functions as they have been backported 2013-09-17 15:22:39 +10:00
Mark Andrews 208d730bbb whitespace 2013-09-17 12:26:26 +10:00
Mark Andrews 498e82b066 3640. [bug] ndots was not being checked when searching. Only
continue searching on NXDOMAIN responses.  Add the
                        ability to specify ndots to nslookup. [RT #34711]

(cherry picked from commit 8afea636ab)
2013-09-17 12:24:04 +10:00
Tinderbox User c9cd8e16d0 update copyright notice 2013-09-16 23:45:11 +00:00
Tinderbox User 1b3eaf3fba newcopyrights 2013-09-16 23:30:03 +00:00
Mark Andrews 7e15f645f4 cleanup missing 2013-09-16 10:19:24 +10:00
Mark Andrews 8864cec8f7 fix whitespace in conf files
(cherry picked from commit e33278a779)
2013-09-16 10:16:54 +10:00
Tinderbox User f25ac175f3 newcopyrights 2013-09-14 23:30:02 +00:00
Mark Andrews 7884295fef silence compiler warnings
(cherry picked from commit a0369bb59f)
2013-09-14 19:35:19 +10:00
Tinderbox User b84b5c2c17 newcopyrights 2013-09-12 23:30:23 +00:00
Evan Hunt e38e023215 [v9_6] update to atf 0.17
3648.	[test]		Updated the ATF test framework to version 0.17.
			[RT #25627]
(cherry picked from commit a747113422)
(cherry picked from commit 72be0a630b)
2013-09-12 16:22:36 -07:00
Tinderbox User 17e856eff2 update copyright notice 2013-09-10 23:45:12 +00:00
Tinderbox User b5cbd22034 newcopyrights 2013-09-10 23:30:02 +00:00
Evan Hunt c894c96142 [v9_6] strdup journal filename
3646.	[bug]		Journal filename string could be set incorrectly,
                        causing garbage in log messages.  [RT #34738]
(cherry picked from commit 18df9e628e)
2013-09-09 22:14:45 -07:00
Tinderbox User 4d2f6583bf update copyright notice 2013-09-09 23:45:12 +00:00
Tinderbox User daf42b912c newcopyrights 2013-09-09 23:30:03 +00:00
Evan Hunt 2bf1f4f1de [v9_6] make sure both tags and branches work with kit.sh
(cherry picked from commit ab571c1f5b)
2013-09-09 10:35:15 -07:00
Evan Hunt d1fbf63986 [v9_6] avoid duplication when looking up the shorthash
(cherry picked from commit d899311194)
2013-09-09 09:27:20 -07:00
Evan Hunt d61392dc24 [v9_6] prep 9.6-ESV-R10 2013-09-04 22:40:13 -07:00
Tinderbox User 9b2eb2697d regenerate 2013-09-05 05:18:07 +00:00
Mark Andrews 644148ca94 restore release marker 2013-09-04 23:48:33 +10:00
Curtis Blackburn cf9d6b541f 3638. [cleanup] Add the ability to handle ENOPROTOOPT in case it is
encountered. [RT #34668]
2013-08-28 16:01:02 -05:00
Tinderbox User e81d1c4365 update copyright notice 2013-08-19 23:45:12 +00:00
Tinderbox User 763ed17442 newcopyrights 2013-08-19 23:30:04 +00:00
Mark Andrews 78e1b0e742 remove dead code 2013-08-19 12:54:54 +10:00
Mark Andrews 91d9a51e44 9.6-ESV-R10rc2 2013-08-19 12:03:21 +10:00
Mark Andrews aae05daa5d 3636. [bug] Automatic empty zones now behave better with
forward only "zones" beneath them. [RT #34583]

(cherry picked from commit 997c2c5116)
2013-08-19 10:22:08 +10:00
Tinderbox User ce3c4bd362 update copyright notice 2013-08-16 23:45:12 +00:00
Tinderbox User ef505e6148 newcopyrights 2013-08-16 23:30:04 +00:00
Mark Andrews 6e5bc5165e 3636. [bug] Automatic empty zones now behave better with
forward only "zones" beneath them. [RT #34583]

(cherry picked from commit e548e07a9a)
2013-08-16 15:11:17 +10:00
Tinderbox User 75ae1f59bb update copyright notice 2013-08-15 23:45:13 +00:00
Tinderbox User b46a6d9b2f newcopyrights 2013-08-15 23:30:02 +00:00
Mark Andrews e2e00b772e 3634. [func] Report build-id in rndc status. Report build-id
when building from a git repository. [RT #20422]

(cherry picked from commit 0e1dfb8ff5)
2013-08-15 13:20:23 +10:00
Mark Andrews 7432649e34 3633. [cleanup] Refactor OPT processing in named to make it easier
to support new EDNS options. [RT #34414]

(cherry picked from commit 8e091f3d3e)
2013-08-15 12:15:42 +10:00
Evan Hunt 6f9e900823 [v9_6] change 3630 incomplete--needed to check fromtext too
(cherry picked from commit 5f630b9417)
2013-08-14 17:25:07 -07:00
Mark Andrews 9ab6f8ac36 3631. [bug] Remove spurious warning about missing signatures when
qtype is SIG. [RT #34600]

(cherry picked from commit 06ace051e7)
2013-08-15 08:06:48 +10:00
Tinderbox User 688b375048 update copyright notice 2013-08-13 23:45:12 +00:00
Tinderbox User 1867547966 newcopyrights 2013-08-13 23:30:56 +00:00
Evan Hunt ad74027862 [v9_6] fix md5 key id computation
3630.	[bug]		Ensure correct ID computation for MD5 keys. [RT #33033]
(cherry picked from commit 5d4343a998)
(cherry picked from commit 70858bf974)
2013-08-13 16:23:51 -07:00
Tinderbox User de0504d7af update copyright notice 2013-08-07 23:45:12 +00:00
Tinderbox User f658f6a219 newcopyrights 2013-08-07 23:30:03 +00:00
Mark Andrews 3aae62c938 3625. [bug] Don't send notify messages to machines outside of the
test setup.

(cherry picked from commit f45f654185)
2013-08-07 15:52:53 +10:00
Curtis Blackburn 2fb2f90065 [v9_6] corrected a typo in the configure summary [RT #34448] 2013-07-31 15:12:57 -05:00
Mark Andrews 630424f3bc add CVE reference
(cherry picked from commit b0bd5a3f73)
2013-07-30 23:33:05 +10:00
Mark Andrews a38ef1cac6 add comment
(cherry picked from commit f45818b82a)
2013-07-26 10:26:29 +10:00
Jeremy C. Reed d5de380a7c Typo in tag.
Reported by SUN Guonian.
2013-07-15 21:50:42 -05:00
Mark Andrews 166b961979 9.6-ESV-R10rc1 2013-07-15 17:28:54 +10:00
Evan Hunt 10bf117b92 [v9_6] add summary details
(cherry picked from commit b46f253ed783bb25fe99d147f40aeffb75237704)
(cherry picked from commit 55564db697)
(cherry picked from commit 4ea6393223)
2013-07-13 15:18:54 -07:00
Tinderbox User c7c06bd691 update copyright notice 2013-07-11 23:45:12 +00:00
Tinderbox User 00cbc03bef newcopyrights 2013-07-11 23:30:03 +00:00
Evan Hunt 3c54676758 [v9_6] add configure summary
3615.	[cleanup]	"configure" now finishes by printing a summary
			of optional BIND features and whether they are
			active or inactive. ("configure --enable-full-report"
			increases the verbosity of the summary.) [RT #31777]
(cherry picked from commit 71697fd082)
(cherry picked from commit dc4ab3bf62)
(cherry picked from commit 6e1f8f3c4c)
2013-07-10 21:57:46 -07:00
Evan Hunt a80f124e49 [v9_6] portability fix
3614.	[port]		Check for <linux/types.h>. [RT #34162]
(cherry picked from commit c174d5c13c)
(cherry picked from commit e57ea0e52f)
(cherry picked from commit 862f188804)
2013-07-10 20:46:26 -07:00
Evan Hunt 17078469da [v9_6] silence warning 2013-07-10 09:16:26 -07:00
Tinderbox User 1c210d4957 update copyright notice 2013-07-09 23:45:11 +00:00
Tinderbox User 2901e56bed newcopyrights 2013-07-09 23:30:07 +00:00
Evan Hunt 8143baa1c5 [v9_6] added isc_safe_memcmp()
3611.       [bug]           Improved resistance to a theoretical authentication
                            attack based on differential timing.  [RT #33939]
(cherry picked from commit 5b7abbef51)
(cherry picked from commit a66c88dd26)
(cherry picked from commit 547ffae91c)
2013-07-09 14:18:56 -07:00
Mark Andrews 0c55ac9cea copy CHANGES.SE if it exists
(cherry picked from commit 270506a2ce)
2013-07-04 12:28:18 +10:00
Tinderbox User 2d80536643 newcopyrights 2013-07-03 23:30:04 +00:00
Evan Hunt 07de450857 [v9_6] fix todos bug 2013-07-03 15:58:19 -07:00
Evan Hunt 5da8799418 [v9_6] added todos.pl for win32 build
3608.	[port]		win32: added todos.pl script to ensure all text files
			the win32 build depends on are converted to DOS
			newline format. [RT #22067]
(cherry picked from commit 1da46be572)
2013-07-03 11:47:21 -07:00
Evan Hunt bfb778470a [v9_6] fixed win32 buildsetup glitch 2013-07-01 20:15:19 -07:00
Tinderbox User 5fe566404a [v9_6] regenerate 2013-07-01 18:29:55 +00:00
Evan Hunt af353b88fe [v9_6] prep 9.6-ESV-R10b1 2013-07-01 10:25:57 -07:00
Tinderbox User 6c4f850040 update copyright notice 2013-06-26 23:45:10 +00:00
Tinderbox User 3b5e12f336 newcopyrights 2013-06-26 23:30:02 +00:00
Evan Hunt 90b24241b2 [v9_6] win32 fixes
3605.	[port]		win32: Addressed several compatibility issues
			with newer versions of Visual Studio. [RT #33916]

(cherry picked from commit f42c0dcca8)
(cherry picked from commit bd96797412)
(cherry picked from commit 6fe26a1b24)

Squashed commit of the following:

commit 4127af15f85da90cf2bd3a0c5a558daae89e833a
Author: Francis Dupont <fdupont@isc.org>
Date:   Tue Jun 25 22:41:53 2013 +0200

    make the last change to be text

commit 21ef4891b9ee3e3aefb45d4c80d5cb7ec78f264f
Author: Curtis Blackburn <ckb@isc.org>
Date:   Tue Jun 25 12:35:08 2013 -0500

    [rt33916] re-worded for easier reading

commit 83828e47e62fea4070441e645ba8fed338255ceb
Author: Francis Dupont <fdupont@isc.org>
Date:   Mon Jun 24 16:08:11 2013 +0200

    introduce a VCRedistPath env var

commit 0337f2554f168993a65945e78c2879e9bfca5293
Author: Francis Dupont <fdupont@isc.org>
Date:   Sun Jun 23 01:23:26 2013 +0200

    _adjust_fdiv for VS < 2010

commit 375fdd5c06be276b0ff0ad589c0e22b809339fe9
Author: Francis Dupont <fdupont@isc.org>
Date:   Thu Jun 20 16:27:04 2013 +0200

    move to MSVC v1600 as it still breaks on VS 2010

commit bfcaf72071e9d8df1d0ce0c5f05b69acd51bf698
Author: Francis Dupont <fdupont@isc.org>
Date:   Thu Jun 20 15:57:35 2013 +0200

    WIN32: avoid addrinfo redef

commit 18504c3e50b11e66a0b573c7cb3d61094bfa5b52
Author: Francis Dupont <fdupont@isc.org>
Date:   Thu Jun 20 15:54:38 2013 +0200

    WIN32: fseek/ftell

commit f9a4fdccc5ab1c74c64412fb76da7dfd161787b2
Author: Francis Dupont <fdupont@isc.org>
Date:   Thu Jun 20 15:13:01 2013 +0200

    fix WIN32 error redefs in net.h (isc ad lwres libs)
2013-06-26 14:46:17 -07:00
Tinderbox User 9c1639ead8 update copyright notice 2013-06-25 23:46:08 +00:00
Tinderbox User 2840ff2dd9 newcopyrights 2013-06-25 23:30:02 +00:00
Mark Andrews f5407d206a 3603. [bug] Install <isc/stat.h>. [RT #33956] 2013-06-25 23:59:57 +10:00
Evan Hunt 0b1e7dff95 [v9_6] Merge branch 'v9_6' of ssh://repo/proj/git/prod/bind9 into v9_6 2013-06-19 17:14:39 -07:00
Evan Hunt 6d585912dc [v9_6] added change note for previous commit
3600.	[cleanup]	dig: Fixed a typo in the warning output when receiving
			an oversized response. [RT #33910]
2013-06-19 17:13:21 -07:00
Tinderbox User db1f35dfe8 update copyright notice 2013-06-19 23:45:14 +00:00
Tinderbox User e6d191a70c newcopyrights 2013-06-19 23:30:02 +00:00
Evan Hunt 874bdcca60 [v9_6] typo in dig
(cherry picked from commit 31d95f1095)
2013-06-19 15:21:48 -07:00
Evan Hunt 6f8bc655a4 [v9_6] check for physical equivalence in names
3599.	[tuning]	Check for pointer equivalence in name comparisons.
			[RT #18125]
(cherry picked from commit 7c2f548141)
(cherry picked from commit 9c971268d4)
2013-06-18 18:15:42 -07:00
Tinderbox User f212c720b2 newcopyrights 2013-06-13 23:30:02 +00:00
Mark Andrews 0cfac3b6a2 3594. [maint] Update config.guess and config.sub. [RT #33816]
(cherry picked from commit beb12aad6b)
2013-06-13 10:08:06 +10:00
Mark Andrews 67a3d018bd handle realloc failure [RT #32105]
(cherry picked from commit 0a6bfbc939)
2013-06-11 16:04:46 +10:00
Tinderbox User e209965393 regen v9_6 2013-06-11 01:06:32 +00:00
Tinderbox User c065d7e235 update copyright notice 2013-06-10 23:45:13 +00:00
Tinderbox User a48f76c95e newcopyrights 2013-06-10 23:30:02 +00:00
Evan Hunt e90d966657 [v9_6] move rndc command documentation to "man rndc"
3592.	[doc]		Moved documentation of rndc command options to the
			rndc man page. [RT #33506]
(cherry picked from commit 1b2a4ce2b1)
(cherry picked from commit a7daffaf4e)
(cherry picked from commit 8d1ca6ef8b)
2013-06-10 14:56:05 -07:00
Tinderbox User e30629e0f1 update copyright notice 2013-06-07 23:45:14 +00:00
Tinderbox User 57011672d8 newcopyrights 2013-06-07 23:30:02 +00:00
Evan Hunt 7a3908784c [v9_6] fix memory leak in sigchase
3588.	[bug]		dig: addressed a memory leak in the sigchase code
			that could cause a shutdown crash.  [RT #33733]
(cherry picked from commit bf0441a339)
2013-06-07 11:16:36 -07:00
Tinderbox User 806c07338d update copyright notice 2013-06-06 23:45:13 +00:00
Tinderbox User 33dacc1073 newcopyrights 2013-06-06 23:30:02 +00:00
Evan Hunt f275a6891b [v9_6] cleanup merge error 2013-06-05 21:07:45 -07:00
Mark Andrews 4570929cfd 3587. [func] 'named -g' now checks the logging configuration but
does not use it. [RT #33473]
(cherry picked from commit 8144dc702b)
2013-06-06 11:10:09 +10:00
Mark Andrews 6232249e0c 3586. [buf] Handle errors in xmlDocDumpFormatMemoryEnc. [RT #33706]
(cherry picked from commit 7ee225cf90)
2013-06-06 11:01:51 +10:00
Tinderbox User e019b0ea9b update copyright notice 2013-06-04 23:45:14 +00:00
Tinderbox User 07aacad8e6 newcopyrights 2013-06-04 23:30:03 +00:00
Evan Hunt 8c6478be65 [v9_6] assertion failure in resolver.c
3584.	[security]	Caching data from an incompletely signed zone could
			trigger an assertion failure in resolver.c [RT #33690]
(cherry picked from commit 276457f7a3)
2013-06-04 11:23:39 -07:00
Mark Andrews 145229b4a9 3583. [bug] Address memory leak in GSS-API processing [RT #33574]
(cherry picked from commit 2347c72129)
2013-06-04 12:03:34 +10:00
Mark Andrews f4d268083c update 2013-06-04 11:40:26 +10:00
Mark Andrews 1f1e984852 redo: 3576. [bug] Address a shutdown race when validating. [RT #33573] 2013-06-04 11:24:46 +10:00
Tinderbox User 8af094afaa regen v9_6 2013-06-04 01:07:40 +00:00
Curtis Blackburn 130849b80a 3581. [bug] Changed the tcp-listen-queue default to 10. [RT #33029] 2013-06-03 14:03:17 -05:00
Evan Hunt b9cd7aabac [v9_6] possible race in acache.c
3580.	[bug]		Addressed a possible race in acache.c [RT #33602]
(cherry picked from commit 5183f9d9da)
2013-05-31 17:32:09 -07:00
Tinderbox User d69f84e37e update copyright notice 2013-05-30 23:45:14 +00:00
Tinderbox User 48d19b5ef7 newcopyrights 2013-05-30 23:30:02 +00:00
Mark Andrews 1a2410c831 update 2013-05-30 12:44:10 +10:00
Mark Andrews f0f7f94c3a add c_flag 2013-05-30 11:42:09 +10:00
Mark Andrews df6009d6a9 3578. [bug] 'rndc -c file' now fails if 'file' does not exist.
[RT #33571]
(cherry picked from commit 17a00ff54c)
2013-05-30 11:11:32 +10:00
Tinderbox User fc8743de34 regen v9_6 2013-05-30 01:07:44 +00:00
Tinderbox User c07e71fdaf newcopyrights 2013-05-29 23:30:11 +00:00
Mark Andrews e13c57d8ad 3577. [bug] Handle zero TTL values better. [RT #33411]
(cherry picked from commit 5f238c3c64)
2013-05-29 18:14:32 +10:00
Mark Andrews ca1c779211 3576. [bug] Address a shutdown race when validating. [RT #33573]
(cherry picked from commit 2cd3c8856c)
2013-05-29 18:05:52 +10:00
Mark Andrews 7166d8c8ce 3574. [doc] The 'hostname' keyword was missing from server-id
description in the named.conf man page. [RT #33476]
2013-05-29 15:53:48 +10:00
Mark Andrews 8dfe8cb671 add description 2013-05-17 14:13:37 +10:00
Tinderbox User e88e15862f 9.6-ESV-R9 2013-05-17 00:49:04 +00:00
Mark Andrews 42f53742d5 9.6-ESV-R9 2013-05-17 10:40:15 +10:00
Tinderbox User 9aa2e9be2d regen v9_6 2013-05-16 01:07:49 +00:00
Tinderbox User 4ccca742e5 update copyright notice 2013-05-15 23:45:12 +00:00
Tinderbox User 087f538cd4 newcopyrights 2013-05-15 23:30:02 +00:00
Evan Hunt 124330f90c [v9_6] fix typo 2013-05-14 19:42:56 -07:00
Tinderbox User 45ed2ddf7a newcopyrights 2013-05-09 23:30:01 +00:00
Mark Andrews 3952d289eb update 2013-05-09 11:01:32 +10:00
Mark Andrews bede97dffb add gen.dSYM 2013-05-09 10:55:52 +10:00
Evan Hunt d8ff87734c [v9_6] add product description
3568.	[cleanup]	Add a product description line to the version file,
			to be reported by named -v/-V. [RT #33366]
(cherry picked from commit af9f195c9e)
2013-05-03 15:25:33 -07:00
Evan Hunt 2a193947d5 [v9_6] silence ccc-analyzer
3567.	[bug]		Silence clang static analyzer warnings. [RT #33365]
2013-05-03 14:29:09 -07:00
Tinderbox User ce6a3c3171 newcopyrights 2013-05-02 23:30:01 +00:00
Evan Hunt 6485a82866 [v9_6] quote table names
3563.	[contrib]	zone2sqlite failed with some table names. [RT #33375]
(cherry picked from commit 96a1161785)
(cherry picked from commit ed0d1d96c1)
2013-05-02 07:39:59 -07:00
Tinderbox User b334e3ea5d regen v9_6 2013-05-02 01:07:39 +00:00
Mark Andrews b7185a96f3 add records starting with "v=spf1" 2013-05-01 15:31:25 +10:00
Mark Andrews 13054b76f3 3561. [bug] dig: issue a warning if an EDNS query returns FORMERR
or NOTIMP.  Adjust usage message. [RT #33363]
(cherry picked from commit 93aba6dcec)
2013-05-01 14:59:42 +10:00
Evan Hunt 355033bc8e [v9_6] correct change number
(cherry picked from commit 23b599264f)
(cherry picked from commit 6193977bfc)
2013-04-30 11:27:01 -07:00
Mark Andrews b562b9d2c0 add dns_message_buildopt 2013-04-30 17:46:13 +10:00
Tinderbox User a32b34e372 update copyright notice 2013-04-30 06:38:18 +00:00
Tinderbox User a6c8464c0a newcopyrights 2013-04-30 06:37:46 +00:00
Mark Andrews a5ece61a01 3360. [bug] isc-config.sh did not honour includedir and libdir
when set via configure. [RT #33345]
2013-04-30 16:35:14 +10:00
Mark Andrews 4d895af83f 9.6-ESV-R9rc2 2013-04-30 16:03:08 +10:00
Tinderbox User 7bc2657a2f update copyright notice 2013-04-30 04:50:54 +00:00
Tinderbox User 5db7c351f7 newcopyrights 2013-04-30 04:49:20 +00:00
Tinderbox User 4788c13306 9.6-ESV-R9rc2 2013-04-30 04:39:35 +00:00
Mark Andrews 5de139c4b6 9.6-ESV-R9rc2 2013-04-30 14:31:11 +10:00
Tinderbox User 302ec51e8b regen v9_6 2013-04-30 04:25:50 +00:00
Mark Andrews 826d76f106 lib/irs is not part of 9.6 2013-04-30 14:09:31 +10:00
Mark Andrews 87ac4aed0a 3559. [func] Check that both forms of Sender Policy Framework
records exist or do not exist. [RT #33355]
(cherry picked from commit 26bb3b7a67)
2013-04-30 14:06:50 +10:00
Tinderbox User f9443063a6 update copyright notice 2013-04-29 23:45:12 +00:00
Tinderbox User a858ff7377 newcopyrights 2013-04-29 23:30:02 +00:00
Mark Andrews de63c98904 silence signed/unsigned warning 2013-04-29 16:58:51 +10:00
Mark Andrews 55d55663b8 add #ifdef DLZ 2013-04-29 16:50:15 +10:00
Mark Andrews 8082249ced 3558. [bug] IXFR of a DLZ stored zone was broken. [RT #33331]
(cherry picked from commit 9a785712f1)
2013-04-29 15:55:53 +10:00
Tinderbox User 9b74f91ae1 update copyright notice 2013-04-28 23:45:10 +00:00
Tinderbox User 3180fca874 newcopyrights 2013-04-28 23:30:02 +00:00
Mark Andrews beb6182ccd fix hip copyrights 2013-04-28 10:47:15 +10:00
Evan Hunt ce727499aa [v9_6] d.root-servers.net AAAA
3556.	[maint]		Added AAAA for D.ROOT-SERVERS.NET.
(cherry picked from commit 73ad83bcf0)
2013-04-27 16:43:43 -07:00
Tinderbox User e7c19ac871 update copyright notice 2013-04-26 23:45:14 +00:00
Tinderbox User 7f105aa581 newcopyrights 2013-04-26 23:30:04 +00:00
Mark Andrews a2e22141db 3007. [bug] Named failed to preserve the case of domain names in
rdata which is no compressable when writing master
                        files.  [RT #22863]
2013-04-26 21:52:32 +10:00
Mark Andrews 71a076b64c 2565. [func] Add support for HIP record. Includes new functions
dns_rdata_hip_first(), dns_rdata_hip_next()
                        and dns_rdata_hip_current().  [RT #19384]

Conflicts:
	CHANGES
	bin/tests/system/genzone.sh
2013-04-26 21:48:43 +10:00
Mark Andrews 23f3993502 3056. [func] Added support for URI resource record. [RT #23386] 2013-04-26 13:36:00 +10:00
Mark Andrews 8145bfee7e 3056. [func] Added support for URI resource record. [RT #23386] 2013-04-26 13:34:22 +10:00
Evan Hunt 52e6093cb1 [v9_6] address two more possible acache asserts
3555.	[bug]		Address theoretical race conditions in acache.c
			(change #3553 was incomplete). [RT #33252]
(cherry picked from commit ff5ac6d421)
(cherry picked from commit 62ebf6bbef)
2013-04-25 18:04:05 -07:00
Evan Hunt f88318ce7c [v9_6] double free caused assertion in acache
3553.	[bug]		Address suspected double free in acache. [RT #33252]
(cherry picked from commit 11b04b18f8ecb7c0119a7a6b6bbf8f5bad789c9a)
(cherry picked from commit 3673e8535584457ec1a79b6a30ddf4d182b0f921)
2013-04-25 10:41:52 -07:00
Tinderbox User 26ac2106a3 update copyright notice 2013-04-19 23:45:11 +00:00
Tinderbox User 427f5fc859 newcopyrights 2013-04-19 23:30:02 +00:00
Mark Andrews f281f86b36 3552. [bug] Wrong getopt option string for 'nsupdate -r'.
[RT# 33280]
2013-04-19 23:50:25 +10:00
Tinderbox User 470729289f update copyright notice 2013-04-11 23:45:11 +00:00
Tinderbox User a5023c4d80 newcopyrights 2013-04-11 23:30:02 +00:00
Mark Andrews 50996ad2cd silence coverity warnings
(cherry picked from commit 45b727f651)
(cherry picked from commit 53f675154c)
2013-04-11 17:27:59 +10:00
Tinderbox User 99aff30637 update copyright notice 2013-04-09 23:45:10 +00:00
Mark Andrews 44871998e8 update 2013-04-09 13:13:30 +10:00
Tinderbox User 7bbc323137 regen v9_6 2013-04-09 01:07:27 +00:00
Mark Andrews 1012927122 silence signed/unsigned compare warning 2013-04-09 06:30:44 +10:00
Evan Hunt 8a8948268f [v9_6] add request-nsid doc
3549.	[doc]		Documentation for "request-nsid" was missing.
			[RT #33153]
(cherry picked from commit c4a453fa5c)
2013-04-08 10:27:38 -07:00
Mark Andrews d2daecd408 3548. [bug] The NSID request code in resolver.c was broken
resulting in invalid EDNS options being sent.
                        [RT #33153]
(cherry picked from commit 4adf97c32f)

Conflicts:
	lib/dns/include/dns/message.h
	lib/dns/message.c
(cherry picked from commit 6227ab7137)
2013-04-08 16:46:11 +10:00
Mark Andrews 234265bc55 3547. [bug] Some malformed unknown rdata records were not properly
detected and rejected. [RT #33129]
(cherry picked from commit 1cc4695f0d)
2013-04-08 09:59:00 +10:00
Tinderbox User 4af84ed4ca update copyright notice 2013-04-04 23:45:10 +00:00
Tinderbox User da17b5c16b newcopyrights 2013-04-04 23:30:06 +00:00
Mark Andrews 908a5408f3 moved 9.6-ESV-R9rc1 2013-04-05 09:24:10 +11:00
Mark Andrews 792bf32389 3546. [func] Add EUI48 and EUI64 types. [RT #33082]
(cherry picked from commit 3a6d62c59f)
2013-04-05 09:09:50 +11:00
Tinderbox User a3cbc53ef9 update copyright notice 2013-04-03 23:45:12 +00:00
Tinderbox User e87824c038 newcopyrights 2013-04-03 23:30:02 +00:00
Mark Andrews 220efa5bb5 add SAMPLE to the list of varables to be exported
(cherry picked from commit cf3e838fd3)
2013-04-04 07:26:30 +11:00
Evan Hunt 3f9c93d180 [v9_6] grammar fix 2013-04-03 08:39:10 -07:00
Mark Andrews 71295785e7 typo 2013-04-03 17:49:43 +11:00
Mark Andrews a3283eed86 3543. [bug] Update socket stucture before attaching to socket
manager after accert. [RT #33084]
(cherry picked from commit a8572209bc)
2013-04-03 17:47:51 +11:00
Mark Andrews 0e33a68292 add insist to try to prevent coverity false positive 2013-04-03 17:37:59 +11:00
Mark Andrews 1cf15d5c8c 3542. [bug] masterformat system test was broken. [RT #33086] 2013-04-03 17:34:10 +11:00
Mark Andrews e9a90045d6 3540. [bug] libt_api: t_info and t_assert were not thread safe. 2013-04-03 17:19:20 +11:00
Evan Hunt ab4c8657ea [v9_6] prep 9.6-ESV-R9rc1 2013-04-01 22:36:14 -07:00
Evan Hunt 13dfd85853 [v9_6] fix isc_time_formathttptmestamp() on win32
3539.	[port]		win32: timestamp format didn't match other platforms.
(cherry picked from commit 99bf6a57d9)
2013-04-01 22:30:44 -07:00
Tinderbox User 542afbfead newcopyrights 2013-03-27 23:30:02 +00:00
Evan Hunt 4b84eab1c7 [v9_6] handle multi-word product names better
(cherry picked from commit 0ebd8d9ea3)
2013-03-26 20:40:07 -07:00
Evan Hunt 566a5cff19 [v9_6] fix changes note, update api ranges 2013-03-26 19:08:19 -07:00
Tinderbox User 925d5a6a65 update copyright notice 2013-03-26 23:45:10 +00:00
Tinderbox User db55946ac7 newcopyrights 2013-03-26 23:30:02 +00:00
Curtis Blackburn 47a509c0f4 [v9_6]
3538.	[test]	Running "make test" now requires loopback interfaces to be
	set up. [RT #32452]
2013-03-26 14:50:26 -05:00
Tinderbox User 858b15380a update copyright notice 2013-03-22 23:45:12 +00:00
Tinderbox User 65e4ac073b newcopyrights 2013-03-22 23:30:03 +00:00
Mark Andrews 5284fd1ce4 3535. [bug] Minor win32 cleanups. [RT #32962] 2013-03-22 22:24:57 +11:00
Evan Hunt a72c1e02f8 [v9_6] zone parsing broken with embedded null
3534.	[bug]		Extra text after an embedded NULL was ignored when
			parsing zone files. [RT #32699]
(cherry picked from commit 4bf686cf5d)
2013-03-21 19:59:14 -07:00
Tinderbox User 12c57326d4 update copyright notice 2013-03-21 23:45:11 +00:00
Tinderbox User 35ae2e4ee7 newcopyrights 2013-03-21 23:30:01 +00:00
Mark Andrews f7d6cd0feb 3533. [contrib] query-loc-0.4.0: memory leaks. [RT #32960]
3532.   [contrib]       zkt: fixed buffer overrun, resource leaks. [RT #32960]
2013-03-22 09:57:40 +11:00
Mark Andrews 60c82248ad 3531. [bug] win32: A uninitialized value could be returned on out
of memory. [RT #32960]
2013-03-22 09:23:31 +11:00
Evan Hunt 680ca59c77 [v9_6] use reconfig, not kill/restart, in logfileconfig test 2013-03-20 19:49:17 -07:00
Evan Hunt 99c70387a3 [v9_6] improvements to queryperf
3530.	[contrib]	Better RTT tracking in queryperf. [RT #30128]
(cherry picked from commit 384fef0034)
2013-03-20 19:16:15 -07:00
Tinderbox User 3bc48a4e73 newcopyrights 2013-03-20 23:30:03 +00:00
Mark Andrews 7e88d0af75 add files generated by configure 2013-03-21 10:26:02 +11:00
Tinderbox User 3e61bed773 update copyright notice 2013-03-16 23:45:08 +00:00
Tinderbox User 62c7b520fc newcopyrights 2013-03-16 23:30:02 +00:00
Mark Andrews 1ffc86cf6f update 2013-03-16 10:57:47 +11:00
Evan Hunt 5df9c92625 [v9_6] make dst test work outside srcdir
3526.	[cleanup]	Set up dependencies for unit tests correctly during
			build. [RT #32803]
(cherry picked from commit 741ebf1004)
(cherry picked from commit 5021f4df52)
(cherry picked from commit 518a373980)
2013-03-15 07:50:59 -07:00
Mark Andrews 1479d6920d loop waiting for named.pid to be written 2013-03-15 11:23:18 +11:00
Tinderbox User 0eaea361af update copyright notice 2013-03-14 23:45:11 +00:00
Tinderbox User bbbd0b04e3 newcopyrights 2013-03-14 23:30:01 +00:00
Tinderbox User f27d3a8a83 regen v9_6 2013-03-14 01:07:16 +00:00
Tinderbox User 80dafcd1f7 update copyright notice 2013-03-08 23:45:10 +00:00
Tinderbox User 76456c3f6a newcopyrights 2013-03-08 23:30:02 +00:00
Mark Andrews b1cd4d7852 wait for upstream transfer to complete 2013-03-08 17:16:51 +11:00
Mark Andrews b564068b37 3520. [bug] 'mctx' was not being referenced counted in some places
where it should have been.  [RT #32794]
(cherry picked from commit 3a0da183bb)
2013-03-08 14:51:09 +11:00
Tinderbox User 6b46223bde update copyright notice 2013-03-07 23:45:09 +00:00
Tinderbox User 10d3ac0b18 newcopyrights 2013-03-07 23:30:02 +00:00
Mark Andrews b0f3042e37 add PRODUCT to version.h; handle empty PATCHVER 2013-03-07 15:42:06 +11:00
Tinderbox User c4bf484fdf newcopyrights 2013-03-07 02:48:31 +00:00
Tinderbox User f7f1907186 9.6-ESV-R9b2 2013-03-07 02:23:12 +00:00
Mark Andrews 0c5b21f8d2 9.6-ESV-R9b2 2013-03-07 13:12:18 +11:00
Tinderbox User b8a04649f1 update copyright notice 2013-03-06 23:46:06 +00:00
Tinderbox User 4a4ac126a7 newcopyrights 2013-03-06 23:30:02 +00:00
Mark Andrews b8cd20fa3c 3517. [bug] Reorder destruction to avoid shutdown race. [RT #32777] 2013-03-07 07:20:44 +11:00
Mark Andrews cbea577f2a 3515. [port] '%T' is not portable in strftime(). [RT #32763]
(cherry picked from commit 550c92405f)
2013-03-06 15:36:15 +11:00
Tinderbox User 6e64182fec update copyright notice 2013-03-05 23:45:13 +00:00
Tinderbox User 2e4be4d888 newcopyrights 2013-03-05 23:30:02 +00:00
Mark Andrews bc0ecfe8f3 check that the lwresd server has started before querying it
(cherry picked from commit 661f1197a200bdd3d2411e9b02a46b93fb1fb083)
2013-03-05 17:24:57 +11:00
Evan Hunt 801cf525ab [v9_6] need to quote PRODUCT
(cherry picked from commit f107fe7fc9)
2013-03-02 00:17:19 -08:00
Tinderbox User 2120ac5e5c update copyright notice 2013-03-01 23:45:13 +00:00
Tinderbox User 6a42935e90 newcopyrights 2013-03-01 23:30:03 +00:00
Curtis Blackburn 90cc42d025 [v9_6]3509. [cleanup] Added a product line to version file to allow for
easy naming of different products (BIND
                        vs BIND ESV, for example). [RT #32755]
(cherry picked from commit 53a4e18582)
2013-03-01 16:31:37 -06:00
Evan Hunt 5a6afe688d [v9_6] add changes note for 32338 2013-02-28 13:53:08 -08:00
Tinderbox User 6bcf6c9e47 regen v9_6 2013-02-28 01:07:14 +00:00
Evan Hunt 80f14644b3 [v9_6] clarify size_spec in ARM
3503.	[doc]		Clarify size_spec syntax. [RT #32449]
(cherry picked from commit de1223830f)
(cherry picked from commit 70351d6e18)
(cherry picked from commit 61a0bb0f4b)
2013-02-27 14:41:09 -08:00
Tinderbox User 7ca530711c regen v9_6 2013-02-27 01:11:55 +00:00
Tinderbox User 889497d7a8 update copyright notice 2013-02-26 23:45:14 +00:00
Tinderbox User ed897970ad newcopyrights 2013-02-26 23:30:02 +00:00
Evan Hunt e06d01139a [v9_6] fix built-in zone doc
3499.	[doc]		Corrected ARM documentation of built-in zones.
			[RT #32694]
(cherry picked from commit 298ca12250)
(cherry picked from commit a0d472b36e)
(cherry picked from commit b2ae46acbc)
2013-02-26 11:58:43 -08:00
Mark Andrews 6b6aef7492 3498. [bug] zone statistics for zones which matched a potential
empty zone could have their zone-statistics setting
                        overridden.

reviewed via jabber.
2013-02-26 15:51:06 +11:00
Tinderbox User 88434def08 update copyright notice 2013-02-18 23:45:13 +00:00
Tinderbox User 9c5238def5 newcopyrights 2013-02-18 23:30:02 +00:00
Mark Andrews 46cd744950 dlzdb in 9.8 and earlier doesn't have a link element 2013-02-19 08:35:48 +11:00
Mark Andrews e85ad696bb 3489. [bug] --enable-developer now turns on ISC_LIST_CHECKINIT.
dns_dlzcreate() failed to properly initialize
                        dlzdb.link.  When cloning a rdataset do not copy
                        the link contents.  [RT #32651]

Squashed commit of the following:

commit c36c49cbdaeec8b2506dffadbffa543283702fa2
Author: Mark Andrews <marka@isc.org>
Date:   Mon Feb 18 23:24:57 2013 +1100

    don't copy the link when cloning a rdataset

commit 9fef5827edcc925075832dcce900eeca9057456d
Author: Mark Andrews <marka@isc.org>
Date:   Mon Feb 18 23:23:25 2013 +1100

    initialise the dlzdb link; don't return a stale pointer on error

commit a13c584732eae2dde48920a73886b54f1fe6b030
Author: Mark Andrews <marka@isc.org>
Date:   Mon Feb 18 23:21:59 2013 +1100

    turn on ISC_LIST_CHECKINIT

Conflicts:
	lib/dns/dlz.c
(cherry picked from commit c1402b00d3)

Conflicts:
	CHANGES
2013-02-19 07:33:54 +11:00
Mark Andrews 6f60b37d38 fatal errors should be reflected in exit status 2013-02-18 20:38:22 +11:00
Mark Andrews 12a3b0a480 unlink from namelist before calling dns_message_addname
(cherry picked from commit 8244b5c296cd2f4d3c90af969d79bf4c4d3f8ead)
2013-02-18 20:36:03 +11:00
Mark Andrews 98cc9f6ead 3488. [bug] Use after free error with DH generated keys. [RT #32649] 2013-02-18 20:30:10 +11:00
Tinderbox User 3482345a12 update copyright notice 2013-02-16 23:45:11 +00:00
Mark Andrews e2bcc6282d update 2013-02-16 11:23:11 +11:00
Mark Andrews 05045c3ef5 3487. [bug] Change 3444 was not complete. There was a additional
place where the NOQNAME proof needed to be saved.
                        [RT #32629]

Squashed commit of the following:

commit cdef844f57bd3eb30b1f77135b89b6f9360e8bee
Author: Mark Andrews <marka@isc.org>
Date:   Sat Feb 16 00:27:14 2013 +1100

    whitespace

commit 60eb7e3f6cdd102d6aaf0fb4ada8c552576e4502
Author: Mark Andrews <marka@isc.org>
Date:   Sat Feb 16 00:19:51 2013 +1100

    return noqname proof with +cd and dlv

Conflicts:
	CHANGES
2013-02-16 07:51:01 +11:00
Mark Andrews c7daf72017 silence compiler warning
(cherry picked from commit 52946dc6c0)
2013-02-15 17:43:01 +11:00
Tinderbox User 481dc30c3a newcopyrights 2013-02-07 23:30:02 +00:00
Curtis Blackburn 495e2c11bb [v9_6]3481. [cleanup] removed use of const const in atf
(cherry picked from commit 0da7c95546)
2013-02-06 17:52:11 -06:00
Tinderbox User eab85ef275 update copyright notice 2013-02-05 23:45:10 +00:00
Tinderbox User a98426f766 newcopyrights 2013-02-05 23:30:01 +00:00
Mark Andrews 9bb13b5f19 explict cast to (char *) from (void *) to silence compiler warning in %s checking 2013-02-05 14:26:08 +11:00
Tinderbox User 4afa6cb717 update copyright notice 2013-01-25 23:45:11 +00:00
Tinderbox User 4ac7971499 newcopyrights 2013-01-25 23:30:02 +00:00
Mark Andrews b4cacbf1fa 3479. [bug] Address potential memory leaks in gssapi support
code. [RT #32405]
2013-01-25 12:24:58 +11:00
Tinderbox User 915c1cd652 update copyright notice 2013-01-24 23:45:14 +00:00
Tinderbox User ec21d7b3f6 newcopyrights 2013-01-24 23:30:01 +00:00
Tinderbox User 639b190505 regenerate 2013-01-24 22:55:37 +00:00
Evan Hunt 1d096cbf8d [v9_6] build failure in C99
3478.	[port]		Fix a build failure in strict C99 environments
			[RT #32475]
(cherry picked from commit cd63e94310)
2013-01-24 14:52:41 -08:00
Evan Hunt 309872bb5a Merge branch 'v9_6' of ssh://repo/proj/git/prod/bind9 into v9_6 2013-01-23 15:49:50 -08:00
Evan Hunt a0d68463e1 [v9_6] fix dns_request_createvia assert
3474.	[bug]		nsupdate could assert when the local and remote
			address families didn't match. [RT #22897]
(cherry picked from commit ffff5d6792)
(cherry picked from commit 8d025e23e3)
2013-01-23 15:47:51 -08:00
Tinderbox User 83cc9ffe57 regenerate 2013-01-23 23:10:18 +00:00
Evan Hunt 0508e22587 [v9_6] fix enable-openssl-hash/with-atf combo 2013-01-23 15:06:24 -08:00
Tinderbox User 464b8634a5 update copyright notice 2013-01-21 23:45:10 +00:00
Tinderbox User 7035fc0f93 newcopyrights 2013-01-21 23:30:01 +00:00
Evan Hunt 4f18cc1174 [v9_6] prevent ixfr/ns1 being removed 2013-01-21 14:20:49 -08:00
Evan Hunt 63775871db [v9_6] add 10.53.0.8 address 2013-01-21 12:38:29 -08:00
Evan Hunt 6eeb32663e Merge branch 'v9_6' of ssh://repo/proj/git/prod/bind9 into v9_6 2013-01-18 14:21:19 -08:00
Evan Hunt ee709e9393 [v9_6] add CVE, correct change 3388
(cherry picked from commit 3806133da5)
2013-01-18 14:20:45 -08:00
Tinderbox User 47894d492d update copyright notice 2013-01-17 23:45:13 +00:00
Tinderbox User e4927b728e newcopyrights 2013-01-17 23:30:01 +00:00
Mark Andrews e01bdca94f add POST's 2013-01-17 23:27:38 +11:00
Mark Andrews 5b6e1a6067 s/head/tail/ 2013-01-17 21:46:29 +11:00
Mark Andrews f7d9efd98b Silence "Access to field 'type' results in a dereference of a null pointer" by adding appropriate assertions. 2013-01-17 14:45:40 +11:00
Mark Andrews 4c43678e8e Silence "Use of memory after it is freed" by asserting the head and tail of list are not the element after it is unlinked from the list. 2013-01-17 14:22:48 +11:00
Tinderbox User 3d145d5061 update copyright notice 2013-01-15 23:45:10 +00:00
Tinderbox User 969799e84b newcopyrights 2013-01-15 23:30:01 +00:00
Mark Andrews fbe1c2cfd9 silence compiler warning: Value stored to '?' is never used 2013-01-16 07:14:12 +11:00
Tinderbox User 04b3e60a3e update copyright notice 2013-01-11 23:45:15 +00:00
Tinderbox User a9eeec72b4 newcopyrights 2013-01-11 23:30:01 +00:00
Mark Andrews 9a66f76036 fix typo 2013-01-11 17:52:59 +11:00
Mark Andrews e08fe9752f add dns_zone_clearqueryaoncl, dns_zone_getqueryaoncl 2013-01-11 16:54:29 +11:00
Mark Andrews bbb9aa3e3c windows snprint support 2013-01-11 16:27:40 +11:00
Mark Andrews 7fe8320eed 9.6-ESV-R9 2013-01-11 15:24:50 +11:00
Mark Andrews a79d139351 9.6-ESV-R9b1 2013-01-11 14:50:11 +11:00
Mark Andrews 1f6dc1abee 3465. [bug] Handle isolated reserved ports. [RT #31778] 2013-01-11 14:13:30 +11:00
Mark Andrews 7a5d21ce36 backport missing win32 isc_time_formatISO8601 2013-01-11 13:40:40 +11:00
Mark Andrews dd65cba6c8 backport missing win32 isc_time_formatISO8601 2013-01-11 13:40:21 +11:00
Evan HuntandMark Andrews 09bffc43ad [v9_6] contrib/dane/mkdane.sh
3409.	[contrib]	contrib/dane/mkdane.sh: Tool to generate TLSA RR's
			from X.509 certificates, for use with DANE
			(DNS-based Authentication of Named Entities).
			[RT #30513]
2013-01-11 13:34:38 +11:00
Mark Andrews 6d5e5310fb Merge branch 'v9_6' of repo.isc.org:/proj/git/prod/bind9 into v9_6 2013-01-11 12:50:37 +11:00
Mark Andrews 14d71a66fc spelling; whitespace 2013-01-11 12:38:32 +11:00
Tinderbox User 0be50bb94f regen v9_6 2013-01-11 01:06:55 +00:00
Mark Andrews 152a3c7a0a 9.6-ESV-R9b1 2013-01-11 12:03:12 +11:00
Mark Andrews aa19c3d96e record 9.8.x range info 2013-01-11 11:52:33 +11:00
Tinderbox User 70df3d06bc 9.6-ESV-R9b1 2013-01-11 00:33:16 +00:00
Tinderbox User ce69235dce update copyright notice 2013-01-10 23:45:15 +00:00
Tinderbox User 77e30358a8 newcopyrights 2013-01-10 23:30:06 +00:00
Tinderbox User 159c34de3f regen v9_6 2013-01-10 20:22:34 +00:00
Evan Hunt fe73aec175 [v9_6] doc clarification about dig & resolv.conf 2013-01-10 11:50:10 -08:00
Mark Andrews e252b8b8da 3461. [bug] Negative responses could incorrectly have AD=1
set. [RT #32237]
2013-01-10 21:55:05 +11:00
Mark Andrews e80cd3be84 remove dead code 2013-01-10 18:13:01 +11:00
Mark Andrews 4e290bf392 remove methods not used in 9.6.x 2013-01-10 18:07:55 +11:00
Mark Andrews 04902c6369 2512. [func] Print a summary of the cached records which make up
the negative response.  [RT #18885]
2013-01-10 11:43:05 +11:00
Tinderbox User 55d5562536 update copyright notice 2013-01-09 23:45:13 +00:00
Mark Andrews 51c914b976 update 2013-01-10 10:40:24 +11:00
Mark Andrews 997176a75e Merge remote-tracking branch 'refs/remotes/origin/v9_6' into v9_6 2013-01-10 10:39:00 +11:00
Mark Andrews 6132d502b9 3458. [bug] Return FORMERR when presented with a overly long
domain named in a request. [RT #29682]
2013-01-10 10:35:37 +11:00
Tinderbox User f057f3c98a newcopyrights 2013-01-09 23:30:22 +00:00
Evan Hunt 6035caf7a3 [v9_6] typo 2013-01-09 14:35:01 -08:00
Mark Andrews 15dba50013 3457. [protocol] Add ILNP records (NID, LP, L32, L64). [RT #31836] 2013-01-10 08:38:13 +11:00
Mark Andrews 3f9f034f89 3456. [port] g++47: aft fails to compile. [RT #32012] 2013-01-09 22:33:59 +11:00
Mark Andrews 46f93322c7 remove dead code 2013-01-09 21:51:42 +11:00
Mark Andrews 0983eab761 3455. [contrib] queryperf: fix getopt option list. [RT #32338] 2013-01-09 21:41:16 +11:00
Mark Andrews 087cf7aa6c use known length for known algorithns in fromtext_dlv cf fromtext_ds 2013-01-09 21:08:38 +11:00
Mark Andrews bfcc458e8e test eighth interface 2013-01-09 19:10:41 +11:00
Mark Andrews 3d0c95fe2d 3373. [bug] win32: open raw files in binary mode. [RT #30944]
was not complete openfile_raw should be using mode "rb" rather than "r".
2013-01-09 17:07:26 +11:00
Mark Andrews 7bc28859b9 3454. [port] sparc64: improve atomic support. [RT #25182] 2013-01-09 12:57:30 +11:00
Tinderbox User 2b59928888 update copyright notice 2013-01-08 23:45:11 +00:00
Tinderbox User 86b746428f newcopyrights 2013-01-08 23:30:02 +00:00
Mark Andrews 30194165fa queryperf: fix getopt option string 2013-01-08 22:58:08 +11:00
Mark Andrews c535907383 spelling 2013-01-08 11:06:35 +11:00
Mark Andrews 1db4de0cc0 3452. [bug] Accept duplicate singlton records. [RT #32329] 2013-01-08 10:59:49 +11:00
Tinderbox User ea03a55dc5 update copyright notice 2013-01-06 23:45:10 +00:00
Tinderbox User 5c38fb079f newcopyrights 2013-01-06 23:30:02 +00:00
Mark Andrews 138b7ad44a 3451. [port] Increase per thread stack size from 64K to 1M.
[RT #32230]
2013-01-07 09:54:37 +11:00
Tinderbox User 0782358696 update copyright notice 2013-01-05 23:45:11 +00:00
Tinderbox User 6717184461 newcopyrights 2013-01-05 23:30:02 +00:00
Mark Andrews d6ad0ec371 3450. [bug] Stop logfileconfig system test spam system logs.
[RT #32315]

Squashed commit of the following:

commit ad40744e2c7dc253b70857bb229def5dd194b418
Author: Mark Andrews <marka@isc.org>
Date:   Fri Jan 4 17:24:45 2013 +1100

    logfileconfig spams the system log files

Conflicts:
	bin/named/main.c

Conflicts:
	bin/tests/system/logfileconfig/tests.sh

Conflicts:
	bin/named/main.c
	bin/tests/system/logfileconfig/tests.sh
2013-01-06 08:03:51 +11:00
Mark Andrews eb0fce9258 remove dead code 2013-01-06 07:46:54 +11:00
Tinderbox User bd002de585 regen v9_6 2013-01-05 01:07:06 +00:00
Tinderbox User 0701549b85 update copyright notice 2013-01-04 23:45:11 +00:00
Tinderbox User 4350719d29 newcopyrights 2013-01-04 23:30:04 +00:00
Mark Andrews 8a1c58d755 make static 2013-01-05 00:33:44 +11:00
Mark Andrews 2931e83af7 silence compiler warning 2013-01-04 15:57:46 +11:00
Evan Hunt 81083aaa75 [v9_6] add print.h 2013-01-03 18:24:06 -08:00
Mark Andrews 1c4083048e Merge branch 'v9_6' of repo.isc.org:/proj/git/prod/bind9 into v9_6 2013-01-04 12:29:24 +11:00
Mark Andrews 5a1d49a1ef 3445. [bug] Warn about zone files with blank owner names
immediately after $ORIGIN directives. [RT #31848]

Conflicts:
	lib/dns/tests/master_test.c
2013-01-04 12:28:57 +11:00
Tinderbox User b7e251c4a2 regen v9_6 2013-01-04 01:07:04 +00:00
Mark Andrews e7df3e584e 3449. [bug] gen.c: use the pre-processor to construct format
strings so that compiler can perform sanity checks;
                        check the snprintf results. [RT #17576]

Conflicts:
	lib/dns/gen.c
2013-01-04 11:09:39 +11:00
Evan Hunt 7a904931ad [v9_6] allow-query-on works now
3448.	[bug]		The allow-query-on ACL was not processed correctly.
			[RT #29486]
(cherry picked from commit 222d38735f)
(cherry picked from commit 8d9207a17b)
(cherry picked from commit ba2599657b)
2013-01-03 15:39:21 -08:00
Tinderbox User 59c0cfc789 update copyright notice 2013-01-02 23:45:10 +00:00
Tinderbox User 3dfef43868 newcopyrights 2013-01-02 23:30:01 +00:00
Tinderbox User c3fe41869f update copyright notice 2013-01-01 23:45:10 +00:00
Tinderbox User bd3e5de6d9 newcopyrights 2013-01-01 23:30:01 +00:00
Mark Andrews 6f7a7dc5eb 3447. [port] Add support for libxml2-2.9.x [RT #32231] 2013-01-01 23:15:11 +00:00
Mark Andrews 5f8762c504 remove extranous rdata in nxrrset call as it is not ingnored in Net::DNS 0.70 2012-12-21 14:14:28 +11:00
Mark Andrews d66b536512 sign_tcp_continuation doesn't work with the newer versions of
Net:DNS.  Code has been submitted so we don't need to use
the sign_tcp_continuation hack in future.
2012-12-21 13:02:03 +11:00
Tinderbox User a66479c66d update copyright notice 2012-12-20 23:45:10 +00:00
Evan Hunt eef1314b8b [v9_6] remove unnecessary memcpy 2012-12-20 10:34:44 -08:00
Mark Andrews 78738be0e1 TSIG no longer has a mac_size method; arcount no longer need to be adjusted 2012-12-21 00:31:44 +11:00
Mark Andrews 6995c4567c update 2012-12-20 11:57:47 +11:00
Mark Andrews e83ec5e03f adjust test to account for blank owner after origin now being rejected 2012-12-19 14:37:23 +11:00
Mark Andrews 1503ea6472 -H not -i sets iterations 2012-12-19 14:18:50 +11:00
Mark Andrews 40535921ab fix genrandom path 2012-12-19 13:36:28 +11:00
Mark Andrews e06306eb09 remove redundant $ORIGINs 2012-12-19 13:35:19 +11:00
Mark Andrews cc63b4f7f5 silence signed/unsigned warning; rename log -> fctx_log 2012-12-19 12:41:01 +11:00
Evan Hunt d191810ed3 [v9_6] include SRCID in windows builds
3446.	[port]		win32: Add source ID (see change #3400) to build.
			[RT #31683]
(cherry picked from commit 2dd959aa18)
2012-12-18 16:31:41 -08:00
Evan Hunt 9b6378026c [v9_6] reject $ORIGIN before inherited name
3445.	[bug]		Reject zone files with blank owner names immediately
			after $ORIGIN directives. [RT #31848]
(cherry picked from commit 3ad3e9c948)
(cherry picked from commit cdea02bf60)
2012-12-18 16:26:11 -08:00
Evan Hunt 52cc5ff8db [v9_6] fix change number 2012-12-18 16:25:19 -08:00
Tinderbox User e60b4aa460 update copyright notice 2012-12-18 23:45:11 +00:00
Mark Andrews c973a1dee7 3443. [bug] The NOQNAME proof was not being returned from cached
insecure responses. [RT #21409]

Conflicts:
	bin/tests/system/conf.sh.in
	lib/dns/include/dns/nsec3.h
	lib/dns/validator.c
2012-12-19 10:31:27 +11:00
Mark Andrews b77bdaa5ce 3442. [port] Net::DNS 0.69 introduced a non backwards compatible
change. [RT #32216]
2012-12-19 08:49:35 +11:00
Mark Andrews 84dde6383c Net::DNS 0.{70,71} doesn't force the TTL to zero for yxrrset, nxrrset and rr_del 2012-12-18 11:45:17 +11:00
Mark Andrews 68f2c843be don't wipe out named.run when restarting 2012-12-14 17:48:11 +11:00
Mark Andrews 4f1853005d 3441. [maint] D.ROOT-SERVERS.NET is now 199.7.91.13. 2012-12-14 12:47:51 +11:00
Mark Andrews 1b9f10181b 3440. [bug] Reorder get_key_struct to not trigger a assertion when
cleaning up due to out of memory error. [RT #32131]
2012-12-13 11:20:21 +11:00
Mark Andrews ff2d989592 3439. [bug] contrib/dlz error checking fixes. [RT #32102]
Conflicts:
	contrib/dlz/example/dlz_example.c
	contrib/dlz/example/dlz_minimal.h

Conflicts:
	contrib/dlz/drivers/dlz_filesystem_driver.c
	contrib/dlz/example/dlz_example.c
	contrib/dlz/example/dlz_minimal.h
2012-12-11 13:29:34 +11:00
Mark Andrews 0fcbd40175 throw fatal error on realloc failure 2012-12-10 10:18:03 +11:00
Tinderbox User 38215b46b7 update copyright notice 2012-12-08 23:45:12 +00:00
Tinderbox User a4e7c840ca newcopyrights 2012-12-08 23:30:02 +00:00
Mark Andrews 2f74870f49 RETTOK -> RETERR 2012-12-09 07:46:35 +11:00
Mark Andrews 4b6f307bd7 isc_buffer_init -> isc_buffer_constinit 2012-12-09 07:16:04 +11:00
Mark Andrews 22407050fe DIG -> $DIG 2012-12-08 15:33:10 +11:00
Mark Andrews c35c678e1a 3438. [bug] Don't accept unknown data escape in quotes. [RT #32031]
Squashed commit of the following:

commit 7ad3daade513c94a1c92ee7c91c112f161d13ef4
Author: Mark Andrews <marka@isc.org>
Date:   Mon Dec 3 15:03:44 2012 +1100

    look at the second token to determine if a TXT record in of unknown format or not

commit 7df32138462646f6aee84ffa56d02ac24ec8d672
Author: Mark Andrews <marka@isc.org>
Date:   Mon Dec 3 12:42:18 2012 +1100

    '"\#"' was incorrectly being treated as a unknown data escape sequence.
2012-12-08 14:14:04 +11:00
Mark Andrews 4871328f72 3437. [bug] isc_buffer_init -> isc_buffer_constinit to initialise
buffers with constant data. [RT #32064]

Squashed commit of the following:

commit 3433b96bf11f8c90ccbe412f01d02a6d8bbc2d33
Author: Mark Andrews <marka@isc.org>
Date:   Sat Dec 8 12:41:16 2012 +1100

    isc_buffer_init -> isc_buffer_constinit

commit c22dbcc1122a0a44f7b46068e0ccbc25353a57d5
Author: Mark Andrews <marka@isc.org>
Date:   Sat Dec 8 12:38:39 2012 +1100

    isc_buffer_init -> isc_buffer_constinit

commit 900820416c45c1887d0d22d7a010df60a903bd56
Author: Mark Andrews <marka@isc.org>
Date:   Sat Dec 8 12:24:19 2012 +1100

    remove isc_buffer_reconstinit

commit f815711c17b05f9961786a90b9bae902d3c01494
Author: Mark Andrews <marka@isc.org>
Date:   Wed Dec 5 15:42:57 2012 +1100

    add isc_buffer_constinit
2012-12-08 13:08:03 +11:00
Tinderbox User 240a1f6813 update copyright notice 2012-12-07 23:45:11 +00:00
Tinderbox User 68e6bc8c55 newcopyrights 2012-12-07 23:30:02 +00:00
Evan Hunt 4fe7f9e64d [v9_6] check malloc/calloc return values
3436.	[bug]		Check malloc/calloc return values. [RT #32088]
(cherry picked from commit 45f3693294)
2012-12-07 12:24:54 -08:00
Mark Andrews a6aeebda20 3435. [bug] Cross compilation support in configure was broken.
[RT #32078]

Squashed commit of the following:

commit 9c67d7a52346dffeb7609f08d3aaa8a8689d8094
Author: Mark Andrews <marka@isc.org>
Date:   Fri Dec 7 13:31:50 2012 +1100

    regen

commit 4c1874dd3a98ea8e50b0860b107bd2deb8550af0
Author: Mark Andrews <marka@isc.org>
Date:   Fri Dec 7 13:31:10 2012 +1100

    improve cross compile support; tidy --help output

commit 15ba411a728cc35c904804935477b15c8a65ebbd
Author: Mark Andrews <marka@isc.org>
Date:   Fri Dec 7 13:28:46 2012 +1100

    add util/xc

commit 165bc538fa6590752d7006348285a3ba48713498
Author: Mark Andrews <marka@isc.org>
Date:   Fri Dec 7 13:27:35 2012 +1100

    test cross compiler

Conflicts:
	CHANGES
	config.h.in
	configure
	configure.in
2012-12-07 16:40:22 +11:00
Mark Andrews 40869b938b silence clang --analyser false positive 2012-12-05 11:43:54 +11:00
Mark Andrews 01d3af945b treat clang 3.x and 4.x as independent release streams 2012-12-03 09:09:19 +11:00
Mark Andrews 0f7c52af38 workaround only needed for clang 3.1 2012-12-03 07:59:34 +11:00
Mark Andrews 66d5cfe992 silence compiler warnings 2012-12-01 21:35:24 +11:00
Mark Andrews a978b24900 signed/unsigned comparision 2012-11-30 23:37:26 +11:00
Mark Andrews b04d25d98f silence clang --analyze warnings 2012-11-30 18:53:43 +11:00
Mark Andrews ba57636139 conditionally silence false positives from clang --analyze 2012-11-30 16:19:56 +11:00
Mark Andrews 3910d31e1d regen 2012-11-30 12:31:06 +11:00
Mark Andrews f2ed4e1c5e Merge branch 'v9_6' of repo.isc.org:/proj/git/prod/bind9 into v9_6 2012-11-30 12:25:59 +11:00
Mark Andrews 179d1bd965 add /opt/local/share/xsl/docbook-xsl to list of locations to look for docbook files 2012-11-30 12:20:59 +11:00
Tinderbox User b847e7105e regen v9_6 2012-11-30 01:15:10 +00:00
Mark Andrews 1f253dcf4d 3429. [bug] dns_zone_getserial2 could a return success without
returning a valid serial. [RT #32007]

Squashed commit of the following:

commit 0057f4b6e843c3998b987dbc7f32ceeee8afc150
Author: Mark Andrews <marka@isc.org>
Date:   Fri Nov 30 08:13:15 2012 +1100

    zone_get_from_db could return success without setting return valuses; serial is only valid if soacount is none zero

Conflicts:
	lib/dns/zone.c
2012-11-30 12:02:17 +11:00
Tinderbox User e266df465f update copyright notice 2012-11-29 23:45:10 +00:00
Jeremy C. ReedandMark Andrews 5a6d0a9844 Remove link to AUSCERT article about ACLs. It has been broken
for at least 6 years.
See ticket #16479 for details.
No CHANGES entry added.
This was not reviewed. It is minor.
2012-11-30 10:40:43 +11:00
Evan Hunt 1ff8b5bef5 [v9_6] add timezone to dig
3428.	[cleanup]	dig: Add timezone to date output. [RT #2269]
(cherry picked from commit 706219e547)
(cherry picked from commit df9aeb663d)
(cherry picked from commit 5d1b72e2ed)
2012-11-29 09:09:02 -08:00
Mark Andrews e1b09c2c48 use consistent type in sizeof and ultimate type cast 2012-11-30 00:56:31 +11:00
Mark Andrews 9dc8381ff4 null pointer derefernce on out of memory 2012-11-30 00:51:17 +11:00
Mark Andrews 133ca384d1 initialize the octet string to empty so that we don't free garbage on error 2012-11-29 18:13:27 +11:00
Evan Hunt 961e45050f [v9_6] fix dig +trace output
3427.	[bug]		dig +trace incorrectly displayed name server
			addresses instead of names. [RT #31641]
(cherry picked from commit 2f21adbc6a)
(cherry picked from commit 90dbd7c2e0)
(cherry picked from commit fddb023637)
2012-11-28 19:07:04 -08:00
Tinderbox User ab9d947465 regen v9_6 2012-11-29 01:07:54 +00:00
Mark Andrews 2346a15d6c update 2012-11-29 10:43:55 +11:00
Mark Andrews b6bfc7235d update 2012-11-29 10:43:27 +11:00
Mark Andrews 8338bbc282 link against @DNS_CRYPTO_LIBS@ 2012-11-29 07:27:41 +11:00
Evan Hunt 705e16c394 [v9_6] s/size spec/size_spec/ 2012-11-27 22:48:59 -08:00
Mark AndrewsandMark Andrews bc032a97bb update libtool support to version 2.4.2 2012-11-28 04:38:21 +00:00
Mark Andrews 4d5ef03723 adjust looping threshold from 10 to 15 2012-11-28 12:06:53 +11:00
Mark Andrews cecbe5bc42 3425. [bug] "acacheentry" reference counting was broken resulting
in use after free. [RT #31908]
2012-11-27 16:05:45 +11:00
Tinderbox User a9cf59c7cb update copyright notice 2012-11-21 23:45:10 +00:00
Mark Andrews 1aefd8ec88 3421. [bug] Named loops when re-signing if all keys are offline.
[RT #31916]

Squashed commit of the following:

commit f47af0ca6793687b9c8d08fd44b0c091ba5a4f9a
Author: Mark Andrews <marka@isc.org>
Date:   Wed Nov 21 17:45:21 2012 +1100

    dns_dns_zonediff_t -> dns_zonediff_t, clarify comment

commit 344edefc3ee90856a7ff990abe7971925ba843b2
Author: Mark Andrews <marka@isc.org>
Date:   Tue Nov 20 13:12:26 2012 +1100

    commit the zone changes if a keep was marked as being offline

commit cad2c2446ebfc20b6d8c4f6dd0d6596d7106cc0f
Author: Mark Andrews <marka@isc.org>
Date:   Tue Nov 20 13:08:29 2012 +1100

    check for looping when re-signing expiring.example

Conflicts:
	lib/dns/zone.c

Conflicts:
	lib/dns/zone.c
2012-11-21 20:48:01 +11:00
Mar Andrews 40f92e3040 3420. [bug] Address VPATH compilation issues. [RT #31879] 2012-11-17 09:54:28 +00:00
Mark Andrews 6b696ad957 3419. [bug] Memory leak on validation cancel. [RT #31869]
Squashed commit of the following:

commit 452b07ec7cb31784d90d9c2e45ca708df306302e
Author: Mark Andrews <marka@isc.org>
Date:   Wed Nov 14 23:36:36 2012 +1100

    destroy fetch when canceling validator
2012-11-15 11:21:14 +11:00
Mark Andrews caa58096b2 Redo
3415.   [bug]           named could die with a REQUIRE failure if a valdation
                        was canceled. [RT #31804]
2012-11-14 07:44:30 +11:00
Mark Andrews 5d8eaba029 spelling 2012-11-09 09:31:30 +11:00
Mark Andrews 25c877f032 3415. [bug] named could die with a REQUIRE failure id a valdation
was canceled. [RT #31804]

Squashed commit of the following:

commit d414d3cb4244daeca4159ac1f8a82322e4a20e5a
Author: Mark Andrews <marka@isc.org>
Date:   Wed Nov 7 14:19:28 2012 +1100

    check that val->fetch != NULL before calling dns_resolver_destroyfetch
2012-11-09 09:15:11 +11:00
Mark Andrews 39621f0a19 sock is potentially unused in use_min_mtu 2012-11-01 15:29:53 +11:00
Mark Andrews c772a63639 task used uninitalised 2012-11-01 15:20:45 +11:00
Mark Andrews fdfc5c763e uninitalised use 2012-11-01 13:55:29 +11:00
Mark Andrews dd03068db2 3412. [bug] Copy timeval structure from control message data.
[RT #31548]
2012-11-01 11:17:41 +11:00
Tinderbox User 5079524c7c update copyright notice 2012-10-31 23:45:11 +00:00
Mark Andrews 95eff34c01 address merge error 2012-11-01 10:42:01 +11:00
Mark Andrews 3474f269c6 More coverity fixes:
3410.   [bug]           Addressed Coverity warnings. [RT #31626]
Squashed commit of the following:

commit 6fec07bbb69ead784063052f2099674f8b52c6b3
Author: Mark Andrews <marka@isc.org>
Date:   Tue Oct 30 18:14:35 2012 +1100

    use strl{cat,cpy}

commit 19a5d3766f3dbc8a2944b21640a8226a89aae7ba
Author: Mark Andrews <marka@isc.org>
Date:   Tue Oct 30 14:38:55 2012 +1100

    address unchecked xmlTextWriter* calls

Conflicts:
	bin/named/statschannel.c
	lib/dns/cache.c
	lib/dns/include/dns/cache.h
	lib/isc/task.c

Conflicts:
	lib/isc/mem.c
	lib/isc/task.c
	lib/isc/unix/socket.c
	lib/isc/win32/socket.c
2012-11-01 10:35:08 +11:00
Mark Andrews 28cb874727 3411. [tuning] Use IPV6_USE_MIN_MTU or equivalent with TCP in addition to UDP. [RT #31690]
Squashed commit of the following:

commit bcbe9ae7a99e1f7f4236a22739a793b51ace8684
Author: Mark Andrews <marka@isc.org>
Date:   Wed Oct 31 15:10:53 2012 +1100

    Use IPV6_USE_MIN_MTU for TCP as well as UDP

Conflicts:
	lib/isc/win32/socket.c
2012-11-01 08:46:00 +11:00
Mark Andrews fb8813c89e spelling, whitespace
Conflicts:
	CHANGES

Conflicts:
	CHANGES
2012-10-31 07:40:41 +11:00
Evan Hunt 35e2c35de1 [v9_6] fix changes note
(cherry picked from commit a8ef22d88e)
2012-10-30 09:59:11 -07:00
Tinderbox User f9d075bb26 update copyright notice 2012-10-29 23:45:11 +00:00
Tinderbox User 980bd670b1 newcopyrights 2012-10-29 23:30:04 +00:00
Mark Andrews 9923c4fe57 <sys/errno.h> -> <errno.h> 2012-10-30 09:27:38 +11:00
Mark Andrews 2eacd1be5c 3410. [bug] Addressed Coverity warnings. [RT #31626]
Squashed commit of the following:

commit bce2efe66d69d60b746b85df49974ca341723169
Author: Mark Andrews <marka@isc.org>
Date:   Mon Oct 29 12:59:25 2012 +1100

    use 'static dns_rdata_xxxx_t xxxx'

commit 704d3c29acbf2dd350a26f2df82a57cb077ba72e
Author: Mark Andrews <marka@isc.org>
Date:   Mon Oct 29 12:35:16 2012 +1100

    return ISC_R_NOTFOUND if private record length does not make sense

commit 7596610c12c5685336fc0909860173d2fae359af
Author: Mark Andrews <marka@isc.org>
Date:   Sat Oct 27 21:41:17 2012 +1100

    check private->length == 5

commit 3836365a3e3e83b057bd940350f032279e080296
Author: Mark Andrews <marka@isc.org>
Date:   Sat Oct 27 21:40:50 2012 +1100

    properly set private->length

commit a295778ac53109d39ef3a8b233751100edae678b
Author: Mark Andrews <marka@isc.org>
Date:   Sat Oct 27 21:13:30 2012 +1100

    check dns_rdata_tostruct result

commit e33c37ca9112159e0b2363615bb018d27fa7d1a5
Author: Mark Andrews <marka@isc.org>
Date:   Sat Oct 27 21:10:43 2012 +1100

    check remove/fopen/chmod return values

commit 3a675e0666aae25d1c51f51ec7bd3fbe25545aae
Author: Mark Andrews <marka@isc.org>
Date:   Sat Oct 27 20:59:10 2012 +1100

    check isc_socket_accept result

commit 696923344f4b07ce0dba4cf2675b1cbb6eba7e8e
Author: Mark Andrews <marka@isc.org>
Date:   Sat Oct 27 20:55:40 2012 +1100

    change variable scopes

commit b9e9d9ad58270271003e463f10744e0ceaf9ad97
Author: Mark Andrews <marka@isc.org>
Date:   Sat Oct 27 20:53:19 2012 +1100

    check inet_pton return value

commit 70698e9589da77e3745efb6ea24b8830addd6ae4
Author: Mark Andrews <marka@isc.org>
Date:   Sat Oct 27 20:52:40 2012 +1100

    break -> /* NOTREACHED */

commit 88de9de2e8e201ab2fef16a868f241e8206ea826
Author: Mark Andrews <marka@isc.org>
Date:   Sat Oct 27 20:52:06 2012 +1100

    strcpy -> strlcpy

commit 6ba79c7cec0e48014cdfa76e8a9406b7a921556e
Author: Mark Andrews <marka@isc.org>
Date:   Sat Oct 27 20:51:26 2012 +1100

    check dns_rdata_tostruct return values

Conflicts:
	bin/tests/rdata_test.c
	lib/dns/private.c
	lib/dns/tests/private_test.c
	lib/dns/zone.c

Conflicts:
	CHANGES
	bin/tests/rdata_test.c
	lib/dns/zone.c
2012-10-29 20:52:41 +11:00
Mark Andrews e5d6854aa2 extract repo from --remote 2012-10-29 02:56:56 +00:00
Evan Hunt 7331f3d84b [v9_6] address mem.c compilation problems
3406.	[bug]		mem.c: Fix compilation errors when building with
			ISC_MEM_TRACKLINES or ISC_MEMPOOL_NAMES disabled.
                        Also, ISC_MEM_DEBUG is no longer optional. [RT #31559]
(cherry picked from commit 2f57f353e8)
(cherry picked from commit 76e34eb2fd)
(cherry picked from commit 7c5941b4c2)
2012-10-25 19:07:13 -07:00
Tinderbox User 9b23de87dc update copyright notice 2012-10-25 23:46:14 +00:00
Tinderbox User 12a275a9fc newcopyrights 2012-10-25 23:30:03 +00:00
Mark Andrews e68ab11c16 3405. [bug] Handle time going backwards in acache. [RT #31253]
Squashed commit of the following:

commit fbf4c8fe2644c101bac870360d3f2c159a90f203
Author: Mark Andrews <marka@isc.org>
Date:   Wed Oct 24 14:43:14 2012 +1100

    remove INSIST and handle time going backwards
2012-10-25 14:30:09 +11:00
Evan Hunt 19842feafb Merge branch 'v9_6' of ssh://repo/proj/git/prod/bind9 into v9_6 2012-10-24 18:04:46 -07:00
Evan Hunt 620d76c6e0 [v9_6] remove spurious signatures from glue
3404.	[bug]		dnssec-signzone: When re-signing a zone, remove
			RRSIG and NSEC records from nodes that used to be
			in-zone but are now below a zone cut. [RT #31556]
(cherry picked from commit 4b3d727d96)
(cherry picked from commit d8861c4350)
(cherry picked from commit 3314b7cd78)
2012-10-24 18:02:29 -07:00
Tinderbox User 48a322e5be update copyright notice 2012-10-24 23:45:15 +00:00
Tinderbox User 4824bf6a6a newcopyrights 2012-10-24 23:30:04 +00:00
Evan Hunt b8888bfd55 [v9_6] silence warning 2012-10-24 15:40:45 -07:00
Evan Hunt c5987d9ebe [v9_6] fix CHANGES error 2012-10-24 13:20:43 -07:00
Evan Hunt ef70ea9f63 [v9_6] silence warnings in dnssec system test 2012-10-24 13:16:55 -07:00
Evan Hunt 148413ff38 [v9_6] silence noisy OpenSSL logging
3402.	[bug]		Correct interface numbers for IPv4 and IPv6 interfaces.
(cherry picked from commit 0e37e9e3d7)
(cherry picked from commit 152c393671)
(cherry picked from commit ab9d2ca4dd)
2012-10-24 13:16:38 -07:00
ckb dce5155b28 3402. [bug] Correct interface numbers for IPv4 and IPv6 interfaces.
[RT #25085]
2012-10-24 14:54:38 -05:00
Evan Hunt a86ff30111 [v9_6] silence coverity warnings
3401.	[bug]		Addressed Coverity warnings. [RT #31484]
(cherry picked from commit 47c5b8af92)
(cherry picked from commit 2589af5868)
(cherry picked from commit a53a622417)
2012-10-23 22:34:16 -07:00
Evan Hunt b87fa3e046 add CHANGES 2012-10-22 13:18:14 -07:00
Tinderbox User 3260441570 regen 2012-10-22 20:05:14 +00:00
Evan Hunt e9df78aa34 [rt31494] add gitID to kit.sh generated tarballs 2012-10-22 13:00:19 -07:00
Tinderbox User 2484c768ce update SRCID 2012-10-19 06:16:04 +00:00
Mark Andrews 8a8b37d36f remove redundant UNUSED(callbacks) 2012-10-19 16:29:47 +11:00
Tinderbox User 5bef8ce420 update SRCID 2012-10-19 00:15:54 +00:00
Tinderbox User 231b8abbc1 update copyright notice 2012-10-18 23:45:13 +00:00
Tinderbox User e2b9eb7d4e update SRCID 2012-10-18 23:15:36 +00:00
ckb cd20e4a109 3397. [bug] dig crashed when using +nssearch with +tcp. [RT #25298] 2012-10-18 17:56:27 -05:00
Tinderbox User a4c28497f5 update SRCID 2012-10-18 03:16:04 +00:00
Mark Andrews 49a924db3b 3396. [bug] OPT records were incorrectly removed from signed,
truncated responses. [RT #31439]
2012-10-18 13:27:36 +11:00
Tinderbox User 26e22c238e update SRCID 2012-10-17 02:15:40 +00:00
Mark Andrews 9f519425b2 missing space before other len after change #3389 2012-10-17 12:50:30 +11:00
Tinderbox User 14d738b6d8 update SRCID 2012-10-17 01:15:46 +00:00
Tinderbox User ad17ed2583 regen v9_6 2012-10-17 01:08:52 +00:00
Tinderbox User 5610034a78 update SRCID 2012-10-16 02:15:41 +00:00
Mark Andrews 659ab661a2 3395. [protocol] Add RFC 6598 reverse zones to built in empty zones
list, 64.100.IN-ADDR.ARPA ... 127.100.IN-ADDR.ARPA.
                        [RT #31336]
2012-10-16 12:46:42 +11:00
Tinderbox User 6ac3fb5c5c update SRCID 2012-10-16 01:15:44 +00:00
Mark Andrews f9d8debcd0 3394. [bug] Adjust 'sucessfully validated after lower casing
signer' log level and category. [RT #31414]
2012-10-16 11:57:05 +11:00
Tinderbox User 6589e64936 update SRCID 2012-10-16 00:16:49 +00:00
Mark Andrews cfee4fb8a2 test for directory existance before calling find 2012-10-16 10:56:06 +11:00
Mark Andrews c0dcb1e04e 3393. [bug] 'host -C' could core dump if REFUSED was received.
[RT #31381]
2012-10-16 10:44:47 +11:00
Tinderbox User 98787faea2 update SRCID 2012-10-10 02:15:34 +00:00
Mark Andrews 8a1b751171 fix typos in variable names 2012-10-10 13:11:54 +11:00
Tinderbox User f7f370829e update SRCID 2012-10-07 01:15:38 +00:00
Mark Andrews 8c4c5e5cec Merge branch 'v9_6' of repo.isc.org:/proj/git/prod/bind9 into v9_6 2012-10-07 11:37:23 +11:00
Tinderbox User 61711df30d update SRCID 2012-10-07 00:15:52 +00:00
Tinderbox User f88745517a update copyright notice 2012-10-06 23:45:13 +00:00
Tinderbox User 11b4085796 newcopyrights 2012-10-06 23:30:03 +00:00
Tinderbox User ce03256f84 update SRCID 2012-10-06 08:15:43 +00:00
Mark Andrews 12bab5c663 remove empty directories when cleaning 2012-10-06 17:26:58 +10:00
Mark Andrews efc3ad0392 update change description 2012-10-06 17:24:51 +10:00
Mark Andrews 79992558d9 Merge branch 'v9_6' of repo.isc.org:/proj/git/prod/bind9 into v9_6 2012-10-06 17:15:13 +10:00
Tinderbox User 00b0069eab update SRCID 2012-10-06 05:16:07 +00:00
Mark Andrews 6e8dc44545 3391. [bug] DNSKEY that encountered a CNAME failed. [RT #31262] 2012-10-06 15:06:58 +10:00
Mark Andrews e4e82b398c 3390. [bug] Silence clang compiler warnings. [RT #30417] 2012-10-06 12:26:50 +10:00
Tinderbox User d0e2f6c6ca update SRCID 2012-10-04 21:15:35 +00:00
Mark Andrews be6c81b03e 3389. [bug] Always return NOERROR (not 0) in TSIG. [RT #31275] 2012-10-05 06:58:52 +10:00
Tinderbox User 61b52746c5 update SRCID 2012-10-04 00:15:51 +00:00
Tinderbox User 918eee6228 newcopyrights 2012-10-03 23:30:02 +00:00
Tinderbox User 7e5d132c9c update SRCID 2012-10-03 22:15:31 +00:00
Mark Andrews b1a4dd1c07 Revert "include <isc/print.h> in gen.c"
This reverts commit 5bbba214b2.
2012-10-04 08:13:47 +10:00
Tinderbox User 8aeff24b3d update SRCID 2012-10-03 15:15:35 +00:00
Evan Hunt 5bbba214b2 include <isc/print.h> in gen.c 2012-10-03 08:01:41 -07:00
Tinderbox User 6103a5369b update SRCID 2012-10-03 07:15:53 +00:00
Evan Hunt 09b49ec9b4 fix coverity issues
3388.	[bug]		Fixed several Coverity warnings. [RT #30996]
2012-10-03 00:01:28 -07:00
Tinderbox User 4e24be19b6 update SRCID 2012-10-03 00:15:51 +00:00
Mark Andrews 21768e3aae 3386. [bug] Address locking violation when generating new NSEC /
NSEC3 chains. [RT #31224]
2012-10-03 10:05:55 +10:00
Tinderbox User 180e413931 update SRCID 2012-09-27 01:15:35 +00:00
Evan Hunt 9e09039ce8 fixed an exploitable hang bug
3383.	[security]	A certain combinations of records in the RBT could
                        cause named to hang while populating the additional
                        section of a response. [RT #31090]
2012-09-26 17:21:30 -07:00
Tinderbox User 21ee08520c update SRCID 2012-09-26 21:15:37 +00:00
Evan Hunt 2d4c6e30a0 use correct port range
3382.	[bug]		SOA query from slave used use-v6-udp-ports range,
			if set, regardless of the address family in use.
			[RT #24173]
2012-09-26 13:57:10 -07:00
Tinderbox User 59ca4e0f4e update SRCID 2012-09-26 06:16:42 +00:00
Evan Hunt 96530bc8c1 support more rrtypes in queryperf
3381.	[contrib]	Update queryperf to support more RR types.
			[RT #30762]
2012-09-25 22:55:10 -07:00
Mark Andrews 8e4dd15561 3380. [bug] named could die if a non-existant master list was
referenced in a also-notify. [RT #31004]
2012-09-26 15:29:38 +10:00
Mark Andrews 7f1fab8b88 3379. [bug] isc_interval_zero and isc_time_epoch should be
"const (type)* const". [RT #31069]
2012-09-26 15:21:18 +10:00
Tinderbox User 9c75dd9935 update SRCID 2012-09-19 04:15:56 +00:00
Mark Andrews 90530fa80f remove contrib/dbus/* 2012-09-19 14:04:06 +10:00
Tinderbox User f4b3864bf8 update SRCID 2012-09-18 22:15:33 +00:00
Evan Hunt d7befc6016 contrib/dbus is deprecated 2012-09-18 14:57:05 -07:00
Tinderbox User 6a15e57e2a update SRCID 2012-09-15 00:15:42 +00:00
Tinderbox User d5356fec3e update copyright notice 2012-09-14 23:45:12 +00:00
Tinderbox User 551b3d0216 newcopyrights 2012-09-14 23:30:06 +00:00
Tinderbox User 16dc282144 update SRCID 2012-09-14 01:15:43 +00:00
Mark Andrews 0365bb2101 3376. [bug] Lack of EDNS support was being recorded without a
successful response. [RT #30811]
2012-09-14 11:02:38 +10:00
Mark Andrews 1d6b9860c7 fix isc_begin_tests call 2012-09-14 10:38:15 +10:00
ckb 5f7545bf48 3375. [func] Check that 'rndc dumpdb' works on a empty cache.
[RT #30808]
2012-09-13 19:34:00 -05:00
Tinderbox User 4b97f08c1f update SRCID 2012-09-14 00:15:54 +00:00
Mark Andrews 93bad11f96 3375. [func] Check that 'rndc dumpdb' works on a empty cache.
[RT #30808]
2012-09-14 09:47:25 +10:00
Tinderbox User 006734c198 update SRCID 2012-09-13 00:15:57 +00:00
Tinderbox User 6e02beeec7 update copyright notice 2012-09-12 23:45:17 +00:00
Tinderbox User bc50f9cb0d newcopyrights 2012-09-12 23:30:04 +00:00
ckb e4263037ec 3374. [bug] isc_parse_uint32 failed to return a range error on
systems with 64 bit longs [RT #30232]
2012-09-12 15:39:30 -05:00
Tinderbox User 1fed19d4a9 update SRCID 2012-09-12 08:15:35 +00:00
Mark Andrews 2f5502d687 use binary mode for raw/fast 2012-09-12 17:45:13 +10:00
Tinderbox User 33197da4f9 update SRCID 2012-09-12 06:15:51 +00:00
Mark Andrews 4df15f2b94 Merge branch 'v9_6' of repo.isc.org:/proj/git/prod/bind9 into v9_6 2012-09-12 15:37:56 +10:00
Mark Andrews 44c8d0d555 turn binary mode on for raw/fast 2012-09-12 15:30:35 +10:00
Tinderbox User 986fe5d9a6 update SRCID 2012-09-12 04:16:01 +00:00
Mark Andrews 7278b54211 O_BINARY -> _O_BINARY 2012-09-12 13:56:22 +10:00
Tinderbox User 8cddf4ff35 update SRCID 2012-09-12 03:16:08 +00:00
Mark Andrews 22e5707efa 3373. [bug] win32: open raw files in binary mode. [RT #30944] 2012-09-12 12:04:25 +10:00
Tinderbox User 9b65e287fa update SRCID 2012-09-08 09:15:47 +00:00
Mark Andrews f4a0e3aaff 3372. [bug] Silence spurious "deleted from unreachable cache"
messages.  [RT #30501]
2012-09-08 18:16:42 +10:00
Tinderbox User 5e1cb0fff0 update SRCID 2012-09-01 00:16:02 +00:00
Tinderbox User 4d708d7eb8 newcopyrights 2012-08-31 23:30:04 +00:00
Tinderbox User c66dbce23d update SRCID 2012-08-31 02:15:43 +00:00
Mark Andrews 58085bf485 3371. [bug] AD=1 should behave like DO=1 when deciding whether to
add NS RRsets to the additional section or not.
                        [RT #30479]
2012-08-31 11:34:14 +10:00
Tinderbox User b19965e134 update SRCID 2012-08-30 04:15:56 +00:00
Mark Andrews 43f74fff0a don't call out to the internet when running test 2012-08-30 13:59:54 +10:00
Tinderbox User 19cb51c289 update SRCID 2012-08-24 07:15:50 +00:00
Mark Andrews 1221ba2fbf update 2012-08-24 17:01:22 +10:00
Tinderbox User 40f3ae7859 update SRCID 2012-08-24 05:16:58 +00:00
Mark Andrews c13f4beb43 9.6-ESV-R8 2012-08-24 14:17:25 +10:00
Mark Andrews b34173241e update CVE list 2012-08-24 14:11:57 +10:00
Mark Andrews ff56cee13c 3364. [security] Named could die on specially crafted record.
[RT #30416]
2012-08-24 14:10:48 +10:00
Tinderbox User 2bee7bd587 update SRCID 2012-08-23 08:15:58 +00:00
Mark Andrews 702cf023d3 handle doc/arm/*.html 2012-08-23 17:55:29 +10:00
Tinderbox User 145a695fc5 update SRCID 2012-08-23 06:16:04 +00:00
Mark Andrews 77ff7325ad 9.6-ESV-R8rc1 2012-08-23 15:32:45 +10:00
Tinderbox User 9b1fb5da85 update SRCID 2012-08-23 00:15:54 +00:00
Mark Andrews 5c4f03600a update 2012-08-23 09:59:17 +10:00
Tinderbox User 281b87dc88 update SRCID 2012-08-22 10:15:50 +00:00
Mark Andrews 977d6987ae change number 2012-08-22 19:24:55 +10:00
Tinderbox User fd7deb9201 update SRCID 2012-08-22 09:15:40 +00:00
Mark Andrews 58cbd8c4fd back port parse_rdata fix to handle NULL commandline 2012-08-22 18:38:46 +10:00
Tinderbox User 41ff983eeb update SRCID 2012-08-22 04:16:02 +00:00
Mark Andrews a6598d6709 3379. [bug] nsupdate terminated unexpectedly in interactive mode
if built with readline support. [RT #29550]
2012-08-22 13:55:39 +10:00
Tinderbox User 6a7dca8e8c update SRCID 2012-08-22 00:15:44 +00:00
Tinderbox User 4a8fb790b0 update copyright notice 2012-08-21 23:45:12 +00:00
Tinderbox User 1c53153757 newcopyrights 2012-08-21 23:30:03 +00:00
Tinderbox User 433a832300 update SRCID 2012-08-21 19:15:34 +00:00
Evan Hunt 6678d435cc spelling 2012-08-21 12:08:33 -07:00
Tinderbox User acba1a78d0 update SRCID 2012-08-21 07:16:09 +00:00
Mark Andrews 19f97857e4 3368. [bug] <dns/iptable.h> and <dns/zone.h> where not C++ safe. 2012-08-21 16:48:32 +10:00
Tinderbox User fb1c254dd0 update SRCID 2012-08-17 18:15:43 +00:00
ckb d026886b08 3366. [bug] Fixed Read-After-Write dependency violation for IA64
atomic operations. [RT #25181]
2012-08-17 13:07:11 -05:00
Tinderbox User 9623917ad8 update SRCID 2012-08-17 06:15:57 +00:00
Mark Andrews 734b0a4b9f clean testdir's as well 2012-08-17 16:06:24 +10:00
Tinderbox User 8bc478c05f update SRCID 2012-08-17 04:15:56 +00:00
Mark Andrews 02fefa5b52 we didn't catch a zero option at the global level when views are active 2012-08-17 13:56:20 +10:00
Tinderbox User 13e3932260 update SRCID 2012-08-16 22:15:31 +00:00
Mark Andrews 361165650f silence "t_names.c:130:7: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage" 2012-08-17 07:21:38 +10:00
Tinderbox User 6cc8b4b8fd update SRCID 2012-08-16 19:15:42 +00:00
Evan Hunt ff413dbe66 remove spurious newlines in zone.c logging
3365.	[bug]		Removed spurious newlines from log messages in
			zone.c [RT #30675]
2012-08-16 10:50:06 -07:00
Tinderbox User 3782efb7d0 update SRCID 2012-08-16 05:17:04 +00:00
Evan Hunt 44f94b4af2 specify libtool mode in DLZBDB makefile 2012-08-15 21:54:27 -07:00
Tinderbox User 8e6b6115cd update SRCID 2012-08-15 00:15:41 +00:00
Tinderbox User 3fed8757e9 update copyright notice 2012-08-14 23:45:11 +00:00
Tinderbox User 6929f23913 newcopyrights 2012-08-14 23:30:04 +00:00
Tinderbox User c9da7da070 update SRCID 2012-08-14 06:15:42 +00:00
Evan Hunt 6202b2ec2a properly range-check fields that do not allow 0
3362.	[bug]		Setting some option values to 0 in named.conf
			could trigger an assertion failure on startup.
			[RT #27730]
2012-08-13 22:52:29 -07:00
Tinderbox User cb7e02ba7f update SRCID 2012-08-14 05:15:44 +00:00
Mark Andrews 112f7c3785 test against unsigned zero 2012-08-14 14:29:47 +10:00
Tinderbox User 136d2fada0 update SRCID 2012-08-14 01:16:00 +00:00
Mark Andrews 054a9cc454 3360. [bug] 'host -w' could die. [RT #18723] 2012-08-14 11:11:23 +10:00
Tinderbox User af724aff4e update SRCID 2012-08-12 05:16:08 +00:00
Mark Andrews 58ee862835 update 2012-08-12 14:52:40 +10:00
Tinderbox User 2f65d30ad9 update SRCID 2012-08-11 04:16:39 +00:00
Evan Hunt 8dc862fe22 address memory leak with bad tsig secret
3359.	[bug]		An improperly-formed TSIG secret could cause a
                        memory leak. [RT #30607]
2012-08-10 20:23:57 -07:00
Tinderbox User ee76b2ef38 update SRCID 2012-08-05 03:15:58 +00:00
Mark Andrews 53d0f8a914 3358 [bug] Fix declaration of fatal in bin/named/server.c
and bin/nsupdate/main.c. [RT #30522]
2012-08-05 13:09:07 +10:00
Tinderbox User c9acb5511f update SRCID 2012-08-04 15:15:43 +00:00
Mark Andrews 1486f91694 Fix declaration of fatal in bin/named/server.c. 2012-08-05 01:08:27 +10:00
Tinderbox User 0b029832cd update SRCID 2012-08-02 02:15:41 +00:00
Mar Andrews dd678452b9 3357. [port] Add support for libxml2-2.8.x [RT #30440] 2012-08-02 01:53:20 +00:00
Tinderbox User 61e1d262cd update SRCID 2012-07-26 06:15:56 +00:00
Evan Hunt 4dfb52131e Merge branch 'v9_6' of ssh://repo/proj/git/prod/bind9 into v9_6 2012-07-25 22:24:15 -07:00
Evan Hunt 2f16faf485 revert rt26429 due to incompatibilities with 9.6 2012-07-25 22:22:16 -07:00
Tinderbox User 4dd24fbcf1 update SRCID 2012-07-26 05:15:46 +00:00
Mark Andrews 817bceaf01 remove test skipping 2012-07-26 14:49:56 +10:00
Evan Hunt 0953cc2c36 fix merge errors 2012-07-25 21:19:51 -07:00
Tinderbox User c53306d856 update SRCID 2012-07-26 03:15:59 +00:00
Mark Andrews 9611cd2068 remove conflict marker 2012-07-26 13:11:56 +10:00
Tinderbox User 24c06f4799 update SRCID 2012-07-26 00:15:49 +00:00
Tinderbox User 2615007d77 update copyright notice 2012-07-25 23:45:12 +00:00
Tinderbox User 2c6afd50e8 newcopyrights 2012-07-25 23:30:06 +00:00
Tinderbox User ccdb39648f update SRCID 2012-07-25 23:15:41 +00:00
ckb 8d74549a5c 3356. [bug] Cap the TTL of signed RRsets when RRSIGs are
approaching their expiry, so they don't remain
			in caches after expiry. [RT #26429]
2012-07-25 17:38:47 -05:00
Tinderbox User 58d4e6452a update SRCID 2012-07-24 07:15:35 +00:00
Evan Hunt 779ec9984d Merge branch 'v9_6' of ssh://repo/proj/git/prod/bind9 into v9_6 2012-07-23 23:31:14 -07:00
Evan Hunt 8181ca0d97 update api 2012-07-23 23:31:00 -07:00
Tinderbox User bbe6cf8aed update SRCID 2012-07-24 03:16:04 +00:00
Mark Andrews d72d9d5858 cleanup unused variables 2012-07-24 12:26:54 +10:00
Tinderbox User 70fcea59c5 update SRCID 2012-07-24 00:15:45 +00:00
Tinderbox User f69f6d9d65 update copyright notice 2012-07-23 23:45:13 +00:00
Tinderbox User a8ac2df240 newcopyrights 2012-07-23 23:30:02 +00:00
Tinderbox User ddf3b86e0b update SRCID 2012-07-23 21:15:37 +00:00
Evan Hunt 9644984506 update 2012-07-23 13:35:33 -07:00
Tinderbox User 228aed11b2 update SRCID 2012-07-23 20:15:32 +00:00
Evan Hunt 1cac29a57c fix change note 3348, bug not security 2012-07-23 12:59:48 -07:00
Evan Hunt 7bd0a3c6a2 prep 9.6-ESV-R8b1 2012-07-23 12:58:45 -07:00
Tinderbox User 013e87384b update SRCID 2012-07-23 07:15:44 +00:00
Mark Andrews 29173e699a 3354. [func] Improve OpenSSL error logging. [RT #29932] 2012-07-23 16:30:55 +10:00
Tinderbox User 598a07a616 update SRCID 2012-07-20 05:16:35 +00:00
Tinderbox User 9a3a8f524c regen v9_6 2012-07-20 04:37:04 +00:00
Tinderbox User 71083d9a1a sync 2012-07-20 04:34:43 +00:00
Tinderbox User 3eae25e2ef update SRCID 2012-07-18 05:16:52 +00:00
Mark Andrews 88e814e0e4 3352. [bug] Ensure that learned server attributes timeout of the
adb cache. [RT #29856]
2012-07-18 14:20:09 +10:00
Tinderbox User 72f2207fc5 update SRCID 2012-07-18 00:15:43 +00:00
Mark Andrews 6439173dae 3350. [bug] Memory read overrun in isc___mem_reallocate if
ISC_MEM_DEBUGCTX memory debugging flag is set.
                        [RT #30240]
2012-07-18 09:54:25 +10:00
Tinderbox User d92f5ce987 update SRCID 2012-07-09 19:15:34 +00:00
ckb 960012de77 3348. [security] prevent RRSIG data from being cached if a negative
record matching the covering type exists at a higher
			trust level. Such data already can't be retrieved from
			the cache since change 3218 -- this prevents it
			being inserted into the cache as well. [RT #26809]
2012-07-09 13:29:42 -05:00
Tinderbox User 484b950181 update SRCID 2012-07-02 17:15:30 +00:00
Evan Hunt 28aae970ea fix bad-cache assert
3346.	[security]	Bad-cache data could be used before it was
			initialized, causing an assert. [RT #30025]
2012-07-02 10:05:20 -07:00
Evan Hunt bc892cc381 wrong RT number 2012-07-02 09:28:29 -07:00
Tinderbox User 794bd47f6d update SRCID 2012-06-30 00:15:44 +00:00
Tinderbox User ae47f254c7 update copyright notice 2012-06-29 23:45:10 +00:00
Tinderbox User f149d3087f newcopyrights 2012-06-29 23:30:03 +00:00
Tinderbox User 1ed281f48e update SRCID 2012-06-29 02:15:43 +00:00
Mark Andrews 77092470f0 lost line 2012-06-29 11:47:30 +10:00
Mark Andrews 0b51f38570 reverse bad copyright update 2012-06-29 11:47:25 +10:00
Tinderbox User a4da60cb18 update copyright notice 2012-06-29 01:21:32 +00:00
Tinderbox User 95dd83a7bc update SRCID 2012-06-29 01:15:21 +00:00
Mark Andrews cbe6d5d7e1 add support for python 2012-06-29 11:06:04 +10:00
Tinderbox User cbba858415 update SRCID 2012-06-27 00:15:28 +00:00
Mark Andrews 916d7e4d87 3343. [bug] Relax isc_random_jitter() REQUIRE tests. [RT# 19821] 2012-06-27 10:06:44 +10:00
Mark Andrews eb4ad81ccb 3342. [bug] Change #3314 broke saving of stub zones to disk
resulting in excessive cpu usage in some cases.
                        [RT #29952]
2012-06-27 09:45:41 +10:00
Tinderbox User 610e44c0e1 update SRCID 2012-06-25 02:15:32 +00:00
Mark Andrews abf344768f silence compiler warning by using offsetof to get structure element offsets 2012-06-25 12:05:14 +10:00
Tinderbox User aa6802d74b update SRCID 2012-06-22 00:15:28 +00:00
Tinderbox User cf77da1598 update copyright notice 2012-06-21 23:45:09 +00:00
Tinderbox User db54e2dd5c update SRCID 2012-06-21 06:15:40 +00:00
Evan Hunt 0c0c7ae630 fix secondkey test, properly 2012-06-20 22:48:20 -07:00
Tinderbox User e1b256f3b7 update SRCID 2012-06-21 05:15:27 +00:00
Mark Andrews abc4784748 remove rundundent call 'result = isc_parse_uint8(&ui, r.base, 10);' 2012-06-21 14:32:35 +10:00
Tinderbox User 779ceee98a update SRCID 2012-06-20 22:16:10 +00:00
Evan Hunt aa3ed1b594 fixed second-key test to use correct rndc.conf 2012-06-20 15:10:01 -07:00
Tinderbox User adb73a5926 update SRCID 2012-06-15 00:15:59 +00:00
Tinderbox User 981af8798a update copyright notice 2012-06-14 23:45:08 +00:00
Tinderbox User eae6301d93 update SRCID 2012-06-14 01:15:27 +00:00
Tinderbox User 1f6c540eb5 Merge branch 'v9_6' of /proj/git/prod/bind9 into v9_6 2012-06-14 01:15:26 +00:00
Tinderbox User 8c99375816 update SRCID 2012-06-14 00:15:28 +00:00
Mark Andrews d5eb49141a only use 9.6 features 2012-06-14 10:15:08 +10:00
Mark Andrews 0dce2c6123 update 2012-06-14 09:45:19 +10:00
Mark Andrews 242af366a8 add ./bin/tests/system/rndc/ns2/secondkey.key 2012-06-14 09:42:01 +10:00
Tinderbox User b0ef27d2d7 update SRCID 2012-06-13 07:15:27 +00:00
Mark Andrews 3024c922ff 3337. [bug] Change #3294 broke support for the multiple keys
in controls. [RT #29694]
2012-06-13 16:57:23 +10:00
Tinderbox User 3873426088 update SRCID 2012-06-08 05:16:38 +00:00
Evan Hunt df79d703ed nslookup exit with error if unsuccessful
3335.	[func]		nslookup: return a nonzero exit code when unable
			to get an answer. [RT #29492]
2012-06-07 22:09:47 -07:00
Tinderbox User 8cd91651ca update SRCID 2012-06-08 04:15:45 +00:00
Mark Andrews 5af98b88f1 add # 2012-06-08 13:58:45 +10:00
Tinderbox User 26cde354f2 update SRCID 2012-06-07 03:16:05 +00:00
Mark Andrews 11496d8be5 3332. [bug] Re-use cached DS rrsets if possible. [RT 29446] 2012-06-07 13:00:00 +10:00
Tinderbox User 855af5daaa update SRCID 2012-06-02 05:15:44 +00:00
Mark Andrews d932ee4853 Merge branch 'v9_6' of repo.isc.org:/proj/git/prod/bind9 into v9_6 2012-06-02 14:55:43 +10:00
Mark Andrews d1c848f8ca add missing change note 2012-06-02 14:54:10 +10:00
Tinderbox User 863cda8fd0 update SRCID 2012-06-02 00:15:48 +00:00
Tinderbox User b40e492c83 update copyright notice 2012-06-01 23:45:12 +00:00
Tinderbox User 718be0d6a2 newcopyrights 2012-06-01 23:42:45 +00:00
Mark Andrews 390bdd73d2 add ./bin/tests/system/unknown/large.out 2012-06-02 09:41:32 +10:00
Tinderbox User 01b8938dcb update SRCID 2012-06-01 17:15:26 +00:00
Evan Hunt c149639f1a security fix
3331.	[security]	dns_rdataslab_fromrdataset could produce bad
			rdataslabs. [RT #29644]
2012-06-01 10:04:46 -07:00
Tinderbox User 446f5852c6 update SRCID 2012-06-01 11:15:27 +00:00
Mark Andrews d4b59ed307 fixup merge conflict 2012-06-01 21:10:57 +10:00
Tinderbox User 9ab672f69e update SRCID 2012-06-01 01:15:39 +00:00
Tinderbox User 05e61fc99c regen v9_6 2012-06-01 01:06:53 +00:00
Tinderbox User 4c8eb049f1 sync 2012-06-01 01:04:36 +00:00
Tinderbox User c66c4e78c9 update SRCID 2012-05-31 01:15:37 +00:00
Tinderbox User 26c0f0424c regen v9_6 2012-05-31 01:07:19 +00:00
Tinderbox User bd575ac7ec update SRCID 2012-05-30 16:15:34 +00:00
Evan Hunt 798f680440 fixed ARM typo: s/replacable/replaceable/ 2012-05-30 08:17:25 -07:00
Tinderbox User ed9062cb49 update SRCID 2012-05-21 05:41:13 +00:00
Mark Andrews 938a013c39 portability awk add space between -v and it's argument, if anything has changed add ./COPYRIGHT 2012-05-21 15:19:21 +10:00
Tinderbox User f9e63ab5d9 update SRCID 2012-05-21 01:15:41 +00:00
Mark Andrews 83f94c2255 awk and toupper is not portable, use sed instead 2012-05-21 10:18:46 +10:00
Tinderbox User 84e7b77ba8 update SRCID 2012-05-21 00:15:27 +00:00
Tinderbox User 43da4bdf27 update SRCID 2012-05-20 00:15:22 +00:00
Tinderbox User c6076cafe2 update SRCID 2012-05-19 00:15:36 +00:00
Tinderbox User 37ab9b45c7 update SRCID 2012-05-18 00:15:47 +00:00
Tinderbox User 76c46f0fd3 update copyright notice 2012-05-17 23:45:10 +00:00
Evan Hunt 6de0ec806a Merge branch 'v9_6' of ssh://repo/proj/git/prod/bind9 into v9_6 2012-05-17 16:33:04 -07:00
Evan Hunt 1ac5fa17b0 fix check_data() usage
3328.   [bug]           Fixed inconsistent data checking in dst_parse.c.
                        [RT #29401]
2012-05-17 16:31:59 -07:00
Tinderbox User ba6db14388 newcopyrights 2012-05-17 23:30:09 +00:00
Tinderbox User 65c60ad5eb update SRCID 2012-05-17 22:15:27 +00:00
Evan Hunt cee7943a1b some files were not cleaned up 2012-05-17 14:59:33 -07:00
Tinderbox User 4bdc863453 update SRCID 2012-05-17 19:15:35 +00:00
Evan Hunt c92cfa7eae Handle RRSIG signer case consistently
3329.	[bug]	Handle RRSIG signer-name case consistently: We
		generate RRSIG records with the signer-name in
		lower case.  We accept them with any case, but if
		they fail to validate, we try again in lower case.
		[RT #27451]
2012-05-17 11:39:23 -07:00
Tinderbox User 511687b15b update SRCID 2012-05-17 00:15:20 +00:00
Tinderbox User 6950929fa4 update SRCID 2012-05-16 00:15:42 +00:00
Tinderbox User 4d588491b1 update SRCID 2012-05-15 00:15:42 +00:00
Tinderbox User a7021ba3f7 update SRCID 2012-05-14 00:15:35 +00:00
Tinderbox User 758ea2a01d update SRCID 2012-05-13 00:15:22 +00:00
Tinderbox User 522f945e0f update SRCID 2012-05-12 00:15:35 +00:00
Tinderbox User 857d8059b1 update SRCID 2012-05-11 00:15:35 +00:00
Tinderbox User f9d2229db9 update SRCID 2012-05-10 00:15:45 +00:00
Tinderbox User ed420395f8 update SRCID 2012-05-09 23:15:28 +00:00
Mark Andrews 1511cda8b6 3318. [tuning] Reduce the amount of work performed while holding a
bucket lock when finshed with a fetch context.
                        [RT #29239]
2012-05-10 08:46:41 +10:00
Tinderbox User d151fbee99 update SRCID 2012-05-09 00:15:35 +00:00
Tinderbox User 477048a7c4 update SRCID 2012-05-08 00:15:23 +00:00
Tinderbox User 69f057944f update SRCID 2012-05-07 00:15:21 +00:00
Tinderbox User 485196a4cc update SRCID 2012-05-06 00:15:25 +00:00
Tinderbox User e95785a789 update SRCID 2012-05-05 00:15:29 +00:00
Tinderbox User 12de90c2cc update SRCID 2012-05-04 00:15:31 +00:00
Tinderbox User f2ab2af3b7 update SRCID 2012-05-03 01:15:20 +00:00
Tinderbox User 5f764bca6e regen v9_6 2012-05-03 01:07:06 +00:00
Tinderbox User cdd128b849 sync 2012-05-03 01:04:48 +00:00
Tinderbox User 03f1bb8356 sync 2012-05-03 01:04:48 +00:00
Tinderbox User fa733320ca update SRCID 2012-05-03 00:15:40 +00:00
Tinderbox User a4c2a6271b update SRCID 2012-05-02 00:15:26 +00:00
Tinderbox User f4dd256dde update SRCID 2012-05-01 00:15:26 +00:00
Tinderbox User 131e246c26 update SRCID 2012-04-30 00:15:37 +00:00
Tinderbox User 6b27b3f08e update SRCID 2012-04-29 00:15:29 +00:00
Tinderbox User 56afba572b update SRCID 2012-04-28 00:15:20 +00:00
Tinderbox User f0ab2408bf update SRCID 2012-04-27 13:15:25 +00:00
Mark Andrews 5d439f5238 9.6-ESV-R7 2012-04-27 23:08:23 +10:00
Tinderbox User 9787eb680b update SRCID 2012-04-27 12:15:32 +00:00
Mark Andrews 40af8b5475 Merge branch 'v9_6' of repo.isc.org:/proj/git/prod/bind9 into v9_6 2012-04-27 21:25:36 +10:00
Mark Andrews 67546361cb 3197. [bug] Don't try to log the filename and line number when
the config parser can't open a file. [RT #22263]
2012-04-27 21:24:43 +10:00
Tinderbox User b512d3659f update SRCID 2012-04-27 11:15:23 +00:00
Mark Andrews 453a4b6c3a 3232. [bug] Zero zone->curmaster before return in
dns_zone_setmasterswithkeys(). [RT #26732]
2012-04-27 21:06:01 +10:00
Mark Andrews d4a9f3b6cb de-dup 2012-04-27 18:39:06 +10:00
Mark Andrews 2667843e65 sort, whitespace 2012-04-27 18:33:29 +10:00
Mark Andrews c93fb40e31 whitespace 2012-04-27 18:32:46 +10:00
Tinderbox User f8cb5e5bc3 update SRCID 2012-04-27 08:15:34 +00:00
Tinderbox User 57299225a4 update SRCID 2012-04-27 07:15:37 +00:00
Tinderbox User 0bdc53c9ba update copyright notice 2012-04-27 06:37:41 +00:00
Mark Andrews 8b27fd4b29 only report different text if not in EXCLUDED 2012-04-27 16:31:40 +10:00
Tinderbox User 28bf17cf58 update SRCID 2012-04-27 04:15:40 +00:00
Tinderbox User f8dda3b299 update copyright notice 2012-04-27 04:02:41 +00:00
Tinderbox User 72a5b0d53e newcopyrights 2012-04-27 04:01:20 +00:00
Tinderbox User 79b014d60b update SRCID 2012-04-27 03:15:45 +00:00
Mark Andrews 36c1751de0 check if the pdf version of the ARM needs to be committed 2012-04-27 12:29:19 +10:00
Tinderbox User fd0583a479 update SRCID 2012-04-27 01:15:30 +00:00
Mark Andrews 74203f8f02 sync with master 2012-04-27 10:48:13 +10:00
Tinderbox User 8aa6e8da60 update SRCID 2012-04-27 00:15:24 +00:00
Tinderbox User 675eac11d7 newcopyrights 2012-04-26 23:30:05 +00:00
Tinderbox User 480e8334e9 update SRCID 2012-04-26 12:15:24 +00:00
Mark Andrews 0992569f34 remove casecompare_tlsa as it is only needed in [C9.7 and later 2012-04-26 18:27:54 +10:00
Tinderbox User 45fe615138 update SRCID 2012-04-26 05:15:46 +00:00
Mark Andrews fea1c98c87 3314. [bug] The masters list could be updated while refesh_callback
and stub_callback were using it. [RT #26732]
2012-04-26 14:39:00 +10:00
Tinderbox User 1d1958439c update SRCID 2012-04-26 03:15:51 +00:00
Mark Andrews 967fa276cf 3313. [protocol] Add TLSA record type. [RT #28989] 2012-04-26 12:41:39 +10:00
Tinderbox User f66a5412c7 update SRCID 2012-04-26 02:15:25 +00:00
Mark Andrews d3a3cf39e2 3312. [bug] named-checkconf didn't detect a bad dns64 clients acl.
[RT #27631]
2012-04-26 11:51:18 +10:00
Mark Andrews cb994f41ba 3311. [bug] Abort the zone dump if zone->db is NULL in
zone.c:zone_gotwritehandle. [RT #29028]
2012-04-26 11:35:57 +10:00
Tinderbox User 694ffc6b26 update SRCID 2012-04-26 00:15:35 +00:00
Tinderbox User e2b1577e08 update SRCID 2012-04-25 00:15:34 +00:00
Evan Hunt 8a4656e335 increase table size for mutex profiling 2012-04-24 16:53:29 -07:00
Tinderbox User 05f3f36cb9 update SRCID 2012-04-24 22:15:27 +00:00
Evan Hunt fa31ca157f fctx_finddone: call fctx_destroy within the bucket lock 2012-04-24 15:07:43 -07:00
Tinderbox User d920a41f95 update SRCID 2012-04-24 00:15:23 +00:00
Tinderbox User ac902d0eec newcopyrights 2012-04-23 23:30:07 +00:00
Tinderbox User 093ebbed91 update SRCID 2012-04-23 16:15:24 +00:00
Evan Hunt b6a40587a9 fix .gitignore files 2012-04-23 09:10:09 -07:00
Tinderbox User 6294217721 update SRCID 2012-04-23 00:15:35 +00:00
Tinderbox User a18b781fac update SRCID 2012-04-22 00:15:38 +00:00
Tinderbox User 49c4cbffbe update SRCID 2012-04-21 00:15:32 +00:00
Tinderbox User aa524d66eb update SRCID 2012-04-20 00:15:26 +00:00
Tinderbox User f612ce4746 update SRCID 2012-04-19 14:16:06 +00:00
Scott Mann d02f8030f0 removed rfc5011.txt from contrib in tarball 2012-04-19 08:04:17 -06:00
Tinderbox User 74da435353 update SRCID 2012-04-19 00:15:33 +00:00
Tinderbox User 56aec60ae3 update SRCID 2012-04-18 00:15:38 +00:00
Tinderbox User 7a75bfd9f7 update SRCID 2012-04-17 00:15:27 +00:00
Tinderbox User 877d3b185b update SRCID 2012-04-16 00:15:31 +00:00
Tinderbox User a330dec0b5 update SRCID 2012-04-15 00:15:40 +00:00
Tinderbox User 970eeaff20 update SRCID 2012-04-14 00:15:28 +00:00
Tinderbox User f0ada6657d update SRCID 2012-04-13 00:15:42 +00:00
Tinderbox User 00ff6766dd update SRCID 2012-04-12 23:15:36 +00:00
Mark Andrews fbc355b20c 3307. [bug] Add missing ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS.
[RT #28956]
2012-04-13 08:46:00 +10:00
Tinderbox User c949afb3c1 update SRCID 2012-04-12 05:15:40 +00:00
Evan Hunt 8a593376be remove release-notes.css 2012-04-11 21:25:05 -07:00
Tinderbox User 4aa8caeb53 update SRCID 2012-04-12 00:15:40 +00:00
Tinderbox User cc86c4f840 update SRCID 2012-04-11 03:15:32 +00:00
Mark Andrews 5f69cd48c9 Merge branch 'v9_6' of repo.isc.org:/proj/git/prod/bind9 into v9_6 2012-04-11 12:36:40 +10:00
Mark Andrews 3b24367a06 rt28563 2012-04-11 12:36:19 +10:00
Tinderbox User 628a7e5c60 update SRCID 2012-04-11 02:15:10 +00:00
Mark Andrews 3cd63e9198 add the ability to override --remote 2012-04-11 11:34:04 +10:00
Tinderbox User 1cd0e02533 update SRCID 2012-04-11 01:15:36 +00:00
Mark Andrews e5602180dc 3304. [bug] Use hmctx, not mctx when freeing rbtdb->heaps. [RT #28571] 2012-04-11 10:52:26 +10:00
Tinderbox User 3c83ce9313 update SRCID 2012-04-11 00:15:20 +00:00
Tinderbox User 0df5975731 update SRCID 2012-04-10 07:16:49 +00:00
Mark Andrews 8dc21f361a use --remote=cvs.isc.org:/proj/git/prod/bind9.git 2012-04-10 16:24:07 +10:00
Tinderbox User e71e4a4cdd update SRCID 2012-04-10 00:15:59 +00:00
Tinderbox User 4e5042b224 update SRCID 2012-04-09 00:16:39 +00:00
Tinderbox User dfce21d27b update SRCID 2012-04-08 00:16:42 +00:00
Tinderbox User ccced33af3 update SRCID 2012-04-07 00:16:36 +00:00
Tinderbox User d3ff406fca update SRCID 2012-04-06 00:15:06 +00:00
Tinderbox User df2a88e2b8 update SRCID 2012-04-05 00:16:12 +00:00
Tinderbox User ce910b013f update SRCID 2012-04-04 00:16:25 +00:00
Tinderbox User 4b500a80b4 update SRCID 2012-04-03 00:16:09 +00:00
Tinderbox User 2e67f6cd68 update SRCID 2012-04-02 00:16:42 +00:00
Tinderbox User 983a82b5f7 update SRCID 2012-04-01 00:16:20 +00:00
Tinderbox User 0f86ffd4b6 update SRCID 2012-03-31 00:16:41 +00:00
Tinderbox User b1803c627b update SRCID 2012-03-30 01:16:47 +00:00
Mark Andrews b3afec046e dns_dnssec_findmatchingkeys isn't supported in 9.6 2012-03-30 12:11:39 +11:00
Tinderbox User b26782a1df update SRCID 2012-03-30 00:16:15 +00:00
Tinderbox User dbab5b0036 newcopyrights 2012-03-29 23:30:04 +00:00
Tinderbox User 9c7a8dc753 update SRCID 2012-03-29 00:16:46 +00:00
Mark Andrews 68864dc2a9 3301. [contrib] Update queryperf to build on darwin. Add -R flag
for non-recursive queries. [RT #28565]
2012-03-29 10:35:10 +11:00
Tinderbox User 60cd8bcc56 update SRCID 2012-03-28 23:15:46 +00:00
Mark Andrews 8e7aa4e1a8 3300. [bug] Named could die if gssapi was enabled in named.conf
but was not compiled in. [RT #28338]
2012-03-29 09:56:58 +11:00
Tinderbox User d38b0e91a3 update SRCID 2012-03-28 00:16:12 +00:00
Mark Andrews f694d83e78 3299. [bug] Make SDB handle errors from database drivers better.
[RT #28534]
2012-03-28 10:37:28 +11:00
Tinderbox User 03c4e32d48 update SRCID 2012-03-27 00:15:39 +00:00
Tinderbox User 6a658a8677 update SRCID 2012-03-26 17:15:40 +00:00
906 changed files with 70148 additions and 53237 deletions
+635 -30
View File
@@ -1,3 +1,608 @@
--- 9.6-ESV-R11b1 released ---
3679. [bug] dig could fail to clean up TCP sockets still
waiting on connect(). [RT #35074]
3678. [port] Update config.guess and config.sub. [RT #35060]
3677. [bug] 'nsupdate' leaked memory if 'realm' was used multiple
times. [RT #35073]
3676. [bug] "named-checkconf -z" now checks zones of type
hint as well as master. [RT #35046]
3675. [misc] Provide a place for third parties to add version
information for their extensions in the version
file by setting the EXTENSIONS variable.
3670. [bug] Address read after free in server side of
lwres_getrrsetbyname. [RT #29075]
3669. [port] freebsd: --with-gssapi needs -lhx509. [RT #35001]
3668. [bug] Fix cast in lex.c which could see 0xff treated as eof.
[RT #34993]
3667. [test] dig: add support to keep the TCP socket open between
successive queries (+[no]keepopen). [RT #34918]
3663. [bug] Address bugs in dns_rdata_fromstruct and
dns_rdata_tostruct for WKS and ISDN types. [RT #34910]
3662. [bug] 'host' could die if a UDP query timed out. [RT #34870]
3660. [cleanup] Changed the name of "isc-config.sh" to "bind9-config".
[RT #23825]
3658. [port] linux: Address platform specific compilation issue
when libcap-devel is installed. [RT #34838]
3656. [bug] Treat an all zero netmask as invalid when generating
the localnets acl. [RT #34687]
3655. [cleanup] Simplify TCP message processing when requesting a
zone transfer. [RT #34825]
3654. [bug] Address race condition with manual notify requests.
[RT #34806]
3653. [func] Create delegations for all "children" of empty zones
except "forward first". [RT #34826]
3651. [tuning] Adjust when a master server is deemed unreachable.
[RT #27075]
3650. [tuning] Use separate rate limiting queues for refresh and
notify requests. [RT #30589]
3648. [test] Updated the ATF test framework to version 0.17.
[RT #25627]
3646. [bug] Journal filename string could be set incorrectly,
causing garbage in log messages. [RT #34738]
3645. [protocol] Use case sensitive compression when responding to
queries. [RT #34737]
3644. [protocol] Check that EDNS subnet client options are well formed.
[RT #34718]
3641. [bug] Handle changes to sig-validity-interval settings
better. [RT #34625]
3640. [bug] ndots was not being checked when searching. Only
continue searching on NXDOMAIN responses. Add the
ability to specify ndots to nslookup. [RT #34711]
--- 9.6-ESV-R10 released ---
3638. [cleanup] Add the ability to handle ENOPROTOOPT in case it is
encountered. [RT #34668]
--- 9.6-ESV-R10rc2 released ---
3637. [bug] 'allow-query-on' was checking the source address
rather than the destination address. [RT #34590]
3636. [bug] Automatic empty zones now behave better with
forward only "zones" beneath them. [RT #34583]
3634. [func] Report build-id in rndc status. Report build-id
when building from a git repository. [RT #20422]
3633. [cleanup] Refactor OPT processing in named to make it easier
to support new EDNS options. [RT #34414]
3631. [bug] Remove spurious warning about missing signatures when
qtype is SIG. [RT #34600]
3630. [bug] Ensure correct ID computation for MD5 keys. [RT #33033]
3625. [bug] Don't send notify messages to machines outside of the
test setup.
--- 9.6-ESV-R10rc1 released ---
3615. [cleanup] "configure" now finishes by printing a summary
of optional BIND features and whether they are
active or inactive. ("configure --enable-full-report"
increases the verbosity of the summary.) [RT #31777]
3614. [port] Check for <linux/types.h>. [RT #34162]
3611. [bug] Improved resistance to a theoretical authentication
attack based on differential timing. [RT #33939]
3608. [port] win32: added todos.pl script to ensure all text files
the win32 build depends on are converted to DOS
newline format. [RT #22067]
--- 9.6-ESV-R10b1 released ---
3605. [port] win32: Addressed several compatibility issues
with newer versions of Visual Studio. [RT #33916]
3603. [bug] Install <isc/stat.h>. [RT #33956]
3600. [cleanup] dig: Fixed a typo in the warning output when receiving
an oversized response. [RT #33910]
3599. [tuning] Check for pointer equivalence in name comparisons.
[RT #18125]
3594. [maint] Update config.guess and config.sub. [RT #33816]
3592. [doc] Moved documentation of rndc command options to the
rndc man page. [RT #33506]
3588. [bug] dig: addressed a memory leak in the sigchase code
that could cause a shutdown crash. [RT #33733]
3587. [func] 'named -g' now checks the logging configuration but
does not use it. [RT #33473]
3586. [bug] Handle errors in xmlDocDumpFormatMemoryEnc. [RT #33706]
3584. [security] Caching data from an incompletely signed zone could
trigger an assertion failure in resolver.c
(CVE-2013-3919). [RT #33690]
3583. [bug] Address memory leak in GSS-API processing [RT #33574]
3581. [bug] Changed the tcp-listen-queue default to 10. [RT #33029]
3580. [bug] Addressed a possible race in acache.c [RT #33602]
3578. [bug] 'rndc -c file' now fails if 'file' does not exist.
[RT #33571]
3577. [bug] Handle zero TTL values better. [RT #33411]
3576. [bug] Address a shutdown race when validating. [RT #33573]
3574. [doc] The 'hostname' keyword was missing from server-id
description in the named.conf man page. [RT #33476]
--- 9.6-ESV-R9 released ---
3568. [cleanup] Add a product description line to the version file,
to be reported by named -v/-V. [RT #33366]
3567. [bug] Silence clang static analyzer warnings. [RT #33365]
3563. [contrib] zone2sqlite failed with some table names. [RT #33375]
3561. [bug] dig: issue a warning if an EDNS query returns FORMERR
or NOTIMP. Adjust usage message. [RT #33363]
--- 9.6-ESV-R9rc2 released ---
3560. [bug] isc-config.sh did not honor includedir and libdir
when set via configure. [RT #33345]
3559. [func] Check that both forms of Sender Policy Framework
records exist or do not exist. [RT #33355]
3558. [bug] IXFR of a DLZ stored zone was broken. [RT #33331]
3556. [maint] Added AAAA for D.ROOT-SERVERS.NET.
3555. [bug] Address theoretical race conditions in acache.c
(change #3553 was incomplete). [RT #33252]
3553. [bug] Address suspected double free in acache. [RT #33252]
3552. [bug] Wrong getopt option string for 'nsupdate -r'.
[RT #33280]
3549. [doc] Documentation for "request-nsid" was missing.
[RT #33153]
3548. [bug] The NSID request code in resolver.c was broken
resulting in invalid EDNS options being sent.
[RT #33153]
3547. [bug] Some malformed unknown rdata records were not properly
detected and rejected. [RT #33129]
3056. [func] Added support for URI resource record. [RT #23386]
2565. [func] Add support for HIP record. Includes new functions
dns_rdata_hip_first(), dns_rdata_hip_next()
and dns_rdata_hip_current(). [RT #19384]
--- 9.6-ESV-R9rc1 released ---
3546. [func] Add EUI48 and EUI64 types. [RT #33082]
3543. [bug] Update socket structure before attaching to socket
manager after accept. [RT #33084]
3542. [test] masterformat system test was broken. [RT #33086]
3541. [bug] Parts of libdns were not properly initialized when
built in libexport mode. [RT #33028]
3540. [test] libt_api: t_info and t_assert were not thread safe.
3539. [port] win32: timestamp format didn't match other platforms.
3538. [test] Running "make test" now requires loopback interfaces
to be set up. [RT #32452]
3535. [bug] Minor win32 cleanups. [RT #32962]
3534. [bug] Extra text after an embedded NULL was ignored when
parsing zone files. [RT #32699]
3533. [contrib] query-loc-0.4.0: memory leaks. [RT #32960]
3532. [contrib] zkt: fixed buffer overrun, resource leaks. [RT #32960]
3531. [bug] win32: A uninitialized value could be returned on out
of memory. [RT #32960]
3530. [contrib] Better RTT tracking in queryperf. [RT #30128]
3526. [cleanup] Set up dependencies for unit tests correctly during
build. [RT #32803]
3520. [bug] 'mctx' was not being referenced counted in some places
where it should have been. [RT #32794]
--- 9.6-ESV-R9b2 released ---
3517. [bug] Reorder destruction to avoid shutdown race. [RT #32777]
3515. [port] '%T' is not portable in strftime(). [RT #32763]
3509. [cleanup] Added a product line to version file to allow for
easy naming of different products (BIND
vs BIND ESV, for example). [RT #32755]
3508. [contrib] queryperf was incorrectly rejecting the -T option.
[RT #32338]
3503. [doc] Clarify size_spec syntax. [RT #32449]
3499. [doc] Corrected ARM documentation of built-in zones.
[RT #32694]
3498. [bug] zone statistics for zones which matched a potential
empty zone could have their zone-statistics setting
overridden.
3489. [bug] --enable-developer now turns on ISC_LIST_CHECKINIT.
When cloning a rdataset do not copy the link contents.
[RT #32651]
3487. [bug] Change 3444 was not complete. There was a additional
place where the NOQNAME proof needed to be saved.
[RT #32629]
3481. [cleanup] Removed use of const const in atf.
3479. [bug] Address potential memory leaks in gssapi support
code. [RT #32405]
3478. [port] Fix a build failure in strict C99 environments
[RT #32475]
3474. [bug] nsupdate could assert when the local and remote
address families didn't match. [RT #22897]
--- 9.6-ESV-R9b1 released ---
3465. [bug] Handle isolated reserved ports. [RT #31778]
3462. [doc] Clarify server selection behavior of dig when using
-4 or -6 options. [RT #32181]
3461. [bug] Negative responses could incorrectly have AD=1
set. [RT #32237]
3458. [bug] Return FORMERR when presented with a overly long
domain named in a request. [RT #29682]
3457. [protocol] Add ILNP records (NID, LP, L32, L64). [RT #31836]
3456. [port] g++47: ATF failed to compile. [RT #32012]
3455. [contrib] queryperf: fix getopt option list. [RT #32338]
3454. [port] sparc64: improve atomic support. [RT #25182]
3452. [bug] Accept duplicate singleton records. [RT #32329]
3451. [port] Increase per thread stack size from 64K to 1M.
[RT #32230]
3450. [bug] Stop logfileconfig system test spam system logs.
[RT #32315]
3449. [bug] gen.c: use the pre-processor to construct format
strings so that compiler can perform sanity checks;
check the snprintf results. [RT #17576]
3448. [bug] The allow-query-on ACL was not processed correctly.
[RT #29486]
3447. [port] Add support for libxml2-2.9.x [RT #32231]
3446. [port] win32: Add source ID (see change #3400) to build.
[RT #31683]
3445. [bug] Warn about zone files with blank owner names
immediately after $ORIGIN directives. [RT #31848]
3444. [bug] The NOQNAME proof was not being returned from cached
insecure responses. [RT #21409]
3442. [port] Net::DNS 0.69 introduced a non backwards compatible
change. [RT #32216]
3441. [maint] D.ROOT-SERVERS.NET is now 199.7.91.13.
3440. [bug] Reorder get_key_struct to not trigger a assertion when
cleaning up due to out of memory error. [RT #32131]
3439. [bug] contrib/dlz error checking fixes. [RT #32102]
3438. [bug] Don't accept unknown data escape in quotes. [RT #32031]
3437. [bug] isc_buffer_init -> isc_buffer_constinit to initialize
buffers with constant data. [RT #32064]
3436. [bug] Check malloc/calloc return values. [RT #32088]
3435. [bug] Cross compilation support in configure was broken.
[RT #32078]
3430. [bug] win32: isc_time_formatISO8601 was missing the
'T' between the date and time. [RT #32044]
3429. [bug] dns_zone_getserial2 could a return success without
returning a valid serial. [RT #32007]
3428. [cleanup] dig: Add timezone to date output. [RT #2269]
3427. [bug] dig +trace incorrectly displayed name server
addresses instead of names. [RT #31641]
3425. [bug] "acacheentry" reference counting was broken resulting
in use after free. [RT #31908]
3421. [bug] Named loops when re-signing if all keys are offline.
[RT #31916]
3420. [bug] Address VPATH compilation issues. [RT #31879]
3419. [bug] Memory leak on validation cancel. [RT #31869]
3415. [bug] named could die with a REQUIRE failure if a validation
was canceled. [RT #31804]
3412. [bug] Copy timeval structure from control message data.
[RT #31548]
3411. [tuning] Use IPV6_USE_MIN_MTU or equivalent with TCP in addition
to UDP. [RT #31690]
3410. [bug] Addressed Coverity warnings. [RT #31626]
3409. [contrib] contrib/dane/mkdane.sh: Tool to generate TLSA RR's
from X.509 certificates, for use with DANE
(DNS-based Authentication of Named Entities).
[RT #30513]
3406. [bug] mem.c: Fix compilation errors when building with
ISC_MEM_TRACKLINES or ISC_MEMPOOL_NAMES disabled.
Also, ISC_MEM_DEBUG is no longer optional. [RT #31559]
3405. [bug] Handle time going backwards in acache. [RT #31253]
3404. [bug] dnssec-signzone: When re-signing a zone, remove
RRSIG and NSEC records from nodes that used to be
in-zone but are now below a zone cut. [RT #31556]
3403. [bug] Silence noisy OpenSSL logging. [RT #31497]
3402. [test] The IPv6 interface numbers used for system
tests were incorrect on some platforms. [RT #25085]
3401. [bug] Addressed Coverity warnings. [RT #31484]
3400. [cleanup] "named -V" can now report a source ID string, defined
in the "srcid" file in the build tree and normally set
to the most recent git hash. [RT #31494]
3397. [bug] dig crashed when using +nssearch with +tcp. [RT #25298]
3396. [bug] OPT records were incorrectly removed from signed,
truncated responses. [RT #31439]
3395. [protocol] Add RFC 6598 reverse zones to built in empty zones
list, 64.100.IN-ADDR.ARPA ... 127.100.IN-ADDR.ARPA.
[RT #31336]
3394. [bug] Adjust 'successfully validated after lower casing
signer' log level and category. [RT #31414]
3393. [bug] 'host -C' could core dump if REFUSED was received.
[RT #31381]
3391. [bug] A DNSKEY lookup that encountered a CNAME failed.
[RT #31262]
3390. [bug] Silence clang compiler warnings. [RT #30417]
3389. [bug] Always return NOERROR (not 0) in TSIG. [RT #31275]
3388. [bug] Fixed several Coverity warnings.
Note: This change includes a fix for a bug that
was subsequently determined to be an exploitable
security vulnerability, CVE-2012-5688: named could
die on specific queries with dns64 enabled.
[RT #30996]
3386. [bug] Address locking violation when generating new NSEC /
NSEC3 chains. [RT #31224]
3382. [bug] SOA query from slave used use-v6-udp-ports range,
if set, regardless of the address family in use.
[RT #24173]
3381. [contrib] Update queryperf to support more RR types.
[RT #30762]
3380. [bug] named could die if a nonexistent master list was
referenced in a also-notify. [RT #31004]
3379. [bug] isc_interval_zero and isc_time_epoch should be
"const (type)* const". [RT #31069]
3376. [bug] Lack of EDNS support was being recorded without a
successful response. [RT #30811]
3375. [func] Check that 'rndc dumpdb' works on a empty cache.
[RT #30808]
3374. [bug] isc_parse_uint32 failed to return a range error on
systems with 64 bit longs. [RT #30232]
3372. [bug] Silence spurious "deleted from unreachable cache"
messages. [RT #30501]
3371. [bug] AD=1 should behave like DO=1 when deciding whether to
add NS RRsets to the additional section or not.
[RT #30479]
2512. [func] Print a summary of the cached records which make up
the negative response. [RT #18885]
--- 9.6-ESV-R8 released ---
3383. [security] A certain combination of records in the RBT could
cause named to hang while populating the additional
section of a response. [RT #31090]
3373. [bug] win32: open raw files in binary mode. [RT #30944]
3364. [security] Named could die on specially crafted record.
[RT #30416]
--- 9.6-ESV-R8rc1 released ---
3369. [bug] nsupdate terminated unexpectedly in interactive mode
if built with readline support. [RT #29550]
3368. [bug] <dns/iptable.h> and <dns/zone.h> were not C++ safe.
3366. [bug] Fixed Read-After-Write dependency violation for IA64
atomic operations. [RT #25181]
3365. [bug] Removed spurious newlines from log messages in
zone.c [RT #30675]
3362. [bug] Setting some option values to 0 in named.conf
could trigger an assertion failure on startup.
[RT #27730]
3360. [bug] 'host -w' could die. [RT #18723]
3359. [bug] An improperly-formed TSIG secret could cause a
memory leak. [RT #30607]
3358. [bug] Fix declaration of fatal in bin/named/server.c
and bin/nsupdate/main.c. [RT #30522]
3357. [port] Add support for libxml2-2.8.x [RT #30440]
--- 9.6-ESV-R8b1 released ---
3354. [func] Improve OpenSSL error logging. [RT #29932]
3352. [bug] Ensure that learned server attributes timeout of the
adb cache. [RT #29856]
3350. [bug] Memory read overrun in isc___mem_reallocate if
ISC_MEM_DEBUGCTX memory debugging flag is set.
[RT #30240]
3348. [bug] Prevent RRSIG data from being cached if a negative
record matching the covering type exists at a higher
trust level. Such data already can't be retrieved from
the cache since change 3218 -- this prevents it
being inserted into the cache as well. [RT #26809]
3346. [security] Bad-cache data could be used before it was
initialized, causing an assert. [RT #30025]
3343. [bug] Relax isc_random_jitter() REQUIRE tests. [RT #29821]
3342. [bug] Change #3314 broke saving of stub zones to disk
resulting in excessive cpu usage in some cases.
[RT #29952]
3337. [bug] Change #3294 broke support for the multiple keys
in controls. [RT #29694]
3335. [func] nslookup: return a nonzero exit code when unable
to get an answer. [RT #29492]
3332. [bug] Re-use cached DS rrsets if possible. [RT #29446]
3331. [security] dns_rdataslab_fromrdataset could produce bad
rdataslabs. [RT #29644]
3329. [bug] Handle RRSIG signer-name case consistently: We
generate RRSIG records with the signer-name in
lower case. We accept them with any case, but if
they fail to validate, we try again in lower case.
[RT #27451]
3328. [bug] Fixed inconsistent data checking in dst_parse.c.
[RT #29401]
--- 9.6-ESV-R7 released ---
3318. [tuning] Reduce the amount of work performed while holding a
bucket lock when finished with a fetch context.
[RT #29239]
3314. [bug] The masters list could be updated while stub_callback
or refresh_callback were using it. [RT #26732]
3313. [protocol] Add TLSA record type. [RT #28989]
3311. [bug] Abort the zone dump if zone->db is NULL in
zone.c:zone_gotwritehandle. [RT #29028]
3310. [test] Increase table size for mutex profiling. [RT #28809]
3309. [bug] resolver.c:fctx_finddone() was not thread safe.
[RT #27995]
3307. [bug] Add missing ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS.
[RT #28956]
3304. [bug] Use hmctx, not mctx when freeing rbtdb->heaps.
[RT #28571]
3301. [contrib] Update queryperf to build on darwin. Add -R flag
for non-recursive queries. [RT #28565]
3300. [bug] Named could die if gssapi was enabled in named.conf
but was not compiled in. [RT #28338]
3299. [bug] Make SDB handle errors from database drivers better.
[RT #28534]
3232. [bug] Zero zone->curmaster before return in
dns_zone_setmasterswithkeys(). [RT #26732]
3197. [bug] Don't try to log the filename and line number when
the config parser can't open a file. [RT #22263]
--- 9.6-ESV-R6 released ---
3298. [bug] Named could dereference a NULL pointer in
@@ -39,7 +644,7 @@
despite succeeding over the loopback interface.
[RT #27782]
3374. [bug] Log when a zone is not reusable. Only set loadtime
3274. [bug] Log when a zone is not reusable. Only set loadtime
on successful loads. [RT #27650]
3268. [bug] Convert RRSIG expiry times to 64 timestamps to work
@@ -100,7 +705,7 @@
3234. [bug] 'make depend' produced invalid makefiles. [RT #26830]
3231. [bug] named could fail to send a uncompressable zone.
3231. [bug] named could fail to send a incompressible zone.
[RT #26796]
3230. [bug] 'dig axfr' failed to properly handle a multi-message
@@ -116,7 +721,7 @@
--- 9.6-ESV-R6b1 released ---
3221. [bug] Fixed a potential coredump on shutdown due to
3221. [bug] Fixed a potential core dump on shutdown due to
referencing fetch context after it's been freed.
[RT #26720]
@@ -132,7 +737,7 @@
list prior to adding a reference to it leading a
possible assertion failure. [RT #23219]
3208. [bug] 'dig -y' handle unknown tsig alorithm better.
3208. [bug] 'dig -y' handle unknown tsig algorithm better.
[RT #25522]
3207. [contrib] Fixed build error in Berkeley DB DLZ module. [RT #26444]
@@ -168,7 +773,7 @@
3189. [test] Added a summary report after system tests. [RT #25517]
3187. [port] win32: support for Visual Studio 2008. [RT #26356]
3187. [port] win32: support for Visual Studio 2008. [RT #26356]
3179. [port] kfreebsd: build issues. [RT #26273]
@@ -201,7 +806,7 @@
an assert. [RT #25452]
3151. [bug] Queries for type RRSIG or SIG could be handled
incorrectly. [RT #21050]
incorrectly. [RT #21050]
3149. [tuning] Improve scalability by allocating one zone
task per 100 zones at startup time. (The
@@ -213,7 +818,7 @@
3148. [bug] Processing of normal queries could be stalled when
forwarding a UPDATE message. [RT #24711]
3146. [test] Fixed gcc4.6.0 errors in ATF. [RT #25598]
3146. [test] Fixed gcc4.6.0 errors in ATF. [RT #25598]
3145. [test] Capture output of ATF unit tests in "./atf.out" if
there were any errors while running them. [RT #25527]
@@ -273,10 +878,10 @@
dns_rdataset_totext() that could cause named to
crash with an assertion failure. [RT #24777]
3121. [security] An authoritative name server sending a negative
response containing a very large RRset could
trigger an off-by-one error in the ncache code
and crash named. [RT #24650]
3121. [security] An authoritative name server sending a negative
response containing a very large RRset could
trigger an off-by-one error in the ncache code
and crash named. [RT #24650]
3120. [bug] Named could fail to validate zones listed in a DLV
that validated insecure without using DLV and had
@@ -329,7 +934,7 @@
glue learn for zone named is authoritative for.
[RT #22842]
3071. [bug] has_nsec could be used unintialised in
3071. [bug] has_nsec could be used uninitialized in
update.c:next_active. [RT #20256]
3069. [cleanup] Silence warnings messages from clang static analysis.
@@ -359,7 +964,7 @@
max-cache-size, it was possible for cache memory
to be exhausted and not recovered. [RT #23371]
3051. [bug] NS records obsure DNAME records at the bottom of the
3051. [bug] NS records obscure DNAME records at the bottom of the
zone if both are present. [RT #23035]
3046. [bug] Use RRSIG original TTL to compute validated RRset
@@ -370,9 +975,9 @@
3043. [test] Merged in the NetBSD ATF test framework (currently
version 0.12) for development of future unit tests.
Use configure --with-atf to build ATF internally
or configure --with-atf=prefix to use an external
copy. [RT #23209]
Use configure --with-atf to build ATF internally
or configure --with-atf=prefix to use an external
copy. [RT #23209]
3042. [bug] dig +trace could fail attempting to use IPv6
addresses on systems with only IPv4 connectivity.
@@ -562,7 +1167,7 @@
2929. [bug] Improved handling of GSS security contexts:
- added LRU expiration for generated TSIGs
- added the ability to use a non-default realm
- added new "realm" keyword in nsupdate
- added new "realm" keyword in nsupdate
- limited lifetime of generated keys to 1 hour
or the lifetime of the context (whichever is
smaller)
@@ -668,7 +1273,7 @@
2862. [bug] nsupdate didn't default to the parent zone when
updating DS records. [RT #20896]
2859. [bug] When cancelling validation it was possible to leak
2859. [bug] When canceling validation it was possible to leak
memory. [RT #20800]
2858. [bug] RTT estimates were not being adjusted on ICMP errors.
@@ -730,7 +1335,7 @@
[RT #22062]
2952. [port] win32: named-checkzone and named-checkconf failed
to initialise winsock. [RT #21932]
to initialize winsock. [RT #21932]
2951. [bug] named failed to generate a correct signed response
in a optout, delegation only zone with no secure
@@ -927,11 +1532,11 @@
trigger an assert. [RT #20368]
2705. [bug] Reconcile the XML stats version number with a later
BIND9 release, by adding a "name" attribute to
"cache" elements and increasing the version number
to 2.2. (This is a minor version change, but may
affect XML parsers if they assume the cache element
doesn't take an attribute.)
BIND9 release, by adding a "name" attribute to
"cache" elements and increasing the version number
to 2.2. (This is a minor version change, but may
affect XML parsers if they assume the cache element
doesn't take an attribute.)
2704. [bug] Serial of dynamic and stub zones could be inconsistent
with their SOA serial. [RT #19387]
@@ -1215,7 +1820,7 @@
2553. [bug] Reference leak on DNSSEC validation errors. [RT #19291]
2552. [bug] zero-no-soa-ttl-cache was not being honoured.
2552. [bug] zero-no-soa-ttl-cache was not being honored.
[RT #19340]
2551. [bug] Potential Reference leak on return. [RT #19341]
@@ -1590,10 +2195,10 @@
time. [RT #18277]
2423. [security] Randomize server selection on queries, so as to
make forgery a little more difficult. Instead of
always preferring the server with the lowest RTT,
pick a server with RTT within the same 128
millisecond band. [RT #18441]
make forgery a little more difficult. Instead of
always preferring the server with the lowest RTT,
pick a server with RTT within the same 128
millisecond band. [RT #18441]
2422. [bug] Handle the special return value of a empty node as
if it was a NXRRSET in the validator. [RT #18447]
@@ -1674,7 +2279,7 @@
2399. [placeholder]
2398. [bug] Improve file descriptor management. New,
2398. [bug] Improve file descriptor management. New,
temporary, named.conf option reserved-sockets,
default 512. [RT #18344]
+1 -1
View File
@@ -1,4 +1,4 @@
Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
Copyright (C) 1996-2003 Internet Software Consortium.
Permission to use, copy, modify, and/or distribute this software for any
+924 -362
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,6 +1,6 @@
Frequently Asked Questions about BIND 9
Copyright © 2004-2010 Internet Systems Consortium, Inc. ("ISC")
Copyright © 2004-2010, 2013 Internet Systems Consortium, Inc. ("ISC")
Copyright © 2000-2003 Internet Software Consortium.
@@ -869,7 +869,7 @@ A: If you run Tiger(Mac OS 10.4) or later then this is all you need to do:
Copy the key statement from /etc/rndc.conf into /etc/rndc.key, e.g.:
key "rndc-key" {
algorithm hmac-md5;
algorithm hmac-sha256;
secret "uvceheVuqf17ZwIcTydddw==";
};
+3 -2
View File
@@ -1,7 +1,7 @@
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" []>
<!--
- Copyright (C) 2004-2010, 2012 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2004-2010, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2003 Internet Software Consortium.
-
- Permission to use, copy, modify, and/or distribute this software for any
@@ -31,6 +31,7 @@
<year>2009</year>
<year>2010</year>
<year>2012</year>
<year>2013</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
<copyright>
@@ -1565,7 +1566,7 @@ rand_irqs="3 14 15"</programlisting>
<informalexample>
<programlisting>
key "rndc-key" {
algorithm hmac-md5;
algorithm hmac-sha256;
secret "uvceheVuqf17ZwIcTydddw==";
};</programlisting>
</informalexample>
+19 -3
View File
@@ -1,4 +1,4 @@
# Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2002 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -54,15 +54,31 @@ installdirs:
install:: isc-config.sh installdirs
${INSTALL_SCRIPT} isc-config.sh ${DESTDIR}${bindir}
rm -f ${DESTDIR}${bindir}/bind9-config
@LN@ ${DESTDIR}${bindir}/isc-config.sh ${DESTDIR}${bindir}/bind9-config
${INSTALL_DATA} ${srcdir}/isc-config.sh.1 ${DESTDIR}${mandir}/man1
rm -f ${DESTDIR}${mandir}/man1/bind9-config.1
@LN@ ${DESTDIR}${mandir}/man1/isc-config.sh.1 ${DESTDIR}${mandir}/man1/bind9-config.1
tags:
rm -f TAGS
find lib bin -name "*.[ch]" -print | @ETAGS@ -
check: test
test check:
@if test -n "`${PERL} ${top_srcdir}/bin/tests/system/testsock.pl 2>&- || echo fail`"; then \
echo I: NOTE: The tests were not run because they require that; \
echo I: the IP addresses 10.53.0.1 through 10.53.0.8 are configured; \
echo I: as alias addresses on the loopback interface. Please run; \
echo I: \'bin/tests/system/ifconfig.sh up\' as root to configure; \
echo I: them, then rerun the tests. Run make force-test to run the; \
echo I: tests anyway.; \
exit 1; \
fi
${MAKE} test-force
test:
force-test: test-force
test-force:
status=0; \
(cd bin/tests && ${MAKE} ${MAKEDEFS} test) || status=1; \
(test -f unit/unittest.sh && $(SHELL) unit/unittest.sh) || status=1; \
+74 -44
View File
@@ -45,8 +45,38 @@ BIND 9
For a detailed list of user-visible changes from
previous releases, see the CHANGES file.
For up-to-date release notes and errata, see
http://www.isc.org/software/bind9/releasenotes
For up-to-date release notes and errata, see
http://www.isc.org/software/bind9/releasenotes
BIND 9.6-ESV-R11 (Extended Support Version)
BIND 9.6-ESV-R11 is a maintenance release, fixing bugs in
BIND 9.6-ESV-R10, and also includes the following functional
enhancement:
- "named" now preserves the capitalization of names when
responding to queries.
BIND 9.6-ESV-R10 (Extended Support Version)
BIND 9.6-ESV-R10 is a maintenance release, fixing bugs in BIND
9.6-ESV-R9, and also patches the security flaw described in
CVE-2013-3919.
BIND 9.6-ESV-R9 (Extended Support Version)
BIND 9.6-ESV-R9 is a maintenance release, fixing bugs in BIND
9.6-ESV-R8.
BIND 9.6-ESV-R8 (Extended Support Version)
BIND 9.6-ESV-R8 includes several bug fixes and patches security
flaws described in CVE-2012-1667, CVE-2012-3817 and CVE-2012-4244.
BIND 9.6-ESV-R7 (Extended Support Version)
BIND 9.6-ESV-R7 is a maintenance release, fixing bugs in BIND
9.6-ESV-R6.
BIND 9.6-ESV-R6 (Extended Support Version)
@@ -55,7 +85,7 @@ BIND 9.6-ESV-R6 (Extended Support Version)
BIND 9.6-ESV-R5 (Extended Support Version)
BIND 9.4-ESV-R5 is a maintenance release, fixing bugs in BIND
BIND 9.6-ESV-R5 is a maintenance release, fixing bugs in BIND
9.6-ESV-R4.
BIND 9.6.3/BIND 9.6-ESV-R4
@@ -66,21 +96,21 @@ BIND 9.6.3/BIND 9.6-ESV-R4
BIND 9.6.2
BIND 9.6.2 is a maintenance release, fixing bugs in 9.6.1.
It also introduces support for the SHA-2 DNSSEC algorithms,
RSASHA256 and RSASHA512.
It also introduces support for the SHA-2 DNSSEC algorithms,
RSASHA256 and RSASHA512.
Known issues in this release:
Known issues in this release:
- A validating resolver that has been incorrectly configured with
an invalid trust anchor will be unable to resolve names covered
by that trust anchor. In all current versions of BIND 9, such a
resolver will also generate significant unnecessary DNS traffic
while trying to validate. The latter problem will be addressed
in future BIND 9 releases. In the meantime, to avoid these
problems, exercise caution when configuring "trusted-keys":
make sure all keys are correct and current when you add them,
and update your configuration in a timely manner when keys
roll over.
- A validating resolver that has been incorrectly configured with
an invalid trust anchor will be unable to resolve names covered
by that trust anchor. In all current versions of BIND 9, such a
resolver will also generate significant unnecessary DNS traffic
while trying to validate. The latter problem will be addressed
in future BIND 9 releases. In the meantime, to avoid these
problems, exercise caution when configuring "trusted-keys":
make sure all keys are correct and current when you add them,
and update your configuration in a timely manner when keys
roll over.
BIND 9.6.1
@@ -88,17 +118,17 @@ BIND 9.6.1
BIND 9.6.0
BIND 9.6.0 includes a number of changes from BIND 9.5 and earlier
releases, including:
BIND 9.6.0 includes a number of changes from BIND 9.5 and earlier
releases, including:
Full NSEC3 support
Full NSEC3 support
Automatic zone re-signing
Automatic zone re-signing
New update-policy methods tcp-self and 6to4-self
The BIND 8 resolver library, libbind, has been removed from the
BIND 9 distribution and is now available as a separate download.
The BIND 8 resolver library, libbind, has been removed from the
BIND 9 distribution and is now available as a separate download.
Change the default pid file location from /var/run to
/var/run/{named,lwresd} for improved chroot/setuid support.
@@ -120,9 +150,9 @@ BIND 9.5.0
Use Doxygen to generate internal documentation.
Efficient LRU cache-cleaning mechanism.
Efficient LRU cache-cleaning mechanism.
NSID support.
NSID support.
BIND 9.4.0
@@ -331,28 +361,28 @@ BIND 9.2.0
including:
- The size of the cache can now be limited using the
"max-cache-size" option.
"max-cache-size" option.
- The server can now automatically convert RFC1886-style
recursive lookup requests into RFC2874-style lookups,
when enabled using the new option "allow-v6-synthesis".
This allows stub resolvers that support AAAA records
but not A6 record chains or binary labels to perform
lookups in domains that make use of these IPv6 DNS
features.
This allows stub resolvers that support AAAA records
but not A6 record chains or binary labels to perform
lookups in domains that make use of these IPv6 DNS
features.
- Performance has been improved.
- The man pages now use the more portable "man" macros
rather than the "mandoc" macros, and are installed
by "make install".
by "make install".
- The named.conf parser has been completely rewritten.
It now supports "include" directives in more
places such as inside "view" statements, and it no
longer has any reserved words.
- The named.conf parser has been completely rewritten.
It now supports "include" directives in more
places such as inside "view" statements, and it no
longer has any reserved words.
- The "rndc status" command is now implemented.
- The "rndc status" command is now implemented.
- rndc can now be configured automatically.
@@ -415,7 +445,7 @@ BIND 9.2.0
--with-libtool does not work on AIX.
A bug in some versions of the Microsoft DNS server can cause zone
transfers from a BIND 9 server to a W2K server to fail. For details,
transfers from a BIND 9 server to a W2K server to fail. For details,
see the "Zone Transfers" section in doc/misc/migration.
@@ -437,9 +467,9 @@ Building
Ubuntu 7.04, 7.10
Windows XP/2003/2008
NOTE: As of BIND 9.5.1, 9.4.3, and 9.3.6, older versions of
Windows, including Windows NT and Windows 2000, are no longer
supported.
NOTE: As of BIND 9.5.1, 9.4.3, and 9.3.6, older versions of
Windows, including Windows NT and Windows 2000, are no longer
supported.
We have recent reports from the user community that a supported
version of BIND will build and run on the following systems:
@@ -492,7 +522,7 @@ Building
-DDIG_SIGCHASE_BU=1)
Disable dropping queries from particular well known ports.
-DNS_CLIENT_DROPPORT=0
Sibling glue checking in named-checkzone is enabled by default.
Sibling glue checking in named-checkzone is enabled by default.
To disable the default check set. -DCHECK_SIBLING=0
named-checkzone checks out-of-zone addresses by default.
To disable this default set. -DCHECK_LOCAL=0
@@ -539,10 +569,10 @@ Building
on the configure command line. The default is operating
system dependent.
Support for the "fixed" rrset-order option can be enabled
or disabled by specifying "--enable-fixed-rrset" or
"--disable-fixed-rrset" on the configure command line.
The default is "disabled", to reduce memory footprint.
Support for the "fixed" rrset-order option can be enabled
or disabled by specifying "--enable-fixed-rrset" or
"--disable-fixed-rrset" on the configure command line.
The default is "disabled", to reduce memory footprint.
If your operating system has integrated support for IPv6, it
will be used automatically. If you have installed KAME IPv6
Vendored
+5 -2
View File
@@ -1,2 +1,5 @@
sinclude(./libtool.m4)dnl
sinclude(libtool.m4/libtool.m4)dnl
sinclude(libtool.m4/ltoptions.m4)dnl
sinclude(libtool.m4/ltsugar.m4)dnl
sinclude(libtool.m4/ltversion.m4)dnl
sinclude(libtool.m4/lt~obsolete.m4)dnl
+10 -4
View File
@@ -196,6 +196,10 @@ checkns(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner,
a->type == dns_rdatatype_a);
REQUIRE(aaaa == NULL || !dns_rdataset_isassociated(aaaa) ||
aaaa->type == dns_rdatatype_aaaa);
if (a == NULL || aaaa == NULL)
return (answer);
memset(&hints, 0, sizeof(hints));
hints.ai_flags = AI_CANONNAME;
hints.ai_family = PF_UNSPEC;
@@ -258,8 +262,7 @@ checkns(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner,
}
return (ISC_TRUE);
}
if (a == NULL || aaaa == NULL)
return (answer);
/*
* Check that all glue records really exist.
*/
@@ -597,7 +600,7 @@ load_zone(isc_mem_t *mctx, const char *zonename, const char *filename,
dns_zone_settype(zone, dns_zone_master);
isc_buffer_init(&buffer, zonename, strlen(zonename));
isc_buffer_constinit(&buffer, zonename, strlen(zonename));
isc_buffer_add(&buffer, strlen(zonename));
dns_fixedname_init(&fixorigin);
origin = dns_fixedname_name(&fixorigin);
@@ -640,6 +643,9 @@ dump_zone(const char *zonename, dns_zone_t *zone, const char *filename,
{
isc_result_t result;
FILE *output = stdout;
const char *flags;
flags = (fileformat == dns_masterformat_text) ? "w+" : "wb+";
if (debug) {
if (filename != NULL && strcmp(filename, "-") != 0)
@@ -650,7 +656,7 @@ dump_zone(const char *zonename, dns_zone_t *zone, const char *filename,
}
if (filename != NULL && strcmp(filename, "-") != 0) {
result = isc_stdio_open(filename, "w+", &output);
result = isc_stdio_open(filename, flags, &output);
if (result != ISC_R_SUCCESS) {
fprintf(stderr, "could not open output "
+59 -8
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2007, 2009-2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2007, 2009-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -39,10 +39,13 @@
#include <bind9/check.h>
#include <dns/db.h>
#include <dns/fixedname.h>
#include <dns/log.h>
#include <dns/name.h>
#include <dns/rdataclass.h>
#include <dns/result.h>
#include <dns/rootns.h>
#include <dns/zone.h>
#include "check-tool.h"
@@ -151,6 +154,30 @@ config_get(const cfg_obj_t **maps, const char *name, const cfg_obj_t **obj) {
}
}
static isc_result_t
configure_hint(const char *zfile, const char *zclass, isc_mem_t *mctx) {
isc_result_t result;
dns_db_t *db = NULL;
dns_rdataclass_t rdclass;
isc_textregion_t r;
if (zfile == NULL)
return (ISC_R_FAILURE);
DE_CONST(zclass, r.base);
r.length = strlen(zclass);
result = dns_rdataclass_fromtext(&rdclass, &r);
if (result != ISC_R_SUCCESS)
return (result);
result = dns_rootns_create(mctx, rdclass, zfile, &db);
if (result != ISC_R_SUCCESS)
return (result);
dns_db_detach(&db);
return (ISC_R_SUCCESS);
}
/*% configure the zone */
static isc_result_t
configure_zone(const char *vclass, const char *view,
@@ -161,7 +188,7 @@ configure_zone(const char *vclass, const char *view,
isc_result_t result;
const char *zclass;
const char *zname;
const char *zfile;
const char *zfile = NULL;
const cfg_obj_t *maps[4];
const cfg_obj_t *zoptions = NULL;
const cfg_obj_t *classobj = NULL;
@@ -195,15 +222,26 @@ configure_zone(const char *vclass, const char *view,
cfg_map_get(zoptions, "type", &typeobj);
if (typeobj == NULL)
return (ISC_R_FAILURE);
if (strcasecmp(cfg_obj_asstring(typeobj), "master") != 0)
cfg_map_get(zoptions, "file", &fileobj);
if (fileobj != NULL)
zfile = cfg_obj_asstring(fileobj);
/*
* Check hints files for hint zones.
* Skip loading checks for any type other than master.
*/
if (strcasecmp(cfg_obj_asstring(typeobj), "hint") == 0)
return (configure_hint(zfile, zclass, mctx));
else if ((strcasecmp(cfg_obj_asstring(typeobj), "master") != 0))
return (ISC_R_SUCCESS);
if (zfile == NULL)
return (ISC_R_FAILURE);
cfg_map_get(zoptions, "database", &dbobj);
if (dbobj != NULL)
return (ISC_R_SUCCESS);
cfg_map_get(zoptions, "file", &fileobj);
if (fileobj == NULL)
return (ISC_R_FAILURE);
zfile = cfg_obj_asstring(fileobj);
obj = NULL;
if (get_maps(maps, "check-mx", &obj)) {
@@ -276,6 +314,18 @@ configure_zone(const char *vclass, const char *view,
zone_options &= ~DNS_ZONEOPT_CHECKSIBLING;
}
obj = NULL;
if (get_maps(maps, "check-spf", &obj)) {
if (strcasecmp(cfg_obj_asstring(obj), "warn") == 0) {
zone_options |= DNS_ZONEOPT_CHECKSPF;
} else if (strcasecmp(cfg_obj_asstring(obj), "ignore") == 0) {
zone_options &= ~DNS_ZONEOPT_CHECKSPF;
} else
INSIST(0);
} else {
zone_options |= DNS_ZONEOPT_CHECKSPF;
}
obj = NULL;
if (get_checknames(maps, &obj)) {
if (strcasecmp(cfg_obj_asstring(obj), "warn") == 0) {
@@ -311,7 +361,7 @@ configure_zone(const char *vclass, const char *view,
if (result != ISC_R_SUCCESS)
fprintf(stderr, "%s/%s/%s: %s\n", view, zname, zclass,
dns_result_totext(result));
return(result);
return (result);
}
/*% configure a view */
@@ -439,6 +489,7 @@ main(int argc, char **argv) {
if (isc_commandline_option != '?')
fprintf(stderr, "%s: invalid argument -%c\n",
program, isc_commandline_option);
/* FALLTHROUGH */
case 'h':
usage();
+12 -4
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2004-2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2004-2007, 2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2000-2002 Internet Software Consortium.
.\"
.\" Permission to use, copy, modify, and/or distribute this software for any
@@ -33,9 +33,9 @@
named\-checkzone, named\-compilezone \- zone file validity checking or converting tool
.SH "SYNOPSIS"
.HP 16
\fBnamed\-checkzone\fR [\fB\-d\fR] [\fB\-h\fR] [\fB\-j\fR] [\fB\-q\fR] [\fB\-v\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-f\ \fR\fB\fIformat\fR\fR] [\fB\-F\ \fR\fB\fIformat\fR\fR] [\fB\-i\ \fR\fB\fImode\fR\fR] [\fB\-k\ \fR\fB\fImode\fR\fR] [\fB\-m\ \fR\fB\fImode\fR\fR] [\fB\-M\ \fR\fB\fImode\fR\fR] [\fB\-n\ \fR\fB\fImode\fR\fR] [\fB\-s\ \fR\fB\fIstyle\fR\fR] [\fB\-S\ \fR\fB\fImode\fR\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-w\ \fR\fB\fIdirectory\fR\fR] [\fB\-D\fR] [\fB\-W\ \fR\fB\fImode\fR\fR] {zonename} {filename}
\fBnamed\-checkzone\fR [\fB\-d\fR] [\fB\-h\fR] [\fB\-j\fR] [\fB\-q\fR] [\fB\-v\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-f\ \fR\fB\fIformat\fR\fR] [\fB\-F\ \fR\fB\fIformat\fR\fR] [\fB\-i\ \fR\fB\fImode\fR\fR] [\fB\-k\ \fR\fB\fImode\fR\fR] [\fB\-m\ \fR\fB\fImode\fR\fR] [\fB\-M\ \fR\fB\fImode\fR\fR] [\fB\-n\ \fR\fB\fImode\fR\fR] [\fB\-s\ \fR\fB\fIstyle\fR\fR] [\fB\-S\ \fR\fB\fImode\fR\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-T\ \fR\fB\fImode\fR\fR] [\fB\-w\ \fR\fB\fIdirectory\fR\fR] [\fB\-D\fR] [\fB\-W\ \fR\fB\fImode\fR\fR] {zonename} {filename}
.HP 18
\fBnamed\-compilezone\fR [\fB\-d\fR] [\fB\-j\fR] [\fB\-q\fR] [\fB\-v\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-C\ \fR\fB\fImode\fR\fR] [\fB\-f\ \fR\fB\fIformat\fR\fR] [\fB\-F\ \fR\fB\fIformat\fR\fR] [\fB\-i\ \fR\fB\fImode\fR\fR] [\fB\-k\ \fR\fB\fImode\fR\fR] [\fB\-m\ \fR\fB\fImode\fR\fR] [\fB\-n\ \fR\fB\fImode\fR\fR] [\fB\-o\ \fR\fB\fIfilename\fR\fR] [\fB\-s\ \fR\fB\fIstyle\fR\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-w\ \fR\fB\fIdirectory\fR\fR] [\fB\-D\fR] [\fB\-W\ \fR\fB\fImode\fR\fR] {\fB\-o\ \fR\fB\fIfilename\fR\fR} {zonename} {filename}
\fBnamed\-compilezone\fR [\fB\-d\fR] [\fB\-j\fR] [\fB\-q\fR] [\fB\-v\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-C\ \fR\fB\fImode\fR\fR] [\fB\-f\ \fR\fB\fIformat\fR\fR] [\fB\-F\ \fR\fB\fIformat\fR\fR] [\fB\-i\ \fR\fB\fImode\fR\fR] [\fB\-k\ \fR\fB\fImode\fR\fR] [\fB\-m\ \fR\fB\fImode\fR\fR] [\fB\-n\ \fR\fB\fImode\fR\fR] [\fB\-o\ \fR\fB\fIfilename\fR\fR] [\fB\-s\ \fR\fB\fIstyle\fR\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-T\ \fR\fB\fImode\fR\fR] [\fB\-w\ \fR\fB\fIdirectory\fR\fR] [\fB\-D\fR] [\fB\-W\ \fR\fB\fImode\fR\fR] {\fB\-o\ \fR\fB\fIfilename\fR\fR} {zonename} {filename}
.SH "DESCRIPTION"
.PP
\fBnamed\-checkzone\fR
@@ -227,6 +227,14 @@ Chroot to
so that include directives in the configuration file are processed as if run by a similarly chrooted named.
.RE
.PP
\-T \fImode\fR
.RS 4
Check if Sender Policy Framework records (TXT and SPF) both exist or both don't exist. A warning is issued if they don't match. Possible modes are
\fB"warn"\fR
(default),
\fB"ignore"\fR.
.RE
.PP
\-w \fIdirectory\fR
.RS 4
chdir to
@@ -272,7 +280,7 @@ BIND 9 Administrator Reference Manual.
.PP
Internet Systems Consortium
.SH "COPYRIGHT"
Copyright \(co 2004\-2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2004\-2007, 2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
.br
Copyright \(co 2000\-2002 Internet Software Consortium.
.br
+18 -3
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -144,17 +144,19 @@ main(int argc, char **argv) {
if (progmode == progmode_compile) {
zone_options |= (DNS_ZONEOPT_CHECKNS |
DNS_ZONEOPT_FATALNS |
DNS_ZONEOPT_CHECKSPF |
DNS_ZONEOPT_CHECKNAMES |
DNS_ZONEOPT_CHECKNAMESFAIL |
DNS_ZONEOPT_CHECKWILDCARD);
}
} else
zone_options |= DNS_ZONEOPT_CHECKSPF;
#define ARGCMP(X) (strcmp(isc_commandline_argument, X) == 0)
isc_commandline_errprint = ISC_FALSE;
while ((c = isc_commandline_parse(argc, argv,
"c:df:hi:jk:m:n:qs:t:o:vw:DF:M:S:W:"))
"c:df:hi:jk:m:n:qs:t:o:vw:DF:M:S:T:W:"))
!= EOF) {
switch (c) {
case 'c':
@@ -343,6 +345,18 @@ main(int argc, char **argv) {
}
break;
case 'T':
if (ARGCMP("warn")) {
zone_options |= DNS_ZONEOPT_CHECKSPF;
} else if (ARGCMP("ignore")) {
zone_options &= ~DNS_ZONEOPT_CHECKSPF;
} else {
fprintf(stderr, "invalid argument to -T: %s\n",
isc_commandline_argument);
exit(1);
}
break;
case 'W':
if (ARGCMP("warn"))
zone_options |= DNS_ZONEOPT_CHECKWILDCARD;
@@ -354,6 +368,7 @@ main(int argc, char **argv) {
if (isc_commandline_option != '?')
fprintf(stderr, "%s: invalid argument -%c\n",
prog_name, isc_commandline_option);
/* FALLTHROUGH */
case 'h':
usage();
+16 -1
View File
@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY mdash "&#8212;">]>
<!--
- Copyright (C) 2004-2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2004-2007, 2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2002 Internet Software Consortium.
-
- Permission to use, copy, modify, and/or distribute this software for any
@@ -38,6 +38,7 @@
<year>2007</year>
<year>2009</year>
<year>2012</year>
<year>2013</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
<copyright>
@@ -73,6 +74,7 @@
<arg><option>-s <replaceable class="parameter">style</replaceable></option></arg>
<arg><option>-S <replaceable class="parameter">mode</replaceable></option></arg>
<arg><option>-t <replaceable class="parameter">directory</replaceable></option></arg>
<arg><option>-T <replaceable class="parameter">mode</replaceable></option></arg>
<arg><option>-w <replaceable class="parameter">directory</replaceable></option></arg>
<arg><option>-D</option></arg>
<arg><option>-W <replaceable class="parameter">mode</replaceable></option></arg>
@@ -96,6 +98,7 @@
<arg><option>-o <replaceable class="parameter">filename</replaceable></option></arg>
<arg><option>-s <replaceable class="parameter">style</replaceable></option></arg>
<arg><option>-t <replaceable class="parameter">directory</replaceable></option></arg>
<arg><option>-T <replaceable class="parameter">mode</replaceable></option></arg>
<arg><option>-w <replaceable class="parameter">directory</replaceable></option></arg>
<arg><option>-D</option></arg>
<arg><option>-W <replaceable class="parameter">mode</replaceable></option></arg>
@@ -364,6 +367,18 @@
</listitem>
</varlistentry>
<varlistentry>
<term>-T <replaceable class="parameter">mode</replaceable></term>
<listitem>
<para>
Check if Sender Policy Framework records (TXT and SPF)
both exist or both don't exist. A warning is issued
if they don't match. Possible modes are
<command>"warn"</command> (default), <command>"ignore"</command>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-w <replaceable class="parameter">directory</replaceable></term>
<listitem>
+15 -8
View File
@@ -1,5 +1,5 @@
<!--
- Copyright (C) 2004-2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2004-2007, 2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2002 Internet Software Consortium.
-
- Permission to use, copy, modify, and/or distribute this software for any
@@ -29,11 +29,11 @@
</div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="cmdsynopsis"><p><code class="command">named-checkzone</code> [<code class="option">-d</code>] [<code class="option">-h</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-M <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-S <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {zonename} {filename}</p></div>
<div class="cmdsynopsis"><p><code class="command">named-compilezone</code> [<code class="option">-d</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-C <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-o <em class="replaceable"><code>filename</code></em></code>] [<code class="option">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {<code class="option">-o <em class="replaceable"><code>filename</code></em></code>} {zonename} {filename}</p></div>
<div class="cmdsynopsis"><p><code class="command">named-checkzone</code> [<code class="option">-d</code>] [<code class="option">-h</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-M <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-S <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-T <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {zonename} {filename}</p></div>
<div class="cmdsynopsis"><p><code class="command">named-compilezone</code> [<code class="option">-d</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-C <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-o <em class="replaceable"><code>filename</code></em></code>] [<code class="option">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-T <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {<code class="option">-o <em class="replaceable"><code>filename</code></em></code>} {zonename} {filename}</p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2543677"></a><h2>DESCRIPTION</h2>
<a name="id2543698"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">named-checkzone</strong></span>
checks the syntax and integrity of a zone file. It performs the
same checks as <span><strong class="command">named</strong></span> does when loading a
@@ -53,7 +53,7 @@
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2543713"></a><h2>OPTIONS</h2>
<a name="id2543733"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-d</span></dt>
<dd><p>
@@ -206,6 +206,13 @@
directives in the configuration file are processed as if
run by a similarly chrooted named.
</p></dd>
<dt><span class="term">-T <em class="replaceable"><code>mode</code></em></span></dt>
<dd><p>
Check if Sender Policy Framework records (TXT and SPF)
both exist or both don't exist. A warning is issued
if they don't match. Possible modes are
<span><strong class="command">"warn"</strong></span> (default), <span><strong class="command">"ignore"</strong></span>.
</p></dd>
<dt><span class="term">-w <em class="replaceable"><code>directory</code></em></span></dt>
<dd><p>
chdir to <code class="filename">directory</code> so that
@@ -239,14 +246,14 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
<a name="id2544333"></a><h2>RETURN VALUES</h2>
<a name="id2544377"></a><h2>RETURN VALUES</h2>
<p><span><strong class="command">named-checkzone</strong></span>
returns an exit status of 1 if
errors were detected and 0 otherwise.
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2544345"></a><h2>SEE ALSO</h2>
<a name="id2544389"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">named-checkconf</span>(8)</span>,
<em class="citetitle">RFC 1035</em>,
@@ -254,7 +261,7 @@
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2544446"></a><h2>AUTHOR</h2>
<a name="id2544422"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
+23 -8
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2004-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2004-2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2000-2003 Internet Software Consortium.
.\"
.\" Permission to use, copy, modify, and/or distribute this software for any
@@ -20,11 +20,11 @@
.\" Title: dig
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.71.1 <http://docbook.sf.net/>
.\" Date: Jun 30, 2000
.\" Date: June 30, 2000
.\" Manual: BIND9
.\" Source: BIND9
.\"
.TH "DIG" "1" "Jun 30, 2000" "BIND9" "BIND9"
.TH "DIG" "1" "June 30, 2000" "BIND9" "BIND9"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
@@ -57,7 +57,9 @@ allows multiple lookups to be issued from the command line.
Unless it is told to query a specific name server,
\fBdig\fR
will try each of the servers listed in
\fI/etc/resolv.conf\fR.
\fI/etc/resolv.conf\fR. If no usable server addresses are found,
\fBdig\fR
will send the query to the local host.
.PP
When no command line arguments or options are given,
\fBdig\fR
@@ -95,13 +97,20 @@ is the name or IP address of the name server to query. This can be an IPv4 addre
\fIserver\fR
argument is a hostname,
\fBdig\fR
resolves that name before querying that name server. If no
resolves that name before querying that name server.
.sp
If no
\fIserver\fR
argument is provided,
\fBdig\fR
consults
\fI/etc/resolv.conf\fR
and queries the name servers listed there. The reply from the name server that responds is displayed.
\fI/etc/resolv.conf\fR; if an address is found there, it queries the name server at that address. If either of the
\fB\-4\fR
or
\fB\-6\fR
options are in use, then only addresses for the corresponding transport will be tried. If no usable addresses are found,
\fBdig\fR
will send the query to the local host. The reply from the name server that responds is displayed.
.RE
.PP
\fBname\fR
@@ -500,6 +509,12 @@ When chasing DNSSEC signature chains perform a top\-down validation. Requires di
.RS 4
Include an EDNS name server ID request when sending a query.
.RE
.PP
\fB+[no]keepopen\fR
.RS 4
Keep the TCP socket open between queries and reuse it rather than creating a new TCP socket for each lookup. The default is
\fB+nokeepopen\fR.
.RE
.SH "MULTIPLE QUERIES"
.PP
The BIND 9 implementation of
@@ -562,7 +577,7 @@ RFC1035.
.PP
There are probably too many query options.
.SH "COPYRIGHT"
Copyright \(co 2004\-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2004\-2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
.br
Copyright \(co 2000\-2003 Internet Software Consortium.
.br
+27 -8
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -185,7 +185,7 @@ help(void) {
" +domain=### (Set default domainname)\n"
" +bufsize=### (Set EDNS0 Max UDP packet size)\n"
" +ndots=### (Set NDOTS value)\n"
" +edns=### (Set EDNS version)\n"
" +[no]edns[=###] (Set EDNS version) [0]\n"
" +[no]search (Set whether to use searchlist)\n"
" +[no]showsearch (Search with intermediate results)\n"
" +[no]defname (Ditto)\n"
@@ -223,6 +223,7 @@ help(void) {
#endif
#endif
" +[no]multiline (Print records in an expanded format)\n"
" +[no]keepopen (Keep the TCP socket open between queries)\n"
" global d-opts and servers (before host name) affect all queries.\n"
" local d-opts and servers (after host name) affect only that lookup.\n"
" -h (print help and exit)\n"
@@ -238,6 +239,8 @@ received(int bytes, isc_sockaddr_t *from, dig_query_t *query) {
isc_uint64_t diff;
isc_time_t now;
time_t tnow;
struct tm tmnow;
char time_str[100];
char fromtext[ISC_SOCKADDR_FORMATSIZE];
isc_sockaddr_format(from, fromtext, sizeof(fromtext));
@@ -249,7 +252,10 @@ received(int bytes, isc_sockaddr_t *from, dig_query_t *query) {
printf(";; Query time: %ld msec\n", (long int)diff/1000);
printf(";; SERVER: %s(%s)\n", fromtext, query->servname);
time(&tnow);
printf(";; WHEN: %s", ctime(&tnow));
tmnow = *localtime(&tnow);
if (strftime(time_str, sizeof(time_str),
"%a %b %d %H:%M:%S %Z %Y", &tmnow) > 0U)
printf(";; WHEN: %s\n", time_str);
if (query->lookup->doing_xfr) {
printf(";; XFR size: %u records (messages %u, "
"bytes %" ISC_PRINT_QUADFORMAT "u)\n",
@@ -257,7 +263,6 @@ received(int bytes, isc_sockaddr_t *from, dig_query_t *query) {
query->byte_count);
} else {
printf(";; MSG SIZE rcvd: %u\n", bytes);
}
if (key != NULL) {
if (!validated)
@@ -274,7 +279,7 @@ received(int bytes, isc_sockaddr_t *from, dig_query_t *query) {
"from %s(%s) in %d ms\n\n",
query->lookup->doing_xfr ?
query->byte_count : (isc_uint64_t)bytes,
fromtext, query->servname,
fromtext, query->userarg,
(int)diff/1000);
}
}
@@ -520,8 +525,16 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
printf(";; WARNING: recursion requested "
"but not available\n");
}
if (msg != query->lookup->sendmsg &&
query->lookup->edns != -1 && msg->opt == NULL &&
(msg->rcode == dns_rcode_formerr ||
msg->rcode == dns_rcode_notimp))
printf("\n;; WARNING: EDNS query returned status "
"%s - retry with '%s+noedns'\n",
rcode_totext(msg->rcode),
query->lookup->dnssec ? "+nodnssec ": "");
if (msg != query->lookup->sendmsg && extrabytes != 0U)
printf(";; WARNING: Messages has %u extra byte%s at "
printf(";; WARNING: Message has %u extra byte%s at "
"end\n", extrabytes, extrabytes != 0 ? "s" : "");
}
@@ -850,8 +863,10 @@ plus_option(char *option, isc_boolean_t is_batchfile,
lookup->edns = -1;
break;
}
if (value == NULL)
goto need_value;
if (value == NULL) {
lookup->edns = 0;
break;
}
lookup->edns = (isc_int16_t) parse_uint(value, "edns", 255);
break;
case 'f': /* fail */
@@ -870,6 +885,10 @@ plus_option(char *option, isc_boolean_t is_batchfile,
lookup->ignore = ISC_TRUE;
}
break;
case 'k':
FULLCHECK("keepopen");
keep_open = state;
break;
case 'm': /* multiline */
FULLCHECK("multiline");
multiline = state;
+35 -18
View File
@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY mdash "&#8212;">]>
<!--
- Copyright (C) 2004-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2004-2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2003 Internet Software Consortium.
-
- Permission to use, copy, modify, and/or distribute this software for any
@@ -22,7 +22,7 @@
<refentry id="man.dig">
<refentryinfo>
<date>Jun 30, 2000</date>
<date>June 30, 2000</date>
</refentryinfo>
<refmeta>
@@ -45,6 +45,7 @@
<year>2008</year>
<year>2009</year>
<year>2012</year>
<year>2013</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
<copyright>
@@ -116,9 +117,10 @@
<para>
Unless it is told to query a specific name server,
<command>dig</command> will try each of the servers listed
in
<filename>/etc/resolv.conf</filename>.
<command>dig</command> will try each of the servers listed in
<filename>/etc/resolv.conf</filename>. If no usable server addresses
are found, <command>dig</command> will send the query to the local
host.
</para>
<para>
@@ -157,20 +159,25 @@
<term><constant>server</constant></term>
<listitem>
<para>
is the name or IP address of the name server to query. This can
be an IPv4
address in dotted-decimal notation or an IPv6
is the name or IP address of the name server to query. This
can be an IPv4 address in dotted-decimal notation or an IPv6
address in colon-delimited notation. When the supplied
<parameter>server</parameter> argument is a
hostname,
<command>dig</command> resolves that name before
querying that name
server. If no <parameter>server</parameter>
argument is provided,
<command>dig</command> consults <filename>/etc/resolv.conf</filename>
and queries the name servers listed there. The reply from the
name
server that responds is displayed.
<parameter>server</parameter> argument is a hostname,
<command>dig</command> resolves that name before querying
that name server.
</para>
<para>
If no <parameter>server</parameter> argument is
provided, <command>dig</command> consults
<filename>/etc/resolv.conf</filename>; if an
address is found there, it queries the name server at
that address. If either of the <option>-4</option> or
<option>-6</option> options are in use, then
only addresses for the corresponding transport
will be tried. If no usable addresses are found,
<command>dig</command> will send the query to the
local host. The reply from the name server that
responds is displayed.
</para>
</listitem>
</varlistentry>
@@ -850,6 +857,16 @@
</listitem>
</varlistentry>
<varlistentry>
<term><option>+[no]keepopen</option></term>
<listitem>
<para>
Keep the TCP socket open between queries and reuse it rather
than creating a new TCP socket for each lookup. The default
is <option>+nokeepopen</option>.
</para>
</listitem>
</varlistentry>
</variablelist>
+42 -28
View File
@@ -1,5 +1,5 @@
<!--
- Copyright (C) 2004-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2004-2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2003 Internet Software Consortium.
-
- Permission to use, copy, modify, and/or distribute this software for any
@@ -34,7 +34,7 @@
<div class="cmdsynopsis"><p><code class="command">dig</code> [global-queryopt...] [query...]</p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2543522"></a><h2>DESCRIPTION</h2>
<a name="id2543525"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dig</strong></span>
(domain information groper) is a flexible tool
for interrogating DNS name servers. It performs DNS lookups and
@@ -57,9 +57,10 @@
</p>
<p>
Unless it is told to query a specific name server,
<span><strong class="command">dig</strong></span> will try each of the servers listed
in
<code class="filename">/etc/resolv.conf</code>.
<span><strong class="command">dig</strong></span> will try each of the servers listed in
<code class="filename">/etc/resolv.conf</code>. If no usable server addresses
are found, <span><strong class="command">dig</strong></span> will send the query to the local
host.
</p>
<p>
When no command line arguments or options are given,
@@ -80,7 +81,7 @@
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2543595"></a><h2>SIMPLE USAGE</h2>
<a name="id2543604"></a><h2>SIMPLE USAGE</h2>
<p>
A typical invocation of <span><strong class="command">dig</strong></span> looks like:
</p>
@@ -91,22 +92,29 @@
</p>
<div class="variablelist"><dl>
<dt><span class="term"><code class="constant">server</code></span></dt>
<dd><p>
is the name or IP address of the name server to query. This can
be an IPv4
address in dotted-decimal notation or an IPv6
<dd>
<p>
is the name or IP address of the name server to query. This
can be an IPv4 address in dotted-decimal notation or an IPv6
address in colon-delimited notation. When the supplied
<em class="parameter"><code>server</code></em> argument is a
hostname,
<span><strong class="command">dig</strong></span> resolves that name before
querying that name
server. If no <em class="parameter"><code>server</code></em>
argument is provided,
<span><strong class="command">dig</strong></span> consults <code class="filename">/etc/resolv.conf</code>
and queries the name servers listed there. The reply from the
name
server that responds is displayed.
</p></dd>
<em class="parameter"><code>server</code></em> argument is a hostname,
<span><strong class="command">dig</strong></span> resolves that name before querying
that name server.
</p>
<p>
If no <em class="parameter"><code>server</code></em> argument is
provided, <span><strong class="command">dig</strong></span> consults
<code class="filename">/etc/resolv.conf</code>; if an
address is found there, it queries the name server at
that address. If either of the <code class="option">-4</code> or
<code class="option">-6</code> options are in use, then
only addresses for the corresponding transport
will be tried. If no usable addresses are found,
<span><strong class="command">dig</strong></span> will send the query to the
local host. The reply from the name server that
responds is displayed.
</p>
</dd>
<dt><span class="term"><code class="constant">name</code></span></dt>
<dd><p>
is the name of the resource record that is to be looked up.
@@ -126,7 +134,7 @@
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2543686"></a><h2>OPTIONS</h2>
<a name="id2543707"></a><h2>OPTIONS</h2>
<p>
The <code class="option">-b</code> option sets the source IP address of the query
to <em class="parameter"><code>address</code></em>. This must be a valid
@@ -230,7 +238,7 @@
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2544035"></a><h2>QUERY OPTIONS</h2>
<a name="id2544056"></a><h2>QUERY OPTIONS</h2>
<p><span><strong class="command">dig</strong></span>
provides a number of query options which affect
the way in which lookups are made and the results displayed. Some of
@@ -549,13 +557,19 @@
<dd><p>
Include an EDNS name server ID request when sending a query.
</p></dd>
<dt><span class="term"><code class="option">+[no]keepopen</code></span></dt>
<dd><p>
Keep the TCP socket open between queries and reuse it rather
than creating a new TCP socket for each lookup. The default
is <code class="option">+nokeepopen</code>.
</p></dd>
</dl></div>
<p>
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2545170"></a><h2>MULTIPLE QUERIES</h2>
<a name="id2545208"></a><h2>MULTIPLE QUERIES</h2>
<p>
The BIND 9 implementation of <span><strong class="command">dig </strong></span>
supports
@@ -601,7 +615,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2545232"></a><h2>IDN SUPPORT</h2>
<a name="id2545338"></a><h2>IDN SUPPORT</h2>
<p>
If <span><strong class="command">dig</strong></span> has been built with IDN (internationalized
domain name) support, it can accept and display non-ASCII domain names.
@@ -615,14 +629,14 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2545322"></a><h2>FILES</h2>
<a name="id2545361"></a><h2>FILES</h2>
<p><code class="filename">/etc/resolv.conf</code>
</p>
<p><code class="filename">${HOME}/.digrc</code>
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2545339"></a><h2>SEE ALSO</h2>
<a name="id2545378"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">host</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
@@ -630,7 +644,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2545377"></a><h2>BUGS</h2>
<a name="id2545415"></a><h2>BUGS</h2>
<p>
There are probably too many query options.
</p>
+187 -169
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -46,8 +46,10 @@
#include <dns/byaddr.h>
#ifdef DIG_SIGCHASE
#include <dns/callbacks.h>
#include <dns/dnssec.h>
#include <dns/ds.h>
#include <dns/master.h>
#include <dns/nsec.h>
#include <isc/random.h>
#include <ctype.h>
@@ -118,7 +120,8 @@ isc_boolean_t
usesearch = ISC_FALSE,
showsearch = ISC_FALSE,
qr = ISC_FALSE,
is_dst_up = ISC_FALSE;
is_dst_up = ISC_FALSE,
keep_open = ISC_FALSE;
in_port_t port = 53;
unsigned int timeout = 0;
unsigned int extrabytes;
@@ -149,6 +152,9 @@ static void idn_check_result(idn_result_t r, const char *msg);
int idnoptions = 0;
#endif
isc_socket_t *keep = NULL;
isc_sockaddr_t keepaddr;
/*%
* Exit Codes:
*
@@ -172,6 +178,7 @@ isc_boolean_t validated = ISC_TRUE;
isc_entropy_t *entp = NULL;
isc_mempool_t *commctx = NULL;
isc_boolean_t debugging = ISC_FALSE;
isc_boolean_t debugtiming = ISC_FALSE;
isc_boolean_t memdebugging = ISC_FALSE;
char *progname = NULL;
isc_mutex_t lookup_lock;
@@ -244,11 +251,10 @@ isc_result_t prove_nx(dns_message_t * msg, dns_name_t * name,
dns_rdataset_t ** sigrdataset);
static void nameFromString(const char *str, dns_name_t *p_ret);
int inf_name(dns_name_t * name1, dns_name_t * name2);
isc_result_t opentmpkey(isc_mem_t *mctx, const char *file,
char **tempp, FILE **fp);
isc_result_t removetmpkey(isc_mem_t *mctx, const char *file);
void clean_trustedkey(void);
void insert_trustedkey(dst_key_t **key);
isc_result_t insert_trustedkey(void *arg, dns_name_t *name,
dns_rdataset_t *rdataset);
#if DIG_SIGCHASE_BU
isc_result_t getneededrr(dns_message_t *msg);
void sigchase_bottom_up(dns_message_t *msg);
@@ -511,9 +517,15 @@ fatal(const char *format, ...) {
void
debug(const char *format, ...) {
va_list args;
isc_time_t t;
if (debugging) {
fflush(stdout);
if (debugtiming) {
TIME_NOW(&t);
fprintf(stderr, "%d.%06d: ", isc_time_seconds(&t),
isc_time_nanoseconds(&t) / 1000);
}
va_start(args, format);
vfprintf(stderr, format, args);
va_end(args);
@@ -767,6 +779,7 @@ make_empty_lookup(void) {
looknew->need_search = ISC_FALSE;
ISC_LINK_INIT(looknew, link);
ISC_LIST_INIT(looknew->q);
ISC_LIST_INIT(looknew->connecting);
ISC_LIST_INIT(looknew->my_server_list);
return (looknew);
}
@@ -788,11 +801,11 @@ clone_lookup(dig_lookup_t *lookold, isc_boolean_t servers) {
looknew = make_empty_lookup();
INSIST(looknew != NULL);
strncpy(looknew->textname, lookold->textname, MXNAME);
strlcpy(looknew->textname, lookold->textname, MXNAME);
#if DIG_SIGCHASE_TD
strncpy(looknew->textnamesigchase, lookold->textnamesigchase, MXNAME);
strlcpy(looknew->textnamesigchase, lookold->textnamesigchase, MXNAME);
#endif
strncpy(looknew->cmdline, lookold->cmdline, MXNAME);
strlcpy(looknew->cmdline, lookold->cmdline, MXNAME);
looknew->textname[MXNAME-1] = 0;
looknew->rdtype = lookold->rdtype;
looknew->qrdtype = lookold->qrdtype;
@@ -986,7 +999,7 @@ make_searchlist_entry(char *domain) {
if (search == NULL)
fatal("memory allocation failure in %s:%d",
__FILE__, __LINE__);
strncpy(search->origin, domain, MXNAME);
strlcpy(search->origin, domain, MXNAME);
search->origin[MXNAME-1] = 0;
ISC_LINK_INIT(search, link);
return (search);
@@ -1138,12 +1151,14 @@ setup_libs(void) {
result = isc_mem_create(0, 0, &mctx);
check_result(result, "isc_mem_create");
isc_mem_setname(mctx, "dig", NULL);
result = isc_taskmgr_create(mctx, 1, 0, &taskmgr);
check_result(result, "isc_taskmgr_create");
result = isc_task_create(taskmgr, 0, &global_task);
check_result(result, "isc_task_create");
isc_task_setname(global_task, "dig", NULL);
result = isc_timermgr_create(mctx, &timermgr);
check_result(result, "isc_timermgr_create");
@@ -1282,7 +1297,10 @@ clear_query(dig_query_t *query) {
if (lookup->current_query == query)
lookup->current_query = NULL;
ISC_LIST_UNLINK(lookup->q, query, link);
if (ISC_LINK_LINKED(query, link))
ISC_LIST_UNLINK(lookup->q, query, link);
if (ISC_LINK_LINKED(query, clink))
ISC_LIST_UNLINK(lookup->connecting, query, clink);
if (ISC_LINK_LINKED(&query->recvbuf, link))
ISC_LIST_DEQUEUE(query->recvlist, &query->recvbuf,
link);
@@ -1290,6 +1308,7 @@ clear_query(dig_query_t *query) {
ISC_LIST_DEQUEUE(query->lengthlist, &query->lengthbuf,
link);
INSIST(query->recvspace != NULL);
if (query->sock != NULL) {
isc_socket_detach(&query->sock);
sockcount--;
@@ -1317,13 +1336,22 @@ try_clear_lookup(dig_lookup_t *lookup) {
debug("try_clear_lookup(%p)", lookup);
if (ISC_LIST_HEAD(lookup->q) != NULL) {
if (ISC_LIST_HEAD(lookup->q) != NULL ||
ISC_LIST_HEAD(lookup->connecting) != NULL)
{
if (debugging) {
q = ISC_LIST_HEAD(lookup->q);
while (q != NULL) {
debug("query to %s still pending", q->servname);
q = ISC_LIST_NEXT(q, link);
}
q = ISC_LIST_HEAD(lookup->connecting);
while (q != NULL) {
debug("query to %s still connecting",
q->servname);
q = ISC_LIST_NEXT(q, clink);
}
}
return (ISC_FALSE);
}
@@ -1451,7 +1479,7 @@ start_lookup(void) {
= current_lookup->rdclassset;
current_lookup->rdclass = dns_rdataclass_in;
strncpy(current_lookup->textnamesigchase,
strlcpy(current_lookup->textnamesigchase,
current_lookup->textname, MXNAME);
current_lookup->trace_root_sigchase = ISC_TRUE;
@@ -1463,7 +1491,7 @@ start_lookup(void) {
check_result(result, "dns_name_totext");
isc_buffer_usedregion(b, &r);
r.base[r.length] = '\0';
strncpy(current_lookup->textname, (char*)r.base,
strlcpy(current_lookup->textname, (char*)r.base,
MXNAME);
isc_buffer_free(&b);
@@ -1680,6 +1708,9 @@ static isc_boolean_t
next_origin(dns_message_t *msg, dig_query_t *query) {
dig_lookup_t *lookup;
dig_searchlist_t *search;
dns_fixedname_t fixed;
dns_name_t *name;
isc_result_t result;
UNUSED(msg);
@@ -1694,6 +1725,19 @@ next_origin(dns_message_t *msg, dig_query_t *query) {
* about finding the next entry.
*/
return (ISC_FALSE);
/*
* Check for a absolute name or ndots being met.
*/
dns_fixedname_init(&fixed);
name = dns_fixedname_name(&fixed);
result = dns_name_fromstring2(name, query->lookup->textname, NULL,
0, NULL);
if (result == ISC_R_SUCCESS &&
(dns_name_isabsolute(name) ||
(int)dns_name_countlabels(name) > ndots))
return (ISC_FALSE);
if (query->lookup->origin == NULL && !query->lookup->need_search)
/*
* Then we just did rootorg; there's nothing left.
@@ -2104,7 +2148,6 @@ setup_lookup(dig_lookup_t *lookup) {
query->rr_count = 0;
query->msg_count = 0;
query->byte_count = 0;
ISC_LINK_INIT(query, link);
ISC_LIST_INIT(query->recvlist);
ISC_LIST_INIT(query->lengthlist);
query->sock = NULL;
@@ -2117,6 +2160,7 @@ setup_lookup(dig_lookup_t *lookup) {
isc_buffer_init(&query->slbuf, query->slspace, 2);
query->sendbuf = lookup->renderbuf;
ISC_LINK_INIT(query, clink);
ISC_LINK_INIT(query, link);
ISC_LIST_ENQUEUE(lookup->q, query, link);
}
@@ -2152,14 +2196,16 @@ send_done(isc_task_t *_task, isc_event_t *event) {
for (b = ISC_LIST_HEAD(sevent->bufferlist);
b != NULL;
b = ISC_LIST_HEAD(sevent->bufferlist))
b = ISC_LIST_HEAD(sevent->bufferlist)) {
ISC_LIST_DEQUEUE(sevent->bufferlist, b, link);
isc_mem_free(mctx, b);
}
query = event->ev_arg;
query->waiting_senddone = ISC_FALSE;
l = query->lookup;
if (l->ns_search_only && !l->trace_root) {
if (l->ns_search_only && !l->trace_root && !l->tcp_mode) {
debug("sending next, since searching");
next = ISC_LIST_NEXT(query, link);
if (next != NULL)
@@ -2238,6 +2284,7 @@ static void
force_timeout(dig_lookup_t *l, dig_query_t *query) {
isc_event_t *event;
debug("force_timeout ()");
event = isc_event_allocate(mctx, query, ISC_TIMEREVENT_IDLE,
connect_timeout, l,
sizeof(isc_event_t));
@@ -2305,7 +2352,17 @@ send_tcp_connect(dig_query_t *query) {
send_tcp_connect(next);
return;
}
INSIST(query->sock == NULL);
if (keep != NULL && isc_sockaddr_equal(&keepaddr, &query->sockaddr)) {
sockcount++;
isc_socket_attach(keep, &query->sock);
query->waiting_connect = ISC_FALSE;
launch_next_query(query, ISC_TRUE);
goto search;
}
result = isc_socket_create(socketmgr,
isc_sockaddr_pf(&query->sockaddr),
isc_sockettype_tcp, &query->sock);
@@ -2328,6 +2385,7 @@ send_tcp_connect(dig_query_t *query) {
result = isc_socket_connect(query->sock, &query->sockaddr,
global_task, connect_done, query);
check_result(result, "isc_socket_connect");
search:
/*
* If we're at the endgame of a nameserver search, we need to
* immediately bring up all the queries. Do it here.
@@ -2335,11 +2393,25 @@ send_tcp_connect(dig_query_t *query) {
if (l->ns_search_only && !l->trace_root) {
debug("sending next, since searching");
next = ISC_LIST_NEXT(query, link);
if (ISC_LINK_LINKED(query, link))
ISC_LIST_DEQUEUE(l->q, query, link);
ISC_LIST_ENQUEUE(l->connecting, query, clink);
if (next != NULL)
send_tcp_connect(next);
}
}
static isc_buffer_t *
clone_buffer(isc_buffer_t *source) {
isc_buffer_t *buffer;
buffer = isc_mem_allocate(mctx, sizeof(*buffer));
if (buffer == NULL)
fatal("memory allocation failure in %s:%d",
__FILE__, __LINE__);
*buffer = *source;
return (buffer);
}
/*%
* Send a UDP packet to the remote nameserver, possible starting the
* recv action as well. Also make sure that the timer is running and
@@ -2349,6 +2421,7 @@ static void
send_udp(dig_query_t *query) {
dig_lookup_t *l = NULL;
isc_result_t result;
isc_buffer_t *sendbuf;
debug("send_udp(%p)", query);
@@ -2395,14 +2468,16 @@ send_udp(dig_query_t *query) {
debug("recvcount=%d", recvcount);
}
ISC_LIST_INIT(query->sendlist);
ISC_LIST_ENQUEUE(query->sendlist, &query->sendbuf, link);
sendbuf = clone_buffer(&query->sendbuf);
ISC_LIST_ENQUEUE(query->sendlist, sendbuf, link);
debug("sending a request");
TIME_NOW(&query->time_sent);
INSIST(query->sock != NULL);
query->waiting_senddone = ISC_TRUE;
result = isc_socket_sendtov(query->sock, &query->sendlist,
global_task, send_done, query,
&query->sockaddr, NULL);
result = isc_socket_sendtov2(query->sock, &query->sendlist,
global_task, send_done, query,
&query->sockaddr, NULL,
ISC_SOCKFLAG_NORETRY);
check_result(result, "isc_socket_sendtov");
sendcount++;
}
@@ -2415,7 +2490,7 @@ send_udp(dig_query_t *query) {
static void
connect_timeout(isc_task_t *task, isc_event_t *event) {
dig_lookup_t *l = NULL;
dig_query_t *query = NULL, *cq;
dig_query_t *query = NULL, *next, *cq;
UNUSED(task);
REQUIRE(event->ev_type == ISC_TIMEREVENT_IDLE);
@@ -2439,7 +2514,9 @@ connect_timeout(isc_task_t *task, isc_event_t *event) {
if (query->sock != NULL)
isc_socket_cancel(query->sock, NULL,
ISC_SOCKCANCEL_ALL);
send_tcp_connect(ISC_LIST_NEXT(cq, link));
next = ISC_LIST_NEXT(cq, link);
if (next != NULL)
send_tcp_connect(next);
}
UNLOCK_LOOKUP;
return;
@@ -2562,6 +2639,7 @@ static void
launch_next_query(dig_query_t *query, isc_boolean_t include_question) {
isc_result_t result;
dig_lookup_t *l;
isc_buffer_t *buffer;
INSIST(!free_now);
@@ -2585,9 +2663,15 @@ launch_next_query(dig_query_t *query, isc_boolean_t include_question) {
isc_buffer_putuint16(&query->slbuf, (isc_uint16_t) query->sendbuf.used);
ISC_LIST_INIT(query->sendlist);
ISC_LINK_INIT(&query->slbuf, link);
ISC_LIST_ENQUEUE(query->sendlist, &query->slbuf, link);
if (include_question)
ISC_LIST_ENQUEUE(query->sendlist, &query->sendbuf, link);
if (!query->first_soa_rcvd) {
buffer = clone_buffer(&query->slbuf);
ISC_LIST_ENQUEUE(query->sendlist, buffer, link);
if (include_question) {
buffer = clone_buffer(&query->sendbuf);
ISC_LIST_ENQUEUE(query->sendlist, buffer, link);
}
}
ISC_LINK_INIT(&query->lengthbuf, link);
ISC_LIST_ENQUEUE(query->lengthlist, &query->lengthbuf, link);
@@ -2682,12 +2766,17 @@ connect_done(isc_task_t *task, isc_event_t *event) {
if (next != NULL) {
bringup_timer(next, TCP_TIMEOUT);
send_tcp_connect(next);
} else {
} else
check_next_lookup(l);
}
UNLOCK_LOOKUP;
return;
}
if (keep_open) {
if (keep != NULL)
isc_socket_detach(&keep);
isc_socket_attach(query->sock, &keep);
keepaddr = query->sockaddr;
}
launch_next_query(query, ISC_TRUE);
isc_event_free(&event);
UNLOCK_LOOKUP;
@@ -3195,7 +3284,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
}
if (!l->doing_xfr || l->xfr_q == query) {
if (msg->rcode != dns_rcode_noerror &&
if (msg->rcode == dns_rcode_nxdomain &&
(l->origin != NULL || l->need_search)) {
if (!next_origin(msg, query) || showsearch) {
printmessage(query, msg, ISC_TRUE);
@@ -3241,6 +3330,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
if (n == 0)
docancel = ISC_TRUE;
l->trace_root = ISC_FALSE;
usesearch = ISC_FALSE;
} else
#ifdef DIG_SIGCHASE
if (!do_sigchase)
@@ -3417,15 +3507,19 @@ getaddresses(dig_lookup_t *lookup, const char *host, isc_result_t *resultp) {
*/
void
do_lookup(dig_lookup_t *lookup) {
dig_query_t *query;
REQUIRE(lookup != NULL);
debug("do_lookup()");
lookup->pending = ISC_TRUE;
if (lookup->tcp_mode)
send_tcp_connect(ISC_LIST_HEAD(lookup->q));
else
send_udp(ISC_LIST_HEAD(lookup->q));
query = ISC_LIST_HEAD(lookup->q);
if (query != NULL) {
if (lookup->tcp_mode)
send_tcp_connect(query);
else
send_udp(query);
}
}
/*%
@@ -3461,18 +3555,31 @@ cancel_all(void) {
if (current_lookup != NULL) {
if (current_lookup->timer != NULL)
isc_timer_detach(&current_lookup->timer);
q = ISC_LIST_HEAD(current_lookup->q);
while (q != NULL) {
debug("canceling query %p, belonging to %p",
q, current_lookup);
for (q = ISC_LIST_HEAD(current_lookup->q);
q != NULL;
q = nq)
{
nq = ISC_LIST_NEXT(q, link);
if (q->sock != NULL) {
debug("canceling pending query %p, belonging to %p",
q, current_lookup);
if (q->sock != NULL)
isc_socket_cancel(q->sock, NULL,
ISC_SOCKCANCEL_ALL);
} else {
else
clear_query(q);
}
for (q = ISC_LIST_HEAD(current_lookup->connecting);
q != NULL;
q = nq)
{
nq = ISC_LIST_NEXT(q, clink);
debug("canceling connecting query %p, belonging to %p",
q, current_lookup);
if (q->sock != NULL)
isc_socket_cancel(q->sock, NULL,
ISC_SOCKCANCEL_ALL);
else
clear_query(q);
}
q = nq;
}
}
l = ISC_LIST_HEAD(lookup_list);
@@ -3499,6 +3606,8 @@ destroy_libs(void) {
isc_result_t result;
#endif
if (keep != NULL)
isc_socket_detach(&keep);
debug("destroy_libs()");
if (global_task != NULL) {
debug("freeing task");
@@ -3895,7 +4004,7 @@ sigchase_scanname(dns_rdatatype_t type, dns_rdatatype_t covers,
check_result(result, "dns_name_totext");
isc_buffer_usedregion(b, &r);
r.base[r.length] = '\0';
strcpy(lookup->textname, (char*)r.base);
strlcpy(lookup->textname, (char*)r.base, sizeof(lookup->textname));
isc_buffer_free(&b);
if (type == dns_rdatatype_rrsig)
@@ -3920,17 +4029,35 @@ sigchase_scanname(dns_rdatatype_t type, dns_rdatatype_t covers,
return (NULL);
}
void
insert_trustedkey(dst_key_t **keyp)
isc_result_t
insert_trustedkey(void *arg, dns_name_t *name, dns_rdataset_t *rdataset)
{
if (*keyp == NULL)
return;
if (tk_list.nb_tk >= MAX_TRUSTED_KEY)
return;
isc_result_t result;
dst_key_t *key;
tk_list.key[tk_list.nb_tk++] = *keyp;
*keyp = NULL;
return;
UNUSED(arg);
if (rdataset == NULL || rdataset->type != dns_rdatatype_dnskey)
return (ISC_R_SUCCESS);
for (result = dns_rdataset_first(rdataset);
result == ISC_R_SUCCESS;
result = dns_rdataset_next(rdataset)) {
dns_rdata_t rdata = DNS_RDATA_INIT;
isc_buffer_t b;
dns_rdataset_current(rdataset, &rdata);
isc_buffer_init(&b, rdata.data, rdata.length);
isc_buffer_add(&b, rdata.length);
if (tk_list.nb_tk >= MAX_TRUSTED_KEY)
return (ISC_R_SUCCESS);
key = NULL;
result = dst_key_fromdns(name, rdata.rdclass, &b, mctx, &key);
if (result != ISC_R_SUCCESS)
continue;
tk_list.key[tk_list.nb_tk++] = key;
}
return (ISC_R_SUCCESS);
}
void
@@ -3976,87 +4103,12 @@ removetmpkey(isc_mem_t *mctx, const char *file)
return (result);
}
isc_result_t
opentmpkey(isc_mem_t *mctx, const char *file, char **tempp, FILE **fp) {
FILE *f = NULL;
isc_result_t result;
char *tempname = NULL;
char *tempnamekey = NULL;
int tempnamelen;
int tempnamekeylen;
char *x;
char *cp;
isc_uint32_t which;
while (1) {
tempnamelen = strlen(file) + 20;
tempname = isc_mem_allocate(mctx, tempnamelen);
if (tempname == NULL)
return (ISC_R_NOMEMORY);
memset(tempname, 0, tempnamelen);
result = isc_file_mktemplate(file, tempname, tempnamelen);
if (result != ISC_R_SUCCESS)
goto cleanup;
cp = tempname;
while (*cp != '\0')
cp++;
if (cp == tempname) {
isc_mem_free(mctx, tempname);
return (ISC_R_FAILURE);
}
x = cp--;
while (cp >= tempname && *cp == 'X') {
isc_random_get(&which);
*cp = alphnum[which % (sizeof(alphnum) - 1)];
x = cp--;
}
tempnamekeylen = tempnamelen+5;
tempnamekey = isc_mem_allocate(mctx, tempnamekeylen);
if (tempnamekey == NULL)
return (ISC_R_NOMEMORY);
memset(tempnamekey, 0, tempnamekeylen);
strncpy(tempnamekey, tempname, tempnamelen);
strcat(tempnamekey ,".key");
if (isc_file_exists(tempnamekey)) {
isc_mem_free(mctx, tempnamekey);
isc_mem_free(mctx, tempname);
continue;
}
if ((f = fopen(tempnamekey, "w")) == NULL) {
printf("get_trusted_key(): trusted key not found %s\n",
tempnamekey);
return (ISC_R_FAILURE);
}
break;
}
isc_mem_free(mctx, tempnamekey);
*tempp = tempname;
*fp = f;
return (ISC_R_SUCCESS);
cleanup:
isc_mem_free(mctx, tempname);
return (result);
}
isc_result_t
get_trusted_key(isc_mem_t *mctx)
{
isc_result_t result;
const char *filename = NULL;
char *filetemp = NULL;
char buf[1500];
FILE *fp, *fptemp;
dst_key_t *key = NULL;
dns_rdatacallbacks_t callbacks;
result = isc_file_exists(trustedkey);
if (result != ISC_TRUE) {
@@ -4077,40 +4129,11 @@ get_trusted_key(isc_mem_t *mctx)
return (ISC_R_FAILURE);
}
if ((fp = fopen(filename, "r")) == NULL) {
printf("get_trusted_key(): trusted key not found %s\n",
filename);
return (ISC_R_FAILURE);
}
while (fgets(buf, sizeof(buf), fp) != NULL) {
result = opentmpkey(mctx,"tmp_file", &filetemp, &fptemp);
if (result != ISC_R_SUCCESS) {
fclose(fp);
return (ISC_R_FAILURE);
}
if (fputs(buf, fptemp) < 0) {
fclose(fp);
fclose(fptemp);
return (ISC_R_FAILURE);
}
fclose(fptemp);
result = dst_key_fromnamedfile(filetemp, DST_TYPE_PUBLIC,
mctx, &key);
removetmpkey(mctx, filetemp);
isc_mem_free(mctx, filetemp);
if (result != ISC_R_SUCCESS) {
fclose(fp);
return (ISC_R_FAILURE);
}
#if 0
dst_key_tofile(key, DST_TYPE_PUBLIC,"/tmp");
#endif
insert_trustedkey(&key);
if (key != NULL)
dst_key_free(&key);
}
fclose(fp);
return (ISC_R_SUCCESS);
dns_rdatacallbacks_init_stdio(&callbacks);
callbacks.add = insert_trustedkey;
return (dns_master_loadfile(filename, dns_rootname, dns_rootname,
current_lookup->rdclass, 0, &callbacks,
mctx));
}
@@ -4124,7 +4147,7 @@ nameFromString(const char *str, dns_name_t *p_ret) {
REQUIRE(p_ret != NULL);
REQUIRE(str != NULL);
isc_buffer_init(&buffer, str, len);
isc_buffer_constinit(&buffer, str, len);
isc_buffer_add(&buffer, len);
dns_fixedname_init(&fixedname);
@@ -4154,7 +4177,7 @@ prepare_lookup(dns_name_t *name)
lookup->new_search = ISC_TRUE;
lookup->trace_root_sigchase = ISC_FALSE;
strncpy(lookup->textname, lookup->textnamesigchase, MXNAME);
strlcpy(lookup->textname, lookup->textnamesigchase, MXNAME);
lookup->rdtype = lookup->rdtype_sigchase;
lookup->rdtypeset = ISC_TRUE;
@@ -4213,7 +4236,7 @@ prepare_lookup(dns_name_t *name)
dns_rdata_totext(&aaaa, &ns.name, b);
isc_buffer_usedregion(b, &r);
r.base[r.length] = '\0';
strncpy(namestr, (char*)r.base,
strlcpy(namestr, (char*)r.base,
DNS_NAME_FORMATSIZE);
isc_buffer_free(&b);
dns_rdata_reset(&aaaa);
@@ -4242,7 +4265,7 @@ prepare_lookup(dns_name_t *name)
dns_rdata_totext(&a, &ns.name, b);
isc_buffer_usedregion(b, &r);
r.base[r.length] = '\0';
strncpy(namestr, (char*)r.base,
strlcpy(namestr, (char*)r.base,
DNS_NAME_FORMATSIZE);
isc_buffer_free(&b);
dns_rdata_reset(&a);
@@ -4421,7 +4444,6 @@ contains_trusted_key(dns_name_t *name, dns_rdataset_t *rdataset,
{
isc_result_t result;
dns_rdata_t rdata = DNS_RDATA_INIT;
dst_key_t *trustedKey = NULL;
dst_key_t *dnsseckey = NULL;
int i;
@@ -4465,10 +4487,6 @@ contains_trusted_key(dns_name_t *name, dns_rdataset_t *rdataset,
dst_key_free(&dnsseckey);
} while (dns_rdataset_next(rdataset) == ISC_R_SUCCESS);
if (trustedKey != NULL)
dst_key_free(&trustedKey);
trustedKey = NULL;
return (ISC_R_NOTFOUND);
}
+15 -5
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2007, 2009-2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2007, 2009-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -446,10 +446,18 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
if (msg->rcode != 0) {
char namestr[DNS_NAME_FORMATSIZE];
dns_name_format(query->lookup->name, namestr, sizeof(namestr));
printf("Host %s not found: %d(%s)\n",
(msg->rcode != dns_rcode_nxdomain) ? namestr :
query->lookup->textname, msg->rcode,
rcode_totext(msg->rcode));
if (query->lookup->identify_previous_line)
printf("Nameserver %s:\n\t%s not found: %d(%s)\n",
query->servname,
(msg->rcode != dns_rcode_nxdomain) ? namestr :
query->lookup->textname, msg->rcode,
rcode_totext(msg->rcode));
else
printf("Host %s not found: %d(%s)\n",
(msg->rcode != dns_rcode_nxdomain) ? namestr :
query->lookup->textname, msg->rcode,
rcode_totext(msg->rcode));
return (ISC_R_SUCCESS);
}
@@ -630,6 +638,8 @@ pre_parse_args(int argc, char **argv) {
case 'w': break;
case 'C': break;
case 'D':
if (debugging)
debugtiming = ISC_TRUE;
debugging = ISC_TRUE;
break;
case 'N': break;
+5 -2
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -168,6 +168,7 @@ isc_boolean_t sigchase;
dns_name_t *oname;
ISC_LINK(dig_lookup_t) link;
ISC_LIST(dig_query_t) q;
ISC_LIST(dig_query_t) connecting;
dig_query_t *current_query;
dig_serverlist_t my_server_list;
dig_searchlist_t *origin;
@@ -214,6 +215,7 @@ struct dig_query {
slspace[4];
isc_socket_t *sock;
ISC_LINK(dig_query_t) link;
ISC_LINK(dig_query_t) clink;
isc_sockaddr_t sockaddr;
isc_time_t time_sent;
isc_uint64_t byte_count;
@@ -273,7 +275,8 @@ extern isc_boolean_t validated;
extern isc_taskmgr_t *taskmgr;
extern isc_task_t *global_task;
extern isc_boolean_t free_now;
extern isc_boolean_t debugging, memdebugging;
extern isc_boolean_t debugging, debugtiming, memdebugging;
extern isc_boolean_t keep_open;
extern char *progname;
extern int tries;
+7 -2
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2004-2007, 2010, 2012 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2004-2007, 2010, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
.\"
.\" Permission to use, copy, modify, and/or distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
@@ -216,6 +216,11 @@ Tell the name server to query other servers if it does not have the information.
(Default = recurse; abbreviation = [no]rec)
.RE
.PP
\fBndots=\fR\fInumber\fR
.RS 4
Set the number of dots (label separators) in a domain that will disable searching. Absolute names always stop searching.
.RE
.PP
\fBretry=\fR\fInumber\fR
.RS 4
Set the number of retries to number.
@@ -254,5 +259,5 @@ Try the next nameserver if a nameserver responds with SERVFAIL or a referral (no
.PP
Andrew Cherenson
.SH "COPYRIGHT"
Copyright \(co 2004\-2007, 2010, 2012 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2004\-2007, 2010, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
.br
+22 -6
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -57,6 +57,7 @@ static isc_boolean_t in_use = ISC_FALSE;
static char defclass[MXRD] = "IN";
static char deftype[MXRD] = "A";
static isc_event_t *global_event = NULL;
static int query_error = 1, print_error = 0;
static char domainopt[DNS_NAME_MAXTEXT];
@@ -406,6 +407,9 @@ isc_result_t
printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
char servtext[ISC_SOCKADDR_FORMATSIZE];
/* I've we've gotten this far, we've reached a server. */
query_error = 0;
debug("printmessage()");
isc_sockaddr_format(&query->sockaddr, servtext, sizeof(servtext));
@@ -430,9 +434,11 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
dns_name_format(query->lookup->name,
nametext, sizeof(nametext));
printf("** server can't find %s: %s\n",
(msg->rcode != dns_rcode_nxdomain) ? nametext :
query->lookup->textname, rcode_totext(msg->rcode));
nametext, rcode_totext(msg->rcode));
debug("returning with rcode == 0");
/* the lookup failed */
print_error |= 1;
return (ISC_R_SUCCESS);
}
@@ -487,8 +493,8 @@ show_settings(isc_boolean_t full, isc_boolean_t serv_only) {
printf(" %s\t\t%s\n",
usesearch ? "search" : "nosearch",
recurse ? "recurse" : "norecurse");
printf(" timeout = %d\t\tretry = %d\tport = %d\n",
timeout, tries, port);
printf(" timeout = %d\t\tretry = %d\tport = %d\tndots = %d\n",
timeout, tries, port, ndots);
printf(" querytype = %-8s\tclass = %s\n", deftype, defclass);
printf(" srchlist = ");
for (listent = ISC_LIST_HEAD(search_list);
@@ -575,6 +581,14 @@ set_tries(const char *value) {
tries = n;
}
static void
set_ndots(const char *value) {
isc_uint32_t n;
isc_result_t result = parse_uint(&n, value, 128, "ndots");
if (result == ISC_R_SUCCESS)
ndots = n;
}
static void
setoption(char *opt) {
if (strncasecmp(opt, "all", 4) == 0) {
@@ -655,6 +669,8 @@ setoption(char *opt) {
nofail=ISC_FALSE;
} else if (strncasecmp(opt, "nofail", 3) == 0) {
nofail=ISC_TRUE;
} else if (strncasecmp(opt, "ndots=", 6) == 0) {
set_ndots(&opt[6]);
} else {
printf("*** Invalid option: %s\n", opt);
}
@@ -903,5 +919,5 @@ main(int argc, char **argv) {
destroy_libs();
isc_app_finish();
return (0);
return (query_error | print_error);
}
+13 -1
View File
@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY mdash "&#8212;">]>
<!--
- Copyright (C) 2004-2007, 2010, 2012 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2004-2007, 2010, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
@@ -75,6 +75,7 @@
<year>2007</year>
<year>2010</year>
<year>2012</year>
<year>2013</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
@@ -410,6 +411,17 @@ nslookup -query=hinfo -timeout=10
</listitem>
</varlistentry>
<varlistentry>
<term><constant>ndots=</constant><replaceable>number</replaceable></term>
<listitem>
<para>
Set the number of dots (label separators) in a domain
that will disable searching. Absolute names always
stop searching.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>retry=</constant><replaceable>number</replaceable></term>
<listitem>
+13 -7
View File
@@ -1,5 +1,5 @@
<!--
- Copyright (C) 2004-2007, 2010, 2012 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2004-2007, 2010, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
@@ -31,7 +31,7 @@
<div class="cmdsynopsis"><p><code class="command">nslookup</code> [<code class="option">-option</code>] [name | -] [server]</p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2543362"></a><h2>DESCRIPTION</h2>
<a name="id2543365"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">Nslookup</strong></span>
is a program to query Internet domain name servers. <span><strong class="command">Nslookup</strong></span>
has two modes: interactive and non-interactive. Interactive mode allows
@@ -43,7 +43,7 @@
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2543378"></a><h2>ARGUMENTS</h2>
<a name="id2543381"></a><h2>ARGUMENTS</h2>
<p>
Interactive mode is entered in the following cases:
</p>
@@ -78,7 +78,7 @@ nslookup -query=hinfo -timeout=10
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2543421"></a><h2>INTERACTIVE COMMANDS</h2>
<a name="id2543425"></a><h2>INTERACTIVE COMMANDS</h2>
<div class="variablelist"><dl>
<dt><span class="term"><code class="constant">host</code> [<span class="optional">server</span>]</span></dt>
<dd>
@@ -249,6 +249,12 @@ nslookup -query=hinfo -timeout=10
(Default = recurse; abbreviation = [no]rec)
</p>
</dd>
<dt><span class="term"><code class="constant">ndots=</code><em class="replaceable"><code>number</code></em></span></dt>
<dd><p>
Set the number of dots (label separators) in a domain
that will disable searching. Absolute names always
stop searching.
</p></dd>
<dt><span class="term"><code class="constant">retry=</code><em class="replaceable"><code>number</code></em></span></dt>
<dd><p>
Set the number of retries to number.
@@ -288,19 +294,19 @@ nslookup -query=hinfo -timeout=10
</dl></div>
</div>
<div class="refsect1" lang="en">
<a name="id2546288"></a><h2>FILES</h2>
<a name="id2546307"></a><h2>FILES</h2>
<p><code class="filename">/etc/resolv.conf</code>
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2546299"></a><h2>SEE ALSO</h2>
<a name="id2546318"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dig</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">host</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>.
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2546333"></a><h2>Author</h2>
<a name="id2546353"></a><h2>Author</h2>
<p>
Andrew Cherenson
</p>
+3 -3
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2004-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2004-2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2000-2003 Internet Software Consortium.
.\"
.\" Permission to use, copy, modify, and/or distribute this software for any
@@ -230,7 +230,7 @@ Generate a NSEC3 chain with the given hex encoded salt. A dash (\fIsalt\fR) can
.PP
\-H \fIiterations\fR
.RS 4
When generating a NSEC3 chain use this many interations. The default is 100.
When generating an NSEC3 chain, use this many iterations. The default is 100.
.RE
.PP
\-A
@@ -304,7 +304,7 @@ RFC 4033.
.PP
Internet Systems Consortium
.SH "COPYRIGHT"
Copyright \(co 2004\-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2004\-2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
.br
Copyright \(co 2000\-2003 Internet Software Consortium.
.br
+47 -3
View File
@@ -641,6 +641,8 @@ hashlist_add(hashlist_t *l, const unsigned char *hash, size_t len)
if (l->entries == l->size) {
l->size = l->size * 2 + 100;
l->hashbuf = realloc(l->hashbuf, l->size * l->length);
if (l->hashbuf == NULL)
fatal("unable to grow hashlist: out of memory");
}
memset(l->hashbuf + l->entries * l->length, 0, l->length);
memcpy(l->hashbuf + l->entries * l->length, hash, len);
@@ -1980,6 +1982,39 @@ remove_records(dns_dbnode_t *node, dns_rdatatype_t which) {
dns_rdatasetiter_destroy(&rdsiter);
}
/*
* Remove signatures covering the given type (0 == all signatures).
*/
static void
remove_sigs(dns_dbnode_t *node, dns_rdatatype_t which) {
isc_result_t result;
dns_rdatatype_t type, covers;
dns_rdatasetiter_t *rdsiter = NULL;
dns_rdataset_t rdataset;
dns_rdataset_init(&rdataset);
result = dns_db_allrdatasets(gdb, node, gversion, 0, &rdsiter);
check_result(result, "dns_db_allrdatasets()");
for (result = dns_rdatasetiter_first(rdsiter);
result == ISC_R_SUCCESS;
result = dns_rdatasetiter_next(rdsiter)) {
dns_rdatasetiter_current(rdsiter, &rdataset);
type = rdataset.type;
covers = rdataset.covers;
dns_rdataset_disassociate(&rdataset);
if (type == dns_rdatatype_rrsig &&
(covers == which || which == 0))
{
result = dns_db_deleterdataset(gdb, node, gversion,
type, covers);
check_result(result, "dns_db_deleterdataset()");
continue;
}
}
dns_rdatasetiter_destroy(&rdsiter);
}
/*%
* Generate NSEC records for the zone and remove NSEC3/NSEC3PARAM records.
*/
@@ -2061,9 +2096,11 @@ nsecify(void) {
if (delegation(name, node, &nsttl)) {
zonecut = dns_fixedname_name(&fzonecut);
dns_name_copy(name, zonecut, NULL);
remove_sigs(node, 0);
if (generateds)
add_ds(name, node, nsttl);
}
result = dns_dbiterator_next(dbiter);
nextnode = NULL;
while (result == ISC_R_SUCCESS) {
@@ -2081,6 +2118,8 @@ nsecify(void) {
(zonecut != NULL &&
dns_name_issubdomain(nextname, zonecut)))
{
remove_sigs(nextnode, 0);
remove_records(nextnode, dns_rdatatype_nsec);
dns_db_detachnode(gdb, &nextnode);
result = dns_dbiterator_next(dbiter);
continue;
@@ -2397,6 +2436,7 @@ nsec3ify(unsigned int hashalg, unsigned int iterations,
if (!dns_name_issubdomain(nextname, gorigin) ||
(zonecut != NULL &&
dns_name_issubdomain(nextname, zonecut))) {
remove_sigs(nextnode, 0);
dns_db_detachnode(gdb, &nextnode);
result = dns_dbiterator_next(dbiter);
continue;
@@ -2404,6 +2444,7 @@ nsec3ify(unsigned int hashalg, unsigned int iterations,
if (delegation(nextname, nextnode, &nsttl)) {
zonecut = dns_fixedname_name(&fzonecut);
dns_name_copy(nextname, zonecut, NULL);
remove_sigs(nextnode, 0);
if (generateds)
add_ds(nextname, nextnode, nsttl);
if (OPTOUT(nsec3flags) &&
@@ -2740,8 +2781,8 @@ warnifallksk(dns_db_t *db) {
"Supply non-KSK dnskey or use '-z'.\n",
program);
else
fatal("No non-KSK dnskey found. "
"Supply non-KSK dnskey or use '-z'.");
fatal("No non-KSK DNSKEY found; "
"supply a ZSK or use '-z'.");
}
}
@@ -3520,7 +3561,10 @@ main(int argc, char *argv[]) {
check_result(result, "isc_file_mktemplate");
fp = NULL;
result = isc_file_openunique(tempfile, &fp);
if (outputformat == dns_masterformat_text)
result = isc_file_openunique(tempfile, &fp);
else
result = isc_file_bopenunique(tempfile, &fp);
if (result != ISC_R_SUCCESS)
fatal("failed to open temporary output file: %s",
isc_result_totext(result));
+3 -2
View File
@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY mdash "&#8212;">]>
<!--
- Copyright (C) 2004-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2004-2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2003 Internet Software Consortium.
-
- Permission to use, copy, modify, and/or distribute this software for any
@@ -44,6 +44,7 @@
<year>2008</year>
<year>2009</year>
<year>2012</year>
<year>2013</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
<copyright>
@@ -438,7 +439,7 @@
<term>-H <replaceable class="parameter">iterations</replaceable></term>
<listitem>
<para>
When generating a NSEC3 chain use this many interations. The
When generating an NSEC3 chain, use this many iterations. The
default is 100.
</para>
</listitem>
+8 -8
View File
@@ -1,5 +1,5 @@
<!--
- Copyright (C) 2004-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2004-2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2003 Internet Software Consortium.
-
- Permission to use, copy, modify, and/or distribute this software for any
@@ -32,7 +32,7 @@
<div class="cmdsynopsis"><p><code class="command">dnssec-signzone</code> [<code class="option">-a</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-d <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-e <em class="replaceable"><code>end-time</code></em></code>] [<code class="option">-f <em class="replaceable"><code>output-file</code></em></code>] [<code class="option">-g</code>] [<code class="option">-h</code>] [<code class="option">-k <em class="replaceable"><code>key</code></em></code>] [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-i <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-I <em class="replaceable"><code>input-format</code></em></code>] [<code class="option">-j <em class="replaceable"><code>jitter</code></em></code>] [<code class="option">-N <em class="replaceable"><code>soa-serial-format</code></em></code>] [<code class="option">-o <em class="replaceable"><code>origin</code></em></code>] [<code class="option">-O <em class="replaceable"><code>output-format</code></em></code>] [<code class="option">-p</code>] [<code class="option">-P</code>] [<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-s <em class="replaceable"><code>start-time</code></em></code>] [<code class="option">-t</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-z</code>] [<code class="option">-3 <em class="replaceable"><code>salt</code></em></code>] [<code class="option">-H <em class="replaceable"><code>iterations</code></em></code>] [<code class="option">-A</code>] {zonefile} [key...]</p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2543561"></a><h2>DESCRIPTION</h2>
<a name="id2543564"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dnssec-signzone</strong></span>
signs a zone. It generates
NSEC and RRSIG records and produces a signed version of the
@@ -43,7 +43,7 @@
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2543579"></a><h2>OPTIONS</h2>
<a name="id2543582"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-a</span></dt>
<dd><p>
@@ -249,7 +249,7 @@
</p></dd>
<dt><span class="term">-H <em class="replaceable"><code>iterations</code></em></span></dt>
<dd><p>
When generating a NSEC3 chain use this many interations. The
When generating an NSEC3 chain, use this many iterations. The
default is 100.
</p></dd>
<dt><span class="term">-A</span></dt>
@@ -273,7 +273,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
<a name="id2544506"></a><h2>EXAMPLE</h2>
<a name="id2544509"></a><h2>EXAMPLE</h2>
<p>
The following command signs the <strong class="userinput"><code>example.com</code></strong>
zone with the DSA key generated by <span><strong class="command">dnssec-keygen</strong></span>
@@ -302,7 +302,7 @@ db.example.com.signed
%</pre>
</div>
<div class="refsect1" lang="en">
<a name="id2544557"></a><h2>KNOWN BUGS</h2>
<a name="id2544561"></a><h2>KNOWN BUGS</h2>
<p>
<span><strong class="command">dnssec-signzone</strong></span> was designed so that it could
sign a zone partially, using only a subset of the DNSSEC keys
@@ -327,14 +327,14 @@ db.example.com.signed
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2544720"></a><h2>SEE ALSO</h2>
<a name="id2544723"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
<em class="citetitle">RFC 4033</em>.
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2544744"></a><h2>AUTHOR</h2>
<a name="id2544747"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
+11 -1
View File
@@ -1,4 +1,4 @@
# Copyright (C) 2004-2008, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2004-2008, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2002 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -21,6 +21,12 @@ top_srcdir = @top_srcdir@
@BIND9_VERSION@
@BIND9_PRODUCT@
@BIND9_DESCRIPTION@
@BIND9_SRCID@
@BIND9_CONFIGARGS@
@BIND9_MAKE_INCLUDES@
@@ -107,6 +113,9 @@ MANOBJS = ${MANPAGES} ${HTMLPAGES}
main.@O@: main.c
${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
-DVERSION=\"${VERSION}\" \
-DPRODUCT=\"${PRODUCT}\" \
-DDESCRIPTION=\"${DESCRIPTION}\" \
-DSRCID=\"${SRCID}\" \
-DCONFIGARGS="\"${CONFIGARGS}\"" \
-DNS_LOCALSTATEDIR=\"${localstatedir}\" \
-DNS_SYSCONFDIR=\"${sysconfdir}\" -c ${srcdir}/main.c
@@ -114,6 +123,7 @@ main.@O@: main.c
config.@O@: config.c
${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
-DVERSION=\"${VERSION}\" \
-DSRCID=\"${SRCID}\" \
-DNS_LOCALSTATEDIR=\"${localstatedir}\" \
-c ${srcdir}/config.c
+101 -133
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -954,6 +954,7 @@ ns_client_send(ns_client_t *client) {
result = dns_compress_init(&cctx, -1, client->mctx);
if (result != ISC_R_SUCCESS)
goto done;
dns_compress_setsensitive(&cctx, ISC_TRUE);
cleanup_cctx = ISC_TRUE;
result = dns_message_renderbegin(client->message, &cctx, &buffer);
@@ -1170,62 +1171,30 @@ ns_client_error(ns_client_t *client, isc_result_t result) {
static inline isc_result_t
client_addopt(ns_client_t *client) {
dns_rdataset_t *rdataset;
dns_rdatalist_t *rdatalist;
dns_rdata_t *rdata;
char nsid[BUFSIZ], *nsidp;
isc_result_t result;
dns_view_t *view;
dns_resolver_t *resolver;
isc_uint16_t udpsize;
dns_ednsopt_t ednsopts[2];
int count = 0;
unsigned int flags;
REQUIRE(client->opt == NULL); /* XXXRTH free old. */
rdatalist = NULL;
result = dns_message_gettemprdatalist(client->message, &rdatalist);
if (result != ISC_R_SUCCESS)
return (result);
rdata = NULL;
result = dns_message_gettemprdata(client->message, &rdata);
if (result != ISC_R_SUCCESS)
return (result);
rdataset = NULL;
result = dns_message_gettemprdataset(client->message, &rdataset);
if (result != ISC_R_SUCCESS)
return (result);
dns_rdataset_init(rdataset);
rdatalist->type = dns_rdatatype_opt;
rdatalist->covers = 0;
/*
* Set the maximum UDP buffer size.
*/
view = client->view;
resolver = (view != NULL) ? view->resolver : NULL;
if (resolver != NULL)
udpsize = dns_resolver_getudpsize(resolver);
else
udpsize = ns_g_udpsize;
rdatalist->rdclass = udpsize;
/*
* Set EXTENDED-RCODE, VERSION and Z to 0.
*/
rdatalist->ttl = (client->extflags & DNS_MESSAGEEXTFLAG_REPLYPRESERVE);
flags = client->extflags & DNS_MESSAGEEXTFLAG_REPLYPRESERVE;
/* Set EDNS options if applicable */
if (client->attributes & NS_CLIENTATTR_WANTNSID &&
if ((client->attributes & NS_CLIENTATTR_WANTNSID) != 0 &&
(ns_g_server->server_id != NULL ||
ns_g_server->server_usehostname)) {
/*
* Space required for NSID data:
* 2 bytes for opt code
* + 2 bytes for NSID length
* + NSID itself
*/
char nsid[BUFSIZ], *nsidp;
isc_buffer_t *buffer = NULL;
if (ns_g_server->server_usehostname) {
isc_result_t result;
result = ns_os_gethostname(nsid, sizeof(nsid));
@@ -1236,35 +1205,15 @@ client_addopt(ns_client_t *client) {
} else
nsidp = ns_g_server->server_id;
rdata->length = strlen(nsidp) + 4;
result = isc_buffer_allocate(client->mctx, &buffer,
rdata->length);
if (result != ISC_R_SUCCESS)
goto no_nsid;
isc_buffer_putuint16(buffer, DNS_OPT_NSID);
isc_buffer_putuint16(buffer, strlen(nsidp));
isc_buffer_putstr(buffer, nsidp);
rdata->data = buffer->base;
dns_message_takebuffer(client->message, &buffer);
} else {
no_nsid:
rdata->data = NULL;
rdata->length = 0;
ednsopts[count].code = DNS_OPT_NSID;
ednsopts[count].length = strlen(nsidp);
ednsopts[count].value = (unsigned char *)nsidp;
count++;
}
rdata->rdclass = rdatalist->rdclass;
rdata->type = rdatalist->type;
rdata->flags = 0;
ISC_LIST_INIT(rdatalist->rdata);
ISC_LIST_APPEND(rdatalist->rdata, rdata, link);
RUNTIME_CHECK(dns_rdatalist_tordataset(rdatalist, rdataset)
== ISC_R_SUCCESS);
client->opt = rdataset;
return (ISC_R_SUCCESS);
no_nsid:
result = dns_message_buildopt(client->message, &client->opt, 0,
udpsize, flags, ednsopts, count);
return (result);
}
static inline isc_boolean_t
@@ -1345,6 +1294,83 @@ ns_client_isself(dns_view_t *myview, dns_tsigkey_t *mykey,
return (ISC_TF(view == myview));
}
static isc_result_t
process_opt(ns_client_t *client, dns_rdataset_t *opt) {
dns_rdata_t rdata;
isc_buffer_t optbuf;
isc_result_t result;
isc_uint16_t optcode;
isc_uint16_t optlen;
/*
* Set the client's UDP buffer size.
*/
client->udpsize = opt->rdclass;
/*
* If the requested UDP buffer size is less than 512,
* ignore it and use 512.
*/
if (client->udpsize < 512)
client->udpsize = 512;
/*
* Get the flags out of the OPT record.
*/
client->extflags = (isc_uint16_t)(opt->ttl & 0xFFFF);
/*
* Do we understand this version of EDNS?
*
* XXXRTH need library support for this!
*/
client->ednsversion = (opt->ttl & 0x00FF0000) >> 16;
if (client->ednsversion > 0) {
isc_stats_increment(ns_g_server->nsstats,
dns_nsstatscounter_badednsver);
result = client_addopt(client);
if (result == ISC_R_SUCCESS)
result = DNS_R_BADVERS;
ns_client_error(client, result);
goto cleanup;
}
/* Check for NSID request */
result = dns_rdataset_first(opt);
if (result == ISC_R_SUCCESS) {
dns_rdata_init(&rdata);
dns_rdataset_current(opt, &rdata);
isc_buffer_init(&optbuf, rdata.data, rdata.length);
isc_buffer_add(&optbuf, rdata.length);
while (isc_buffer_remaininglength(&optbuf) >= 4) {
optcode = isc_buffer_getuint16(&optbuf);
optlen = isc_buffer_getuint16(&optbuf);
switch (optcode) {
case DNS_OPT_NSID:
client->attributes |= NS_CLIENTATTR_WANTNSID;
isc_buffer_forward(&optbuf, optlen);
break;
default:
isc_buffer_forward(&optbuf, optlen);
break;
}
}
}
isc_stats_increment(ns_g_server->nsstats, dns_nsstatscounter_edns0in);
/*
* Create an OPT for our reply.
*/
result = client_addopt(client);
if (result != ISC_R_SUCCESS) {
ns_client_error(client, result);
goto cleanup;
}
cleanup:
return (result);
}
/*
* Handle an incoming request event from the socket (UDP case)
* or tcpmsg (TCP case).
@@ -1367,8 +1393,6 @@ client_request(isc_task_t *task, isc_event_t *event) {
dns_messageid_t id;
unsigned int flags;
isc_boolean_t notimp;
dns_rdata_t rdata;
isc_uint16_t optcode;
REQUIRE(event != NULL);
client = event->ev_arg;
@@ -1377,10 +1401,9 @@ client_request(isc_task_t *task, isc_event_t *event) {
INSIST(client->recursionquota == NULL);
INSIST(client->state ==
TCP_CLIENT(client) ?
NS_CLIENTSTATE_READING :
NS_CLIENTSTATE_READY);
INSIST(client->state == (TCP_CLIENT(client) ?
NS_CLIENTSTATE_READING :
NS_CLIENTSTATE_READY));
ns_client_requests++;
@@ -1569,67 +1592,9 @@ client_request(isc_task_t *task, isc_event_t *event) {
*/
opt = dns_message_getopt(client->message);
if (opt != NULL) {
/*
* Set the client's UDP buffer size.
*/
client->udpsize = opt->rdclass;
/*
* If the requested UDP buffer size is less than 512,
* ignore it and use 512.
*/
if (client->udpsize < 512)
client->udpsize = 512;
/*
* Get the flags out of the OPT record.
*/
client->extflags = (isc_uint16_t)(opt->ttl & 0xFFFF);
/*
* Do we understand this version of EDNS?
*
* XXXRTH need library support for this!
*/
client->ednsversion = (opt->ttl & 0x00FF0000) >> 16;
if (client->ednsversion > 0) {
isc_stats_increment(ns_g_server->nsstats,
dns_nsstatscounter_badednsver);
result = client_addopt(client);
if (result == ISC_R_SUCCESS)
result = DNS_R_BADVERS;
ns_client_error(client, result);
result = process_opt(client, opt);
if (result != ISC_R_SUCCESS)
goto cleanup;
}
/* Check for NSID request */
result = dns_rdataset_first(opt);
if (result == ISC_R_SUCCESS) {
dns_rdata_init(&rdata);
dns_rdataset_current(opt, &rdata);
if (rdata.length >= 2) {
isc_buffer_t nsidbuf;
isc_buffer_init(&nsidbuf,
rdata.data, rdata.length);
isc_buffer_add(&nsidbuf, rdata.length);
optcode = isc_buffer_getuint16(&nsidbuf);
if (optcode == DNS_OPT_NSID)
client->attributes |=
NS_CLIENTATTR_WANTNSID;
}
}
isc_stats_increment(ns_g_server->nsstats,
dns_nsstatscounter_edns0in);
/*
* Create an OPT for our reply.
*/
result = client_addopt(client);
if (result != ISC_R_SUCCESS) {
ns_client_error(client, result);
goto cleanup;
}
}
if (client->message->rdclass == 0) {
@@ -2390,6 +2355,9 @@ ns_client_replace(ns_client_t *client) {
CTRACE("replace");
REQUIRE(client != NULL);
REQUIRE(client->manager != NULL);
result = ns_clientmgr_createclients(client->manager,
1, client->interface,
(TCP_CLIENT(client) ?
+11 -12
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -87,7 +87,7 @@ options {\n\
statistics-file \"named.stats\";\n\
statistics-interval 60;\n\
tcp-clients 100;\n\
tcp-listen-queue 3;\n\
tcp-listen-queue 10;\n\
# tkey-dhkey <none>\n\
# tkey-gssapi-credential <none>\n\
# tkey-domain <none>\n\
@@ -136,6 +136,7 @@ options {\n\
check-names slave warn;\n\
check-names response ignore;\n\
check-mx warn;\n\
check-spf warn;\n\
acache-enable no;\n\
acache-cleaning-interval 60;\n\
max-acache-size 16M;\n\
@@ -601,17 +602,16 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
if (isc_sockaddr_getport(&addrs[i]) == 0)
isc_sockaddr_setport(&addrs[i], port);
keys[i] = NULL;
if (!cfg_obj_isstring(key)) {
i++;
i++; /* Increment here so that cleanup on error works. */
if (!cfg_obj_isstring(key))
continue;
}
keys[i] = isc_mem_get(mctx, sizeof(dns_name_t));
if (keys[i] == NULL)
keys[i - 1] = isc_mem_get(mctx, sizeof(dns_name_t));
if (keys[i - 1] == NULL)
goto cleanup;
dns_name_init(keys[i], NULL);
dns_name_init(keys[i - 1], NULL);
keystr = cfg_obj_asstring(key);
isc_buffer_init(&b, keystr, strlen(keystr));
isc_buffer_constinit(&b, keystr, strlen(keystr));
isc_buffer_add(&b, strlen(keystr));
dns_fixedname_init(&fname);
result = dns_name_fromtext(dns_fixedname_name(&fname), &b,
@@ -619,10 +619,9 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
if (result != ISC_R_SUCCESS)
goto cleanup;
result = dns_name_dup(dns_fixedname_name(&fname), mctx,
keys[i]);
keys[i - 1]);
if (result != ISC_R_SUCCESS)
goto cleanup;
i++;
}
if (pushed != 0) {
pushed--;
@@ -678,7 +677,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
if (addrs != NULL)
isc_mem_put(mctx, addrs, addrcount * sizeof(isc_sockaddr_t));
if (keys != NULL) {
for (j = 0; j <= i; j++) {
for (j = 0; j < i; j++) {
if (keys[j] == NULL)
continue;
if (dns_name_dynamic(keys[j]))
+1 -1
View File
@@ -61,7 +61,7 @@ command_compare(const char *text, const char *command) {
isc_result_t
ns_control_docommand(isccc_sexpr_t *message, isc_buffer_t *text) {
isccc_sexpr_t *data;
char *command;
char *command = NULL;
isc_result_t result;
int log_level;
#ifdef HAVE_LIBSCF
+8 -5
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2008, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2008, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -149,7 +149,7 @@ free_listener(controllistener_t *listener) {
if (listener->acl != NULL)
dns_acl_detach(&listener->acl);
isc_mem_put(listener->mctx, listener, sizeof(*listener));
isc_mem_putanddetach(&listener->mctx, listener, sizeof(*listener));
}
static void
@@ -373,8 +373,10 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
if (result == ISC_R_SUCCESS)
break;
isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret));
log_invalid(&conn->ccmsg, result);
goto cleanup;
if (result != ISCCC_R_BADAUTH) {
log_invalid(&conn->ccmsg, result);
goto cleanup;
}
}
if (key == NULL) {
@@ -1064,8 +1066,9 @@ add_listener(ns_controls_t *cp, controllistener_t **listenerp,
result = ISC_R_NOMEMORY;
if (result == ISC_R_SUCCESS) {
listener->mctx = NULL;
isc_mem_attach(mctx, &listener->mctx);
listener->controls = cp;
listener->mctx = mctx;
listener->task = cp->server->task;
listener->address = *addr;
listener->sock = NULL;
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env perl
#
# Copyright (C) 2006-2008 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2006-2008, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
+1
View File
@@ -0,0 +1 @@
!named
+7 -6
View File
@@ -161,12 +161,13 @@ struct ns_client {
#define NS_CLIENT_MAGIC ISC_MAGIC('N','S','C','c')
#define NS_CLIENT_VALID(c) ISC_MAGIC_VALID(c, NS_CLIENT_MAGIC)
#define NS_CLIENTATTR_TCP 0x01
#define NS_CLIENTATTR_RA 0x02 /*%< Client gets recursive service */
#define NS_CLIENTATTR_PKTINFO 0x04 /*%< pktinfo is valid */
#define NS_CLIENTATTR_MULTICAST 0x08 /*%< recv'd from multicast */
#define NS_CLIENTATTR_WANTDNSSEC 0x10 /*%< include dnssec records */
#define NS_CLIENTATTR_WANTNSID 0x20 /*%< include nameserver ID */
#define NS_CLIENTATTR_TCP 0x001
#define NS_CLIENTATTR_RA 0x002 /*%< Client gets recursive service */
#define NS_CLIENTATTR_PKTINFO 0x004 /*%< pktinfo is valid */
#define NS_CLIENTATTR_MULTICAST 0x008 /*%< recv'd from multicast */
#define NS_CLIENTATTR_WANTDNSSEC 0x010 /*%< include dnssec records */
#define NS_CLIENTATTR_WANTNSID 0x020 /*%< include nameserver ID */
#define NS_CLIENTATTR_WANTAD 0x100 /*%< want AD in response if possible */
extern unsigned int ns_client_requests;
+6 -1
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2008, 2010, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2008, 2010, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -63,6 +63,9 @@ EXTERN isc_timermgr_t * ns_g_timermgr INIT(NULL);
EXTERN isc_socketmgr_t * ns_g_socketmgr INIT(NULL);
EXTERN cfg_parser_t * ns_g_parser INIT(NULL);
EXTERN const char * ns_g_version INIT(VERSION);
EXTERN const char * ns_g_product INIT(PRODUCT);
EXTERN const char * ns_g_description INIT(DESCRIPTION);
EXTERN const char * ns_g_srcid INIT(SRCID);
EXTERN const char * ns_g_configargs INIT(CONFIGARGS);
EXTERN in_port_t ns_g_port INIT(0);
EXTERN in_port_t lwresd_g_listenport INIT(0);
@@ -111,6 +114,7 @@ EXTERN isc_boolean_t ns_g_coreok INIT(ISC_TRUE);
EXTERN const char * ns_g_chrootdir INIT(NULL);
EXTERN isc_boolean_t ns_g_foreground INIT(ISC_FALSE);
EXTERN isc_boolean_t ns_g_logstderr INIT(ISC_FALSE);
EXTERN isc_boolean_t ns_g_nosyslog INIT(ISC_FALSE);
#if NS_RUN_PID_DIR
EXTERN const char * ns_g_defaultpidfile INIT(NS_LOCALSTATEDIR
@@ -134,6 +138,7 @@ EXTERN isc_boolean_t ns_g_memstatistics INIT(ISC_FALSE);
EXTERN isc_boolean_t ns_g_clienttest INIT(ISC_FALSE);
EXTERN isc_boolean_t ns_g_nosoa INIT(ISC_FALSE);
EXTERN isc_boolean_t ns_g_noaa INIT(ISC_FALSE);
EXTERN isc_boolean_t ns_g_nonearest INIT(ISC_FALSE);
#undef EXTERN
#undef INIT
+17 -8
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -79,11 +79,13 @@ ns_interfacemgr_create(isc_mem_t *mctx, isc_taskmgr_t *taskmgr,
if (mgr == NULL)
return (ISC_R_NOMEMORY);
mgr->mctx = NULL;
isc_mem_attach(mctx, &mgr->mctx);
result = isc_mutex_init(&mgr->lock);
if (result != ISC_R_SUCCESS)
goto cleanup_mem;
mgr->mctx = mctx;
mgr->taskmgr = taskmgr;
mgr->socketmgr = socketmgr;
mgr->dispatchmgr = dispatchmgr;
@@ -115,7 +117,7 @@ ns_interfacemgr_create(isc_mem_t *mctx, isc_taskmgr_t *taskmgr,
ns_listenlist_detach(&mgr->listenon4);
ns_listenlist_detach(&mgr->listenon6);
cleanup_mem:
isc_mem_put(mctx, mgr, sizeof(*mgr));
isc_mem_putanddetach(&mgr->mctx, mgr, sizeof(*mgr));
return (result);
}
@@ -128,7 +130,7 @@ ns_interfacemgr_destroy(ns_interfacemgr_t *mgr) {
clearlistenon(mgr);
DESTROYLOCK(&mgr->lock);
mgr->magic = 0;
isc_mem_put(mgr->mctx, mgr, sizeof(*mgr));
isc_mem_putanddetach(&mgr->mctx, mgr, sizeof(*mgr));
}
dns_aclenv_t *
@@ -523,15 +525,22 @@ setup_locals(ns_interfacemgr_t *mgr, isc_interface_t *interface) {
return (result);
if (result != ISC_R_SUCCESS) {
isc_log_write(IFMGR_COMMON_LOGARGS,
ISC_LOG_WARNING,
isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_WARNING,
"omitting IPv4 interface %s from "
"localnets ACL: %s",
interface->name,
"localnets ACL: %s", interface->name,
isc_result_totext(result));
return (ISC_R_SUCCESS);
}
if (prefixlen == 0U) {
isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_WARNING,
"omitting %s interface %s from localnets ACL: "
"zero prefix length detected",
(netaddr->family == AF_INET) ? "IPv4" : "IPv6",
interface->name);
return (ISC_R_SUCCESS);
}
result = dns_iptable_addprefix(mgr->aclenv.localnets->iptable,
netaddr, prefixlen, ISC_TRUE);
if (result != ISC_R_SUCCESS)
+2 -2
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2007, 2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -201,7 +201,7 @@ isc_result_t
ns_log_setdefaultcategory(isc_logconfig_t *lcfg) {
isc_result_t result;
if (! ns_g_logstderr) {
if (! ns_g_logstderr && ! ns_g_nosyslog) {
result = isc_log_usechannel(lcfg, "default_syslog",
ISC_LOGCATEGORY_DEFAULT, NULL);
if (result != ISC_R_SUCCESS)
+39 -32
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2007, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -41,10 +41,10 @@
/*%
* Set up a logging category according to the named.conf data
* in 'ccat' and add it to 'lctx'.
* in 'ccat' and add it to 'logconfig'.
*/
static isc_result_t
category_fromconf(const cfg_obj_t *ccat, isc_logconfig_t *lctx) {
category_fromconf(const cfg_obj_t *ccat, isc_logconfig_t *logconfig) {
isc_result_t result;
const char *catname;
isc_logcategory_t *category;
@@ -64,6 +64,9 @@ category_fromconf(const cfg_obj_t *ccat, isc_logconfig_t *lctx) {
return (ISC_R_SUCCESS);
}
if (logconfig == NULL)
return (ISC_R_SUCCESS);
module = NULL;
destinations = cfg_tuple_get(ccat, "destinations");
@@ -74,7 +77,7 @@ category_fromconf(const cfg_obj_t *ccat, isc_logconfig_t *lctx) {
const cfg_obj_t *channel = cfg_listelt_value(element);
const char *channelname = cfg_obj_asstring(channel);
result = isc_log_usechannel(lctx, channelname, category,
result = isc_log_usechannel(logconfig, channelname, category,
module);
if (result != ISC_R_SUCCESS) {
isc_log_write(ns_g_lctx, CFG_LOGCATEGORY_CONFIG,
@@ -89,10 +92,11 @@ category_fromconf(const cfg_obj_t *ccat, isc_logconfig_t *lctx) {
/*%
* Set up a logging channel according to the named.conf data
* in 'cchan' and add it to 'lctx'.
* in 'cchan' and add it to 'logconfig'.
*/
static isc_result_t
channel_fromconf(const cfg_obj_t *channel, isc_logconfig_t *lctx) {
channel_fromconf(const cfg_obj_t *channel, isc_logconfig_t *logconfig)
{
isc_result_t result;
isc_logdestination_t dest;
unsigned int type;
@@ -215,8 +219,11 @@ channel_fromconf(const cfg_obj_t *channel, isc_logconfig_t *lctx) {
level = cfg_obj_asuint32(severity);
}
result = isc_log_createchannel(lctx, channelname,
type, level, &dest, flags);
if (logconfig == NULL)
result = ISC_R_SUCCESS;
else
result = isc_log_createchannel(logconfig, channelname,
type, level, &dest, flags);
if (result == ISC_R_SUCCESS && type == ISC_LOG_TOFILE) {
FILE *fp;
@@ -226,39 +233,40 @@ channel_fromconf(const cfg_obj_t *channel, isc_logconfig_t *lctx) {
* Fix defect #22771
*/
result = isc_file_isplainfile(dest.file.name);
if (result == ISC_R_SUCCESS ||
result == ISC_R_FILENOTFOUND) {
if (result == ISC_R_SUCCESS || result == ISC_R_FILENOTFOUND) {
/*
* Test that the file can be opened, since
* isc_log_open() can't effectively report
* failures when called in
* isc_log_doit().
* failures when called in isc_log_doit().
*/
result = isc_stdio_open(dest.file.name, "a", &fp);
if (result != ISC_R_SUCCESS) {
syslog(LOG_ERR,
"isc_stdio_open '%s' failed: %s",
dest.file.name,
isc_result_totext(result));
if (logconfig != NULL && !ns_g_nosyslog)
syslog(LOG_ERR,
"isc_stdio_open '%s' failed: "
"%s", dest.file.name,
isc_result_totext(result));
fprintf(stderr,
"isc_stdio_open '%s' failed: %s",
"isc_stdio_open '%s' failed: %s\n",
dest.file.name,
isc_result_totext(result));
} else
(void)isc_stdio_close(fp);
} else {
syslog(LOG_ERR, "isc_file_isplainfile '%s' failed: %s",
dest.file.name, isc_result_totext(result));
fprintf(stderr, "isc_file_isplainfile '%s' failed: %s",
dest.file.name, isc_result_totext(result));
goto done;
}
if (logconfig != NULL && !ns_g_nosyslog)
syslog(LOG_ERR, "isc_file_isplainfile '%s' failed: %s",
dest.file.name, isc_result_totext(result));
fprintf(stderr, "isc_file_isplainfile '%s' failed: %s\n",
dest.file.name, isc_result_totext(result));
}
done:
return (result);
}
isc_result_t
ns_log_configure(isc_logconfig_t *logconf, const cfg_obj_t *logstmt) {
ns_log_configure(isc_logconfig_t *logconfig, const cfg_obj_t *logstmt) {
isc_result_t result;
const cfg_obj_t *channels = NULL;
const cfg_obj_t *categories = NULL;
@@ -267,7 +275,8 @@ ns_log_configure(isc_logconfig_t *logconf, const cfg_obj_t *logstmt) {
isc_boolean_t unmatched_set = ISC_FALSE;
const cfg_obj_t *catname;
CHECK(ns_log_setdefaultchannels(logconf));
if (logconfig != NULL)
CHECK(ns_log_setdefaultchannels(logconfig));
(void)cfg_map_get(logstmt, "channel", &channels);
for (element = cfg_list_first(channels);
@@ -275,7 +284,7 @@ ns_log_configure(isc_logconfig_t *logconf, const cfg_obj_t *logstmt) {
element = cfg_list_next(element))
{
const cfg_obj_t *channel = cfg_listelt_value(element);
CHECK(channel_fromconf(channel, logconf));
CHECK(channel_fromconf(channel, logconfig));
}
(void)cfg_map_get(logstmt, "category", &categories);
@@ -284,7 +293,7 @@ ns_log_configure(isc_logconfig_t *logconf, const cfg_obj_t *logstmt) {
element = cfg_list_next(element))
{
const cfg_obj_t *category = cfg_listelt_value(element);
CHECK(category_fromconf(category, logconf));
CHECK(category_fromconf(category, logconfig));
if (!default_set) {
catname = cfg_tuple_get(category, "name");
if (strcmp(cfg_obj_asstring(catname), "default") == 0)
@@ -297,16 +306,14 @@ ns_log_configure(isc_logconfig_t *logconf, const cfg_obj_t *logstmt) {
}
}
if (!default_set)
CHECK(ns_log_setdefaultcategory(logconf));
if (logconfig != NULL && !default_set)
CHECK(ns_log_setdefaultcategory(logconfig));
if (!unmatched_set)
CHECK(ns_log_setunmatchedcategory(logconf));
if (logconfig != NULL && !unmatched_set)
CHECK(ns_log_setunmatchedcategory(logconfig));
return (ISC_R_SUCCESS);
cleanup:
if (logconf != NULL)
isc_logconfig_destroy(&logconf);
return (result);
}
+7 -6
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2007, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2007, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -204,6 +204,8 @@ lookup_done(isc_task_t *task, isc_event_t *event) {
lwres_grbnresponse_t *grbn;
int i;
REQUIRE(event != NULL);
UNUSED(task);
lwb.base = NULL;
@@ -324,9 +326,6 @@ lookup_done(isc_task_t *task, isc_event_t *event) {
(grbn->nsigs == 1) ? "" : "s");
}
dns_lookup_destroy(&client->lookup);
isc_event_free(&event);
/*
* Render the packet.
*/
@@ -362,6 +361,9 @@ lookup_done(isc_task_t *task, isc_event_t *event) {
NS_LWDCLIENT_SETSEND(client);
dns_lookup_destroy(&client->lookup);
isc_event_free(&event);
return;
out:
@@ -384,8 +386,7 @@ lookup_done(isc_task_t *task, isc_event_t *event) {
if (lwb.base != NULL)
lwres_context_freemem(cm->lwctx, lwb.base, lwb.length);
if (event != NULL)
isc_event_free(&event);
isc_event_free(&event);
ns_lwdclient_log(50, "error constructing getrrsetbyname response");
ns_lwdclient_errorpktsend(client, LWRES_R_FAILURE);
+1 -1
View File
@@ -368,7 +368,7 @@ ns_lwdmanager_create(isc_mem_t *mctx, const cfg_obj_t *lwres,
dns_fixedname_init(&fname);
name = dns_fixedname_name(&fname);
isc_buffer_init(&namebuf, searchstr,
isc_buffer_constinit(&namebuf, searchstr,
strlen(searchstr));
isc_buffer_add(&namebuf, strlen(searchstr));
result = dns_name_fromtext(name, &namebuf,
+18 -7
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -462,6 +462,10 @@ parse_command_line(int argc, char *argv[]) {
ns_g_nosoa = ISC_TRUE;
else if (!strcmp(isc_commandline_argument, "noaa"))
ns_g_noaa = ISC_TRUE;
else if (!strcmp(isc_commandline_argument, "nosyslog"))
ns_g_nosyslog = ISC_TRUE;
else if (!strcmp(isc_commandline_argument, "nonearest"))
ns_g_nonearest = ISC_TRUE;
else
fprintf(stderr, "unknown -T flag '%s\n",
isc_commandline_argument);
@@ -470,11 +474,18 @@ parse_command_line(int argc, char *argv[]) {
ns_g_username = isc_commandline_argument;
break;
case 'v':
printf("BIND %s\n", ns_g_version);
printf("%s %s", ns_g_product, ns_g_version);
if (*ns_g_description != 0)
printf(" %s", ns_g_description);
printf("\n");
exit(0);
case 'V':
printf("BIND %s built with %s\n", ns_g_version,
printf("%s %s", ns_g_product, ns_g_version);
if (*ns_g_description != 0)
printf(" %s", ns_g_description);
printf(" <id:%s> built with %s\n", ns_g_srcid,
ns_g_configargs);
printf("\n");
exit(0);
case '?':
usage();
@@ -685,8 +696,8 @@ setup(void) {
isc_result_totext(result));
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN,
ISC_LOG_NOTICE, "starting BIND %s%s", ns_g_version,
saved_command_line);
ISC_LOG_NOTICE, "starting %s %s%s", ns_g_product,
ns_g_version, saved_command_line);
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN,
ISC_LOG_NOTICE, "built with %s", ns_g_configargs);
@@ -909,9 +920,9 @@ main(int argc, char *argv[]) {
*/
strlcat(version,
#if defined(NO_VERSION_DATE) || !defined(__DATE__)
"named version: BIND " VERSION,
"named version: BIND " VERSION " <" SRCID ">",
#else
"named version: BIND " VERSION " (" __DATE__ ")",
"named version: BIND " VERSION " <" SRCID "> (" __DATE__ ")",
#endif
sizeof(version));
result = isc_file_progname(*argv, program_name, sizeof(program_name));
+3 -3
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2004-2008, 2012 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2004-2008, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
.\"
.\" Permission to use, copy, modify, and/or distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
@@ -178,7 +178,7 @@ options {
random\-device \fIquoted_string\fR;
recursive\-clients \fIinteger\fR;
serial\-query\-rate \fIinteger\fR;
server\-id ( \fIquoted_string\fR | none |;
server\-id ( \fIquoted_string\fR | hostname | none );
stacksize \fIsize\fR;
statistics\-file \fIquoted_string\fR;
statistics\-interval \fIinteger\fR; // not yet implemented
@@ -544,5 +544,5 @@ zone \fIstring\fR \fIoptional_class\fR {
\fBrndc\fR(8),
BIND 9 Administrator Reference Manual.
.SH "COPYRIGHT"
Copyright \(co 2004\-2008, 2012 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2004\-2008, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
.br
+3 -2
View File
@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY mdash "&#8212;">]>
<!--
- Copyright (C) 2004-2008, 2012 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2004-2008, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
@@ -42,6 +42,7 @@
<year>2007</year>
<year>2008</year>
<year>2012</year>
<year>2013</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
@@ -207,7 +208,7 @@ options {
random-device <replaceable>quoted_string</replaceable>;
recursive-clients <replaceable>integer</replaceable>;
serial-query-rate <replaceable>integer</replaceable>;
server-id ( <replaceable>quoted_string</replaceable> | none |;
server-id ( <replaceable>quoted_string</replaceable> | hostname | none );
stacksize <replaceable>size</replaceable>;
statistics-file <replaceable>quoted_string</replaceable>;
statistics-interval <replaceable>integer</replaceable>; // not yet implemented
+16 -16
View File
@@ -1,5 +1,5 @@
<!--
- Copyright (C) 2004-2008, 2012 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2004-2008, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
@@ -31,7 +31,7 @@
<div class="cmdsynopsis"><p><code class="command">named.conf</code> </p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2543346"></a><h2>DESCRIPTION</h2>
<a name="id2543349"></a><h2>DESCRIPTION</h2>
<p><code class="filename">named.conf</code> is the configuration file
for
<span><strong class="command">named</strong></span>. Statements are enclosed
@@ -50,14 +50,14 @@
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2543373"></a><h2>ACL</h2>
<a name="id2543377"></a><h2>ACL</h2>
<div class="literallayout"><p><br>
acl <em class="replaceable"><code>string</code></em> { <em class="replaceable"><code>address_match_element</code></em>; ... };<br>
<br>
</p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2543389"></a><h2>KEY</h2>
<a name="id2543393"></a><h2>KEY</h2>
<div class="literallayout"><p><br>
key <em class="replaceable"><code>domain_name</code></em> {<br>
algorithm <em class="replaceable"><code>string</code></em>;<br>
@@ -66,7 +66,7 @@ key
</p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2543409"></a><h2>MASTERS</h2>
<a name="id2543412"></a><h2>MASTERS</h2>
<div class="literallayout"><p><br>
masters <em class="replaceable"><code>string</code></em> [<span class="optional"> port <em class="replaceable"><code>integer</code></em> </span>] {<br>
( <em class="replaceable"><code>masters</code></em> | <em class="replaceable"><code>ipv4_address</code></em> [<span class="optional">port <em class="replaceable"><code>integer</code></em></span>] |<br>
@@ -75,7 +75,7 @@ masters
</p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2543454"></a><h2>SERVER</h2>
<a name="id2543458"></a><h2>SERVER</h2>
<div class="literallayout"><p><br>
server ( <em class="replaceable"><code>ipv4_address[<span class="optional">/prefixlen</span>]</code></em> | <em class="replaceable"><code>ipv6_address[<span class="optional">/prefixlen</span>]</code></em> ) {<br>
bogus <em class="replaceable"><code>boolean</code></em>;<br>
@@ -97,7 +97,7 @@ server
</p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2543523"></a><h2>TRUSTED-KEYS</h2>
<a name="id2543526"></a><h2>TRUSTED-KEYS</h2>
<div class="literallayout"><p><br>
trusted-keys {<br>
<em class="replaceable"><code>domain_name</code></em> <em class="replaceable"><code>flags</code></em> <em class="replaceable"><code>protocol</code></em> <em class="replaceable"><code>algorithm</code></em> <em class="replaceable"><code>key</code></em>; ... <br>
@@ -105,7 +105,7 @@ trusted-keys
</p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2543548"></a><h2>CONTROLS</h2>
<a name="id2543552"></a><h2>CONTROLS</h2>
<div class="literallayout"><p><br>
controls {<br>
inet ( <em class="replaceable"><code>ipv4_address</code></em> | <em class="replaceable"><code>ipv6_address</code></em> | * )<br>
@@ -117,7 +117,7 @@ controls
</p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2543584"></a><h2>LOGGING</h2>
<a name="id2543587"></a><h2>LOGGING</h2>
<div class="literallayout"><p><br>
logging {<br>
channel <em class="replaceable"><code>string</code></em> {<br>
@@ -135,7 +135,7 @@ logging
</p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2543622"></a><h2>LWRES</h2>
<a name="id2543625"></a><h2>LWRES</h2>
<div class="literallayout"><p><br>
lwres {<br>
listen-on [<span class="optional"> port <em class="replaceable"><code>integer</code></em> </span>] {<br>
@@ -148,7 +148,7 @@ lwres
</p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2543664"></a><h2>OPTIONS</h2>
<a name="id2543667"></a><h2>OPTIONS</h2>
<div class="literallayout"><p><br>
options {<br>
avoid-v4-udp-ports { <em class="replaceable"><code>port</code></em>; ... };<br>
@@ -176,7 +176,7 @@ options
random-device <em class="replaceable"><code>quoted_string</code></em>;<br>
recursive-clients <em class="replaceable"><code>integer</code></em>;<br>
serial-query-rate <em class="replaceable"><code>integer</code></em>;<br>
server-id ( <em class="replaceable"><code>quoted_string</code></em> | none |;<br>
server-id ( <em class="replaceable"><code>quoted_string</code></em> | hostname | none );<br>
stacksize <em class="replaceable"><code>size</code></em>;<br>
statistics-file <em class="replaceable"><code>quoted_string</code></em>;<br>
statistics-interval <em class="replaceable"><code>integer</code></em>; // not yet implemented<br>
@@ -329,7 +329,7 @@ options
</p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2544455"></a><h2>VIEW</h2>
<a name="id2544459"></a><h2>VIEW</h2>
<div class="literallayout"><p><br>
view <em class="replaceable"><code>string</code></em> <em class="replaceable"><code>optional_class</code></em> {<br>
match-clients { <em class="replaceable"><code>address_match_element</code></em>; ... };<br>
@@ -477,7 +477,7 @@ view
</p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2545116"></a><h2>ZONE</h2>
<a name="id2545121"></a><h2>ZONE</h2>
<div class="literallayout"><p><br>
zone <em class="replaceable"><code>string</code></em> <em class="replaceable"><code>optional_class</code></em> {<br>
type ( master | slave | stub | hint |<br>
@@ -569,12 +569,12 @@ zone
</p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2545413"></a><h2>FILES</h2>
<a name="id2545417"></a><h2>FILES</h2>
<p><code class="filename">/etc/named.conf</code>
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2545425"></a><h2>SEE ALSO</h2>
<a name="id2545429"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">named-checkconf</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">rndc</span>(8)</span>,
+80 -42
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -57,6 +57,7 @@
#include <named/client.h>
#include <named/globals.h>
#include <named/interfacemgr.h>
#include <named/log.h>
#include <named/server.h>
#include <named/sortlist.h>
@@ -83,6 +84,10 @@
/*% Want DNSSEC? */
#define WANTDNSSEC(c) (((c)->attributes & \
NS_CLIENTATTR_WANTDNSSEC) != 0)
/*% Want WANTAD? */
#define WANTAD(c) (((c)->attributes & \
NS_CLIENTATTR_WANTAD) != 0)
/*% No authority? */
#define NOAUTHORITY(c) (((c)->query.attributes & \
NS_QUERYATTR_NOAUTHORITY) != 0)
@@ -608,7 +613,7 @@ query_validatezonedb(ns_client_t *client, dns_name_t *name,
{
isc_result_t result;
isc_boolean_t check_acl, new_zone;
dns_acl_t *queryacl;
dns_acl_t *queryacl, *queryonacl;
ns_dbversion_t *dbversion;
REQUIRE(zone != NULL);
@@ -645,6 +650,7 @@ query_validatezonedb(ns_client_t *client, dns_name_t *name,
result = DNS_R_SERVFAIL;
goto fail;
}
if (new_zone) {
check_acl = ISC_TRUE;
} else if (!dbversion->queryok) {
@@ -723,6 +729,25 @@ query_validatezonedb(ns_client_t *client, dns_name_t *name,
client->query.attributes |= NS_QUERYATTR_QUERYOKVALID;
}
/*
* If and only if we've gotten this far, check
* allow-query-on too
*/
if (result == ISC_R_SUCCESS) {
queryonacl = dns_zone_getqueryonacl(zone);
if (queryonacl == NULL)
queryonacl = client->view->queryonacl;
result = ns_client_checkaclsilent(client,
&client->interface->addr,
queryonacl, ISC_TRUE);
if ((options & DNS_GETDB_NOLOG) == 0 &&
result != ISC_R_SUCCESS)
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
NS_LOGMODULE_QUERY, ISC_LOG_INFO,
"query-on denied");
}
if (result != ISC_R_SUCCESS)
goto refuse;
}
@@ -1025,13 +1050,6 @@ query_isduplicate(ns_client_t *client, dns_name_t *name,
mname = NULL;
}
/*
* If the dns_name_t we're looking up is already in the message,
* we don't want to trigger the caller's name replacement logic.
*/
if (name == mname)
mname = NULL;
if (mnamep != NULL)
*mnamep = mname;
@@ -1230,6 +1248,7 @@ query_addadditional(void *arg, dns_name_t *name, dns_rdatatype_t qtype) {
if (dns_rdataset_isassociated(rdataset) &&
!query_isduplicate(client, fname, type, &mname)) {
if (mname != NULL) {
INSIST(mname != fname);
query_releasename(client, &fname);
fname = mname;
} else
@@ -1292,11 +1311,13 @@ query_addadditional(void *arg, dns_name_t *name, dns_rdatatype_t qtype) {
mname = NULL;
if (!query_isduplicate(client, fname,
dns_rdatatype_a, &mname)) {
if (mname != NULL) {
query_releasename(client, &fname);
fname = mname;
} else
need_addname = ISC_TRUE;
if (mname != fname) {
if (mname != NULL) {
query_releasename(client, &fname);
fname = mname;
} else
need_addname = ISC_TRUE;
}
ISC_LIST_APPEND(fname->list, rdataset, link);
added_something = ISC_TRUE;
if (sigrdataset != NULL &&
@@ -1338,11 +1359,13 @@ query_addadditional(void *arg, dns_name_t *name, dns_rdatatype_t qtype) {
mname = NULL;
if (!query_isduplicate(client, fname,
dns_rdatatype_aaaa, &mname)) {
if (mname != NULL) {
query_releasename(client, &fname);
fname = mname;
} else
need_addname = ISC_TRUE;
if (mname != fname) {
if (mname != NULL) {
query_releasename(client, &fname);
fname = mname;
} else
need_addname = ISC_TRUE;
}
ISC_LIST_APPEND(fname->list, rdataset, link);
added_something = ISC_TRUE;
if (sigrdataset != NULL &&
@@ -1865,22 +1888,24 @@ query_addadditional2(void *arg, dns_name_t *name, dns_rdatatype_t qtype) {
crdataset->type == dns_rdatatype_aaaa) {
if (!query_isduplicate(client, fname, crdataset->type,
&mname)) {
if (mname != NULL) {
/*
* A different type of this name is
* already stored in the additional
* section. We'll reuse the name.
* Note that this should happen at most
* once. Otherwise, fname->link could
* leak below.
*/
INSIST(mname0 == NULL);
if (mname != fname) {
if (mname != NULL) {
/*
* A different type of this name is
* already stored in the additional
* section. We'll reuse the name.
* Note that this should happen at most
* once. Otherwise, fname->link could
* leak below.
*/
INSIST(mname0 == NULL);
query_releasename(client, &fname);
fname = mname;
mname0 = mname;
} else
need_addname = ISC_TRUE;
query_releasename(client, &fname);
fname = mname;
mname0 = mname;
} else
need_addname = ISC_TRUE;
}
ISC_LIST_UNLINK(cfname.list, crdataset, link);
ISC_LIST_APPEND(fname->list, crdataset, link);
added_something = ISC_TRUE;
@@ -2638,6 +2663,14 @@ query_addbestns(ns_client_t *client) {
SECURE(client) && WANTDNSSEC(client))
goto cleanup;
/*
* If the answer is secure only add NS records if they are secure * when the client may be looking for AD in the response.
*/
if (SECURE(client) && (WANTDNSSEC(client) || WANTAD(client)) &&
((rdataset->trust != dns_trust_secure) ||
(sigrdataset != NULL && sigrdataset->trust != dns_trust_secure)))
goto cleanup;
/*
* If the client doesn't want DNSSEC we can discard the sigrdataset
* now.
@@ -2912,6 +2945,11 @@ query_addwildcardproof(ns_client_t *client, dns_db_t *db,
dns_name_copy(name, cname, NULL);
while (result == DNS_R_NXDOMAIN) {
labels = dns_name_countlabels(cname) - 1;
/*
* Sanity check.
*/
if (labels == 0U)
goto cleanup;
dns_name_split(cname, labels, NULL, cname);
result = dns_db_find(db, cname, version,
dns_rdatatype_nsec,
@@ -4277,7 +4315,9 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
*/
if (found &&
dns_rdataset_isassociated(rdataset) &&
!dns_name_equal(qname, found))
!dns_name_equal(qname, found) &&
!(ns_g_nonearest &&
qtype != dns_rdatatype_ds))
{
unsigned int count;
unsigned int skip;
@@ -4747,7 +4787,8 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
goto addauth;
}
if (dns_db_issecure(db)) {
if (qtype == dns_rdatatype_rrsig &&
dns_db_issecure(db)) {
char namebuf[DNS_NAME_FORMATSIZE];
dns_name_format(client->query.qname,
namebuf,
@@ -5014,7 +5055,6 @@ ns_query_start(ns_client_t *client) {
dns_rdatatype_t qtype;
unsigned int saved_extflags = client->extflags;
unsigned int saved_flags = client->message->flags;
isc_boolean_t want_ad;
CTRACE("ns_query_start");
@@ -5176,13 +5216,11 @@ ns_query_start(ns_client_t *client) {
client->query.attributes &= ~NS_QUERYATTR_SECURE;
/*
* Set 'want_ad' if the client has set AD in the query.
* Set NS_CLIENTATTR_WANTDNSSEC if the client has set AD in the query.
* This allows AD to be returned on queries without DO set.
*/
if ((message->flags & DNS_MESSAGEFLAG_AD) != 0)
want_ad = ISC_TRUE;
else
want_ad = ISC_FALSE;
client->attributes |= NS_CLIENTATTR_WANTAD;
/*
* This is an ordinary query.
@@ -5207,7 +5245,7 @@ ns_query_start(ns_client_t *client) {
* Set AD. We must clear it if we add non-validated data to a
* response.
*/
if (WANTDNSSEC(client) || want_ad)
if (WANTDNSSEC(client) || WANTAD(client))
message->flags |= DNS_MESSAGEFLAG_AD;
qclient = NULL;
+360 -69
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -68,11 +68,13 @@
#include <dns/portlist.h>
#include <dns/rbt.h>
#include <dns/rdataclass.h>
#include <dns/rdatalist.h>
#include <dns/rdataset.h>
#include <dns/rdatastruct.h>
#include <dns/resolver.h>
#include <dns/rootns.h>
#include <dns/secalg.h>
#include <dns/soa.h>
#include <dns/stats.h>
#include <dns/tkey.h>
#include <dns/tsig.h>
@@ -203,6 +205,72 @@ static const struct {
{ "31.172.IN-ADDR.ARPA", ISC_TRUE },
{ "168.192.IN-ADDR.ARPA", ISC_TRUE },
/* RFC 6598 */
{ "64.100.IN-ADDR.ARPA", ISC_FALSE },
{ "65.100.IN-ADDR.ARPA", ISC_FALSE },
{ "66.100.IN-ADDR.ARPA", ISC_FALSE },
{ "67.100.IN-ADDR.ARPA", ISC_FALSE },
{ "68.100.IN-ADDR.ARPA", ISC_FALSE },
{ "69.100.IN-ADDR.ARPA", ISC_FALSE },
{ "70.100.IN-ADDR.ARPA", ISC_FALSE },
{ "71.100.IN-ADDR.ARPA", ISC_FALSE },
{ "72.100.IN-ADDR.ARPA", ISC_FALSE },
{ "73.100.IN-ADDR.ARPA", ISC_FALSE },
{ "74.100.IN-ADDR.ARPA", ISC_FALSE },
{ "75.100.IN-ADDR.ARPA", ISC_FALSE },
{ "76.100.IN-ADDR.ARPA", ISC_FALSE },
{ "77.100.IN-ADDR.ARPA", ISC_FALSE },
{ "78.100.IN-ADDR.ARPA", ISC_FALSE },
{ "79.100.IN-ADDR.ARPA", ISC_FALSE },
{ "80.100.IN-ADDR.ARPA", ISC_FALSE },
{ "81.100.IN-ADDR.ARPA", ISC_FALSE },
{ "82.100.IN-ADDR.ARPA", ISC_FALSE },
{ "83.100.IN-ADDR.ARPA", ISC_FALSE },
{ "84.100.IN-ADDR.ARPA", ISC_FALSE },
{ "85.100.IN-ADDR.ARPA", ISC_FALSE },
{ "86.100.IN-ADDR.ARPA", ISC_FALSE },
{ "87.100.IN-ADDR.ARPA", ISC_FALSE },
{ "88.100.IN-ADDR.ARPA", ISC_FALSE },
{ "89.100.IN-ADDR.ARPA", ISC_FALSE },
{ "90.100.IN-ADDR.ARPA", ISC_FALSE },
{ "91.100.IN-ADDR.ARPA", ISC_FALSE },
{ "92.100.IN-ADDR.ARPA", ISC_FALSE },
{ "93.100.IN-ADDR.ARPA", ISC_FALSE },
{ "94.100.IN-ADDR.ARPA", ISC_FALSE },
{ "95.100.IN-ADDR.ARPA", ISC_FALSE },
{ "96.100.IN-ADDR.ARPA", ISC_FALSE },
{ "97.100.IN-ADDR.ARPA", ISC_FALSE },
{ "98.100.IN-ADDR.ARPA", ISC_FALSE },
{ "99.100.IN-ADDR.ARPA", ISC_FALSE },
{ "100.100.IN-ADDR.ARPA", ISC_FALSE },
{ "101.100.IN-ADDR.ARPA", ISC_FALSE },
{ "102.100.IN-ADDR.ARPA", ISC_FALSE },
{ "103.100.IN-ADDR.ARPA", ISC_FALSE },
{ "104.100.IN-ADDR.ARPA", ISC_FALSE },
{ "105.100.IN-ADDR.ARPA", ISC_FALSE },
{ "106.100.IN-ADDR.ARPA", ISC_FALSE },
{ "107.100.IN-ADDR.ARPA", ISC_FALSE },
{ "108.100.IN-ADDR.ARPA", ISC_FALSE },
{ "109.100.IN-ADDR.ARPA", ISC_FALSE },
{ "110.100.IN-ADDR.ARPA", ISC_FALSE },
{ "111.100.IN-ADDR.ARPA", ISC_FALSE },
{ "112.100.IN-ADDR.ARPA", ISC_FALSE },
{ "113.100.IN-ADDR.ARPA", ISC_FALSE },
{ "114.100.IN-ADDR.ARPA", ISC_FALSE },
{ "115.100.IN-ADDR.ARPA", ISC_FALSE },
{ "116.100.IN-ADDR.ARPA", ISC_FALSE },
{ "117.100.IN-ADDR.ARPA", ISC_FALSE },
{ "118.100.IN-ADDR.ARPA", ISC_FALSE },
{ "119.100.IN-ADDR.ARPA", ISC_FALSE },
{ "120.100.IN-ADDR.ARPA", ISC_FALSE },
{ "121.100.IN-ADDR.ARPA", ISC_FALSE },
{ "122.100.IN-ADDR.ARPA", ISC_FALSE },
{ "123.100.IN-ADDR.ARPA", ISC_FALSE },
{ "124.100.IN-ADDR.ARPA", ISC_FALSE },
{ "125.100.IN-ADDR.ARPA", ISC_FALSE },
{ "126.100.IN-ADDR.ARPA", ISC_FALSE },
{ "127.100.IN-ADDR.ARPA", ISC_FALSE },
/* RFC 5735 and RFC 5737 */
{ "0.IN-ADDR.ARPA", ISC_FALSE }, /* THIS NETWORK */
{ "127.IN-ADDR.ARPA", ISC_FALSE }, /* LOOPBACK */
@@ -228,7 +296,7 @@ static const struct {
{ NULL, ISC_FALSE }
};
ISC_PLATFORM_NORETURN_POST static void
ISC_PLATFORM_NORETURN_PRE static void
fatal(const char *msg, isc_result_t result) ISC_PLATFORM_NORETURN_POST;
static void
@@ -414,7 +482,7 @@ configure_view_dnsseckey(const cfg_obj_t *vconfig, const cfg_obj_t *key,
keystruct.common.rdtype,
&keystruct, &rrdatabuf));
dns_fixedname_init(&fkeyname);
isc_buffer_init(&namebuf, keynamestr, strlen(keynamestr));
isc_buffer_constinit(&namebuf, keynamestr, strlen(keynamestr));
isc_buffer_add(&namebuf, strlen(keynamestr));
CHECK(dns_name_fromtext(keyname, &namebuf,
dns_rootname, ISC_FALSE,
@@ -519,7 +587,7 @@ mustbesecure(const cfg_obj_t *mbs, dns_resolver_t *resolver)
{
obj = cfg_listelt_value(element);
str = cfg_obj_asstring(cfg_tuple_get(obj, "name"));
isc_buffer_init(&b, str, strlen(str));
isc_buffer_constinit(&b, str, strlen(str));
isc_buffer_add(&b, strlen(str));
CHECK(dns_name_fromtext(name, &b, dns_rootname,
ISC_FALSE, NULL));
@@ -673,7 +741,7 @@ configure_order(dns_order_t *order, const cfg_obj_t *ent) {
else
str = "*";
addroot = ISC_TF(strcmp(str, "*") == 0);
isc_buffer_init(&b, str, strlen(str));
isc_buffer_constinit(&b, str, strlen(str));
isc_buffer_add(&b, strlen(str));
dns_fixedname_init(&fixed);
result = dns_name_fromtext(dns_fixedname_name(&fixed), &b,
@@ -859,7 +927,7 @@ disable_algorithms(const cfg_obj_t *disabled, dns_resolver_t *resolver) {
dns_fixedname_init(&fixed);
name = dns_fixedname_name(&fixed);
str = cfg_obj_asstring(cfg_tuple_get(disabled, "name"));
isc_buffer_init(&b, str, strlen(str));
isc_buffer_constinit(&b, str, strlen(str));
isc_buffer_add(&b, strlen(str));
CHECK(dns_name_fromtext(name, &b, dns_rootname, ISC_FALSE, NULL));
@@ -911,7 +979,7 @@ on_disable_list(const cfg_obj_t *disablelist, dns_name_t *zonename) {
{
value = cfg_listelt_value(element);
str = cfg_obj_asstring(value);
isc_buffer_init(&b, str, strlen(str));
isc_buffer_constinit(&b, str, strlen(str));
isc_buffer_add(&b, strlen(str));
result = dns_name_fromtext(name, &b, dns_rootname,
ISC_TRUE, NULL);
@@ -989,6 +1057,244 @@ cache_reusable(dns_view_t *originview, dns_view_t *view,
return (ISC_TRUE);
}
static isc_result_t
add_soa(dns_db_t *db, dns_dbversion_t *version, dns_name_t *name,
dns_name_t *origin, dns_name_t *contact)
{
dns_dbnode_t *node = NULL;
dns_rdata_soa_t soa;
dns_rdata_t rdata = DNS_RDATA_INIT;
dns_rdatalist_t rdatalist;
dns_rdataset_t rdataset;
isc_buffer_t b;
isc_result_t result;
unsigned char buf[2 * DNS_NAME_MAXWIRE + 20];
dns_rdataset_init(&rdataset);
dns_rdatalist_init(&rdatalist);
isc_buffer_init(&b, buf, sizeof(buf));
soa.common.rdtype = dns_rdatatype_soa;
soa.common.rdclass = dns_db_class(db);
soa.mctx = NULL;
soa.serial = 0;
soa.refresh = 28800;
soa.retry = 7200;
soa.expire = 604800;
soa.minimum = 86400;
dns_name_init(&soa.origin, NULL);
dns_name_clone(origin, &soa.origin);
dns_name_init(&soa.contact, NULL);
dns_name_clone(contact, &soa.contact);
CHECK(dns_rdata_fromstruct(&rdata, dns_db_class(db), dns_rdatatype_soa,
&soa, &b));
rdatalist.type = rdata.type;
rdatalist.covers = 0;
rdatalist.rdclass = rdata.rdclass;
rdatalist.ttl = 86400;
ISC_LIST_APPEND(rdatalist.rdata, &rdata, link);
CHECK(dns_rdatalist_tordataset(&rdatalist, &rdataset));
CHECK(dns_db_findnode(db, name, ISC_TRUE, &node));
CHECK(dns_db_addrdataset(db, node, version, 0, &rdataset, 0, NULL));
cleanup:
if (node != NULL)
dns_db_detachnode(db, &node);
return (result);
}
static isc_result_t
add_ns(dns_db_t *db, dns_dbversion_t *version, dns_name_t *name,
dns_name_t *nsname)
{
dns_dbnode_t *node = NULL;
dns_rdata_ns_t ns;
dns_rdata_t rdata = DNS_RDATA_INIT;
dns_rdatalist_t rdatalist;
dns_rdataset_t rdataset;
isc_result_t result;
isc_buffer_t b;
unsigned char buf[DNS_NAME_MAXWIRE];
isc_buffer_init(&b, buf, sizeof(buf));
dns_rdataset_init(&rdataset);
dns_rdatalist_init(&rdatalist);
ns.common.rdtype = dns_rdatatype_ns;
ns.common.rdclass = dns_db_class(db);
ns.mctx = NULL;
dns_name_init(&ns.name, NULL);
dns_name_clone(nsname, &ns.name);
CHECK(dns_rdata_fromstruct(&rdata, dns_db_class(db), dns_rdatatype_ns,
&ns, &b));
rdatalist.type = rdata.type;
rdatalist.covers = 0;
rdatalist.rdclass = rdata.rdclass;
rdatalist.ttl = 86400;
ISC_LIST_APPEND(rdatalist.rdata, &rdata, link);
CHECK(dns_rdatalist_tordataset(&rdatalist, &rdataset));
CHECK(dns_db_findnode(db, name, ISC_TRUE, &node));
CHECK(dns_db_addrdataset(db, node, version, 0, &rdataset, 0, NULL));
cleanup:
if (node != NULL)
dns_db_detachnode(db, &node);
return (result);
}
static isc_result_t
create_empty_zone(dns_zone_t *zone, dns_name_t *name, dns_view_t *view,
const cfg_obj_t *zonelist, const char **empty_dbtype,
int empty_dbtypec, isc_boolean_t zonestats_on)
{
char namebuf[DNS_NAME_FORMATSIZE];
const cfg_listelt_t *element;
const cfg_obj_t *obj;
const cfg_obj_t *zconfig;
const cfg_obj_t *zoptions;
const char *rbt_dbtype[4] = { "rbt" };
const char *sep = ": view ";
const char *str;
const char *viewname = view->name;
dns_db_t *db = NULL;
dns_dbversion_t *version = NULL;
dns_fixedname_t cfixed;
dns_fixedname_t fixed;
dns_fixedname_t nsfixed;
dns_name_t *contact;
dns_name_t *ns;
dns_name_t *zname;
dns_zone_t *myzone = NULL;
int rbt_dbtypec = 1;
isc_result_t result;
dns_namereln_t namereln;
int order;
unsigned int nlabels;
dns_fixedname_init(&fixed);
zname = dns_fixedname_name(&fixed);
dns_fixedname_init(&nsfixed);
ns = dns_fixedname_name(&nsfixed);
dns_fixedname_init(&cfixed);
contact = dns_fixedname_name(&cfixed);
/*
* Look for forward "zones" beneath this empty zone and if so
* create a custom db for the empty zone.
*/
for (element = cfg_list_first(zonelist);
element != NULL;
element = cfg_list_next(element)) {
zconfig = cfg_listelt_value(element);
str = cfg_obj_asstring(cfg_tuple_get(zconfig, "name"));
CHECK(dns_name_fromstring(zname, str, 0, NULL));
namereln = dns_name_fullcompare(zname, name, &order, &nlabels);
if (namereln != dns_namereln_subdomain)
continue;
zoptions = cfg_tuple_get(zconfig, "options");
obj = NULL;
(void)cfg_map_get(zoptions, "type", &obj);
INSIST(obj != NULL);
if (strcasecmp(cfg_obj_asstring(obj), "forward") == 0) {
obj = NULL;
(void)cfg_map_get(zoptions, "forward", &obj);
if (obj == NULL)
continue;
if (strcasecmp(cfg_obj_asstring(obj), "only") != 0)
continue;
}
if (db == NULL) {
CHECK(dns_db_create(view->mctx, "rbt", name,
dns_dbtype_zone, view->rdclass,
0, NULL, &db));
CHECK(dns_db_newversion(db, &version));
if (strcmp(empty_dbtype[2], "@") == 0)
dns_name_clone(name, ns);
else
CHECK(dns_name_fromstring(ns, empty_dbtype[2],
0, NULL));
CHECK(dns_name_fromstring(contact, empty_dbtype[3],
0, NULL));
CHECK(add_soa(db, version, name, ns, contact));
CHECK(add_ns(db, version, name, ns));
}
CHECK(add_ns(db, version, zname, dns_rootname));
}
/*
* Is the existing zone the ok to use?
*/
if (zone != NULL) {
if (db != NULL)
check_dbtype(&zone, rbt_dbtypec, rbt_dbtype,
view->mctx);
else
check_dbtype(&zone, empty_dbtypec, empty_dbtype,
view->mctx);
if (zone != NULL && dns_zone_gettype(zone) != dns_zone_master)
zone = NULL;
if (zone != NULL && dns_zone_getfile(zone) != NULL)
zone = NULL;
}
if (zone == NULL) {
CHECK(dns_zone_create(&myzone, view->mctx));
zone = myzone;
CHECK(dns_zone_setorigin(zone, name));
CHECK(dns_zonemgr_managezone(ns_g_server->zonemgr, zone));
if (db == NULL)
CHECK(dns_zone_setdbtype(zone, empty_dbtypec,
empty_dbtype));
dns_zone_setclass(zone, view->rdclass);
dns_zone_settype(zone, dns_zone_master);
dns_zone_setstats(zone, ns_g_server->zonestats);
}
dns_zone_setoption(zone, ~DNS_ZONEOPT_NOCHECKNS, ISC_FALSE);
dns_zone_setoption(zone, DNS_ZONEOPT_NOCHECKNS, ISC_TRUE);
dns_zone_setnotifytype(zone, dns_notifytype_no);
dns_zone_setdialup(zone, dns_dialuptype_no);
if (view->queryacl)
dns_zone_setqueryacl(zone, view->queryacl);
else
dns_zone_clearqueryacl(zone);
if (view->queryonacl)
dns_zone_setqueryonacl(zone, view->queryonacl);
else
dns_zone_clearqueryonacl(zone);
dns_zone_clearupdateacl(zone);
dns_zone_clearxfracl(zone);
CHECK(setquerystats(zone, view->mctx, zonestats_on));
if (db != NULL) {
dns_db_closeversion(db, &version, ISC_TRUE);
CHECK(dns_zone_replacedb(zone, db, ISC_FALSE));
}
dns_zone_setview(zone, view);
CHECK(dns_view_addzone(view, zone));
if (!strcmp(viewname, "_default")) {
sep = "";
viewname = "";
}
dns_name_format(name, namebuf, sizeof(namebuf));
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_SERVER,
ISC_LOG_INFO, "automatic empty zone%s%s: %s",
sep, viewname, namebuf);
cleanup:
if (myzone != NULL)
dns_zone_detach(&myzone);
if (version != NULL)
dns_db_closeversion(db, &version, ISC_FALSE);
if (db != NULL)
dns_db_detach(&db);
return (result);
}
/*
* Configure 'view' according to 'vconfig', taking defaults from 'config'
* where values are missing in 'vconfig'.
@@ -1039,7 +1345,6 @@ configure_view(dns_view_t *view, const cfg_obj_t *config,
isc_uint32_t max_clients_per_query;
const char *sep = ": view ";
const char *viewname = view->name;
const char *forview = " for view ";
isc_boolean_t rfc1918;
isc_boolean_t empty_zones_enable;
const cfg_obj_t *disablelist = NULL;
@@ -1072,8 +1377,6 @@ configure_view(dns_view_t *view, const cfg_obj_t *config,
if (!strcmp(viewname, "_default")) {
sep = "";
viewname = "";
forview = "";
POST(forview);
}
/*
@@ -1773,7 +2076,7 @@ configure_view(dns_view_t *view, const cfg_obj_t *config,
#endif
str = cfg_obj_asstring(cfg_tuple_get(obj,
"trust-anchor"));
isc_buffer_init(&b, str, strlen(str));
isc_buffer_constinit(&b, str, strlen(str));
isc_buffer_add(&b, strlen(str));
dlv = dns_fixedname_name(&view->dlv_fixed);
CHECK(dns_name_fromtext(dlv, &b, dns_rootname,
@@ -1826,7 +2129,7 @@ configure_view(dns_view_t *view, const cfg_obj_t *config,
element = cfg_list_next(element)) {
exclude = cfg_listelt_value(element);
str = cfg_obj_asstring(exclude);
isc_buffer_init(&b, str, strlen(str));
isc_buffer_constinit(&b, str, strlen(str));
isc_buffer_add(&b, strlen(str));
CHECK(dns_name_fromtext(name, &b, dns_rootname,
ISC_FALSE, NULL));
@@ -1880,7 +2183,7 @@ configure_view(dns_view_t *view, const cfg_obj_t *config,
result = ns_config_get(maps, "empty-server", &obj);
if (result == ISC_R_SUCCESS) {
str = cfg_obj_asstring(obj);
isc_buffer_init(&buffer, str, strlen(str));
isc_buffer_constinit(&buffer, str, strlen(str));
isc_buffer_add(&buffer, strlen(str));
CHECK(dns_name_fromtext(name, &buffer, dns_rootname,
ISC_FALSE, NULL));
@@ -1895,7 +2198,7 @@ configure_view(dns_view_t *view, const cfg_obj_t *config,
result = ns_config_get(maps, "empty-contact", &obj);
if (result == ISC_R_SUCCESS) {
str = cfg_obj_asstring(obj);
isc_buffer_init(&buffer, str, strlen(str));
isc_buffer_constinit(&buffer, str, strlen(str));
isc_buffer_add(&buffer, strlen(str));
CHECK(dns_name_fromtext(name, &buffer, dns_rootname,
ISC_FALSE, NULL));
@@ -1919,7 +2222,7 @@ configure_view(dns_view_t *view, const cfg_obj_t *config,
dns_forwarders_t *forwarders = NULL;
dns_view_t *pview = NULL;
isc_buffer_init(&buffer, empty, strlen(empty));
isc_buffer_constinit(&buffer, empty, strlen(empty));
isc_buffer_add(&buffer, strlen(empty));
/*
* Look for zone on drop list.
@@ -1935,7 +2238,6 @@ configure_view(dns_view_t *view, const cfg_obj_t *config,
*/
(void)dns_view_findzone(view, name, &zone);
if (zone != NULL) {
CHECK(setquerystats(zone, mctx, zonestats_on));
dns_zone_detach(&zone);
continue;
}
@@ -1980,43 +2282,13 @@ configure_view(dns_view_t *view, const cfg_obj_t *config,
if (pview != NULL) {
(void)dns_view_findzone(pview, name, &zone);
dns_view_detach(&pview);
if (zone != NULL)
check_dbtype(&zone, empty_dbtypec,
empty_dbtype, mctx);
if (zone != NULL) {
dns_zone_setview(zone, view);
CHECK(dns_view_addzone(view, zone));
CHECK(setquerystats(zone, mctx,
zonestats_on));
dns_zone_detach(&zone);
continue;
}
}
CHECK(dns_zone_create(&zone, mctx));
CHECK(dns_zone_setorigin(zone, name));
dns_zone_setview(zone, view);
CHECK(dns_zonemgr_managezone(ns_g_server->zonemgr, zone));
dns_zone_setclass(zone, view->rdclass);
dns_zone_settype(zone, dns_zone_master);
dns_zone_setstats(zone, ns_g_server->zonestats);
CHECK(dns_zone_setdbtype(zone, empty_dbtypec,
empty_dbtype));
if (view->queryacl != NULL)
dns_zone_setqueryacl(zone, view->queryacl);
if (view->queryonacl != NULL)
dns_zone_setqueryonacl(zone, view->queryonacl);
dns_zone_setdialup(zone, dns_dialuptype_no);
dns_zone_setnotifytype(zone, dns_notifytype_no);
dns_zone_setoption(zone, DNS_ZONEOPT_NOCHECKNS,
ISC_TRUE);
CHECK(setquerystats(zone, mctx, zonestats_on));
CHECK(dns_view_addzone(view, zone));
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
NS_LOGMODULE_SERVER, ISC_LOG_INFO,
"automatic empty zone%s%s: %s",
sep, viewname, empty);
dns_zone_detach(&zone);
CHECK(create_empty_zone(zone, name, view, zonelist,
empty_dbtype, empty_dbtypec,
zonestats_on));
if (zone != NULL)
dns_zone_detach(&zone);
}
}
@@ -2113,7 +2385,7 @@ configure_alternates(const cfg_obj_t *config, dns_view_t *view,
isc_buffer_t buffer;
in_port_t myport = port;
isc_buffer_init(&buffer, str, strlen(str));
isc_buffer_constinit(&buffer, str, strlen(str));
isc_buffer_add(&buffer, strlen(str));
dns_fixedname_init(&fixed);
name = dns_fixedname_name(&fixed);
@@ -2375,7 +2647,7 @@ configure_zone(const cfg_obj_t *config, const cfg_obj_t *zconfig,
* Get the zone origin as a dns_name_t.
*/
zname = cfg_obj_asstring(cfg_tuple_get(zconfig, "name"));
isc_buffer_init(&buffer, zname, strlen(zname));
isc_buffer_constinit(&buffer, zname, strlen(zname));
isc_buffer_add(&buffer, strlen(zname));
dns_fixedname_init(&fixorigin);
CHECK(dns_name_fromtext(dns_fixedname_name(&fixorigin),
@@ -3011,7 +3283,10 @@ load_configuration(const char *filename, ns_server_t *server,
dns_viewlist_t viewlist;
in_port_t listen_port, udpport_low, udpport_high;
int i;
int num_zones = 0;
isc_boolean_t exclusive = ISC_FALSE;
isc_interval_t interval;
isc_logconfig_t *logc = NULL;
isc_portset_t *v4portset = NULL;
isc_portset_t *v6portset = NULL;
isc_resourcevalue_t nfiles;
@@ -3021,8 +3296,6 @@ load_configuration(const char *filename, ns_server_t *server,
isc_uint32_t reserved;
isc_uint32_t udpsize;
unsigned int maxsocks;
int num_zones = 0;
isc_boolean_t exclusive = ISC_FALSE;
cfg_aclconfctx_init(&aclconfctx);
ISC_LIST_INIT(viewlist);
@@ -3279,8 +3552,8 @@ load_configuration(const char *filename, ns_server_t *server,
result = ns_config_get(maps, "tcp-listen-queue", &obj);
INSIST(result == ISC_R_SUCCESS);
ns_g_listen = cfg_obj_asuint32(obj);
if (ns_g_listen < 3)
ns_g_listen = 3;
if ((ns_g_listen > 0) && (ns_g_listen < 10))
ns_g_listen = 10;
/*
* Configure the interface manager according to the "listen-on"
@@ -3604,13 +3877,30 @@ load_configuration(const char *filename, ns_server_t *server,
* unprivileged user, not root.
*/
if (ns_g_logstderr) {
const cfg_obj_t *logobj = NULL;
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
NS_LOGMODULE_SERVER, ISC_LOG_INFO,
"ignoring config file logging "
"statement due to -g option");
"not using config file logging "
"statement for logging due to "
"-g option");
(void)cfg_map_get(config, "logging", &logobj);
if (logobj != NULL) {
result = ns_log_configure(NULL, logobj);
if (result != ISC_R_SUCCESS) {
isc_log_write(ns_g_lctx,
NS_LOGCATEGORY_GENERAL,
NS_LOGMODULE_SERVER,
ISC_LOG_ERROR,
"checking logging configuration "
"failed: %s",
isc_result_totext(result));
goto cleanup;
}
}
} else {
const cfg_obj_t *logobj = NULL;
isc_logconfig_t *logc = NULL;
CHECKM(isc_logconfig_create(ns_g_lctx, &logc),
"creating new logging configuration");
@@ -3629,11 +3919,9 @@ load_configuration(const char *filename, ns_server_t *server,
"setting up default 'category default'");
}
result = isc_logconfig_use(ns_g_lctx, logc);
if (result != ISC_R_SUCCESS) {
isc_logconfig_destroy(&logc);
CHECKM(result, "installing logging configuration");
}
CHECKM(isc_logconfig_use(ns_g_lctx, logc),
"installing logging configuration");
logc = NULL;
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
NS_LOGMODULE_SERVER, ISC_LOG_DEBUG(1),
@@ -3769,6 +4057,9 @@ load_configuration(const char *filename, ns_server_t *server,
result = ISC_R_SUCCESS;
cleanup:
if (logc != NULL)
isc_logconfig_destroy(&logc);
if (v4portset != NULL)
isc_portset_destroy(ns_g_mctx, &v4portset);
@@ -4442,7 +4733,7 @@ zone_from_args(ns_server_t *server, char *args, dns_zone_t **zonep) {
viewtxt = next_token(&input, " \t");
}
isc_buffer_init(&buf, zonetxt, strlen(zonetxt));
isc_buffer_constinit(&buf, zonetxt, strlen(zonetxt));
isc_buffer_add(&buf, strlen(zonetxt));
dns_fixedname_init(&name);
result = dns_name_fromtext(dns_fixedname_name(&name),
@@ -5204,7 +5495,7 @@ ns_server_flushname(ns_server_t *server, char *args) {
if (target == NULL)
return (ISC_R_UNEXPECTEDEND);
isc_buffer_init(&b, target, strlen(target));
isc_buffer_constinit(&b, target, strlen(target));
isc_buffer_add(&b, strlen(target));
dns_fixedname_init(&fixed);
name = dns_fixedname_name(&fixed);
@@ -5285,7 +5576,7 @@ ns_server_status(ns_server_t *server, isc_buffer_t *text) {
n = snprintf((char *)isc_buffer_used(text),
isc_buffer_availablelength(text),
"version: %s%s%s%s\n"
"version: %s%s%s%s <id:%s>\n"
#ifdef ISC_PLATFORM_USETHREADS
"CPUs found: %u\n"
"worker threads: %u\n"
@@ -5299,7 +5590,7 @@ ns_server_status(ns_server_t *server, isc_buffer_t *text) {
"recursive clients: %d/%d/%d\n"
"tcp clients: %d/%d\n"
"server is up and running",
ns_g_version, ob, alt, cb,
ns_g_version, ob, alt, cb, ns_g_srcid,
#ifdef ISC_PLATFORM_USETHREADS
ns_g_cpus_detected, ns_g_cpus,
#endif
+42 -5
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2008-2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2008-2013 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -84,16 +84,19 @@ static const char *nsstats_desc[dns_nsstatscounter_max];
static const char *resstats_desc[dns_resstatscounter_max];
static const char *zonestats_desc[dns_zonestatscounter_max];
static const char *sockstats_desc[isc_sockstatscounter_max];
static const char *dnssecstats_desc[dns_dnssecstats_max];
#ifdef HAVE_LIBXML2
static const char *nsstats_xmldesc[dns_nsstatscounter_max];
static const char *resstats_xmldesc[dns_resstatscounter_max];
static const char *zonestats_xmldesc[dns_zonestatscounter_max];
static const char *sockstats_xmldesc[isc_sockstatscounter_max];
static const char *dnssecstats_xmldesc[dns_dnssecstats_max];
#else
#define nsstats_xmldesc NULL
#define resstats_xmldesc NULL
#define zonestats_xmldesc NULL
#define sockstats_xmldesc NULL
#define dnssecstats_xmldesc NULL
#endif /* HAVE_LIBXML2 */
#define TRY0(a) do { xmlrc = (a); if (xmlrc < 0) goto error; } while(0)
@@ -107,6 +110,7 @@ static int nsstats_index[dns_nsstatscounter_max];
static int resstats_index[dns_resstatscounter_max];
static int zonestats_index[dns_zonestatscounter_max];
static int sockstats_index[isc_sockstatscounter_max];
static int dnssecstats_index[dns_dnssecstats_max];
static inline void
set_desc(int counter, int maxcounter, const char *fdesc, const char **fdescs,
@@ -408,6 +412,33 @@ init_desc(void) {
"FDwatchRecvErr");
INSIST(i == isc_sockstatscounter_max);
/* Initialize DNSSEC statistics */
for (i = 0; i < dns_dnssecstats_max; i++)
dnssecstats_desc[i] = NULL;
#ifdef HAVE_LIBXML2
for (i = 0; i < dns_dnssecstats_max; i++)
dnssecstats_xmldesc[i] = NULL;
#endif
#define SET_DNSSECSTATDESC(counterid, desc, xmldesc) \
do { \
set_desc(dns_dnssecstats_ ## counterid, \
dns_dnssecstats_max, \
desc, dnssecstats_desc,\
xmldesc, dnssecstats_xmldesc); \
dnssecstats_index[i++] = dns_dnssecstats_ ## counterid; \
} while (0)
i = 0;
SET_DNSSECSTATDESC(asis, "dnssec validation success with signer "
"\"as is\"", "DNSSECasis");
SET_DNSSECSTATDESC(downcase, "dnssec validation success with signer "
"lower cased", "DNSSECdowncase");
SET_DNSSECSTATDESC(wildcard, "dnssec validation of wildcard signature",
"DNSSECwild");
SET_DNSSECSTATDESC(fail, "dnssec validation failures", "DNSSECfail");
INSIST(i == dns_dnssecstats_max);
/* Sanity check */
for (i = 0; i < dns_nsstatscounter_max; i++)
INSIST(nsstats_desc[i] != NULL);
@@ -417,6 +448,8 @@ init_desc(void) {
INSIST(zonestats_desc[i] != NULL);
for (i = 0; i < isc_sockstatscounter_max; i++)
INSIST(sockstats_desc[i] != NULL);
for (i = 0; i < dns_dnssecstats_max; i++)
INSIST(dnssecstats_desc[i] != NULL);
#ifdef HAVE_LIBXML2
for (i = 0; i < dns_nsstatscounter_max; i++)
INSIST(nsstats_xmldesc[i] != NULL);
@@ -426,6 +459,8 @@ init_desc(void) {
INSIST(zonestats_xmldesc[i] != NULL);
for (i = 0; i < isc_sockstatscounter_max; i++)
INSIST(sockstats_xmldesc[i] != NULL);
for (i = 0; i < dns_dnssecstats_max; i++)
INSIST(dnssecstats_xmldesc[i] != NULL);
#endif
}
@@ -841,11 +876,11 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
TRY0(xmlTextWriterEndElement(writer)); /* views */
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "socketmgr"));
isc_socketmgr_renderxml(ns_g_socketmgr, writer);
TRY0(isc_socketmgr_renderxml(ns_g_socketmgr, writer));
TRY0(xmlTextWriterEndElement(writer)); /* socketmgr */
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "taskmgr"));
isc_taskmgr_renderxml(ns_g_taskmgr, writer);
TRY0(isc_taskmgr_renderxml(ns_g_taskmgr, writer));
TRY0(xmlTextWriterEndElement(writer)); /* taskmgr */
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "server"));
@@ -908,7 +943,7 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
TRY0(xmlTextWriterEndElement(writer)); /* server */
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "memory"));
isc_mem_renderxml(writer);
TRY0(isc_mem_renderxml(writer));
TRY0(xmlTextWriterEndElement(writer)); /* memory */
TRY0(xmlTextWriterEndElement(writer)); /* statistics */
@@ -920,6 +955,8 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
xmlFreeTextWriter(writer);
xmlDocDumpFormatMemoryEnc(doc, buf, buflen, "UTF-8", 1);
if (*buf == NULL)
goto error;
xmlFreeDoc(doc);
return (ISC_R_SUCCESS);
@@ -944,7 +981,7 @@ render_index(const char *url, const char *querystring, void *arg,
isc_buffer_t *b, isc_httpdfree_t **freecb,
void **freecb_args)
{
unsigned char *msg;
unsigned char *msg = NULL;
int msglen;
ns_server_t *server = arg;
isc_result_t result;
+3 -3
View File
@@ -73,7 +73,7 @@ ns_tkeyctx_fromconfig(const cfg_obj_t *options, isc_mem_t *mctx,
if (result == ISC_R_SUCCESS) {
s = cfg_obj_asstring(cfg_tuple_get(obj, "name"));
n = cfg_obj_asuint32(cfg_tuple_get(obj, "keyid"));
isc_buffer_init(&b, s, strlen(s));
isc_buffer_constinit(&b, s, strlen(s));
isc_buffer_add(&b, strlen(s));
dns_fixedname_init(&fname);
name = dns_fixedname_name(&fname);
@@ -88,7 +88,7 @@ ns_tkeyctx_fromconfig(const cfg_obj_t *options, isc_mem_t *mctx,
result = cfg_map_get(options, "tkey-domain", &obj);
if (result == ISC_R_SUCCESS) {
s = cfg_obj_asstring(obj);
isc_buffer_init(&b, s, strlen(s));
isc_buffer_constinit(&b, s, strlen(s));
isc_buffer_add(&b, strlen(s));
dns_fixedname_init(&fname);
name = dns_fixedname_name(&fname);
@@ -108,7 +108,7 @@ ns_tkeyctx_fromconfig(const cfg_obj_t *options, isc_mem_t *mctx,
if (result == ISC_R_SUCCESS) {
s = cfg_obj_asstring(obj);
isc_buffer_init(&b, s, strlen(s));
isc_buffer_constinit(&b, s, strlen(s));
isc_buffer_add(&b, strlen(s));
dns_fixedname_init(&fname);
name = dns_fixedname_name(&fname);
+1 -1
View File
@@ -78,7 +78,7 @@ add_initial_keys(const cfg_obj_t *list, dns_tsig_keyring_t *ring,
* Create the key name.
*/
dns_name_init(&keyname, NULL);
isc_buffer_init(&keynamesrc, keyid, strlen(keyid));
isc_buffer_constinit(&keynamesrc, keyid, strlen(keyid));
isc_buffer_add(&keynamesrc, strlen(keyid));
isc_buffer_init(&keynamebuf, keynamedata, sizeof(keynamedata));
ret = dns_name_fromtext(&keyname, &keynamesrc, dns_rootname,
+4 -1
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -120,6 +120,9 @@ static isc_boolean_t non_root_caps = ISC_FALSE;
#ifdef HAVE_SYS_CAPABILITY_H
#include <sys/capability.h>
#else
#ifdef HAVE_LINUX_TYPES_H
#include <linux/types.h>
#endif
/*%
* We define _LINUX_FS_H to prevent it from being included. We don't need
* anything from it, and the files it includes cause warnings with 2.2
+3 -4
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -355,7 +355,6 @@ do_one_tuple(dns_difftuple_t **tuple, dns_db_t *db, dns_dbversion_t *ver,
* Create a singleton diff.
*/
dns_diff_init(diff->mctx, &temp_diff);
temp_diff.resign = diff->resign;
ISC_LIST_APPEND(temp_diff.tuples, *tuple, link);
/*
@@ -2146,7 +2145,6 @@ update_signatures(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
dns_diff_init(client->mctx, &affected);
dns_diff_init(client->mctx, &sig_diff);
sig_diff.resign = dns_zone_getsigresigninginterval(zone);
dns_diff_init(client->mctx, &nsec_diff);
dns_diff_init(client->mctx, &nsec_mindiff);
@@ -3336,7 +3334,8 @@ add_signing_records(dns_db_t *db, dns_name_t *name, dns_dbversion_t *ver,
ISC_LIST_UNLINK(temp_diff.tuples, tuple, link);
ISC_LIST_APPEND(diff->tuples, tuple, link);
dns_rdata_tostruct(&tuple->rdata, &dnskey, NULL);
result = dns_rdata_tostruct(&tuple->rdata, &dnskey, NULL);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
if ((dnskey.flags &
(DNS_KEYFLAG_OWNERMASK|DNS_KEYTYPE_NOAUTH))
!= DNS_KEYOWNER_ZONE)
+8 -3
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004, 2006, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004, 2006, 2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -28,6 +28,11 @@
#include <named/main.h>
#include <named/server.h>
/* In fact more bound to the platform toolset... */
#if defined(_M_IX86) && (_MSC_VER < 1600)
#define ISC_ADJUST_FDIV
#endif
/* Handle to SCM for updating service status */
static SERVICE_STATUS_HANDLE hServiceStatus = 0;
static BOOL foreground = FALSE;
@@ -199,7 +204,7 @@ _CRTIMP void __cdecl __getmainargs(int *, char ***, char ***, int,
_startupinfo *);
void __cdecl _setargv(void);
#ifdef _M_IX86
#ifdef ISC_ADJUST_FDIV
/* Pentium FDIV adjustment */
extern int _adjust_fdiv;
extern int * _imp___adjust_fdiv;
@@ -236,7 +241,7 @@ void GetArgs(int *argc, char ***argv, char ***envp)
__getmainargs(argc, argv, envp, _dowildcard, &startinfo);
__initenv = *envp;
#ifdef _M_IX86
#ifdef ISC_ADJUST_FDIV
_adjust_fdiv = * _imp___adjust_fdiv;
_setdefaultprecision();
#endif
+9 -11
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -1016,14 +1016,6 @@ ns_xfr_start(ns_client_t *client, dns_rdatatype_t reqtype) {
question_name, question_class);
#ifdef DLZ
is_dlz = ISC_TRUE;
/*
* DLZ only support full zone transfer, not incremental
*/
if (reqtype != dns_rdatatype_axfr) {
mnemonic = "AXFR-style IXFR";
reqtype = dns_rdatatype_axfr;
}
} else {
/*
* not DLZ and not in normal zone table, we are
@@ -1036,11 +1028,13 @@ ns_xfr_start(ns_client_t *client, dns_rdatatype_t reqtype) {
/* zone table has a match */
#endif
switch(dns_zone_gettype(zone)) {
/* Master and slave zones are OK for transfer. */
case dns_zone_master:
case dns_zone_slave:
break; /* Master and slave zones are OK for transfer. */
break;
default:
FAILQ(DNS_R_NOTAUTH, "non-authoritative zone", question_name, question_class);
FAILQ(DNS_R_NOTAUTH, "non-authoritative zone",
question_name, question_class);
}
CHECK(dns_zone_getdb(zone, &db));
dns_db_currentversion(db, &ver);
@@ -1185,7 +1179,11 @@ ns_xfr_start(ns_client_t *client, dns_rdatatype_t reqtype) {
is_poll = ISC_TRUE;
goto have_stream;
}
#ifdef DLZ
journalfile = is_dlz ? NULL : dns_zone_getjournal(zone);
#else
journalfile = dns_zone_getjournal(zone);
#endif
if (journalfile != NULL)
result = ixfr_rrstream_create(mctx,
journalfile,
+25 -3
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -50,6 +50,7 @@
typedef enum {
allow_notify,
allow_query,
allow_query_on,
allow_transfer,
allow_update,
allow_update_forwarding
@@ -96,6 +97,11 @@ configure_zone_acl(const cfg_obj_t *zconfig, const cfg_obj_t *vconfig,
aclp = &view->queryacl;
aclname = "allow-query";
break;
case allow_query_on:
if (view != NULL)
aclp = &view->queryonacl;
aclname = "allow-query-on";
break;
case allow_transfer:
if (view != NULL)
aclp = &view->transferacl;
@@ -242,7 +248,7 @@ configure_zone_ssutable(const cfg_obj_t *zconfig, dns_zone_t *zone) {
dns_fixedname_init(&fident);
str = cfg_obj_asstring(identity);
isc_buffer_init(&b, str, strlen(str));
isc_buffer_constinit(&b, str, strlen(str));
isc_buffer_add(&b, strlen(str));
result = dns_name_fromtext(dns_fixedname_name(&fident), &b,
dns_rootname, ISC_FALSE, NULL);
@@ -254,7 +260,7 @@ configure_zone_ssutable(const cfg_obj_t *zconfig, dns_zone_t *zone) {
dns_fixedname_init(&fname);
str = cfg_obj_asstring(dname);
isc_buffer_init(&b, str, strlen(str));
isc_buffer_constinit(&b, str, strlen(str));
isc_buffer_add(&b, strlen(str));
result = dns_name_fromtext(dns_fixedname_name(&fname), &b,
dns_rootname, ISC_FALSE, NULL);
@@ -536,6 +542,11 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
dns_zone_setqueryacl,
dns_zone_clearqueryacl));
RETERR(configure_zone_acl(zconfig, vconfig, config,
allow_query_on, ac, zone,
dns_zone_setqueryonacl,
dns_zone_clearqueryonacl));
obj = NULL;
result = ns_config_get(maps, "dialup", &obj);
INSIST(result == ISC_R_SUCCESS && obj != NULL);
@@ -713,6 +724,17 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
dns_zone_setoption(zone, DNS_ZONEOPT_CHECKSIBLING,
cfg_obj_asboolean(obj));
obj = NULL;
result = ns_config_get(maps, "check-spf", &obj);
INSIST(result == ISC_R_SUCCESS && obj != NULL);
if (strcasecmp(cfg_obj_asstring(obj), "warn") == 0) {
check = ISC_TRUE;
} else if (strcasecmp(cfg_obj_asstring(obj), "ignore") == 0) {
check = ISC_FALSE;
} else
INSIST(0);
dns_zone_setoption(zone, DNS_ZONEOPT_CHECKSPF, check);
obj = NULL;
result = ns_config_get(maps, "zero-no-soa-ttl", &obj);
INSIST(result == ISC_R_SUCCESS && obj != NULL);
+44 -27
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -174,7 +174,7 @@ typedef struct nsu_requestinfo {
static void
sendrequest(isc_sockaddr_t *srcaddr, isc_sockaddr_t *destaddr,
dns_message_t *msg, dns_request_t **request);
ISC_PLATFORM_NORETURN_POST static void
ISC_PLATFORM_NORETURN_PRE static void
fatal(const char *format, ...)
ISC_FORMAT_PRINTF(1, 2) ISC_PLATFORM_NORETURN_POST;
@@ -848,7 +848,7 @@ get_address(char *host, in_port_t port, isc_sockaddr_t *sockaddr) {
INSIST(count == 1);
}
#define PARSE_ARGS_FMT "dDMl:y:govk:rR::t:u:"
#define PARSE_ARGS_FMT "dDMl:y:govk:r:R::t:u:"
static void
pre_parse_args(int argc, char **argv) {
@@ -1011,7 +1011,7 @@ parse_name(char **cmdlinep, dns_message_t *msg, dns_name_t **namep) {
isc_buffer_t source;
word = nsu_strsep(cmdlinep, " \t\r\n");
if (*word == 0) {
if (word == NULL || *word == 0) {
fprintf(stderr, "could not read owner name\n");
return (STATUS_SYNTAX);
}
@@ -1044,6 +1044,11 @@ parse_rdata(char **cmdlinep, dns_rdataclass_t rdataclass,
dns_rdatacallbacks_t callbacks;
isc_result_t result;
if (cmdline == NULL) {
rdata->flags = DNS_RDATA_UPDATE;
return (STATUS_MORE);
}
while (*cmdline != 0 && isspace((unsigned char)*cmdline))
cmdline++;
@@ -1110,7 +1115,7 @@ make_prereq(char *cmdline, isc_boolean_t ispositive, isc_boolean_t isrrset) {
*/
if (isrrset) {
word = nsu_strsep(&cmdline, " \t\r\n");
if (*word == 0) {
if (word == NULL || *word == 0) {
fprintf(stderr, "could not read class or type\n");
goto failure;
}
@@ -1126,7 +1131,7 @@ make_prereq(char *cmdline, isc_boolean_t ispositive, isc_boolean_t isrrset) {
* Now read the type.
*/
word = nsu_strsep(&cmdline, " \t\r\n");
if (*word == 0) {
if (word == NULL || *word == 0) {
fprintf(stderr, "could not read type\n");
goto failure;
}
@@ -1200,7 +1205,7 @@ evaluate_prereq(char *cmdline) {
ddebug("evaluate_prereq()");
word = nsu_strsep(&cmdline, " \t\r\n");
if (*word == 0) {
if (word == NULL || *word == 0) {
fprintf(stderr, "could not read operation code\n");
return (STATUS_SYNTAX);
}
@@ -1229,14 +1234,14 @@ evaluate_server(char *cmdline) {
long port;
word = nsu_strsep(&cmdline, " \t\r\n");
if (*word == 0) {
if (word == NULL || *word == 0) {
fprintf(stderr, "could not read server name\n");
return (STATUS_SYNTAX);
}
server = word;
word = nsu_strsep(&cmdline, " \t\r\n");
if (*word == 0)
if (word == NULL || *word == 0)
port = DNSDEFAULTPORT;
else {
char *endp;
@@ -1270,14 +1275,14 @@ evaluate_local(char *cmdline) {
struct in6_addr in6;
word = nsu_strsep(&cmdline, " \t\r\n");
if (*word == 0) {
if (word == NULL || *word == 0) {
fprintf(stderr, "could not read server name\n");
return (STATUS_SYNTAX);
}
local = word;
word = nsu_strsep(&cmdline, " \t\r\n");
if (*word == 0)
if (word == NULL || *word == 0)
port = 0;
else {
char *endp;
@@ -1326,7 +1331,7 @@ evaluate_key(char *cmdline) {
char *n;
namestr = nsu_strsep(&cmdline, " \t\r\n");
if (*namestr == 0) {
if (namestr == NULL || *namestr == 0) {
fprintf(stderr, "could not read key name\n");
return (STATUS_SYNTAX);
}
@@ -1350,7 +1355,7 @@ evaluate_key(char *cmdline) {
}
secretstr = nsu_strsep(&cmdline, "\r\n");
if (*secretstr == 0) {
if (secretstr == NULL || *secretstr == 0) {
fprintf(stderr, "could not read key secret\n");
return (STATUS_SYNTAX);
}
@@ -1391,7 +1396,7 @@ evaluate_zone(char *cmdline) {
isc_result_t result;
word = nsu_strsep(&cmdline, " \t\r\n");
if (*word == 0) {
if (word == NULL || *word == 0) {
fprintf(stderr, "could not read zone name\n");
return (STATUS_SYNTAX);
}
@@ -1416,16 +1421,20 @@ evaluate_realm(char *cmdline) {
#ifdef GSSAPI
char *word;
char buf[1024];
int n;
word = nsu_strsep(&cmdline, " \t\r\n");
if (*word == 0) {
if (realm != NULL)
isc_mem_free(mctx, realm);
if (realm != NULL) {
isc_mem_free(mctx, realm);
realm = NULL;
return (STATUS_MORE);
}
snprintf(buf, sizeof(buf), "@%s", word);
word = nsu_strsep(&cmdline, " \t\r\n");
if (word == NULL || *word == 0)
return (STATUS_MORE);
n = snprintf(buf, sizeof(buf), "@%s", word);
if (n < 0 || (size_t)n >= sizeof(buf))
fatal("realm is too long");
realm = isc_mem_strdup(mctx, buf);
if (realm == NULL)
fatal("out of memory");
@@ -1443,7 +1452,7 @@ evaluate_ttl(char *cmdline) {
isc_uint32_t ttl;
word = nsu_strsep(&cmdline, " \t\r\n");
if (*word == 0) {
if (word == NULL || *word == 0) {
fprintf(stderr, "could not ttl\n");
return (STATUS_SYNTAX);
}
@@ -1477,7 +1486,7 @@ evaluate_class(char *cmdline) {
dns_rdataclass_t rdclass;
word = nsu_strsep(&cmdline, " \t\r\n");
if (*word == 0) {
if (word == NULL || *word == 0) {
fprintf(stderr, "could not read class name\n");
return (STATUS_SYNTAX);
}
@@ -1535,7 +1544,7 @@ update_addordelete(char *cmdline, isc_boolean_t isdelete) {
* If it's a delete, ignore a TTL if present (for compatibility).
*/
word = nsu_strsep(&cmdline, " \t\r\n");
if (*word == 0) {
if (word == NULL || *word == 0) {
if (!isdelete) {
fprintf(stderr, "could not read owner ttl\n");
goto failure;
@@ -1576,7 +1585,7 @@ update_addordelete(char *cmdline, isc_boolean_t isdelete) {
*/
word = nsu_strsep(&cmdline, " \t\r\n");
parseclass:
if (*word == 0) {
if (word == NULL || *word == 0) {
if (isdelete) {
rdataclass = dns_rdataclass_any;
rdatatype = dns_rdatatype_any;
@@ -1600,7 +1609,7 @@ update_addordelete(char *cmdline, isc_boolean_t isdelete) {
* Now read the type.
*/
word = nsu_strsep(&cmdline, " \t\r\n");
if (*word == 0) {
if (word == NULL || *word == 0) {
if (isdelete) {
rdataclass = dns_rdataclass_any;
rdatatype = dns_rdatatype_any;
@@ -1680,7 +1689,7 @@ evaluate_update(char *cmdline) {
ddebug("evaluate_update()");
word = nsu_strsep(&cmdline, " \t\r\n");
if (*word == 0) {
if (word == NULL || *word == 0) {
fprintf(stderr, "could not read operation code\n");
return (STATUS_SYNTAX);
}
@@ -1770,6 +1779,7 @@ get_next_command(void) {
char cmdlinebuf[MAXCMD];
char *cmdline;
char *word;
char *tmp;
ddebug("get_next_command()");
if (interactive) {
@@ -1781,11 +1791,18 @@ get_next_command(void) {
isc_app_unblock();
if (cmdline == NULL)
return (STATUS_QUIT);
/*
* Normalize input by removing any eol.
*/
tmp = cmdline;
(void)nsu_strsep(&tmp, "\r\n");
word = nsu_strsep(&cmdline, " \t\r\n");
if (feof(input))
return (STATUS_QUIT);
if (*word == 0)
if (word == NULL || *word == 0)
return (STATUS_SEND);
if (word[0] == ';')
return (STATUS_MORE);
+166 -12
View File
@@ -1,4 +1,4 @@
.\" Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2000, 2001 Internet Software Consortium.
.\"
.\" Permission to use, copy, modify, and/or distribute this software for any
@@ -20,11 +20,11 @@
.\" Title: rndc
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.71.1 <http://docbook.sf.net/>
.\" Date: June 30, 2000
.\" Date: June 7, 2013
.\" Manual: BIND9
.\" Source: BIND9
.\"
.TH "RNDC" "8" "June 30, 2000" "BIND9" "BIND9"
.TH "RNDC" "8" "June 7, 2013" "BIND9" "BIND9"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
@@ -113,18 +113,172 @@ is specified,
\fBrndc\fR
will first look for a key clause in the server statement of the server being used, or if no server statement is present for that host, then the default\-key clause of the options statement. Note that the configuration file contains shared secrets which are used to send authenticated control commands to name servers. It should therefore not have general read or write access.
.RE
.SH "COMMANDS"
.PP
For the complete set of commands supported by
\fBrndc\fR, see the BIND 9 Administrator Reference Manual or run
A list of commands supported by
\fBrndc\fR
without arguments to see its help message.
can be seen by running
\fBrndc\fR
without arguments.
.PP
Currently supported commands are:
.PP
\fBreload\fR
.RS 4
Reload configuration file and zones.
.RE
.PP
\fBreload \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR
.RS 4
Reload the given zone.
.RE
.PP
\fBrefresh \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR
.RS 4
Schedule zone maintenance for the given zone.
.RE
.PP
\fBretransfer \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR
.RS 4
Retransfer the given zone from the master.
.RE
.PP
\fBfreeze \fR\fB[\fIzone\fR [\fIclass\fR [\fIview\fR]]]\fR
.RS 4
Suspend updates to a dynamic zone. If no zone is specified, then all zones are suspended. This allows manual edits to be made to a zone normally updated by dynamic update. It also causes changes in the journal file to be synced into the master file, and the journal file to be removed. All dynamic update attempts will be refused while the zone is frozen.
.RE
.PP
\fBthaw \fR\fB[\fIzone\fR [\fIclass\fR [\fIview\fR]]]\fR
.RS 4
Enable updates to a frozen dynamic zone. If no zone is specified, then all frozen zones are enabled. This causes the server to reload the zone from disk, and re\-enables dynamic updates after the load has completed. After a zone is thawed, dynamic updates will no longer be refused.
.RE
.PP
\fBnotify \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR
.RS 4
Resend NOTIFY messages for the zone.
.RE
.PP
\fBreconfig\fR
.RS 4
Reload the configuration file and load new zones, but do not reload existing zone files even if they have changed. This is faster than a full
\fBreload\fR
when there is a large number of zones because it avoids the need to examine the modification times of the zones files.
.RE
.PP
\fBstats\fR
.RS 4
Write server statistics to the statistics file.
.RE
.PP
\fBquerylog\fR [on|off]
.RS 4
Toggle query logging. Query logging can also be enabled by explicitly directing the
\fBqueries\fR
\fBcategory\fR
to a
\fBchannel\fR
in the
\fBlogging\fR
section of
\fInamed.conf\fR
or by specifying
\fBquerylog yes;\fR
in the
\fBoptions\fR
section of
\fInamed.conf\fR.
.RE
.PP
\fBdumpdb \fR\fB[\-all|\-cache|\-zone]\fR\fB \fR\fB[\fIview ...\fR]\fR
.RS 4
Dump the server's caches (default) and/or zones to the dump file for the specified views. If no view is specified, all views are dumped.
.RE
.PP
\fBstop \fR\fB[\-p]\fR
.RS 4
Stop the server, making sure any recent changes made through dynamic update or IXFR are first saved to the master files of the updated zones. If
\fB\-p\fR
is specified
\fBnamed\fR's process id is returned. This allows an external process to determine when
\fBnamed\fR
had completed stopping.
.RE
.PP
\fBhalt \fR\fB[\-p]\fR
.RS 4
Stop the server immediately. Recent changes made through dynamic update or IXFR are not saved to the master files, but will be rolled forward from the journal files when the server is restarted. If
\fB\-p\fR
is specified
\fBnamed\fR's process id is returned. This allows an external process to determine when
\fBnamed\fR
had completed halting.
.RE
.PP
\fBtrace\fR
.RS 4
Increment the servers debugging level by one.
.RE
.PP
\fBtrace \fR\fB\fIlevel\fR\fR
.RS 4
Sets the server's debugging level to an explicit value.
.RE
.PP
\fBnotrace\fR
.RS 4
Sets the server's debugging level to 0.
.RE
.PP
\fBflush\fR
.RS 4
Flushes the server's cache.
.RE
.PP
\fBflushname\fR \fIname\fR [\fIview\fR]
.RS 4
Flushes the given name from the server's cache.
.RE
.PP
\fBstatus\fR
.RS 4
Display status of the server. Note that the number of zones includes the internal
\fBbind/CH\fR
zone and the default
\fB./IN\fR
hint zone if there is not an explicit root zone configured.
.RE
.PP
\fBrecursing\fR
.RS 4
Dump the list of queries
\fBnamed\fR
is currently recursing on.
.RE
.PP
\fBvalidation ( on | off | check ) \fR\fB[\fIview ...\fR]\fR\fB \fR
.RS 4
Enable, disable, or check the current status of DNSSEC validation. Note
\fBdnssec\-enable\fR
also needs to be set to
\fByes\fR
or
\fBauto\fR
to be effective. It defaults to enabled.
.RE
.PP
\fBtsig\-list\fR
.RS 4
List the names of all TSIG keys currently configured for use by
\fBnamed\fR
in each view. The list both statically configured keys and dynamic TKEY\-negotiated keys.
.RE
.PP
\fBtsig\-delete\fR \fIkeyname\fR [\fIview\fR]
.RS 4
Delete a given TKEY\-negotiated key from the server. (This does not apply to statically configured TSIG keys.)
.RE
.SH "LIMITATIONS"
.PP
\fBrndc\fR
does not yet support all the commands of the BIND 8
\fBndc\fR
utility.
.PP
There is currently no way to provide the shared secret for a
\fBkey_id\fR
without using the configuration file.
@@ -142,7 +296,7 @@ BIND 9 Administrator Reference Manual.
.PP
Internet Systems Consortium
.SH "COPYRIGHT"
Copyright \(co 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
Copyright \(co 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
.br
Copyright \(co 2000, 2001 Internet Software Consortium.
.br
+7 -1
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -79,6 +79,7 @@ static unsigned char databuf[2048];
static isccc_ccmsg_t ccmsg;
static isccc_region_t secret;
static isc_boolean_t failed = ISC_FALSE;
static isc_boolean_t c_flag = ISC_FALSE;
static isc_mem_t *mctx;
static int sends, recvs, connects;
static char *command;
@@ -458,6 +459,9 @@ parse_config(isc_mem_t *mctx, isc_log_t *log, const char *keyname,
conffile = admin_keyfile;
conftype = &cfg_type_rndckey;
if (c_flag)
fatal("%s does not exist", admin_conffile);
if (! isc_file_exists(conffile))
fatal("neither %s nor %s was found",
admin_conffile, admin_keyfile);
@@ -716,6 +720,7 @@ main(int argc, char **argv) {
case 'c':
admin_conffile = isc_commandline_argument;
c_flag = ISC_TRUE;
break;
case 'k':
@@ -755,6 +760,7 @@ main(int argc, char **argv) {
program, isc_commandline_option);
usage(1);
}
/* FALLTHROUGH */
case 'h':
usage(0);
break;
+277 -10
View File
@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY mdash "&#8212;">]>
<!--
- Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000, 2001 Internet Software Consortium.
-
- Permission to use, copy, modify, and/or distribute this software for any
@@ -21,7 +21,7 @@
<!-- $Id: rndc.docbook,v 1.21 2007/12/14 20:39:14 marka Exp $ -->
<refentry id="man.rndc">
<refentryinfo>
<date>June 30, 2000</date>
<date>June 7, 2013</date>
</refentryinfo>
<refmeta>
@@ -40,6 +40,7 @@
<year>2004</year>
<year>2005</year>
<year>2007</year>
<year>2013</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
<copyright>
@@ -194,22 +195,288 @@
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>COMMANDS</title>
<para>
For the complete set of commands supported by <command>rndc</command>,
see the BIND 9 Administrator Reference Manual or run
<command>rndc</command> without arguments to see its help
message.
A list of commands supported by <command>rndc</command> can
be seen by running <command>rndc</command> without arguments.
</para>
<para>
Currently supported commands are:
</para>
<variablelist>
<varlistentry>
<term><userinput>reload</userinput></term>
<listitem>
<para>
Reload configuration file and zones.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>reload <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term>
<listitem>
<para>
Reload the given zone.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>refresh <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term>
<listitem>
<para>
Schedule zone maintenance for the given zone.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>retransfer <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term>
<listitem>
<para>
Retransfer the given zone from the master.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>freeze <optional><replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></optional></userinput></term>
<listitem>
<para>
Suspend updates to a dynamic zone. If no zone is
specified, then all zones are suspended. This allows
manual edits to be made to a zone normally updated by
dynamic update. It also causes changes in the
journal file to be synced into the master file,
and the journal file to be removed.
All dynamic update attempts will be refused while
the zone is frozen.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>thaw <optional><replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></optional></userinput></term>
<listitem>
<para>
Enable updates to a frozen dynamic zone. If no
zone is specified, then all frozen zones are
enabled. This causes the server to reload the zone
from disk, and re-enables dynamic updates after the
load has completed. After a zone is thawed,
dynamic updates will no longer be refused.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>notify <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term>
<listitem>
<para>
Resend NOTIFY messages for the zone.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>reconfig</userinput></term>
<listitem>
<para>
Reload the configuration file and load new zones,
but do not reload existing zone files even if they
have changed.
This is faster than a full <command>reload</command> when there
is a large number of zones because it avoids the need
to examine the
modification times of the zones files.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>stats</userinput></term>
<listitem>
<para>
Write server statistics to the statistics file.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>querylog</userinput> <optional>on|off</optional> </term>
<listitem>
<para>
Toggle query logging. Query logging can also be enabled
by explicitly directing the <command>queries</command>
<command>category</command> to a
<command>channel</command> in the
<command>logging</command> section of
<filename>named.conf</filename> or by specifying
<command>querylog yes;</command> in the
<command>options</command> section of
<filename>named.conf</filename>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>dumpdb <optional>-all|-cache|-zone</optional> <optional><replaceable>view ...</replaceable></optional></userinput></term>
<listitem>
<para>
Dump the server's caches (default) and/or zones to
the
dump file for the specified views. If no view is
specified, all
views are dumped.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>stop <optional>-p</optional></userinput></term>
<listitem>
<para>
Stop the server, making sure any recent changes
made through dynamic update or IXFR are first saved to
the master files of the updated zones.
If <option>-p</option> is specified <command>named</command>'s process id is returned.
This allows an external process to determine when <command>named</command>
had completed stopping.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>halt <optional>-p</optional></userinput></term>
<listitem>
<para>
Stop the server immediately. Recent changes
made through dynamic update or IXFR are not saved to
the master files, but will be rolled forward from the
journal files when the server is restarted.
If <option>-p</option> is specified <command>named</command>'s process id is returned.
This allows an external process to determine when <command>named</command>
had completed halting.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>trace</userinput></term>
<listitem>
<para>
Increment the servers debugging level by one.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>trace <replaceable>level</replaceable></userinput></term>
<listitem>
<para>
Sets the server's debugging level to an explicit
value.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>notrace</userinput></term>
<listitem>
<para>
Sets the server's debugging level to 0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>flush</userinput></term>
<listitem>
<para>
Flushes the server's cache.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>flushname</userinput> <replaceable>name</replaceable> <optional><replaceable>view</replaceable></optional> </term>
<listitem>
<para>
Flushes the given name from the server's cache.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>status</userinput></term>
<listitem>
<para>
Display status of the server.
Note that the number of zones includes the internal <command>bind/CH</command> zone
and the default <command>./IN</command>
hint zone if there is not an
explicit root zone configured.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>recursing</userinput></term>
<listitem>
<para>
Dump the list of queries <command>named</command> is currently recursing
on.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>validation ( on | off | check ) <optional><replaceable>view ...</replaceable></optional> </userinput></term>
<listitem>
<para>
Enable, disable, or check the current status of
DNSSEC validation.
Note <command>dnssec-enable</command> also needs to be
set to <userinput>yes</userinput> or
<userinput>auto</userinput> to be effective.
It defaults to enabled.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>tsig-list</userinput></term>
<listitem>
<para>
List the names of all TSIG keys currently configured
for use by <command>named</command> in each view. The
list both statically configured keys and dynamic
TKEY-negotiated keys.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>tsig-delete</userinput> <replaceable>keyname</replaceable> <optional><replaceable>view</replaceable></optional></term>
<listitem>
<para>
Delete a given TKEY-negotiated key from the server.
(This does not apply to statically configured TSIG
keys.)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>LIMITATIONS</title>
<para><command>rndc</command>
does not yet support all the commands of
the BIND 8 <command>ndc</command> utility.
</para>
<para>
There is currently no way to provide the shared secret for a
<option>key_id</option> without using the configuration file.
+166 -15
View File
@@ -1,5 +1,5 @@
<!--
- Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000, 2001 Internet Software Consortium.
-
- Permission to use, copy, modify, and/or distribute this software for any
@@ -32,7 +32,7 @@
<div class="cmdsynopsis"><p><code class="command">rndc</code> [<code class="option">-b <em class="replaceable"><code>source-address</code></em></code>] [<code class="option">-c <em class="replaceable"><code>config-file</code></em></code>] [<code class="option">-k <em class="replaceable"><code>key-file</code></em></code>] [<code class="option">-s <em class="replaceable"><code>server</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-V</code>] [<code class="option">-y <em class="replaceable"><code>key_id</code></em></code>] {command}</p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2543414"></a><h2>DESCRIPTION</h2>
<a name="id2543417"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">rndc</strong></span>
controls the operation of a name
server. It supersedes the <span><strong class="command">ndc</strong></span> utility
@@ -61,7 +61,7 @@
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2543449"></a><h2>OPTIONS</h2>
<a name="id2543452"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-b <em class="replaceable"><code>source-address</code></em></span></dt>
<dd><p>
@@ -125,19 +125,170 @@
or write access.
</p></dd>
</dl></div>
<p>
For the complete set of commands supported by <span><strong class="command">rndc</strong></span>,
see the BIND 9 Administrator Reference Manual or run
<span><strong class="command">rndc</strong></span> without arguments to see its help
message.
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2543657"></a><h2>LIMITATIONS</h2>
<p><span><strong class="command">rndc</strong></span>
does not yet support all the commands of
the BIND 8 <span><strong class="command">ndc</strong></span> utility.
<a name="id2543649"></a><h2>COMMANDS</h2>
<p>
A list of commands supported by <span><strong class="command">rndc</strong></span> can
be seen by running <span><strong class="command">rndc</strong></span> without arguments.
</p>
<p>
Currently supported commands are:
</p>
<div class="variablelist"><dl>
<dt><span class="term"><strong class="userinput"><code>reload</code></strong></span></dt>
<dd><p>
Reload configuration file and zones.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>reload <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
<dd><p>
Reload the given zone.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>refresh <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
<dd><p>
Schedule zone maintenance for the given zone.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>retransfer <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
<dd><p>
Retransfer the given zone from the master.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>freeze [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt>
<dd><p>
Suspend updates to a dynamic zone. If no zone is
specified, then all zones are suspended. This allows
manual edits to be made to a zone normally updated by
dynamic update. It also causes changes in the
journal file to be synced into the master file,
and the journal file to be removed.
All dynamic update attempts will be refused while
the zone is frozen.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>thaw [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt>
<dd><p>
Enable updates to a frozen dynamic zone. If no
zone is specified, then all frozen zones are
enabled. This causes the server to reload the zone
from disk, and re-enables dynamic updates after the
load has completed. After a zone is thawed,
dynamic updates will no longer be refused.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>notify <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
<dd><p>
Resend NOTIFY messages for the zone.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>reconfig</code></strong></span></dt>
<dd><p>
Reload the configuration file and load new zones,
but do not reload existing zone files even if they
have changed.
This is faster than a full <span><strong class="command">reload</strong></span> when there
is a large number of zones because it avoids the need
to examine the
modification times of the zones files.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>stats</code></strong></span></dt>
<dd><p>
Write server statistics to the statistics file.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>querylog</code></strong> [<span class="optional">on|off</span>] </span></dt>
<dd><p>
Toggle query logging. Query logging can also be enabled
by explicitly directing the <span><strong class="command">queries</strong></span>
<span><strong class="command">category</strong></span> to a
<span><strong class="command">channel</strong></span> in the
<span><strong class="command">logging</strong></span> section of
<code class="filename">named.conf</code> or by specifying
<span><strong class="command">querylog yes;</strong></span> in the
<span><strong class="command">options</strong></span> section of
<code class="filename">named.conf</code>.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>dumpdb [<span class="optional">-all|-cache|-zone</span>] [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>]</code></strong></span></dt>
<dd><p>
Dump the server's caches (default) and/or zones to
the
dump file for the specified views. If no view is
specified, all
views are dumped.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>stop [<span class="optional">-p</span>]</code></strong></span></dt>
<dd><p>
Stop the server, making sure any recent changes
made through dynamic update or IXFR are first saved to
the master files of the updated zones.
If <code class="option">-p</code> is specified <span><strong class="command">named</strong></span>'s process id is returned.
This allows an external process to determine when <span><strong class="command">named</strong></span>
had completed stopping.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>halt [<span class="optional">-p</span>]</code></strong></span></dt>
<dd><p>
Stop the server immediately. Recent changes
made through dynamic update or IXFR are not saved to
the master files, but will be rolled forward from the
journal files when the server is restarted.
If <code class="option">-p</code> is specified <span><strong class="command">named</strong></span>'s process id is returned.
This allows an external process to determine when <span><strong class="command">named</strong></span>
had completed halting.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>trace</code></strong></span></dt>
<dd><p>
Increment the servers debugging level by one.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>trace <em class="replaceable"><code>level</code></em></code></strong></span></dt>
<dd><p>
Sets the server's debugging level to an explicit
value.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>notrace</code></strong></span></dt>
<dd><p>
Sets the server's debugging level to 0.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>flush</code></strong></span></dt>
<dd><p>
Flushes the server's cache.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>flushname</code></strong> <em class="replaceable"><code>name</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>] </span></dt>
<dd><p>
Flushes the given name from the server's cache.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>status</code></strong></span></dt>
<dd><p>
Display status of the server.
Note that the number of zones includes the internal <span><strong class="command">bind/CH</strong></span> zone
and the default <span><strong class="command">./IN</strong></span>
hint zone if there is not an
explicit root zone configured.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>recursing</code></strong></span></dt>
<dd><p>
Dump the list of queries <span><strong class="command">named</strong></span> is currently recursing
on.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>validation ( on | off | check ) [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>] </code></strong></span></dt>
<dd><p>
Enable, disable, or check the current status of
DNSSEC validation.
Note <span><strong class="command">dnssec-enable</strong></span> also needs to be
set to <strong class="userinput"><code>yes</code></strong> or
<strong class="userinput"><code>auto</code></strong> to be effective.
It defaults to enabled.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>tsig-list</code></strong></span></dt>
<dd><p>
List the names of all TSIG keys currently configured
for use by <span><strong class="command">named</strong></span> in each view. The
list both statically configured keys and dynamic
TKEY-negotiated keys.
</p></dd>
<dt><span class="term"><strong class="userinput"><code>tsig-delete</code></strong> <em class="replaceable"><code>keyname</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span></dt>
<dd><p>
Delete a given TKEY-negotiated key from the server.
(This does not apply to statically configured TSIG
keys.)
</p></dd>
</dl></div>
</div>
<div class="refsect1" lang="en">
<a name="id2544382"></a><h2>LIMITATIONS</h2>
<p>
There is currently no way to provide the shared secret for a
<code class="option">key_id</code> without using the configuration file.
@@ -147,7 +298,7 @@
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2543684"></a><h2>SEE ALSO</h2>
<a name="id2544401"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">rndc.conf</span>(5)</span>,
<span class="citerefentry"><span class="refentrytitle">rndc-confgen</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
@@ -157,7 +308,7 @@
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2543739"></a><h2>AUTHOR</h2>
<a name="id2544524"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
-4
View File
@@ -18,12 +18,8 @@ t_rbt
t_resolver
t_sockaddr
conf.sh
prereq.sh
dlopen
named.conf
filter-aaaa
lwtest
rpz
keycreate
keydelete
gssapi_krb
+5 -1
View File
@@ -1,4 +1,4 @@
# Copyright (C) 2004-2008, 2010, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2004-2008, 2010, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2003 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -131,6 +131,10 @@ XSRCS = adb_test.c \
wire_test.c \
zone_test.c
# override all rule to make sure top directory targets are built before
# processing subdirectories.
all: ${TARGETS} subdirs testdirs
@BIND9_MAKE_RULES@
all_tests: ${XTARGETS}
+1 -1
View File
@@ -245,7 +245,7 @@ lookup(const char *target) {
INSIST(target != NULL);
client = new_client();
isc_buffer_init(&t, target, strlen(target));
isc_buffer_constinit(&t, target, strlen(target));
isc_buffer_add(&t, strlen(target));
isc_buffer_init(&namebuf, namedata, sizeof(namedata));
dns_name_init(&name, NULL);
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1999-2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1999-2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
+1 -1
View File
@@ -58,7 +58,7 @@ t_create(const char *db_type, const char *origin, const char *class,
dns_fixedname_init(&dns_origin);
len = strlen(origin);
isc_buffer_init(&origin_buffer, origin, len);
isc_buffer_constinit(&origin_buffer, origin, len);
isc_buffer_add(&origin_buffer, len);
dns_result = dns_name_fromtext(dns_fixedname_name(&dns_origin),
&origin_buffer, NULL, ISC_FALSE, NULL);
+13 -5
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004, 2005, 2007, 2008, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004, 2005, 2007, 2008, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -263,7 +263,7 @@ load(const char *filename, const char *origintext, isc_boolean_t cache) {
ISC_LINK_INIT(dbi, link);
len = strlen(origintext);
isc_buffer_init(&source, origintext, len);
isc_buffer_constinit(&source, origintext, len);
isc_buffer_add(&source, len);
dns_fixedname_init(&forigin);
origin = dns_fixedname_name(&forigin);
@@ -374,6 +374,7 @@ main(int argc, char *argv[]) {
dns_trust_t trust = 0;
unsigned int addopts;
isc_log_t *lctx = NULL;
size_t n;
dns_result_register();
@@ -395,7 +396,13 @@ main(int argc, char *argv[]) {
isc_result_totext(result));
break;
case 'd':
strcpy(dbtype, isc_commandline_argument);
n = strlcpy(dbtype, isc_commandline_argument,
sizeof(dbtype));
if (n >= sizeof(dbtype)) {
fprintf(stderr, "bad db type '%s'\n",
isc_commandline_argument);
exit(1);
}
break;
case 'g':
options |= (DNS_DBFIND_GLUEOK|DNS_DBFIND_VALIDATEGLUE);
@@ -606,10 +613,11 @@ main(int argc, char *argv[]) {
} else if (strstr(s, "!V") == s) {
DBI_CHECK(dbi);
v = atoi(&s[2]);
if (v >= dbi->rcount) {
if (v >= dbi->rcount || v < 0) {
printf("unknown open version %d\n", v);
continue;
} else if (dbi->rversions[v] == NULL) {
}
if (dbi->rversions[v] == NULL) {
printf("version %d is not open\n", v);
continue;
}
+16
View File
@@ -0,0 +1,16 @@
randomfile
Kdh.+002+18602.key
Kdh.+002+18602.private
Kdh.+002+48957.key
Kdh.+002+48957.private
Ktest.+001+00002.key
Ktest.+001+54622.key
Ktest.+001+54622.private
Ktest.+003+23616.key
Ktest.+003+23616.private
Ktest.+003+49667.key
dst_2_data
t2_data_1
t2_data_2
t2_dsasig
t2_rsasig
+24 -4
View File
@@ -1,4 +1,4 @@
# Copyright (C) 2004, 2006-2008, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2004, 2006-2008, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1999-2002 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -49,7 +49,7 @@ dst_test@EXEEXT@: dst_test.@O@ ${DEPLIBS}
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
dst_test.@O@ ${LIBS}
t_dst@EXEEXT@: t_dst.@O@ ${DEPLIBS} ${TLIB}
t_dst@EXEEXT@: t_dst.@O@ ${DEPLIBS} ${TLIB} randomfile
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
t_dst.@O@ ${TLIB} ${LIBS}
@@ -57,9 +57,29 @@ gsstest@EXEEXT@: gsstest.@O@ ${DEPLIBS}
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
gsstest.@O@ ${LIBS}
test: t_dst@EXEEXT@
test: t_dst@EXEEXT@ randomfile
../genrandom@EXEEXT@ 100 randomfile
-@ ./t_dst@EXEEXT@ -q 1800 -a
randomfile:
../genrandom@EXEEXT@ 100 randomfile
-@ ./t_dst@EXEEXT@ -b @srcdir@ -q 1800 -a
clean distclean::
rm -f ${TARGETS} randomfile
distclean::
rm -f Kdh.+002+18602.key
rm -f Kdh.+002+18602.private
rm -f Kdh.+002+48957.key
rm -f Kdh.+002+48957.private
rm -f Ktest.+001+00002.key
rm -f Ktest.+001+54622.key
rm -f Ktest.+001+54622.private
rm -f Ktest.+003+23616.key
rm -f Ktest.+003+23616.private
rm -f Ktest.+003+49667.key
rm -f dst_2_data
rm -f t2_data_1
rm -f t2_data_2
rm -f t2_dsasig
rm -f t2_rsasig
+3 -3
View File
@@ -54,7 +54,7 @@ use(dst_key_t *key, isc_mem_t *mctx) {
*/
isc_buffer_add(&sigbuf, 1);
isc_buffer_init(&databuf, data, strlen(data));
isc_buffer_constinit(&databuf, data, strlen(data));
isc_buffer_add(&databuf, strlen(data));
isc_buffer_usedregion(&databuf, &datareg);
@@ -262,7 +262,7 @@ main(void) {
dns_fixedname_init(&fname);
name = dns_fixedname_name(&fname);
isc_buffer_init(&b, "test.", 5);
isc_buffer_constinit(&b, "test.", 5);
isc_buffer_add(&b, 5);
result = dns_name_fromtext(name, &b, NULL, ISC_FALSE, NULL);
if (result != ISC_R_SUCCESS)
@@ -274,7 +274,7 @@ main(void) {
io(name, 49667, DST_ALG_DSA, DST_TYPE_PRIVATE|DST_TYPE_PUBLIC, mctx);
io(name, 2, DST_ALG_RSAMD5, DST_TYPE_PRIVATE|DST_TYPE_PUBLIC, mctx);
isc_buffer_init(&b, "dh.", 3);
isc_buffer_constinit(&b, "dh.", 3);
isc_buffer_add(&b, 3);
result = dns_name_fromtext(name, &b, NULL, ISC_FALSE, NULL);
if (result != ISC_R_SUCCESS)
+71 -52
View File
@@ -61,6 +61,7 @@ cleandir(char *path) {
DIR *dirp;
struct dirent *pe;
char fullname[PATH_MAX + 1];
size_t l;
dirp = opendir(path);
if (dirp == NULL) {
@@ -73,11 +74,16 @@ cleandir(char *path) {
continue;
if (! strcmp(pe->d_name, ".."))
continue;
strcpy(fullname, path);
strcat(fullname, "/");
strcat(fullname, pe->d_name);
if (remove(fullname))
t_info("remove(%s) failed %d\n", fullname, errno);
(void)strlcpy(fullname, path, sizeof(fullname));
(void)strlcat(fullname, "/", sizeof(fullname));
l = strlcat(fullname, pe->d_name, sizeof(fullname));
if (l < sizeof(fullname)) {
if (remove(fullname))
t_info("remove(%s) failed %d\n", fullname,
errno);
} else
t_info("unable to remove '%s/%s': path too long\n",
path, pe->d_name);
}
(void)closedir(dirp);
@@ -98,7 +104,7 @@ use(dst_key_t *key, isc_mem_t *mctx, isc_result_t exp_result, int *nfails) {
dst_context_t *ctx = NULL;
isc_buffer_init(&sigbuf, sig, sizeof(sig));
isc_buffer_init(&databuf, data, strlen(data));
isc_buffer_constinit(&databuf, data, strlen(data));
isc_buffer_add(&databuf, strlen(data));
isc_buffer_usedregion(&databuf, &datareg);
@@ -179,7 +185,7 @@ dh(dns_name_t *name1, int id1, dns_name_t *name2, int id2, isc_mem_t *mctx,
if (p == NULL) {
t_info("getcwd failed %d\n", errno);
++*nprobs;
return;
goto cleanup;
}
ret = dst_key_fromfile(name1, id1, alg, type, current, mctx, &key1);
@@ -187,7 +193,7 @@ dh(dns_name_t *name1, int id1, dns_name_t *name2, int id2, isc_mem_t *mctx,
t_info("dst_key_fromfile(%d) returned: %s\n",
alg, dst_result_totext(ret));
++*nfails;
return;
goto cleanup;
}
ret = dst_key_fromfile(name2, id2, alg, type, current, mctx, &key2);
@@ -195,7 +201,7 @@ dh(dns_name_t *name1, int id1, dns_name_t *name2, int id2, isc_mem_t *mctx,
t_info("dst_key_fromfile(%d) returned: %s\n",
alg, dst_result_totext(ret));
++*nfails;
return;
goto cleanup;
}
ret = isc_file_mktemplate("/tmp/", tmp, sizeof(tmp));
@@ -203,7 +209,7 @@ dh(dns_name_t *name1, int id1, dns_name_t *name2, int id2, isc_mem_t *mctx,
t_info("isc_file_mktemplate failed %s\n",
isc_result_totext(ret));
++*nprobs;
return;
goto cleanup;
}
ret = isc_dir_createunique(tmp);
@@ -211,7 +217,7 @@ dh(dns_name_t *name1, int id1, dns_name_t *name2, int id2, isc_mem_t *mctx,
t_info("isc_dir_createunique failed %s\n",
isc_result_totext(ret));
++*nprobs;
return;
goto cleanup;
}
ret = dst_key_tofile(key1, type, tmp);
@@ -219,7 +225,7 @@ dh(dns_name_t *name1, int id1, dns_name_t *name2, int id2, isc_mem_t *mctx,
t_info("dst_key_tofile(%d) returned: %s\n",
alg, dst_result_totext(ret));
++*nfails;
return;
goto cleanup;
}
ret = dst_key_tofile(key2, type, tmp);
@@ -227,7 +233,7 @@ dh(dns_name_t *name1, int id1, dns_name_t *name2, int id2, isc_mem_t *mctx,
t_info("dst_key_tofile(%d) returned: %s\n",
alg, dst_result_totext(ret));
++*nfails;
return;
goto cleanup;
}
cleandir(tmp);
@@ -238,7 +244,7 @@ dh(dns_name_t *name1, int id1, dns_name_t *name2, int id2, isc_mem_t *mctx,
t_info("dst_computesecret() returned: %s\n",
dst_result_totext(ret));
++*nfails;
return;
goto cleanup;
}
isc_buffer_init(&b2, array2, sizeof(array2));
@@ -247,7 +253,7 @@ dh(dns_name_t *name1, int id1, dns_name_t *name2, int id2, isc_mem_t *mctx,
t_info("dst_computesecret() returned: %s\n",
dst_result_totext(ret));
++*nfails;
return;
goto cleanup;
}
isc_buffer_usedregion(&b1, &r1);
@@ -256,11 +262,14 @@ dh(dns_name_t *name1, int id1, dns_name_t *name2, int id2, isc_mem_t *mctx,
{
t_info("computed secrets don't match\n");
++*nfails;
return;
goto cleanup;
}
dst_key_free(&key1);
dst_key_free(&key2);
cleanup:
if (key1 != NULL)
dst_key_free(&key1);
if (key2 != NULL)
dst_key_free(&key2);
}
static void
@@ -330,12 +339,14 @@ generate(int alg, isc_mem_t *mctx, int size, int *nfails) {
t_info("dst_key_generate(%d) returned: %s\n", alg,
dst_result_totext(ret));
++*nfails;
return;
goto cleanup;
}
if (alg != DST_ALG_DH)
use(key, mctx, ISC_R_SUCCESS, nfails);
dst_key_free(&key);
cleanup:
if (key != NULL)
dst_key_free(&key);
}
#define DBUFSIZ 25
@@ -403,7 +414,7 @@ t1(void) {
dns_fixedname_init(&fname);
name = dns_fixedname_name(&fname);
isc_buffer_init(&b, "test.", 5);
isc_buffer_constinit(&b, "test.", 5);
isc_buffer_add(&b, 5);
isc_result = dns_name_fromtext(name, &b, NULL, ISC_FALSE, NULL);
if (isc_result != ISC_R_SUCCESS) {
@@ -425,7 +436,7 @@ t1(void) {
io(name, 2, DST_ALG_RSAMD5, DST_TYPE_PRIVATE|DST_TYPE_PUBLIC,
mctx, DST_R_NULLKEY, &nfails, &nprobs);
isc_buffer_init(&b, "dh.", 3);
isc_buffer_constinit(&b, "dh.", 3);
isc_buffer_add(&b, 3);
isc_result = dns_name_fromtext(name, &b, NULL, ISC_FALSE, NULL);
if (isc_result != ISC_R_SUCCESS) {
@@ -555,25 +566,27 @@ sig_fromfile(char *path, isc_buffer_t *iscbuf) {
char *p;
char *buf;
rval = stat(path, &sb);
if (rval != 0) {
t_info("stat %s failed, errno == %d\n", path, errno);
return(1);
}
buf = (char *) malloc((sb.st_size + 1) * sizeof(unsigned char));
if (buf == NULL) {
t_info("malloc failed, errno == %d\n", errno);
return(1);
}
fd = open(path, O_RDONLY);
if (fd < 0) {
t_info("open failed, errno == %d\n", errno);
(void) free(buf);
return(1);
}
rval = fstat(fd, &sb);
if (rval != 0) {
t_info("stat %s failed, errno == %d\n", path, errno);
close(fd);
return(1);
}
buf = (char *) malloc((sb.st_size + 1) * sizeof(char));
if (buf == NULL) {
t_info("malloc failed, errno == %d\n", errno);
close(fd);
return(1);
}
len = sb.st_size;
p = buf;
while (len) {
@@ -646,28 +659,29 @@ t2_sigchk(char *datapath, char *sigpath, char *keyname,
/*
* Read data from file in a form usable by dst_verify.
*/
rval = stat(datapath, &sb);
if (rval != 0) {
t_info("t2_sigchk: stat (%s) failed %d\n", datapath, errno);
++*nprobs;
return;
}
data = (unsigned char *) malloc(sb.st_size * sizeof(char));
if (data == NULL) {
t_info("t2_sigchk: malloc failed %d\n", errno);
++*nprobs;
return;
}
fd = open(datapath, O_RDONLY);
if (fd < 0) {
t_info("t2_sigchk: open failed %d\n", errno);
(void) free(data);
++*nprobs;
return;
}
rval = fstat(fd, &sb);
if (rval != 0) {
t_info("t2_sigchk: stat (%s) failed %d\n", datapath, errno);
++*nprobs;
close(fd);
return;
}
data = (unsigned char *) malloc(sb.st_size * sizeof(unsigned char));
if (data == NULL) {
t_info("t2_sigchk: malloc failed %d\n", errno);
++*nprobs;
close(fd);
return;
}
p = data;
len = sb.st_size;
do {
@@ -684,7 +698,7 @@ t2_sigchk(char *datapath, char *sigpath, char *keyname,
*/
dns_fixedname_init(&fname);
name = dns_fixedname_name(&fname);
isc_buffer_init(&b, keyname, strlen(keyname));
isc_buffer_constinit(&b, keyname, strlen(keyname));
isc_buffer_add(&b, strlen(keyname));
isc_result = dns_name_fromtext(name, &b, dns_rootname, ISC_FALSE, NULL);
if (isc_result != ISC_R_SUCCESS) {
@@ -787,14 +801,20 @@ t2_sigchk(char *datapath, char *sigpath, char *keyname,
if (isc_result != ISC_R_SUCCESS) {
t_info("dst_context_create returned %s\n",
isc_result_totext(isc_result));
(void) free(data);
dst_key_free(&key);
++*nfails;
return;
}
isc_result = dst_context_adddata(ctx, &datareg);
if (isc_result != ISC_R_SUCCESS) {
t_info("dst_context_adddata returned %s\n",
isc_result_totext(isc_result));
(void) free(data);
dst_context_destroy(&ctx);
dst_key_free(&key);
++*nfails;
return;
}
isc_result = dst_context_verify(ctx, &sigreg);
if ( ((exp_res == 0) && (isc_result != ISC_R_SUCCESS)) ||
@@ -803,7 +823,6 @@ t2_sigchk(char *datapath, char *sigpath, char *keyname,
t_info("dst_context_verify returned %s, expected %s\n",
isc_result_totext(isc_result),
expected_result);
dst_context_destroy(&ctx);
++*nfails;
}
+21 -4
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004, 2005, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -22,6 +22,8 @@
#include <config.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/types.h> /* Non-portable. */
#include <sys/stat.h> /* Non-portable. */
@@ -35,10 +37,24 @@ int
main(void) {
isc_fsaccess_t access;
isc_result_t result;
FILE *fp;
int n;
remove(PATH);
fopen(PATH, "w");
chmod(PATH, 0);
n = remove(PATH);
if (n != 0 && errno != ENOENT) {
fprintf(stderr, "unable to remove(%s)\n", PATH);
exit(1);
}
fp = fopen(PATH, "w");
if (fp == NULL) {
fprintf(stderr, "unable to fopen(%s)\n", PATH);
exit(1);
}
n = chmod(PATH, 0);
if (n != 0) {
fprintf(stderr, "unable chmod(%s, 0)\n", PATH);
exit(1);
}
access = 0;
@@ -55,6 +71,7 @@ main(void) {
result = isc_fsaccess_set(PATH, access);
if (result != ISC_R_SUCCESS)
fprintf(stderr, "result = %s\n", isc_result_totext(result));
(void)fclose(fp);
return (0);
}
+1 -1
View File
@@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2000, 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
+8 -8
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: named.conf,v 1.58 2007/06/19 23:46:59 tbox Exp $ */
/* $Id: named.conf,v 1.59 2011/03/03 14:10:26 fdupont Exp $ */
/*
* This is a worthless, nonrunnable example of a named.conf file that has
@@ -153,7 +153,7 @@ options {
min-retry-time 1111;
max-refresh-time 888;
min-refresh-time 777;
max-ncache-ttl 333;
min-roots 15;
serial-queries 34;
@@ -287,7 +287,7 @@ view "test-view" in {
transfer-source 10.0.0.55;
transfer-source-v6 4:3:8:1:5:6:7:8;
query-source port * address 10.0.0.54 ;
query-source-v6 address 6:6:6:6:6:6:6:6 port *;
query-source-v6 address 6:6:6:6:6:6:6:6 port *;
max-transfer-time-out 45;
max-transfer-idle-out 55;
cleaning-interval 100;
@@ -300,7 +300,7 @@ view "test-view" in {
min-retry-time 4;
max-refresh-time 999;
min-refresh-time 111;
zone "view-zone.com" {
type master;
allow-update-forwarding { 10.0.0.34;};
@@ -337,7 +337,7 @@ zone "stub.demo.zone" {
min-retry-time 11;
max-refresh-time 12;
min-refresh-time 13;
max-transfer-time-in 120; // if not set, global option is used.
pubkey 257 255 1 "a useless key";
pubkey 257 255 1 "another useless key";
@@ -394,7 +394,7 @@ zone "non-default-acl.demo.zone" {
grant root.domain. name host.domain. a ns md mf cname soa mb mg
mr "null" wks ptr hinfo minfo mx txt rp afsdb x25
isdn rt nsap sig "key" px gpos aaaa loc nxt srv naptr kx
cert a6 dname opt unspec tkey tsig ;
cert a6 dname opt unspec uri tkey tsig ;
grant foo.bar.com. self foo.bar.com. a;
};
};
@@ -614,7 +614,7 @@ logging {
* channel may be assigned to each of them, and it must be a
* file channel. If you don't define them yourself, they default to
*
* category eventlib { default_debug; };
* category eventlib { default_debug; };
*
* category packet { default_debug; };
*/
+1 -1
View File
@@ -9,4 +9,4 @@
# cishm is 0 if a case insensitive hash of testname1 should match a
# case insensitive hash of testname2, otherwise cishm != 0
#
a.b.c.d a.b.c.d. 0 0
a.b.c.d A.B.C.D 0 1
+162 -118
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -25,8 +25,10 @@
#include <isc/buffer.h>
#include <isc/mem.h>
#include <isc/string.h>
#include <isc/util.h>
#include <dns/compress.h>
#include <dns/fixedname.h>
#include <dns/name.h>
#include <dns/result.h>
@@ -38,7 +40,6 @@
static char *Tokens[MAXTOKS + 1];
#ifdef NEED_PBUF
/*%
@@ -121,20 +122,30 @@ chkdata(unsigned char *buf, size_t buflen, char *exp_data,
if (('0' <= *q) && (*q <= '9'))
*p = *q - '0';
else if (('a' <= *q) && (*q <= 'z'))
else if (('a' <= *q) && (*q <= 'f'))
*p = *q - 'a' + 10;
else if (('A' <= *q) && (*q <= 'Z'))
else if (('A' <= *q) && (*q <= 'F'))
*p = *q - 'A' + 10;
else {
t_info("malformed comparison data\n");
free(data);
return (-1);
}
++q;
*p <<= 4;
if (('0' <= *q) && (*q <= '9'))
*p |= ((*q - '0') & 0x0f);
else if (('a' <= *q) && (*q <= 'z'))
else if (('a' <= *q) && (*q <= 'f'))
*p |= ((*q - 'a' + 10) & 0x0f);
else if (('A' <= *q) && (*q <= 'Z'))
else if (('A' <= *q) && (*q <= 'F'))
*p |= ((*q - 'A' + 10) & 0x0f);
else {
t_info("malformed comparison data\n");
free(data);
return (-1);
}
++p;
++q;
++cnt;
@@ -156,7 +167,7 @@ chkdata(unsigned char *buf, size_t buflen, char *exp_data,
else {
t_info("bad data at position %lu, "
"got 0x%.2x, expected 0x%.2x\n",
(unsigned long)cnt, *p, *q);
(unsigned long)cnt, *p, *v);
result = cnt + 1;
}
(void)free(data);
@@ -174,13 +185,14 @@ chkdata(unsigned char *buf, size_t buflen, char *exp_data,
* setup the buffer and return the data length.
*/
static int
getmsg(char *datafile_name, unsigned char *buf, int buflen, isc_buffer_t *pbuf)
getmsg(char *datafile_name, isc_buffer_t *pbuf)
{
int c;
int len;
int cnt;
unsigned int len;
unsigned int cnt;
unsigned char *p;
FILE *fp;
unsigned int buflen;
fp = fopen(datafile_name, "r");
if (fp == NULL) {
@@ -188,7 +200,8 @@ getmsg(char *datafile_name, unsigned char *buf, int buflen, isc_buffer_t *pbuf)
return (0);
}
p = buf;
p = isc_buffer_used(pbuf);
buflen = isc_buffer_availablelength(pbuf);
cnt = 0;
len = 0;
while ((c = getc(fp)) != EOF) {
@@ -203,9 +216,9 @@ getmsg(char *datafile_name, unsigned char *buf, int buflen, isc_buffer_t *pbuf)
}
if (('0' <= c) && (c <= '9'))
val = c - '0';
else if (('a' <= c) && (c <= 'z'))
else if (('a' <= c) && (c <= 'f'))
val = c - 'a' + 10;
else if (('A' <= c) && (c <= 'Z'))
else if (('A' <= c) && (c <= 'F'))
val = c - 'A'+ 10;
else {
(void)fclose(fp);
@@ -237,7 +250,6 @@ getmsg(char *datafile_name, unsigned char *buf, int buflen, isc_buffer_t *pbuf)
}
*p = '\0';
isc_buffer_init(pbuf, buf, cnt);
isc_buffer_add(pbuf, cnt);
return (cnt);
}
@@ -320,41 +332,6 @@ hname_to_tname(char *src, char *target, size_t len) {
#endif /* NEED_HNAME_TO_TNAME */
/*%
* initialize a dns_name_t from a text name, hiding all
* buffer and other object initialization from the caller
*
*/
static isc_result_t
dname_from_tname(char *name, dns_name_t *dns_name) {
int len;
isc_buffer_t txtbuf;
isc_buffer_t *binbuf;
unsigned char *junk;
isc_result_t result;
len = strlen(name);
isc_buffer_init(&txtbuf, name, len);
isc_buffer_add(&txtbuf, len);
junk = (unsigned char *)malloc(sizeof(unsigned char) * BUFLEN);
binbuf = (isc_buffer_t *)malloc(sizeof(isc_buffer_t));
if ((junk != NULL) && (binbuf != NULL)) {
isc_buffer_init(binbuf, junk, BUFLEN);
dns_name_init(dns_name, NULL);
dns_name_setbuffer(dns_name, binbuf);
result = dns_name_fromtext(dns_name, &txtbuf,
NULL, ISC_FALSE, NULL);
} else {
result = ISC_R_NOSPACE;
if (junk != NULL)
(void)free(junk);
if (binbuf != NULL)
(void)free(binbuf);
}
return (result);
}
static const char *a3 = "dns_name_init initializes 'name' to the empty name";
static void
@@ -615,8 +592,10 @@ test_dns_name_hash(char *test_name1, char *test_name2,
isc_boolean_t match;
unsigned int hash1;
unsigned int hash2;
dns_name_t dns_name1;
dns_name_t dns_name2;
dns_fixedname_t fixed1;
dns_fixedname_t fixed2;
dns_name_t *dns_name1;
dns_name_t *dns_name2;
isc_result_t result;
rval = T_UNRESOLVED;
@@ -624,12 +603,17 @@ test_dns_name_hash(char *test_name1, char *test_name2,
t_info("testing names %s and %s\n", test_name1, test_name2);
result = dname_from_tname(test_name1, &dns_name1);
dns_fixedname_init(&fixed1);
dns_fixedname_init(&fixed2);
dns_name1 = dns_fixedname_name(&fixed1);
dns_name2 = dns_fixedname_name(&fixed2);
result = dns_name_fromstring2(dns_name1, test_name1, NULL, 0, NULL);
if (result == ISC_R_SUCCESS) {
result = dname_from_tname(test_name2, &dns_name2);
result = dns_name_fromstring2(dns_name2, test_name2, NULL,
0, NULL);
if (result == ISC_R_SUCCESS) {
hash1 = dns_name_hash(&dns_name1, ISC_TRUE);
hash2 = dns_name_hash(&dns_name2, ISC_TRUE);
hash1 = dns_name_hash(dns_name1, ISC_TRUE);
hash2 = dns_name_hash(dns_name2, ISC_TRUE);
match = ISC_FALSE;
if (hash1 == hash2)
match = ISC_TRUE;
@@ -637,8 +621,8 @@ test_dns_name_hash(char *test_name1, char *test_name2,
++failures;
t_info("hash mismatch when ISC_TRUE\n");
}
hash1 = dns_name_hash(&dns_name1, ISC_FALSE);
hash2 = dns_name_hash(&dns_name2, ISC_FALSE);
hash1 = dns_name_hash(dns_name1, ISC_FALSE);
hash2 = dns_name_hash(dns_name2, ISC_FALSE);
match = ISC_FALSE;
if (hash1 == hash2)
match = ISC_TRUE;
@@ -651,11 +635,11 @@ test_dns_name_hash(char *test_name1, char *test_name2,
else
rval = T_FAIL;
} else {
t_info("dns_fromtext %s failed, result = %s\n",
t_info("dns_name_fromstring2 %s failed, result = %s\n",
test_name2, dns_result_totext(result));
}
} else {
t_info("dns_fromtext %s failed, result = %s\n",
t_info("dns_name_fromstring2 %s failed, result = %s\n",
test_name1, dns_result_totext(result));
}
return (rval);
@@ -757,8 +741,10 @@ test_dns_name_fullcompare(char *name1, char *name2,
int nfails;
int order;
unsigned int nlabels;
dns_name_t dns_name1;
dns_name_t dns_name2;
dns_fixedname_t fixed1;
dns_fixedname_t fixed2;
dns_name_t *dns_name1;
dns_name_t *dns_name2;
isc_result_t dns_result;
dns_namereln_t dns_reln;
@@ -769,11 +755,16 @@ test_dns_name_fullcompare(char *name1, char *name2,
t_info("testing names %s and %s for relation %s\n", name1, name2,
dns_namereln_to_text(exp_dns_reln));
dns_result = dname_from_tname(name1, &dns_name1);
dns_fixedname_init(&fixed1);
dns_fixedname_init(&fixed2);
dns_name1 = dns_fixedname_name(&fixed1);
dns_name2 = dns_fixedname_name(&fixed2);
dns_result = dns_name_fromstring2(dns_name1, name1, NULL, 0, NULL);
if (dns_result == ISC_R_SUCCESS) {
dns_result = dname_from_tname(name2, &dns_name2);
dns_result = dns_name_fromstring2(dns_name2, name2, NULL,
0, NULL);
if (dns_result == ISC_R_SUCCESS) {
dns_reln = dns_name_fullcompare(&dns_name1, &dns_name2,
dns_reln = dns_name_fullcompare(dns_name1, dns_name2,
&order, &nlabels);
if (dns_reln != exp_dns_reln) {
@@ -805,11 +796,11 @@ test_dns_name_fullcompare(char *name1, char *name2,
else
result = T_FAIL;
} else {
t_info("dname_from_tname failed, result == %s\n",
t_info("dns_name_fromstring2 failed, result == %s\n",
dns_result_totext(result));
}
} else {
t_info("dname_from_tname failed, result == %s\n",
t_info("dns_name_fromstring2 failed, result == %s\n",
dns_result_totext(result));
}
@@ -898,8 +889,10 @@ test_dns_name_compare(char *name1, char *name2, int exp_order) {
int result;
int order;
isc_result_t dns_result;
dns_name_t dns_name1;
dns_name_t dns_name2;
dns_fixedname_t fixed1;
dns_fixedname_t fixed2;
dns_name_t *dns_name1;
dns_name_t *dns_name2;
result = T_UNRESOLVED;
@@ -907,11 +900,16 @@ test_dns_name_compare(char *name1, char *name2, int exp_order) {
exp_order == 0 ? "==": (exp_order == -1 ? "<" : ">"),
name2);
dns_result = dname_from_tname(name1, &dns_name1);
dns_fixedname_init(&fixed1);
dns_fixedname_init(&fixed2);
dns_name1 = dns_fixedname_name(&fixed1);
dns_name2 = dns_fixedname_name(&fixed2);
dns_result = dns_name_fromstring2(dns_name1, name1, NULL, 0, NULL);
if (dns_result == ISC_R_SUCCESS) {
dns_result = dname_from_tname(name2, &dns_name2);
dns_result = dns_name_fromstring2(dns_name2, name2, NULL,
0, NULL);
if (dns_result == ISC_R_SUCCESS) {
order = dns_name_compare(&dns_name1, &dns_name2);
order = dns_name_compare(dns_name1, dns_name2);
/*
* Normalize order.
*/
@@ -926,11 +924,11 @@ test_dns_name_compare(char *name1, char *name2, int exp_order) {
} else
result = T_PASS;
} else {
t_info("dname_from_tname failed, result == %s\n",
t_info("dns_name_fromstring2 failed, result == %s\n",
dns_result_totext(result));
}
} else {
t_info("dname_from_tname failed, result == %s\n",
t_info("dns_name_fromstring2 failed, result == %s\n",
dns_result_totext(result));
}
@@ -1001,19 +999,26 @@ test_dns_name_rdatacompare(char *name1, char *name2, int exp_order) {
int result;
int order;
isc_result_t dns_result;
dns_name_t dns_name1;
dns_name_t dns_name2;
dns_fixedname_t fixed1;
dns_fixedname_t fixed2;
dns_name_t *dns_name1;
dns_name_t *dns_name2;
result = T_UNRESOLVED;
t_info("testing %s %s %s\n", name1,
exp_order == 0 ? "==": (exp_order == -1 ? "<" : ">"), name2);
dns_result = dname_from_tname(name1, &dns_name1);
dns_fixedname_init(&fixed1);
dns_fixedname_init(&fixed2);
dns_name1 = dns_fixedname_name(&fixed1);
dns_name2 = dns_fixedname_name(&fixed2);
dns_result = dns_name_fromstring2(dns_name1, name1, NULL, 0, NULL);
if (dns_result == ISC_R_SUCCESS) {
dns_result = dname_from_tname(name2, &dns_name2);
dns_result = dns_name_fromstring2(dns_name2, name2, NULL,
0, NULL);
if (dns_result == ISC_R_SUCCESS) {
order = dns_name_rdatacompare(&dns_name1, &dns_name2);
order = dns_name_rdatacompare(dns_name1, dns_name2);
/*
* Normalize order.
*/
@@ -1028,11 +1033,11 @@ test_dns_name_rdatacompare(char *name1, char *name2, int exp_order) {
} else
result = T_PASS;
} else {
t_info("dname_from_tname failed, result == %s\n",
t_info("dns_name_fromstring2 failed, result == %s\n",
dns_result_totext(result));
}
} else {
t_info("dname_from_tname failed, result == %s\n",
t_info("dns_name_fromstring2 failed, result == %s\n",
dns_result_totext(result));
}
@@ -1104,19 +1109,26 @@ test_dns_name_issubdomain(char *name1, char *name2, isc_boolean_t exp_rval) {
int result;
isc_boolean_t rval;
isc_result_t dns_result;
dns_name_t dns_name1;
dns_name_t dns_name2;
dns_fixedname_t fixed1;
dns_fixedname_t fixed2;
dns_name_t *dns_name1;
dns_name_t *dns_name2;
result = T_UNRESOLVED;
t_info("testing %s %s a subdomain of %s\n", name1,
exp_rval == 0 ? "is not" : "is", name2);
dns_result = dname_from_tname(name1, &dns_name1);
dns_fixedname_init(&fixed1);
dns_fixedname_init(&fixed2);
dns_name1 = dns_fixedname_name(&fixed1);
dns_name2 = dns_fixedname_name(&fixed2);
dns_result = dns_name_fromstring2(dns_name1, name1, NULL, 0, NULL);
if (dns_result == ISC_R_SUCCESS) {
dns_result = dname_from_tname(name2, &dns_name2);
dns_result = dns_name_fromstring2(dns_name2, name2, NULL,
0, NULL);
if (dns_result == ISC_R_SUCCESS) {
rval = dns_name_issubdomain(&dns_name1, &dns_name2);
rval = dns_name_issubdomain(dns_name1, dns_name2);
if (rval != exp_rval) {
t_info("expected return value of %s, got %s\n",
@@ -1126,11 +1138,11 @@ test_dns_name_issubdomain(char *name1, char *name2, isc_boolean_t exp_rval) {
} else
result = T_PASS;
} else {
t_info("dname_from_tname failed, result == %s\n",
t_info("dns_name_fromstring2 failed, result == %s\n",
dns_result_totext(result));
}
} else {
t_info("dname_from_tname failed, result == %s\n",
t_info("dns_name_fromstring2 failed, result == %s\n",
dns_result_totext(result));
}
@@ -1197,15 +1209,18 @@ test_dns_name_countlabels(char *test_name, unsigned int exp_nlabels) {
int result;
unsigned int nlabels;
isc_result_t dns_result;
dns_name_t dns_name;
dns_fixedname_t fixed;
dns_name_t *dns_name;
result = T_UNRESOLVED;
t_info("testing %s\n", test_name);
dns_result = dname_from_tname(test_name, &dns_name);
dns_fixedname_init(&fixed);
dns_name = dns_fixedname_name(&fixed);
dns_result = dns_name_fromstring2(dns_name, test_name, NULL, 0, NULL);
if (dns_result == ISC_R_SUCCESS) {
nlabels = dns_name_countlabels(&dns_name);
nlabels = dns_name_countlabels(dns_name);
if (nlabels != exp_nlabels) {
t_info("expected %d, got %d\n", exp_nlabels, nlabels);
@@ -1213,7 +1228,7 @@ test_dns_name_countlabels(char *test_name, unsigned int exp_nlabels) {
} else
result = T_PASS;
} else {
t_info("dname_from_tname failed, result == %s\n",
t_info("dns_name_fromstring2 failed, result == %s\n",
dns_result_totext(dns_result));
}
@@ -1287,8 +1302,10 @@ test_dns_name_getlabel(char *test_name1, int label1_pos, char *test_name2,
unsigned int cnt;
unsigned char *p;
unsigned char *q;
dns_name_t dns_name1;
dns_name_t dns_name2;
dns_fixedname_t fixed1;
dns_fixedname_t fixed2;
dns_name_t *dns_name1;
dns_name_t *dns_name2;
dns_label_t dns_label1;
dns_label_t dns_label2;
isc_result_t dns_result;
@@ -1298,12 +1315,18 @@ test_dns_name_getlabel(char *test_name1, int label1_pos, char *test_name2,
t_info("testing with %s and %s\n", test_name1, test_name2);
dns_result = dname_from_tname(test_name1, &dns_name1);
dns_fixedname_init(&fixed1);
dns_fixedname_init(&fixed2);
dns_name1 = dns_fixedname_name(&fixed1);
dns_name2 = dns_fixedname_name(&fixed2);
dns_result = dns_name_fromstring2(dns_name1, test_name1, NULL,
0, NULL);
if (dns_result == ISC_R_SUCCESS) {
dns_result = dname_from_tname(test_name2, &dns_name2);
dns_result = dns_name_fromstring2(dns_name2, test_name2, NULL,
0, NULL);
if (dns_result == ISC_R_SUCCESS) {
dns_name_getlabel(&dns_name1, label1_pos, &dns_label1);
dns_name_getlabel(&dns_name2, label2_pos, &dns_label2);
dns_name_getlabel(dns_name1, label1_pos, &dns_label1);
dns_name_getlabel(dns_name2, label2_pos, &dns_label2);
if (dns_label1.length != dns_label2.length) {
t_info("label lengths differ\n");
++nfails;
@@ -1322,11 +1345,11 @@ test_dns_name_getlabel(char *test_name1, int label1_pos, char *test_name2,
else
result = T_FAIL;
} else {
t_info("dname_from_tname failed, result == %s",
t_info("dns_name_fromstring2 failed, result == %s",
dns_result_totext(result));
}
} else {
t_info("dname_from_tname failed, result == %s",
t_info("dns_name_fromstring2 failed, result == %s",
dns_result_totext(result));
}
return (result);
@@ -1400,8 +1423,10 @@ test_dns_name_getlabelsequence(char *test_name1, int label1_start,
unsigned int cnt;
unsigned char *p;
unsigned char *q;
dns_name_t dns_name1;
dns_name_t dns_name2;
dns_fixedname_t fixed1;
dns_fixedname_t fixed2;
dns_name_t *dns_name1;
dns_name_t *dns_name2;
dns_name_t dns_targetname1;
dns_name_t dns_targetname2;
isc_result_t dns_result;
@@ -1412,16 +1437,22 @@ test_dns_name_getlabelsequence(char *test_name1, int label1_start,
nfails = 0;
result = T_UNRESOLVED;
dns_result = dname_from_tname(test_name1, &dns_name1);
dns_fixedname_init(&fixed1);
dns_fixedname_init(&fixed2);
dns_name1 = dns_fixedname_name(&fixed1);
dns_name2 = dns_fixedname_name(&fixed2);
dns_result = dns_name_fromstring2(dns_name1, test_name1, NULL,
0, NULL);
if (dns_result == ISC_R_SUCCESS) {
dns_result = dname_from_tname(test_name2, &dns_name2);
dns_result = dns_name_fromstring2(dns_name2, test_name2, NULL,
0, NULL);
if (dns_result == ISC_R_SUCCESS) {
t_info("testing %s %s\n", test_name1, test_name2);
dns_name_init(&dns_targetname1, NULL);
dns_name_init(&dns_targetname2, NULL);
dns_name_getlabelsequence(&dns_name1, label1_start,
dns_name_getlabelsequence(dns_name1, label1_start,
range, &dns_targetname1);
dns_name_getlabelsequence(&dns_name2, label2_start,
dns_name_getlabelsequence(dns_name2, label2_start,
range, &dns_targetname2);
/*
@@ -1452,11 +1483,11 @@ test_dns_name_getlabelsequence(char *test_name1, int label1_start,
else
result = T_FAIL;
} else {
t_info("dname_from_tname failed, result == %s",
t_info("dns_name_fromstring2 failed, result == %s",
dns_result_totext(dns_result));
}
} else {
t_info("dname_from_tname failed, result == %s",
t_info("dns_name_fromstring2 failed, result == %s",
dns_result_totext(dns_result));
}
return (result);
@@ -1523,7 +1554,8 @@ test_dns_name_fromregion(char *test_name) {
int order;
unsigned int nlabels;
isc_result_t dns_result;
dns_name_t dns_name1;
dns_fixedname_t fixed1;
dns_name_t *dns_name1;
dns_name_t dns_name2;
dns_namereln_t dns_namereln;
isc_region_t region;
@@ -1532,21 +1564,23 @@ test_dns_name_fromregion(char *test_name) {
t_info("testing %s\n", test_name);
dns_result = dname_from_tname(test_name, &dns_name1);
dns_fixedname_init(&fixed1);
dns_name1 = dns_fixedname_name(&fixed1);
dns_result = dns_name_fromstring2(dns_name1, test_name, NULL, 0, NULL);
if (dns_result == ISC_R_SUCCESS) {
dns_name_toregion(&dns_name1, &region);
dns_name_toregion(dns_name1, &region);
dns_name_init(&dns_name2, NULL);
dns_name_fromregion(&dns_name2, &region);
dns_namereln = dns_name_fullcompare(&dns_name1, &dns_name2,
dns_namereln = dns_name_fullcompare(dns_name1, &dns_name2,
&order, &nlabels);
if (dns_namereln == dns_namereln_equal)
result = T_PASS;
else
result = T_FAIL;
} else {
t_info("dname_from_tname failed, result == %s\n",
t_info("dns_name_fromstring2 failed, result == %s\n",
dns_result_totext(result));
}
return (result);
@@ -1975,14 +2009,18 @@ test_dns_name_fromwire(char *datafile_name, int testname_offset, int downcase,
char buf2[BUFLEN];
isc_buffer_t iscbuf1;
isc_buffer_t iscbuf2;
dns_fixedname_t fixed2;
dns_name_t dns_name1;
dns_name_t dns_name2;
dns_name_t *dns_name2;
isc_result_t dns_result;
dns_namereln_t dns_namereln;
dns_decompress_t dctx;
t_info("testing using %s\n", datafile_name);
len = getmsg(datafile_name, buf1, BIGBUFLEN, &iscbuf1);
isc_buffer_init(&iscbuf1, buf1, sizeof(buf1));
len = getmsg(datafile_name, &iscbuf1);
if (len == 0)
return (T_FAIL);
isc_buffer_setactive(&iscbuf1, len);
iscbuf1.current = testname_offset;
@@ -1997,10 +2035,13 @@ test_dns_name_fromwire(char *datafile_name, int testname_offset, int downcase,
if ((dns_result == exp_result) && (exp_result == ISC_R_SUCCESS)) {
dns_result = dname_from_tname(exp_name, &dns_name2);
dns_fixedname_init(&fixed2);
dns_name2 = dns_fixedname_name(&fixed2);
dns_result = dns_name_fromstring2(dns_name2, exp_name, NULL,
0, NULL);
if (dns_result == ISC_R_SUCCESS) {
dns_namereln = dns_name_fullcompare(&dns_name1,
&dns_name2,
dns_name2,
&order, &nlabels);
if (dns_namereln != dns_namereln_equal) {
t_info("dns_name_fullcompare returned %s\n",
@@ -2155,7 +2196,8 @@ static const char *a52 =
static int
test_dns_name_towire(char *testname, unsigned int dc_method, char *exp_data,
int exp_data_len, isc_result_t exp_result, size_t buflen)
size_t exp_data_len, isc_result_t exp_result,
size_t buflen)
{
int result;
int val;
@@ -2225,6 +2267,7 @@ t_dns_name_towire_x(const char *testfile, size_t buflen) {
int result;
unsigned int dc_method;
isc_result_t exp_result;
size_t exp_data_len;
char *p;
FILE *fp;
@@ -2254,11 +2297,12 @@ t_dns_name_towire_x(const char *testfile, size_t buflen) {
dc_method = t_dc_method_fromtext(Tokens[3]);
exp_result = t_dns_result_fromtext(Tokens[4]);
exp_data_len = strtoul(Tokens[3], NULL, 10);
result = test_dns_name_towire(Tokens[0],
dc_method,
Tokens[2],
atoi(Tokens[3]),
exp_data_len,
exp_result,
buflen);
} else {
+12
View File
@@ -1056,6 +1056,12 @@ t_dns_rbtnodechain_first(char *dbfile, char *expected_firstname,
dns_fixedname_t dns_origin;
isc_result_t expected_result;
REQUIRE(dbfile != NULL);
REQUIRE(expected_firstname != NULL);
REQUIRE(expected_firstorigin != NULL);
REQUIRE(expected_nextname != NULL);
REQUIRE(expected_nextorigin != NULL);
result = T_UNRESOLVED;
nfails = 0;
@@ -1247,6 +1253,12 @@ t_dns_rbtnodechain_last(char *dbfile, char *expected_lastname,
dns_fixedname_t dns_origin;
isc_result_t expected_result;
REQUIRE(dbfile != NULL);
REQUIRE(expected_lastname != NULL);
REQUIRE(expected_lastorigin != NULL);
REQUIRE(expected_prevname != NULL);
REQUIRE(expected_prevorigin != NULL);
result = T_UNRESOLVED;
nfails = 0;
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1999-2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
+108 -95
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2007, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -15,8 +15,6 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id$ */
#include <config.h>
#include <stdlib.h>
@@ -55,19 +53,19 @@ viastruct(dns_rdata_t *rdata, isc_mem_t *mctx,
switch (rdata->type) {
case dns_rdatatype_a6: {
dns_rdata_in_a6_t in_a6;
static dns_rdata_in_a6_t in_a6;
result = dns_rdata_tostruct(rdata, sp = &in_a6, NULL);
break;
}
case dns_rdatatype_a: {
switch (rdata->rdclass) {
case dns_rdataclass_hs: {
dns_rdata_hs_a_t hs_a;
static dns_rdata_hs_a_t hs_a;
result = dns_rdata_tostruct(rdata, sp = &hs_a, NULL);
break;
}
case dns_rdataclass_in: {
dns_rdata_in_a_t in_a;
static dns_rdata_in_a_t in_a;
result = dns_rdata_tostruct(rdata, sp = &in_a, NULL);
break;
}
@@ -78,12 +76,12 @@ viastruct(dns_rdata_t *rdata, isc_mem_t *mctx,
break;
}
case dns_rdatatype_aaaa: {
dns_rdata_in_aaaa_t in_aaaa;
static dns_rdata_in_aaaa_t in_aaaa;
result = dns_rdata_tostruct(rdata, sp = &in_aaaa, NULL);
break;
}
case dns_rdatatype_afsdb: {
dns_rdata_afsdb_t afsdb;
static dns_rdata_afsdb_t afsdb;
result = dns_rdata_tostruct(rdata, sp = &afsdb, NULL);
break;
}
@@ -94,7 +92,7 @@ viastruct(dns_rdata_t *rdata, isc_mem_t *mctx,
case dns_rdatatype_apl: {
switch (rdata->rdclass) {
case dns_rdataclass_in: {
dns_rdata_in_apl_t in_apl;
static dns_rdata_in_apl_t in_apl;
result = dns_rdata_tostruct(rdata, sp = &in_apl, NULL);
break;
}
@@ -105,202 +103,207 @@ viastruct(dns_rdata_t *rdata, isc_mem_t *mctx,
break;
}
case dns_rdatatype_cert: {
dns_rdata_cert_t cert;
static dns_rdata_cert_t cert;
result = dns_rdata_tostruct(rdata, sp = &cert, NULL);
break;
}
case dns_rdatatype_cname: {
dns_rdata_cname_t cname;
static dns_rdata_cname_t cname;
result = dns_rdata_tostruct(rdata, sp = &cname, NULL);
break;
}
case dns_rdatatype_dname: {
dns_rdata_dname_t dname;
static dns_rdata_dname_t dname;
result = dns_rdata_tostruct(rdata, sp = &dname, NULL);
break;
}
case dns_rdatatype_gpos: {
dns_rdata_gpos_t gpos;
static dns_rdata_gpos_t gpos;
result = dns_rdata_tostruct(rdata, sp = &gpos, NULL);
break;
}
case dns_rdatatype_hinfo: {
dns_rdata_hinfo_t hinfo;
static dns_rdata_hinfo_t hinfo;
result = dns_rdata_tostruct(rdata, sp = &hinfo, NULL);
break;
}
case dns_rdatatype_isdn: {
dns_rdata_isdn_t isdn;
static dns_rdata_isdn_t isdn;
result = dns_rdata_tostruct(rdata, sp = &isdn, NULL);
break;
}
case dns_rdatatype_key: {
dns_rdata_key_t key;
static dns_rdata_key_t key;
result = dns_rdata_tostruct(rdata, sp = &key, NULL);
break;
}
case dns_rdatatype_kx: {
dns_rdata_in_kx_t in_kx;
static dns_rdata_in_kx_t in_kx;
result = dns_rdata_tostruct(rdata, sp = &in_kx, NULL);
break;
}
case dns_rdatatype_loc: {
dns_rdata_loc_t loc;
static dns_rdata_loc_t loc;
result = dns_rdata_tostruct(rdata, sp = &loc, NULL);
break;
}
case dns_rdatatype_mb: {
dns_rdata_mb_t mb;
static dns_rdata_mb_t mb;
result = dns_rdata_tostruct(rdata, sp = &mb, NULL);
break;
}
case dns_rdatatype_md: {
dns_rdata_md_t md;
static dns_rdata_md_t md;
result = dns_rdata_tostruct(rdata, sp = &md, NULL);
break;
}
case dns_rdatatype_mf: {
dns_rdata_mf_t mf;
static dns_rdata_mf_t mf;
result = dns_rdata_tostruct(rdata, sp = &mf, NULL);
break;
}
case dns_rdatatype_mg: {
dns_rdata_mg_t mg;
static dns_rdata_mg_t mg;
result = dns_rdata_tostruct(rdata, sp = &mg, NULL);
break;
}
case dns_rdatatype_minfo: {
dns_rdata_minfo_t minfo;
static dns_rdata_minfo_t minfo;
result = dns_rdata_tostruct(rdata, sp = &minfo, NULL);
break;
}
case dns_rdatatype_mr: {
dns_rdata_mr_t mr;
static dns_rdata_mr_t mr;
result = dns_rdata_tostruct(rdata, sp = &mr, NULL);
break;
}
case dns_rdatatype_mx: {
dns_rdata_mx_t mx;
static dns_rdata_mx_t mx;
result = dns_rdata_tostruct(rdata, sp = &mx, NULL);
break;
}
case dns_rdatatype_naptr: {
dns_rdata_naptr_t naptr;
static dns_rdata_naptr_t naptr;
result = dns_rdata_tostruct(rdata, sp = &naptr, NULL);
break;
}
case dns_rdatatype_ns: {
dns_rdata_ns_t ns;
static dns_rdata_ns_t ns;
result = dns_rdata_tostruct(rdata, sp = &ns, NULL);
break;
}
case dns_rdatatype_nsap: {
dns_rdata_in_nsap_t in_nsap;
static dns_rdata_in_nsap_t in_nsap;
result = dns_rdata_tostruct(rdata, sp = &in_nsap, NULL);
break;
}
case dns_rdatatype_nsap_ptr: {
dns_rdata_in_nsap_ptr_t in_nsap_ptr;
static dns_rdata_in_nsap_ptr_t in_nsap_ptr;
result = dns_rdata_tostruct(rdata, sp = &in_nsap_ptr, NULL);
break;
}
case dns_rdatatype_null: {
dns_rdata_null_t null;
static dns_rdata_null_t null;
result = dns_rdata_tostruct(rdata, sp = &null, NULL);
break;
}
case dns_rdatatype_nxt: {
dns_rdata_nxt_t nxt;
static dns_rdata_nxt_t nxt;
result = dns_rdata_tostruct(rdata, sp = &nxt, NULL);
break;
}
case dns_rdatatype_opt: {
dns_rdata_opt_t opt;
static dns_rdata_opt_t opt;
result = dns_rdata_tostruct(rdata, sp = &opt, NULL);
break;
}
case dns_rdatatype_ptr: {
dns_rdata_ptr_t ptr;
static dns_rdata_ptr_t ptr;
result = dns_rdata_tostruct(rdata, sp = &ptr, NULL);
break;
}
case dns_rdatatype_px: {
dns_rdata_in_px_t in_px;
static dns_rdata_in_px_t in_px;
result = dns_rdata_tostruct(rdata, sp = &in_px, NULL);
break;
}
case dns_rdatatype_rp: {
dns_rdata_rp_t rp;
static dns_rdata_rp_t rp;
result = dns_rdata_tostruct(rdata, sp = &rp, NULL);
break;
}
case dns_rdatatype_rt: {
dns_rdata_rt_t rt;
static dns_rdata_rt_t rt;
result = dns_rdata_tostruct(rdata, sp = &rt, NULL);
break;
}
case dns_rdatatype_sig: {
dns_rdata_sig_t sig;
static dns_rdata_sig_t sig;
result = dns_rdata_tostruct(rdata, sp = &sig, NULL);
break;
}
case dns_rdatatype_soa: {
dns_rdata_soa_t soa;
static dns_rdata_soa_t soa;
result = dns_rdata_tostruct(rdata, sp = &soa, NULL);
break;
}
case dns_rdatatype_srv: {
dns_rdata_in_srv_t in_srv;
static dns_rdata_in_srv_t in_srv;
result = dns_rdata_tostruct(rdata, sp = &in_srv, NULL);
break;
}
case dns_rdatatype_tkey: {
dns_rdata_tkey_t tkey;
static dns_rdata_tkey_t tkey;
result = dns_rdata_tostruct(rdata, sp = &tkey, NULL);
break;
}
case dns_rdatatype_tsig: {
dns_rdata_any_tsig_t tsig;
static dns_rdata_any_tsig_t tsig;
result = dns_rdata_tostruct(rdata, sp = &tsig, NULL);
break;
}
case dns_rdatatype_txt: {
dns_rdata_txt_t txt;
static dns_rdata_txt_t txt;
result = dns_rdata_tostruct(rdata, sp = &txt, NULL);
break;
}
case dns_rdatatype_spf: {
dns_rdata_spf_t spf;
static dns_rdata_spf_t spf;
result = dns_rdata_tostruct(rdata, sp = &spf, NULL);
break;
}
case dns_rdatatype_unspec: {
dns_rdata_unspec_t unspec;
static dns_rdata_unspec_t unspec;
result = dns_rdata_tostruct(rdata, sp = &unspec, NULL);
break;
}
case dns_rdatatype_uri: {
dns_rdata_uri_t uri;
result = dns_rdata_tostruct(rdata, sp = &uri, NULL);
break;
}
case dns_rdatatype_wks: {
dns_rdata_in_wks_t in_wks;
static dns_rdata_in_wks_t in_wks;
result = dns_rdata_tostruct(rdata, sp = &in_wks, NULL);
break;
}
case dns_rdatatype_x25: {
dns_rdata_x25_t x25;
static dns_rdata_x25_t x25;
result = dns_rdata_tostruct(rdata, sp = &x25, NULL);
break;
}
case dns_rdatatype_nsec: {
dns_rdata_nsec_t nsec;
static dns_rdata_nsec_t nsec;
result = dns_rdata_tostruct(rdata, sp = &nsec, NULL);
break;
}
case dns_rdatatype_rrsig: {
dns_rdata_rrsig_t rrsig;
static dns_rdata_rrsig_t rrsig;
result = dns_rdata_tostruct(rdata, sp = &rrsig, NULL);
break;
}
case dns_rdatatype_dnskey: {
dns_rdata_dnskey_t dnskey;
static dns_rdata_dnskey_t dnskey;
result = dns_rdata_tostruct(rdata, sp = &dnskey, NULL);
break;
}
@@ -317,19 +320,19 @@ viastruct(dns_rdata_t *rdata, isc_mem_t *mctx,
switch (rdata->type) {
case dns_rdatatype_a6: {
dns_rdata_in_a6_t in_a6;
static dns_rdata_in_a6_t in_a6;
result = dns_rdata_tostruct(rdata, sp = &in_a6, mctx);
break;
}
case dns_rdatatype_a: {
switch (rdata->rdclass) {
case dns_rdataclass_hs: {
dns_rdata_hs_a_t hs_a;
static dns_rdata_hs_a_t hs_a;
result = dns_rdata_tostruct(rdata, sp = &hs_a, mctx);
break;
}
case dns_rdataclass_in: {
dns_rdata_in_a_t in_a;
static dns_rdata_in_a_t in_a;
result = dns_rdata_tostruct(rdata, sp = &in_a, mctx);
break;
}
@@ -340,12 +343,12 @@ viastruct(dns_rdata_t *rdata, isc_mem_t *mctx,
break;
}
case dns_rdatatype_aaaa: {
dns_rdata_in_aaaa_t in_aaaa;
static dns_rdata_in_aaaa_t in_aaaa;
result = dns_rdata_tostruct(rdata, sp = &in_aaaa, mctx);
break;
}
case dns_rdatatype_afsdb: {
dns_rdata_afsdb_t afsdb;
static dns_rdata_afsdb_t afsdb;
result = dns_rdata_tostruct(rdata, sp = &afsdb, mctx);
break;
}
@@ -356,7 +359,7 @@ viastruct(dns_rdata_t *rdata, isc_mem_t *mctx,
case dns_rdatatype_apl: {
switch (rdata->rdclass) {
case dns_rdataclass_in: {
dns_rdata_in_apl_t in_apl;
static dns_rdata_in_apl_t in_apl;
result = dns_rdata_tostruct(rdata, sp = &in_apl, mctx);
break;
}
@@ -367,202 +370,207 @@ viastruct(dns_rdata_t *rdata, isc_mem_t *mctx,
break;
}
case dns_rdatatype_cert: {
dns_rdata_cert_t cert;
static dns_rdata_cert_t cert;
result = dns_rdata_tostruct(rdata, sp = &cert, mctx);
break;
}
case dns_rdatatype_cname: {
dns_rdata_cname_t cname;
static dns_rdata_cname_t cname;
result = dns_rdata_tostruct(rdata, sp = &cname, mctx);
break;
}
case dns_rdatatype_dname: {
dns_rdata_dname_t dname;
static dns_rdata_dname_t dname;
result = dns_rdata_tostruct(rdata, sp = &dname, mctx);
break;
}
case dns_rdatatype_gpos: {
dns_rdata_gpos_t gpos;
static dns_rdata_gpos_t gpos;
result = dns_rdata_tostruct(rdata, sp = &gpos, mctx);
break;
}
case dns_rdatatype_hinfo: {
dns_rdata_hinfo_t hinfo;
static dns_rdata_hinfo_t hinfo;
result = dns_rdata_tostruct(rdata, sp = &hinfo, mctx);
break;
}
case dns_rdatatype_isdn: {
dns_rdata_isdn_t isdn;
static dns_rdata_isdn_t isdn;
result = dns_rdata_tostruct(rdata, sp = &isdn, mctx);
break;
}
case dns_rdatatype_key: {
dns_rdata_key_t key;
static dns_rdata_key_t key;
result = dns_rdata_tostruct(rdata, sp = &key, mctx);
break;
}
case dns_rdatatype_kx: {
dns_rdata_in_kx_t in_kx;
static dns_rdata_in_kx_t in_kx;
result = dns_rdata_tostruct(rdata, sp = &in_kx, mctx);
break;
}
case dns_rdatatype_loc: {
dns_rdata_loc_t loc;
static dns_rdata_loc_t loc;
result = dns_rdata_tostruct(rdata, sp = &loc, mctx);
break;
}
case dns_rdatatype_mb: {
dns_rdata_mb_t mb;
static dns_rdata_mb_t mb;
result = dns_rdata_tostruct(rdata, sp = &mb, mctx);
break;
}
case dns_rdatatype_md: {
dns_rdata_md_t md;
static dns_rdata_md_t md;
result = dns_rdata_tostruct(rdata, sp = &md, mctx);
break;
}
case dns_rdatatype_mf: {
dns_rdata_mf_t mf;
static dns_rdata_mf_t mf;
result = dns_rdata_tostruct(rdata, sp = &mf, mctx);
break;
}
case dns_rdatatype_mg: {
dns_rdata_mg_t mg;
static dns_rdata_mg_t mg;
result = dns_rdata_tostruct(rdata, sp = &mg, mctx);
break;
}
case dns_rdatatype_minfo: {
dns_rdata_minfo_t minfo;
static dns_rdata_minfo_t minfo;
result = dns_rdata_tostruct(rdata, sp = &minfo, mctx);
break;
}
case dns_rdatatype_mr: {
dns_rdata_mr_t mr;
static dns_rdata_mr_t mr;
result = dns_rdata_tostruct(rdata, sp = &mr, mctx);
break;
}
case dns_rdatatype_mx: {
dns_rdata_mx_t mx;
static dns_rdata_mx_t mx;
result = dns_rdata_tostruct(rdata, sp = &mx, mctx);
break;
}
case dns_rdatatype_naptr: {
dns_rdata_naptr_t naptr;
static dns_rdata_naptr_t naptr;
result = dns_rdata_tostruct(rdata, sp = &naptr, mctx);
break;
}
case dns_rdatatype_ns: {
dns_rdata_ns_t ns;
static dns_rdata_ns_t ns;
result = dns_rdata_tostruct(rdata, sp = &ns, mctx);
break;
}
case dns_rdatatype_nsap: {
dns_rdata_in_nsap_t in_nsap;
static dns_rdata_in_nsap_t in_nsap;
result = dns_rdata_tostruct(rdata, sp = &in_nsap, mctx);
break;
}
case dns_rdatatype_nsap_ptr: {
dns_rdata_in_nsap_ptr_t in_nsap_ptr;
static dns_rdata_in_nsap_ptr_t in_nsap_ptr;
result = dns_rdata_tostruct(rdata, sp = &in_nsap_ptr, mctx);
break;
}
case dns_rdatatype_null: {
dns_rdata_null_t null;
static dns_rdata_null_t null;
result = dns_rdata_tostruct(rdata, sp = &null, mctx);
break;
}
case dns_rdatatype_nxt: {
dns_rdata_nxt_t nxt;
static dns_rdata_nxt_t nxt;
result = dns_rdata_tostruct(rdata, sp = &nxt, mctx);
break;
}
case dns_rdatatype_opt: {
dns_rdata_opt_t opt;
static dns_rdata_opt_t opt;
result = dns_rdata_tostruct(rdata, sp = &opt, mctx);
break;
}
case dns_rdatatype_ptr: {
dns_rdata_ptr_t ptr;
static dns_rdata_ptr_t ptr;
result = dns_rdata_tostruct(rdata, sp = &ptr, mctx);
break;
}
case dns_rdatatype_px: {
dns_rdata_in_px_t in_px;
static dns_rdata_in_px_t in_px;
result = dns_rdata_tostruct(rdata, sp = &in_px, mctx);
break;
}
case dns_rdatatype_rp: {
dns_rdata_rp_t rp;
static dns_rdata_rp_t rp;
result = dns_rdata_tostruct(rdata, sp = &rp, mctx);
break;
}
case dns_rdatatype_rt: {
dns_rdata_rt_t rt;
static dns_rdata_rt_t rt;
result = dns_rdata_tostruct(rdata, sp = &rt, mctx);
break;
}
case dns_rdatatype_sig: {
dns_rdata_sig_t sig;
static dns_rdata_sig_t sig;
result = dns_rdata_tostruct(rdata, sp = &sig, mctx);
break;
}
case dns_rdatatype_soa: {
dns_rdata_soa_t soa;
static dns_rdata_soa_t soa;
result = dns_rdata_tostruct(rdata, sp = &soa, mctx);
break;
}
case dns_rdatatype_srv: {
dns_rdata_in_srv_t in_srv;
static dns_rdata_in_srv_t in_srv;
result = dns_rdata_tostruct(rdata, sp = &in_srv, mctx);
break;
}
case dns_rdatatype_tkey: {
dns_rdata_tkey_t tkey;
static dns_rdata_tkey_t tkey;
result = dns_rdata_tostruct(rdata, sp = &tkey, mctx);
break;
}
case dns_rdatatype_tsig: {
dns_rdata_any_tsig_t tsig;
static dns_rdata_any_tsig_t tsig;
result = dns_rdata_tostruct(rdata, sp = &tsig, mctx);
break;
}
case dns_rdatatype_txt: {
dns_rdata_txt_t txt;
static dns_rdata_txt_t txt;
result = dns_rdata_tostruct(rdata, sp = &txt, mctx);
break;
}
case dns_rdatatype_spf: {
dns_rdata_spf_t spf;
static dns_rdata_spf_t spf;
result = dns_rdata_tostruct(rdata, sp = &spf, mctx);
break;
}
case dns_rdatatype_unspec: {
dns_rdata_unspec_t unspec;
static dns_rdata_unspec_t unspec;
result = dns_rdata_tostruct(rdata, sp = &unspec, mctx);
break;
}
case dns_rdatatype_uri: {
dns_rdata_uri_t uri;
result = dns_rdata_tostruct(rdata, sp = &uri, mctx);
break;
}
case dns_rdatatype_wks: {
dns_rdata_in_wks_t in_wks;
static dns_rdata_in_wks_t in_wks;
result = dns_rdata_tostruct(rdata, sp = &in_wks, mctx);
break;
}
case dns_rdatatype_x25: {
dns_rdata_x25_t x25;
static dns_rdata_x25_t x25;
result = dns_rdata_tostruct(rdata, sp = &x25, mctx);
break;
}
case dns_rdatatype_nsec: {
dns_rdata_nsec_t nsec;
static dns_rdata_nsec_t nsec;
result = dns_rdata_tostruct(rdata, sp = &nsec, mctx);
break;
}
case dns_rdatatype_rrsig: {
dns_rdata_rrsig_t rrsig;
static dns_rdata_rrsig_t rrsig;
result = dns_rdata_tostruct(rdata, sp = &rrsig, mctx);
break;
}
case dns_rdatatype_dnskey: {
dns_rdata_dnskey_t dnskey;
static dns_rdata_dnskey_t dnskey;
result = dns_rdata_tostruct(rdata, sp = &dnskey, mctx);
break;
}
@@ -833,6 +841,11 @@ viastruct(dns_rdata_t *rdata, isc_mem_t *mctx,
result = dns_rdata_fromstruct(rdata2, rdc, rdt, &unspec, b);
break;
}
case dns_rdatatype_uri: {
dns_rdata_uri_t uri;
result = dns_rdata_fromstruct(rdata2, rdc, rdt, &uri, b);
break;
}
case dns_rdatatype_wks: {
dns_rdata_in_wks_t in_wks;
result = dns_rdata_fromstruct(rdata2, rdc, rdt, &in_wks, b);
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2000, 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
+7 -3
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004, 2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004, 2007, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -174,9 +174,13 @@ main(int argc, char *argv[]) {
RUNTIME_CHECK(isc_app_start() == ISC_R_SUCCESS);
if (argc > 1)
if (argc > 1) {
workers = atoi(argv[1]);
else
if (workers < 1)
workers = 1;
if (workers > 8192)
workers = 8192;
} else
workers = 2;
printf("%d workers\n", workers);
+1 -1
View File
@@ -262,7 +262,7 @@ main(int argc, char *argv[]) {
dns_fixedname_init(&fname);
name = dns_fixedname_name(&fname);
isc_buffer_init(&b, "child.example.", strlen("child.example."));
isc_buffer_constinit(&b, "child.example.", strlen("child.example."));
isc_buffer_add(&b, strlen("child.example."));
result = dns_name_fromtext(name, &b, dns_rootname, ISC_FALSE, NULL);
CHECK("dns_name_fromtext", result);
+10 -5
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004, 2007, 2008, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -205,8 +205,9 @@ my_listen(isc_task_t *task, isc_event_t *event) {
/*
* Queue another listen on this socket.
*/
isc_socket_accept(event->ev_sender, task, my_listen,
event->ev_arg);
RUNTIME_CHECK(isc_socket_accept(event->ev_sender, task,
my_listen, event->ev_arg)
== ISC_R_SUCCESS);
region.base = isc_mem_get(mctx, 20);
region.length = 20;
@@ -262,9 +263,13 @@ main(int argc, char *argv[]) {
isc_result_t result;
int pf;
if (argc > 1)
if (argc > 1) {
workers = atoi(argv[1]);
else
if (workers < 1)
workers = 1;
if (workers > 8192)
workers = 8192;
} else
workers = 2;
printf("%d workers\n", workers);

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