Compare commits
432
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1ef1d4fdc8 | ||
|
|
9f94a9ad39 | ||
|
|
8e71b7cd73 | ||
|
|
cc5432cea5 | ||
|
|
cfa35420ee | ||
|
|
54e010d51e | ||
|
|
4c753f5880 | ||
|
|
bd34375e9b | ||
|
|
7d29f7e94b | ||
|
|
05a91e4e4c | ||
|
|
20a6ab6745 | ||
|
|
0be9ad7e17 | ||
|
|
0d784de16a | ||
|
|
5d7d6881a1 | ||
|
|
3c028ed07d | ||
|
|
971d19f05c | ||
|
|
749df056be | ||
|
|
9425d6ba7c | ||
|
|
e4147c2d6a | ||
|
|
a11e23b5ed | ||
|
|
b20ff30a79 | ||
|
|
018a60549b | ||
|
|
843d389661 | ||
|
|
c8efcca408 | ||
|
|
c5a09493c3 | ||
|
|
996f5154f0 | ||
|
|
11825c7400 | ||
|
|
ab1b02d274 | ||
|
|
88aef07f58 | ||
|
|
0c559199bf | ||
|
|
b9246ce773 | ||
|
|
474b10a133 | ||
|
|
731ad28be2 | ||
|
|
56e440f65f | ||
|
|
c032c54dda | ||
|
|
0217cc8bb2 | ||
|
|
1cb250c37c | ||
|
|
95cde3608a | ||
|
|
3ffb13716a | ||
|
|
c2c1e2531b | ||
|
|
01d41d5b04 | ||
|
|
14388a4ad6 | ||
|
|
f7172cf23f | ||
|
|
b98a92071d | ||
|
|
05f9deba0b | ||
|
|
034450ba02 | ||
|
|
aa7964dd4b | ||
|
|
8c8ad74abe | ||
|
|
146c16c06e | ||
|
|
bdff3aeb14 | ||
|
|
ccfcf3c023 | ||
|
|
d989d20fe5 | ||
|
|
a324031a82 | ||
|
|
3862043879 | ||
|
|
b92161ee57 | ||
|
|
643c8c27ff | ||
|
|
890264843d | ||
|
|
9f4c778f69 | ||
|
|
ca1049b2f3 | ||
|
|
2bbff06d36 | ||
|
|
aeea1faf01 | ||
|
|
01de79b332 | ||
|
|
76239c6fa7 | ||
|
|
2a50992ab3 | ||
|
|
d7733df695 | ||
|
|
72326f7701 | ||
|
|
b3b3f9064c | ||
|
|
908b2f4b3b | ||
|
|
ceeab84d6c | ||
|
|
4801f40e4d | ||
|
|
dbf753b52d | ||
|
|
7bb9a97904 | ||
|
|
7222c9fc76 | ||
|
|
30cd931a0d | ||
|
|
2c519531a7 | ||
|
|
e005fb948d | ||
|
|
3dfb7c17eb | ||
|
|
59d88ee192 | ||
|
|
23dfa27a84 | ||
|
|
f0721de624 | ||
|
|
42cf18d239 | ||
|
|
1ac4c3e4e5 | ||
|
|
fe1ccafc34 | ||
|
|
0dcee1cad3 | ||
|
|
fe51c34df3 | ||
|
|
1960de5530 | ||
|
|
344d05063f | ||
|
|
451b7309ca | ||
|
|
462766cd76 | ||
|
|
fb78f82ba1 | ||
|
|
cdf18a5009 | ||
|
|
7f2d41d4c4 | ||
|
|
0855a8a6cc | ||
|
|
f606b17dfb | ||
|
|
b88b508b22 | ||
|
|
1f07c69f25 | ||
|
|
c12e06755f | ||
|
|
00bc29640b | ||
|
|
244d1c30e2 | ||
|
|
a5cf6bd12a | ||
|
|
ce66752adc | ||
|
|
549a6c6bc8 | ||
|
|
f0f5b5f045 | ||
|
|
c344e1d768 | ||
|
|
055e5be9fd | ||
|
|
3c25e5fa02 | ||
|
|
edc7a18d84 | ||
|
|
f5d8f07900 | ||
|
|
b2d90da0c2 | ||
|
|
af005cdbcf | ||
|
|
b24c2e11d8 | ||
|
|
517d990bd4 | ||
|
|
32fe6f7682 | ||
|
|
e0ff77f9d3 | ||
|
|
07341693e1 | ||
|
|
78f2b9ca01 | ||
|
|
e7429b124b | ||
|
|
e1a69e5d1f | ||
|
|
3b14d54fd7 | ||
|
|
caaec1ef6d | ||
|
|
2a435708e4 | ||
|
|
e6802badc0 | ||
|
|
d2c8286163 | ||
|
|
53bade5ece | ||
|
|
bc276f6c05 | ||
|
|
7e3c96c867 | ||
|
|
278c72fef6 | ||
|
|
f7ac41757a | ||
|
|
cba162e70e | ||
|
|
992a2bafec | ||
|
|
f83ebd34b9 | ||
|
|
fb00f18005 | ||
|
|
6336ef1ef3 | ||
|
|
c6b430745b | ||
|
|
54823ea037 | ||
|
|
dfc2573f1c | ||
|
|
448eb98797 | ||
|
|
02063cbae2 | ||
|
|
8e3c16175a | ||
|
|
f199a5a9ae | ||
|
|
522e5dd9bc | ||
|
|
b5079a1bda | ||
|
|
fd2d8465a7 | ||
|
|
0d5eed53e8 | ||
|
|
355c533936 | ||
|
|
b75627eacf | ||
|
|
033be0db8e | ||
|
|
f181b30918 | ||
|
|
2e83674170 | ||
|
|
801cef9684 | ||
|
|
99d02c6531 | ||
|
|
a46e90b2b7 | ||
|
|
a0720c9e56 | ||
|
|
0ec66f5e51 | ||
|
|
acdecd4636 | ||
|
|
99af4e7d52 | ||
|
|
0b66d4a1c7 | ||
|
|
ca6faad2b6 | ||
|
|
7e26e5cae7 | ||
|
|
67eea245f5 | ||
|
|
a7eb3b3b76 | ||
|
|
4528297486 | ||
|
|
8f8ce953ce | ||
|
|
fc38731c85 | ||
|
|
1eb1eaac94 | ||
|
|
b492700759 | ||
|
|
54275e8f5c | ||
|
|
c7e848ce54 | ||
|
|
1cdb19eaae | ||
|
|
5bc9ede092 | ||
|
|
e632696a6d | ||
|
|
500248b6c1 | ||
|
|
97d4a1eaf5 | ||
|
|
b5167607ef | ||
|
|
6bd6bd6d62 | ||
|
|
78ad353491 | ||
|
|
4745daafe0 | ||
|
|
c23eef5ff1 | ||
|
|
b513bbe9ff | ||
|
|
4955c45c94 | ||
|
|
64bc122d11 | ||
|
|
34a4d241c6 | ||
|
|
75a291e541 | ||
|
|
dc3951c800 | ||
|
|
9520cf8559 | ||
|
|
0f8b0dc5d4 | ||
|
|
eaddb0c686 | ||
|
|
b234797536 | ||
|
|
2b803b3463 | ||
|
|
4a3c1fb45e | ||
|
|
7d375efaea | ||
|
|
898d7e99a9 | ||
|
|
a8fa4a9e42 | ||
|
|
b1b9257c8f | ||
|
|
17d971a405 | ||
|
|
8aff92c150 | ||
|
|
1af3e7d7d5 | ||
|
|
372fbc06e7 | ||
|
|
e247336199 | ||
|
|
865115f30c | ||
|
|
bbdd8e17d7 | ||
|
|
c4ca99c0d1 | ||
|
|
5c017fd3f6 | ||
|
|
af7fd89305 | ||
|
|
f0981d9682 | ||
|
|
ee49362e33 | ||
|
|
6b74dcca71 | ||
|
|
4278230b33 | ||
|
|
4ec06278cc | ||
|
|
c8d294470d | ||
|
|
3034da1ec6 | ||
|
|
e08b3d3a48 | ||
|
|
f9a9ff57ce | ||
|
|
3fb7b9827a | ||
|
|
f5ee6f7292 | ||
|
|
89ff72bea0 | ||
|
|
ea8e149f4d | ||
|
|
b060852a7c | ||
|
|
3abc7bf264 | ||
|
|
883a9485e9 | ||
|
|
801dfe8f5d | ||
|
|
f5079bb877 | ||
|
|
b9e9361c7b | ||
|
|
29b7efdd9f | ||
|
|
0e4fba2ced | ||
|
|
2a70eae04f | ||
|
|
e7a93321f0 | ||
|
|
3548061d03 | ||
|
|
8876403b82 | ||
|
|
1be4341ac8 | ||
|
|
fca7826d65 | ||
|
|
43306fa7e2 | ||
|
|
8cfcad3bb4 | ||
|
|
0ee2dbaaed | ||
|
|
98696f075c | ||
|
|
f52e8fb7c2 | ||
|
|
730e611377 | ||
|
|
b54a2fb1c0 | ||
|
|
2f7ff2980f | ||
|
|
a795dfdea3 | ||
|
|
8bb97d6e04 | ||
|
|
ad2788b6d9 | ||
|
|
41f3423e87 | ||
|
|
20d2d095a9 | ||
|
|
3f798b3576 | ||
|
|
69a185167d | ||
|
|
00beaad868 | ||
|
|
618d1146f0 | ||
|
|
20c50b9238 | ||
|
|
f1a574b729 | ||
|
|
37b196ea87 | ||
|
|
e099ccbde8 | ||
|
|
f7d62717ca | ||
|
|
4ff2d36adc | ||
|
|
313e73354d | ||
|
|
74651f35ef | ||
|
|
faba523a40 | ||
|
|
ae09500989 | ||
|
|
79a2e86827 | ||
|
|
b252549e5a | ||
|
|
baef0ca988 | ||
|
|
5d2b48f270 | ||
|
|
02ce048c91 | ||
|
|
87083c7e9b | ||
|
|
6757dc6488 | ||
|
|
ecf6dcc5c6 | ||
|
|
cc82b5aa3c | ||
|
|
da4e8d88d4 | ||
|
|
2fac9b0be6 | ||
|
|
49c0a94f78 | ||
|
|
ff8f2a584d | ||
|
|
ec771bbdc8 | ||
|
|
b3fc795f4d | ||
|
|
0e9bcf0318 | ||
|
|
af1937c35a | ||
|
|
4fcc550877 | ||
|
|
31d0b7e909 | ||
|
|
c34680cf3b | ||
|
|
5fdca0da2f | ||
|
|
a97ca00ce8 | ||
|
|
b675979c68 | ||
|
|
a3c2b8831e | ||
|
|
46d7d8717a | ||
|
|
f8143baf1b | ||
|
|
d36b7f86fb | ||
|
|
ffac31097d | ||
|
|
b847078b1e | ||
|
|
a2c693ab3b | ||
|
|
bc89b287c9 | ||
|
|
7bc5e6a749 | ||
|
|
7817caa3c7 | ||
|
|
a64503c736 | ||
|
|
d26f90241d | ||
|
|
3ae586b857 | ||
|
|
a96d7083bc | ||
|
|
13c14bc874 | ||
|
|
8d1b3f5e6a | ||
|
|
6e08af82ed | ||
|
|
a7bc00e413 | ||
|
|
5399337474 | ||
|
|
f37b6e1434 | ||
|
|
cbd46e23cb | ||
|
|
63440f61ae | ||
|
|
47d13972e9 | ||
|
|
7fa465be5f | ||
|
|
52043a7204 | ||
|
|
7dd2d7f329 | ||
|
|
8b440753b6 | ||
|
|
b575c4ec42 | ||
|
|
99178b6329 | ||
|
|
ca12949aeb | ||
|
|
c6d2beca68 | ||
|
|
83d005de61 | ||
|
|
8d9433bf4f | ||
|
|
6b83f7aa82 | ||
|
|
3fda67b596 | ||
|
|
dc2add38f6 | ||
|
|
7f4dfa539c | ||
|
|
ebdeea564c | ||
|
|
0405014c66 | ||
|
|
a2a90a71a3 | ||
|
|
129c4414cb | ||
|
|
4d6800942c | ||
|
|
8a4ce20172 | ||
|
|
63d0c6a3fc | ||
|
|
54c4adef80 | ||
|
|
38a9d9ba76 | ||
|
|
a2ca0077d5 | ||
|
|
23d77c8747 | ||
|
|
af034ef188 | ||
|
|
fdd8838bf9 | ||
|
|
88fd438a0f | ||
|
|
630d1a9ba0 | ||
|
|
19b7c0494e | ||
|
|
9b08b03769 | ||
|
|
80788e72d0 | ||
|
|
f10a1c0acf | ||
|
|
5e9585c8ad | ||
|
|
16bbe61f14 | ||
|
|
cf8f4241e7 | ||
|
|
bcc21e99e1 | ||
|
|
8b8c2990d6 | ||
|
|
05fce3ecc5 | ||
|
|
30e96c7709 | ||
|
|
1f33a98962 | ||
|
|
614d838acf | ||
|
|
3d2a6c9949 | ||
|
|
2836a56729 | ||
|
|
73819362d8 | ||
|
|
ed9fea3a6e | ||
|
|
a9452918d5 | ||
|
|
ae51a676c9 | ||
|
|
fa22351a7c | ||
|
|
6d1f45ed81 | ||
|
|
d9ee7a6345 | ||
|
|
69c4c987f6 | ||
|
|
5ce167be2e | ||
|
|
8b138db9eb | ||
|
|
f96133826e | ||
|
|
1883d11ca2 | ||
|
|
c189636ca9 | ||
|
|
0c061ce614 | ||
|
|
2fca8cbdff | ||
|
|
4b48e307e0 | ||
|
|
8be7acc624 | ||
|
|
a35b95acb1 | ||
|
|
7befb67af4 | ||
|
|
099a9efd82 | ||
|
|
21401216aa | ||
|
|
0ce212b9f5 | ||
|
|
21f708c88c | ||
|
|
47f617f8b2 | ||
|
|
639534d5d6 | ||
|
|
3a4ea455ed | ||
|
|
02d3f1e855 | ||
|
|
cd37694da8 | ||
|
|
67faaa41c9 | ||
|
|
a922385850 | ||
|
|
9fecd013fe | ||
|
|
10e49fc83b | ||
|
|
bcdf3ec450 | ||
|
|
a0e66ef6dd | ||
|
|
79112cec7d | ||
|
|
053b51c4db | ||
|
|
9e6b394410 | ||
|
|
eed2f6cef0 | ||
|
|
a280a7871d | ||
|
|
b415606012 | ||
|
|
0b27aa0712 | ||
|
|
1e10ef06ce | ||
|
|
7258b852cf | ||
|
|
4674127443 | ||
|
|
7bba3a7c44 | ||
|
|
3483e91d8c | ||
|
|
c9ee9718ae | ||
|
|
05612f43a9 | ||
|
|
0645f8f1ce | ||
|
|
7770e0b069 | ||
|
|
d2ff6f0f07 | ||
|
|
af5fb26180 | ||
|
|
ccb5678066 | ||
|
|
e55ecaf8d8 | ||
|
|
fa0caa1f85 | ||
|
|
903662d5c3 | ||
|
|
015c017dfa | ||
|
|
9bec7facfb | ||
|
|
f5d429e7c3 | ||
|
|
f933be6d45 | ||
|
|
9f61f6b46b | ||
|
|
be5a0eaa7a | ||
|
|
d11ada1376 | ||
|
|
9597687aba | ||
|
|
05a0d21490 | ||
|
|
dcc059e2c9 | ||
|
|
9826bebc85 | ||
|
|
2d7f89b9c7 | ||
|
|
ec91dfaf80 | ||
|
|
66ff891bf1 | ||
|
|
36dccc165e | ||
|
|
9448aacadb | ||
|
|
5637645847 | ||
|
|
376b1e8fec | ||
|
|
6b2e5cd28c | ||
|
|
79c2400d91 | ||
|
|
d40f4c9885 | ||
|
|
68a2932f75 | ||
|
|
13508261e0 | ||
|
|
bb61861315 | ||
|
|
91e4700bcc | ||
|
|
ab6f49d969 | ||
|
|
eb733e20ae | ||
|
|
fe06778be7 |
+9
-141
@@ -3,180 +3,105 @@ variables:
|
||||
LC_ALL: C
|
||||
DOCKER_DRIVER: overlay2
|
||||
CI_REGISTRY_IMAGE: oerdnj/bind9
|
||||
CCACHE_DIR: "/ccache"
|
||||
|
||||
stages:
|
||||
- precheck
|
||||
- build
|
||||
- test
|
||||
|
||||
.centos-centos6-amd64: ¢os_centos6_amd64_image
|
||||
image: "$CI_REGISTRY_IMAGE:centos-centos6-amd64"
|
||||
tags:
|
||||
- linux
|
||||
- docker
|
||||
- amd64
|
||||
|
||||
.centos-centos7-amd64: ¢os_centos7_amd64_image
|
||||
image: "$CI_REGISTRY_IMAGE:centos-centos7-amd64"
|
||||
tags:
|
||||
- linux
|
||||
- docker
|
||||
- amd64
|
||||
|
||||
.debian-jessie-amd64: &debian_jessie_amd64_image
|
||||
image: "$CI_REGISTRY_IMAGE:debian-jessie-amd64"
|
||||
tags:
|
||||
- linux
|
||||
- docker
|
||||
- amd64
|
||||
|
||||
.debian-jessie-i386: &debian_jessie_i386_image
|
||||
image: "$CI_REGISTRY_IMAGE:debian-jessie-i386"
|
||||
tags:
|
||||
- linux
|
||||
- docker
|
||||
- i386
|
||||
|
||||
.debian-stretch-amd64: &debian_stretch_amd64_image
|
||||
image: "$CI_REGISTRY_IMAGE:debian-stretch-amd64"
|
||||
tags:
|
||||
- linux
|
||||
- docker
|
||||
- amd64
|
||||
|
||||
.debian-stretch-i386:: &debian_stretch_i386_image
|
||||
image: "$CI_REGISTRY_IMAGE:debian-stretch-i386"
|
||||
tags:
|
||||
- linux
|
||||
- docker
|
||||
- i386
|
||||
|
||||
.debian-buster-amd64: &debian_buster_amd64_image
|
||||
image: "$CI_REGISTRY_IMAGE:debian-buster-amd64"
|
||||
tags:
|
||||
- linux
|
||||
- docker
|
||||
- amd64
|
||||
|
||||
.debian-buster-i386:: &debian_buster_i386_image
|
||||
image: "$CI_REGISTRY_IMAGE:debian-buster-i386"
|
||||
tags:
|
||||
- linux
|
||||
- docker
|
||||
- i386
|
||||
|
||||
.debian-sid-amd64: &debian_sid_amd64_image
|
||||
image: "$CI_REGISTRY_IMAGE:debian-sid-amd64"
|
||||
tags:
|
||||
- linux
|
||||
- docker
|
||||
- amd64
|
||||
|
||||
.debian-sid-i386: &debian_sid_i386_image
|
||||
image: "$CI_REGISTRY_IMAGE:debian-sid-i386"
|
||||
tags:
|
||||
- linux
|
||||
- docker
|
||||
- i386
|
||||
|
||||
.ubuntu-trusty-amd64: &ubuntu_trusty_amd64_image
|
||||
image: "$CI_REGISTRY_IMAGE:ubuntu-trusty-amd64"
|
||||
tags:
|
||||
- linux
|
||||
- docker
|
||||
- amd64
|
||||
|
||||
.ubuntu-trusty-i386: &ubuntu_trusty_i386_image
|
||||
image: "$CI_REGISTRY_IMAGE:ubuntu-trusty-i386"
|
||||
tags:
|
||||
- linux
|
||||
- docker
|
||||
- i386
|
||||
|
||||
.ubuntu-xenial-amd64: &ubuntu_xenial_amd64_image
|
||||
image: "$CI_REGISTRY_IMAGE:ubuntu-xenial-amd64"
|
||||
tags:
|
||||
- linux
|
||||
- docker
|
||||
- amd64
|
||||
|
||||
.ubuntu-xenial-i386: &ubuntu_xenial_i386_image
|
||||
image: "$CI_REGISTRY_IMAGE:ubuntu-xenial-i386"
|
||||
tags:
|
||||
- linux
|
||||
- docker
|
||||
- i386
|
||||
|
||||
.build: &build_job
|
||||
stage: build
|
||||
before_script:
|
||||
- test -w "${CCACHE_DIR}" && export PATH="/usr/lib/ccache:${PATH}"
|
||||
- autoreconf -fi
|
||||
- ./autogen.sh
|
||||
script:
|
||||
- ./configure --enable-developer --with-libtool --disable-static --with-atf=/usr --with-libidn2 --prefix=$HOME/.local --without-make-clean "${EXTRA_CONFIGURE}" || cat config.log
|
||||
- make -j${PARALLEL_JOBS_BUILD:-1} -k all V=1
|
||||
- ./configure --with-libtool --disable-static
|
||||
- make -j6 -k all V=1
|
||||
artifacts:
|
||||
expire_in: '1 hour'
|
||||
untracked: true
|
||||
|
||||
.install_test: &install_test_job
|
||||
.test: &test_job
|
||||
stage: test
|
||||
before_script:
|
||||
- mkdir $HOME/.local
|
||||
script:
|
||||
- make install
|
||||
|
||||
.system_test: &system_test_job
|
||||
stage: test
|
||||
before_script:
|
||||
- rm -rf .ccache
|
||||
- bash -x bin/tests/system/ifconfig.sh up
|
||||
script:
|
||||
- ( cd bin/tests && make -j${TEST_PARALLEL_JOBS:-1} -k test V=1 )
|
||||
- test -s bin/tests/system/systests.output
|
||||
- make -j8 -k check V=1
|
||||
artifacts:
|
||||
untracked: true
|
||||
expire_in: '1 week'
|
||||
when: on_failure
|
||||
|
||||
.unit_test: &unit_test_job
|
||||
stage: test
|
||||
before_script:
|
||||
- export KYUA_RESULT="$CI_PROJECT_DIR/kyua.results"
|
||||
script:
|
||||
- make unit
|
||||
after_script:
|
||||
- kyua report-html --force --results-file kyua.results --results-filter "" --output kyua_html
|
||||
artifacts:
|
||||
paths:
|
||||
- atf.out
|
||||
- kyua.log
|
||||
- kyua.results
|
||||
- kyua_html/
|
||||
expire_in: '1 week'
|
||||
when: on_failure
|
||||
|
||||
precheck:debian:sid:amd64:
|
||||
<<: *debian_sid_amd64_image
|
||||
stage: precheck
|
||||
script:
|
||||
- sh util/checklibs.sh > checklibs.out
|
||||
- perl util/check-changes CHANGES
|
||||
- perl -w util/merge_copyrights
|
||||
- diff -urNap util/copyrights util/newcopyrights
|
||||
- rm util/newcopyrights
|
||||
- perl -w util/update_copyrights < util/copyrights
|
||||
- if test "$(git status --porcelain | grep -Ev '\?\?' | wc -l)" -gt "0"; then git status --short; exit 1; fi
|
||||
- xmllint --noout --nonet `git ls-files '*.xml' '*.docbook'`
|
||||
- xmllint --noout --nonet --html `git ls-files '*.html'`
|
||||
artifacts:
|
||||
paths:
|
||||
- util/newcopyrights
|
||||
- checklibs.out
|
||||
expire_in: '1 week'
|
||||
when: on_failure
|
||||
|
||||
#build:debian:jessie:amd64:
|
||||
# <<: *debian_jessie_amd64_image
|
||||
# <<: *build_job
|
||||
@@ -201,21 +126,6 @@ precheck:debian:sid:amd64:
|
||||
# <<: *ubuntu_xenial_i386_image
|
||||
# <<: *build_job
|
||||
|
||||
build:centos:centos6:amd64:
|
||||
variables:
|
||||
CC: gcc
|
||||
CFLAGS: "-Wall -Wextra -O2 -g"
|
||||
EXTRA_CONFIGURE: "--disable-warn-error"
|
||||
<<: *centos_centos6_amd64_image
|
||||
<<: *build_job
|
||||
|
||||
build:centos:centos7:amd64:
|
||||
variables:
|
||||
CC: gcc
|
||||
CFLAGS: "-Wall -Wextra -O2 -g"
|
||||
<<: *centos_centos7_amd64_image
|
||||
<<: *build_job
|
||||
|
||||
build:debian:sid:amd64:
|
||||
<<: *debian_sid_amd64_image
|
||||
<<: *build_job
|
||||
@@ -224,56 +134,14 @@ build:debian:sid:i386:
|
||||
<<: *debian_sid_i386_image
|
||||
<<: *build_job
|
||||
|
||||
unittest:centos:centos6:amd64:
|
||||
<<: *centos_centos6_amd64_image
|
||||
<<: *unit_test_job
|
||||
dependencies:
|
||||
- build:centos:centos6:amd64
|
||||
|
||||
unittest:centos:centos7:amd64:
|
||||
<<: *centos_centos7_amd64_image
|
||||
<<: *unit_test_job
|
||||
dependencies:
|
||||
- build:centos:centos7:amd64
|
||||
|
||||
unittest:debian:sid:amd64:
|
||||
test:debian:sid:amd64:
|
||||
<<: *debian_sid_amd64_image
|
||||
<<: *unit_test_job
|
||||
<<: *test_job
|
||||
dependencies:
|
||||
- build:debian:sid:amd64
|
||||
|
||||
unittest:debian:sid:i386:
|
||||
test:debian:sid:i386:
|
||||
<<: *debian_sid_i386_image
|
||||
<<: *unit_test_job
|
||||
<<: *test_job
|
||||
dependencies:
|
||||
- build:debian:sid:i386
|
||||
|
||||
systemtest:centos:centos6:amd64:
|
||||
<<: *centos_centos6_amd64_image
|
||||
<<: *system_test_job
|
||||
dependencies:
|
||||
- build:centos:centos6:amd64
|
||||
|
||||
systemtest:centos:centos7:amd64:
|
||||
<<: *centos_centos7_amd64_image
|
||||
<<: *system_test_job
|
||||
dependencies:
|
||||
- build:centos:centos7:amd64
|
||||
|
||||
systemtest:debian:sid:amd64:
|
||||
<<: *debian_sid_amd64_image
|
||||
<<: *system_test_job
|
||||
dependencies:
|
||||
- build:debian:sid:amd64
|
||||
|
||||
systemtest:debian:sid:i386:
|
||||
<<: *debian_sid_i386_image
|
||||
<<: *system_test_job
|
||||
dependencies:
|
||||
- build:debian:sid:i386
|
||||
|
||||
install:debian:sid:amd64:
|
||||
<<: *debian_sid_amd64_image
|
||||
<<: *install_test_job
|
||||
dependencies:
|
||||
- build:debian:sid:amd64
|
||||
|
||||
@@ -1,318 +1,16 @@
|
||||
--- 9.12.3 released ---
|
||||
4901. [func] "dig +nssearch" now lists the name servers
|
||||
for a domain that time out, as well as the servers
|
||||
that respond. [GL #64]
|
||||
|
||||
--- 9.12.3rc1 released ---
|
||||
|
||||
5038. [bug] Chaosnet addresses were compared incorrectly.
|
||||
[GL #562]
|
||||
|
||||
5035. [test] Fixed errors that prevented the DNSRPS subtests
|
||||
from running in the rpz and rpzrecurse system
|
||||
tests. [GL #503]
|
||||
|
||||
5034. [bug] A race between threads could prevent zone maintenance
|
||||
scheduled immediately after zone load from being
|
||||
performed. [GL #542]
|
||||
|
||||
5033. [bug] When adding NTAs to multiple views using "rndc nta",
|
||||
the text returned via rndc was incorrectly terminated
|
||||
after the first line, making it look as if only one
|
||||
NTA had been added. Also, it was not possible to
|
||||
differentiate between views with the same name but
|
||||
different classes; this has been corrected with the
|
||||
addition of a "-class" option. [GL #105]
|
||||
|
||||
5032. [func] Add krb5-selfsub and ms-selfsub update policy rules.
|
||||
[GL #511]
|
||||
|
||||
5030. [bug] Align CMSG buffers to a 64-bit boundary, fixes crash
|
||||
on architectures with strict alignment. [GL #521]
|
||||
|
||||
5028. [bug] Spread the initial RRSIG expiration times over the
|
||||
entire working sig-validity-interval when signing a
|
||||
zone in named to even out re-signing and transfer
|
||||
loads. [GL #418]
|
||||
|
||||
5026. [bug] rndc reconfig should not touch already loaded zones.
|
||||
[GL #276]
|
||||
|
||||
5022. [doc] Update ms-self, ms-subdomain, krb5-self, and
|
||||
krb5-subdomain documentation. [GL !708]
|
||||
|
||||
5021. [bug] dig returned a non-zero exit code when it received a
|
||||
reply over TCP after a retry. [GL #487]
|
||||
|
||||
5019. [cleanup] A message is now logged when ixfr-from-differences is
|
||||
set at zone level for an inline-signed zone. [GL #470]
|
||||
|
||||
5018. [bug] Fix incorrect sizeof arguments in lib/isc/pk11.c.
|
||||
[GL !588]
|
||||
|
||||
5017. [bug] lib/isc/pk11.c failed to unlink the session before
|
||||
releasing the lock which is unsafe. [GL !589]
|
||||
|
||||
5016. [bug] Named could assert with overlapping filter-aaaa and
|
||||
dns64 acls. [GL #445]
|
||||
|
||||
5015. [bug] Reloading all zones caused zone maintenance to cease
|
||||
for inline-signed zones. [GL #435]
|
||||
|
||||
5014. [bug] Signatures loaded from the journal for the signed
|
||||
version of an inline-signed zone were not scheduled for
|
||||
refresh. [GL #482]
|
||||
|
||||
5013. [bug] A referral response with a non-empty ANSWER section was
|
||||
inadvertently being treated as an error. [GL #390]
|
||||
|
||||
5012. [bug] Fix lock order reversal in pk11_initialize. [GL !590]
|
||||
|
||||
5009. [bug] Upon an OpenSSL failure, the first error in the OpenSSL
|
||||
error queue was not logged. [GL #476]
|
||||
|
||||
5008. [bug] "rndc signing -nsec3param ..." requests were silently
|
||||
ignored for zones which were not yet loaded or
|
||||
transferred. [GL #468]
|
||||
|
||||
5007. [cleanup] Replace custom ISC boolean and integer data types
|
||||
with C99 stdint.h and stdbool.h types. [GL #9]
|
||||
|
||||
5006. [cleanup] Code preparing a delegation response was extracted from
|
||||
query_delegation() and query_zone_delegation() into a
|
||||
separate function in order to decrease code
|
||||
duplication. [GL #431]
|
||||
|
||||
5005. [bug] dnssec-verify, and dnssec-signzone at the verification
|
||||
step, failed on some validly signed zones. [GL #442]
|
||||
|
||||
5004. [bug] 'rndc reconfig' could cause inline zones to stop
|
||||
re-signing. [GL #439]
|
||||
|
||||
5003. [bug] dns_acl_isinsecure did not handle geoip elements.
|
||||
[GL #406]
|
||||
|
||||
5002. [bug] mdig: Handle malformed +ednsopt option, support 100
|
||||
+ednsopt options per query rather than 100 total and
|
||||
address memory leaks if +ednsopt was specified.
|
||||
[GL #410]
|
||||
|
||||
5001. [bug] Fix refcount errors on error paths. [GL !563]
|
||||
|
||||
5000. [bug] named_server_servestale() could leave the server in
|
||||
exclusive mode if an error occured. [GL #441]
|
||||
|
||||
4996. [bug] dig: Handle malformed +ednsopt option. [GL #403]
|
||||
|
||||
4995. [test] Add tests for "tcp-self" update policy. [GL !282]
|
||||
|
||||
4994. [bug] Trust anchor telemetry queries were not being sent
|
||||
upstream for locally served zones. [GL #392]
|
||||
|
||||
4992. [bug] The wrong address was being logged for trust anchor
|
||||
telemetry queries. [GL #379]
|
||||
|
||||
4990. [bug] Prevent a possible NULL reference in pkcs11-keygen.
|
||||
[GL #401]
|
||||
|
||||
4988. [bug] Don't synthesize NXDOMAIN from NSEC for records under
|
||||
a DNAME. [GL #386]
|
||||
|
||||
--- 9.12.2-P1 released ---
|
||||
|
||||
4997. [security] named could crash during recursive processing
|
||||
of DNAME records when "deny-answer-aliases" was
|
||||
in use. (CVE-2018-5740) [GL #387]
|
||||
|
||||
--- 9.12.2 released ---
|
||||
|
||||
--- 9.12.2rc2 released ---
|
||||
|
||||
4984. [bug] Improve handling of very large incremental
|
||||
zone transfers to prevent journal corruption. [GL #339]
|
||||
|
||||
4983. [cleanup] Remove the deprecated flag from "answer-cookie";
|
||||
it will be allowed to persist into 9.13. [GL #275].
|
||||
|
||||
4982. [cleanup] Return FORMERR if the question section is empty
|
||||
and no COOKIE option is present; this restores
|
||||
older behavior except in the newly specified
|
||||
COOKIE case. [GL #260]
|
||||
|
||||
4981. [bug] Fix race in cmsg buffer usage in socket code.
|
||||
[GL #180]
|
||||
|
||||
4980. [bug] Named-checkconf failed to detect bad in-view targets.
|
||||
[GL #288]
|
||||
|
||||
4979. [bug] Non-libcap builds were not checking whether all
|
||||
requested capabilities are present in the permitted
|
||||
capability set. [GL #321]
|
||||
|
||||
4978. [test] Fix error handling and resolver configuration in the
|
||||
"rpz" system test. [GL #312]
|
||||
|
||||
4977. [func] When starting up, log the same details that
|
||||
would be reported by 'named -V'. [GL #247]
|
||||
|
||||
4976. [bug] Log the label with invalid prefix length correctly
|
||||
when loading RPZ zones. [GL #254]
|
||||
|
||||
4975. [bug] The server cookie computation for sha1 and sha256 did
|
||||
not match the method described in RFC 7873. [GL #356]
|
||||
|
||||
4974. [bug] Restore default rrset-order to random. [GL #336]
|
||||
|
||||
4972. [func] Declare the 'rdata' argument for dns_rdata_tostruct()
|
||||
to be const. [GL #341]
|
||||
|
||||
4971. [bug] dnssec-signzone and dnssec-verify did not treat records
|
||||
below a DNAME as out-of-zone data. [GL #298]
|
||||
|
||||
4969. [cleanup] Refactor zone logging functions. [GL #269]
|
||||
|
||||
--- 9.12.2rc1 released ---
|
||||
|
||||
4968. [bug] If glue records are signed, attempt to validate them.
|
||||
[GL #209]
|
||||
|
||||
4966. [func] Add the ability to not return a DNS COOKIE option
|
||||
when one is present in the request (answer-cookie no;).
|
||||
[GL #173]
|
||||
|
||||
4965. [func] Add support for marking options as deprecated.
|
||||
[GL #322]
|
||||
|
||||
4964. [bug] Reduce the probabilty of double signature when deleting
|
||||
a DNSKEY by checking if the node is otherwise signed
|
||||
by the algorithm of the key to be deleted. [GL #240]
|
||||
|
||||
4963. [test] ifconfig.sh now uses "ip" instead of "ifconfig",
|
||||
if available, to configure the test interfaces on
|
||||
linux. [GL #302]
|
||||
|
||||
4962. [cleanup] Move 'named -T' processing to its own function.
|
||||
[GL #316]
|
||||
|
||||
4960. [security] When recursion is enabled, but the "allow-recursion"
|
||||
and "allow-query-cache" ACLs are not specified,
|
||||
they should be limited to local networks,
|
||||
but were inadvertently set to match the default
|
||||
"allow-query", thus allowing remote queries.
|
||||
(CVE-2018-5738) [GL #309]
|
||||
|
||||
4958. [bug] Remove redundant space from NSEC3 record. [GL #281]
|
||||
|
||||
4955. [cleanup] Silence cppcheck warnings in lib/dns/master.c.
|
||||
[GL #286]
|
||||
|
||||
4954. [func] Messages about serving of stale answers are now
|
||||
directed to the "serve-stale" logging category.
|
||||
Also clarified serve-stale documentation. [GL !323]
|
||||
|
||||
4951. [protocol] Add "HOME.ARPA" to list of built in empty zones as
|
||||
per RFC 8375. [GL #273]
|
||||
|
||||
4950. [bug] ISC_SOCKEVENTATTR_TRUNC was not be set. [GL #238]
|
||||
|
||||
4949. [bug] lib/isc/print.c failed to handle floating point
|
||||
output correctly. [GL #261]
|
||||
|
||||
4946. [bug] Additional glue was not being returned by resolver
|
||||
for unsigned zones since change 4596. [GL #209]
|
||||
|
||||
4944. [cleanup] Silence cppcheck portability warnings in
|
||||
lib/isc/tests/buffer_test.c. [GL #239]
|
||||
|
||||
4943. [bug] Change 4687 consumed too much memory when running
|
||||
system tests with --with-tuning=large. Reduced the
|
||||
hash table size to 512 entries for 'named -m record'
|
||||
restoring the previous memory footprint. [GL #248]
|
||||
|
||||
4939. [test] Add basic unit tests for update_sigs(). [GL #135]
|
||||
|
||||
4935. [func] Add support for LibreSSL >= 2.7.0 (some OpenSSL 1.1.0
|
||||
call were added). [GL #191]
|
||||
|
||||
4934. [security] The serve-stale feature could cause an assertion failure
|
||||
in rbtdb.c even when stale-answer-enable was false.
|
||||
Simultaneous use of stale cache records and NSEC
|
||||
aggressive negative caching could trigger a recursion
|
||||
loop. (CVE-2018-5737) [GL #185]
|
||||
|
||||
4933. [bug] Not creating signing keys for an inline signed zone
|
||||
prevented changes applied to the raw zone from being
|
||||
reflected in the secure zone until signing keys were
|
||||
made available. [GL #159]
|
||||
|
||||
4932. [bug] Bumped signed serial of an inline signed zone was
|
||||
logged even when an error occurred while updating
|
||||
signatures. [GL #159]
|
||||
|
||||
4930. [bug] Remove a bogus check in nslookup command line
|
||||
argument processing. [GL #206]
|
||||
|
||||
4926. [func] Add root key sentinel support. To disable, add
|
||||
'root-key-sentinel no;' to named.conf. [GL #37]
|
||||
|
||||
4922. [bug] dnstap: Log the destination address of client
|
||||
packets rather than the interface address.
|
||||
[GL #197]
|
||||
|
||||
4921. [cleanup] Add dns_fixedname_initname() and refactor the caller
|
||||
code to make usage of the new function, as a part of
|
||||
refactoring dns_fixedname_*() macros were turned into
|
||||
functions. [GL #183]
|
||||
|
||||
4918. [bug] Fix double free after keygen error in dnssec-keygen
|
||||
when OpenSSL >= 1.1.0 is used and RSA_generate_key_ex
|
||||
|
||||
4915. [func] Implement IDNA2008 support in dig by adding support
|
||||
for libidn2. New dig option +idnin has been added,
|
||||
which allows to process invalid domain names much
|
||||
like dig without IDN support. libidn2 version 2.0
|
||||
or higher is needed for +idnout enabled by default.
|
||||
|
||||
4914. [security] A bug in zone database reference counting could lead to
|
||||
a crash when multiple versions of a slave zone were
|
||||
transferred from a master in close succession.
|
||||
(CVE-2018-5736) [GL #134]
|
||||
|
||||
4913. [test] Re-implemented older unit tests in bin/tests as ATF,
|
||||
removed the lib/tests unit testing library. [GL #115]
|
||||
|
||||
4912. [test] Improved the reliability of the 'cds' system test.
|
||||
[GL #136]
|
||||
|
||||
4911. [test] Improved the reliability of the 'mkeys' system test.
|
||||
[GL #128]
|
||||
|
||||
4910. [func] Update util/check-changes to work on release branches.
|
||||
[GL #113]
|
||||
|
||||
4909. [bug] named-checkconf did not detect in-view zone collisions.
|
||||
[GL #125]
|
||||
|
||||
4908. [test] Eliminated unnecessary waiting in the allow_query
|
||||
system test. Also changed its name to allow-query.
|
||||
[GL #81]
|
||||
|
||||
4907. [test] Improved the reliability of the 'notify' system
|
||||
test. [GL #59]
|
||||
|
||||
4905. [bug] irs_resconf_load() ignored resolv.conf syntax errors
|
||||
when "domain" or "search" options were present in that
|
||||
file. [GL #110]
|
||||
|
||||
4903. [bug] "check-mx fail;" did not prevent MX records containing
|
||||
IP addresses from being added to a zone by a dynamic
|
||||
update. [GL #112]
|
||||
|
||||
4902. [test] Improved the reliability of the 'ixfr' system
|
||||
test. [GL #66]
|
||||
4900. [cleanup] Remove all uses of inet_aton(). [GL #13]
|
||||
|
||||
4899. [test] Convert most of the remaining system tests to be able
|
||||
to run in parallel, continuing the work from change
|
||||
#4895. To take advantage of this, use "make -jN check",
|
||||
where N is the number of processors to use. [GL #91]
|
||||
|
||||
4898. [func] Remove libseccomp based system-call filtering. [GL #93]
|
||||
|
||||
4897. [test] Update to rpz system test so that it doesn't recurse.
|
||||
[GL #68]
|
||||
|
||||
@@ -321,14 +19,6 @@
|
||||
4895. [test] Allow some system tests to run in parallel.
|
||||
[RT #46602]
|
||||
|
||||
--- 9.12.1 released ---
|
||||
|
||||
--- 9.12.1rc2 released ---
|
||||
|
||||
4904. [bug] Temporarily revert change #4859. [GL #124]
|
||||
|
||||
--- 9.12.1rc1 released ---
|
||||
|
||||
4894. [bug] named could crash while rolling a dnstap output file.
|
||||
[RT #46942]
|
||||
|
||||
@@ -338,13 +28,16 @@
|
||||
before all zone loading actions triggered by a previous
|
||||
"rndc reload" command were completed. [RT #47076]
|
||||
|
||||
4891. [placeholder]
|
||||
|
||||
4890. [func] Remove unused ondestroy callback from libisc.
|
||||
[isc-projects/bind9!3]
|
||||
|
||||
4889. [func] Warn about the use of old root keys without the new
|
||||
root key being present. Warn about dlv.isc.org's
|
||||
key being present. Warn about both managed and
|
||||
trusted root keys being present. [RT #43670]
|
||||
|
||||
--- 9.12.1b1 released ---
|
||||
|
||||
4888. [test] Initialize sockets correctly in sample-update so
|
||||
that the nsupdate system test will run on Windows.
|
||||
[RT #47097]
|
||||
@@ -415,6 +108,9 @@
|
||||
be passed to memmove which is undefined behavior and
|
||||
can lead to bad optimization. [RT #46888]
|
||||
|
||||
4868. [func] dnssec-keygen can no longer generate HMAC keys.
|
||||
Use tsig-keygen instead. [RT #46404]
|
||||
|
||||
4867. [cleanup] Normalize rndc on/off commands (validation,
|
||||
querylog, serve-stale) so they all accept the
|
||||
same synonyms for on/off (yes/no, true/false,
|
||||
@@ -424,15 +120,33 @@
|
||||
was not disabled) and SHA-1 hash and HMAC support.
|
||||
[RT #46764]
|
||||
|
||||
4865. [cleanup] Simplify handling isc_socket_sendto2() return values.
|
||||
[RT #46986]
|
||||
|
||||
4864. [bug] named acting as a slave for a catalog zone crashed if
|
||||
the latter contained a master definition without an IP
|
||||
address. [RT #45999]
|
||||
|
||||
4863. [bug] Fix various other bugs reported by Valgrind's
|
||||
memcheck tool. [RT #46978]
|
||||
|
||||
4862. [bug] The rdata flags for RRSIG were not being properly set
|
||||
when constructing a rdataslab. [RT #46978]
|
||||
|
||||
4861. [bug] The isc_crc64 unit test was not endian independent.
|
||||
[RT #46973]
|
||||
|
||||
4860. [bug] isc_int8_t should be signed char. [RT #46973]
|
||||
|
||||
4859. [bug] A loop was possible when attempting to validate
|
||||
unsigned CNAME responses from secure zones;
|
||||
this caused a delay in returning SERVFAIL and
|
||||
also increased the chances of encountering
|
||||
CVE-2017-3145. [RT #46839]
|
||||
|
||||
4858. [security] Addresses could be referenced after being freed
|
||||
in resolver.c, causing an assertion failure.
|
||||
(CVE-2017-3145) [RT #46839]
|
||||
|
||||
4857. [bug] Maintain attach/detach semantics for event->db,
|
||||
event->node, event->rdataset and event->sigrdataset
|
||||
@@ -458,6 +172,16 @@
|
||||
4851. [port] Support using kyua as well as atf-run to run the unit
|
||||
tests. [RT #46853]
|
||||
|
||||
4850. [bug] Named failed to restart with multiple added zones in
|
||||
lmdb database. [RT #46889]
|
||||
|
||||
4849. [bug] Duplicate zones could appear in the .nzf file if
|
||||
addzone failed. [RT #46435]
|
||||
|
||||
4848. [func] Zone types "primary" and "secondary" can now be used
|
||||
as synonyms for "master" and "slave" in named.conf.
|
||||
[RT #46713]
|
||||
|
||||
4847. [bug] dnssec-dnskey-kskonly was not being honored for
|
||||
CDS and CDNSKEY. [RT #46755]
|
||||
|
||||
@@ -475,34 +199,6 @@
|
||||
4842. [bug] Conditionally compile opensslecdsa_link.c to avoid
|
||||
warnings about unused function. [RT #46790]
|
||||
|
||||
--- 9.12.0 released ---
|
||||
|
||||
--- 9.12.0rc3 released ---
|
||||
|
||||
4863. [bug] Fix various other bugs reported by Valgrind's
|
||||
memcheck tool. [RT #46978]
|
||||
|
||||
4862. [bug] The rdata flags for RRSIG were not being properly set
|
||||
when constructing a rdataslab. [RT #46978]
|
||||
|
||||
--- 9.12.0rc2 released ---
|
||||
|
||||
4859. [bug] A loop was possible when attempting to validate
|
||||
unsigned CNAME responses from secure zones;
|
||||
this caused a delay in returning SERVFAIL and
|
||||
also increased the chances of encountering
|
||||
CVE-2017-3145. [RT #46839]
|
||||
|
||||
4858. [security] Addresses could be referenced after being freed
|
||||
in resolver.c, causing an assertion failure.
|
||||
(CVE-2017-3145) [RT #46839]
|
||||
|
||||
4850. [bug] Named failed to restart with multiple added zones in
|
||||
lmdb database. [RT #46889]
|
||||
|
||||
4849. [bug] Duplicate zones could appear in the .nzf file if
|
||||
addzone failed. [RT #46435]
|
||||
|
||||
--- 9.12.0rc1 released ---
|
||||
|
||||
4841. [bug] Address -fsanitize=undefined warnings. [RT #46786]
|
||||
@@ -791,8 +487,8 @@
|
||||
|
||||
4760. [func] Add glue cache statistics counters. [RT #46028]
|
||||
|
||||
4759. [func] Add logging channel "trust-anchor-telemetry" to
|
||||
record trust-anchor-telemetry in incoming requests.
|
||||
4759. [func] Add logging channel "trust-anchor-telementry" to
|
||||
record trust-anchor-telementry in incoming requests.
|
||||
Both _ta-XXXX.<anchor>/NULL and EDNS KEY-TAG options
|
||||
are logged. [RT #46124]
|
||||
|
||||
@@ -861,10 +557,10 @@
|
||||
tests when running on terminals that support them.
|
||||
[RT #45977]
|
||||
|
||||
4744. [bug] Suppress trust-anchor-telemetry queries if
|
||||
4744. [bug] Suppress trust-anchor-telementry queries if
|
||||
validation is disabled. [RT #46131]
|
||||
|
||||
4743. [func] Exclude trust-anchor-telemetry queries from
|
||||
4743. [func] Exclude trust-anchor-telementry queries from
|
||||
synth-from-dnssec processing. [RT #46123]
|
||||
|
||||
4742. [func] Synthesis of responses from DNSSEC-verified records.
|
||||
|
||||
-186
@@ -1,186 +0,0 @@
|
||||
BIND Source Access and Contributor Guidelines
|
||||
|
||||
Feb 22, 2018
|
||||
|
||||
Contents
|
||||
|
||||
1. Access to source code
|
||||
2. Reporting bugs
|
||||
3. Contributing code
|
||||
|
||||
Introduction
|
||||
|
||||
Thank you for using BIND!
|
||||
|
||||
BIND is open source software that implements the Domain Name System (DNS)
|
||||
protocols for the Internet. It is a reference implementation of those
|
||||
protocols, but it is also production-grade software, suitable for use in
|
||||
high-volume and high-reliability applications. It is by far the most
|
||||
widely used DNS software, providing a robust and stable platform on top of
|
||||
which organizations can build distributed computing systems with the
|
||||
knowledge that those systems are fully compliant with published DNS
|
||||
standards.
|
||||
|
||||
BIND is and will always remain free and openly available. It can be used
|
||||
and modified in any way by anyone.
|
||||
|
||||
BIND is maintained by the Internet Systems Consortium, a public-benefit
|
||||
501(c)(3) nonprofit, using a "managed open source" approach: anyone can
|
||||
see the source, but only ISC employees have commit access. Until recently,
|
||||
the source could only be seen once ISC had published a release: read
|
||||
access to the source repository was restricted just as commit access was.
|
||||
That's now changing, with the opening of a public git mirror to the BIND
|
||||
source tree (see below).
|
||||
|
||||
Access to source code
|
||||
|
||||
Public BIND releases are always available from the ISC FTP site.
|
||||
|
||||
A public-access GIT repository is also available at https://gitlab.isc.org
|
||||
. This repository is a mirror, updated several times per day, of the
|
||||
source repository maintained by ISC. It contains all the public release
|
||||
branches; upcoming releases can be viewed in their current state at any
|
||||
time. It does not contain development branches or unreviewed work in
|
||||
progress. Commits which address security vulnerablilities are withheld
|
||||
until after public disclosure.
|
||||
|
||||
You can browse the source online via https://gitlab.isc.org/isc-projects/
|
||||
bind9
|
||||
|
||||
To clone the repository, use:
|
||||
|
||||
$ git clone https://gitlab.isc.org/isc-projects/bind9.git
|
||||
|
||||
Release branch names are of the form v9_X, where X represents the second
|
||||
number in the BIND 9 version number. So, to check out the BIND 9.12
|
||||
branch, use:
|
||||
|
||||
$ git checkout v9_12
|
||||
|
||||
Whenever a branch is ready for publication, a tag will be placed of the
|
||||
form v9_X_Y. The 9.12.0 release, for instance, is tagged as v9_12_0.
|
||||
|
||||
The branch in which the next major release is being developed is called
|
||||
master.
|
||||
|
||||
Reporting bugs
|
||||
|
||||
Reports of flaws in the BIND package, including software bugs, errors in
|
||||
the documentation, missing files in the tarball, suggested changes or
|
||||
requests for new features, etc, can be filed using https://gitlab.isc.org/
|
||||
isc-projects/bind9/issues.
|
||||
|
||||
Due to a large ticket backlog, we are sometimes slow to respond,
|
||||
especially if a bug is cosmetic or if a feature request is vague or low in
|
||||
priority, but we will try at least to acknowledge legitimate bug reports
|
||||
within a week.
|
||||
|
||||
ISC's ticketing system is publicly readable; however, you must have an
|
||||
account to file a new issue. You can either register locally or use
|
||||
credentials from an existing account at GitHub, GitLab, Google, Twitter,
|
||||
or Facebook.
|
||||
|
||||
Reporting possible security issues
|
||||
|
||||
If you think you may be seeing a potential security vulnerability in BIND
|
||||
(for example, a crash with REQUIRE, INSIST, or ASSERT failure), please
|
||||
report it immediately by emailing to security-officer@isc.org. Plain-text
|
||||
e-mail is not a secure choice for communications concerning undisclosed
|
||||
security issues so please encrypt your communications to us if possible,
|
||||
using the ISC Security Officer public key.
|
||||
|
||||
Do not discuss undisclosed security vulnerabilites on any public mailing
|
||||
list. ISC has a long history of handling reported vulnerabilities promptly
|
||||
and effectively and we respect and acknowledge responsible reporters.
|
||||
|
||||
ISC's Security Vulnerability Disclosure Policy is documented at https://
|
||||
kb.isc.org/article/AA-00861/0.
|
||||
|
||||
If you have a crash, you may want to consult ?What to do if your BIND or
|
||||
DHCP server has crashed.?
|
||||
|
||||
Contributing code
|
||||
|
||||
BIND is licensed under the Mozilla Public License 2.0. Earier versions
|
||||
(BIND 9.10 and earlier) were licensed under the ISC License
|
||||
|
||||
ISC does not require an explicit copyright assignment for patch
|
||||
contributions. However, by submitting a patch to ISC, you implicitly
|
||||
certify that you are the author of the code, that you intend to reliquish
|
||||
exclusive copyright, and that you grant permission to publish your work
|
||||
under the open source license used for the BIND version(s) to which your
|
||||
patch will be applied.
|
||||
|
||||
BIND code
|
||||
|
||||
Patches for BIND may be submitted directly via merge requests in ISC's
|
||||
Gitlab source repository for BIND.
|
||||
|
||||
Patches can also be submitted as diffs against a specific version of BIND
|
||||
-- preferably the current top of the master branch. Diffs may be generated
|
||||
using either git format-patch or git diff.
|
||||
|
||||
Those wanting to write code for BIND may be interested in the developer
|
||||
information page, which includes information about BIND design and coding
|
||||
practices, including discussion of internal APIs and overall system
|
||||
architecture. (This is a work in progress, and still quite preliminary.)
|
||||
|
||||
Every patch submitted will be reviewed by ISC engineers following our code
|
||||
review process before it is merged.
|
||||
|
||||
It may take considerable time to review patch submissions, especially if
|
||||
they don't meet ISC style and quality guidelines. If a patch is a good
|
||||
idea, we can and will do additional work to bring it up to par, but if
|
||||
we're busy with other work, it may take us a long time to get to it.
|
||||
|
||||
To ensure your patch is acted on as promptly as possible, please:
|
||||
|
||||
* Try to adhere to the BIND 9 coding style.
|
||||
* Run make check to ensure your change hasn't caused any functional
|
||||
regressions.
|
||||
* Document your work, both in the patch itself and in the accompanying
|
||||
email.
|
||||
* In patches that make non-trivial functional changes, include system
|
||||
tests if possible; when introducing or substantially altering a
|
||||
library API, include unit tests. See Testing for more information.
|
||||
|
||||
Changes to configure
|
||||
|
||||
If you need to make changes to configure, you should not edit it directly;
|
||||
instead, edit configure.in, then run autoconf. Similarly, instead of
|
||||
editing config.h.in directly, edit configure.in and run autoheader.
|
||||
|
||||
When submitting a patch as a diff, it's fine to omit the configure diffs
|
||||
to save space. Just send the configure.in diffs and we'll generate the new
|
||||
configure during the review process.
|
||||
|
||||
Documentation
|
||||
|
||||
All functional changes should be documented. There are three types of
|
||||
documentation in the BIND source tree:
|
||||
|
||||
* Man pages are kept alongside the source code for the commands they
|
||||
document, in files ending in .docbook; for example, the named man page
|
||||
is bin/named/named.docbook.
|
||||
* The BIND 9 Administrator Reference Manual is mostly in doc/arm/
|
||||
Bv9ARM-book.xml, plus a few other XML files that are included in it.
|
||||
* API documentation is in the header file describing the API, in
|
||||
Doxygen-formatted comments.
|
||||
|
||||
It is not necessary to edit any documentation files other than these; all
|
||||
PDF, HTML, and nroff-format man page files will be updated automatically
|
||||
from the docbook and XML files after merging.
|
||||
|
||||
Patches to improve existing documentation are also very welcome!
|
||||
|
||||
Tests
|
||||
|
||||
BIND is a large and complex project. We rely heavily on continuous
|
||||
automated testing and cannot merge new code without adequate test
|
||||
coverage. Please see the 'Testing' section of doc/dev/dev.md for more
|
||||
information.
|
||||
|
||||
Thanks
|
||||
|
||||
Thank you for your interest in contributing to the ongoing development of
|
||||
BIND.
|
||||
@@ -522,3 +522,4 @@ BIND 9.2.0
|
||||
DNSSEC implementation is still considered experimental. For detailed
|
||||
information about the state of the DNSSEC implementation, see the file
|
||||
doc/misc/dnssec.
|
||||
|
||||
|
||||
+4
-12
@@ -74,7 +74,7 @@ tags:
|
||||
find lib bin -name "*.[ch]" -print | @ETAGS@ -
|
||||
|
||||
test check:
|
||||
@if test -n "`${PERL} ${top_srcdir}/bin/tests/system/testsock.pl 2>/dev/null || echo fail`"; then \
|
||||
@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; \
|
||||
@@ -96,23 +96,15 @@ test-force:
|
||||
|
||||
README: README.md
|
||||
${PANDOC} --email-obfuscation=none -s -t html README.md | \
|
||||
${W3M} -dump -cols 75 -O ascii -T text/html | \
|
||||
sed -e '$${/^$$/d;}' > $@
|
||||
${W3M} -dump -cols 75 -O ascii -T text/html > $@
|
||||
|
||||
HISTORY: HISTORY.md
|
||||
${PANDOC} --email-obfuscation=none -s -t html HISTORY.md | \
|
||||
${W3M} -dump -cols 75 -O ascii -T text/html | \
|
||||
sed -e '$${/^$$/d;}' > $@
|
||||
${W3M} -dump -cols 75 -O ascii -T text/html > $@
|
||||
|
||||
OPTIONS: OPTIONS.md
|
||||
${PANDOC} --email-obfuscation=none -s -t html OPTIONS.md | \
|
||||
${W3M} -dump -cols 75 -O ascii -T text/html | \
|
||||
sed -e '$${/^$$/d;}' > $@
|
||||
|
||||
CONTRIBUTING: CONTRIBUTING.md
|
||||
${PANDOC} --email-obfuscation=none -s -t html CONTRIBUTING.md | \
|
||||
${W3M} -dump -cols 75 -O ascii -T text/html | \
|
||||
sed -e '$${/^$$/d;}' > $@
|
||||
${W3M} -dump -cols 75 -O ascii -T text/html > $@
|
||||
|
||||
unit::
|
||||
sh ${top_builddir}/unit/unittest.sh
|
||||
|
||||
@@ -27,3 +27,4 @@ Setting Description
|
||||
may be useful when debugging
|
||||
-DISC_HEAP_CHECK Test heap consistency after every heap
|
||||
operation; used when debugging
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ Contents
|
||||
1. Introduction
|
||||
2. Reporting bugs and getting help
|
||||
3. Contributing to BIND
|
||||
4. BIND 9.12 features
|
||||
4. BIND 9.13 features
|
||||
5. Building BIND
|
||||
6. macOS
|
||||
7. Compile-time options
|
||||
@@ -50,21 +50,19 @@ bind9/releasenotes
|
||||
|
||||
Reporting bugs and getting help
|
||||
|
||||
To report non-security-sensitive bugs or request new features, you may
|
||||
open an Issue in the BIND 9 project on the ISC GitLab server at https://
|
||||
gitlab.isc.org/isc-projects/bind9.
|
||||
Please report assertion failure errors and suspected security issues to
|
||||
security-officer@isc.org.
|
||||
|
||||
Please note that, unless you explicitly mark the newly created Issue as
|
||||
"confidential", it will be publicly readable. Please do not include any
|
||||
information in bug reports that you consider to be confidential unless the
|
||||
issue has been marked as such. In particular, if submitting the contents
|
||||
of your configuration file in a non-confidential Issue, it is advisable to
|
||||
obscure key secrets: this can be done automatically by using
|
||||
named-checkconf -px.
|
||||
General bug reports can be sent to bind9-bugs@isc.org.
|
||||
|
||||
If the bug you are reporting is a potential security issue, such as an
|
||||
assertion failure or other crash in named, please do NOT use GitLab to
|
||||
report it. Instead, please send mail to security-officer@isc.org.
|
||||
Feature requests can be sent to bind-suggest@isc.org.
|
||||
|
||||
Please note that, while tickets submitted to ISC's ticketing system are
|
||||
not initially publicly readable by default, they can be made publicly
|
||||
acessible afterward. Please do not include information in bug reports that
|
||||
you consider to be confidential. In particular, when sending the contents
|
||||
of your configuration file, it is advisable to obscure key secrets: this
|
||||
can be done automatically by using named-checkconf -px.
|
||||
|
||||
Professional support and training for BIND are available from ISC at
|
||||
https://www.isc.org/support.
|
||||
@@ -85,70 +83,19 @@ Information for BIND contributors can be found in the following files: -
|
||||
General information: doc/dev/contrib.md - BIND 9 code style: doc/dev/
|
||||
style.md - BIND architecture and developer guide: doc/dev/dev.md
|
||||
|
||||
Patches for BIND may be submitted as Merge Requests in the ISC GitLab
|
||||
server at at https://gitlab.isc.org/isc-projects/bind9/merge_requests.
|
||||
Patches for BIND may be submitted either as Github pull requests or via
|
||||
email. When submitting a patch via email, please prepend the subject
|
||||
header with "[PATCH]" so it will be easier for us to find. If your patch
|
||||
introduces a new feature in BIND, please submit it to bind-suggest@isc.org
|
||||
; if it fixes a bug, please submit it to bind9-bugs@isc.org.
|
||||
|
||||
By default, external contributors don't have ability to fork BIND in the
|
||||
GitLab server, but if you wish to contribute code to BIND, you may request
|
||||
permission to do so. Thereafter, you can create git branches and directly
|
||||
submit requests that they be reviewed and merged.
|
||||
BIND 9.13 features
|
||||
|
||||
If you prefer, you may also submit code by opening a GitLab Issue and
|
||||
including your patch as an attachment, preferably generated by git
|
||||
format-patch.
|
||||
|
||||
BIND 9.12 features
|
||||
|
||||
BIND 9.12.0 is the newest development branch of BIND 9. It includes a
|
||||
number of changes from BIND 9.11 and earlier releases. New features
|
||||
BIND 9.13.0 is the newest development branch of BIND 9. It includes a
|
||||
number of changes from BIND 9.12 and earlier releases. New features
|
||||
include:
|
||||
|
||||
* named and related libraries have been substantially refactored for
|
||||
improved query performance -- particularly on delegation heavy zones
|
||||
-- and for improved readability, maintainability, and testability.
|
||||
* Code implementing the name server query processing logic has been
|
||||
moved into a new libns library, for easier testing and use in tools
|
||||
other than named.
|
||||
* Cached, validated NSEC and other records can now be used to synthesize
|
||||
NXDOMAIN responses.
|
||||
* The DNS Response Policy Service API (DNSRPS) is now supported.
|
||||
* Setting 'max-journal-size default' now limits the size of journal
|
||||
files to twice the size of the zone.
|
||||
* dnstap-read -x prints a hex dump of the wire format of each logged DNS
|
||||
message.
|
||||
* dnstap output files can now be configured to roll automatically when
|
||||
reaching a given size.
|
||||
* Log file timestamps can now also be formatted in ISO 8601 (local) or
|
||||
ISO 8601 (UTC) formats.
|
||||
* Logging channels and dnstap output files can now be configured to use
|
||||
a timestamp as the suffix when rolling to a new file.
|
||||
* 'named-checkconf -l' lists zones found in named.conf.
|
||||
* Added support for the EDNS Padding and Keepalive options.
|
||||
* 'new-zones-directory' option sets the location where the configuration
|
||||
data for zones added by rndc addzone is stored.
|
||||
* The default key algorithm in rndc-confgen is now hmac-sha256.
|
||||
* filter-aaaa-on-v4 and filter-aaaa-on-v6 options are now available by
|
||||
default without a configure option.
|
||||
* The obsolete isc-hmac-fixup command has been removed.
|
||||
|
||||
BIND 9.12.1
|
||||
|
||||
BIND 9.12.1 is a maintenance release.
|
||||
|
||||
BIND 9.12.2
|
||||
|
||||
BIND 9.12.2 is a maintenance release, and addresses security
|
||||
vulnerabilities disclosed in CVE-2018-5736, CVE-2018-5737 and
|
||||
CVE-2018-5738.
|
||||
|
||||
BIND 9.12.3
|
||||
|
||||
BIND 9.12.3 is a maintenance release, and also addresses CVE-2018-5741 by
|
||||
correcting faulty documentation and introducing the following new feature:
|
||||
|
||||
* New krb5-selfsub and ms-selfsub rule types for update-policy
|
||||
statements allow updating of subdomains based on a Kerberos or Active
|
||||
Directory machine principal.
|
||||
* TBD
|
||||
|
||||
Building BIND
|
||||
|
||||
@@ -377,3 +324,4 @@ Acknowledgments
|
||||
(eay@cryptsoft.com)
|
||||
* This product includes software written by Tim Hudson
|
||||
(tjh@cryptsoft.com)
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
1. [Introduction](#intro)
|
||||
1. [Reporting bugs and getting help](#help)
|
||||
1. [Contributing to BIND](#contrib)
|
||||
1. [BIND 9.12 features](#features)
|
||||
1. [BIND 9.13 features](#features)
|
||||
1. [Building BIND](#build)
|
||||
1. [macOS](#macos)
|
||||
1. [Compile-time options](#opts)
|
||||
@@ -61,24 +61,22 @@ For up-to-date release notes and errata, see
|
||||
|
||||
### <a name="help"/> Reporting bugs and getting help
|
||||
|
||||
To report non-security-sensitive bugs or request new features, you may
|
||||
open an Issue in the BIND 9 project on the
|
||||
[ISC GitLab server](https://gitlab.isc.org) at
|
||||
[https://gitlab.isc.org/isc-projects/bind9](https://gitlab.isc.org/isc-projects/bind9).
|
||||
|
||||
Please note that, unless you explicitly mark the newly created Issue as
|
||||
"confidential", it will be publicly readable. Please do not include any
|
||||
information in bug reports that you consider to be confidential unless
|
||||
the issue has been marked as such. In particular, if submitting the
|
||||
contents of your configuration file in a non-confidential Issue, it is
|
||||
advisable to obscure key secrets: this can be done automatically by
|
||||
using `named-checkconf -px`.
|
||||
|
||||
If the bug you are reporting is a potential security issue, such as an
|
||||
assertion failure or other crash in `named`, please do *NOT* use GitLab to
|
||||
report it. Instead, please send mail to
|
||||
Please report assertion failure errors and suspected security issues to
|
||||
[security-officer@isc.org](mailto:security-officer@isc.org).
|
||||
|
||||
General bug reports can be sent to
|
||||
[bind9-bugs@isc.org](mailto:bind9-bugs@isc.org).
|
||||
|
||||
Feature requests can be sent to
|
||||
[bind-suggest@isc.org](mailto:bind-suggest@isc.org).
|
||||
|
||||
Please note that, while tickets submitted to ISC's ticketing system
|
||||
are not initially publicly readable by default, they can be made publicly
|
||||
acessible afterward. Please do not include information in bug reports that
|
||||
you consider to be confidential. In particular, when sending the contents of
|
||||
your configuration file, it is advisable to obscure key secrets: this can
|
||||
be done automatically by using `named-checkconf -px`.
|
||||
|
||||
Professional support and training for BIND are available from
|
||||
ISC at [https://www.isc.org/support](https://www.isc.org/support).
|
||||
|
||||
@@ -99,74 +97,20 @@ Information for BIND contributors can be found in the following files:
|
||||
- BIND 9 code style: [doc/dev/style.md](doc/dev/style.md)
|
||||
- BIND architecture and developer guide: [doc/dev/dev.md](doc/dev/dev.md)
|
||||
|
||||
Patches for BIND may be submitted as
|
||||
[Merge Requests](https://gitlab.isc.org/isc-projects/bind9/merge_requests)
|
||||
in the [ISC GitLab server](https://gitlab.isc.org) at
|
||||
at [https://gitlab.isc.org/isc-projects/bind9/merge_requests](https://gitlab.isc.org/isc-projects/bind9/merge_requests).
|
||||
Patches for BIND may be submitted either as Github pull requests
|
||||
or via email. When submitting a patch via email, please prepend the
|
||||
subject header with "`[PATCH]`" so it will be easier for us to find.
|
||||
If your patch introduces a new feature in BIND, please submit it to
|
||||
[bind-suggest@isc.org](mailto:bind-suggest@isc.org); if it fixes a bug,
|
||||
please submit it to [bind9-bugs@isc.org](mailto:bind9-bugs@isc.org).
|
||||
|
||||
By default, external contributors don't have ability to fork BIND in the
|
||||
GitLab server, but if you wish to contribute code to BIND, you may request
|
||||
permission to do so. Thereafter, you can create git branches and directly
|
||||
submit requests that they be reviewed and merged.
|
||||
### <a name="features"/> BIND 9.13 features
|
||||
|
||||
If you prefer, you may also submit code by opening a
|
||||
[GitLab Issue](https://gitlab.isc.org/isc-projects/bind9/issues) and
|
||||
including your patch as an attachment, preferably generated by
|
||||
`git format-patch`.
|
||||
|
||||
### <a name="features"/> BIND 9.12 features
|
||||
|
||||
BIND 9.12.0 is the newest development branch of BIND 9. It includes a
|
||||
number of changes from BIND 9.11 and earlier releases. New features
|
||||
BIND 9.13.0 is the newest development branch of BIND 9. It includes a
|
||||
number of changes from BIND 9.12 and earlier releases. New features
|
||||
include:
|
||||
|
||||
* `named` and related libraries have been substantially refactored for
|
||||
improved query performance -- particularly on delegation heavy zones --
|
||||
and for improved readability, maintainability, and testability.
|
||||
* Code implementing the name server query processing logic has been moved
|
||||
into a new `libns` library, for easier testing and use in tools other
|
||||
than `named`.
|
||||
* Cached, validated NSEC and other records can now be used to synthesize
|
||||
NXDOMAIN responses.
|
||||
* The DNS Response Policy Service API (DNSRPS) is now supported.
|
||||
* Setting `'max-journal-size default'` now limits the size of journal files
|
||||
to twice the size of the zone.
|
||||
* `dnstap-read -x` prints a hex dump of the wire format of each logged
|
||||
DNS message.
|
||||
* `dnstap` output files can now be configured to roll automatically when
|
||||
reaching a given size.
|
||||
* Log file timestamps can now also be formatted in ISO 8601 (local) or ISO
|
||||
8601 (UTC) formats.
|
||||
* Logging channels and `dnstap` output files can now be configured to use a
|
||||
timestamp as the suffix when rolling to a new file.
|
||||
* `'named-checkconf -l'` lists zones found in `named.conf`.
|
||||
* Added support for the EDNS Padding and Keepalive options.
|
||||
* 'new-zones-directory' option sets the location where the configuration
|
||||
data for zones added by rndc addzone is stored.
|
||||
* The default key algorithm in `rndc-confgen` is now hmac-sha256.
|
||||
* `filter-aaaa-on-v4` and `filter-aaaa-on-v6` options are now available
|
||||
by default without a configure option.
|
||||
* The obsolete `isc-hmac-fixup` command has been removed.
|
||||
|
||||
#### BIND 9.12.1
|
||||
|
||||
BIND 9.12.1 is a maintenance release.
|
||||
|
||||
#### BIND 9.12.2
|
||||
|
||||
BIND 9.12.2 is a maintenance release, and addresses security
|
||||
vulnerabilities disclosed in CVE-2018-5736, CVE-2018-5737 and
|
||||
CVE-2018-5738.
|
||||
|
||||
#### BIND 9.12.3
|
||||
|
||||
BIND 9.12.3 is a maintenance release, and also addresses CVE-2018-5741
|
||||
by correcting faulty documentation and introducing the following new
|
||||
feature:
|
||||
|
||||
* New `krb5-selfsub` and `ms-selfsub` rule types for `update-policy`
|
||||
statements allow updating of subdomains based on a Kerberos or
|
||||
Active Directory machine principal.
|
||||
* TBD
|
||||
|
||||
### <a name="build"/> Building BIND
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: acconfig.h,v 1.53 2008/12/01 23:47:44 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
/***
|
||||
|
||||
+1
-1
@@ -10,4 +10,4 @@
|
||||
# information regarding copyright ownership.
|
||||
|
||||
# Run this script after modifying configure.in to generate configure
|
||||
autoreconf -f -i
|
||||
autoreconf -i
|
||||
|
||||
+4
-2
@@ -7,12 +7,14 @@
|
||||
# See the COPYRIGHT file distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
|
||||
# $Id: Makefile.in,v 1.29 2009/10/05 12:07:08 fdupont Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
SUBDIRS = named rndc dig delv dnssec tools nsupdate check confgen \
|
||||
@NZD_TOOLS@ @PYTHON_TOOLS@ @PKCS11_TOOLS@ tests
|
||||
SUBDIRS = named rndc dig delv dnssec tools tests nsupdate \
|
||||
check confgen @NZD_TOOLS@ @PYTHON_TOOLS@ @PKCS11_TOOLS@
|
||||
TARGETS =
|
||||
|
||||
@BIND9_MAKE_RULES@
|
||||
|
||||
@@ -88,12 +88,12 @@ install:: named-checkconf@EXEEXT@ named-checkzone@EXEEXT@ installdirs
|
||||
${LIBTOOL_MODE_INSTALL} ${INSTALL_PROGRAM} named-checkconf@EXEEXT@ ${DESTDIR}${sbindir}
|
||||
${LIBTOOL_MODE_INSTALL} ${INSTALL_PROGRAM} named-checkzone@EXEEXT@ ${DESTDIR}${sbindir}
|
||||
(cd ${DESTDIR}${sbindir}; rm -f named-compilezone@EXEEXT@; ${LINK_PROGRAM} named-checkzone@EXEEXT@ named-compilezone@EXEEXT@)
|
||||
for m in ${MANPAGES}; do ${INSTALL_DATA} ${srcdir}/$$m ${DESTDIR}${mandir}/man8 || exit 1; done
|
||||
for m in ${MANPAGES}; do ${INSTALL_DATA} ${srcdir}/$$m ${DESTDIR}${mandir}/man8; done
|
||||
(cd ${DESTDIR}${mandir}/man8; rm -f named-compilezone.8; ${LINK_PROGRAM} named-checkzone.8 named-compilezone.8)
|
||||
|
||||
uninstall::
|
||||
rm -f ${DESTDIR}${mandir}/man8/named-compilezone.8
|
||||
for m in ${MANPAGES}; do rm -f ${DESTDIR}${mandir}/man8/$$m || exit 1; done
|
||||
for m in ${MANPAGES}; do rm -f ${DESTDIR}${mandir}/man8/$$m ; done
|
||||
rm -f ${DESTDIR}${sbindir}/named-compilezone@EXEEXT@
|
||||
${LIBTOOL_MODE_UNINSTALL} rm -f ${DESTDIR}${sbindir}/named-checkconf@EXEEXT@
|
||||
${LIBTOOL_MODE_UNINSTALL} rm -f ${DESTDIR}${sbindir}/named-checkzone@EXEEXT@
|
||||
|
||||
+52
-50
@@ -9,14 +9,13 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: check-tool.c,v 1.44 2011/12/22 07:32:39 each Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <Winsock2.h>
|
||||
@@ -90,15 +89,15 @@ static const char *dbtype[] = { "rbt" };
|
||||
|
||||
int debug = 0;
|
||||
const char *journal = NULL;
|
||||
bool nomerge = true;
|
||||
isc_boolean_t nomerge = ISC_TRUE;
|
||||
#if CHECK_LOCAL
|
||||
bool docheckmx = true;
|
||||
bool dochecksrv = true;
|
||||
bool docheckns = true;
|
||||
isc_boolean_t docheckmx = ISC_TRUE;
|
||||
isc_boolean_t dochecksrv = ISC_TRUE;
|
||||
isc_boolean_t docheckns = ISC_TRUE;
|
||||
#else
|
||||
bool docheckmx = false;
|
||||
bool dochecksrv = false;
|
||||
bool docheckns = false;
|
||||
isc_boolean_t docheckmx = ISC_FALSE;
|
||||
isc_boolean_t dochecksrv = ISC_FALSE;
|
||||
isc_boolean_t docheckns = ISC_FALSE;
|
||||
#endif
|
||||
unsigned int zone_options = DNS_ZONEOPT_CHECKNS |
|
||||
DNS_ZONEOPT_CHECKMX |
|
||||
@@ -145,7 +144,7 @@ add(char *key, int value) {
|
||||
|
||||
if (symtab == NULL) {
|
||||
result = isc_symtab_create(sym_mctx, 100, freekey, sym_mctx,
|
||||
false, &symtab);
|
||||
ISC_FALSE, &symtab);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return;
|
||||
}
|
||||
@@ -161,20 +160,20 @@ add(char *key, int value) {
|
||||
isc_mem_free(sym_mctx, key);
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
logged(char *key, int value) {
|
||||
isc_result_t result;
|
||||
|
||||
if (symtab == NULL)
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
|
||||
result = isc_symtab_lookup(symtab, key, value, NULL);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
return (true);
|
||||
return (false);
|
||||
return (ISC_TRUE);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
checkns(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner,
|
||||
dns_rdataset_t *a, dns_rdataset_t *aaaa)
|
||||
{
|
||||
@@ -185,8 +184,8 @@ checkns(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner,
|
||||
char namebuf[DNS_NAME_FORMATSIZE + 1];
|
||||
char ownerbuf[DNS_NAME_FORMATSIZE];
|
||||
char addrbuf[sizeof("xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:123.123.123.123")];
|
||||
bool answer = true;
|
||||
bool match;
|
||||
isc_boolean_t answer = ISC_TRUE;
|
||||
isc_boolean_t match;
|
||||
const char *type;
|
||||
void *ptr = NULL;
|
||||
int result;
|
||||
@@ -235,7 +234,7 @@ checkns(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner,
|
||||
ownerbuf, namebuf,
|
||||
cur->ai_canonname);
|
||||
/* XXX950 make fatal for 9.5.0 */
|
||||
/* answer = false; */
|
||||
/* answer = ISC_FALSE; */
|
||||
add(namebuf, ERR_IS_CNAME);
|
||||
}
|
||||
break;
|
||||
@@ -251,7 +250,7 @@ checkns(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner,
|
||||
add(namebuf, ERR_NO_ADDRESSES);
|
||||
}
|
||||
/* XXX950 make fatal for 9.5.0 */
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
|
||||
default:
|
||||
if (!logged(namebuf, ERR_LOOKUP_FAILURE)) {
|
||||
@@ -260,7 +259,7 @@ checkns(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner,
|
||||
namebuf, gai_strerror(result));
|
||||
add(namebuf, ERR_LOOKUP_FAILURE);
|
||||
}
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -271,13 +270,13 @@ checkns(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner,
|
||||
result = dns_rdataset_first(a);
|
||||
while (result == ISC_R_SUCCESS) {
|
||||
dns_rdataset_current(a, &rdata);
|
||||
match = false;
|
||||
match = ISC_FALSE;
|
||||
for (cur = ai; cur != NULL; cur = cur->ai_next) {
|
||||
if (cur->ai_family != AF_INET)
|
||||
continue;
|
||||
ptr = &((struct sockaddr_in *)(cur->ai_addr))->sin_addr;
|
||||
if (memcmp(ptr, rdata.data, rdata.length) == 0) {
|
||||
match = true;
|
||||
match = ISC_TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -289,7 +288,7 @@ checkns(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner,
|
||||
addrbuf, sizeof(addrbuf)));
|
||||
add(namebuf, ERR_EXTRA_A);
|
||||
/* XXX950 make fatal for 9.5.0 */
|
||||
/* answer = false; */
|
||||
/* answer = ISC_FALSE; */
|
||||
}
|
||||
dns_rdata_reset(&rdata);
|
||||
result = dns_rdataset_next(a);
|
||||
@@ -301,13 +300,13 @@ checkns(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner,
|
||||
result = dns_rdataset_first(aaaa);
|
||||
while (result == ISC_R_SUCCESS) {
|
||||
dns_rdataset_current(aaaa, &rdata);
|
||||
match = false;
|
||||
match = ISC_FALSE;
|
||||
for (cur = ai; cur != NULL; cur = cur->ai_next) {
|
||||
if (cur->ai_family != AF_INET6)
|
||||
continue;
|
||||
ptr = &((struct sockaddr_in6 *)(cur->ai_addr))->sin6_addr;
|
||||
if (memcmp(ptr, rdata.data, rdata.length) == 0) {
|
||||
match = true;
|
||||
match = ISC_TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -319,7 +318,7 @@ checkns(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner,
|
||||
addrbuf, sizeof(addrbuf)));
|
||||
add(namebuf, ERR_EXTRA_AAAA);
|
||||
/* XXX950 make fatal for 9.5.0. */
|
||||
/* answer = false; */
|
||||
/* answer = ISC_FALSE; */
|
||||
}
|
||||
dns_rdata_reset(&rdata);
|
||||
result = dns_rdataset_next(aaaa);
|
||||
@@ -330,7 +329,7 @@ checkns(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner,
|
||||
* Check that all addresses appear in the glue.
|
||||
*/
|
||||
if (!logged(namebuf, ERR_MISSING_GLUE)) {
|
||||
bool missing_glue = false;
|
||||
isc_boolean_t missing_glue = ISC_FALSE;
|
||||
for (cur = ai; cur != NULL; cur = cur->ai_next) {
|
||||
switch (cur->ai_family) {
|
||||
case AF_INET:
|
||||
@@ -346,7 +345,7 @@ checkns(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner,
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
match = false;
|
||||
match = ISC_FALSE;
|
||||
if (dns_rdataset_isassociated(rdataset))
|
||||
result = dns_rdataset_first(rdataset);
|
||||
else
|
||||
@@ -354,7 +353,7 @@ checkns(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner,
|
||||
while (result == ISC_R_SUCCESS && !match) {
|
||||
dns_rdataset_current(rdataset, &rdata);
|
||||
if (memcmp(ptr, rdata.data, rdata.length) == 0)
|
||||
match = true;
|
||||
match = ISC_TRUE;
|
||||
dns_rdata_reset(&rdata);
|
||||
result = dns_rdataset_next(rdataset);
|
||||
}
|
||||
@@ -365,8 +364,8 @@ checkns(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner,
|
||||
inet_ntop(cur->ai_family, ptr,
|
||||
addrbuf, sizeof(addrbuf)));
|
||||
/* XXX950 make fatal for 9.5.0. */
|
||||
/* answer = false; */
|
||||
missing_glue = true;
|
||||
/* answer = ISC_FALSE; */
|
||||
missing_glue = ISC_TRUE;
|
||||
}
|
||||
}
|
||||
if (missing_glue)
|
||||
@@ -375,11 +374,11 @@ checkns(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner,
|
||||
freeaddrinfo(ai);
|
||||
return (answer);
|
||||
#else
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
#endif
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
checkmx(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner) {
|
||||
#ifdef USE_GETADDRINFO
|
||||
struct addrinfo hints, *ai, *cur;
|
||||
@@ -387,7 +386,7 @@ checkmx(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner) {
|
||||
char ownerbuf[DNS_NAME_FORMATSIZE];
|
||||
int result;
|
||||
int level = ISC_LOG_ERROR;
|
||||
bool answer = true;
|
||||
isc_boolean_t answer = ISC_TRUE;
|
||||
|
||||
memset(&hints, 0, sizeof(hints));
|
||||
hints.ai_flags = AI_CANONNAME;
|
||||
@@ -431,7 +430,7 @@ checkmx(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner) {
|
||||
add(namebuf, ERR_IS_MXCNAME);
|
||||
}
|
||||
if (level == ISC_LOG_ERROR)
|
||||
answer = false;
|
||||
answer = ISC_FALSE;
|
||||
}
|
||||
}
|
||||
freeaddrinfo(ai);
|
||||
@@ -449,7 +448,7 @@ checkmx(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner) {
|
||||
add(namebuf, ERR_NO_ADDRESSES);
|
||||
}
|
||||
/* XXX950 make fatal for 9.5.0. */
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
|
||||
default:
|
||||
if (!logged(namebuf, ERR_LOOKUP_FAILURE)) {
|
||||
@@ -458,14 +457,14 @@ checkmx(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner) {
|
||||
namebuf, gai_strerror(result));
|
||||
add(namebuf, ERR_LOOKUP_FAILURE);
|
||||
}
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
#else
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
#endif
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
checksrv(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner) {
|
||||
#ifdef USE_GETADDRINFO
|
||||
struct addrinfo hints, *ai, *cur;
|
||||
@@ -473,7 +472,7 @@ checksrv(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner) {
|
||||
char ownerbuf[DNS_NAME_FORMATSIZE];
|
||||
int result;
|
||||
int level = ISC_LOG_ERROR;
|
||||
bool answer = true;
|
||||
isc_boolean_t answer = ISC_TRUE;
|
||||
|
||||
memset(&hints, 0, sizeof(hints));
|
||||
hints.ai_flags = AI_CANONNAME;
|
||||
@@ -516,7 +515,7 @@ checksrv(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner) {
|
||||
add(namebuf, ERR_IS_SRVCNAME);
|
||||
}
|
||||
if (level == ISC_LOG_ERROR)
|
||||
answer = false;
|
||||
answer = ISC_FALSE;
|
||||
}
|
||||
}
|
||||
freeaddrinfo(ai);
|
||||
@@ -534,7 +533,7 @@ checksrv(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner) {
|
||||
add(namebuf, ERR_NO_ADDRESSES);
|
||||
}
|
||||
/* XXX950 make fatal for 9.5.0. */
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
|
||||
default:
|
||||
if (!logged(namebuf, ERR_LOOKUP_FAILURE)) {
|
||||
@@ -543,10 +542,10 @@ checksrv(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner) {
|
||||
namebuf, gai_strerror(result));
|
||||
add(namebuf, ERR_LOOKUP_FAILURE);
|
||||
}
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
#else
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -591,7 +590,8 @@ check_ttls(dns_zone_t *zone, dns_ttl_t maxttl) {
|
||||
dns_rdataset_t rdataset;
|
||||
dns_fixedname_t fname;
|
||||
dns_name_t *name;
|
||||
name = dns_fixedname_initname(&fname);
|
||||
dns_fixedname_init(&fname);
|
||||
name = dns_fixedname_name(&fname);
|
||||
dns_rdataset_init(&rdataset);
|
||||
|
||||
CHECK(dns_zone_getdb(zone, &db));
|
||||
@@ -653,7 +653,7 @@ check_ttls(dns_zone_t *zone, dns_ttl_t maxttl) {
|
||||
if (dbiter != NULL)
|
||||
dns_dbiterator_destroy(&dbiter);
|
||||
if (version != NULL)
|
||||
dns_db_closeversion(db, &version, false);
|
||||
dns_db_closeversion(db, &version, ISC_FALSE);
|
||||
if (db != NULL)
|
||||
dns_db_detach(&db);
|
||||
|
||||
@@ -686,7 +686,8 @@ load_zone(isc_mem_t *mctx, const char *zonename, const char *filename,
|
||||
|
||||
isc_buffer_constinit(&buffer, zonename, strlen(zonename));
|
||||
isc_buffer_add(&buffer, strlen(zonename));
|
||||
origin = dns_fixedname_initname(&fixorigin);
|
||||
dns_fixedname_init(&fixorigin);
|
||||
origin = dns_fixedname_name(&fixorigin);
|
||||
CHECK(dns_name_fromtext(origin, &buffer, dns_rootname, 0, NULL));
|
||||
CHECK(dns_zone_setorigin(zone, origin));
|
||||
CHECK(dns_zone_setdbtype(zone, 1, (const char * const *) dbtype));
|
||||
@@ -699,8 +700,8 @@ load_zone(isc_mem_t *mctx, const char *zonename, const char *filename,
|
||||
CHECK(dns_rdataclass_fromtext(&rdclass, ®ion));
|
||||
|
||||
dns_zone_setclass(zone, rdclass);
|
||||
dns_zone_setoption(zone, zone_options, true);
|
||||
dns_zone_setoption2(zone, zone_options2, true);
|
||||
dns_zone_setoption(zone, zone_options, ISC_TRUE);
|
||||
dns_zone_setoption2(zone, zone_options2, ISC_TRUE);
|
||||
dns_zone_setoption(zone, DNS_ZONEOPT_NOMERGE, nomerge);
|
||||
|
||||
dns_zone_setmaxttl(zone, maxttl);
|
||||
@@ -737,7 +738,7 @@ load_zone(isc_mem_t *mctx, const char *zonename, const char *filename,
|
||||
isc_result_t
|
||||
dump_zone(const char *zonename, dns_zone_t *zone, const char *filename,
|
||||
dns_masterformat_t fileformat, const dns_master_style_t *style,
|
||||
const uint32_t rawversion)
|
||||
const isc_uint32_t rawversion)
|
||||
{
|
||||
isc_result_t result;
|
||||
FILE *output = stdout;
|
||||
@@ -792,3 +793,4 @@ DestroySockets(void) {
|
||||
WSACleanup();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -9,15 +9,13 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: check-tool.h,v 1.18 2011/12/09 23:47:02 tbox Exp $ */
|
||||
|
||||
#ifndef CHECK_TOOL_H
|
||||
#define CHECK_TOOL_H
|
||||
|
||||
/*! \file */
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include <isc/lang.h>
|
||||
#include <isc/stdio.h>
|
||||
#include <isc/types.h>
|
||||
@@ -38,7 +36,7 @@ load_zone(isc_mem_t *mctx, const char *zonename, const char *filename,
|
||||
isc_result_t
|
||||
dump_zone(const char *zonename, dns_zone_t *zone, const char *filename,
|
||||
dns_masterformat_t fileformat, const dns_master_style_t *style,
|
||||
const uint32_t rawversion);
|
||||
const isc_uint32_t rawversion);
|
||||
|
||||
#ifdef _WIN32
|
||||
void InitSockets(void);
|
||||
@@ -47,10 +45,10 @@ void DestroySockets(void);
|
||||
|
||||
extern int debug;
|
||||
extern const char *journal;
|
||||
extern bool nomerge;
|
||||
extern bool docheckmx;
|
||||
extern bool docheckns;
|
||||
extern bool dochecksrv;
|
||||
extern isc_boolean_t nomerge;
|
||||
extern isc_boolean_t docheckmx;
|
||||
extern isc_boolean_t docheckns;
|
||||
extern isc_boolean_t dochecksrv;
|
||||
extern unsigned int zone_options;
|
||||
extern unsigned int zone_options2;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2000-2002, 2004, 2005, 2007, 2009, 2014-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000-2002, 2004, 2005, 2007, 2009, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@@ -136,5 +136,5 @@ BIND 9 Administrator Reference Manual\&.
|
||||
\fBInternet Systems Consortium, Inc\&.\fR
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
Copyright \(co 2000-2002, 2004, 2005, 2007, 2009, 2014-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2000-2002, 2004, 2005, 2007, 2009, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
|
||||
+35
-27
@@ -9,13 +9,13 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: named-checkconf.c,v 1.56 2011/03/12 04:59:46 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
@@ -93,18 +93,18 @@ directory_callback(const char *clausename, const cfg_obj_t *obj, void *arg) {
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
get_maps(const cfg_obj_t **maps, const char *name, const cfg_obj_t **obj) {
|
||||
int i;
|
||||
for (i = 0;; i++) {
|
||||
if (maps[i] == NULL)
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
if (cfg_map_get(maps[i], name, obj) == ISC_R_SUCCESS)
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
get_checknames(const cfg_obj_t **maps, const cfg_obj_t **obj) {
|
||||
const cfg_listelt_t *element;
|
||||
const cfg_obj_t *checknames;
|
||||
@@ -115,24 +115,29 @@ get_checknames(const cfg_obj_t **maps, const cfg_obj_t **obj) {
|
||||
|
||||
for (i = 0;; i++) {
|
||||
if (maps[i] == NULL)
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
checknames = NULL;
|
||||
result = cfg_map_get(maps[i], "check-names", &checknames);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
continue;
|
||||
if (checknames != NULL && !cfg_obj_islist(checknames)) {
|
||||
*obj = checknames;
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
for (element = cfg_list_first(checknames);
|
||||
element != NULL;
|
||||
element = cfg_list_next(element)) {
|
||||
value = cfg_listelt_value(element);
|
||||
type = cfg_tuple_get(value, "type");
|
||||
if (strcasecmp(cfg_obj_asstring(type), "master") != 0)
|
||||
if ((strcasecmp(cfg_obj_asstring(type),
|
||||
"primary") != 0) &&
|
||||
(strcasecmp(cfg_obj_asstring(type),
|
||||
"master") != 0))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
*obj = cfg_tuple_get(value, "mode");
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -165,7 +170,7 @@ configure_hint(const char *zfile, const char *zclass, isc_mem_t *mctx) {
|
||||
static isc_result_t
|
||||
configure_zone(const char *vclass, const char *view,
|
||||
const cfg_obj_t *zconfig, const cfg_obj_t *vconfig,
|
||||
const cfg_obj_t *config, isc_mem_t *mctx, bool list)
|
||||
const cfg_obj_t *config, isc_mem_t *mctx, isc_boolean_t list)
|
||||
{
|
||||
int i = 0;
|
||||
isc_result_t result;
|
||||
@@ -246,11 +251,14 @@ configure_zone(const char *vclass, const char *view,
|
||||
* Skip loading checks for any type other than
|
||||
* master and redirect
|
||||
*/
|
||||
if (strcasecmp(cfg_obj_asstring(typeobj), "hint") == 0)
|
||||
if (strcasecmp(cfg_obj_asstring(typeobj), "hint") == 0) {
|
||||
return (configure_hint(zfile, zclass, mctx));
|
||||
else if ((strcasecmp(cfg_obj_asstring(typeobj), "master") != 0) &&
|
||||
(strcasecmp(cfg_obj_asstring(typeobj), "redirect") != 0))
|
||||
} else if ((strcasecmp(cfg_obj_asstring(typeobj), "primary") != 0) &&
|
||||
(strcasecmp(cfg_obj_asstring(typeobj), "master") != 0) &&
|
||||
(strcasecmp(cfg_obj_asstring(typeobj), "redirect") != 0))
|
||||
{
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
/*
|
||||
* Is the redirect zone configured as a slave?
|
||||
@@ -414,7 +422,7 @@ configure_zone(const char *vclass, const char *view,
|
||||
/*% configure a view */
|
||||
static isc_result_t
|
||||
configure_view(const char *vclass, const char *view, const cfg_obj_t *config,
|
||||
const cfg_obj_t *vconfig, isc_mem_t *mctx, bool list)
|
||||
const cfg_obj_t *vconfig, isc_mem_t *mctx, isc_boolean_t list)
|
||||
{
|
||||
const cfg_listelt_t *element;
|
||||
const cfg_obj_t *voptions;
|
||||
@@ -463,7 +471,7 @@ config_getclass(const cfg_obj_t *classobj, dns_rdataclass_t defclass,
|
||||
/*% load zones from the configuration */
|
||||
static isc_result_t
|
||||
load_zones_fromconfig(const cfg_obj_t *config, isc_mem_t *mctx,
|
||||
bool list_zones)
|
||||
isc_boolean_t list_zones)
|
||||
{
|
||||
const cfg_listelt_t *element;
|
||||
const cfg_obj_t *views;
|
||||
@@ -532,12 +540,12 @@ main(int argc, char **argv) {
|
||||
isc_result_t result;
|
||||
int exit_status = 0;
|
||||
isc_entropy_t *ectx = NULL;
|
||||
bool load_zones = false;
|
||||
bool list_zones = false;
|
||||
bool print = false;
|
||||
isc_boolean_t load_zones = ISC_FALSE;
|
||||
isc_boolean_t list_zones = ISC_FALSE;
|
||||
isc_boolean_t print = ISC_FALSE;
|
||||
unsigned int flags = 0;
|
||||
|
||||
isc_commandline_errprint = false;
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
/*
|
||||
* Process memory debugging argument first.
|
||||
@@ -561,7 +569,7 @@ main(int argc, char **argv) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
isc_commandline_reset = true;
|
||||
isc_commandline_reset = ISC_TRUE;
|
||||
|
||||
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
|
||||
|
||||
@@ -572,11 +580,11 @@ main(int argc, char **argv) {
|
||||
break;
|
||||
|
||||
case 'j':
|
||||
nomerge = false;
|
||||
nomerge = ISC_FALSE;
|
||||
break;
|
||||
|
||||
case 'l':
|
||||
list_zones = true;
|
||||
list_zones = ISC_TRUE;
|
||||
break;
|
||||
|
||||
case 'm':
|
||||
@@ -592,7 +600,7 @@ main(int argc, char **argv) {
|
||||
break;
|
||||
|
||||
case 'p':
|
||||
print = true;
|
||||
print = ISC_TRUE;
|
||||
break;
|
||||
|
||||
case 'v':
|
||||
@@ -604,10 +612,10 @@ main(int argc, char **argv) {
|
||||
break;
|
||||
|
||||
case 'z':
|
||||
load_zones = true;
|
||||
docheckmx = false;
|
||||
docheckns = false;
|
||||
dochecksrv = false;
|
||||
load_zones = ISC_TRUE;
|
||||
docheckmx = ISC_FALSE;
|
||||
docheckns = ISC_FALSE;
|
||||
dochecksrv = ISC_FALSE;
|
||||
break;
|
||||
|
||||
case '?':
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--
|
||||
- Copyright (C) 2000-2002, 2004, 2005, 2007, 2009, 2014-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2002, 2004, 2005, 2007, 2009, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2000-2002, 2004-2007, 2009-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000-2002, 2004-2007, 2009-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@@ -325,5 +325,5 @@ BIND 9 Administrator Reference Manual\&.
|
||||
\fBInternet Systems Consortium, Inc\&.\fR
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
Copyright \(co 2000-2002, 2004-2007, 2009-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2000-2002, 2004-2007, 2009-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
|
||||
+24
-25
@@ -9,14 +9,13 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: named-checkzone.c,v 1.65.32.2 2012/02/07 02:45:21 each Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
#include <isc/app.h>
|
||||
#include <isc/commandline.h>
|
||||
@@ -110,10 +109,10 @@ main(int argc, char **argv) {
|
||||
dns_masterformat_t inputformat = dns_masterformat_text;
|
||||
dns_masterformat_t outputformat = dns_masterformat_text;
|
||||
dns_masterrawheader_t header;
|
||||
uint32_t rawversion = 1, serialnum = 0;
|
||||
isc_uint32_t rawversion = 1, serialnum = 0;
|
||||
dns_ttl_t maxttl = 0;
|
||||
bool snset = false;
|
||||
bool logdump = false;
|
||||
isc_boolean_t snset = ISC_FALSE;
|
||||
isc_boolean_t logdump = ISC_FALSE;
|
||||
FILE *errout = stdout;
|
||||
char *endp;
|
||||
|
||||
@@ -163,7 +162,7 @@ main(int argc, char **argv) {
|
||||
|
||||
#define ARGCMP(X) (strcmp(isc_commandline_argument, X) == 0)
|
||||
|
||||
isc_commandline_errprint = false;
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
while ((c = isc_commandline_parse(argc, argv,
|
||||
"c:df:hi:jJ:k:L:l:m:n:qr:s:t:o:vw:DF:M:S:T:W:"))
|
||||
@@ -181,33 +180,33 @@ main(int argc, char **argv) {
|
||||
if (ARGCMP("full")) {
|
||||
zone_options |= DNS_ZONEOPT_CHECKINTEGRITY |
|
||||
DNS_ZONEOPT_CHECKSIBLING;
|
||||
docheckmx = true;
|
||||
docheckns = true;
|
||||
dochecksrv = true;
|
||||
docheckmx = ISC_TRUE;
|
||||
docheckns = ISC_TRUE;
|
||||
dochecksrv = ISC_TRUE;
|
||||
} else if (ARGCMP("full-sibling")) {
|
||||
zone_options |= DNS_ZONEOPT_CHECKINTEGRITY;
|
||||
zone_options &= ~DNS_ZONEOPT_CHECKSIBLING;
|
||||
docheckmx = true;
|
||||
docheckns = true;
|
||||
dochecksrv = true;
|
||||
docheckmx = ISC_TRUE;
|
||||
docheckns = ISC_TRUE;
|
||||
dochecksrv = ISC_TRUE;
|
||||
} else if (ARGCMP("local")) {
|
||||
zone_options |= DNS_ZONEOPT_CHECKINTEGRITY;
|
||||
zone_options |= DNS_ZONEOPT_CHECKSIBLING;
|
||||
docheckmx = false;
|
||||
docheckns = false;
|
||||
dochecksrv = false;
|
||||
docheckmx = ISC_FALSE;
|
||||
docheckns = ISC_FALSE;
|
||||
dochecksrv = ISC_FALSE;
|
||||
} else if (ARGCMP("local-sibling")) {
|
||||
zone_options |= DNS_ZONEOPT_CHECKINTEGRITY;
|
||||
zone_options &= ~DNS_ZONEOPT_CHECKSIBLING;
|
||||
docheckmx = false;
|
||||
docheckns = false;
|
||||
dochecksrv = false;
|
||||
docheckmx = ISC_FALSE;
|
||||
docheckns = ISC_FALSE;
|
||||
dochecksrv = ISC_FALSE;
|
||||
} else if (ARGCMP("none")) {
|
||||
zone_options &= ~DNS_ZONEOPT_CHECKINTEGRITY;
|
||||
zone_options &= ~DNS_ZONEOPT_CHECKSIBLING;
|
||||
docheckmx = false;
|
||||
docheckns = false;
|
||||
dochecksrv = false;
|
||||
docheckmx = ISC_FALSE;
|
||||
docheckns = ISC_FALSE;
|
||||
dochecksrv = ISC_FALSE;
|
||||
} else {
|
||||
fprintf(stderr, "invalid argument to -i: %s\n",
|
||||
isc_commandline_argument);
|
||||
@@ -224,12 +223,12 @@ main(int argc, char **argv) {
|
||||
break;
|
||||
|
||||
case 'j':
|
||||
nomerge = false;
|
||||
nomerge = ISC_FALSE;
|
||||
break;
|
||||
|
||||
case 'J':
|
||||
journal = isc_commandline_argument;
|
||||
nomerge = false;
|
||||
nomerge = ISC_FALSE;
|
||||
break;
|
||||
|
||||
case 'k':
|
||||
@@ -250,7 +249,7 @@ main(int argc, char **argv) {
|
||||
break;
|
||||
|
||||
case 'L':
|
||||
snset = true;
|
||||
snset = ISC_TRUE;
|
||||
endp = NULL;
|
||||
serialnum = strtol(isc_commandline_argument, &endp, 0);
|
||||
if (*endp != '\0') {
|
||||
@@ -509,7 +508,7 @@ main(int argc, char **argv) {
|
||||
strcmp(output_filename, "/dev/fd/1") == 0 ||
|
||||
strcmp(output_filename, "/dev/stdout") == 0)) {
|
||||
errout = stderr;
|
||||
logdump = false;
|
||||
logdump = ISC_FALSE;
|
||||
}
|
||||
|
||||
if (isc_commandline_index + 2 != argc)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--
|
||||
- Copyright (C) 2000-2002, 2004-2007, 2009-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2002, 2004-2007, 2009-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2009, 2014-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2009, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@@ -155,5 +155,5 @@ BIND 9 Administrator Reference Manual\&.
|
||||
\fBInternet Systems Consortium, Inc\&.\fR
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
Copyright \(co 2009, 2014-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2009, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
@@ -58,7 +57,7 @@
|
||||
static char program[256];
|
||||
const char *progname;
|
||||
static enum { progmode_keygen, progmode_confgen} progmode;
|
||||
bool verbose = false; /* needed by util.c but not used here */
|
||||
isc_boolean_t verbose = ISC_FALSE; /* needed by util.c but not used here */
|
||||
|
||||
ISC_PLATFORM_NORETURN_PRE static void
|
||||
usage(int status) ISC_PLATFORM_NORETURN_POST;
|
||||
@@ -91,8 +90,8 @@ Usage:\n\
|
||||
int
|
||||
main(int argc, char **argv) {
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
bool show_final_mem = false;
|
||||
bool quiet = false;
|
||||
isc_boolean_t show_final_mem = ISC_FALSE;
|
||||
isc_boolean_t quiet = ISC_FALSE;
|
||||
isc_buffer_t key_txtbuffer;
|
||||
char key_txtsecret[256];
|
||||
isc_mem_t *mctx = NULL;
|
||||
@@ -129,13 +128,13 @@ main(int argc, char **argv) {
|
||||
|
||||
if (PROGCMP("tsig-keygen")) {
|
||||
progmode = progmode_keygen;
|
||||
quiet = true;
|
||||
quiet = ISC_TRUE;
|
||||
} else if (PROGCMP("ddns-confgen"))
|
||||
progmode = progmode_confgen;
|
||||
else
|
||||
INSIST(0);
|
||||
|
||||
isc_commandline_errprint = false;
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
while ((ch = isc_commandline_parse(argc, argv,
|
||||
"a:hk:Mmr:qs:y:z:")) != -1) {
|
||||
@@ -160,11 +159,11 @@ main(int argc, char **argv) {
|
||||
isc_mem_debugging = ISC_MEM_DEBUGTRACE;
|
||||
break;
|
||||
case 'm':
|
||||
show_final_mem = true;
|
||||
show_final_mem = ISC_TRUE;
|
||||
break;
|
||||
case 'q':
|
||||
if (progmode == progmode_confgen)
|
||||
quiet = true;
|
||||
quiet = ISC_TRUE;
|
||||
else
|
||||
usage(1);
|
||||
break;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--
|
||||
- Copyright (C) 2009, 2014-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2009, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: os.h,v 1.3 2009/06/11 23:47:55 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: keygen.c,v 1.4 2009/11/12 14:02:38 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -155,7 +156,7 @@ generate_key(isc_mem_t *mctx, const char *randomfile, dns_secalg_t alg,
|
||||
|
||||
#ifdef ISC_PLATFORM_CRYPTORANDOM
|
||||
if (randomfile == NULL) {
|
||||
isc_entropy_usehook(ectx, true);
|
||||
isc_entropy_usehook(ectx, ISC_TRUE);
|
||||
}
|
||||
#endif
|
||||
if (randomfile != NULL && strcmp(randomfile, "keyboard") == 0) {
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: keygen.h,v 1.3 2009/06/11 23:47:55 tbox Exp $ */
|
||||
|
||||
#ifndef RNDC_KEYGEN_H
|
||||
#define RNDC_KEYGEN_H 1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2001, 2003-2005, 2007, 2009, 2013-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2001, 2003-2005, 2007, 2009, 2013-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@@ -217,5 +217,5 @@ BIND 9 Administrator Reference Manual\&.
|
||||
\fBInternet Systems Consortium, Inc\&.\fR
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
Copyright \(co 2001, 2003-2005, 2007, 2009, 2013-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2001, 2003-2005, 2007, 2009, 2013-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
@@ -59,7 +58,7 @@
|
||||
static char program[256];
|
||||
const char *progname;
|
||||
|
||||
bool verbose = false;
|
||||
isc_boolean_t verbose = ISC_FALSE;
|
||||
|
||||
const char *keyfile, *keydef;
|
||||
|
||||
@@ -90,7 +89,7 @@ Usage:\n\
|
||||
|
||||
int
|
||||
main(int argc, char **argv) {
|
||||
bool show_final_mem = false;
|
||||
isc_boolean_t show_final_mem = ISC_FALSE;
|
||||
isc_buffer_t key_txtbuffer;
|
||||
char key_txtsecret[256];
|
||||
isc_mem_t *mctx = NULL;
|
||||
@@ -108,7 +107,7 @@ main(int argc, char **argv) {
|
||||
struct in6_addr addr6_dummy;
|
||||
char *chrootdir = NULL;
|
||||
char *user = NULL;
|
||||
bool keyonly = false;
|
||||
isc_boolean_t keyonly = ISC_FALSE;
|
||||
int len;
|
||||
|
||||
keydef = keyfile = RNDC_KEYFILE;
|
||||
@@ -123,14 +122,14 @@ main(int argc, char **argv) {
|
||||
serveraddr = DEFAULT_SERVER;
|
||||
port = DEFAULT_PORT;
|
||||
|
||||
isc_commandline_errprint = false;
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
while ((ch = isc_commandline_parse(argc, argv,
|
||||
"aA:b:c:hk:Mmp:r:s:t:u:Vy")) != -1)
|
||||
{
|
||||
switch (ch) {
|
||||
case 'a':
|
||||
keyonly = true;
|
||||
keyonly = ISC_TRUE;
|
||||
break;
|
||||
case 'A':
|
||||
algname = isc_commandline_argument;
|
||||
@@ -157,7 +156,7 @@ main(int argc, char **argv) {
|
||||
break;
|
||||
|
||||
case 'm':
|
||||
show_final_mem = true;
|
||||
show_final_mem = ISC_TRUE;
|
||||
break;
|
||||
case 'p':
|
||||
port = strtol(isc_commandline_argument, &p, 10);
|
||||
@@ -181,7 +180,7 @@ main(int argc, char **argv) {
|
||||
user = isc_commandline_argument;
|
||||
break;
|
||||
case 'V':
|
||||
verbose = true;
|
||||
verbose = ISC_TRUE;
|
||||
break;
|
||||
case '?':
|
||||
if (isc_commandline_option != '?') {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--
|
||||
- Copyright (C) 2001, 2003-2005, 2007, 2009, 2013-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2001, 2003-2005, 2007, 2009, 2013-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
# See the COPYRIGHT file distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
|
||||
# $Id: Makefile.in,v 1.3 2009/06/11 23:47:55 tbox Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: os.c,v 1.3 2009/06/11 23:47:55 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
+3
-2
@@ -9,21 +9,22 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: util.c,v 1.3 2009/06/11 23:47:55 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <isc/boolean.h>
|
||||
#include <isc/print.h>
|
||||
|
||||
#include "util.h"
|
||||
|
||||
extern bool verbose;
|
||||
extern isc_boolean_t verbose;
|
||||
extern const char *progname;
|
||||
|
||||
void
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: util.h,v 1.4 2009/09/29 15:06:05 fdupont Exp $ */
|
||||
|
||||
#ifndef RNDC_UTIL_H
|
||||
#define RNDC_UTIL_H 1
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: os.c,v 1.3 2009/06/11 23:47:55 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2014-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2014-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@@ -437,5 +437,5 @@ RFC5155\&.
|
||||
\fBInternet Systems Consortium, Inc\&.\fR
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
Copyright \(co 2014-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2014-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
|
||||
+78
-78
@@ -24,9 +24,7 @@
|
||||
#include <netdb.h>
|
||||
#endif
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <inttypes.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
@@ -96,40 +94,40 @@ static const char *port = "53";
|
||||
static isc_sockaddr_t *srcaddr4 = NULL, *srcaddr6 = NULL;
|
||||
static isc_sockaddr_t a4, a6;
|
||||
static char *curqname = NULL, *qname = NULL;
|
||||
static bool classset = false;
|
||||
static isc_boolean_t classset = ISC_FALSE;
|
||||
static dns_rdatatype_t qtype = dns_rdatatype_none;
|
||||
static bool typeset = false;
|
||||
static isc_boolean_t typeset = ISC_FALSE;
|
||||
|
||||
static unsigned int styleflags = 0;
|
||||
static uint32_t splitwidth = 0xffffffff;
|
||||
static bool
|
||||
showcomments = true,
|
||||
showdnssec = true,
|
||||
showtrust = true,
|
||||
rrcomments = true,
|
||||
noclass = false,
|
||||
nocrypto = false,
|
||||
nottl = false,
|
||||
multiline = false,
|
||||
short_form = false,
|
||||
print_unknown_format = false;
|
||||
static isc_uint32_t splitwidth = 0xffffffff;
|
||||
static isc_boolean_t
|
||||
showcomments = ISC_TRUE,
|
||||
showdnssec = ISC_TRUE,
|
||||
showtrust = ISC_TRUE,
|
||||
rrcomments = ISC_TRUE,
|
||||
noclass = ISC_FALSE,
|
||||
nocrypto = ISC_FALSE,
|
||||
nottl = ISC_FALSE,
|
||||
multiline = ISC_FALSE,
|
||||
short_form = ISC_FALSE,
|
||||
print_unknown_format = ISC_FALSE;
|
||||
|
||||
static bool
|
||||
resolve_trace = false,
|
||||
validator_trace = false,
|
||||
message_trace = false;
|
||||
static isc_boolean_t
|
||||
resolve_trace = ISC_FALSE,
|
||||
validator_trace = ISC_FALSE,
|
||||
message_trace = ISC_FALSE;
|
||||
|
||||
static bool
|
||||
use_ipv4 = true,
|
||||
use_ipv6 = true;
|
||||
static isc_boolean_t
|
||||
use_ipv4 = ISC_TRUE,
|
||||
use_ipv6 = ISC_TRUE;
|
||||
|
||||
static bool
|
||||
cdflag = false,
|
||||
no_sigs = false,
|
||||
root_validation = true,
|
||||
dlv_validation = true;
|
||||
static isc_boolean_t
|
||||
cdflag = ISC_FALSE,
|
||||
no_sigs = ISC_FALSE,
|
||||
root_validation = ISC_TRUE,
|
||||
dlv_validation = ISC_TRUE;
|
||||
|
||||
static bool use_tcp = false;
|
||||
static isc_boolean_t use_tcp = ISC_FALSE;
|
||||
|
||||
static char *anchorfile = NULL;
|
||||
static char *trust_anchor = NULL;
|
||||
@@ -146,10 +144,10 @@ static char anchortext[] = MANAGED_KEYS;
|
||||
* Static function prototypes
|
||||
*/
|
||||
static isc_result_t
|
||||
get_reverse(char *reverse, size_t len, char *value, bool strict);
|
||||
get_reverse(char *reverse, size_t len, char *value, isc_boolean_t strict);
|
||||
|
||||
static isc_result_t
|
||||
parse_uint(uint32_t *uip, const char *value, uint32_t max,
|
||||
parse_uint(isc_uint32_t *uip, const char *value, isc_uint32_t max,
|
||||
const char *desc);
|
||||
|
||||
static void
|
||||
@@ -410,7 +408,7 @@ printdata(dns_rdataset_t *rdataset, dns_name_t *owner,
|
||||
{
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
static dns_trust_t trust;
|
||||
static bool first = true;
|
||||
static isc_boolean_t first = ISC_TRUE;
|
||||
isc_buffer_t target;
|
||||
isc_region_t r;
|
||||
char *t = NULL;
|
||||
@@ -432,7 +430,7 @@ printdata(dns_rdataset_t *rdataset, dns_name_t *owner,
|
||||
putchar('\n');
|
||||
print_status(rdataset);
|
||||
trust = rdataset->trust;
|
||||
first = false;
|
||||
first = ISC_FALSE;
|
||||
}
|
||||
|
||||
do {
|
||||
@@ -552,7 +550,8 @@ convert_name(dns_fixedname_t *fn, dns_name_t **name, const char *text) {
|
||||
|
||||
isc_buffer_constinit(&b, text, len);
|
||||
isc_buffer_add(&b, len);
|
||||
n = dns_fixedname_initname(fn);
|
||||
dns_fixedname_init(fn);
|
||||
n = dns_fixedname_name(fn);
|
||||
|
||||
result = dns_name_fromtext(n, &b, dns_rootname, 0, NULL);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
@@ -568,7 +567,7 @@ convert_name(dns_fixedname_t *fn, dns_name_t **name, const char *text) {
|
||||
static isc_result_t
|
||||
key_fromconfig(const cfg_obj_t *key, dns_client_t *client) {
|
||||
dns_rdata_dnskey_t keystruct;
|
||||
uint32_t flags, proto, alg;
|
||||
isc_uint32_t flags, proto, alg;
|
||||
const char *keystr, *keynamestr;
|
||||
unsigned char keydata[4096];
|
||||
isc_buffer_t keydatabuf;
|
||||
@@ -578,7 +577,7 @@ key_fromconfig(const cfg_obj_t *key, dns_client_t *client) {
|
||||
dns_fixedname_t fkeyname;
|
||||
dns_name_t *keyname;
|
||||
isc_result_t result;
|
||||
bool match_root = false, match_dlv = false;
|
||||
isc_boolean_t match_root = ISC_FALSE, match_dlv = ISC_FALSE;
|
||||
|
||||
keynamestr = cfg_obj_asstring(cfg_tuple_get(key, "name"));
|
||||
CHECK(convert_name(&fkeyname, &keyname, keynamestr));
|
||||
@@ -623,9 +622,9 @@ key_fromconfig(const cfg_obj_t *key, dns_client_t *client) {
|
||||
if (alg > 0xff)
|
||||
CHECK(ISC_R_RANGE);
|
||||
|
||||
keystruct.flags = (uint16_t)flags;
|
||||
keystruct.protocol = (uint8_t)proto;
|
||||
keystruct.algorithm = (uint8_t)alg;
|
||||
keystruct.flags = (isc_uint16_t)flags;
|
||||
keystruct.protocol = (isc_uint8_t)proto;
|
||||
keystruct.algorithm = (isc_uint8_t)alg;
|
||||
|
||||
isc_buffer_init(&keydatabuf, keydata, sizeof(keydata));
|
||||
isc_buffer_init(&rrdatabuf, rrdata, sizeof(rrdata));
|
||||
@@ -780,7 +779,7 @@ addserver(dns_client_t *client) {
|
||||
struct in6_addr in6;
|
||||
isc_sockaddr_t *sa;
|
||||
isc_sockaddrlist_t servers;
|
||||
uint32_t destport;
|
||||
isc_uint32_t destport;
|
||||
isc_result_t result;
|
||||
dns_name_t *name = NULL;
|
||||
|
||||
@@ -871,7 +870,7 @@ findserver(dns_client_t *client) {
|
||||
irs_resconf_t *resconf = NULL;
|
||||
isc_sockaddrlist_t *nameservers;
|
||||
isc_sockaddr_t *sa, *next;
|
||||
uint32_t destport;
|
||||
isc_uint32_t destport;
|
||||
|
||||
result = parse_uint(&destport, port, 0xffff, "port");
|
||||
if (result != ISC_R_SUCCESS)
|
||||
@@ -958,9 +957,9 @@ next_token(char **stringp, const char *delim) {
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
parse_uint(uint32_t *uip, const char *value, uint32_t max,
|
||||
parse_uint(isc_uint32_t *uip, const char *value, isc_uint32_t max,
|
||||
const char *desc) {
|
||||
uint32_t n;
|
||||
isc_uint32_t n;
|
||||
isc_result_t result = isc_parse_uint32(&n, value, 10);
|
||||
if (result == ISC_R_SUCCESS && n > max)
|
||||
result = ISC_R_RANGE;
|
||||
@@ -978,7 +977,7 @@ plus_option(char *option) {
|
||||
isc_result_t result;
|
||||
char option_store[256];
|
||||
char *cmd, *value, *ptr;
|
||||
bool state = true;
|
||||
isc_boolean_t state = ISC_TRUE;
|
||||
|
||||
strlcpy(option_store, option, sizeof(option_store));
|
||||
ptr = option_store;
|
||||
@@ -990,7 +989,7 @@ plus_option(char *option) {
|
||||
value = ptr;
|
||||
if (strncasecmp(cmd, "no", 2)==0) {
|
||||
cmd += 2;
|
||||
state = false;
|
||||
state = ISC_FALSE;
|
||||
}
|
||||
|
||||
#define FULLCHECK(A) \
|
||||
@@ -1015,7 +1014,7 @@ plus_option(char *option) {
|
||||
break;
|
||||
case 'l': /* class */
|
||||
FULLCHECK("class");
|
||||
noclass = !state;
|
||||
noclass = ISC_TF(!state);
|
||||
break;
|
||||
case 'o': /* comments */
|
||||
FULLCHECK("comments");
|
||||
@@ -1023,7 +1022,7 @@ plus_option(char *option) {
|
||||
break;
|
||||
case 'r': /* crypto */
|
||||
FULLCHECK("crypto");
|
||||
nocrypto = !state;
|
||||
nocrypto = ISC_TF(!state);
|
||||
break;
|
||||
default:
|
||||
goto invalid_option;
|
||||
@@ -1096,10 +1095,10 @@ plus_option(char *option) {
|
||||
FULLCHECK("short");
|
||||
short_form = state;
|
||||
if (short_form) {
|
||||
multiline = false;
|
||||
showcomments = false;
|
||||
showtrust = false;
|
||||
showdnssec = false;
|
||||
multiline = ISC_FALSE;
|
||||
showcomments = ISC_FALSE;
|
||||
showtrust = ISC_FALSE;
|
||||
showdnssec = ISC_FALSE;
|
||||
}
|
||||
break;
|
||||
case 'p': /* split */
|
||||
@@ -1151,7 +1150,7 @@ plus_option(char *option) {
|
||||
break;
|
||||
case 't': /* ttl */
|
||||
FULLCHECK("ttl");
|
||||
nottl = !state;
|
||||
nottl = ISC_TF(!state);
|
||||
break;
|
||||
default:
|
||||
goto invalid_option;
|
||||
@@ -1179,11 +1178,11 @@ plus_option(char *option) {
|
||||
* options: "46a:b:c:d:himp:q:t:vx:";
|
||||
*/
|
||||
static const char *single_dash_opts = "46himv";
|
||||
static bool
|
||||
dash_option(char *option, char *next, bool *open_type_class) {
|
||||
static isc_boolean_t
|
||||
dash_option(char *option, char *next, isc_boolean_t *open_type_class) {
|
||||
char opt, *value;
|
||||
isc_result_t result;
|
||||
bool value_from_next;
|
||||
isc_boolean_t value_from_next;
|
||||
isc_textregion_t tr;
|
||||
dns_rdatatype_t rdtype;
|
||||
dns_rdataclass_t rdclass;
|
||||
@@ -1191,7 +1190,7 @@ dash_option(char *option, char *next, bool *open_type_class) {
|
||||
struct in_addr in4;
|
||||
struct in6_addr in6;
|
||||
in_port_t srcport;
|
||||
uint32_t num;
|
||||
isc_uint32_t num;
|
||||
char *hash;
|
||||
|
||||
while (strpbrk(option, single_dash_opts) == &option[0]) {
|
||||
@@ -1207,7 +1206,7 @@ dash_option(char *option, char *next, bool *open_type_class) {
|
||||
fatal("IPv4 networking not available");
|
||||
if (use_ipv6) {
|
||||
isc_net_disableipv6();
|
||||
use_ipv6 = false;
|
||||
use_ipv6 = ISC_FALSE;
|
||||
}
|
||||
break;
|
||||
case '6':
|
||||
@@ -1215,7 +1214,7 @@ dash_option(char *option, char *next, bool *open_type_class) {
|
||||
fatal("IPv6 networking not available");
|
||||
if (use_ipv4) {
|
||||
isc_net_disableipv4();
|
||||
use_ipv4 = false;
|
||||
use_ipv4 = ISC_FALSE;
|
||||
}
|
||||
break;
|
||||
case 'h':
|
||||
@@ -1223,9 +1222,9 @@ dash_option(char *option, char *next, bool *open_type_class) {
|
||||
exit(0);
|
||||
/* NOTREACHED */
|
||||
case 'i':
|
||||
no_sigs = true;
|
||||
dlv_validation = false;
|
||||
root_validation = false;
|
||||
no_sigs = ISC_TRUE;
|
||||
dlv_validation = ISC_FALSE;
|
||||
root_validation = ISC_FALSE;
|
||||
break;
|
||||
case 'm':
|
||||
/* handled in preparse_args() */
|
||||
@@ -1240,14 +1239,14 @@ dash_option(char *option, char *next, bool *open_type_class) {
|
||||
if (strlen(option) > 1U)
|
||||
option = &option[1];
|
||||
else
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
opt = option[0];
|
||||
if (strlen(option) > 1U) {
|
||||
value_from_next = false;
|
||||
value_from_next = ISC_FALSE;
|
||||
value = &option[1];
|
||||
} else {
|
||||
value_from_next = true;
|
||||
value_from_next = ISC_TRUE;
|
||||
value = next;
|
||||
}
|
||||
if (value == NULL)
|
||||
@@ -1293,13 +1292,13 @@ dash_option(char *option, char *next, bool *open_type_class) {
|
||||
if (classset)
|
||||
warn("extra query class");
|
||||
|
||||
*open_type_class = false;
|
||||
*open_type_class = ISC_FALSE;
|
||||
tr.base = value;
|
||||
tr.length = strlen(value);
|
||||
result = dns_rdataclass_fromtext(&rdclass,
|
||||
(isc_textregion_t *)&tr);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
classset = true;
|
||||
classset = ISC_TRUE;
|
||||
else if (rdclass != dns_rdataclass_in)
|
||||
warn("ignoring non-IN query class");
|
||||
else
|
||||
@@ -1324,7 +1323,7 @@ dash_option(char *option, char *next, bool *open_type_class) {
|
||||
fatal("out of memory");
|
||||
return (value_from_next);
|
||||
case 't':
|
||||
*open_type_class = false;
|
||||
*open_type_class = ISC_FALSE;
|
||||
tr.base = value;
|
||||
tr.length = strlen(value);
|
||||
result = dns_rdatatype_fromtext(&rdtype,
|
||||
@@ -1336,13 +1335,13 @@ dash_option(char *option, char *next, bool *open_type_class) {
|
||||
rdtype == dns_rdatatype_axfr)
|
||||
fatal("Transfer not supported");
|
||||
qtype = rdtype;
|
||||
typeset = true;
|
||||
typeset = ISC_TRUE;
|
||||
} else
|
||||
warn("ignoring invalid type");
|
||||
return (value_from_next);
|
||||
case 'x':
|
||||
result = get_reverse(textname, sizeof(textname), value,
|
||||
false);
|
||||
ISC_FALSE);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
if (curqname != NULL) {
|
||||
isc_mem_free(mctx, curqname);
|
||||
@@ -1354,7 +1353,7 @@ dash_option(char *option, char *next, bool *open_type_class) {
|
||||
if (typeset)
|
||||
warn("extra query type");
|
||||
qtype = dns_rdatatype_ptr;
|
||||
typeset = true;
|
||||
typeset = ISC_TRUE;
|
||||
} else {
|
||||
fprintf(stderr, "Invalid IP address %s\n", value);
|
||||
exit(1);
|
||||
@@ -1366,7 +1365,7 @@ dash_option(char *option, char *next, bool *open_type_class) {
|
||||
usage();
|
||||
}
|
||||
/* NOTREACHED */
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1375,7 +1374,7 @@ dash_option(char *option, char *next, bool *open_type_class) {
|
||||
*/
|
||||
static void
|
||||
preparse_args(int argc, char **argv) {
|
||||
bool ipv4only = false, ipv6only = false;
|
||||
isc_boolean_t ipv4only = ISC_FALSE, ipv6only = ISC_FALSE;
|
||||
char *option;
|
||||
|
||||
for (argc--, argv++; argc > 0; argc--, argv++) {
|
||||
@@ -1392,13 +1391,13 @@ preparse_args(int argc, char **argv) {
|
||||
if (ipv6only) {
|
||||
fatal("only one of -4 and -6 allowed");
|
||||
}
|
||||
ipv4only = true;
|
||||
ipv4only = ISC_TRUE;
|
||||
break;
|
||||
case '6':
|
||||
if (ipv4only) {
|
||||
fatal("only one of -4 and -6 allowed");
|
||||
}
|
||||
ipv6only = true;
|
||||
ipv6only = ISC_TRUE;
|
||||
break;
|
||||
}
|
||||
option = &option[1];
|
||||
@@ -1418,7 +1417,7 @@ parse_args(int argc, char **argv) {
|
||||
isc_textregion_t tr;
|
||||
dns_rdatatype_t rdtype;
|
||||
dns_rdataclass_t rdclass;
|
||||
bool open_type_class = true;
|
||||
isc_boolean_t open_type_class = ISC_TRUE;
|
||||
|
||||
for (; argc > 0; argc--, argv++) {
|
||||
if (argv[0][0] == '@') {
|
||||
@@ -1457,7 +1456,7 @@ parse_args(int argc, char **argv) {
|
||||
rdtype == dns_rdatatype_axfr)
|
||||
fatal("Transfer not supported");
|
||||
qtype = rdtype;
|
||||
typeset = true;
|
||||
typeset = ISC_TRUE;
|
||||
continue;
|
||||
}
|
||||
result = dns_rdataclass_fromtext(&rdclass,
|
||||
@@ -1526,7 +1525,7 @@ reverse_octets(const char *in, char **p, char *end) {
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
get_reverse(char *reverse, size_t len, char *value, bool strict) {
|
||||
get_reverse(char *reverse, size_t len, char *value, isc_boolean_t strict) {
|
||||
int r;
|
||||
isc_result_t result;
|
||||
isc_netaddr_t addr;
|
||||
@@ -1539,7 +1538,8 @@ get_reverse(char *reverse, size_t len, char *value, bool strict) {
|
||||
dns_name_t *name;
|
||||
unsigned int options = 0;
|
||||
|
||||
name = dns_fixedname_initname(&fname);
|
||||
dns_fixedname_init(&fname);
|
||||
name = dns_fixedname_name(&fname);
|
||||
result = dns_byaddr_createptrname2(&addr, options, name);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--
|
||||
- Copyright (C) 2014-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2014-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
|
||||
+6
-6
@@ -19,7 +19,7 @@ READLINE_LIB = @READLINE_LIB@
|
||||
|
||||
CINCLUDES = -I${srcdir}/include ${DNS_INCLUDES} \
|
||||
${BIND9_INCLUDES} ${ISC_INCLUDES} \
|
||||
${IRS_INCLUDES} ${ISCCFG_INCLUDES} @LIBIDN2_CFLAGS@ @DST_OPENSSL_INC@
|
||||
${IRS_INCLUDES} ${ISCCFG_INCLUDES} @DST_OPENSSL_INC@
|
||||
|
||||
CDEFINES = -DVERSION=\"${VERSION}\" @CRYPTO@
|
||||
CWARNINGS =
|
||||
@@ -41,10 +41,10 @@ DEPLIBS = ${DNSDEPLIBS} ${IRSDEPLIBS} ${BIND9DEPLIBS} \
|
||||
${ISCDEPLIBS} ${ISCCFGDEPLIBS}
|
||||
|
||||
LIBS = ${DNSLIBS} ${IRSLIBS} ${BIND9LIBS} ${ISCCFGLIBS} \
|
||||
${ISCLIBS} @IDNKIT_LIBS@ @LIBIDN2_LIBS@ @LIBS@
|
||||
${ISCLIBS} @IDNLIBS@ @LIBS@
|
||||
|
||||
NOSYMLIBS = ${DNSLIBS} ${IRSLIBS} ${BIND9LIBS} ${ISCCFGLIBS} \
|
||||
${ISCNOSYMLIBS} @IDNKIT_LIBS@ @LIBIDN2_LIBS@ @LIBS@
|
||||
${ISCNOSYMLIBS} @IDNLIBS@ @LIBS@
|
||||
|
||||
SUBDIRS =
|
||||
|
||||
@@ -99,12 +99,12 @@ install:: dig@EXEEXT@ host@EXEEXT@ nslookup@EXEEXT@ installdirs
|
||||
${LIBTOOL_MODE_INSTALL} ${INSTALL_PROGRAM} \
|
||||
nslookup@EXEEXT@ ${DESTDIR}${bindir}
|
||||
for m in ${MANPAGES}; do \
|
||||
${INSTALL_DATA} ${srcdir}/$$m ${DESTDIR}${mandir}/man1 || exit 1; \
|
||||
done
|
||||
${INSTALL_DATA} ${srcdir}/$$m ${DESTDIR}${mandir}/man1; \
|
||||
done
|
||||
|
||||
uninstall::
|
||||
for m in ${MANPAGES}; do \
|
||||
rm -f ${DESTDIR}${mandir}/man1/$$m || exit 1; \
|
||||
rm -f ${DESTDIR}${mandir}/man1/$$m ; \
|
||||
done
|
||||
${LIBTOOL_MODE_UNINSTALL} rm -f ${DESTDIR}${bindir}/nslookup@EXEEXT@
|
||||
${LIBTOOL_MODE_UNINSTALL} rm -f ${DESTDIR}${bindir}/host@EXEEXT@
|
||||
|
||||
+8
-14
@@ -176,7 +176,7 @@ using the command\-line interface\&.
|
||||
.PP
|
||||
\-i
|
||||
.RS 4
|
||||
Do reverse IPv6 lookups using the obsolete RFC 1886 IP6\&.INT domain, which is no longer in use\&. Obsolete bit string label queries (RFC 2874) are not attempted\&.
|
||||
Do reverse IPv6 lookups using the obsolete RFC1886 IP6\&.INT domain, which is no longer in use\&. Obsolete bit string label queries (RFC2874) are not attempted\&.
|
||||
.RE
|
||||
.PP
|
||||
\-k \fIkeyfile\fR
|
||||
@@ -210,15 +210,13 @@ from other arguments\&.
|
||||
.PP
|
||||
\-t \fItype\fR
|
||||
.RS 4
|
||||
The resource record type to query\&. It can be any valid query type\&. If it is a resource record type supported in BIND 9, it can be given by the type mnemonic (such as "NS" or "AAAA")\&. The default query type is "A", unless the
|
||||
The resource record type to query\&. It can be any valid query type which is supported in BIND 9\&. The default query type is "A", unless the
|
||||
\fB\-x\fR
|
||||
option is supplied to indicate a reverse lookup\&. A zone transfer can be requested by specifying a type of AXFR\&. When an incremental zone transfer (IXFR) is required, set the
|
||||
\fItype\fR
|
||||
to
|
||||
ixfr=N\&. The incremental zone transfer will contain the changes made to the zone since the serial number in the zone\*(Aqs SOA record was
|
||||
\fIN\fR\&.
|
||||
.sp
|
||||
All resource record types can be expressed as "TYPEnn", where "nn" is the number of the type\&. If the resource record type is not supported in BIND 9, the result will be displayed as described in RFC 3597\&.
|
||||
.RE
|
||||
.PP
|
||||
\-u
|
||||
@@ -466,11 +464,6 @@ Show [or do not show] the IP address and port number that supplied the answer wh
|
||||
option is enabled\&. If short form answers are requested, the default is not to show the source address and port number of the server that provided the answer\&.
|
||||
.RE
|
||||
.PP
|
||||
\fB+[no]idnin\fR
|
||||
.RS 4
|
||||
Process [do not process] IDN domain names on input\&. This requires IDN SUPPORT to have been enabled at compile time\&. The default is to process IDN input\&.
|
||||
.RE
|
||||
.PP
|
||||
\fB+[no]idnout\fR
|
||||
.RS 4
|
||||
Convert [do not convert] puny code on output\&. This requires IDN SUPPORT to have been enabled at compile time\&. The default is to convert output\&.
|
||||
@@ -782,10 +775,11 @@ If
|
||||
\fBdig\fR
|
||||
has been built with IDN (internationalized domain name) support, it can accept and display non\-ASCII domain names\&.
|
||||
\fBdig\fR
|
||||
appropriately converts character encoding of domain name before sending a request to DNS server or displaying a reply from the server\&. If you\*(Aqd like to turn off the IDN support for some reason, use parameters
|
||||
\fI+noidnin\fR
|
||||
and
|
||||
\fI+noidnout\fR\&.
|
||||
appropriately converts character encoding of domain name before sending a request to DNS server or displaying a reply from the server\&. If you\*(Aqd like to turn off the IDN support for some reason, defines the
|
||||
\fBIDN_DISABLE\fR
|
||||
environment variable\&. The IDN support is disabled if the variable is set when
|
||||
\fBdig\fR
|
||||
runs\&.
|
||||
.SH "FILES"
|
||||
.PP
|
||||
/etc/resolv\&.conf
|
||||
@@ -797,7 +791,7 @@ ${HOME}/\&.digrc
|
||||
\fBhost\fR(1),
|
||||
\fBnamed\fR(8),
|
||||
\fBdnssec-keygen\fR(8),
|
||||
RFC 1035\&.
|
||||
RFC1035\&.
|
||||
.SH "BUGS"
|
||||
.PP
|
||||
There are probably too many query options\&.
|
||||
|
||||
+149
-175
@@ -12,9 +12,6 @@
|
||||
/*! \file */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
#include <ctype.h>
|
||||
@@ -64,10 +61,10 @@ static int addresscount = 0;
|
||||
static char domainopt[DNS_NAME_MAXTEXT];
|
||||
static char hexcookie[81];
|
||||
|
||||
static bool short_form = false, printcmd = true,
|
||||
ip6_int = false, plusquest = false, pluscomm = false,
|
||||
ipv4only = false, ipv6only = false;
|
||||
static uint32_t splitwidth = 0xffffffff;
|
||||
static isc_boolean_t short_form = ISC_FALSE, printcmd = ISC_TRUE,
|
||||
ip6_int = ISC_FALSE, plusquest = ISC_FALSE, pluscomm = ISC_FALSE,
|
||||
ipv4only = ISC_FALSE, ipv6only = ISC_FALSE;
|
||||
static isc_uint32_t splitwidth = 0xffffffff;
|
||||
|
||||
/*% opcode text */
|
||||
static const char * const opcodetext[] = {
|
||||
@@ -193,8 +190,7 @@ help(void) {
|
||||
" +[no]fail (Don't try next server on SERVFAIL)\n"
|
||||
" +[no]header-only (Send query without a question section)\n"
|
||||
" +[no]identify (ID responders in short answers)\n"
|
||||
" +[no]idnin (Parse IDN names)\n"
|
||||
" +[no]idnout (Convert IDN response)\n"
|
||||
" +[no]idnout (convert IDN response)\n"
|
||||
" +[no]ignore (Don't revert to TCP for TC responses.)\n"
|
||||
" +[no]keepalive (Request EDNS TCP keepalive)\n"
|
||||
" +[no]keepopen (Keep the TCP socket open between queries)\n"
|
||||
@@ -241,7 +237,7 @@ help(void) {
|
||||
*/
|
||||
static void
|
||||
received(unsigned int bytes, isc_sockaddr_t *from, dig_query_t *query) {
|
||||
uint64_t diff;
|
||||
isc_uint64_t diff;
|
||||
time_t tnow;
|
||||
struct tm tmnow;
|
||||
#ifdef WIN32
|
||||
@@ -282,36 +278,36 @@ received(unsigned int bytes, isc_sockaddr_t *from, dig_query_t *query) {
|
||||
#endif
|
||||
if (query->lookup->doing_xfr) {
|
||||
printf(";; XFR size: %u records (messages %u, "
|
||||
"bytes %" PRIu64 ")\n",
|
||||
"bytes %" ISC_PRINT_QUADFORMAT "u)\n",
|
||||
query->rr_count, query->msg_count,
|
||||
query->byte_count);
|
||||
} else {
|
||||
printf(";; MSG SIZE rcvd: %u\n", bytes);
|
||||
}
|
||||
if (tsigkey != NULL) {
|
||||
if (key != NULL) {
|
||||
if (!validated)
|
||||
puts(";; WARNING -- Some TSIG could not "
|
||||
"be validated");
|
||||
}
|
||||
if ((tsigkey == NULL) && (keysecret[0] != 0)) {
|
||||
if ((key == NULL) && (keysecret[0] != 0)) {
|
||||
puts(";; WARNING -- TSIG key was not used.");
|
||||
}
|
||||
puts("");
|
||||
} else if (query->lookup->identify && !short_form) {
|
||||
diff = isc_time_microdiff(&query->time_recv, &query->time_sent);
|
||||
if (query->lookup->use_usec)
|
||||
printf(";; Received %" PRIu64 " bytes "
|
||||
printf(";; Received %" ISC_PRINT_QUADFORMAT "u bytes "
|
||||
"from %s(%s) in %ld us\n\n",
|
||||
query->lookup->doing_xfr
|
||||
? query->byte_count
|
||||
: (uint64_t)bytes,
|
||||
: (isc_uint64_t)bytes,
|
||||
fromtext, query->userarg, (long) diff);
|
||||
else
|
||||
printf(";; Received %" PRIu64 " bytes "
|
||||
printf(";; Received %" ISC_PRINT_QUADFORMAT "u bytes "
|
||||
"from %s(%s) in %ld ms\n\n",
|
||||
query->lookup->doing_xfr
|
||||
? query->byte_count
|
||||
: (uint64_t)bytes,
|
||||
: (isc_uint64_t)bytes,
|
||||
fromtext, query->userarg, (long) diff / 1000);
|
||||
}
|
||||
}
|
||||
@@ -333,7 +329,7 @@ trying(char *frm, dig_lookup_t *lookup) {
|
||||
static isc_result_t
|
||||
say_message(dns_rdata_t *rdata, dig_query_t *query, isc_buffer_t *buf) {
|
||||
isc_result_t result;
|
||||
uint64_t diff;
|
||||
isc_uint64_t diff;
|
||||
char store[sizeof(" in 18446744073709551616 us.")];
|
||||
unsigned int styleflags = 0;
|
||||
|
||||
@@ -361,11 +357,10 @@ say_message(dns_rdata_t *rdata, dig_query_t *query, isc_buffer_t *buf) {
|
||||
diff = isc_time_microdiff(&query->time_recv, &query->time_sent);
|
||||
ADD_STRING(buf, " from server ");
|
||||
ADD_STRING(buf, query->servname);
|
||||
if (query->lookup->use_usec) {
|
||||
snprintf(store, sizeof(store), " in %" PRIu64 " us.", diff);
|
||||
} else {
|
||||
snprintf(store, sizeof(store), " in %" PRIu64 " ms.", diff / 1000);
|
||||
}
|
||||
if (query->lookup->use_usec)
|
||||
snprintf(store, sizeof(store), " in %" ISC_PLATFORM_QUADFORMAT "u us.", diff);
|
||||
else
|
||||
snprintf(store, sizeof(store), " in %" ISC_PLATFORM_QUADFORMAT "u ms.", diff / 1000);
|
||||
ADD_STRING(buf, store);
|
||||
}
|
||||
ADD_STRING(buf, "\n");
|
||||
@@ -423,7 +418,7 @@ short_answer(dns_message_t *msg, dns_messagetextflag_t flags,
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
isdotlocal(dns_message_t *msg) {
|
||||
isc_result_t result;
|
||||
static unsigned char local_ndata[] = { "\005local\0" };
|
||||
@@ -438,16 +433,16 @@ isdotlocal(dns_message_t *msg) {
|
||||
dns_name_t *name = NULL;
|
||||
dns_message_currentname(msg, DNS_SECTION_QUESTION, &name);
|
||||
if (dns_name_issubdomain(name, &local))
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
|
||||
/*
|
||||
* Callback from dighost.c to print the reply from a server
|
||||
*/
|
||||
static isc_result_t
|
||||
printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
|
||||
printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
|
||||
isc_result_t result;
|
||||
dns_messagetextflag_t flags;
|
||||
isc_buffer_t *buf = NULL;
|
||||
@@ -691,7 +686,7 @@ cleanup:
|
||||
static void
|
||||
printgreeting(int argc, char **argv, dig_lookup_t *lookup) {
|
||||
int i;
|
||||
static bool first = true;
|
||||
static isc_boolean_t first = ISC_TRUE;
|
||||
char append[MXNAME];
|
||||
|
||||
if (printcmd) {
|
||||
@@ -718,7 +713,7 @@ printgreeting(int argc, char **argv, dig_lookup_t *lookup) {
|
||||
";; global options:%s%s\n",
|
||||
short_form ? " +short" : "",
|
||||
printcmd ? " +cmd" : "");
|
||||
first = false;
|
||||
first = ISC_FALSE;
|
||||
strlcat(lookup->cmdline, append,
|
||||
sizeof(lookup->cmdline));
|
||||
}
|
||||
@@ -733,14 +728,14 @@ printgreeting(int argc, char **argv, dig_lookup_t *lookup) {
|
||||
*/
|
||||
|
||||
static void
|
||||
plus_option(const char *option, bool is_batchfile,
|
||||
plus_option(const char *option, isc_boolean_t is_batchfile,
|
||||
dig_lookup_t *lookup)
|
||||
{
|
||||
isc_result_t result;
|
||||
char option_store[256];
|
||||
char *cmd, *value, *ptr, *code;
|
||||
uint32_t num;
|
||||
bool state = true;
|
||||
isc_uint32_t num;
|
||||
isc_boolean_t state = ISC_TRUE;
|
||||
size_t n;
|
||||
|
||||
strlcpy(option_store, option, sizeof(option_store));
|
||||
@@ -753,7 +748,7 @@ plus_option(const char *option, bool is_batchfile,
|
||||
value = ptr;
|
||||
if (strncasecmp(cmd, "no", 2)==0) {
|
||||
cmd += 2;
|
||||
state = false;
|
||||
state = ISC_FALSE;
|
||||
}
|
||||
|
||||
#define FULLCHECK(A) \
|
||||
@@ -858,7 +853,7 @@ plus_option(const char *option, bool is_batchfile,
|
||||
case 'l': /* class */
|
||||
/* keep +cl for backwards compatibility */
|
||||
FULLCHECK2("cl", "class");
|
||||
lookup->noclass = !state;
|
||||
lookup->noclass = ISC_TF(!state);
|
||||
break;
|
||||
case 'm': /* cmd */
|
||||
FULLCHECK("cmd");
|
||||
@@ -894,7 +889,7 @@ plus_option(const char *option, bool is_batchfile,
|
||||
break;
|
||||
case 'r':
|
||||
FULLCHECK("crypto");
|
||||
lookup->nocrypto = !state;
|
||||
lookup->nocrypto = ISC_TF(!state);
|
||||
break;
|
||||
default:
|
||||
goto invalid_option;
|
||||
@@ -1004,18 +999,13 @@ plus_option(const char *option, bool is_batchfile,
|
||||
lookup->ednsoptscnt = 0;
|
||||
break;
|
||||
}
|
||||
code = NULL;
|
||||
if (value != NULL) {
|
||||
code = strtok(value,
|
||||
":");
|
||||
}
|
||||
if (code == NULL) {
|
||||
if (value == NULL) {
|
||||
warn("ednsopt no "
|
||||
"code point "
|
||||
"specified");
|
||||
goto exit_or_usage;
|
||||
}
|
||||
value = strtok(NULL, "\0");
|
||||
code = next_token(&value, ":");
|
||||
save_opt(lookup, code, value);
|
||||
break;
|
||||
default:
|
||||
@@ -1055,29 +1045,13 @@ plus_option(const char *option, bool is_batchfile,
|
||||
lookup->identify = state;
|
||||
break;
|
||||
case 'n':
|
||||
switch (cmd[3]) {
|
||||
case 'i':
|
||||
FULLCHECK("idnin");
|
||||
#ifndef WITH_IDN_SUPPORT
|
||||
fprintf(stderr, ";; IDN input support"
|
||||
" not enabled\n");
|
||||
FULLCHECK("idnout");
|
||||
#ifndef WITH_IDN
|
||||
fprintf(stderr, ";; IDN support not enabled\n");
|
||||
#else
|
||||
lookup->idnin = state;
|
||||
lookup->idnout = state;
|
||||
#endif
|
||||
break;
|
||||
case 'o':
|
||||
FULLCHECK("idnout");
|
||||
#ifndef WITH_IDN_OUT_SUPPORT
|
||||
fprintf(stderr, ";; IDN output support"
|
||||
" not enabled\n");
|
||||
#else
|
||||
lookup->idnout = state;
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
goto invalid_option;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
goto invalid_option;
|
||||
}
|
||||
@@ -1163,17 +1137,17 @@ plus_option(const char *option, bool is_batchfile,
|
||||
FULLCHECK("nssearch");
|
||||
lookup->ns_search_only = state;
|
||||
if (state) {
|
||||
lookup->trace_root = true;
|
||||
lookup->recurse = true;
|
||||
lookup->identify = true;
|
||||
lookup->stats = false;
|
||||
lookup->comments = false;
|
||||
lookup->section_additional = false;
|
||||
lookup->section_authority = false;
|
||||
lookup->section_question = false;
|
||||
lookup->trace_root = ISC_TRUE;
|
||||
lookup->recurse = ISC_TRUE;
|
||||
lookup->identify = ISC_TRUE;
|
||||
lookup->stats = ISC_FALSE;
|
||||
lookup->comments = ISC_FALSE;
|
||||
lookup->section_additional = ISC_FALSE;
|
||||
lookup->section_authority = ISC_FALSE;
|
||||
lookup->section_question = ISC_FALSE;
|
||||
lookup->rdtype = dns_rdatatype_ns;
|
||||
lookup->rdtypeset = true;
|
||||
short_form = true;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
short_form = ISC_TRUE;
|
||||
lookup->rrcomments = 0;
|
||||
}
|
||||
break;
|
||||
@@ -1231,7 +1205,7 @@ plus_option(const char *option, bool is_batchfile,
|
||||
warn("Couldn't parse padding");
|
||||
goto exit_or_usage;
|
||||
}
|
||||
lookup->padding = (uint16_t)num;
|
||||
lookup->padding = (isc_uint16_t)num;
|
||||
break;
|
||||
case 'q':
|
||||
switch (cmd[1]) {
|
||||
@@ -1303,13 +1277,13 @@ plus_option(const char *option, bool is_batchfile,
|
||||
FULLCHECK("short");
|
||||
short_form = state;
|
||||
if (state) {
|
||||
printcmd = false;
|
||||
lookup->section_additional = false;
|
||||
lookup->section_answer = true;
|
||||
lookup->section_authority = false;
|
||||
lookup->section_question = false;
|
||||
lookup->comments = false;
|
||||
lookup->stats = false;
|
||||
printcmd = ISC_FALSE;
|
||||
lookup->section_additional = ISC_FALSE;
|
||||
lookup->section_answer = ISC_TRUE;
|
||||
lookup->section_authority = ISC_FALSE;
|
||||
lookup->section_question = ISC_FALSE;
|
||||
lookup->comments = ISC_FALSE;
|
||||
lookup->stats = ISC_FALSE;
|
||||
lookup->rrcomments = -1;
|
||||
}
|
||||
break;
|
||||
@@ -1397,7 +1371,7 @@ plus_option(const char *option, bool is_batchfile,
|
||||
FULLCHECK("tcp");
|
||||
if (!is_batchfile) {
|
||||
lookup->tcp_mode = state;
|
||||
lookup->tcp_mode_set = true;
|
||||
lookup->tcp_mode_set = ISC_TRUE;
|
||||
}
|
||||
break;
|
||||
case 'i': /* timeout */
|
||||
@@ -1426,17 +1400,17 @@ plus_option(const char *option, bool is_batchfile,
|
||||
lookup->trace = state;
|
||||
lookup->trace_root = state;
|
||||
if (state) {
|
||||
lookup->recurse = false;
|
||||
lookup->identify = true;
|
||||
lookup->comments = false;
|
||||
lookup->recurse = ISC_FALSE;
|
||||
lookup->identify = ISC_TRUE;
|
||||
lookup->comments = ISC_FALSE;
|
||||
lookup->rrcomments = 0;
|
||||
lookup->stats = false;
|
||||
lookup->section_additional = false;
|
||||
lookup->section_authority = true;
|
||||
lookup->section_question = false;
|
||||
lookup->dnssec = true;
|
||||
lookup->sendcookie = true;
|
||||
usesearch = false;
|
||||
lookup->stats = ISC_FALSE;
|
||||
lookup->section_additional = ISC_FALSE;
|
||||
lookup->section_authority = ISC_TRUE;
|
||||
lookup->section_question = ISC_FALSE;
|
||||
lookup->dnssec = ISC_TRUE;
|
||||
lookup->sendcookie = ISC_TRUE;
|
||||
usesearch = ISC_FALSE;
|
||||
}
|
||||
break;
|
||||
case 'i': /* tries */
|
||||
@@ -1470,12 +1444,12 @@ plus_option(const char *option, bool is_batchfile,
|
||||
case 0:
|
||||
case 'i': /* ttlid */
|
||||
FULLCHECK2("ttl", "ttlid");
|
||||
lookup->nottl = !state;
|
||||
lookup->nottl = ISC_TF(!state);
|
||||
break;
|
||||
case 'u': /* ttlunits */
|
||||
FULLCHECK("ttlunits");
|
||||
lookup->nottl = false;
|
||||
lookup->ttlunits = state;
|
||||
lookup->nottl = ISC_FALSE;
|
||||
lookup->ttlunits = ISC_TF(state);
|
||||
break;
|
||||
default:
|
||||
goto invalid_option;
|
||||
@@ -1497,7 +1471,7 @@ plus_option(const char *option, bool is_batchfile,
|
||||
FULLCHECK("vc");
|
||||
if (!is_batchfile) {
|
||||
lookup->tcp_mode = state;
|
||||
lookup->tcp_mode_set = true;
|
||||
lookup->tcp_mode_set = ISC_TRUE;
|
||||
}
|
||||
break;
|
||||
case 'z': /* zflag */
|
||||
@@ -1523,19 +1497,19 @@ plus_option(const char *option, bool is_batchfile,
|
||||
}
|
||||
|
||||
/*%
|
||||
* #true returned if value was used
|
||||
* #ISC_TRUE returned if value was used
|
||||
*/
|
||||
static const char *single_dash_opts = "46dhimnuv";
|
||||
static const char *dash_opts = "46bcdfhikmnptvyx";
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
bool *open_type_class, bool *need_clone,
|
||||
bool config_only, int argc, char **argv,
|
||||
bool *firstarg)
|
||||
isc_boolean_t *open_type_class, isc_boolean_t *need_clone,
|
||||
isc_boolean_t config_only, int argc, char **argv,
|
||||
isc_boolean_t *firstarg)
|
||||
{
|
||||
char opt, *value, *ptr, *ptr2, *ptr3;
|
||||
isc_result_t result;
|
||||
bool value_from_next;
|
||||
isc_boolean_t value_from_next;
|
||||
isc_textregion_t tr;
|
||||
dns_rdatatype_t rdtype;
|
||||
dns_rdataclass_t rdclass;
|
||||
@@ -1544,7 +1518,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
struct in6_addr in6;
|
||||
in_port_t srcport;
|
||||
char *hash, *cmd;
|
||||
uint32_t num;
|
||||
isc_uint32_t num;
|
||||
|
||||
while (strpbrk(option, single_dash_opts) == &option[0]) {
|
||||
/*
|
||||
@@ -1557,21 +1531,21 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
case '4':
|
||||
if (have_ipv4) {
|
||||
isc_net_disableipv6();
|
||||
have_ipv6 = false;
|
||||
have_ipv6 = ISC_FALSE;
|
||||
} else {
|
||||
fatal("can't find IPv4 networking");
|
||||
/* NOTREACHED */
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
break;
|
||||
case '6':
|
||||
if (have_ipv6) {
|
||||
isc_net_disableipv4();
|
||||
have_ipv4 = false;
|
||||
have_ipv4 = ISC_FALSE;
|
||||
} else {
|
||||
fatal("can't find IPv6 networking");
|
||||
/* NOTREACHED */
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
break;
|
||||
case 'd':
|
||||
@@ -1579,17 +1553,17 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
if (ptr != &option[1]) {
|
||||
cmd = option;
|
||||
FULLCHECK("debug");
|
||||
debugging = true;
|
||||
return (false);
|
||||
debugging = ISC_TRUE;
|
||||
return (ISC_FALSE);
|
||||
} else
|
||||
debugging = true;
|
||||
debugging = ISC_TRUE;
|
||||
break;
|
||||
case 'h':
|
||||
help();
|
||||
exit(0);
|
||||
break;
|
||||
case 'i':
|
||||
ip6_int = true;
|
||||
ip6_int = ISC_TRUE;
|
||||
break;
|
||||
case 'm': /* memdebug */
|
||||
/* memdebug is handled in preparse_args() */
|
||||
@@ -1598,7 +1572,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
/* deprecated */
|
||||
break;
|
||||
case 'u':
|
||||
(*lookup)->use_usec = true;
|
||||
(*lookup)->use_usec = ISC_TRUE;
|
||||
break;
|
||||
case 'v':
|
||||
version();
|
||||
@@ -1608,14 +1582,14 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
if (strlen(option) > 1U)
|
||||
option = &option[1];
|
||||
else
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
opt = option[0];
|
||||
if (strlen(option) > 1U) {
|
||||
value_from_next = false;
|
||||
value_from_next = ISC_FALSE;
|
||||
value = &option[1];
|
||||
} else {
|
||||
value_from_next = true;
|
||||
value_from_next = ISC_TRUE;
|
||||
value = next;
|
||||
}
|
||||
if (value == NULL)
|
||||
@@ -1645,20 +1619,20 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
}
|
||||
if (hash != NULL)
|
||||
*hash = '#';
|
||||
specified_source = true;
|
||||
specified_source = ISC_TRUE;
|
||||
return (value_from_next);
|
||||
case 'c':
|
||||
if ((*lookup)->rdclassset) {
|
||||
fprintf(stderr, ";; Warning, extra class option\n");
|
||||
}
|
||||
*open_type_class = false;
|
||||
*open_type_class = ISC_FALSE;
|
||||
tr.base = value;
|
||||
tr.length = (unsigned int) strlen(value);
|
||||
result = dns_rdataclass_fromtext(&rdclass,
|
||||
(isc_textregion_t *)&tr);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
(*lookup)->rdclass = rdclass;
|
||||
(*lookup)->rdclassset = true;
|
||||
(*lookup)->rdclassset = ISC_TRUE;
|
||||
} else
|
||||
fprintf(stderr, ";; Warning, ignoring "
|
||||
"invalid class %s\n",
|
||||
@@ -1680,23 +1654,23 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
if (!config_only) {
|
||||
if (*need_clone)
|
||||
(*lookup) = clone_lookup(default_lookup,
|
||||
true);
|
||||
*need_clone = true;
|
||||
ISC_TRUE);
|
||||
*need_clone = ISC_TRUE;
|
||||
strlcpy((*lookup)->textname, value,
|
||||
sizeof((*lookup)->textname));
|
||||
(*lookup)->trace_root = ((*lookup)->trace ||
|
||||
(*lookup)->ns_search_only);
|
||||
(*lookup)->new_search = true;
|
||||
(*lookup)->trace_root = ISC_TF((*lookup)->trace ||
|
||||
(*lookup)->ns_search_only);
|
||||
(*lookup)->new_search = ISC_TRUE;
|
||||
if (*firstarg) {
|
||||
printgreeting(argc, argv, *lookup);
|
||||
*firstarg = false;
|
||||
*firstarg = ISC_FALSE;
|
||||
}
|
||||
ISC_LIST_APPEND(lookup_list, (*lookup), link);
|
||||
debug("looking up %s", (*lookup)->textname);
|
||||
}
|
||||
return (value_from_next);
|
||||
case 't':
|
||||
*open_type_class = false;
|
||||
*open_type_class = ISC_FALSE;
|
||||
if (strncasecmp(value, "ixfr=", 5) == 0) {
|
||||
rdtype = dns_rdatatype_ixfr;
|
||||
result = ISC_R_SUCCESS;
|
||||
@@ -1716,9 +1690,9 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
"extra type option\n");
|
||||
}
|
||||
if (rdtype == dns_rdatatype_ixfr) {
|
||||
uint32_t serial;
|
||||
isc_uint32_t serial;
|
||||
(*lookup)->rdtype = dns_rdatatype_ixfr;
|
||||
(*lookup)->rdtypeset = true;
|
||||
(*lookup)->rdtypeset = ISC_TRUE;
|
||||
result = parse_uint(&serial, &value[5],
|
||||
MAXSERIAL, "serial number");
|
||||
if (result != ISC_R_SUCCESS)
|
||||
@@ -1727,19 +1701,19 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
(*lookup)->section_question = plusquest;
|
||||
(*lookup)->comments = pluscomm;
|
||||
if (!(*lookup)->tcp_mode_set)
|
||||
(*lookup)->tcp_mode = true;
|
||||
(*lookup)->tcp_mode = ISC_TRUE;
|
||||
} else {
|
||||
(*lookup)->rdtype = rdtype;
|
||||
if (!config_only)
|
||||
(*lookup)->rdtypeset = true;
|
||||
(*lookup)->rdtypeset = ISC_TRUE;
|
||||
if (rdtype == dns_rdatatype_axfr) {
|
||||
(*lookup)->section_question = plusquest;
|
||||
(*lookup)->comments = pluscomm;
|
||||
} else if (rdtype == dns_rdatatype_any) {
|
||||
if (!(*lookup)->tcp_mode_set)
|
||||
(*lookup)->tcp_mode = true;
|
||||
(*lookup)->tcp_mode = ISC_TRUE;
|
||||
}
|
||||
(*lookup)->ixfr_serial = false;
|
||||
(*lookup)->ixfr_serial = ISC_FALSE;
|
||||
}
|
||||
} else
|
||||
fprintf(stderr, ";; Warning, ignoring "
|
||||
@@ -1772,24 +1746,24 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
return (value_from_next);
|
||||
case 'x':
|
||||
if (*need_clone)
|
||||
*lookup = clone_lookup(default_lookup, true);
|
||||
*need_clone = true;
|
||||
*lookup = clone_lookup(default_lookup, ISC_TRUE);
|
||||
*need_clone = ISC_TRUE;
|
||||
if (get_reverse(textname, sizeof(textname), value,
|
||||
ip6_int, false) == ISC_R_SUCCESS) {
|
||||
ip6_int, ISC_FALSE) == ISC_R_SUCCESS) {
|
||||
strlcpy((*lookup)->textname, textname,
|
||||
sizeof((*lookup)->textname));
|
||||
debug("looking up %s", (*lookup)->textname);
|
||||
(*lookup)->trace_root = ((*lookup)->trace ||
|
||||
(*lookup)->ns_search_only);
|
||||
(*lookup)->trace_root = ISC_TF((*lookup)->trace ||
|
||||
(*lookup)->ns_search_only);
|
||||
(*lookup)->ip6_int = ip6_int;
|
||||
if (!(*lookup)->rdtypeset)
|
||||
(*lookup)->rdtype = dns_rdatatype_ptr;
|
||||
if (!(*lookup)->rdclassset)
|
||||
(*lookup)->rdclass = dns_rdataclass_in;
|
||||
(*lookup)->new_search = true;
|
||||
(*lookup)->new_search = ISC_TRUE;
|
||||
if (*firstarg) {
|
||||
printgreeting(argc, argv, *lookup);
|
||||
*firstarg = false;
|
||||
*firstarg = ISC_FALSE;
|
||||
}
|
||||
ISC_LIST_APPEND(lookup_list, *lookup, link);
|
||||
} else {
|
||||
@@ -1803,7 +1777,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
usage();
|
||||
}
|
||||
/* NOTREACHED */
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
|
||||
/*%
|
||||
@@ -1830,19 +1804,19 @@ preparse_args(int argc, char **argv) {
|
||||
while (strpbrk(option, single_dash_opts) == &option[0]) {
|
||||
switch (option[0]) {
|
||||
case 'm':
|
||||
memdebugging = true;
|
||||
memdebugging = ISC_TRUE;
|
||||
isc_mem_debugging = ISC_MEM_DEBUGTRACE |
|
||||
ISC_MEM_DEBUGRECORD;
|
||||
break;
|
||||
case '4':
|
||||
if (ipv6only)
|
||||
fatal("only one of -4 and -6 allowed");
|
||||
ipv4only = true;
|
||||
ipv4only = ISC_TRUE;
|
||||
break;
|
||||
case '6':
|
||||
if (ipv4only)
|
||||
fatal("only one of -4 and -6 allowed");
|
||||
ipv6only = true;
|
||||
ipv6only = ISC_TRUE;
|
||||
break;
|
||||
}
|
||||
option = &option[1];
|
||||
@@ -1851,16 +1825,16 @@ preparse_args(int argc, char **argv) {
|
||||
}
|
||||
|
||||
static void
|
||||
parse_args(bool is_batchfile, bool config_only,
|
||||
parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only,
|
||||
int argc, char **argv)
|
||||
{
|
||||
isc_result_t result;
|
||||
isc_textregion_t tr;
|
||||
bool firstarg = true;
|
||||
isc_boolean_t firstarg = ISC_TRUE;
|
||||
dig_lookup_t *lookup = NULL;
|
||||
dns_rdatatype_t rdtype;
|
||||
dns_rdataclass_t rdclass;
|
||||
bool open_type_class = true;
|
||||
isc_boolean_t open_type_class = ISC_TRUE;
|
||||
char batchline[MXNAME];
|
||||
int bargc;
|
||||
char *bargv[64];
|
||||
@@ -1872,7 +1846,7 @@ parse_args(bool is_batchfile, bool config_only,
|
||||
#endif
|
||||
char *input;
|
||||
int i;
|
||||
bool need_clone = true;
|
||||
isc_boolean_t need_clone = ISC_TRUE;
|
||||
|
||||
/*
|
||||
* The semantics for parsing the args is a bit complex; if
|
||||
@@ -1889,9 +1863,9 @@ parse_args(bool is_batchfile, bool config_only,
|
||||
if (!is_batchfile) {
|
||||
debug("making new lookup");
|
||||
default_lookup = make_empty_lookup();
|
||||
default_lookup->adflag = true;
|
||||
default_lookup->adflag = ISC_TRUE;
|
||||
default_lookup->edns = 0;
|
||||
default_lookup->sendcookie = true;
|
||||
default_lookup->sendcookie = ISC_TRUE;
|
||||
|
||||
#ifndef NOPOSIX
|
||||
/*
|
||||
@@ -1925,7 +1899,7 @@ parse_args(bool is_batchfile, bool config_only,
|
||||
for(i = 0; i < bargc; i++)
|
||||
debug(".digrc argv %d: %s",
|
||||
i, bargv[i]);
|
||||
parse_args(true, true, bargc,
|
||||
parse_args(ISC_TRUE, ISC_TRUE, bargc,
|
||||
(char **)bargv);
|
||||
}
|
||||
fclose(batchfp);
|
||||
@@ -1935,8 +1909,8 @@ parse_args(bool is_batchfile, bool config_only,
|
||||
|
||||
if (is_batchfile && !config_only) {
|
||||
/* Processing '-f batchfile'. */
|
||||
lookup = clone_lookup(default_lookup, true);
|
||||
need_clone = false;
|
||||
lookup = clone_lookup(default_lookup, ISC_TRUE);
|
||||
need_clone = ISC_FALSE;
|
||||
} else
|
||||
lookup = default_lookup;
|
||||
|
||||
@@ -2018,10 +1992,10 @@ parse_args(bool is_batchfile, bool config_only,
|
||||
"extra type option\n");
|
||||
}
|
||||
if (rdtype == dns_rdatatype_ixfr) {
|
||||
uint32_t serial;
|
||||
isc_uint32_t serial;
|
||||
lookup->rdtype =
|
||||
dns_rdatatype_ixfr;
|
||||
lookup->rdtypeset = true;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
result = parse_uint(&serial,
|
||||
&rv[0][5],
|
||||
MAXSERIAL,
|
||||
@@ -2034,10 +2008,10 @@ parse_args(bool is_batchfile, bool config_only,
|
||||
plusquest;
|
||||
lookup->comments = pluscomm;
|
||||
if (!lookup->tcp_mode_set)
|
||||
lookup->tcp_mode = true;
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
} else {
|
||||
lookup->rdtype = rdtype;
|
||||
lookup->rdtypeset = true;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
if (rdtype ==
|
||||
dns_rdatatype_axfr) {
|
||||
lookup->section_question =
|
||||
@@ -2047,8 +2021,8 @@ parse_args(bool is_batchfile, bool config_only,
|
||||
if (rdtype ==
|
||||
dns_rdatatype_any &&
|
||||
!lookup->tcp_mode_set)
|
||||
lookup->tcp_mode = true;
|
||||
lookup->ixfr_serial = false;
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
lookup->ixfr_serial = ISC_FALSE;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
@@ -2060,7 +2034,7 @@ parse_args(bool is_batchfile, bool config_only,
|
||||
"extra class option\n");
|
||||
}
|
||||
lookup->rdclass = rdclass;
|
||||
lookup->rdclassset = true;
|
||||
lookup->rdclassset = ISC_TRUE;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@@ -2068,16 +2042,16 @@ parse_args(bool is_batchfile, bool config_only,
|
||||
if (!config_only) {
|
||||
if (need_clone)
|
||||
lookup = clone_lookup(default_lookup,
|
||||
true);
|
||||
need_clone = true;
|
||||
ISC_TRUE);
|
||||
need_clone = ISC_TRUE;
|
||||
strlcpy(lookup->textname, rv[0],
|
||||
sizeof(lookup->textname));
|
||||
lookup->trace_root = (lookup->trace ||
|
||||
lookup->ns_search_only);
|
||||
lookup->new_search = true;
|
||||
lookup->trace_root = ISC_TF(lookup->trace ||
|
||||
lookup->ns_search_only);
|
||||
lookup->new_search = ISC_TRUE;
|
||||
if (firstarg) {
|
||||
printgreeting(argc, argv, lookup);
|
||||
firstarg = false;
|
||||
firstarg = ISC_FALSE;
|
||||
}
|
||||
ISC_LIST_APPEND(lookup_list, lookup, link);
|
||||
debug("looking up %s", lookup->textname);
|
||||
@@ -2122,7 +2096,7 @@ parse_args(bool is_batchfile, bool config_only,
|
||||
|
||||
for(i = 0; i < bargc; i++)
|
||||
debug("batch argv %d: %s", i, bargv[i]);
|
||||
parse_args(true, false, bargc, (char **)bargv);
|
||||
parse_args(ISC_TRUE, ISC_FALSE, bargc, (char **)bargv);
|
||||
return;
|
||||
}
|
||||
return;
|
||||
@@ -2132,17 +2106,17 @@ parse_args(bool is_batchfile, bool config_only,
|
||||
*/
|
||||
if ((lookup_list.head == NULL) && !config_only) {
|
||||
if (need_clone)
|
||||
lookup = clone_lookup(default_lookup, true);
|
||||
need_clone = true;
|
||||
lookup->trace_root = (lookup->trace ||
|
||||
lookup->ns_search_only);
|
||||
lookup->new_search = true;
|
||||
lookup = clone_lookup(default_lookup, ISC_TRUE);
|
||||
need_clone = ISC_TRUE;
|
||||
lookup->trace_root = ISC_TF(lookup->trace ||
|
||||
lookup->ns_search_only);
|
||||
lookup->new_search = ISC_TRUE;
|
||||
strlcpy(lookup->textname, ".", sizeof(lookup->textname));
|
||||
lookup->rdtype = dns_rdatatype_ns;
|
||||
lookup->rdtypeset = true;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
if (firstarg) {
|
||||
printgreeting(argc, argv, lookup);
|
||||
firstarg = false;
|
||||
firstarg = ISC_FALSE;
|
||||
}
|
||||
ISC_LIST_APPEND(lookup_list, lookup, link);
|
||||
}
|
||||
@@ -2191,7 +2165,7 @@ query_finished(void) {
|
||||
|
||||
for(i = 0; i < bargc; i++)
|
||||
debug("batch argv %d: %s", i, bargv[i]);
|
||||
parse_args(true, false, bargc, (char **)bargv);
|
||||
parse_args(ISC_TRUE, ISC_FALSE, bargc, (char **)bargv);
|
||||
start_lookup();
|
||||
} else {
|
||||
batchname = NULL;
|
||||
@@ -2228,7 +2202,7 @@ void dig_setup(int argc, char **argv)
|
||||
setup_system(ipv4only, ipv6only);
|
||||
}
|
||||
|
||||
void dig_query_setup(bool is_batchfile, bool config_only,
|
||||
void dig_query_setup(isc_boolean_t is_batchfile, isc_boolean_t config_only,
|
||||
int argc, char **argv)
|
||||
{
|
||||
debug("dig_query_setup");
|
||||
@@ -2240,7 +2214,7 @@ void dig_query_setup(bool is_batchfile, bool config_only,
|
||||
setup_text_key();
|
||||
if (domainopt[0] != '\0') {
|
||||
set_search_domain(domainopt);
|
||||
usesearch = true;
|
||||
usesearch = ISC_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2277,7 +2251,7 @@ int
|
||||
main(int argc, char **argv) {
|
||||
|
||||
dig_setup(argc, argv);
|
||||
dig_query_setup(false, false, argc, argv);
|
||||
dig_query_setup(ISC_FALSE, ISC_FALSE, argc, argv);
|
||||
dig_startup();
|
||||
dig_shutdown();
|
||||
|
||||
|
||||
+20
-36
@@ -275,9 +275,9 @@
|
||||
<term>-i</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Do reverse IPv6 lookups using the obsolete RFC 1886 IP6.INT
|
||||
Do reverse IPv6 lookups using the obsolete RFC1886 IP6.INT
|
||||
domain, which is no longer in use. Obsolete bit string
|
||||
label queries (RFC 2874) are not attempted.
|
||||
label queries (RFC2874) are not attempted.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -338,12 +338,11 @@
|
||||
<term>-t <replaceable class="parameter">type</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The resource record type to query. It can be any valid query
|
||||
type. If it is a resource record type supported in BIND 9, it
|
||||
can be given by the type mnemonic (such as "NS" or "AAAA").
|
||||
The default query type is "A", unless the <option>-x</option>
|
||||
option is supplied to indicate a reverse lookup. A zone
|
||||
transfer can be requested by specifying a type of AXFR. When
|
||||
The resource record type to query. It can be any valid query type
|
||||
which is
|
||||
supported in BIND 9. The default query type is "A", unless the
|
||||
<option>-x</option> option is supplied to indicate a reverse lookup.
|
||||
A zone transfer can be requested by specifying a type of AXFR. When
|
||||
an incremental zone transfer (IXFR) is required, set the
|
||||
<parameter>type</parameter> to <literal>ixfr=N</literal>.
|
||||
The incremental zone transfer will contain the changes
|
||||
@@ -351,12 +350,6 @@
|
||||
record was
|
||||
<parameter>N</parameter>.
|
||||
</para>
|
||||
<para>
|
||||
All resource record types can be expressed as "TYPEnn", where
|
||||
"nn" is the number of the type. If the resource record type is
|
||||
not supported in BIND 9, the result will be displayed as
|
||||
described in RFC 3597.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@@ -783,17 +776,6 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>+[no]idnin</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Process [do not process] IDN domain names on input.
|
||||
This requires IDN SUPPORT to have been enabled at
|
||||
compile time. The default is to process IDN input.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>+[no]idnout</option></term>
|
||||
<listitem>
|
||||
@@ -895,7 +877,8 @@
|
||||
attempts to find the authoritative name servers for
|
||||
the zone containing the name being looked up and
|
||||
display the SOA record that each name server has for
|
||||
the zone.
|
||||
the zone. Addresses of servers that that did not
|
||||
respond are also printed.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -1050,7 +1033,7 @@
|
||||
<listitem>
|
||||
<para>
|
||||
This feature is now obsolete and has been removed;
|
||||
use <command>delv</command> instead.
|
||||
use <command>delv</command> instead.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -1135,8 +1118,8 @@
|
||||
<listitem>
|
||||
<para>
|
||||
This feature is related to <command>dig +sigchase</command>,
|
||||
which is obsolete and has been removed. Use
|
||||
<command>delv</command> instead.
|
||||
which is obsolete and has been removed. Use
|
||||
<command>delv</command> instead.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -1181,9 +1164,9 @@
|
||||
<listitem>
|
||||
<para>
|
||||
Formerly specified trusted keys for use with
|
||||
<command>dig +sigchase</command>. This feature is now
|
||||
obsolete and has been removed; use
|
||||
<command>delv</command> instead.
|
||||
<command>dig +sigchase</command>. This feature is now
|
||||
obsolete and has been removed; use
|
||||
<command>delv</command> instead.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -1305,9 +1288,10 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
<command>dig</command> appropriately converts character encoding of
|
||||
domain name before sending a request to DNS server or displaying a
|
||||
reply from the server.
|
||||
If you'd like to turn off the IDN support for some reason, use
|
||||
parameters <parameter>+noidnin</parameter> and
|
||||
<parameter>+noidnout</parameter>.
|
||||
If you'd like to turn off the IDN support for some reason, defines
|
||||
the <envar>IDN_DISABLE</envar> environment variable.
|
||||
The IDN support is disabled if the variable is set when
|
||||
<command>dig</command> runs.
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
@@ -1333,7 +1317,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
<citerefentry>
|
||||
<refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum>
|
||||
</citerefentry>,
|
||||
<citetitle>RFC 1035</citetitle>.
|
||||
<citetitle>RFC1035</citetitle>.
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
|
||||
+18
-32
@@ -230,9 +230,9 @@
|
||||
<dt><span class="term">-i</span></dt>
|
||||
<dd>
|
||||
<p>
|
||||
Do reverse IPv6 lookups using the obsolete RFC 1886 IP6.INT
|
||||
Do reverse IPv6 lookups using the obsolete RFC1886 IP6.INT
|
||||
domain, which is no longer in use. Obsolete bit string
|
||||
label queries (RFC 2874) are not attempted.
|
||||
label queries (RFC2874) are not attempted.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><span class="term">-k <em class="replaceable"><code>keyfile</code></em></span></dt>
|
||||
@@ -277,12 +277,11 @@
|
||||
<dt><span class="term">-t <em class="replaceable"><code>type</code></em></span></dt>
|
||||
<dd>
|
||||
<p>
|
||||
The resource record type to query. It can be any valid query
|
||||
type. If it is a resource record type supported in BIND 9, it
|
||||
can be given by the type mnemonic (such as "NS" or "AAAA").
|
||||
The default query type is "A", unless the <code class="option">-x</code>
|
||||
option is supplied to indicate a reverse lookup. A zone
|
||||
transfer can be requested by specifying a type of AXFR. When
|
||||
The resource record type to query. It can be any valid query type
|
||||
which is
|
||||
supported in BIND 9. The default query type is "A", unless the
|
||||
<code class="option">-x</code> option is supplied to indicate a reverse lookup.
|
||||
A zone transfer can be requested by specifying a type of AXFR. When
|
||||
an incremental zone transfer (IXFR) is required, set the
|
||||
<em class="parameter"><code>type</code></em> to <code class="literal">ixfr=N</code>.
|
||||
The incremental zone transfer will contain the changes
|
||||
@@ -290,12 +289,6 @@
|
||||
record was
|
||||
<em class="parameter"><code>N</code></em>.
|
||||
</p>
|
||||
<p>
|
||||
All resource record types can be expressed as "TYPEnn", where
|
||||
"nn" is the number of the type. If the resource record type is
|
||||
not supported in BIND 9, the result will be displayed as
|
||||
described in RFC 3597.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><span class="term">-u</span></dt>
|
||||
<dd>
|
||||
@@ -626,14 +619,6 @@
|
||||
server that provided the answer.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><span class="term"><code class="option">+[no]idnin</code></span></dt>
|
||||
<dd>
|
||||
<p>
|
||||
Process [do not process] IDN domain names on input.
|
||||
This requires IDN SUPPORT to have been enabled at
|
||||
compile time. The default is to process IDN input.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><span class="term"><code class="option">+[no]idnout</code></span></dt>
|
||||
<dd>
|
||||
<p>
|
||||
@@ -826,7 +811,7 @@
|
||||
<dd>
|
||||
<p>
|
||||
This feature is now obsolete and has been removed;
|
||||
use <span class="command"><strong>delv</strong></span> instead.
|
||||
use <span class="command"><strong>delv</strong></span> instead.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><span class="term"><code class="option">+split=W</code></span></dt>
|
||||
@@ -893,8 +878,8 @@
|
||||
<dd>
|
||||
<p>
|
||||
This feature is related to <span class="command"><strong>dig +sigchase</strong></span>,
|
||||
which is obsolete and has been removed. Use
|
||||
<span class="command"><strong>delv</strong></span> instead.
|
||||
which is obsolete and has been removed. Use
|
||||
<span class="command"><strong>delv</strong></span> instead.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><span class="term"><code class="option">+[no]trace</code></span></dt>
|
||||
@@ -930,9 +915,9 @@
|
||||
<dd>
|
||||
<p>
|
||||
Formerly specified trusted keys for use with
|
||||
<span class="command"><strong>dig +sigchase</strong></span>. This feature is now
|
||||
obsolete and has been removed; use
|
||||
<span class="command"><strong>delv</strong></span> instead.
|
||||
<span class="command"><strong>dig +sigchase</strong></span>. This feature is now
|
||||
obsolete and has been removed; use
|
||||
<span class="command"><strong>delv</strong></span> instead.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><span class="term"><code class="option">+[no]ttlid</code></span></dt>
|
||||
@@ -1042,9 +1027,10 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
<span class="command"><strong>dig</strong></span> appropriately converts character encoding of
|
||||
domain name before sending a request to DNS server or displaying a
|
||||
reply from the server.
|
||||
If you'd like to turn off the IDN support for some reason, use
|
||||
parameters <em class="parameter"><code>+noidnin</code></em> and
|
||||
<em class="parameter"><code>+noidnout</code></em>.
|
||||
If you'd like to turn off the IDN support for some reason, defines
|
||||
the <code class="envar">IDN_DISABLE</code> environment variable.
|
||||
The IDN support is disabled if the variable is set when
|
||||
<span class="command"><strong>dig</strong></span> runs.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -1072,7 +1058,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
<span class="citerefentry">
|
||||
<span class="refentrytitle">dnssec-keygen</span>(8)
|
||||
</span>,
|
||||
<em class="citetitle">RFC 1035</em>.
|
||||
<em class="citetitle">RFC1035</em>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
+394
-522
File diff suppressed because it is too large
Load Diff
+2
-2
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2000-2002, 2004, 2005, 2007-2009, 2014-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000-2002, 2004, 2005, 2007-2009, 2014-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@@ -274,5 +274,5 @@ runs\&.
|
||||
\fBInternet Systems Consortium, Inc\&.\fR
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
Copyright \(co 2000-2002, 2004, 2005, 2007-2009, 2014-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2000-2002, 2004, 2005, 2007-2009, 2014-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
|
||||
+91
-93
@@ -12,9 +12,6 @@
|
||||
/*! \file */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
|
||||
@@ -22,7 +19,7 @@
|
||||
#include <locale.h>
|
||||
#endif
|
||||
|
||||
#ifdef WITH_IDNKIT
|
||||
#ifdef WITH_IDN
|
||||
#include <idn/result.h>
|
||||
#include <idn/log.h>
|
||||
#include <idn/resconf.h>
|
||||
@@ -50,14 +47,14 @@
|
||||
|
||||
#include <dig/dig.h>
|
||||
|
||||
static bool short_form = true, listed_server = false;
|
||||
static bool default_lookups = true;
|
||||
static isc_boolean_t short_form = ISC_TRUE, listed_server = ISC_FALSE;
|
||||
static isc_boolean_t default_lookups = ISC_TRUE;
|
||||
static int seen_error = -1;
|
||||
static bool list_addresses = true;
|
||||
static bool list_almost_all = false;
|
||||
static isc_boolean_t list_addresses = ISC_TRUE;
|
||||
static isc_boolean_t list_almost_all = ISC_FALSE;
|
||||
static dns_rdatatype_t list_type = dns_rdatatype_a;
|
||||
static bool printed_server = false;
|
||||
static bool ipv4only = false, ipv6only = false;
|
||||
static isc_boolean_t printed_server = ISC_FALSE;
|
||||
static isc_boolean_t ipv4only = ISC_FALSE, ipv6only = ISC_FALSE;
|
||||
|
||||
static const char *opcodetext[] = {
|
||||
"QUERY",
|
||||
@@ -234,7 +231,7 @@ say_message(dns_name_t *name, const char *msg, dns_rdata_t *rdata,
|
||||
|
||||
static isc_result_t
|
||||
printsection(dns_message_t *msg, dns_section_t sectionid,
|
||||
const char *section_name, bool headers,
|
||||
const char *section_name, isc_boolean_t headers,
|
||||
dig_query_t *query)
|
||||
{
|
||||
dns_name_t *name, *print_name;
|
||||
@@ -245,13 +242,13 @@ printsection(dns_message_t *msg, dns_section_t sectionid,
|
||||
isc_region_t r;
|
||||
dns_name_t empty_name;
|
||||
char tbuf[4096];
|
||||
bool first;
|
||||
bool no_rdata;
|
||||
isc_boolean_t first;
|
||||
isc_boolean_t no_rdata;
|
||||
|
||||
if (sectionid == DNS_SECTION_QUESTION)
|
||||
no_rdata = true;
|
||||
no_rdata = ISC_TRUE;
|
||||
else
|
||||
no_rdata = false;
|
||||
no_rdata = ISC_FALSE;
|
||||
|
||||
if (headers)
|
||||
printf(";; %s SECTION:\n", section_name);
|
||||
@@ -269,7 +266,7 @@ printsection(dns_message_t *msg, dns_section_t sectionid,
|
||||
dns_message_currentname(msg, sectionid, &name);
|
||||
|
||||
isc_buffer_init(&target, tbuf, sizeof(tbuf));
|
||||
first = true;
|
||||
first = ISC_TRUE;
|
||||
print_name = name;
|
||||
|
||||
for (rdataset = ISC_LIST_HEAD(name->list);
|
||||
@@ -293,7 +290,7 @@ printsection(dns_message_t *msg, dns_section_t sectionid,
|
||||
if (!short_form) {
|
||||
result = dns_rdataset_totext(rdataset,
|
||||
print_name,
|
||||
false,
|
||||
ISC_FALSE,
|
||||
no_rdata,
|
||||
&target);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
@@ -301,7 +298,7 @@ printsection(dns_message_t *msg, dns_section_t sectionid,
|
||||
#ifdef USEINITALWS
|
||||
if (first) {
|
||||
print_name = &empty_name;
|
||||
first = false;
|
||||
first = ISC_FALSE;
|
||||
}
|
||||
#else
|
||||
UNUSED(first); /* Shut up compiler. */
|
||||
@@ -360,7 +357,7 @@ printsection(dns_message_t *msg, dns_section_t sectionid,
|
||||
static isc_result_t
|
||||
printrdata(dns_message_t *msg, dns_rdataset_t *rdataset,
|
||||
const dns_name_t *owner, const char *set_name,
|
||||
bool headers)
|
||||
isc_boolean_t headers)
|
||||
{
|
||||
isc_buffer_t target;
|
||||
isc_result_t result;
|
||||
@@ -373,7 +370,7 @@ printrdata(dns_message_t *msg, dns_rdataset_t *rdataset,
|
||||
|
||||
isc_buffer_init(&target, tbuf, sizeof(tbuf));
|
||||
|
||||
result = dns_rdataset_totext(rdataset, owner, false, false,
|
||||
result = dns_rdataset_totext(rdataset, owner, ISC_FALSE, ISC_FALSE,
|
||||
&target);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
@@ -410,8 +407,8 @@ chase_cnamechain(dns_message_t *msg, dns_name_t *qname) {
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
|
||||
bool did_flag = false;
|
||||
printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
|
||||
isc_boolean_t did_flag = ISC_FALSE;
|
||||
dns_rdataset_t *opt, *tsig = NULL;
|
||||
const dns_name_t *tsigname;
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
@@ -434,7 +431,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
|
||||
sizeof(sockstr));
|
||||
printf("Address: %s\n", sockstr);
|
||||
printf("Aliases: \n\n");
|
||||
printed_server = true;
|
||||
printed_server = ISC_TRUE;
|
||||
}
|
||||
|
||||
if (msg->rcode != 0) {
|
||||
@@ -462,26 +459,27 @@ printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
|
||||
dns_name_t *name;
|
||||
|
||||
/* Add AAAA and MX lookups. */
|
||||
name = dns_fixedname_initname(&fixed);
|
||||
dns_fixedname_init(&fixed);
|
||||
name = dns_fixedname_name(&fixed);
|
||||
dns_name_copy(query->lookup->name, name, NULL);
|
||||
chase_cnamechain(msg, name);
|
||||
dns_name_format(name, namestr, sizeof(namestr));
|
||||
lookup = clone_lookup(query->lookup, false);
|
||||
lookup = clone_lookup(query->lookup, ISC_FALSE);
|
||||
if (lookup != NULL) {
|
||||
strlcpy(lookup->textname, namestr,
|
||||
sizeof(lookup->textname));
|
||||
lookup->rdtype = dns_rdatatype_aaaa;
|
||||
lookup->rdtypeset = true;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
lookup->origin = NULL;
|
||||
lookup->retries = tries;
|
||||
ISC_LIST_APPEND(lookup_list, lookup, link);
|
||||
}
|
||||
lookup = clone_lookup(query->lookup, false);
|
||||
lookup = clone_lookup(query->lookup, ISC_FALSE);
|
||||
if (lookup != NULL) {
|
||||
strlcpy(lookup->textname, namestr,
|
||||
sizeof(lookup->textname));
|
||||
lookup->rdtype = dns_rdatatype_mx;
|
||||
lookup->rdtypeset = true;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
lookup->origin = NULL;
|
||||
lookup->retries = tries;
|
||||
ISC_LIST_APPEND(lookup_list, lookup, link);
|
||||
@@ -495,31 +493,31 @@ printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
|
||||
printf(";; flags: ");
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_QR) != 0) {
|
||||
printf("qr");
|
||||
did_flag = true;
|
||||
did_flag = ISC_TRUE;
|
||||
}
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_AA) != 0) {
|
||||
printf("%saa", did_flag ? " " : "");
|
||||
did_flag = true;
|
||||
did_flag = ISC_TRUE;
|
||||
}
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_TC) != 0) {
|
||||
printf("%stc", did_flag ? " " : "");
|
||||
did_flag = true;
|
||||
did_flag = ISC_TRUE;
|
||||
}
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_RD) != 0) {
|
||||
printf("%srd", did_flag ? " " : "");
|
||||
did_flag = true;
|
||||
did_flag = ISC_TRUE;
|
||||
}
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_RA) != 0) {
|
||||
printf("%sra", did_flag ? " " : "");
|
||||
did_flag = true;
|
||||
did_flag = ISC_TRUE;
|
||||
}
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_AD) != 0) {
|
||||
printf("%sad", did_flag ? " " : "");
|
||||
did_flag = true;
|
||||
did_flag = ISC_TRUE;
|
||||
}
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_CD) != 0) {
|
||||
printf("%scd", did_flag ? " " : "");
|
||||
did_flag = true;
|
||||
did_flag = ISC_TRUE;
|
||||
POST(did_flag);
|
||||
}
|
||||
printf("; QUERY: %u, ANSWER: %u, "
|
||||
@@ -542,7 +540,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
|
||||
!short_form) {
|
||||
printf("\n");
|
||||
result = printsection(msg, DNS_SECTION_QUESTION, "QUESTION",
|
||||
true, query);
|
||||
ISC_TRUE, query);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
}
|
||||
@@ -550,7 +548,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
|
||||
if (!short_form)
|
||||
printf("\n");
|
||||
result = printsection(msg, DNS_SECTION_ANSWER, "ANSWER",
|
||||
!short_form, query);
|
||||
ISC_TF(!short_form), query);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
}
|
||||
@@ -559,7 +557,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
|
||||
!short_form) {
|
||||
printf("\n");
|
||||
result = printsection(msg, DNS_SECTION_AUTHORITY, "AUTHORITY",
|
||||
true, query);
|
||||
ISC_TRUE, query);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
}
|
||||
@@ -567,14 +565,14 @@ printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
|
||||
!short_form) {
|
||||
printf("\n");
|
||||
result = printsection(msg, DNS_SECTION_ADDITIONAL,
|
||||
"ADDITIONAL", true, query);
|
||||
"ADDITIONAL", ISC_TRUE, query);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
}
|
||||
if ((tsig != NULL) && !short_form) {
|
||||
printf("\n");
|
||||
result = printrdata(msg, tsig, tsigname,
|
||||
"PSEUDOSECTION TSIG", true);
|
||||
"PSEUDOSECTION TSIG", ISC_TRUE);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
}
|
||||
@@ -609,7 +607,7 @@ pre_parse_args(int argc, char **argv) {
|
||||
while ((c = isc_commandline_parse(argc, argv, optstring)) != -1) {
|
||||
switch (c) {
|
||||
case 'm':
|
||||
memdebugging = true;
|
||||
memdebugging = ISC_TRUE;
|
||||
if (strcasecmp("trace", isc_commandline_argument) == 0)
|
||||
isc_mem_debugging |= ISC_MEM_DEBUGTRACE;
|
||||
else if (strcasecmp("record",
|
||||
@@ -623,12 +621,12 @@ pre_parse_args(int argc, char **argv) {
|
||||
case '4':
|
||||
if (ipv6only)
|
||||
fatal("only one of -4 and -6 allowed");
|
||||
ipv4only = true;
|
||||
ipv4only = ISC_TRUE;
|
||||
break;
|
||||
case '6':
|
||||
if (ipv4only)
|
||||
fatal("only one of -4 and -6 allowed");
|
||||
ipv6only = true;
|
||||
ipv6only = ISC_TRUE;
|
||||
break;
|
||||
case 'a': break;
|
||||
case 'A': break;
|
||||
@@ -649,8 +647,8 @@ pre_parse_args(int argc, char **argv) {
|
||||
case 'C': break;
|
||||
case 'D':
|
||||
if (debugging)
|
||||
debugtiming = true;
|
||||
debugging = true;
|
||||
debugtiming = ISC_TRUE;
|
||||
debugging = ISC_TRUE;
|
||||
break;
|
||||
case 'N': break;
|
||||
case 'R': break;
|
||||
@@ -660,12 +658,12 @@ pre_parse_args(int argc, char **argv) {
|
||||
show_usage();
|
||||
}
|
||||
}
|
||||
isc_commandline_reset = true;
|
||||
isc_commandline_reset = ISC_TRUE;
|
||||
isc_commandline_index = 1;
|
||||
}
|
||||
|
||||
static void
|
||||
parse_args(bool is_batchfile, int argc, char **argv) {
|
||||
parse_args(isc_boolean_t is_batchfile, int argc, char **argv) {
|
||||
char hostname[MXNAME];
|
||||
dig_lookup_t *lookup;
|
||||
int c;
|
||||
@@ -674,30 +672,30 @@ parse_args(bool is_batchfile, int argc, char **argv) {
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
dns_rdatatype_t rdtype;
|
||||
dns_rdataclass_t rdclass;
|
||||
uint32_t serial = 0;
|
||||
isc_uint32_t serial = 0;
|
||||
|
||||
UNUSED(is_batchfile);
|
||||
|
||||
lookup = make_empty_lookup();
|
||||
|
||||
lookup->servfail_stops = false;
|
||||
lookup->comments = false;
|
||||
lookup->servfail_stops = ISC_FALSE;
|
||||
lookup->comments = ISC_FALSE;
|
||||
short_form = !verbose;
|
||||
|
||||
while ((c = isc_commandline_parse(argc, argv, optstring)) != -1) {
|
||||
switch (c) {
|
||||
case 'l':
|
||||
lookup->tcp_mode = true;
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
lookup->rdtype = dns_rdatatype_axfr;
|
||||
lookup->rdtypeset = true;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
fatalexit = 3;
|
||||
break;
|
||||
case 'v':
|
||||
case 'd':
|
||||
short_form = false;
|
||||
short_form = ISC_FALSE;
|
||||
break;
|
||||
case 'r':
|
||||
lookup->recurse = false;
|
||||
lookup->recurse = ISC_FALSE;
|
||||
break;
|
||||
case 't':
|
||||
if (strncasecmp(isc_commandline_argument,
|
||||
@@ -722,23 +720,23 @@ parse_args(bool is_batchfile, int argc, char **argv) {
|
||||
if (!lookup->rdtypeset ||
|
||||
lookup->rdtype != dns_rdatatype_axfr)
|
||||
lookup->rdtype = rdtype;
|
||||
lookup->rdtypeset = true;
|
||||
#ifdef WITH_IDNKIT
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
#ifdef WITH_IDN
|
||||
idnoptions = 0;
|
||||
#endif
|
||||
if (rdtype == dns_rdatatype_axfr) {
|
||||
/* -l -t any -v */
|
||||
list_type = dns_rdatatype_any;
|
||||
short_form = false;
|
||||
lookup->tcp_mode = true;
|
||||
short_form = ISC_FALSE;
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
} else if (rdtype == dns_rdatatype_ixfr) {
|
||||
lookup->ixfr_serial = serial;
|
||||
lookup->tcp_mode = true;
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
list_type = rdtype;
|
||||
} else if (rdtype == dns_rdatatype_any) {
|
||||
if (!lookup->tcp_mode_set)
|
||||
lookup->tcp_mode = true;
|
||||
#ifdef WITH_IDNKIT
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
#ifdef WITH_IDN
|
||||
} else if (rdtype == dns_rdatatype_a ||
|
||||
rdtype == dns_rdatatype_aaaa ||
|
||||
rdtype == dns_rdatatype_mx) {
|
||||
@@ -747,8 +745,8 @@ parse_args(bool is_batchfile, int argc, char **argv) {
|
||||
#endif
|
||||
} else
|
||||
list_type = rdtype;
|
||||
list_addresses = false;
|
||||
default_lookups = false;
|
||||
list_addresses = ISC_FALSE;
|
||||
default_lookups = ISC_FALSE;
|
||||
break;
|
||||
case 'c':
|
||||
tr.base = isc_commandline_argument;
|
||||
@@ -762,28 +760,28 @@ parse_args(bool is_batchfile, int argc, char **argv) {
|
||||
isc_commandline_argument);
|
||||
} else {
|
||||
lookup->rdclass = rdclass;
|
||||
lookup->rdclassset = true;
|
||||
lookup->rdclassset = ISC_TRUE;
|
||||
}
|
||||
default_lookups = false;
|
||||
default_lookups = ISC_FALSE;
|
||||
break;
|
||||
case 'A':
|
||||
list_almost_all = true;
|
||||
list_almost_all = ISC_TRUE;
|
||||
/* FALL THROUGH */
|
||||
case 'a':
|
||||
if (!lookup->rdtypeset ||
|
||||
lookup->rdtype != dns_rdatatype_axfr)
|
||||
lookup->rdtype = dns_rdatatype_any;
|
||||
#ifdef WITH_IDNKIT
|
||||
#ifdef WITH_IDN
|
||||
idnoptions = 0;
|
||||
#endif
|
||||
list_type = dns_rdatatype_any;
|
||||
list_addresses = false;
|
||||
lookup->rdtypeset = true;
|
||||
short_form = false;
|
||||
default_lookups = false;
|
||||
list_addresses = ISC_FALSE;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
short_form = ISC_FALSE;
|
||||
default_lookups = ISC_FALSE;
|
||||
break;
|
||||
case 'i':
|
||||
lookup->ip6_int = true;
|
||||
lookup->ip6_int = ISC_TRUE;
|
||||
break;
|
||||
case 'n':
|
||||
/* deprecated */
|
||||
@@ -809,23 +807,23 @@ parse_args(bool is_batchfile, int argc, char **argv) {
|
||||
tries = 2;
|
||||
break;
|
||||
case 'T':
|
||||
lookup->tcp_mode = true;
|
||||
lookup->tcp_mode_set = true;
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
lookup->tcp_mode_set = ISC_TRUE;
|
||||
break;
|
||||
case 'U':
|
||||
lookup->tcp_mode = false;
|
||||
lookup->tcp_mode_set = true;
|
||||
lookup->tcp_mode = ISC_FALSE;
|
||||
lookup->tcp_mode_set = ISC_TRUE;
|
||||
break;
|
||||
case 'C':
|
||||
debug("showing all SOAs");
|
||||
lookup->rdtype = dns_rdatatype_ns;
|
||||
lookup->rdtypeset = true;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
lookup->rdclass = dns_rdataclass_in;
|
||||
lookup->rdclassset = true;
|
||||
lookup->ns_search_only = true;
|
||||
lookup->trace_root = true;
|
||||
lookup->identify_previous_line = true;
|
||||
default_lookups = false;
|
||||
lookup->rdclassset = ISC_TRUE;
|
||||
lookup->ns_search_only = ISC_TRUE;
|
||||
lookup->trace_root = ISC_TRUE;
|
||||
lookup->identify_previous_line = ISC_TRUE;
|
||||
default_lookups = ISC_FALSE;
|
||||
break;
|
||||
case 'N':
|
||||
debug("setting NDOTS to %s",
|
||||
@@ -842,7 +840,7 @@ parse_args(bool is_batchfile, int argc, char **argv) {
|
||||
/* Handled by pre_parse_args(). */
|
||||
break;
|
||||
case 's':
|
||||
lookup->servfail_stops = true;
|
||||
lookup->servfail_stops = ISC_TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -857,22 +855,22 @@ parse_args(bool is_batchfile, int argc, char **argv) {
|
||||
if (argc > isc_commandline_index + 1) {
|
||||
set_nameserver(argv[isc_commandline_index+1]);
|
||||
debug("server is %s", argv[isc_commandline_index+1]);
|
||||
listed_server = true;
|
||||
listed_server = ISC_TRUE;
|
||||
} else
|
||||
check_ra = true;
|
||||
check_ra = ISC_TRUE;
|
||||
|
||||
lookup->pending = false;
|
||||
lookup->pending = ISC_FALSE;
|
||||
if (get_reverse(store, sizeof(store), hostname,
|
||||
lookup->ip6_int, true) == ISC_R_SUCCESS) {
|
||||
lookup->ip6_int, ISC_TRUE) == ISC_R_SUCCESS) {
|
||||
strlcpy(lookup->textname, store, sizeof(lookup->textname));
|
||||
lookup->rdtype = dns_rdatatype_ptr;
|
||||
lookup->rdtypeset = true;
|
||||
default_lookups = false;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
default_lookups = ISC_FALSE;
|
||||
} else {
|
||||
strlcpy(lookup->textname, hostname, sizeof(lookup->textname));
|
||||
usesearch = true;
|
||||
usesearch = ISC_TRUE;
|
||||
}
|
||||
lookup->new_search = true;
|
||||
lookup->new_search = ISC_TRUE;
|
||||
ISC_LIST_APPEND(lookup_list, lookup, link);
|
||||
}
|
||||
|
||||
@@ -887,7 +885,7 @@ main(int argc, char **argv) {
|
||||
ISC_LIST_INIT(search_list);
|
||||
|
||||
fatalexit = 1;
|
||||
#ifdef WITH_IDNKIT
|
||||
#ifdef WITH_IDN
|
||||
idnoptions = IDN_ASCCHECK;
|
||||
#endif
|
||||
|
||||
@@ -904,7 +902,7 @@ main(int argc, char **argv) {
|
||||
check_result(result, "isc_app_start");
|
||||
setup_libs();
|
||||
setup_system(ipv4only, ipv6only);
|
||||
parse_args(false, argc, argv);
|
||||
parse_args(ISC_FALSE, argc, argv);
|
||||
if (keyfile[0] != 0)
|
||||
setup_file_key();
|
||||
else if (keysecret[0] != 0)
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--
|
||||
- Copyright (C) 2000-2002, 2004, 2005, 2007-2009, 2014-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2002, 2004, 2005, 2007-2009, 2014-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
|
||||
+35
-38
@@ -14,13 +14,11 @@
|
||||
|
||||
/*! \file */
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include <dns/rdatalist.h>
|
||||
|
||||
#include <dst/dst.h>
|
||||
|
||||
#include <isc/boolean.h>
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/bufferlist.h>
|
||||
#include <isc/formatcheck.h>
|
||||
@@ -83,7 +81,7 @@ typedef struct dig_searchlist dig_searchlist_t;
|
||||
|
||||
/*% The dig_lookup structure */
|
||||
struct dig_lookup {
|
||||
bool
|
||||
isc_boolean_t
|
||||
pending, /*%< Pending a successful answer */
|
||||
waiting_connect,
|
||||
doing_xfr,
|
||||
@@ -131,7 +129,6 @@ struct dig_lookup {
|
||||
use_usec,
|
||||
nocrypto,
|
||||
ttlunits,
|
||||
idnin,
|
||||
idnout,
|
||||
qr;
|
||||
char textname[MXNAME]; /*% Name we're going to be looking up */
|
||||
@@ -139,8 +136,8 @@ struct dig_lookup {
|
||||
dns_rdatatype_t rdtype;
|
||||
dns_rdatatype_t qrdtype;
|
||||
dns_rdataclass_t rdclass;
|
||||
bool rdtypeset;
|
||||
bool rdclassset;
|
||||
isc_boolean_t rdtypeset;
|
||||
isc_boolean_t rdclassset;
|
||||
char name_space[BUFSIZE];
|
||||
char oname_space[BUFSIZE];
|
||||
isc_buffer_t namebuf;
|
||||
@@ -158,17 +155,17 @@ struct dig_lookup {
|
||||
dig_serverlist_t my_server_list;
|
||||
dig_searchlist_t *origin;
|
||||
dig_query_t *xfr_q;
|
||||
uint32_t retries;
|
||||
isc_uint32_t retries;
|
||||
int nsfound;
|
||||
uint16_t udpsize;
|
||||
int16_t edns;
|
||||
int16_t padding;
|
||||
uint32_t ixfr_serial;
|
||||
isc_uint16_t udpsize;
|
||||
isc_int16_t edns;
|
||||
isc_int16_t padding;
|
||||
isc_uint32_t ixfr_serial;
|
||||
isc_buffer_t rdatabuf;
|
||||
char rdatastore[MXNAME];
|
||||
dst_context_t *tsigctx;
|
||||
isc_buffer_t *querysig;
|
||||
uint32_t msgcounter;
|
||||
isc_uint32_t msgcounter;
|
||||
dns_fixedname_t fdomain;
|
||||
isc_sockaddr_t *ecs_addr;
|
||||
char *cookie;
|
||||
@@ -184,7 +181,7 @@ struct dig_lookup {
|
||||
/*% The dig_query structure */
|
||||
struct dig_query {
|
||||
dig_lookup_t *lookup;
|
||||
bool waiting_connect,
|
||||
isc_boolean_t waiting_connect,
|
||||
pending_free,
|
||||
waiting_senddone,
|
||||
first_pass,
|
||||
@@ -194,11 +191,11 @@ struct dig_query {
|
||||
recv_made,
|
||||
warn_id,
|
||||
timedout;
|
||||
uint32_t first_rr_serial;
|
||||
uint32_t second_rr_serial;
|
||||
uint32_t msg_count;
|
||||
uint32_t rr_count;
|
||||
bool ixfr_axfr;
|
||||
isc_uint32_t first_rr_serial;
|
||||
isc_uint32_t second_rr_serial;
|
||||
isc_uint32_t msg_count;
|
||||
isc_uint32_t rr_count;
|
||||
isc_boolean_t ixfr_axfr;
|
||||
char *servname;
|
||||
char *userarg;
|
||||
isc_bufferlist_t sendlist,
|
||||
@@ -216,7 +213,7 @@ struct dig_query {
|
||||
isc_sockaddr_t sockaddr;
|
||||
isc_time_t time_sent;
|
||||
isc_time_t time_recv;
|
||||
uint64_t byte_count;
|
||||
isc_uint64_t byte_count;
|
||||
isc_buffer_t sendbuf;
|
||||
isc_timer_t *timer;
|
||||
};
|
||||
@@ -244,7 +241,7 @@ extern dig_serverlist_t server_list;
|
||||
extern dig_searchlistlist_t search_list;
|
||||
extern unsigned int extrabytes;
|
||||
|
||||
extern bool check_ra, have_ipv4, have_ipv6, specified_source,
|
||||
extern isc_boolean_t check_ra, have_ipv4, have_ipv6, specified_source,
|
||||
usesearch, showsearch;
|
||||
extern in_port_t port;
|
||||
extern unsigned int timeout;
|
||||
@@ -259,19 +256,19 @@ extern char keyfile[MXNAME];
|
||||
extern char keysecret[MXNAME];
|
||||
extern const dns_name_t *hmacname;
|
||||
extern unsigned int digestbits;
|
||||
extern dns_tsigkey_t *tsigkey;
|
||||
extern bool validated;
|
||||
extern dns_tsigkey_t *key;
|
||||
extern isc_boolean_t validated;
|
||||
extern isc_taskmgr_t *taskmgr;
|
||||
extern isc_task_t *global_task;
|
||||
extern bool free_now;
|
||||
extern bool debugging, debugtiming, memdebugging;
|
||||
extern bool keep_open;
|
||||
extern isc_boolean_t free_now;
|
||||
extern isc_boolean_t debugging, debugtiming, memdebugging;
|
||||
extern isc_boolean_t keep_open;
|
||||
|
||||
extern char *progname;
|
||||
extern int tries;
|
||||
extern int fatalexit;
|
||||
extern bool verbose;
|
||||
#ifdef WITH_IDNKIT
|
||||
extern isc_boolean_t verbose;
|
||||
#ifdef WITH_IDN
|
||||
extern int idnoptions;
|
||||
#endif
|
||||
|
||||
@@ -285,8 +282,8 @@ int
|
||||
getaddresses(dig_lookup_t *lookup, const char *host, isc_result_t *resultp);
|
||||
|
||||
isc_result_t
|
||||
get_reverse(char *reverse, size_t len, char *value, bool ip6_int,
|
||||
bool strict);
|
||||
get_reverse(char *reverse, size_t len, char *value, isc_boolean_t ip6_int,
|
||||
isc_boolean_t strict);
|
||||
|
||||
ISC_PLATFORM_NORETURN_PRE void
|
||||
fatal(const char *format, ...)
|
||||
@@ -305,7 +302,7 @@ debug(const char *format, ...) ISC_FORMAT_PRINTF(1, 2);
|
||||
void
|
||||
check_result(isc_result_t result, const char *msg);
|
||||
|
||||
bool
|
||||
isc_boolean_t
|
||||
setup_lookup(dig_lookup_t *lookup);
|
||||
|
||||
void
|
||||
@@ -327,14 +324,14 @@ void
|
||||
setup_libs(void);
|
||||
|
||||
void
|
||||
setup_system(bool ipv4only, bool ipv6only);
|
||||
setup_system(isc_boolean_t ipv4only, isc_boolean_t ipv6only);
|
||||
|
||||
isc_result_t
|
||||
parse_uint(uint32_t *uip, const char *value, uint32_t max,
|
||||
parse_uint(isc_uint32_t *uip, const char *value, isc_uint32_t max,
|
||||
const char *desc);
|
||||
|
||||
isc_result_t
|
||||
parse_xint(uint32_t *uip, const char *value, uint32_t max,
|
||||
parse_xint(isc_uint32_t *uip, const char *value, isc_uint32_t max,
|
||||
const char *desc);
|
||||
|
||||
isc_result_t
|
||||
@@ -344,13 +341,13 @@ void
|
||||
parse_hmac(const char *hmacstr);
|
||||
|
||||
dig_lookup_t *
|
||||
requeue_lookup(dig_lookup_t *lookold, bool servers);
|
||||
requeue_lookup(dig_lookup_t *lookold, isc_boolean_t servers);
|
||||
|
||||
dig_lookup_t *
|
||||
make_empty_lookup(void);
|
||||
|
||||
dig_lookup_t *
|
||||
clone_lookup(dig_lookup_t *lookold, bool servers);
|
||||
clone_lookup(dig_lookup_t *lookold, isc_boolean_t servers);
|
||||
|
||||
dig_server_t *
|
||||
make_server(const char *servname, const char *userarg);
|
||||
@@ -382,7 +379,7 @@ next_token(char **stringp, const char *delim);
|
||||
* then assigned to the appropriate function pointer
|
||||
*/
|
||||
extern isc_result_t
|
||||
(*dighost_printmessage)(dig_query_t *query, dns_message_t *msg, bool headers);
|
||||
(*dighost_printmessage)(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers);
|
||||
/*%<
|
||||
* Print the final result of the lookup.
|
||||
*/
|
||||
@@ -424,7 +421,7 @@ dig_setup(int argc, char **argv);
|
||||
* Call to supply new parameters for the next lookup
|
||||
*/
|
||||
void
|
||||
dig_query_setup(bool, bool, int argc, char **argv);
|
||||
dig_query_setup(isc_boolean_t, isc_boolean_t, int argc, char **argv);
|
||||
|
||||
/*%<
|
||||
* set the main application event cycle running
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2004-2007, 2010, 2013-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2004-2007, 2010, 2013-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@@ -290,5 +290,5 @@ returns with an exit status of 1 if any query failed, and 0 otherwise\&.
|
||||
\fBInternet Systems Consortium, Inc\&.\fR
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
Copyright \(co 2004-2007, 2010, 2013-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004-2007, 2010, 2013-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
|
||||
+99
-100
@@ -11,8 +11,6 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
@@ -55,18 +53,18 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static bool short_form = true,
|
||||
tcpmode = false, tcpmode_set = false,
|
||||
identify = false, stats = true,
|
||||
comments = true, section_question = true,
|
||||
section_answer = true, section_authority = true,
|
||||
section_additional = true, recurse = true,
|
||||
aaonly = false, nofail = true,
|
||||
default_lookups = true, a_noanswer = false;
|
||||
static isc_boolean_t short_form = ISC_TRUE,
|
||||
tcpmode = ISC_FALSE, tcpmode_set = ISC_FALSE,
|
||||
identify = ISC_FALSE, stats = ISC_TRUE,
|
||||
comments = ISC_TRUE, section_question = ISC_TRUE,
|
||||
section_answer = ISC_TRUE, section_authority = ISC_TRUE,
|
||||
section_additional = ISC_TRUE, recurse = ISC_TRUE,
|
||||
aaonly = ISC_FALSE, nofail = ISC_TRUE,
|
||||
default_lookups = ISC_TRUE, a_noanswer = ISC_FALSE;
|
||||
|
||||
static bool interactive;
|
||||
static isc_boolean_t interactive;
|
||||
|
||||
static bool in_use = false;
|
||||
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;
|
||||
@@ -215,7 +213,7 @@ printrdata(dns_rdata_t *rdata) {
|
||||
isc_result_t result;
|
||||
isc_buffer_t *b = NULL;
|
||||
unsigned int size = 1024;
|
||||
bool done = false;
|
||||
isc_boolean_t done = ISC_FALSE;
|
||||
|
||||
if (rdata->type < N_KNOWN_RRTYPES)
|
||||
printf("%s", rtypetext[rdata->type]);
|
||||
@@ -230,7 +228,7 @@ printrdata(dns_rdata_t *rdata) {
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
printf("%.*s\n", (int)isc_buffer_usedlength(b),
|
||||
(char *)isc_buffer_base(b));
|
||||
done = true;
|
||||
done = ISC_TRUE;
|
||||
} else if (result != ISC_R_NOSPACE)
|
||||
check_result(result, "dns_rdata_totext");
|
||||
isc_buffer_free(&b);
|
||||
@@ -239,7 +237,7 @@ printrdata(dns_rdata_t *rdata) {
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
printsection(dig_query_t *query, dns_message_t *msg, bool headers,
|
||||
printsection(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers,
|
||||
dns_section_t section) {
|
||||
isc_result_t result, loopresult;
|
||||
dns_name_t *name;
|
||||
@@ -306,7 +304,7 @@ printsection(dig_query_t *query, dns_message_t *msg, bool headers,
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
detailsection(dig_query_t *query, dns_message_t *msg, bool headers,
|
||||
detailsection(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers,
|
||||
dns_section_t section) {
|
||||
isc_result_t result, loopresult;
|
||||
dns_name_t *name;
|
||||
@@ -431,7 +429,7 @@ chase_cnamechain(dns_message_t *msg, dns_name_t *qname) {
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
|
||||
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. */
|
||||
@@ -450,10 +448,10 @@ printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
|
||||
if (!short_form) {
|
||||
puts("------------");
|
||||
/* detailheader(query, msg);*/
|
||||
detailsection(query, msg, true, DNS_SECTION_QUESTION);
|
||||
detailsection(query, msg, true, DNS_SECTION_ANSWER);
|
||||
detailsection(query, msg, true, DNS_SECTION_AUTHORITY);
|
||||
detailsection(query, msg, true, DNS_SECTION_ADDITIONAL);
|
||||
detailsection(query, msg, ISC_TRUE, DNS_SECTION_QUESTION);
|
||||
detailsection(query, msg, ISC_TRUE, DNS_SECTION_ANSWER);
|
||||
detailsection(query, msg, ISC_TRUE, DNS_SECTION_AUTHORITY);
|
||||
detailsection(query, msg, ISC_TRUE, DNS_SECTION_ADDITIONAL);
|
||||
puts("------------");
|
||||
}
|
||||
|
||||
@@ -477,16 +475,17 @@ printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
|
||||
dns_name_t *name;
|
||||
|
||||
/* Add AAAA lookup. */
|
||||
name = dns_fixedname_initname(&fixed);
|
||||
dns_fixedname_init(&fixed);
|
||||
name = dns_fixedname_name(&fixed);
|
||||
dns_name_copy(query->lookup->name, name, NULL);
|
||||
chase_cnamechain(msg, name);
|
||||
dns_name_format(name, namestr, sizeof(namestr));
|
||||
lookup = clone_lookup(query->lookup, false);
|
||||
lookup = clone_lookup(query->lookup, ISC_FALSE);
|
||||
if (lookup != NULL) {
|
||||
strlcpy(lookup->textname, namestr,
|
||||
sizeof(lookup->textname));
|
||||
lookup->rdtype = dns_rdatatype_aaaa;
|
||||
lookup->rdtypeset = true;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
lookup->origin = NULL;
|
||||
lookup->retries = tries;
|
||||
ISC_LIST_APPEND(lookup_list, lookup, link);
|
||||
@@ -500,7 +499,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
|
||||
printsection(query, msg, headers, DNS_SECTION_ANSWER);
|
||||
else {
|
||||
if (default_lookups && query->lookup->rdtype == dns_rdatatype_a)
|
||||
a_noanswer = true;
|
||||
a_noanswer = ISC_TRUE;
|
||||
|
||||
else if (!default_lookups ||
|
||||
(query->lookup->rdtype == dns_rdatatype_aaaa &&
|
||||
@@ -522,7 +521,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
|
||||
}
|
||||
|
||||
static void
|
||||
show_settings(bool full, bool serv_only) {
|
||||
show_settings(isc_boolean_t full, isc_boolean_t serv_only) {
|
||||
dig_server_t *srv;
|
||||
isc_sockaddr_t sockaddr;
|
||||
dig_searchlist_t *listent;
|
||||
@@ -567,7 +566,7 @@ show_settings(bool full, bool serv_only) {
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
testtype(char *typetext) {
|
||||
isc_result_t result;
|
||||
isc_textregion_t tr;
|
||||
@@ -577,14 +576,14 @@ testtype(char *typetext) {
|
||||
tr.length = strlen(typetext);
|
||||
result = dns_rdatatype_fromtext(&rdtype, &tr);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
else {
|
||||
printf("unknown query type: %s\n", typetext);
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
testclass(char *typetext) {
|
||||
isc_result_t result;
|
||||
isc_textregion_t tr;
|
||||
@@ -594,24 +593,24 @@ testclass(char *typetext) {
|
||||
tr.length = strlen(typetext);
|
||||
result = dns_rdataclass_fromtext(&rdclass, &tr);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
else {
|
||||
printf("unknown query class: %s\n", typetext);
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
set_port(const char *value) {
|
||||
uint32_t n;
|
||||
isc_uint32_t n;
|
||||
isc_result_t result = parse_uint(&n, value, 65535, "port");
|
||||
if (result == ISC_R_SUCCESS)
|
||||
port = (uint16_t) n;
|
||||
port = (isc_uint16_t) n;
|
||||
}
|
||||
|
||||
static void
|
||||
set_timeout(const char *value) {
|
||||
uint32_t n;
|
||||
isc_uint32_t n;
|
||||
isc_result_t result = parse_uint(&n, value, UINT_MAX, "timeout");
|
||||
if (result == ISC_R_SUCCESS)
|
||||
timeout = n;
|
||||
@@ -619,7 +618,7 @@ set_timeout(const char *value) {
|
||||
|
||||
static void
|
||||
set_tries(const char *value) {
|
||||
uint32_t n;
|
||||
isc_uint32_t n;
|
||||
isc_result_t result = parse_uint(&n, value, INT_MAX, "tries");
|
||||
if (result == ISC_R_SUCCESS)
|
||||
tries = n;
|
||||
@@ -627,7 +626,7 @@ set_tries(const char *value) {
|
||||
|
||||
static void
|
||||
set_ndots(const char *value) {
|
||||
uint32_t n;
|
||||
isc_uint32_t n;
|
||||
isc_result_t result = parse_uint(&n, value, 128, "ndots");
|
||||
if (result == ISC_R_SUCCESS)
|
||||
ndots = n;
|
||||
@@ -646,7 +645,7 @@ setoption(char *opt) {
|
||||
((l >= N) && (l < sizeof(A)) && (strncasecmp(opt, A, l) == 0))
|
||||
|
||||
if (CHECKOPT("all", 3)) {
|
||||
show_settings(true, false);
|
||||
show_settings(ISC_TRUE, ISC_FALSE);
|
||||
} else if (strncasecmp(opt, "class=", 6) == 0) {
|
||||
if (testclass(&opt[6]))
|
||||
strlcpy(defclass, &opt[6], sizeof(defclass));
|
||||
@@ -656,41 +655,41 @@ setoption(char *opt) {
|
||||
} else if (strncasecmp(opt, "type=", 5) == 0) {
|
||||
if (testtype(&opt[5])) {
|
||||
strlcpy(deftype, &opt[5], sizeof(deftype));
|
||||
default_lookups = false;
|
||||
default_lookups = ISC_FALSE;
|
||||
}
|
||||
} else if (strncasecmp(opt, "ty=", 3) == 0) {
|
||||
if (testtype(&opt[3])) {
|
||||
strlcpy(deftype, &opt[3], sizeof(deftype));
|
||||
default_lookups = false;
|
||||
default_lookups = ISC_FALSE;
|
||||
}
|
||||
} else if (strncasecmp(opt, "querytype=", 10) == 0) {
|
||||
if (testtype(&opt[10])) {
|
||||
strlcpy(deftype, &opt[10], sizeof(deftype));
|
||||
default_lookups = false;
|
||||
default_lookups = ISC_FALSE;
|
||||
}
|
||||
} else if (strncasecmp(opt, "query=", 6) == 0) {
|
||||
if (testtype(&opt[6])) {
|
||||
strlcpy(deftype, &opt[6], sizeof(deftype));
|
||||
default_lookups = false;
|
||||
default_lookups = ISC_FALSE;
|
||||
}
|
||||
} else if (strncasecmp(opt, "qu=", 3) == 0) {
|
||||
if (testtype(&opt[3])) {
|
||||
strlcpy(deftype, &opt[3], sizeof(deftype));
|
||||
default_lookups = false;
|
||||
default_lookups = ISC_FALSE;
|
||||
}
|
||||
} else if (strncasecmp(opt, "q=", 2) == 0) {
|
||||
if (testtype(&opt[2])) {
|
||||
strlcpy(deftype, &opt[2], sizeof(deftype));
|
||||
default_lookups = false;
|
||||
default_lookups = ISC_FALSE;
|
||||
}
|
||||
} else if (strncasecmp(opt, "domain=", 7) == 0) {
|
||||
strlcpy(domainopt, &opt[7], sizeof(domainopt));
|
||||
set_search_domain(domainopt);
|
||||
usesearch = true;
|
||||
usesearch = ISC_TRUE;
|
||||
} else if (strncasecmp(opt, "do=", 3) == 0) {
|
||||
strlcpy(domainopt, &opt[3], sizeof(domainopt));
|
||||
set_search_domain(domainopt);
|
||||
usesearch = true;
|
||||
usesearch = ISC_TRUE;
|
||||
} else if (strncasecmp(opt, "port=", 5) == 0) {
|
||||
set_port(&opt[5]);
|
||||
} else if (strncasecmp(opt, "po=", 3) == 0) {
|
||||
@@ -700,43 +699,43 @@ setoption(char *opt) {
|
||||
} else if (strncasecmp(opt, "t=", 2) == 0) {
|
||||
set_timeout(&opt[2]);
|
||||
} else if (CHECKOPT("recurse", 3)) {
|
||||
recurse = true;
|
||||
recurse = ISC_TRUE;
|
||||
} else if (CHECKOPT("norecurse", 5)) {
|
||||
recurse = false;
|
||||
recurse = ISC_FALSE;
|
||||
} else if (strncasecmp(opt, "retry=", 6) == 0) {
|
||||
set_tries(&opt[6]);
|
||||
} else if (strncasecmp(opt, "ret=", 4) == 0) {
|
||||
set_tries(&opt[4]);
|
||||
} else if (CHECKOPT("defname", 3)) {
|
||||
usesearch = true;
|
||||
usesearch = ISC_TRUE;
|
||||
} else if (CHECKOPT("nodefname", 5)) {
|
||||
usesearch = false;
|
||||
} else if (CHECKOPT("vc", 2)) {
|
||||
tcpmode = true;
|
||||
tcpmode_set = true;
|
||||
} else if (CHECKOPT("novc", 4)) {
|
||||
tcpmode = false;
|
||||
tcpmode_set = true;
|
||||
} else if (CHECKOPT("debug", 3)) {
|
||||
short_form = false;
|
||||
showsearch = true;
|
||||
} else if (CHECKOPT("nodebug", 5)) {
|
||||
short_form = true;
|
||||
showsearch = false;
|
||||
} else if (CHECKOPT("d2", 2)) {
|
||||
debugging = true;
|
||||
} else if (CHECKOPT("nod2", 4)) {
|
||||
debugging = false;
|
||||
} else if (CHECKOPT("search", 3)) {
|
||||
usesearch = true;
|
||||
} else if (CHECKOPT("nosearch", 5)) {
|
||||
usesearch = false;
|
||||
} else if (CHECKOPT("sil", 3)) {
|
||||
/* deprecation_msg = false; */
|
||||
} else if (CHECKOPT("fail", 3)) {
|
||||
nofail=false;
|
||||
} else if (CHECKOPT("nofail", 5)) {
|
||||
nofail=true;
|
||||
usesearch = ISC_FALSE;
|
||||
} else if (CHECKOPT("vc", 2) == 0) {
|
||||
tcpmode = ISC_TRUE;
|
||||
tcpmode_set = ISC_TRUE;
|
||||
} else if (CHECKOPT("novc", 4) == 0) {
|
||||
tcpmode = ISC_FALSE;
|
||||
tcpmode_set = ISC_TRUE;
|
||||
} else if (CHECKOPT("debug", 3) == 0) {
|
||||
short_form = ISC_FALSE;
|
||||
showsearch = ISC_TRUE;
|
||||
} else if (CHECKOPT("nodebug", 5) == 0) {
|
||||
short_form = ISC_TRUE;
|
||||
showsearch = ISC_FALSE;
|
||||
} else if (CHECKOPT("d2", 2) == 0) {
|
||||
debugging = ISC_TRUE;
|
||||
} else if (CHECKOPT("nod2", 4) == 0) {
|
||||
debugging = ISC_FALSE;
|
||||
} else if (CHECKOPT("search", 3) == 0) {
|
||||
usesearch = ISC_TRUE;
|
||||
} else if (CHECKOPT("nosearch", 5) == 0) {
|
||||
usesearch = ISC_FALSE;
|
||||
} else if (CHECKOPT("sil", 3) == 0) {
|
||||
/* deprecation_msg = ISC_FALSE; */
|
||||
} else if (CHECKOPT("fail", 3) == 0) {
|
||||
nofail=ISC_FALSE;
|
||||
} else if (CHECKOPT("nofail", 5) == 0) {
|
||||
nofail=ISC_TRUE;
|
||||
} else if (strncasecmp(opt, "ndots=", 6) == 0) {
|
||||
set_ndots(&opt[6]);
|
||||
} else {
|
||||
@@ -755,7 +754,7 @@ addlookup(char *opt) {
|
||||
|
||||
debug("addlookup()");
|
||||
|
||||
a_noanswer = false;
|
||||
a_noanswer = ISC_FALSE;
|
||||
|
||||
tr.base = deftype;
|
||||
tr.length = strlen(deftype);
|
||||
@@ -772,21 +771,21 @@ addlookup(char *opt) {
|
||||
rdclass = dns_rdataclass_in;
|
||||
}
|
||||
lookup = make_empty_lookup();
|
||||
if (get_reverse(store, sizeof(store), opt, lookup->ip6_int, true)
|
||||
if (get_reverse(store, sizeof(store), opt, lookup->ip6_int, ISC_TRUE)
|
||||
== ISC_R_SUCCESS) {
|
||||
strlcpy(lookup->textname, store, sizeof(lookup->textname));
|
||||
lookup->rdtype = dns_rdatatype_ptr;
|
||||
lookup->rdtypeset = true;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
} else {
|
||||
strlcpy(lookup->textname, opt, sizeof(lookup->textname));
|
||||
lookup->rdtype = rdtype;
|
||||
lookup->rdtypeset = true;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
}
|
||||
lookup->rdclass = rdclass;
|
||||
lookup->rdclassset = true;
|
||||
lookup->trace = false;
|
||||
lookup->rdclassset = ISC_TRUE;
|
||||
lookup->trace = ISC_FALSE;
|
||||
lookup->trace_root = lookup->trace;
|
||||
lookup->ns_search_only = false;
|
||||
lookup->ns_search_only = ISC_FALSE;
|
||||
lookup->identify = identify;
|
||||
lookup->recurse = recurse;
|
||||
lookup->aaonly = aaonly;
|
||||
@@ -794,7 +793,7 @@ addlookup(char *opt) {
|
||||
lookup->udpsize = 0;
|
||||
lookup->comments = comments;
|
||||
if (lookup->rdtype == dns_rdatatype_any && !tcpmode_set)
|
||||
lookup->tcp_mode = true;
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
else
|
||||
lookup->tcp_mode = tcpmode;
|
||||
lookup->stats = stats;
|
||||
@@ -802,9 +801,9 @@ addlookup(char *opt) {
|
||||
lookup->section_answer = section_answer;
|
||||
lookup->section_authority = section_authority;
|
||||
lookup->section_additional = section_additional;
|
||||
lookup->new_search = true;
|
||||
lookup->new_search = ISC_TRUE;
|
||||
if (nofail)
|
||||
lookup->servfail_stops = false;
|
||||
lookup->servfail_stops = ISC_FALSE;
|
||||
ISC_LIST_INIT(lookup->q);
|
||||
ISC_LINK_INIT(lookup, link);
|
||||
ISC_LIST_APPEND(lookup_list, lookup, link);
|
||||
@@ -828,11 +827,11 @@ do_next_command(char *input) {
|
||||
(strcasecmp(ptr, "lserver") == 0)) {
|
||||
isc_app_block();
|
||||
set_nameserver(arg);
|
||||
check_ra = false;
|
||||
check_ra = ISC_FALSE;
|
||||
isc_app_unblock();
|
||||
show_settings(true, true);
|
||||
show_settings(ISC_TRUE, ISC_TRUE);
|
||||
} else if (strcasecmp(ptr, "exit") == 0) {
|
||||
in_use = false;
|
||||
in_use = ISC_FALSE;
|
||||
} else if (strcasecmp(ptr, "help") == 0 ||
|
||||
strcasecmp(ptr, "?") == 0) {
|
||||
printf("The '%s' command is not yet implemented.\n", ptr);
|
||||
@@ -869,7 +868,7 @@ get_next_command(void) {
|
||||
ptr = fgets(buf, COMMSIZE, stdin);
|
||||
isc_app_unblock();
|
||||
if (ptr == NULL) {
|
||||
in_use = false;
|
||||
in_use = ISC_FALSE;
|
||||
} else
|
||||
do_next_command(ptr);
|
||||
#ifdef HAVE_READLINE
|
||||
@@ -881,9 +880,9 @@ get_next_command(void) {
|
||||
|
||||
static void
|
||||
parse_args(int argc, char **argv) {
|
||||
bool have_lookup = false;
|
||||
isc_boolean_t have_lookup = ISC_FALSE;
|
||||
|
||||
usesearch = true;
|
||||
usesearch = ISC_TRUE;
|
||||
for (argc--, argv++; argc > 0; argc--, argv++) {
|
||||
debug("main parsing %s", argv[0]);
|
||||
if (argv[0][0] == '-') {
|
||||
@@ -893,15 +892,15 @@ parse_args(int argc, char **argv) {
|
||||
} else if (argv[0][1] != 0) {
|
||||
setoption(&argv[0][1]);
|
||||
} else
|
||||
have_lookup = true;
|
||||
have_lookup = ISC_TRUE;
|
||||
} else {
|
||||
if (!have_lookup) {
|
||||
have_lookup = true;
|
||||
in_use = true;
|
||||
have_lookup = ISC_TRUE;
|
||||
in_use = ISC_TRUE;
|
||||
addlookup(argv[0]);
|
||||
} else {
|
||||
set_nameserver(argv[0]);
|
||||
check_ra = false;
|
||||
check_ra = ISC_FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -972,13 +971,13 @@ int
|
||||
main(int argc, char **argv) {
|
||||
isc_result_t result;
|
||||
|
||||
interactive = isatty(0);
|
||||
interactive = ISC_TF(isatty(0));
|
||||
|
||||
ISC_LIST_INIT(lookup_list);
|
||||
ISC_LIST_INIT(server_list);
|
||||
ISC_LIST_INIT(search_list);
|
||||
|
||||
check_ra = true;
|
||||
check_ra = ISC_TRUE;
|
||||
|
||||
/* setup dighost callbacks */
|
||||
dighost_printmessage = printmessage;
|
||||
@@ -992,7 +991,7 @@ main(int argc, char **argv) {
|
||||
setup_libs();
|
||||
progname = argv[0];
|
||||
|
||||
setup_system(false, false);
|
||||
setup_system(ISC_FALSE, ISC_FALSE);
|
||||
parse_args(argc, argv);
|
||||
if (keyfile[0] != 0)
|
||||
setup_file_key();
|
||||
@@ -1006,7 +1005,7 @@ main(int argc, char **argv) {
|
||||
else
|
||||
result = isc_app_onrun(mctx, global_task, getinput, NULL);
|
||||
check_result(result, "isc_app_onrun");
|
||||
in_use = !in_use;
|
||||
in_use = ISC_TF(!in_use);
|
||||
|
||||
(void)isc_app_run();
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--
|
||||
- Copyright (C) 2004-2007, 2010, 2013-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007, 2010, 2013-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
|
||||
@@ -116,12 +116,12 @@ installdirs:
|
||||
$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${mandir}/man8
|
||||
|
||||
install:: ${TARGETS} installdirs
|
||||
for t in ${TARGETS}; do ${LIBTOOL_MODE_INSTALL} ${INSTALL_PROGRAM} $$t ${DESTDIR}${sbindir} || exit 1; done
|
||||
for m in ${MANPAGES}; do ${INSTALL_DATA} ${srcdir}/$$m ${DESTDIR}${mandir}/man8 || exit 1; done
|
||||
for t in ${TARGETS}; do ${LIBTOOL_MODE_INSTALL} ${INSTALL_PROGRAM} $$t ${DESTDIR}${sbindir}; done
|
||||
for m in ${MANPAGES}; do ${INSTALL_DATA} ${srcdir}/$$m ${DESTDIR}${mandir}/man8; done
|
||||
|
||||
uninstall::
|
||||
for m in ${MANPAGES}; do rm -f ${DESTDIR}${mandir}/man8/$$m || exit 1; done
|
||||
for t in ${TARGETS}; do ${LIBTOOL_MODE_UNINSTALL} rm -f ${DESTDIR}${sbindir}/$$t || exit 1; done
|
||||
for m in ${MANPAGES}; do rm -f ${DESTDIR}${mandir}/man8/$$m ; done
|
||||
for t in ${TARGETS}; do ${LIBTOOL_MODE_UNINSTALL} rm -f ${DESTDIR}${sbindir}/$$t ; done
|
||||
|
||||
clean distclean::
|
||||
rm -f ${TARGETS}
|
||||
|
||||
+46
-47
@@ -19,8 +19,6 @@
|
||||
#include <config.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isc/buffer.h>
|
||||
@@ -88,7 +86,7 @@ static dns_rdataclass_t rdclass = dns_rdataclass_in;
|
||||
* List of digest types used by ds_from_cdnskey(), filled in by add_dtype()
|
||||
* from -a arguments. The size of the array is an arbitrary limit.
|
||||
*/
|
||||
static uint8_t dtype[8];
|
||||
static isc_uint8_t dtype[8];
|
||||
|
||||
static const char *startstr = NULL; /* from which we derive notbefore */
|
||||
static isc_stdtime_t notbefore = 0; /* restrict sig inception times */
|
||||
@@ -131,7 +129,7 @@ static int nkey; /* number of child zone DNSKEY records */
|
||||
typedef struct keyinfo {
|
||||
dns_rdata_t rdata;
|
||||
dst_key_t *dst;
|
||||
uint8_t algo;
|
||||
isc_uint8_t algo;
|
||||
dns_keytag_t tag;
|
||||
} keyinfo_t;
|
||||
|
||||
@@ -175,7 +173,8 @@ initname(char *setname) {
|
||||
isc_result_t result;
|
||||
isc_buffer_t buf;
|
||||
|
||||
name = dns_fixedname_initname(&fixed);
|
||||
dns_fixedname_init(&fixed);
|
||||
name = dns_fixedname_name(&fixed);
|
||||
namestr = setname;
|
||||
|
||||
isc_buffer_init(&buf, setname, strlen(setname));
|
||||
@@ -262,7 +261,7 @@ load_db(const char *filename, dns_db_t **dbp, dns_dbnode_t **nodep) {
|
||||
isc_result_totext(result));
|
||||
}
|
||||
|
||||
result = dns_db_findnode(*dbp, name, false, nodep);
|
||||
result = dns_db_findnode(*dbp, name, ISC_FALSE, nodep);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
fatal("can't find %s node in %s", namestr, filename);
|
||||
}
|
||||
@@ -316,7 +315,7 @@ get_dsset_name(char *filename, size_t size,
|
||||
}
|
||||
isc_buffer_putstr(&buf, prefix);
|
||||
|
||||
result = dns_name_tofilenametext(name, false, &buf);
|
||||
result = dns_name_tofilenametext(name, ISC_FALSE, &buf);
|
||||
check_result(result, "dns_name_tofilenametext()");
|
||||
if (isc_buffer_availablelength(&buf) == 0) {
|
||||
fatal("%s: pathname too long", path);
|
||||
@@ -404,7 +403,7 @@ formatset(dns_rdataset_t *rdataset) {
|
||||
|
||||
static void
|
||||
write_parent_set(const char *path, const char *inplace,
|
||||
bool nsupdate, dns_rdataset_t *rdataset)
|
||||
isc_boolean_t nsupdate, dns_rdataset_t *rdataset)
|
||||
{
|
||||
isc_result_t result;
|
||||
isc_buffer_t *buf = NULL;
|
||||
@@ -471,7 +470,7 @@ typedef enum { LOOSE, TIGHT } strictness_t;
|
||||
/*
|
||||
* Find out if any (C)DS record matches a particular (C)DNSKEY.
|
||||
*/
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
match_key_dsset(keyinfo_t *ki, dns_rdataset_t *dsset, strictness_t strictness)
|
||||
{
|
||||
isc_result_t result;
|
||||
@@ -485,7 +484,7 @@ match_key_dsset(keyinfo_t *ki, dns_rdataset_t *dsset, strictness_t strictness)
|
||||
dns_rdata_t dsrdata = DNS_RDATA_INIT;
|
||||
dns_rdata_t newdsrdata = DNS_RDATA_INIT;
|
||||
dns_rdatatype_t keytype;
|
||||
bool c;
|
||||
isc_boolean_t c;
|
||||
|
||||
dns_rdataset_current(dsset, &dsrdata);
|
||||
result = dns_rdata_tostruct(&dsrdata, &ds, NULL);
|
||||
@@ -515,13 +514,13 @@ match_key_dsset(keyinfo_t *ki, dns_rdataset_t *dsset, strictness_t strictness)
|
||||
vbprintf(1, "found matching %s %d %d %d\n",
|
||||
c ? "CDS" : "DS",
|
||||
ds.key_tag, ds.algorithm, ds.digest_type);
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
} else if (strictness == TIGHT) {
|
||||
vbprintf(0, "key does not match %s %d %d %d "
|
||||
"when it looks like it should\n",
|
||||
c ? "CDS" : "DS",
|
||||
ds.key_tag, ds.algorithm, ds.digest_type);
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -532,7 +531,7 @@ match_key_dsset(keyinfo_t *ki, dns_rdataset_t *dsset, strictness_t strictness)
|
||||
? "CDNSKEY" : "DNSKEY",
|
||||
ki->tag, ki->algo);
|
||||
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -621,12 +620,12 @@ free_keytable(keyinfo_t **keytable_p) {
|
||||
* otherwise the key algorithm. This is used by the signature coverage
|
||||
* check functions below.
|
||||
*/
|
||||
static uint8_t *
|
||||
static isc_uint8_t *
|
||||
matching_sigs(keyinfo_t *keytbl, dns_rdataset_t *rdataset,
|
||||
dns_rdataset_t *sigset)
|
||||
{
|
||||
isc_result_t result;
|
||||
uint8_t *algo;
|
||||
isc_uint8_t *algo;
|
||||
int i;
|
||||
|
||||
algo = isc_mem_get(mctx, nkey);
|
||||
@@ -672,7 +671,7 @@ matching_sigs(keyinfo_t *keytbl, dns_rdataset_t *rdataset,
|
||||
}
|
||||
|
||||
result = dns_dnssec_verify(name, rdataset, ki->dst,
|
||||
false, mctx, &sigrdata);
|
||||
ISC_FALSE, mctx, &sigrdata);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
vbprintf(1, "skip RRSIG by key %d:"
|
||||
" verification failed: %s\n",
|
||||
@@ -705,13 +704,13 @@ matching_sigs(keyinfo_t *keytbl, dns_rdataset_t *rdataset,
|
||||
* Consume the result of matching_sigs(). When checking records
|
||||
* fetched from the child zone, any working signature is enough.
|
||||
*/
|
||||
static bool
|
||||
signed_loose(uint8_t *algo) {
|
||||
bool ok = false;
|
||||
static isc_boolean_t
|
||||
signed_loose(isc_uint8_t *algo) {
|
||||
isc_boolean_t ok = ISC_FALSE;
|
||||
int i;
|
||||
for (i = 0; i < nkey; i++) {
|
||||
if (algo[i] != 0) {
|
||||
ok = true;
|
||||
ok = ISC_TRUE;
|
||||
}
|
||||
}
|
||||
isc_mem_put(mctx, algo, nkey);
|
||||
@@ -724,10 +723,10 @@ signed_loose(uint8_t *algo) {
|
||||
* key algorithm in the DS RRset must have a signature in the DNSKEY
|
||||
* RRset.
|
||||
*/
|
||||
static bool
|
||||
signed_strict(dns_rdataset_t *dsset, uint8_t *algo) {
|
||||
static isc_boolean_t
|
||||
signed_strict(dns_rdataset_t *dsset, isc_uint8_t *algo) {
|
||||
isc_result_t result;
|
||||
bool all_ok = true;
|
||||
isc_boolean_t all_ok = ISC_TRUE;
|
||||
|
||||
for (result = dns_rdataset_first(dsset);
|
||||
result == ISC_R_SUCCESS;
|
||||
@@ -735,23 +734,23 @@ signed_strict(dns_rdataset_t *dsset, uint8_t *algo) {
|
||||
{
|
||||
dns_rdata_t dsrdata = DNS_RDATA_INIT;
|
||||
dns_rdata_ds_t ds;
|
||||
bool ds_ok;
|
||||
isc_boolean_t ds_ok;
|
||||
int i;
|
||||
|
||||
dns_rdataset_current(dsset, &dsrdata);
|
||||
result = dns_rdata_tostruct(&dsrdata, &ds, NULL);
|
||||
check_result(result, "dns_rdata_tostruct(DS)");
|
||||
|
||||
ds_ok = false;
|
||||
ds_ok = ISC_FALSE;
|
||||
for (i = 0; i < nkey; i++) {
|
||||
if (algo[i] == ds.algorithm) {
|
||||
ds_ok = true;
|
||||
ds_ok = ISC_TRUE;
|
||||
}
|
||||
}
|
||||
if (!ds_ok) {
|
||||
vbprintf(0, "missing signature for algorithm %d "
|
||||
"(key %d)\n", ds.algorithm, ds.key_tag);
|
||||
all_ok = false;
|
||||
all_ok = ISC_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -849,14 +848,14 @@ ds_from_cdnskey(dns_rdatalist_t *dslist, isc_buffer_t *buf,
|
||||
*/
|
||||
static int
|
||||
cmp_dtype(const void *ap, const void *bp) {
|
||||
int a = *(const uint8_t *)ap;
|
||||
int b = *(const uint8_t *)bp;
|
||||
int a = *(const isc_uint8_t *)ap;
|
||||
int b = *(const isc_uint8_t *)bp;
|
||||
return (a - b);
|
||||
}
|
||||
|
||||
static void
|
||||
add_dtype(const char *dn) {
|
||||
uint8_t dt;
|
||||
isc_uint8_t dt;
|
||||
unsigned i, n;
|
||||
|
||||
dt = strtodsdigest(dn);
|
||||
@@ -873,7 +872,7 @@ add_dtype(const char *dn) {
|
||||
|
||||
static void
|
||||
make_new_ds_set(ds_maker_func_t *ds_from_rdata,
|
||||
uint32_t ttl, dns_rdataset_t *rdset)
|
||||
isc_uint32_t ttl, dns_rdataset_t *rdset)
|
||||
{
|
||||
unsigned int size = 16;
|
||||
for (;;) {
|
||||
@@ -935,14 +934,14 @@ rdata_cmp(const void *rdata1, const void *rdata2) {
|
||||
* Ensure that every key identified by the DS RRset has the same set of
|
||||
* digest types.
|
||||
*/
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
consistent_digests(dns_rdataset_t *dsset) {
|
||||
isc_result_t result;
|
||||
dns_rdata_t *arrdata;
|
||||
dns_rdata_ds_t *ds;
|
||||
dns_keytag_t key_tag;
|
||||
uint8_t algorithm;
|
||||
bool match;
|
||||
isc_uint8_t algorithm;
|
||||
isc_boolean_t match;
|
||||
int i, j, n, d;
|
||||
|
||||
/*
|
||||
@@ -996,7 +995,7 @@ consistent_digests(dns_rdataset_t *dsset) {
|
||||
/*
|
||||
* Check subsequent keys match the first one
|
||||
*/
|
||||
match = true;
|
||||
match = ISC_TRUE;
|
||||
while (i < n) {
|
||||
key_tag = ds[i].key_tag;
|
||||
algorithm = ds[i].algorithm;
|
||||
@@ -1005,7 +1004,7 @@ consistent_digests(dns_rdataset_t *dsset) {
|
||||
ds[i+j].algorithm != algorithm ||
|
||||
ds[i+j].digest_type != ds[j].digest_type)
|
||||
{
|
||||
match = false;
|
||||
match = ISC_FALSE;
|
||||
}
|
||||
}
|
||||
i += d;
|
||||
@@ -1040,7 +1039,7 @@ print_diff(const char *cmd, dns_rdataset_t *rdataset) {
|
||||
}
|
||||
|
||||
static void
|
||||
update_diff(const char *cmd, uint32_t ttl,
|
||||
update_diff(const char *cmd, isc_uint32_t ttl,
|
||||
dns_rdataset_t *addset, dns_rdataset_t *delset)
|
||||
{
|
||||
isc_result_t result;
|
||||
@@ -1048,7 +1047,7 @@ update_diff(const char *cmd, uint32_t ttl,
|
||||
dns_dbnode_t *node;
|
||||
dns_dbversion_t *ver;
|
||||
dns_rdataset_t diffset;
|
||||
uint32_t save;
|
||||
isc_uint32_t save;
|
||||
|
||||
db = NULL;
|
||||
result = dns_db_create(mctx, "rbt", name, dns_dbtype_zone,
|
||||
@@ -1060,7 +1059,7 @@ update_diff(const char *cmd, uint32_t ttl,
|
||||
check_result(result, "dns_db_newversion()");
|
||||
|
||||
node = NULL;
|
||||
result = dns_db_findnode(db, name, true, &node);
|
||||
result = dns_db_findnode(db, name, ISC_TRUE, &node);
|
||||
check_result(result, "dns_db_findnode()");
|
||||
|
||||
dns_rdataset_init(&diffset);
|
||||
@@ -1084,12 +1083,12 @@ update_diff(const char *cmd, uint32_t ttl,
|
||||
}
|
||||
|
||||
dns_db_detachnode(db, &node);
|
||||
dns_db_closeversion(db, &ver, false);
|
||||
dns_db_closeversion(db, &ver, ISC_FALSE);
|
||||
dns_db_detach(&db);
|
||||
}
|
||||
|
||||
static void
|
||||
nsdiff(uint32_t ttl, dns_rdataset_t *oldset, dns_rdataset_t *newset) {
|
||||
nsdiff(isc_uint32_t ttl, dns_rdataset_t *oldset, dns_rdataset_t *newset) {
|
||||
if (ttl == 0) {
|
||||
vbprintf(1, "warning: no TTL in nsupdate script\n");
|
||||
}
|
||||
@@ -1137,9 +1136,9 @@ main(int argc, char *argv[]) {
|
||||
const char *ds_path = NULL;
|
||||
const char *inplace = NULL;
|
||||
isc_result_t result;
|
||||
bool prefer_cdnskey = false;
|
||||
bool nsupdate = false;
|
||||
uint32_t ttl = 0;
|
||||
isc_boolean_t prefer_cdnskey = ISC_FALSE;
|
||||
isc_boolean_t nsupdate = ISC_FALSE;
|
||||
isc_uint32_t ttl = 0;
|
||||
int ch;
|
||||
char *endp;
|
||||
|
||||
@@ -1153,7 +1152,7 @@ main(int argc, char *argv[]) {
|
||||
#endif
|
||||
dns_result_register();
|
||||
|
||||
isc_commandline_errprint = false;
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
#define OPTIONS "a:c:Dd:f:i:ms:T:uv:V"
|
||||
while ((ch = isc_commandline_parse(argc, argv, OPTIONS)) != -1) {
|
||||
@@ -1165,7 +1164,7 @@ main(int argc, char *argv[]) {
|
||||
rdclass = strtoclass(isc_commandline_argument);
|
||||
break;
|
||||
case 'D':
|
||||
prefer_cdnskey = true;
|
||||
prefer_cdnskey = ISC_TRUE;
|
||||
break;
|
||||
case 'd':
|
||||
ds_path = isc_commandline_argument;
|
||||
@@ -1198,7 +1197,7 @@ main(int argc, char *argv[]) {
|
||||
ttl = strtottl(isc_commandline_argument);
|
||||
break;
|
||||
case 'u':
|
||||
nsupdate = true;
|
||||
nsupdate = ISC_TRUE;
|
||||
break;
|
||||
case 'V':
|
||||
/* Does not return. */
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2008-2012, 2014-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2008-2012, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@@ -178,5 +178,5 @@ RFC 4509\&.
|
||||
\fBInternet Systems Consortium, Inc\&.\fR
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
Copyright \(co 2008-2012, 2014-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2008-2012, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
|
||||
@@ -13,8 +13,6 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isc/buffer.h>
|
||||
@@ -61,15 +59,16 @@ static dns_rdataclass_t rdclass;
|
||||
static dns_fixedname_t fixed;
|
||||
static dns_name_t *name = NULL;
|
||||
static isc_mem_t *mctx = NULL;
|
||||
static uint32_t ttl;
|
||||
static bool emitttl = false;
|
||||
static isc_uint32_t ttl;
|
||||
static isc_boolean_t emitttl = ISC_FALSE;
|
||||
|
||||
static isc_result_t
|
||||
initname(char *setname) {
|
||||
isc_result_t result;
|
||||
isc_buffer_t buf;
|
||||
|
||||
name = dns_fixedname_initname(&fixed);
|
||||
dns_fixedname_init(&fixed);
|
||||
name = dns_fixedname_name(&fixed);
|
||||
|
||||
isc_buffer_init(&buf, setname, strlen(setname));
|
||||
isc_buffer_add(&buf, strlen(setname));
|
||||
@@ -121,7 +120,7 @@ loadset(const char *filename, dns_rdataset_t *rdataset) {
|
||||
isc_result_totext(result));
|
||||
}
|
||||
|
||||
result = dns_db_findnode(db, name, false, &node);
|
||||
result = dns_db_findnode(db, name, ISC_FALSE, &node);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("can't find %s node in %s", setname, filename);
|
||||
|
||||
@@ -162,7 +161,7 @@ loadkeyset(char *dirname, dns_rdataset_t *rdataset) {
|
||||
return (ISC_R_NOSPACE);
|
||||
isc_buffer_putstr(&buf, "keyset-");
|
||||
|
||||
result = dns_name_tofilenametext(name, false, &buf);
|
||||
result = dns_name_tofilenametext(name, ISC_FALSE, &buf);
|
||||
check_result(result, "dns_name_tofilenametext()");
|
||||
if (isc_buffer_availablelength(&buf) == 0)
|
||||
return (ISC_R_NOSPACE);
|
||||
@@ -207,7 +206,8 @@ loadkey(char *filename, unsigned char *key_buf, unsigned int key_buf_size,
|
||||
|
||||
rdclass = dst_key_class(key);
|
||||
|
||||
name = dns_fixedname_initname(&fixed);
|
||||
dns_fixedname_init(&fixed);
|
||||
name = dns_fixedname_name(&fixed);
|
||||
result = dns_name_copy(dst_key_name(key), name, NULL);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("can't copy name");
|
||||
@@ -236,8 +236,8 @@ logkey(dns_rdata_t *rdata)
|
||||
}
|
||||
|
||||
static void
|
||||
emit(unsigned int dtype, bool showall, char *lookaside,
|
||||
bool cds, dns_rdata_t *rdata)
|
||||
emit(unsigned int dtype, isc_boolean_t showall, char *lookaside,
|
||||
isc_boolean_t cds, dns_rdata_t *rdata)
|
||||
{
|
||||
isc_result_t result;
|
||||
unsigned char buf[DNS_DS_BUFFERSIZE];
|
||||
@@ -266,7 +266,7 @@ emit(unsigned int dtype, bool showall, char *lookaside,
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("can't build record");
|
||||
|
||||
result = dns_name_totext(name, false, &nameb);
|
||||
result = dns_name_totext(name, ISC_FALSE, &nameb);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("can't print name");
|
||||
|
||||
@@ -355,10 +355,10 @@ main(int argc, char **argv) {
|
||||
char *endp;
|
||||
int ch;
|
||||
unsigned int dtype = DNS_DSDIGEST_SHA1;
|
||||
bool cds = false;
|
||||
bool both = true;
|
||||
bool usekeyset = false;
|
||||
bool showall = false;
|
||||
isc_boolean_t cds = ISC_FALSE;
|
||||
isc_boolean_t both = ISC_TRUE;
|
||||
isc_boolean_t usekeyset = ISC_FALSE;
|
||||
isc_boolean_t showall = ISC_FALSE;
|
||||
isc_result_t result;
|
||||
isc_log_t *log = NULL;
|
||||
isc_entropy_t *ectx = NULL;
|
||||
@@ -379,31 +379,31 @@ main(int argc, char **argv) {
|
||||
#endif
|
||||
dns_result_register();
|
||||
|
||||
isc_commandline_errprint = false;
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
#define OPTIONS "12Aa:Cc:d:Ff:K:l:sT:v:hV"
|
||||
while ((ch = isc_commandline_parse(argc, argv, OPTIONS)) != -1) {
|
||||
switch (ch) {
|
||||
case '1':
|
||||
dtype = DNS_DSDIGEST_SHA1;
|
||||
both = false;
|
||||
both = ISC_FALSE;
|
||||
break;
|
||||
case '2':
|
||||
dtype = DNS_DSDIGEST_SHA256;
|
||||
both = false;
|
||||
both = ISC_FALSE;
|
||||
break;
|
||||
case 'A':
|
||||
showall = true;
|
||||
showall = ISC_TRUE;
|
||||
break;
|
||||
case 'a':
|
||||
dtype = strtodsdigest(isc_commandline_argument);
|
||||
both = false;
|
||||
both = ISC_FALSE;
|
||||
break;
|
||||
case 'C':
|
||||
if (lookaside != NULL)
|
||||
fatal("lookaside and CDS are mutually"
|
||||
" exclusive");
|
||||
cds = true;
|
||||
cds = ISC_TRUE;
|
||||
break;
|
||||
case 'c':
|
||||
classname = isc_commandline_argument;
|
||||
@@ -429,10 +429,10 @@ main(int argc, char **argv) {
|
||||
fatal("lookaside must be a non-empty string");
|
||||
break;
|
||||
case 's':
|
||||
usekeyset = true;
|
||||
usekeyset = ISC_TRUE;
|
||||
break;
|
||||
case 'T':
|
||||
emitttl = true;
|
||||
emitttl = ISC_TRUE;
|
||||
ttl = strtottl(isc_commandline_argument);
|
||||
break;
|
||||
case 'v':
|
||||
@@ -470,7 +470,7 @@ main(int argc, char **argv) {
|
||||
|
||||
/* When not using -f, -A is implicit */
|
||||
if (filename == NULL)
|
||||
showall = true;
|
||||
showall = ISC_TRUE;
|
||||
|
||||
if (argc < isc_commandline_index + 1 && filename == NULL)
|
||||
fatal("the key file name was not specified");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--
|
||||
- Copyright (C) 2008-2012, 2014-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2008-2012, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2013-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2013-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@@ -134,5 +134,5 @@ RFC 5011\&.
|
||||
\fBInternet Systems Consortium, Inc\&.\fR
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
Copyright \(co 2013-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2013-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isc/buffer.h>
|
||||
@@ -60,20 +59,21 @@ static dns_rdataclass_t rdclass;
|
||||
static dns_fixedname_t fixed;
|
||||
static dns_name_t *name = NULL;
|
||||
static isc_mem_t *mctx = NULL;
|
||||
static bool setpub = false, setdel = false;
|
||||
static bool setttl = false;
|
||||
static isc_boolean_t setpub = ISC_FALSE, setdel = ISC_FALSE;
|
||||
static isc_boolean_t setttl = ISC_FALSE;
|
||||
static isc_stdtime_t pub = 0, del = 0;
|
||||
static dns_ttl_t ttl = 0;
|
||||
static isc_stdtime_t syncadd = 0, syncdel = 0;
|
||||
static bool setsyncadd = false;
|
||||
static bool setsyncdel = false;
|
||||
static isc_boolean_t setsyncadd = ISC_FALSE;
|
||||
static isc_boolean_t setsyncdel = ISC_FALSE;
|
||||
|
||||
static isc_result_t
|
||||
initname(char *setname) {
|
||||
isc_result_t result;
|
||||
isc_buffer_t buf;
|
||||
|
||||
name = dns_fixedname_initname(&fixed);
|
||||
dns_fixedname_init(&fixed);
|
||||
name = dns_fixedname_name(&fixed);
|
||||
|
||||
isc_buffer_init(&buf, setname, strlen(setname));
|
||||
isc_buffer_add(&buf, strlen(setname));
|
||||
@@ -126,7 +126,7 @@ loadset(const char *filename, dns_rdataset_t *rdataset) {
|
||||
isc_result_totext(result));
|
||||
}
|
||||
|
||||
result = dns_db_findnode(db, name, false, &node);
|
||||
result = dns_db_findnode(db, name, ISC_FALSE, &node);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("can't find %s node in %s", setname, filename);
|
||||
|
||||
@@ -181,7 +181,8 @@ loadkey(char *filename, unsigned char *key_buf, unsigned int key_buf_size,
|
||||
|
||||
rdclass = dst_key_class(key);
|
||||
|
||||
name = dns_fixedname_initname(&fixed);
|
||||
dns_fixedname_init(&fixed);
|
||||
name = dns_fixedname_name(&fixed);
|
||||
result = dns_name_copy(dst_key_name(key), name, NULL);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("can't copy name");
|
||||
@@ -228,7 +229,7 @@ emit(const char *dir, dns_rdata_t *rdata) {
|
||||
dst_key_free(&tmp);
|
||||
}
|
||||
|
||||
dst_key_setexternal(key, true);
|
||||
dst_key_setexternal(key, ISC_TRUE);
|
||||
if (setpub)
|
||||
dst_key_settime(key, DST_TIME_PUBLISH, pub);
|
||||
if (setdel)
|
||||
@@ -318,7 +319,7 @@ main(int argc, char **argv) {
|
||||
#endif
|
||||
dns_result_register();
|
||||
|
||||
isc_commandline_errprint = false;
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
#define CMDLINE_FLAGS "D:f:hK:L:P:v:V"
|
||||
while ((ch = isc_commandline_parse(argc, argv, CMDLINE_FLAGS)) != -1) {
|
||||
@@ -349,7 +350,7 @@ main(int argc, char **argv) {
|
||||
break;
|
||||
case 'L':
|
||||
ttl = strtottl(isc_commandline_argument);
|
||||
setttl = true;
|
||||
setttl = ISC_TRUE;
|
||||
break;
|
||||
case 'P':
|
||||
/* -Psync ? */
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--
|
||||
- Copyright (C) 2013-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2013-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2008-2012, 2014-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2008-2012, 2014-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@@ -307,5 +307,5 @@ The PKCS#11 URI Scheme (draft\-pechanec\-pkcs11uri\-13)\&.
|
||||
\fBInternet Systems Consortium, Inc\&.\fR
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
Copyright \(co 2008-2012, 2014-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2008-2012, 2014-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
|
||||
@@ -14,8 +14,6 @@
|
||||
#include <config.h>
|
||||
|
||||
#include <ctype.h>
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isc/buffer.h>
|
||||
@@ -137,9 +135,9 @@ main(int argc, char **argv) {
|
||||
dst_key_t *key = NULL;
|
||||
dns_fixedname_t fname;
|
||||
dns_name_t *name;
|
||||
uint16_t flags = 0, kskflag = 0, revflag = 0;
|
||||
isc_uint16_t flags = 0, kskflag = 0, revflag = 0;
|
||||
dns_secalg_t alg;
|
||||
bool oldstyle = false;
|
||||
isc_boolean_t oldstyle = ISC_FALSE;
|
||||
isc_mem_t *mctx = NULL;
|
||||
int ch;
|
||||
int protocol = -1, signatory = 0;
|
||||
@@ -157,20 +155,20 @@ main(int argc, char **argv) {
|
||||
isc_stdtime_t inactive = 0, deltime = 0;
|
||||
isc_stdtime_t now;
|
||||
int prepub = -1;
|
||||
bool setpub = false, setact = false;
|
||||
bool setrev = false, setinact = false;
|
||||
bool setdel = false, setttl = false;
|
||||
bool unsetpub = false, unsetact = false;
|
||||
bool unsetrev = false, unsetinact = false;
|
||||
bool unsetdel = false;
|
||||
bool genonly = false;
|
||||
bool use_nsec3 = false;
|
||||
bool avoid_collisions = true;
|
||||
bool exact;
|
||||
isc_boolean_t setpub = ISC_FALSE, setact = ISC_FALSE;
|
||||
isc_boolean_t setrev = ISC_FALSE, setinact = ISC_FALSE;
|
||||
isc_boolean_t setdel = ISC_FALSE, setttl = ISC_FALSE;
|
||||
isc_boolean_t unsetpub = ISC_FALSE, unsetact = ISC_FALSE;
|
||||
isc_boolean_t unsetrev = ISC_FALSE, unsetinact = ISC_FALSE;
|
||||
isc_boolean_t unsetdel = ISC_FALSE;
|
||||
isc_boolean_t genonly = ISC_FALSE;
|
||||
isc_boolean_t use_nsec3 = ISC_FALSE;
|
||||
isc_boolean_t avoid_collisions = ISC_TRUE;
|
||||
isc_boolean_t exact;
|
||||
unsigned char c;
|
||||
isc_stdtime_t syncadd = 0, syncdel = 0;
|
||||
bool unsetsyncadd = false, setsyncadd = false;
|
||||
bool unsetsyncdel = false, setsyncdel = false;
|
||||
isc_boolean_t unsetsyncadd = ISC_FALSE, setsyncadd = ISC_FALSE;
|
||||
isc_boolean_t unsetsyncdel = ISC_FALSE, setsyncdel = ISC_FALSE;
|
||||
|
||||
if (argc == 1)
|
||||
usage();
|
||||
@@ -182,7 +180,7 @@ main(int argc, char **argv) {
|
||||
#endif
|
||||
dns_result_register();
|
||||
|
||||
isc_commandline_errprint = false;
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
isc_stdtime_get(&now);
|
||||
|
||||
@@ -190,13 +188,13 @@ main(int argc, char **argv) {
|
||||
while ((ch = isc_commandline_parse(argc, argv, CMDLINE_FLAGS)) != -1) {
|
||||
switch (ch) {
|
||||
case '3':
|
||||
use_nsec3 = true;
|
||||
use_nsec3 = ISC_TRUE;
|
||||
break;
|
||||
case 'a':
|
||||
algname = isc_commandline_argument;
|
||||
break;
|
||||
case 'C':
|
||||
oldstyle = true;
|
||||
oldstyle = ISC_TRUE;
|
||||
break;
|
||||
case 'c':
|
||||
classname = isc_commandline_argument;
|
||||
@@ -226,7 +224,7 @@ main(int argc, char **argv) {
|
||||
break;
|
||||
case 'L':
|
||||
ttl = strtottl(isc_commandline_argument);
|
||||
setttl = true;
|
||||
setttl = ISC_TRUE;
|
||||
break;
|
||||
case 'l':
|
||||
label = isc_mem_strdup(mctx, isc_commandline_argument);
|
||||
@@ -249,10 +247,10 @@ main(int argc, char **argv) {
|
||||
fatal("-v must be followed by a number");
|
||||
break;
|
||||
case 'y':
|
||||
avoid_collisions = false;
|
||||
avoid_collisions = ISC_FALSE;
|
||||
break;
|
||||
case 'G':
|
||||
genonly = true;
|
||||
genonly = ISC_TRUE;
|
||||
break;
|
||||
case 'P':
|
||||
/* -Psync ? */
|
||||
@@ -367,7 +365,8 @@ main(int argc, char **argv) {
|
||||
if (argc > isc_commandline_index + 1)
|
||||
fatal("extraneous arguments");
|
||||
|
||||
name = dns_fixedname_initname(&fname);
|
||||
dns_fixedname_init(&fname);
|
||||
name = dns_fixedname_name(&fname);
|
||||
isc_buffer_init(&buf, argv[isc_commandline_index],
|
||||
strlen(argv[isc_commandline_index]));
|
||||
isc_buffer_add(&buf, strlen(argv[isc_commandline_index]));
|
||||
@@ -467,14 +466,14 @@ main(int argc, char **argv) {
|
||||
"prepublication interval.");
|
||||
|
||||
if (!setpub && !setact) {
|
||||
setpub = setact = true;
|
||||
setpub = setact = ISC_TRUE;
|
||||
publish = now;
|
||||
activate = now + prepub;
|
||||
} else if (setpub && !setact) {
|
||||
setact = true;
|
||||
setact = ISC_TRUE;
|
||||
activate = publish + prepub;
|
||||
} else if (setact && !setpub) {
|
||||
setpub = true;
|
||||
setpub = ISC_TRUE;
|
||||
publish = activate - prepub;
|
||||
}
|
||||
|
||||
@@ -562,7 +561,7 @@ main(int argc, char **argv) {
|
||||
"You can use dnssec-settime -D to "
|
||||
"change this.\n", program, keystr);
|
||||
|
||||
setpub = setact = true;
|
||||
setpub = setact = ISC_TRUE;
|
||||
}
|
||||
|
||||
if (nametype == NULL) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--
|
||||
- Copyright (C) 2008-2012, 2014-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2008-2012, 2014-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
|
||||
@@ -66,19 +66,19 @@ must be one of RSAMD5, RSASHA1, DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA51
|
||||
\fB\-T KEY\fR
|
||||
option as well\&.
|
||||
.sp
|
||||
TSIG keys can also be generated by setting the value to one of HMAC\-MD5, HMAC\-SHA1, HMAC\-SHA224, HMAC\-SHA256, HMAC\-SHA384, or HMAC\-SHA512\&. As with DH, specifying these values will automatically set
|
||||
\fB\-T KEY\fR\&. Note, however, that
|
||||
\fBtsig\-keygen\fR
|
||||
produces TSIG keys in a more useful format\&. These algorithms have been deprecated in
|
||||
\fBdnssec\-keygen\fR, and will be removed in a future release\&.
|
||||
.sp
|
||||
These values are case insensitive\&. In some cases, abbreviations are supported, such as ECDSA256 for ECDSAP256SHA256 and ECDSA384 for ECDSAP384SHA384\&. If RSASHA1 or DSA is specified along with the
|
||||
\fB\-3\fR
|
||||
option, then NSEC3RSASHA1 or NSEC3DSA will be used instead\&.
|
||||
.sp
|
||||
As of BIND 9\&.12\&.0, this option is mandatory except when using the
|
||||
This parameter
|
||||
\fImust\fR
|
||||
be specified except when using the
|
||||
\fB\-S\fR
|
||||
option, which copies the algorithm from the predecessor key\&. Previously, the default for newly generated keys was RSASHA1\&.
|
||||
option, which copies the algorithm from the predecessor key\&.
|
||||
.sp
|
||||
In prior releases, HMAC algorithms could be generated for use as TSIG keys, but that feature has been removed as of BIND 9\&.13\&.0\&. Use
|
||||
\fBtsig\-keygen\fR
|
||||
to generate TSIG keys\&.
|
||||
.RE
|
||||
.PP
|
||||
\-b \fIkeysize\fR
|
||||
|
||||
+60
-163
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Portions Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
* Portions Copyright (C) 1999-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@@ -28,8 +28,6 @@
|
||||
#include <config.h>
|
||||
|
||||
#include <ctype.h>
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
@@ -84,10 +82,7 @@ usage(void) {
|
||||
" | NSEC3DSA |\n");
|
||||
fprintf(stderr, " RSASHA256 | RSASHA512 | ECCGOST |\n");
|
||||
fprintf(stderr, " ECDSAP256SHA256 | ECDSAP384SHA384 |\n");
|
||||
fprintf(stderr, " ED25519 | ED448 | DH |\n");
|
||||
fprintf(stderr, " HMAC-MD5 | HMAC-SHA1 | HMAC-SHA224 | "
|
||||
"HMAC-SHA256 | \n");
|
||||
fprintf(stderr, " HMAC-SHA384 | HMAC-SHA512\n");
|
||||
fprintf(stderr, " ED25519 | ED448 | DH\n");
|
||||
fprintf(stderr, " -3: use NSEC3-capable algorithm\n");
|
||||
fprintf(stderr, " -b <key size in bits>:\n");
|
||||
fprintf(stderr, " RSAMD5:\t[1024..%d]\n", MAX_RSA);
|
||||
@@ -104,12 +99,6 @@ usage(void) {
|
||||
fprintf(stderr, " ECDSAP384SHA384:\tignored\n");
|
||||
fprintf(stderr, " ED25519:\tignored\n");
|
||||
fprintf(stderr, " ED448:\tignored\n");
|
||||
fprintf(stderr, " HMAC-MD5:\t[1..512]\n");
|
||||
fprintf(stderr, " HMAC-SHA1:\t[1..160]\n");
|
||||
fprintf(stderr, " HMAC-SHA224:\t[1..224]\n");
|
||||
fprintf(stderr, " HMAC-SHA256:\t[1..256]\n");
|
||||
fprintf(stderr, " HMAC-SHA384:\t[1..384]\n");
|
||||
fprintf(stderr, " HMAC-SHA512:\t[1..512]\n");
|
||||
fprintf(stderr, " (key size defaults are set according to\n"
|
||||
" algorithm and usage (ZSK or KSK)\n");
|
||||
fprintf(stderr, " -n <nametype>: ZONE | HOST | ENTITY | "
|
||||
@@ -175,9 +164,9 @@ usage(void) {
|
||||
exit (-1);
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
dsa_size_ok(int size) {
|
||||
return (size >= 512 && size <= 1024 && size % 64 == 0);
|
||||
return (ISC_TF(size >= 512 && size <= 1024 && size % 64 == 0));
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -214,10 +203,10 @@ main(int argc, char **argv) {
|
||||
dst_key_t *key = NULL;
|
||||
dns_fixedname_t fname;
|
||||
dns_name_t *name;
|
||||
uint16_t flags = 0, kskflag = 0, revflag = 0;
|
||||
isc_uint16_t flags = 0, kskflag = 0, revflag = 0;
|
||||
dns_secalg_t alg;
|
||||
bool conflict = false, null_key = false;
|
||||
bool oldstyle = false;
|
||||
isc_boolean_t conflict = ISC_FALSE, null_key = ISC_FALSE;
|
||||
isc_boolean_t oldstyle = ISC_FALSE;
|
||||
isc_mem_t *mctx = NULL;
|
||||
int ch, generator = 0, param = 0;
|
||||
int protocol = -1, size = -1, signatory = 0;
|
||||
@@ -239,24 +228,24 @@ main(int argc, char **argv) {
|
||||
int options = DST_TYPE_PRIVATE | DST_TYPE_PUBLIC;
|
||||
int dbits = 0;
|
||||
dns_ttl_t ttl = 0;
|
||||
bool use_nsec3 = false;
|
||||
isc_boolean_t use_nsec3 = ISC_FALSE;
|
||||
isc_stdtime_t publish = 0, activate = 0, revokekey = 0;
|
||||
isc_stdtime_t inactive = 0, deltime = 0;
|
||||
isc_stdtime_t now;
|
||||
int prepub = -1;
|
||||
bool setpub = false, setact = false;
|
||||
bool setrev = false, setinact = false;
|
||||
bool setdel = false, setttl = false;
|
||||
bool unsetpub = false, unsetact = false;
|
||||
bool unsetrev = false, unsetinact = false;
|
||||
bool unsetdel = false;
|
||||
bool genonly = false;
|
||||
bool quiet = false;
|
||||
bool show_progress = false;
|
||||
isc_boolean_t setpub = ISC_FALSE, setact = ISC_FALSE;
|
||||
isc_boolean_t setrev = ISC_FALSE, setinact = ISC_FALSE;
|
||||
isc_boolean_t setdel = ISC_FALSE, setttl = ISC_FALSE;
|
||||
isc_boolean_t unsetpub = ISC_FALSE, unsetact = ISC_FALSE;
|
||||
isc_boolean_t unsetrev = ISC_FALSE, unsetinact = ISC_FALSE;
|
||||
isc_boolean_t unsetdel = ISC_FALSE;
|
||||
isc_boolean_t genonly = ISC_FALSE;
|
||||
isc_boolean_t quiet = ISC_FALSE;
|
||||
isc_boolean_t show_progress = ISC_FALSE;
|
||||
unsigned char c;
|
||||
isc_stdtime_t syncadd = 0, syncdel = 0;
|
||||
bool setsyncadd = false;
|
||||
bool setsyncdel = false;
|
||||
isc_boolean_t setsyncadd = ISC_FALSE;
|
||||
isc_boolean_t setsyncdel = ISC_FALSE;
|
||||
|
||||
if (argc == 1)
|
||||
usage();
|
||||
@@ -266,7 +255,7 @@ main(int argc, char **argv) {
|
||||
#endif
|
||||
dns_result_register();
|
||||
|
||||
isc_commandline_errprint = false;
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
/*
|
||||
* Process memory debugging argument first.
|
||||
@@ -291,7 +280,7 @@ main(int argc, char **argv) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
isc_commandline_reset = true;
|
||||
isc_commandline_reset = ISC_TRUE;
|
||||
|
||||
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
|
||||
|
||||
@@ -300,7 +289,7 @@ main(int argc, char **argv) {
|
||||
while ((ch = isc_commandline_parse(argc, argv, CMDLINE_FLAGS)) != -1) {
|
||||
switch (ch) {
|
||||
case '3':
|
||||
use_nsec3 = true;
|
||||
use_nsec3 = ISC_TRUE;
|
||||
break;
|
||||
case 'a':
|
||||
algname = isc_commandline_argument;
|
||||
@@ -311,7 +300,7 @@ main(int argc, char **argv) {
|
||||
fatal("-b requires a non-negative number");
|
||||
break;
|
||||
case 'C':
|
||||
oldstyle = true;
|
||||
oldstyle = ISC_TRUE;
|
||||
break;
|
||||
case 'c':
|
||||
classname = isc_commandline_argument;
|
||||
@@ -327,7 +316,7 @@ main(int argc, char **argv) {
|
||||
case 'e':
|
||||
fprintf(stderr,
|
||||
"phased-out option -e "
|
||||
"(was 'use (RSA) large exponent')\n");
|
||||
"(was 'use (RSA) large exponent)\n");
|
||||
break;
|
||||
case 'f':
|
||||
c = (unsigned char)(isc_commandline_argument[0]);
|
||||
@@ -359,7 +348,7 @@ main(int argc, char **argv) {
|
||||
break;
|
||||
case 'L':
|
||||
ttl = strtottl(isc_commandline_argument);
|
||||
setttl = true;
|
||||
setttl = ISC_TRUE;
|
||||
break;
|
||||
case 'n':
|
||||
nametype = isc_commandline_argument;
|
||||
@@ -373,7 +362,7 @@ main(int argc, char **argv) {
|
||||
"[0..255]");
|
||||
break;
|
||||
case 'q':
|
||||
quiet = true;
|
||||
quiet = ISC_TRUE;
|
||||
break;
|
||||
case 'r':
|
||||
setup_entropy(mctx, isc_commandline_argument, &ectx);
|
||||
@@ -409,7 +398,7 @@ main(int argc, char **argv) {
|
||||
/* already the default */
|
||||
break;
|
||||
case 'G':
|
||||
genonly = true;
|
||||
genonly = ISC_TRUE;
|
||||
break;
|
||||
case 'P':
|
||||
/* -Psync ? */
|
||||
@@ -503,7 +492,7 @@ main(int argc, char **argv) {
|
||||
}
|
||||
|
||||
if (!isatty(0))
|
||||
quiet = true;
|
||||
quiet = ISC_TRUE;
|
||||
|
||||
if (ectx == NULL)
|
||||
setup_entropy(mctx, NULL, &ectx);
|
||||
@@ -524,7 +513,8 @@ main(int argc, char **argv) {
|
||||
if (argc > isc_commandline_index + 1)
|
||||
fatal("extraneous arguments");
|
||||
|
||||
name = dns_fixedname_initname(&fname);
|
||||
dns_fixedname_init(&fname);
|
||||
name = dns_fixedname_name(&fname);
|
||||
isc_buffer_init(&buf, argv[isc_commandline_index],
|
||||
strlen(argv[isc_commandline_index]));
|
||||
isc_buffer_add(&buf, strlen(argv[isc_commandline_index]));
|
||||
@@ -546,8 +536,6 @@ main(int argc, char **argv) {
|
||||
"\"-a RSAMD5\"\n");
|
||||
INSIST(freeit == NULL);
|
||||
return (1);
|
||||
} else if (strcasecmp(algname, "HMAC-MD5") == 0) {
|
||||
alg = DST_ALG_HMACMD5;
|
||||
#else
|
||||
fprintf(stderr,
|
||||
"The use of RSA (RSAMD5) was disabled\n");
|
||||
@@ -557,47 +545,26 @@ main(int argc, char **argv) {
|
||||
fprintf(stderr, "The use of RSAMD5 was disabled\n");
|
||||
INSIST(freeit == NULL);
|
||||
return (1);
|
||||
} else if (strcasecmp(algname, "HMAC-MD5") == 0) {
|
||||
fprintf(stderr,
|
||||
"The use of HMAC-MD5 was disabled\n");
|
||||
return (1);
|
||||
#endif
|
||||
} else if (strcasecmp(algname, "HMAC-SHA1") == 0)
|
||||
alg = DST_ALG_HMACSHA1;
|
||||
else if (strcasecmp(algname, "HMAC-SHA224") == 0)
|
||||
alg = DST_ALG_HMACSHA224;
|
||||
else if (strcasecmp(algname, "HMAC-SHA256") == 0)
|
||||
alg = DST_ALG_HMACSHA256;
|
||||
else if (strcasecmp(algname, "HMAC-SHA384") == 0)
|
||||
alg = DST_ALG_HMACSHA384;
|
||||
else if (strcasecmp(algname, "HMAC-SHA512") == 0)
|
||||
alg = DST_ALG_HMACSHA512;
|
||||
else {
|
||||
} else {
|
||||
r.base = algname;
|
||||
r.length = strlen(algname);
|
||||
ret = dns_secalg_fromtext(&alg, &r);
|
||||
if (ret != ISC_R_SUCCESS)
|
||||
if (ret != ISC_R_SUCCESS) {
|
||||
fatal("unknown algorithm %s", algname);
|
||||
if (alg == DST_ALG_DH)
|
||||
}
|
||||
if (alg == DST_ALG_DH) {
|
||||
options |= DST_TYPE_KEY;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef PK11_MD5_DISABLE
|
||||
INSIST((alg != DNS_KEYALG_RSAMD5) && (alg != DST_ALG_HMACMD5));
|
||||
INSIST((alg != DNS_KEYALG_RSAMD5));
|
||||
#endif
|
||||
|
||||
|
||||
if (alg == DST_ALG_HMACMD5 || alg == DST_ALG_HMACSHA1 ||
|
||||
alg == DST_ALG_HMACSHA224 || alg == DST_ALG_HMACSHA256 ||
|
||||
alg == DST_ALG_HMACSHA384 || alg == DST_ALG_HMACSHA512)
|
||||
{
|
||||
fprintf(stderr,
|
||||
"Use of dnssec-keygen for HMAC keys is "
|
||||
"deprecated: use tsig-keygen\n");
|
||||
}
|
||||
|
||||
if (!dst_algorithm_supported(alg))
|
||||
if (!dst_algorithm_supported(alg)) {
|
||||
fatal("unsupported algorithm: %d", alg);
|
||||
}
|
||||
|
||||
if (use_nsec3) {
|
||||
switch (alg) {
|
||||
@@ -624,20 +591,20 @@ main(int argc, char **argv) {
|
||||
}
|
||||
|
||||
if (type != NULL && (options & DST_TYPE_KEY) != 0) {
|
||||
if (strcasecmp(type, "NOAUTH") == 0)
|
||||
if (strcasecmp(type, "NOAUTH") == 0) {
|
||||
flags |= DNS_KEYTYPE_NOAUTH;
|
||||
else if (strcasecmp(type, "NOCONF") == 0)
|
||||
} else if (strcasecmp(type, "NOCONF") == 0) {
|
||||
flags |= DNS_KEYTYPE_NOCONF;
|
||||
else if (strcasecmp(type, "NOAUTHCONF") == 0) {
|
||||
} else if (strcasecmp(type, "NOAUTHCONF") == 0) {
|
||||
flags |= (DNS_KEYTYPE_NOAUTH |
|
||||
DNS_KEYTYPE_NOCONF);
|
||||
if (size < 0)
|
||||
size = 0;
|
||||
}
|
||||
else if (strcasecmp(type, "AUTHCONF") == 0)
|
||||
} else if (strcasecmp(type, "AUTHCONF") == 0) {
|
||||
/* nothing */;
|
||||
else
|
||||
} else {
|
||||
fatal("invalid type %s", type);
|
||||
}
|
||||
}
|
||||
|
||||
if (size < 0) {
|
||||
@@ -675,14 +642,14 @@ main(int argc, char **argv) {
|
||||
"prepublication interval.");
|
||||
|
||||
if (!setpub && !setact) {
|
||||
setpub = setact = true;
|
||||
setpub = setact = ISC_TRUE;
|
||||
publish = now;
|
||||
activate = now + prepub;
|
||||
} else if (setpub && !setact) {
|
||||
setact = true;
|
||||
setact = ISC_TRUE;
|
||||
activate = publish + prepub;
|
||||
} else if (setact && !setpub) {
|
||||
setpub = true;
|
||||
setpub = ISC_TRUE;
|
||||
publish = activate - prepub;
|
||||
}
|
||||
|
||||
@@ -768,7 +735,7 @@ main(int argc, char **argv) {
|
||||
"You can use dnssec-settime -D to "
|
||||
"change this.\n", program, keystr);
|
||||
|
||||
setpub = setact = true;
|
||||
setpub = setact = ISC_TRUE;
|
||||
}
|
||||
|
||||
switch (alg) {
|
||||
@@ -807,78 +774,18 @@ main(int argc, char **argv) {
|
||||
case DST_ALG_ED448:
|
||||
size = 456;
|
||||
break;
|
||||
case DST_ALG_HMACMD5:
|
||||
options |= DST_TYPE_KEY;
|
||||
if (size < 1 || size > 512)
|
||||
fatal("HMAC-MD5 key size %d out of range", size);
|
||||
if (dbits != 0 && (dbits < 80 || dbits > 128))
|
||||
fatal("HMAC-MD5 digest bits %d out of range", dbits);
|
||||
if ((dbits % 8) != 0)
|
||||
fatal("HMAC-MD5 digest bits %d not divisible by 8",
|
||||
dbits);
|
||||
break;
|
||||
case DST_ALG_HMACSHA1:
|
||||
options |= DST_TYPE_KEY;
|
||||
if (size < 1 || size > 160)
|
||||
fatal("HMAC-SHA1 key size %d out of range", size);
|
||||
if (dbits != 0 && (dbits < 80 || dbits > 160))
|
||||
fatal("HMAC-SHA1 digest bits %d out of range", dbits);
|
||||
if ((dbits % 8) != 0)
|
||||
fatal("HMAC-SHA1 digest bits %d not divisible by 8",
|
||||
dbits);
|
||||
break;
|
||||
case DST_ALG_HMACSHA224:
|
||||
options |= DST_TYPE_KEY;
|
||||
if (size < 1 || size > 224)
|
||||
fatal("HMAC-SHA224 key size %d out of range", size);
|
||||
if (dbits != 0 && (dbits < 112 || dbits > 224))
|
||||
fatal("HMAC-SHA224 digest bits %d out of range", dbits);
|
||||
if ((dbits % 8) != 0)
|
||||
fatal("HMAC-SHA224 digest bits %d not divisible by 8",
|
||||
dbits);
|
||||
break;
|
||||
case DST_ALG_HMACSHA256:
|
||||
options |= DST_TYPE_KEY;
|
||||
if (size < 1 || size > 256)
|
||||
fatal("HMAC-SHA256 key size %d out of range", size);
|
||||
if (dbits != 0 && (dbits < 128 || dbits > 256))
|
||||
fatal("HMAC-SHA256 digest bits %d out of range", dbits);
|
||||
if ((dbits % 8) != 0)
|
||||
fatal("HMAC-SHA256 digest bits %d not divisible by 8",
|
||||
dbits);
|
||||
break;
|
||||
case DST_ALG_HMACSHA384:
|
||||
options |= DST_TYPE_KEY;
|
||||
if (size < 1 || size > 384)
|
||||
fatal("HMAC-384 key size %d out of range", size);
|
||||
if (dbits != 0 && (dbits < 192 || dbits > 384))
|
||||
fatal("HMAC-SHA384 digest bits %d out of range", dbits);
|
||||
if ((dbits % 8) != 0)
|
||||
fatal("HMAC-SHA384 digest bits %d not divisible by 8",
|
||||
dbits);
|
||||
break;
|
||||
case DST_ALG_HMACSHA512:
|
||||
options |= DST_TYPE_KEY;
|
||||
if (size < 1 || size > 512)
|
||||
fatal("HMAC-SHA512 key size %d out of range", size);
|
||||
if (dbits != 0 && (dbits < 256 || dbits > 512))
|
||||
fatal("HMAC-SHA512 digest bits %d out of range", dbits);
|
||||
if ((dbits % 8) != 0)
|
||||
fatal("HMAC-SHA512 digest bits %d not divisible by 8",
|
||||
dbits);
|
||||
break;
|
||||
}
|
||||
|
||||
if (alg != DNS_KEYALG_DH && generator != 0)
|
||||
fatal("specified DH generator for a non-DH key");
|
||||
|
||||
if (nametype == NULL) {
|
||||
if ((options & DST_TYPE_KEY) != 0) /* KEY / HMAC */
|
||||
if ((options & DST_TYPE_KEY) != 0) /* KEY */
|
||||
fatal("no nametype specified");
|
||||
flags |= DNS_KEYOWNER_ZONE; /* DNSKEY */
|
||||
} else if (strcasecmp(nametype, "zone") == 0)
|
||||
flags |= DNS_KEYOWNER_ZONE;
|
||||
else if ((options & DST_TYPE_KEY) != 0) { /* KEY / HMAC */
|
||||
else if ((options & DST_TYPE_KEY) != 0) { /* KEY */
|
||||
if (strcasecmp(nametype, "host") == 0 ||
|
||||
strcasecmp(nametype, "entity") == 0)
|
||||
flags |= DNS_KEYOWNER_ENTITY;
|
||||
@@ -894,7 +801,7 @@ main(int argc, char **argv) {
|
||||
if (directory == NULL)
|
||||
directory = ".";
|
||||
|
||||
if ((options & DST_TYPE_KEY) != 0) /* KEY / HMAC */
|
||||
if ((options & DST_TYPE_KEY) != 0) /* KEY */
|
||||
flags |= signatory;
|
||||
else if ((flags & DNS_KEYOWNER_ZONE) != 0) { /* DNSKEY */
|
||||
flags |= kskflag;
|
||||
@@ -915,12 +822,11 @@ main(int argc, char **argv) {
|
||||
}
|
||||
|
||||
if ((flags & DNS_KEYFLAG_OWNERMASK) == DNS_KEYOWNER_ZONE &&
|
||||
(alg == DNS_KEYALG_DH || alg == DST_ALG_HMACMD5 ||
|
||||
alg == DST_ALG_HMACSHA1 || alg == DST_ALG_HMACSHA224 ||
|
||||
alg == DST_ALG_HMACSHA256 || alg == DST_ALG_HMACSHA384 ||
|
||||
alg == DST_ALG_HMACSHA512))
|
||||
alg == DNS_KEYALG_DH)
|
||||
{
|
||||
fatal("a key with algorithm '%s' cannot be a zone key",
|
||||
algname);
|
||||
}
|
||||
|
||||
switch(alg) {
|
||||
case DNS_KEYALG_RSAMD5:
|
||||
@@ -928,7 +834,7 @@ main(int argc, char **argv) {
|
||||
case DNS_KEYALG_NSEC3RSASHA1:
|
||||
case DNS_KEYALG_RSASHA256:
|
||||
case DNS_KEYALG_RSASHA512:
|
||||
show_progress = true;
|
||||
show_progress = ISC_TRUE;
|
||||
break;
|
||||
|
||||
case DNS_KEYALG_DH:
|
||||
@@ -942,26 +848,17 @@ main(int argc, char **argv) {
|
||||
case DST_ALG_ECDSA384:
|
||||
case DST_ALG_ED25519:
|
||||
case DST_ALG_ED448:
|
||||
show_progress = true;
|
||||
/* fall through */
|
||||
|
||||
case DST_ALG_HMACMD5:
|
||||
case DST_ALG_HMACSHA1:
|
||||
case DST_ALG_HMACSHA224:
|
||||
case DST_ALG_HMACSHA256:
|
||||
case DST_ALG_HMACSHA384:
|
||||
case DST_ALG_HMACSHA512:
|
||||
param = 0;
|
||||
show_progress = ISC_TRUE;
|
||||
break;
|
||||
}
|
||||
|
||||
if ((flags & DNS_KEYFLAG_TYPEMASK) == DNS_KEYTYPE_NOKEY)
|
||||
null_key = true;
|
||||
null_key = ISC_TRUE;
|
||||
|
||||
isc_buffer_init(&buf, filename, sizeof(filename) - 1);
|
||||
|
||||
do {
|
||||
conflict = false;
|
||||
conflict = ISC_FALSE;
|
||||
|
||||
if (!quiet && show_progress) {
|
||||
fprintf(stderr, "Generating key pair.");
|
||||
@@ -1084,7 +981,7 @@ main(int argc, char **argv) {
|
||||
* or another key being revoked.
|
||||
*/
|
||||
if (key_collision(key, name, directory, mctx, NULL)) {
|
||||
conflict = true;
|
||||
conflict = ISC_TRUE;
|
||||
if (null_key) {
|
||||
dst_key_free(&key);
|
||||
break;
|
||||
@@ -1105,7 +1002,7 @@ main(int argc, char **argv) {
|
||||
|
||||
dst_key_free(&key);
|
||||
}
|
||||
} while (conflict == true);
|
||||
} while (conflict == ISC_TRUE);
|
||||
|
||||
if (conflict)
|
||||
fatal("cannot generate a null key due to possible key ID "
|
||||
|
||||
@@ -130,16 +130,6 @@
|
||||
his value will automatically set the <option>-T KEY</option>
|
||||
option as well.
|
||||
</para>
|
||||
<para>
|
||||
TSIG keys can also be generated by setting the value to
|
||||
one of HMAC-MD5, HMAC-SHA1, HMAC-SHA224, HMAC-SHA256,
|
||||
HMAC-SHA384, or HMAC-SHA512. As with DH, specifying these
|
||||
values will automatically set <option>-T KEY</option>. Note,
|
||||
however, that <command>tsig-keygen</command> produces TSIG keys
|
||||
in a more useful format. These algorithms have been deprecated
|
||||
in <command>dnssec-keygen</command>, and will be removed in a
|
||||
future release.
|
||||
</para>
|
||||
<para>
|
||||
These values are case insensitive. In some cases, abbreviations
|
||||
are supported, such as ECDSA256 for ECDSAP256SHA256 and
|
||||
@@ -148,10 +138,15 @@
|
||||
or NSEC3DSA will be used instead.
|
||||
</para>
|
||||
<para>
|
||||
As of BIND 9.12.0, this option is mandatory except when using
|
||||
the <option>-S</option> option, which copies the algorithm from
|
||||
the predecessor key. Previously, the default for newly
|
||||
generated keys was RSASHA1.
|
||||
This parameter <emphasis>must</emphasis> be specified except
|
||||
when using the <option>-S</option> option, which copies the
|
||||
algorithm from the predecessor key.
|
||||
</para>
|
||||
<para>
|
||||
In prior releases, HMAC algorithms could be generated for
|
||||
use as TSIG keys, but that feature has been removed as of
|
||||
BIND 9.13.0. Use <command>tsig-keygen</command> to generate
|
||||
TSIG keys.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@@ -107,16 +107,6 @@
|
||||
his value will automatically set the <code class="option">-T KEY</code>
|
||||
option as well.
|
||||
</p>
|
||||
<p>
|
||||
TSIG keys can also be generated by setting the value to
|
||||
one of HMAC-MD5, HMAC-SHA1, HMAC-SHA224, HMAC-SHA256,
|
||||
HMAC-SHA384, or HMAC-SHA512. As with DH, specifying these
|
||||
values will automatically set <code class="option">-T KEY</code>. Note,
|
||||
however, that <span class="command"><strong>tsig-keygen</strong></span> produces TSIG keys
|
||||
in a more useful format. These algorithms have been deprecated
|
||||
in <span class="command"><strong>dnssec-keygen</strong></span>, and will be removed in a
|
||||
future release.
|
||||
</p>
|
||||
<p>
|
||||
These values are case insensitive. In some cases, abbreviations
|
||||
are supported, such as ECDSA256 for ECDSAP256SHA256 and
|
||||
@@ -125,10 +115,15 @@
|
||||
or NSEC3DSA will be used instead.
|
||||
</p>
|
||||
<p>
|
||||
As of BIND 9.12.0, this option is mandatory except when using
|
||||
the <code class="option">-S</code> option, which copies the algorithm from
|
||||
the predecessor key. Previously, the default for newly
|
||||
generated keys was RSASHA1.
|
||||
This parameter <span class="emphasis"><em>must</em></span> be specified except
|
||||
when using the <code class="option">-S</code> option, which copies the
|
||||
algorithm from the predecessor key.
|
||||
</p>
|
||||
<p>
|
||||
In prior releases, HMAC algorithms could be generated for
|
||||
use as TSIG keys, but that feature has been removed as of
|
||||
BIND 9.13.0. Use <span class="command"><strong>tsig-keygen</strong></span> to generate
|
||||
TSIG keys.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><span class="term">-b <em class="replaceable"><code>keysize</code></em></span></dt>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2009, 2011, 2014-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2009, 2011, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@@ -99,5 +99,5 @@ RFC 5011\&.
|
||||
\fBInternet Systems Consortium, Inc\&.\fR
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
Copyright \(co 2009, 2011, 2014-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2009, 2011, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
|
||||
@@ -13,8 +13,6 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
@@ -91,11 +89,11 @@ main(int argc, char **argv) {
|
||||
int ch;
|
||||
isc_entropy_t *ectx = NULL;
|
||||
dst_key_t *key = NULL;
|
||||
uint32_t flags;
|
||||
isc_uint32_t flags;
|
||||
isc_buffer_t buf;
|
||||
bool force = false;
|
||||
bool removefile = false;
|
||||
bool id = false;
|
||||
isc_boolean_t force = ISC_FALSE;
|
||||
isc_boolean_t removefile = ISC_FALSE;
|
||||
isc_boolean_t id = ISC_FALSE;
|
||||
|
||||
if (argc == 1)
|
||||
usage();
|
||||
@@ -109,7 +107,7 @@ main(int argc, char **argv) {
|
||||
#endif
|
||||
dns_result_register();
|
||||
|
||||
isc_commandline_errprint = false;
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
while ((ch = isc_commandline_parse(argc, argv, "E:fK:rRhv:V")) != -1) {
|
||||
switch (ch) {
|
||||
@@ -117,7 +115,7 @@ main(int argc, char **argv) {
|
||||
engine = isc_commandline_argument;
|
||||
break;
|
||||
case 'f':
|
||||
force = true;
|
||||
force = ISC_TRUE;
|
||||
break;
|
||||
case 'K':
|
||||
/*
|
||||
@@ -131,10 +129,10 @@ main(int argc, char **argv) {
|
||||
}
|
||||
break;
|
||||
case 'r':
|
||||
removefile = true;
|
||||
removefile = ISC_TRUE;
|
||||
break;
|
||||
case 'R':
|
||||
id = true;
|
||||
id = ISC_TRUE;
|
||||
break;
|
||||
case 'v':
|
||||
verbose = strtol(isc_commandline_argument, &endp, 0);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--
|
||||
- Copyright (C) 2009, 2011, 2014-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2009, 2011, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2009-2011, 2014-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2009-2011, 2014-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@@ -200,5 +200,5 @@ RFC 5011\&.
|
||||
\fBInternet Systems Consortium, Inc\&.\fR
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
Copyright \(co 2009-2011, 2014-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2009-2011, 2014-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
|
||||
+49
-51
@@ -13,8 +13,6 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
@@ -105,7 +103,7 @@ usage(void) {
|
||||
}
|
||||
|
||||
static void
|
||||
printtime(dst_key_t *key, int type, const char *tag, bool epoch,
|
||||
printtime(dst_key_t *key, int type, const char *tag, isc_boolean_t epoch,
|
||||
FILE *stream)
|
||||
{
|
||||
isc_result_t result;
|
||||
@@ -149,29 +147,29 @@ main(int argc, char **argv) {
|
||||
dns_name_t *name = NULL;
|
||||
dns_secalg_t alg = 0;
|
||||
unsigned int size = 0;
|
||||
uint16_t flags = 0;
|
||||
isc_uint16_t flags = 0;
|
||||
int prepub = -1;
|
||||
dns_ttl_t ttl = 0;
|
||||
isc_stdtime_t now;
|
||||
isc_stdtime_t pub = 0, act = 0, rev = 0, inact = 0, del = 0;
|
||||
isc_stdtime_t prevact = 0, previnact = 0, prevdel = 0;
|
||||
bool setpub = false, setact = false;
|
||||
bool setrev = false, setinact = false;
|
||||
bool setdel = false, setttl = false;
|
||||
bool unsetpub = false, unsetact = false;
|
||||
bool unsetrev = false, unsetinact = false;
|
||||
bool unsetdel = false;
|
||||
bool printcreate = false, printpub = false;
|
||||
bool printact = false, printrev = false;
|
||||
bool printinact = false, printdel = false;
|
||||
bool force = false;
|
||||
bool epoch = false;
|
||||
bool changed = false;
|
||||
isc_boolean_t setpub = ISC_FALSE, setact = ISC_FALSE;
|
||||
isc_boolean_t setrev = ISC_FALSE, setinact = ISC_FALSE;
|
||||
isc_boolean_t setdel = ISC_FALSE, setttl = ISC_FALSE;
|
||||
isc_boolean_t unsetpub = ISC_FALSE, unsetact = ISC_FALSE;
|
||||
isc_boolean_t unsetrev = ISC_FALSE, unsetinact = ISC_FALSE;
|
||||
isc_boolean_t unsetdel = ISC_FALSE;
|
||||
isc_boolean_t printcreate = ISC_FALSE, printpub = ISC_FALSE;
|
||||
isc_boolean_t printact = ISC_FALSE, printrev = ISC_FALSE;
|
||||
isc_boolean_t printinact = ISC_FALSE, printdel = ISC_FALSE;
|
||||
isc_boolean_t force = ISC_FALSE;
|
||||
isc_boolean_t epoch = ISC_FALSE;
|
||||
isc_boolean_t changed = ISC_FALSE;
|
||||
isc_log_t *log = NULL;
|
||||
isc_stdtime_t syncadd = 0, syncdel = 0;
|
||||
bool unsetsyncadd = false, setsyncadd = false;
|
||||
bool unsetsyncdel = false, setsyncdel = false;
|
||||
bool printsyncadd = false, printsyncdel = false;
|
||||
isc_boolean_t unsetsyncadd = ISC_FALSE, setsyncadd = ISC_FALSE;
|
||||
isc_boolean_t unsetsyncdel = ISC_FALSE, setsyncdel = ISC_FALSE;
|
||||
isc_boolean_t printsyncadd = ISC_FALSE, printsyncdel = ISC_FALSE;
|
||||
|
||||
if (argc == 1)
|
||||
usage();
|
||||
@@ -187,7 +185,7 @@ main(int argc, char **argv) {
|
||||
#endif
|
||||
dns_result_register();
|
||||
|
||||
isc_commandline_errprint = false;
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
isc_stdtime_get(&now);
|
||||
|
||||
@@ -198,51 +196,51 @@ main(int argc, char **argv) {
|
||||
engine = isc_commandline_argument;
|
||||
break;
|
||||
case 'f':
|
||||
force = true;
|
||||
force = ISC_TRUE;
|
||||
break;
|
||||
case 'p':
|
||||
p = isc_commandline_argument;
|
||||
if (!strcasecmp(p, "all")) {
|
||||
printcreate = true;
|
||||
printpub = true;
|
||||
printact = true;
|
||||
printrev = true;
|
||||
printinact = true;
|
||||
printdel = true;
|
||||
printsyncadd = true;
|
||||
printsyncdel = true;
|
||||
printcreate = ISC_TRUE;
|
||||
printpub = ISC_TRUE;
|
||||
printact = ISC_TRUE;
|
||||
printrev = ISC_TRUE;
|
||||
printinact = ISC_TRUE;
|
||||
printdel = ISC_TRUE;
|
||||
printsyncadd = ISC_TRUE;
|
||||
printsyncdel = ISC_TRUE;
|
||||
break;
|
||||
}
|
||||
|
||||
do {
|
||||
switch (*p++) {
|
||||
case 'C':
|
||||
printcreate = true;
|
||||
printcreate = ISC_TRUE;
|
||||
break;
|
||||
case 'P':
|
||||
if (!strncmp(p, "sync", 4)) {
|
||||
p += 4;
|
||||
printsyncadd = true;
|
||||
printsyncadd = ISC_TRUE;
|
||||
break;
|
||||
}
|
||||
printpub = true;
|
||||
printpub = ISC_TRUE;
|
||||
break;
|
||||
case 'A':
|
||||
printact = true;
|
||||
printact = ISC_TRUE;
|
||||
break;
|
||||
case 'R':
|
||||
printrev = true;
|
||||
printrev = ISC_TRUE;
|
||||
break;
|
||||
case 'I':
|
||||
printinact = true;
|
||||
printinact = ISC_TRUE;
|
||||
break;
|
||||
case 'D':
|
||||
if (!strncmp(p, "sync", 4)) {
|
||||
p += 4;
|
||||
printsyncdel = true;
|
||||
printsyncdel = ISC_TRUE;
|
||||
break;
|
||||
}
|
||||
printdel = true;
|
||||
printdel = ISC_TRUE;
|
||||
break;
|
||||
case ' ':
|
||||
break;
|
||||
@@ -253,7 +251,7 @@ main(int argc, char **argv) {
|
||||
} while (*p != '\0');
|
||||
break;
|
||||
case 'u':
|
||||
epoch = true;
|
||||
epoch = ISC_TRUE;
|
||||
break;
|
||||
case 'K':
|
||||
/*
|
||||
@@ -269,7 +267,7 @@ main(int argc, char **argv) {
|
||||
break;
|
||||
case 'L':
|
||||
ttl = strtottl(isc_commandline_argument);
|
||||
setttl = true;
|
||||
setttl = ISC_TRUE;
|
||||
break;
|
||||
case 'v':
|
||||
verbose = strtol(isc_commandline_argument, &endp, 0);
|
||||
@@ -283,7 +281,7 @@ main(int argc, char **argv) {
|
||||
fatal("-P sync specified more than "
|
||||
"once");
|
||||
|
||||
changed = true;
|
||||
changed = ISC_TRUE;
|
||||
syncadd = strtotime(isc_commandline_argument,
|
||||
now, now, &setsyncadd);
|
||||
unsetsyncadd = !setsyncadd;
|
||||
@@ -293,7 +291,7 @@ main(int argc, char **argv) {
|
||||
if (setpub || unsetpub)
|
||||
fatal("-P specified more than once");
|
||||
|
||||
changed = true;
|
||||
changed = ISC_TRUE;
|
||||
pub = strtotime(isc_commandline_argument,
|
||||
now, now, &setpub);
|
||||
unsetpub = !setpub;
|
||||
@@ -302,7 +300,7 @@ main(int argc, char **argv) {
|
||||
if (setact || unsetact)
|
||||
fatal("-A specified more than once");
|
||||
|
||||
changed = true;
|
||||
changed = ISC_TRUE;
|
||||
act = strtotime(isc_commandline_argument,
|
||||
now, now, &setact);
|
||||
unsetact = !setact;
|
||||
@@ -311,7 +309,7 @@ main(int argc, char **argv) {
|
||||
if (setrev || unsetrev)
|
||||
fatal("-R specified more than once");
|
||||
|
||||
changed = true;
|
||||
changed = ISC_TRUE;
|
||||
rev = strtotime(isc_commandline_argument,
|
||||
now, now, &setrev);
|
||||
unsetrev = !setrev;
|
||||
@@ -320,7 +318,7 @@ main(int argc, char **argv) {
|
||||
if (setinact || unsetinact)
|
||||
fatal("-I specified more than once");
|
||||
|
||||
changed = true;
|
||||
changed = ISC_TRUE;
|
||||
inact = strtotime(isc_commandline_argument,
|
||||
now, now, &setinact);
|
||||
unsetinact = !setinact;
|
||||
@@ -332,7 +330,7 @@ main(int argc, char **argv) {
|
||||
fatal("-D sync specified more than "
|
||||
"once");
|
||||
|
||||
changed = true;
|
||||
changed = ISC_TRUE;
|
||||
syncdel = strtotime(isc_commandline_argument,
|
||||
now, now, &setsyncdel);
|
||||
unsetsyncdel = !setsyncdel;
|
||||
@@ -343,7 +341,7 @@ main(int argc, char **argv) {
|
||||
if (setdel || unsetdel)
|
||||
fatal("-D specified more than once");
|
||||
|
||||
changed = true;
|
||||
changed = ISC_TRUE;
|
||||
del = strtotime(isc_commandline_argument,
|
||||
now, now, &setdel);
|
||||
unsetdel = !setdel;
|
||||
@@ -461,7 +459,7 @@ main(int argc, char **argv) {
|
||||
"before it is scheduled to be "
|
||||
"inactive.\n", program);
|
||||
|
||||
changed = setpub = setact = true;
|
||||
changed = setpub = setact = ISC_TRUE;
|
||||
} else {
|
||||
if (prepub < 0)
|
||||
prepub = 0;
|
||||
@@ -473,10 +471,10 @@ main(int argc, char **argv) {
|
||||
"prepublication interval.");
|
||||
|
||||
if (setpub && !setact) {
|
||||
setact = true;
|
||||
setact = ISC_TRUE;
|
||||
act = pub + prepub;
|
||||
} else if (setact && !setpub) {
|
||||
setpub = true;
|
||||
setpub = ISC_TRUE;
|
||||
pub = act - prepub;
|
||||
}
|
||||
|
||||
@@ -607,11 +605,11 @@ main(int argc, char **argv) {
|
||||
if (force && !changed) {
|
||||
dst_key_settime(key, DST_TIME_PUBLISH, now);
|
||||
dst_key_settime(key, DST_TIME_ACTIVATE, now);
|
||||
changed = true;
|
||||
changed = ISC_TRUE;
|
||||
}
|
||||
|
||||
if (!changed && setttl)
|
||||
changed = true;
|
||||
changed = ISC_TRUE;
|
||||
|
||||
/*
|
||||
* Print out time values, if -p was used.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--
|
||||
- Copyright (C) 2009-2011, 2014-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2009-2011, 2014-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2000-2009, 2011-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000-2009, 2011-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@@ -484,5 +484,5 @@ RFC 4641\&.
|
||||
\fBInternet Systems Consortium, Inc\&.\fR
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
Copyright \(co 2000-2009, 2011-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2000-2009, 2011-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
|
||||
+239
-254
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--
|
||||
- Copyright (C) 2000-2009, 2011-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2009, 2011-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2012, 2014-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2012, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@@ -113,5 +113,5 @@ RFC 4033\&.
|
||||
\fBInternet Systems Consortium, Inc\&.\fR
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
Copyright \(co 2012, 2014-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2012, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
@@ -80,8 +79,8 @@ static dns_db_t *gdb; /* The database */
|
||||
static dns_dbversion_t *gversion; /* The database version */
|
||||
static dns_rdataclass_t gclass; /* The class */
|
||||
static dns_name_t *gorigin; /* The database origin */
|
||||
static bool ignore_kskflag = false;
|
||||
static bool keyset_kskonly = false;
|
||||
static isc_boolean_t ignore_kskflag = ISC_FALSE;
|
||||
static isc_boolean_t keyset_kskonly = ISC_FALSE;
|
||||
|
||||
/*%
|
||||
* Load the zone file from disk
|
||||
@@ -98,7 +97,8 @@ loadzone(char *file, char *origin, dns_rdataclass_t rdclass, dns_db_t **db) {
|
||||
isc_buffer_init(&b, origin, len);
|
||||
isc_buffer_add(&b, len);
|
||||
|
||||
name = dns_fixedname_initname(&fname);
|
||||
dns_fixedname_init(&fname);
|
||||
name = dns_fixedname_name(&fname);
|
||||
result = dns_name_fromtext(name, &b, dns_rootname, 0, NULL);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("failed converting name '%s' to dns format: %s",
|
||||
@@ -207,7 +207,7 @@ main(int argc, char *argv[]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
isc_commandline_reset = true;
|
||||
isc_commandline_reset = ISC_TRUE;
|
||||
check_result(isc_app_start(), "isc_app_start");
|
||||
|
||||
result = isc_mem_create(0, 0, &mctx);
|
||||
@@ -219,7 +219,7 @@ main(int argc, char *argv[]) {
|
||||
#endif
|
||||
dns_result_register();
|
||||
|
||||
isc_commandline_errprint = false;
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
while ((ch = isc_commandline_parse(argc, argv, CMDLINE_FLAGS)) != -1) {
|
||||
switch (ch) {
|
||||
@@ -250,11 +250,11 @@ main(int argc, char *argv[]) {
|
||||
break;
|
||||
|
||||
case 'x':
|
||||
keyset_kskonly = true;
|
||||
keyset_kskonly = ISC_TRUE;
|
||||
break;
|
||||
|
||||
case 'z':
|
||||
ignore_kskflag = true;
|
||||
ignore_kskflag = ISC_TRUE;
|
||||
break;
|
||||
|
||||
case '?':
|
||||
@@ -335,7 +335,7 @@ main(int argc, char *argv[]) {
|
||||
verifyzone(gdb, gversion, gorigin, mctx,
|
||||
ignore_kskflag, keyset_kskonly);
|
||||
|
||||
dns_db_closeversion(gdb, &gversion, false);
|
||||
dns_db_closeversion(gdb, &gversion, ISC_FALSE);
|
||||
dns_db_detach(&gdb);
|
||||
|
||||
cleanup_logging(&log);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--
|
||||
- Copyright (C) 2012, 2014-2016, 2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2012, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
|
||||
+106
-147
@@ -17,8 +17,6 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
@@ -63,10 +61,10 @@
|
||||
static isc_heap_t *expected_chains, *found_chains;
|
||||
|
||||
struct nsec3_chain_fixed {
|
||||
uint8_t hash;
|
||||
uint8_t salt_length;
|
||||
uint8_t next_length;
|
||||
uint16_t iterations;
|
||||
isc_uint8_t hash;
|
||||
isc_uint8_t salt_length;
|
||||
isc_uint8_t next_length;
|
||||
isc_uint16_t iterations;
|
||||
/* unsigned char salt[0]; */
|
||||
/* unsigned char owner[0]; */
|
||||
/* unsigned char next[0]; */
|
||||
@@ -243,7 +241,7 @@ setup_entropy(isc_mem_t *mctx, const char *randomfile, isc_entropy_t **ectx) {
|
||||
|
||||
#ifdef ISC_PLATFORM_CRYPTORANDOM
|
||||
if (randomfile == NULL) {
|
||||
isc_entropy_usehook(*ectx, true);
|
||||
isc_entropy_usehook(*ectx, ISC_TRUE);
|
||||
}
|
||||
#endif
|
||||
if (randomfile != NULL && strcmp(randomfile, "keyboard") == 0) {
|
||||
@@ -315,10 +313,10 @@ time_units(isc_stdtime_t offset, char *suffix, const char *str) {
|
||||
return(0); /* silence compiler warning */
|
||||
}
|
||||
|
||||
static inline bool
|
||||
static inline isc_boolean_t
|
||||
isnone(const char *str) {
|
||||
return ((strcasecmp(str, "none") == 0) ||
|
||||
(strcasecmp(str, "never") == 0));
|
||||
return (ISC_TF((strcasecmp(str, "none") == 0) ||
|
||||
(strcasecmp(str, "never") == 0)));
|
||||
}
|
||||
|
||||
dns_ttl_t
|
||||
@@ -338,10 +336,10 @@ strtottl(const char *str) {
|
||||
}
|
||||
|
||||
isc_stdtime_t
|
||||
strtotime(const char *str, int64_t now, int64_t base,
|
||||
bool *setp)
|
||||
strtotime(const char *str, isc_int64_t now, isc_int64_t base,
|
||||
isc_boolean_t *setp)
|
||||
{
|
||||
int64_t val, offset;
|
||||
isc_int64_t val, offset;
|
||||
isc_result_t result;
|
||||
const char *orig = str;
|
||||
char *endp;
|
||||
@@ -349,12 +347,12 @@ strtotime(const char *str, int64_t now, int64_t base,
|
||||
|
||||
if (isnone(str)) {
|
||||
if (setp != NULL)
|
||||
*setp = false;
|
||||
*setp = ISC_FALSE;
|
||||
return ((isc_stdtime_t) 0);
|
||||
}
|
||||
|
||||
if (setp != NULL)
|
||||
*setp = true;
|
||||
*setp = ISC_TRUE;
|
||||
|
||||
if ((str[0] == '0' || str[0] == '-') && str[1] == '\0')
|
||||
return ((isc_stdtime_t) 0);
|
||||
@@ -495,53 +493,45 @@ set_keyversion(dst_key_t *key) {
|
||||
}
|
||||
}
|
||||
|
||||
bool
|
||||
isc_boolean_t
|
||||
key_collision(dst_key_t *dstkey, dns_name_t *name, const char *dir,
|
||||
isc_mem_t *mctx, bool *exact)
|
||||
isc_mem_t *mctx, isc_boolean_t *exact)
|
||||
{
|
||||
isc_result_t result;
|
||||
bool conflict = false;
|
||||
isc_boolean_t conflict = ISC_FALSE;
|
||||
dns_dnsseckeylist_t matchkeys;
|
||||
dns_dnsseckey_t *key = NULL;
|
||||
uint16_t id, oldid;
|
||||
uint32_t rid, roldid;
|
||||
isc_uint16_t id, oldid;
|
||||
isc_uint32_t rid, roldid;
|
||||
dns_secalg_t alg;
|
||||
char filename[ISC_DIR_NAMEMAX];
|
||||
isc_buffer_t fileb;
|
||||
|
||||
if (exact != NULL)
|
||||
*exact = false;
|
||||
*exact = ISC_FALSE;
|
||||
|
||||
id = dst_key_id(dstkey);
|
||||
rid = dst_key_rid(dstkey);
|
||||
alg = dst_key_alg(dstkey);
|
||||
|
||||
/*
|
||||
* For HMAC and Diffie Hellman just check if there is a
|
||||
* direct collision as they can't be revoked. Additionally
|
||||
* dns_dnssec_findmatchingkeys only handles DNSKEY which is
|
||||
* not used for HMAC.
|
||||
* For Diffie Hellman just check if there is a direct collision as
|
||||
* they can't be revoked. Additionally dns_dnssec_findmatchingkeys
|
||||
* only handles DNSKEY which is not used for HMAC.
|
||||
*/
|
||||
switch (alg) {
|
||||
case DST_ALG_HMACMD5:
|
||||
case DST_ALG_HMACSHA1:
|
||||
case DST_ALG_HMACSHA224:
|
||||
case DST_ALG_HMACSHA256:
|
||||
case DST_ALG_HMACSHA384:
|
||||
case DST_ALG_HMACSHA512:
|
||||
case DST_ALG_DH:
|
||||
if (alg == DST_ALG_DH) {
|
||||
isc_buffer_init(&fileb, filename, sizeof(filename));
|
||||
result = dst_key_buildfilename(dstkey, DST_TYPE_PRIVATE,
|
||||
dir, &fileb);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
return (isc_file_exists(filename));
|
||||
}
|
||||
|
||||
ISC_LIST_INIT(matchkeys);
|
||||
result = dns_dnssec_findmatchingkeys(name, dir, mctx, &matchkeys);
|
||||
if (result == ISC_R_NOTFOUND)
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
|
||||
while (!ISC_LIST_EMPTY(matchkeys) && !conflict) {
|
||||
key = ISC_LIST_HEAD(matchkeys);
|
||||
@@ -552,7 +542,7 @@ key_collision(dst_key_t *dstkey, dns_name_t *name, const char *dir,
|
||||
roldid = dst_key_rid(key->key);
|
||||
|
||||
if (oldid == rid || roldid == id || id == oldid) {
|
||||
conflict = true;
|
||||
conflict = ISC_TRUE;
|
||||
if (id != oldid) {
|
||||
if (verbose > 1)
|
||||
fprintf(stderr, "Key ID %d could "
|
||||
@@ -560,7 +550,7 @@ key_collision(dst_key_t *dstkey, dns_name_t *name, const char *dir,
|
||||
id, oldid);
|
||||
} else {
|
||||
if (exact != NULL)
|
||||
*exact = true;
|
||||
*exact = ISC_TRUE;
|
||||
if (verbose > 1)
|
||||
fprintf(stderr, "Key ID %d exists\n",
|
||||
id);
|
||||
@@ -582,15 +572,15 @@ key_collision(dst_key_t *dstkey, dns_name_t *name, const char *dir,
|
||||
return (conflict);
|
||||
}
|
||||
|
||||
bool
|
||||
isc_boolean_t
|
||||
is_delegation(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
dns_name_t *name, dns_dbnode_t *node, uint32_t *ttlp)
|
||||
dns_name_t *name, dns_dbnode_t *node, isc_uint32_t *ttlp)
|
||||
{
|
||||
dns_rdataset_t nsset;
|
||||
isc_result_t result;
|
||||
|
||||
if (dns_name_equal(name, origin))
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
|
||||
dns_rdataset_init(&nsset);
|
||||
result = dns_db_findrdataset(db, node, ver, dns_rdatatype_ns,
|
||||
@@ -601,25 +591,10 @@ is_delegation(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
dns_rdataset_disassociate(&nsset);
|
||||
}
|
||||
|
||||
return (result == ISC_R_SUCCESS);
|
||||
return (ISC_TF(result == ISC_R_SUCCESS));
|
||||
}
|
||||
|
||||
bool
|
||||
has_dname(dns_db_t *db, dns_dbversion_t *ver, dns_dbnode_t *node) {
|
||||
dns_rdataset_t dnameset;
|
||||
isc_result_t result;
|
||||
|
||||
dns_rdataset_init(&dnameset);
|
||||
result = dns_db_findrdataset(db, node, ver, dns_rdatatype_dname, 0, 0,
|
||||
&dnameset, NULL);
|
||||
if (dns_rdataset_isassociated(&dnameset)) {
|
||||
dns_rdataset_disassociate(&dnameset);
|
||||
}
|
||||
|
||||
return (result == ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
goodsig(dns_name_t *origin, dns_rdata_t *sigrdata, dns_name_t *name,
|
||||
dns_rdataset_t *keyrdataset, dns_rdataset_t *rdataset, isc_mem_t *mctx)
|
||||
{
|
||||
@@ -641,35 +616,20 @@ goodsig(dns_name_t *origin, dns_rdata_t *sigrdata, dns_name_t *name,
|
||||
result = dns_dnssec_keyfromrdata(origin, &rdata, mctx,
|
||||
&dstkey);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
if (sig.algorithm != key.algorithm ||
|
||||
sig.keyid != dst_key_id(dstkey) ||
|
||||
!dns_name_equal(&sig.signer, origin)) {
|
||||
dst_key_free(&dstkey);
|
||||
continue;
|
||||
}
|
||||
result = dns_dnssec_verify(name, rdataset, dstkey, false,
|
||||
result = dns_dnssec_verify(name, rdataset, dstkey, ISC_FALSE,
|
||||
mctx, sigrdata);
|
||||
dst_key_free(&dstkey);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
return(true);
|
||||
return(ISC_TRUE);
|
||||
}
|
||||
return (false);
|
||||
}
|
||||
|
||||
static bool
|
||||
nsec_bitmap_equal(dns_rdata_nsec_t *nsec, dns_rdata_t *rdata) {
|
||||
isc_result_t result;
|
||||
dns_rdata_nsec_t tmpnsec;
|
||||
|
||||
result = dns_rdata_tostruct(rdata, &tmpnsec, NULL);
|
||||
RUNTIME_CHECK(result == ISC_R_SUCCESS);
|
||||
|
||||
if (nsec->len != tmpnsec.len ||
|
||||
memcmp(nsec->typebits, tmpnsec.typebits, nsec->len) != 0) {
|
||||
return (false);
|
||||
}
|
||||
return (true);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
@@ -715,7 +675,7 @@ verifynsec(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
|
||||
result = dns_nsec_buildrdata(db, ver, node, nextname, buffer,
|
||||
&tmprdata);
|
||||
check_result(result, "dns_nsec_buildrdata()");
|
||||
if (!nsec_bitmap_equal(&nsec, &tmprdata)) {
|
||||
if (dns_rdata_compare(&rdata, &tmprdata) != 0) {
|
||||
dns_name_format(name, namebuf, sizeof(namebuf));
|
||||
fprintf(stderr, "Bad NSEC record for %s, bit map "
|
||||
"mismatch\n", namebuf);
|
||||
@@ -769,7 +729,7 @@ check_no_rrsig(dns_db_t *db, dns_dbversion_t *ver, dns_rdataset_t *rdataset,
|
||||
dns_rdatasetiter_destroy(&rdsiter);
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
chain_compare(void *arg1, void *arg2) {
|
||||
struct nsec3_chain_fixed *e1 = arg1, *e2 = arg2;
|
||||
size_t len;
|
||||
@@ -778,43 +738,43 @@ chain_compare(void *arg1, void *arg2) {
|
||||
* Do each element in turn to get a stable sort.
|
||||
*/
|
||||
if (e1->hash < e2->hash)
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
if (e1->hash > e2->hash)
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
if (e1->iterations < e2->iterations)
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
if (e1->iterations > e2->iterations)
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
if (e1->salt_length < e2->salt_length)
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
if (e1->salt_length > e2->salt_length)
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
if (e1->next_length < e2->next_length)
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
if (e1->next_length > e2->next_length)
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
len = e1->salt_length + 2 * e1->next_length;
|
||||
if (memcmp(e1 + 1, e2 + 1, len) < 0)
|
||||
return (true);
|
||||
return (false);
|
||||
return (ISC_TRUE);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
chain_equal(struct nsec3_chain_fixed *e1, struct nsec3_chain_fixed *e2) {
|
||||
size_t len;
|
||||
|
||||
if (e1->hash != e2->hash)
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
if (e1->iterations != e2->iterations)
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
if (e1->salt_length != e2->salt_length)
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
if (e1->next_length != e2->next_length)
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
len = e1->salt_length + 2 * e1->next_length;
|
||||
if (memcmp(e1 + 1, e2 + 1, len) != 0)
|
||||
return (false);
|
||||
return (true);
|
||||
return (ISC_FALSE);
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
@@ -934,7 +894,7 @@ match_nsec3(dns_name_t *name, isc_mem_t *mctx,
|
||||
return (result);
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
innsec3params(dns_rdata_nsec3_t *nsec3, dns_rdataset_t *nsec3paramset) {
|
||||
dns_rdata_nsec3param_t nsec3param;
|
||||
isc_result_t result;
|
||||
@@ -953,9 +913,9 @@ innsec3params(dns_rdata_nsec3_t *nsec3, dns_rdataset_t *nsec3paramset) {
|
||||
nsec3param.salt_length == nsec3->salt_length &&
|
||||
memcmp(nsec3param.salt, nsec3->salt,
|
||||
nsec3->salt_length) == 0)
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
@@ -1014,7 +974,7 @@ record_found(dns_db_t *db, dns_dbversion_t *ver, isc_mem_t *mctx,
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
isoptout(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
dns_rdata_t *nsec3rdata)
|
||||
{
|
||||
@@ -1028,7 +988,7 @@ isoptout(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
dns_dbnode_t *node = NULL;
|
||||
unsigned char rawhash[NSEC3_MAX_HASH_LENGTH];
|
||||
size_t rhsize = sizeof(rawhash);
|
||||
bool ret;
|
||||
isc_boolean_t ret;
|
||||
|
||||
result = dns_rdata_tostruct(nsec3rdata, &nsec3param, NULL);
|
||||
check_result(result, "dns_rdata_tostruct()");
|
||||
@@ -1041,12 +1001,12 @@ isoptout(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
|
||||
dns_rdataset_init(&rdataset);
|
||||
hashname = dns_fixedname_name(&fixed);
|
||||
result = dns_db_findnsec3node(db, hashname, false, &node);
|
||||
result = dns_db_findnsec3node(db, hashname, ISC_FALSE, &node);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
result = dns_db_findrdataset(db, node, ver, dns_rdatatype_nsec3,
|
||||
0, 0, &rdataset, NULL);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
|
||||
result = dns_rdataset_first(&rdataset);
|
||||
check_result(result, "dns_rdataset_first()");
|
||||
@@ -1055,9 +1015,9 @@ isoptout(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
|
||||
result = dns_rdata_tostruct(&rdata, &nsec3, NULL);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
ret = false;
|
||||
ret = ISC_FALSE;
|
||||
else
|
||||
ret = (nsec3.flags & DNS_NSEC3FLAG_OPTOUT);
|
||||
ret = ISC_TF((nsec3.flags & DNS_NSEC3FLAG_OPTOUT) != 0);
|
||||
|
||||
if (dns_rdataset_isassociated(&rdataset))
|
||||
dns_rdataset_disassociate(&rdataset);
|
||||
@@ -1070,7 +1030,7 @@ isoptout(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
static isc_result_t
|
||||
verifynsec3(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
isc_mem_t *mctx, dns_name_t *name, dns_rdata_t *rdata,
|
||||
bool delegation, bool empty,
|
||||
isc_boolean_t delegation, isc_boolean_t empty,
|
||||
unsigned char types[8192], unsigned int maxtype)
|
||||
{
|
||||
char namebuf[DNS_NAME_FORMATSIZE];
|
||||
@@ -1083,7 +1043,7 @@ verifynsec3(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
dns_dbnode_t *node = NULL;
|
||||
unsigned char rawhash[NSEC3_MAX_HASH_LENGTH];
|
||||
size_t rhsize = sizeof(rawhash);
|
||||
bool optout;
|
||||
isc_boolean_t optout;
|
||||
|
||||
result = dns_rdata_tostruct(rdata, &nsec3param, NULL);
|
||||
check_result(result, "dns_rdata_tostruct()");
|
||||
@@ -1110,7 +1070,7 @@ verifynsec3(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
*/
|
||||
dns_rdataset_init(&rdataset);
|
||||
hashname = dns_fixedname_name(&fixed);
|
||||
result = dns_db_findnsec3node(db, hashname, false, &node);
|
||||
result = dns_db_findnsec3node(db, hashname, ISC_FALSE, &node);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
result = dns_db_findrdataset(db, node, ver, dns_rdatatype_nsec3,
|
||||
0, 0, &rdataset, NULL);
|
||||
@@ -1142,7 +1102,7 @@ verifynsec3(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
static isc_result_t
|
||||
verifynsec3s(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
isc_mem_t *mctx, dns_name_t *name, dns_rdataset_t *nsec3paramset,
|
||||
bool delegation, bool empty,
|
||||
isc_boolean_t delegation, isc_boolean_t empty,
|
||||
unsigned char types[8192], unsigned int maxtype)
|
||||
{
|
||||
isc_result_t result;
|
||||
@@ -1243,7 +1203,7 @@ verifyset(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
static isc_result_t
|
||||
verifynode(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
isc_mem_t *mctx, dns_name_t *name, dns_dbnode_t *node,
|
||||
bool delegation, dns_rdataset_t *keyrdataset,
|
||||
isc_boolean_t delegation, dns_rdataset_t *keyrdataset,
|
||||
unsigned char *act_algorithms, unsigned char *bad_algorithms,
|
||||
dns_rdataset_t *nsecset, dns_rdataset_t *nsec3paramset,
|
||||
dns_name_t *nextname)
|
||||
@@ -1299,7 +1259,7 @@ verifynode(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
|
||||
if (nsec3paramset != NULL && dns_rdataset_isassociated(nsec3paramset)) {
|
||||
tresult = verifynsec3s(db, ver, origin, mctx, name,
|
||||
nsec3paramset, delegation, false,
|
||||
nsec3paramset, delegation, ISC_FALSE,
|
||||
types, maxtype);
|
||||
if (result == ISC_R_SUCCESS && tresult != ISC_R_SUCCESS)
|
||||
result = tresult;
|
||||
@@ -1307,7 +1267,7 @@ verifynode(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
return (result);
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
is_empty(dns_db_t *db, dns_dbversion_t *ver, dns_dbnode_t *node) {
|
||||
dns_rdatasetiter_t *rdsiter = NULL;
|
||||
isc_result_t result;
|
||||
@@ -1317,8 +1277,8 @@ is_empty(dns_db_t *db, dns_dbversion_t *ver, dns_dbnode_t *node) {
|
||||
result = dns_rdatasetiter_first(rdsiter);
|
||||
dns_rdatasetiter_destroy(&rdsiter);
|
||||
if (result == ISC_R_NOMORE)
|
||||
return (true);
|
||||
return (false);
|
||||
return (ISC_TRUE);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1341,7 +1301,7 @@ check_no_nsec(dns_name_t *name, dns_dbnode_t *node, dns_db_t *db,
|
||||
dns_rdataset_disassociate(&rdataset);
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
newchain(const struct nsec3_chain_fixed *first,
|
||||
const struct nsec3_chain_fixed *e)
|
||||
{
|
||||
@@ -1350,8 +1310,8 @@ newchain(const struct nsec3_chain_fixed *first,
|
||||
first->salt_length != e->salt_length ||
|
||||
first->next_length != e->next_length ||
|
||||
memcmp(first + 1, e + 1, first->salt_length) != 0)
|
||||
return (true);
|
||||
return (false);
|
||||
return (ISC_TRUE);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1362,7 +1322,7 @@ free_element(isc_mem_t *mctx, struct nsec3_chain_fixed *e) {
|
||||
isc_mem_put(mctx, e, len);
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
checknext(const struct nsec3_chain_fixed *first,
|
||||
const struct nsec3_chain_fixed *e)
|
||||
{
|
||||
@@ -1376,7 +1336,7 @@ checknext(const struct nsec3_chain_fixed *first,
|
||||
d2 += e->salt_length;
|
||||
|
||||
if (memcmp(d1, d2, first->next_length) == 0)
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
|
||||
DE_CONST(d1 - first->next_length, sr.base);
|
||||
sr.length = first->next_length;
|
||||
@@ -1398,7 +1358,7 @@ checknext(const struct nsec3_chain_fixed *first,
|
||||
isc_base32hex_totext(&sr, 1, "", &b);
|
||||
fprintf(stderr, "Found: %.*s\n", (int) isc_buffer_usedlength(&b), buf);
|
||||
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
|
||||
#define EXPECTEDANDFOUND "Expected and found NSEC3 chains not equal\n"
|
||||
@@ -1490,7 +1450,7 @@ verify_nsec3_chains(isc_mem_t *mctx) {
|
||||
static isc_result_t
|
||||
verifyemptynodes(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
isc_mem_t *mctx, dns_name_t *name, dns_name_t *prevname,
|
||||
bool isdelegation, dns_rdataset_t *nsec3paramset)
|
||||
isc_boolean_t isdelegation, dns_rdataset_t *nsec3paramset)
|
||||
{
|
||||
dns_namereln_t reln;
|
||||
int order;
|
||||
@@ -1514,7 +1474,7 @@ verifyemptynodes(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
dns_rdataset_isassociated(nsec3paramset)) {
|
||||
tresult = verifynsec3s(db, ver, origin, mctx,
|
||||
&suffix, nsec3paramset,
|
||||
isdelegation, true,
|
||||
isdelegation, ISC_TRUE,
|
||||
NULL, 0);
|
||||
if (result == ISC_R_SUCCESS &&
|
||||
tresult != ISC_R_SUCCESS)
|
||||
@@ -1540,7 +1500,7 @@ verifyemptynodes(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
void
|
||||
verifyzone(dns_db_t *db, dns_dbversion_t *ver,
|
||||
dns_name_t *origin, isc_mem_t *mctx,
|
||||
bool ignore_kskflag, bool keyset_kskonly)
|
||||
isc_boolean_t ignore_kskflag, isc_boolean_t keyset_kskonly)
|
||||
{
|
||||
char algbuf[80];
|
||||
dns_dbiterator_t *dbiter = NULL;
|
||||
@@ -1554,10 +1514,10 @@ verifyzone(dns_db_t *db, dns_dbversion_t *ver,
|
||||
dns_rdataset_t nsecset, nsecsigs;
|
||||
dns_rdataset_t nsec3paramset, nsec3paramsigs;
|
||||
int i;
|
||||
bool done = false;
|
||||
bool first = true;
|
||||
bool goodksk = false;
|
||||
bool goodzsk = false;
|
||||
isc_boolean_t done = ISC_FALSE;
|
||||
isc_boolean_t first = ISC_TRUE;
|
||||
isc_boolean_t goodksk = ISC_FALSE;
|
||||
isc_boolean_t goodzsk = ISC_FALSE;
|
||||
isc_result_t result, vresult = ISC_R_UNSET;
|
||||
unsigned char revoked_ksk[256];
|
||||
unsigned char revoked_zsk[256];
|
||||
@@ -1575,7 +1535,7 @@ verifyzone(dns_db_t *db, dns_dbversion_t *ver,
|
||||
&found_chains);
|
||||
check_result(result, "isc_heap_create()");
|
||||
|
||||
result = dns_db_findnode(db, origin, false, &node);
|
||||
result = dns_db_findnode(db, origin, ISC_FALSE, &node);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("failed to find the zone's origin: %s",
|
||||
isc_result_totext(result));
|
||||
@@ -1654,7 +1614,7 @@ verifyzone(dns_db_t *db, dns_dbversion_t *ver,
|
||||
else if ((dnskey.flags & DNS_KEYFLAG_REVOKE) != 0) {
|
||||
if ((dnskey.flags & DNS_KEYFLAG_KSK) != 0 &&
|
||||
!dns_dnssec_selfsigns(&rdata, origin, &keyset,
|
||||
&keysigs, false,
|
||||
&keysigs, ISC_FALSE,
|
||||
mctx)) {
|
||||
char namebuf[DNS_NAME_FORMATSIZE];
|
||||
char buffer[1024];
|
||||
@@ -1677,21 +1637,21 @@ verifyzone(dns_db_t *db, dns_dbversion_t *ver,
|
||||
revoked_zsk[dnskey.algorithm]++;
|
||||
} else if ((dnskey.flags & DNS_KEYFLAG_KSK) != 0) {
|
||||
if (dns_dnssec_selfsigns(&rdata, origin, &keyset,
|
||||
&keysigs, false, mctx)) {
|
||||
&keysigs, ISC_FALSE, mctx)) {
|
||||
if (ksk_algorithms[dnskey.algorithm] != 255)
|
||||
ksk_algorithms[dnskey.algorithm]++;
|
||||
goodksk = true;
|
||||
goodksk = ISC_TRUE;
|
||||
} else {
|
||||
if (standby_ksk[dnskey.algorithm] != 255)
|
||||
standby_ksk[dnskey.algorithm]++;
|
||||
}
|
||||
} else if (dns_dnssec_selfsigns(&rdata, origin, &keyset,
|
||||
&keysigs, false, mctx)) {
|
||||
&keysigs, ISC_FALSE, mctx)) {
|
||||
if (zsk_algorithms[dnskey.algorithm] != 255)
|
||||
zsk_algorithms[dnskey.algorithm]++;
|
||||
goodzsk = true;
|
||||
goodzsk = ISC_TRUE;
|
||||
} else if (dns_dnssec_signs(&rdata, origin, &soaset,
|
||||
&soasigs, false, mctx)) {
|
||||
&soasigs, ISC_FALSE, mctx)) {
|
||||
if (zsk_algorithms[dnskey.algorithm] != 255)
|
||||
zsk_algorithms[dnskey.algorithm]++;
|
||||
} else {
|
||||
@@ -1754,8 +1714,10 @@ verifyzone(dns_db_t *db, dns_dbversion_t *ver,
|
||||
* present in the DNSKEY RRSET.
|
||||
*/
|
||||
|
||||
name = dns_fixedname_initname(&fname);
|
||||
nextname = dns_fixedname_initname(&fnextname);
|
||||
dns_fixedname_init(&fname);
|
||||
name = dns_fixedname_name(&fname);
|
||||
dns_fixedname_init(&fnextname);
|
||||
nextname = dns_fixedname_name(&fnextname);
|
||||
dns_fixedname_init(&fprevname);
|
||||
prevname = NULL;
|
||||
dns_fixedname_init(&fzonecut);
|
||||
@@ -1768,7 +1730,7 @@ verifyzone(dns_db_t *db, dns_dbversion_t *ver,
|
||||
check_result(result, "dns_dbiterator_first()");
|
||||
|
||||
while (!done) {
|
||||
bool isdelegation = false;
|
||||
isc_boolean_t isdelegation = ISC_FALSE;
|
||||
|
||||
result = dns_dbiterator_current(dbiter, &node, name);
|
||||
check_dns_dbiterator_current(result);
|
||||
@@ -1777,7 +1739,7 @@ verifyzone(dns_db_t *db, dns_dbversion_t *ver,
|
||||
dns_db_detachnode(db, &node);
|
||||
result = dns_dbiterator_next(dbiter);
|
||||
if (result == ISC_R_NOMORE)
|
||||
done = true;
|
||||
done = ISC_TRUE;
|
||||
else
|
||||
check_result(result, "dns_dbiterator_next()");
|
||||
continue;
|
||||
@@ -1785,10 +1747,7 @@ verifyzone(dns_db_t *db, dns_dbversion_t *ver,
|
||||
if (is_delegation(db, ver, origin, name, node, NULL)) {
|
||||
zonecut = dns_fixedname_name(&fzonecut);
|
||||
dns_name_copy(name, zonecut, NULL);
|
||||
isdelegation = true;
|
||||
} else if (has_dname(db, ver, node)) {
|
||||
zonecut = dns_fixedname_name(&fzonecut);
|
||||
dns_name_copy(name, zonecut, NULL);
|
||||
isdelegation = ISC_TRUE;
|
||||
}
|
||||
nextnode = NULL;
|
||||
result = dns_dbiterator_next(dbiter);
|
||||
@@ -1814,7 +1773,7 @@ verifyzone(dns_db_t *db, dns_dbversion_t *ver,
|
||||
break;
|
||||
}
|
||||
if (result == ISC_R_NOMORE) {
|
||||
done = true;
|
||||
done = ISC_TRUE;
|
||||
nextname = origin;
|
||||
} else if (result != ISC_R_SUCCESS)
|
||||
fatal("iterating through the database failed: %s",
|
||||
@@ -1850,7 +1809,7 @@ verifyzone(dns_db_t *db, dns_dbversion_t *ver,
|
||||
result = dns_dbiterator_current(dbiter, &node, name);
|
||||
check_dns_dbiterator_current(result);
|
||||
result = verifynode(db, ver, origin, mctx, name, node,
|
||||
false, &keyset, act_algorithms,
|
||||
ISC_FALSE, &keyset, act_algorithms,
|
||||
bad_algorithms, NULL, NULL, NULL);
|
||||
check_result(result, "verifynode");
|
||||
record_found(db, ver, mctx, name, node, &nsec3paramset);
|
||||
@@ -1883,7 +1842,7 @@ verifyzone(dns_db_t *db, dns_dbversion_t *ver,
|
||||
"for the following algorithms:");
|
||||
dns_secalg_format(i, algbuf, sizeof(algbuf));
|
||||
fprintf(stderr, " %s", algbuf);
|
||||
first = false;
|
||||
first = ISC_FALSE;
|
||||
}
|
||||
}
|
||||
if (!first) {
|
||||
@@ -1924,7 +1883,7 @@ verifyzone(dns_db_t *db, dns_dbversion_t *ver,
|
||||
}
|
||||
}
|
||||
|
||||
bool
|
||||
isc_boolean_t
|
||||
isoptarg(const char *arg, char **argv, void(*usage)(void)) {
|
||||
if (!strcasecmp(isc_commandline_argument, arg)) {
|
||||
if (argv[isc_commandline_index] == NULL) {
|
||||
@@ -1936,9 +1895,9 @@ isoptarg(const char *arg, char **argv, void(*usage)(void)) {
|
||||
isc_commandline_argument = argv[isc_commandline_index];
|
||||
/* skip to next arguement */
|
||||
isc_commandline_index++;
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
+9
-18
@@ -9,13 +9,11 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: dnssectool.h,v 1.33 2011/10/20 23:46:51 tbox Exp $ */
|
||||
|
||||
#ifndef DNSSECTOOL_H
|
||||
#define DNSSECTOOL_H 1
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include <isc/log.h>
|
||||
#include <isc/stdtime.h>
|
||||
#include <dns/rdatastruct.h>
|
||||
@@ -67,8 +65,8 @@ cleanup_entropy(isc_entropy_t **ectx);
|
||||
dns_ttl_t strtottl(const char *str);
|
||||
|
||||
isc_stdtime_t
|
||||
strtotime(const char *str, int64_t now, int64_t base,
|
||||
bool *setp);
|
||||
strtotime(const char *str, isc_int64_t now, isc_int64_t base,
|
||||
isc_boolean_t *setp);
|
||||
|
||||
unsigned int
|
||||
strtodsdigest(const char *str);
|
||||
@@ -85,27 +83,20 @@ check_keyversion(dst_key_t *key, char *keystr);
|
||||
void
|
||||
set_keyversion(dst_key_t *key);
|
||||
|
||||
bool
|
||||
isc_boolean_t
|
||||
key_collision(dst_key_t *key, dns_name_t *name, const char *dir,
|
||||
isc_mem_t *mctx, bool *exact);
|
||||
isc_mem_t *mctx, isc_boolean_t *exact);
|
||||
|
||||
bool
|
||||
isc_boolean_t
|
||||
is_delegation(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
|
||||
dns_name_t *name, dns_dbnode_t *node, uint32_t *ttlp);
|
||||
|
||||
/*%
|
||||
* Return true if version 'ver' of database 'db' contains a DNAME RRset at
|
||||
* 'node'; return false otherwise.
|
||||
*/
|
||||
bool
|
||||
has_dname(dns_db_t *db, dns_dbversion_t *ver, dns_dbnode_t *node);
|
||||
dns_name_t *name, dns_dbnode_t *node, isc_uint32_t *ttlp);
|
||||
|
||||
void
|
||||
verifyzone(dns_db_t *db, dns_dbversion_t *ver,
|
||||
dns_name_t *origin, isc_mem_t *mctx,
|
||||
bool ignore_kskflag, bool keyset_kskonly);
|
||||
isc_boolean_t ignore_kskflag, isc_boolean_t keyset_kskonly);
|
||||
|
||||
bool
|
||||
isc_boolean_t
|
||||
isoptarg(const char *arg, char **argv, void (*usage)(void));
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -5,14 +5,11 @@
|
||||
static char xslmsg[] =
|
||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||
"<!--\n"
|
||||
" - Copyright (C) Internet Systems Consortium, Inc. (\"ISC\")\n"
|
||||
" - Copyright (C) 2006-2009, 2012-2017 Internet Systems Consortium, Inc. (\"ISC\")\n"
|
||||
" -\n"
|
||||
" - This Source Code Form is subject to the terms of the Mozilla Public\n"
|
||||
" - License, v. 2.0. If a copy of the MPL was not distributed with this\n"
|
||||
" - file, You can obtain one at http://mozilla.org/MPL/2.0/.\n"
|
||||
" -\n"
|
||||
" - See the COPYRIGHT file distributed with this work for additional\n"
|
||||
" - information regarding copyright ownership.\n"
|
||||
"-->\n"
|
||||
"\n"
|
||||
"<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns=\"http://www.w3.org/1999/xhtml\" version=\"1.0\">\n"
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: builtin.c,v 1.26 2012/01/21 19:44:18 each Exp $ */
|
||||
|
||||
/*! \file
|
||||
* \brief
|
||||
|
||||
+30
-31
@@ -13,7 +13,6 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isc/buffer.h>
|
||||
@@ -28,7 +27,6 @@
|
||||
|
||||
#include <pk11/site.h>
|
||||
|
||||
#include <isccfg/grammar.h>
|
||||
#include <isccfg/namedconf.h>
|
||||
|
||||
#include <dns/fixedname.h>
|
||||
@@ -48,7 +46,6 @@
|
||||
/*% default configuration */
|
||||
static char defaultconf[] = "\
|
||||
options {\n\
|
||||
answer-cookie true;\n\
|
||||
automatic-interface-scan yes;\n\
|
||||
bindkeys-file \"" NAMED_SYSCONFDIR "/bind.keys\";\n\
|
||||
# blackhole {none;};\n"
|
||||
@@ -102,7 +99,6 @@ options {\n\
|
||||
request-nsid false;\n\
|
||||
reserved-sockets 512;\n\
|
||||
resolver-query-timeout 10;\n\
|
||||
rrset-order { order random; };\n\
|
||||
secroots-file \"named.secroots\";\n\
|
||||
send-cookie true;\n\
|
||||
# serial-queries <obsolete>;\n\
|
||||
@@ -199,7 +195,6 @@ options {\n\
|
||||
resolver-nonbackoff-tries 3;\n\
|
||||
resolver-retry-interval 800; /* in milliseconds */\n\
|
||||
# rfc2308-type1 <obsolete>;\n\
|
||||
root-key-sentinel yes;\n\
|
||||
servfail-ttl 1;\n\
|
||||
# sortlist <none>\n\
|
||||
stale-answer-enable false;\n\
|
||||
@@ -316,9 +311,8 @@ named_config_parsedefaults(cfg_parser_t *parser, cfg_obj_t **conf) {
|
||||
|
||||
isc_buffer_init(&b, defaultconf, sizeof(defaultconf) - 1);
|
||||
isc_buffer_add(&b, sizeof(defaultconf) - 1);
|
||||
return (cfg_parse_buffer4(parser, &b, __FILE__, 0,
|
||||
&cfg_type_namedconf,
|
||||
CFG_PCTX_NODEPRECATED, conf));
|
||||
return (cfg_parse_buffer3(parser, &b, __FILE__, 0,
|
||||
&cfg_type_namedconf, conf));
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
@@ -431,18 +425,23 @@ named_config_getzonetype(const cfg_obj_t *zonetypeobj) {
|
||||
const char *str;
|
||||
|
||||
str = cfg_obj_asstring(zonetypeobj);
|
||||
if (strcasecmp(str, "master") == 0)
|
||||
if (strcasecmp(str, "primary") == 0 ||
|
||||
strcasecmp(str, "master") == 0)
|
||||
{
|
||||
ztype = dns_zone_master;
|
||||
else if (strcasecmp(str, "slave") == 0)
|
||||
} else if (strcasecmp(str, "secondary") == 0 ||
|
||||
strcasecmp(str, "slave") == 0)
|
||||
{
|
||||
ztype = dns_zone_slave;
|
||||
else if (strcasecmp(str, "stub") == 0)
|
||||
} else if (strcasecmp(str, "stub") == 0) {
|
||||
ztype = dns_zone_stub;
|
||||
else if (strcasecmp(str, "static-stub") == 0)
|
||||
} else if (strcasecmp(str, "static-stub") == 0) {
|
||||
ztype = dns_zone_staticstub;
|
||||
else if (strcasecmp(str, "redirect") == 0)
|
||||
} else if (strcasecmp(str, "redirect") == 0) {
|
||||
ztype = dns_zone_redirect;
|
||||
else
|
||||
} else {
|
||||
INSIST(0);
|
||||
}
|
||||
return (ztype);
|
||||
}
|
||||
|
||||
@@ -450,7 +449,7 @@ isc_result_t
|
||||
named_config_getiplist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
in_port_t defport, isc_mem_t *mctx,
|
||||
isc_sockaddr_t **addrsp, isc_dscp_t **dscpsp,
|
||||
uint32_t *countp)
|
||||
isc_uint32_t *countp)
|
||||
{
|
||||
int count, i = 0;
|
||||
const cfg_obj_t *addrlist;
|
||||
@@ -470,8 +469,8 @@ named_config_getiplist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
|
||||
portobj = cfg_tuple_get(list, "port");
|
||||
if (cfg_obj_isuint32(portobj)) {
|
||||
uint32_t val = cfg_obj_asuint32(portobj);
|
||||
if (val > UINT16_MAX) {
|
||||
isc_uint32_t val = cfg_obj_asuint32(portobj);
|
||||
if (val > ISC_UINT16_MAX) {
|
||||
cfg_obj_log(portobj, named_g_lctx, ISC_LOG_ERROR,
|
||||
"port '%u' out of range", val);
|
||||
return (ISC_R_RANGE);
|
||||
@@ -541,7 +540,7 @@ named_config_getiplist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
|
||||
void
|
||||
named_config_putiplist(isc_mem_t *mctx, isc_sockaddr_t **addrsp,
|
||||
isc_dscp_t **dscpsp, uint32_t count)
|
||||
isc_dscp_t **dscpsp, isc_uint32_t count)
|
||||
{
|
||||
INSIST(addrsp != NULL && *addrsp != NULL);
|
||||
INSIST(dscpsp == NULL || *dscpsp != NULL);
|
||||
@@ -587,9 +586,9 @@ isc_result_t
|
||||
named_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
isc_mem_t *mctx, dns_ipkeylist_t *ipkl)
|
||||
{
|
||||
uint32_t addrcount = 0, dscpcount = 0, keycount = 0, i = 0;
|
||||
uint32_t listcount = 0, l = 0, j;
|
||||
uint32_t stackcount = 0, pushed = 0;
|
||||
isc_uint32_t addrcount = 0, dscpcount = 0, keycount = 0, i = 0;
|
||||
isc_uint32_t listcount = 0, l = 0, j;
|
||||
isc_uint32_t stackcount = 0, pushed = 0;
|
||||
isc_result_t result;
|
||||
const cfg_listelt_t *element;
|
||||
const cfg_obj_t *addrlist;
|
||||
@@ -633,8 +632,8 @@ named_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
dscpobj = cfg_tuple_get(list, "dscp");
|
||||
|
||||
if (cfg_obj_isuint32(portobj)) {
|
||||
uint32_t val = cfg_obj_asuint32(portobj);
|
||||
if (val > UINT16_MAX) {
|
||||
isc_uint32_t val = cfg_obj_asuint32(portobj);
|
||||
if (val > ISC_UINT16_MAX) {
|
||||
cfg_obj_log(portobj, named_g_lctx, ISC_LOG_ERROR,
|
||||
"port '%u' out of range", val);
|
||||
result = ISC_R_RANGE;
|
||||
@@ -678,7 +677,7 @@ named_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
/* Grow lists? */
|
||||
if (listcount == l) {
|
||||
void * tmp;
|
||||
uint32_t newlen = listcount + 16;
|
||||
isc_uint32_t newlen = listcount + 16;
|
||||
size_t newsize, oldsize;
|
||||
|
||||
newsize = newlen * sizeof(*lists);
|
||||
@@ -713,7 +712,7 @@ named_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
/* Grow stack? */
|
||||
if (stackcount == pushed) {
|
||||
void * tmp;
|
||||
uint32_t newlen = stackcount + 16;
|
||||
isc_uint32_t newlen = stackcount + 16;
|
||||
size_t newsize, oldsize;
|
||||
|
||||
newsize = newlen * sizeof(*stack);
|
||||
@@ -741,7 +740,7 @@ named_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
|
||||
if (i == addrcount) {
|
||||
void * tmp;
|
||||
uint32_t newlen = addrcount + 16;
|
||||
isc_uint32_t newlen = addrcount + 16;
|
||||
size_t newsize, oldsize;
|
||||
|
||||
newsize = newlen * sizeof(isc_sockaddr_t);
|
||||
@@ -914,7 +913,7 @@ named_config_getport(const cfg_obj_t *config, in_port_t *portp) {
|
||||
|
||||
result = named_config_get(maps, "port", &portobj);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
if (cfg_obj_asuint32(portobj) >= UINT16_MAX) {
|
||||
if (cfg_obj_asuint32(portobj) >= ISC_UINT16_MAX) {
|
||||
cfg_obj_log(portobj, named_g_lctx, ISC_LOG_ERROR,
|
||||
"port '%u' out of range",
|
||||
cfg_obj_asuint32(portobj));
|
||||
@@ -954,7 +953,7 @@ struct keyalgorithms {
|
||||
enum { hmacnone, hmacmd5, hmacsha1, hmacsha224,
|
||||
hmacsha256, hmacsha384, hmacsha512 } hmac;
|
||||
unsigned int type;
|
||||
uint16_t size;
|
||||
isc_uint16_t size;
|
||||
} algorithms[] = {
|
||||
#ifndef PK11_MD5_DISABLE
|
||||
{ "hmac-md5", hmacmd5, DST_ALG_HMACMD5, 128 },
|
||||
@@ -971,18 +970,18 @@ struct keyalgorithms {
|
||||
|
||||
isc_result_t
|
||||
named_config_getkeyalgorithm(const char *str, const dns_name_t **name,
|
||||
uint16_t *digestbits)
|
||||
isc_uint16_t *digestbits)
|
||||
{
|
||||
return (named_config_getkeyalgorithm2(str, name, NULL, digestbits));
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
named_config_getkeyalgorithm2(const char *str, const dns_name_t **name,
|
||||
unsigned int *typep, uint16_t *digestbits)
|
||||
unsigned int *typep, isc_uint16_t *digestbits)
|
||||
{
|
||||
int i;
|
||||
size_t len = 0;
|
||||
uint16_t bits;
|
||||
isc_uint16_t bits;
|
||||
isc_result_t result;
|
||||
|
||||
for (i = 0; algorithms[i].str != NULL; i++) {
|
||||
|
||||
+11
-10
@@ -9,12 +9,13 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: control.c,v 1.49 2012/01/31 23:47:31 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
#include <isc/app.h>
|
||||
#include <isc/event.h>
|
||||
#include <isc/lex.h>
|
||||
@@ -59,9 +60,9 @@ getcommand(isc_lex_t *lex, char **cmdp) {
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
static inline bool
|
||||
static inline isc_boolean_t
|
||||
command_compare(const char *str, const char *command) {
|
||||
return (strcasecmp(str, command) == 0);
|
||||
return ISC_TF(strcasecmp(str, command) == 0);
|
||||
}
|
||||
|
||||
/*%
|
||||
@@ -69,7 +70,7 @@ command_compare(const char *str, const char *command) {
|
||||
* when a control channel message is received.
|
||||
*/
|
||||
isc_result_t
|
||||
named_control_docommand(isccc_sexpr_t *message, bool readonly,
|
||||
named_control_docommand(isccc_sexpr_t *message, isc_boolean_t readonly,
|
||||
isc_buffer_t **text)
|
||||
{
|
||||
isccc_sexpr_t *data;
|
||||
@@ -184,7 +185,7 @@ named_control_docommand(isccc_sexpr_t *message, bool readonly,
|
||||
*/
|
||||
#endif
|
||||
/* Do not flush master files */
|
||||
named_server_flushonshutdown(named_g_server, false);
|
||||
named_server_flushonshutdown(named_g_server, ISC_FALSE);
|
||||
named_os_shutdownmsg(cmdline, *text);
|
||||
isc_app_shutdown();
|
||||
result = ISC_R_SUCCESS;
|
||||
@@ -201,7 +202,7 @@ named_control_docommand(isccc_sexpr_t *message, bool readonly,
|
||||
if (named_smf_got_instance == 1 && named_smf_chroot == 0)
|
||||
named_smf_want_disable = 1;
|
||||
#endif
|
||||
named_server_flushonshutdown(named_g_server, true);
|
||||
named_server_flushonshutdown(named_g_server, ISC_TRUE);
|
||||
named_os_shutdownmsg(cmdline, *text);
|
||||
isc_app_shutdown();
|
||||
result = ISC_R_SUCCESS;
|
||||
@@ -223,9 +224,9 @@ named_control_docommand(isccc_sexpr_t *message, bool readonly,
|
||||
} else if (command_compare(command, NAMED_COMMAND_FLUSH)) {
|
||||
result = named_server_flushcache(named_g_server, lex);
|
||||
} else if (command_compare(command, NAMED_COMMAND_FLUSHNAME)) {
|
||||
result = named_server_flushnode(named_g_server, lex, false);
|
||||
result = named_server_flushnode(named_g_server, lex, ISC_FALSE);
|
||||
} else if (command_compare(command, NAMED_COMMAND_FLUSHTREE)) {
|
||||
result = named_server_flushnode(named_g_server, lex, true);
|
||||
result = named_server_flushnode(named_g_server, lex, ISC_TRUE);
|
||||
} else if (command_compare(command, NAMED_COMMAND_STATUS)) {
|
||||
result = named_server_status(named_g_server, text);
|
||||
} else if (command_compare(command, NAMED_COMMAND_TSIGLIST)) {
|
||||
@@ -233,11 +234,11 @@ named_control_docommand(isccc_sexpr_t *message, bool readonly,
|
||||
} else if (command_compare(command, NAMED_COMMAND_TSIGDELETE)) {
|
||||
result = named_server_tsigdelete(named_g_server, lex, text);
|
||||
} else if (command_compare(command, NAMED_COMMAND_FREEZE)) {
|
||||
result = named_server_freeze(named_g_server, true, lex,
|
||||
result = named_server_freeze(named_g_server, ISC_TRUE, lex,
|
||||
text);
|
||||
} else if (command_compare(command, NAMED_COMMAND_UNFREEZE) ||
|
||||
command_compare(command, NAMED_COMMAND_THAW)) {
|
||||
result = named_server_freeze(named_g_server, false, lex,
|
||||
result = named_server_freeze(named_g_server, ISC_FALSE, lex,
|
||||
text);
|
||||
} else if (command_compare(command, NAMED_COMMAND_SCAN)) {
|
||||
result = ISC_R_SUCCESS;
|
||||
|
||||
+34
-37
@@ -13,9 +13,6 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include <isc/base64.h>
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/event.h>
|
||||
@@ -67,7 +64,7 @@ typedef ISC_LIST(controllistener_t) controllistenerlist_t;
|
||||
|
||||
struct controlkey {
|
||||
char * keyname;
|
||||
uint32_t algorithm;
|
||||
isc_uint32_t algorithm;
|
||||
isc_region_t secret;
|
||||
ISC_LINK(controlkey_t) link;
|
||||
};
|
||||
@@ -75,12 +72,12 @@ struct controlkey {
|
||||
struct controlconnection {
|
||||
isc_socket_t * sock;
|
||||
isccc_ccmsg_t ccmsg;
|
||||
bool ccmsg_valid;
|
||||
bool sending;
|
||||
isc_boolean_t ccmsg_valid;
|
||||
isc_boolean_t sending;
|
||||
isc_timer_t * timer;
|
||||
isc_buffer_t * buffer;
|
||||
controllistener_t * listener;
|
||||
uint32_t nonce;
|
||||
isc_uint32_t nonce;
|
||||
ISC_LINK(controlconnection_t) link;
|
||||
};
|
||||
|
||||
@@ -91,22 +88,22 @@ struct controllistener {
|
||||
isc_sockaddr_t address;
|
||||
isc_socket_t * sock;
|
||||
dns_acl_t * acl;
|
||||
bool listening;
|
||||
bool exiting;
|
||||
isc_boolean_t listening;
|
||||
isc_boolean_t exiting;
|
||||
controlkeylist_t keys;
|
||||
controlconnectionlist_t connections;
|
||||
isc_sockettype_t type;
|
||||
uint32_t perm;
|
||||
uint32_t owner;
|
||||
uint32_t group;
|
||||
bool readonly;
|
||||
isc_uint32_t perm;
|
||||
isc_uint32_t owner;
|
||||
isc_uint32_t group;
|
||||
isc_boolean_t readonly;
|
||||
ISC_LINK(controllistener_t) link;
|
||||
};
|
||||
|
||||
struct named_controls {
|
||||
named_server_t *server;
|
||||
controllistenerlist_t listeners;
|
||||
bool shuttingdown;
|
||||
isc_boolean_t shuttingdown;
|
||||
isccc_symtab_t *symtab;
|
||||
};
|
||||
|
||||
@@ -204,8 +201,8 @@ shutdown_listener(controllistener_t *listener) {
|
||||
NAMED_LOGMODULE_CONTROL, ISC_LOG_NOTICE,
|
||||
"stopping command channel on %s", socktext);
|
||||
if (listener->type == isc_sockettype_unix)
|
||||
isc_socket_cleanunix(&listener->address, true);
|
||||
listener->exiting = true;
|
||||
isc_socket_cleanunix(&listener->address, ISC_TRUE);
|
||||
listener->exiting = ISC_TRUE;
|
||||
}
|
||||
|
||||
for (conn = ISC_LIST_HEAD(listener->connections);
|
||||
@@ -223,7 +220,7 @@ shutdown_listener(controllistener_t *listener) {
|
||||
maybe_free_listener(listener);
|
||||
}
|
||||
|
||||
static bool
|
||||
static isc_boolean_t
|
||||
address_ok(isc_sockaddr_t *sockaddr, dns_acl_t *acl) {
|
||||
dns_aclenv_t *env =
|
||||
ns_interfacemgr_getaclenv(named_g_server->interfacemgr);
|
||||
@@ -236,9 +233,9 @@ address_ok(isc_sockaddr_t *sockaddr, dns_acl_t *acl) {
|
||||
result = dns_acl_match(&netaddr, NULL, acl, env, &match, NULL);
|
||||
|
||||
if (result != ISC_R_SUCCESS || match <= 0)
|
||||
return (false);
|
||||
return (ISC_FALSE);
|
||||
else
|
||||
return (true);
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
@@ -252,7 +249,7 @@ control_accept(controllistener_t *listener) {
|
||||
"isc_socket_accept() failed: %s",
|
||||
isc_result_totext(result));
|
||||
else
|
||||
listener->listening = true;
|
||||
listener->listening = ISC_TRUE;
|
||||
return (result);
|
||||
}
|
||||
|
||||
@@ -285,7 +282,7 @@ control_senddone(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
UNUSED(task);
|
||||
|
||||
conn->sending = false;
|
||||
conn->sending = ISC_FALSE;
|
||||
|
||||
if (sevent->result != ISC_R_SUCCESS &&
|
||||
sevent->result != ISC_R_CANCELED)
|
||||
@@ -332,7 +329,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
controlkey_t *key = NULL;
|
||||
isccc_sexpr_t *request = NULL;
|
||||
isccc_sexpr_t *response = NULL;
|
||||
uint32_t algorithm;
|
||||
isc_uint32_t algorithm;
|
||||
isccc_region_t secret;
|
||||
isc_stdtime_t now;
|
||||
isc_buffer_t b;
|
||||
@@ -343,7 +340,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
isccc_sexpr_t *_ctrl = NULL;
|
||||
isccc_time_t sent;
|
||||
isccc_time_t exp;
|
||||
uint32_t nonce;
|
||||
isc_uint32_t nonce;
|
||||
isccc_sexpr_t *data = NULL;
|
||||
|
||||
REQUIRE(event->ev_type == ISCCC_EVENT_CCMSG);
|
||||
@@ -525,7 +522,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
result = isc_socket_send(conn->sock, &r, task, control_senddone, conn);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup_response;
|
||||
conn->sending = true;
|
||||
conn->sending = ISC_TRUE;
|
||||
|
||||
isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret));
|
||||
isccc_sexpr_free(&request);
|
||||
@@ -545,7 +542,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
cleanup:
|
||||
isc_socket_detach(&conn->sock);
|
||||
isccc_ccmsg_invalidate(&conn->ccmsg);
|
||||
conn->ccmsg_valid = false;
|
||||
conn->ccmsg_valid = ISC_FALSE;
|
||||
maybe_free_connection(conn);
|
||||
maybe_free_listener(listener);
|
||||
}
|
||||
@@ -578,8 +575,8 @@ newconnection(controllistener_t *listener, isc_socket_t *sock) {
|
||||
/* Set a 32 KiB upper limit on incoming message. */
|
||||
isccc_ccmsg_setmaxsize(&conn->ccmsg, 32768);
|
||||
|
||||
conn->ccmsg_valid = true;
|
||||
conn->sending = false;
|
||||
conn->ccmsg_valid = ISC_TRUE;
|
||||
conn->sending = ISC_FALSE;
|
||||
conn->buffer = NULL;
|
||||
conn->timer = NULL;
|
||||
isc_interval_set(&interval, 60, 0);
|
||||
@@ -626,7 +623,7 @@ control_newconn(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
UNUSED(task);
|
||||
|
||||
listener->listening = false;
|
||||
listener->listening = ISC_FALSE;
|
||||
|
||||
if (nevent->result != ISC_R_SUCCESS) {
|
||||
if (nevent->result == ISC_R_CANCELED) {
|
||||
@@ -690,7 +687,7 @@ controls_shutdown(named_controls_t *controls) {
|
||||
void
|
||||
named_controls_shutdown(named_controls_t *controls) {
|
||||
controls_shutdown(controls);
|
||||
controls->shuttingdown = true;
|
||||
controls->shuttingdown = ISC_TRUE;
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
@@ -1096,7 +1093,7 @@ update_listener(named_controls_t *cp, controllistener_t **listenerp,
|
||||
socktext, isc_result_totext(result));
|
||||
|
||||
if (result == ISC_R_SUCCESS && type == isc_sockettype_unix) {
|
||||
uint32_t perm, owner, group;
|
||||
isc_uint32_t perm, owner, group;
|
||||
perm = cfg_obj_asuint32(cfg_tuple_get(control, "perm"));
|
||||
owner = cfg_obj_asuint32(cfg_tuple_get(control, "owner"));
|
||||
group = cfg_obj_asuint32(cfg_tuple_get(control, "group"));
|
||||
@@ -1143,14 +1140,14 @@ add_listener(named_controls_t *cp, controllistener_t **listenerp,
|
||||
listener->task = cp->server->task;
|
||||
listener->address = *addr;
|
||||
listener->sock = NULL;
|
||||
listener->listening = false;
|
||||
listener->exiting = false;
|
||||
listener->listening = ISC_FALSE;
|
||||
listener->exiting = ISC_FALSE;
|
||||
listener->acl = NULL;
|
||||
listener->type = type;
|
||||
listener->perm = 0;
|
||||
listener->owner = 0;
|
||||
listener->group = 0;
|
||||
listener->readonly = false;
|
||||
listener->readonly = ISC_FALSE;
|
||||
ISC_LINK_INIT(listener, link);
|
||||
ISC_LIST_INIT(listener->keys);
|
||||
ISC_LIST_INIT(listener->connections);
|
||||
@@ -1213,7 +1210,7 @@ add_listener(named_controls_t *cp, controllistener_t **listenerp,
|
||||
}
|
||||
|
||||
if (result == ISC_R_SUCCESS && type == isc_sockettype_unix)
|
||||
isc_socket_cleanunix(&listener->address, false);
|
||||
isc_socket_cleanunix(&listener->address, ISC_FALSE);
|
||||
|
||||
if (result == ISC_R_SUCCESS)
|
||||
result = isc_socket_create(named_g_socketmgr,
|
||||
@@ -1224,7 +1221,7 @@ add_listener(named_controls_t *cp, controllistener_t **listenerp,
|
||||
|
||||
#ifndef ISC_ALLOW_MAPPED
|
||||
if (result == ISC_R_SUCCESS)
|
||||
isc_socket_ipv6only(listener->sock, true);
|
||||
isc_socket_ipv6only(listener->sock, ISC_TRUE);
|
||||
#endif
|
||||
|
||||
if (result == ISC_R_SUCCESS)
|
||||
@@ -1255,7 +1252,7 @@ add_listener(named_controls_t *cp, controllistener_t **listenerp,
|
||||
|
||||
} else {
|
||||
if (listener != NULL) {
|
||||
listener->exiting = true;
|
||||
listener->exiting = ISC_TRUE;
|
||||
free_listener(listener);
|
||||
}
|
||||
|
||||
@@ -1515,7 +1512,7 @@ named_controls_create(named_server_t *server, named_controls_t **ctrlsp) {
|
||||
return (ISC_R_NOMEMORY);
|
||||
controls->server = server;
|
||||
ISC_LIST_INIT(controls->listeners);
|
||||
controls->shuttingdown = false;
|
||||
controls->shuttingdown = ISC_FALSE;
|
||||
controls->symtab = NULL;
|
||||
result = isccc_cc_createsymtab(&controls->symtab);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
# See the COPYRIGHT file distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
|
||||
# $Id: convertxsl.pl,v 1.14 2008/07/17 23:43:26 jinmei Exp $
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
|
||||
+16
-20
@@ -11,9 +11,6 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include <named/fuzz.h>
|
||||
|
||||
#ifdef ENABLE_AFL
|
||||
@@ -47,7 +44,7 @@
|
||||
*/
|
||||
static pthread_cond_t cond;
|
||||
static pthread_mutex_t mutex;
|
||||
static bool ready;
|
||||
static isc_boolean_t ready;
|
||||
|
||||
/*
|
||||
* In "client:" mode, this thread reads fuzzed query messages from AFL
|
||||
@@ -125,7 +122,7 @@ fuzz_thread_client(void *arg) {
|
||||
free(buf);
|
||||
close(sockfd);
|
||||
named_server_flushonshutdown(named_g_server,
|
||||
false);
|
||||
ISC_FALSE);
|
||||
isc_app_shutdown();
|
||||
return (NULL);
|
||||
}
|
||||
@@ -135,7 +132,7 @@ fuzz_thread_client(void *arg) {
|
||||
|
||||
RUNTIME_CHECK(pthread_mutex_lock(&mutex) == 0);
|
||||
|
||||
ready = false;
|
||||
ready = ISC_FALSE;
|
||||
|
||||
sent = sendto(sockfd, buf, length, 0,
|
||||
(struct sockaddr *) &servaddr, sizeof(servaddr));
|
||||
@@ -156,7 +153,7 @@ fuzz_thread_client(void *arg) {
|
||||
free(buf);
|
||||
close(sockfd);
|
||||
|
||||
named_server_flushonshutdown(named_g_server, false);
|
||||
named_server_flushonshutdown(named_g_server, ISC_FALSE);
|
||||
isc_app_shutdown();
|
||||
|
||||
return (NULL);
|
||||
@@ -203,7 +200,7 @@ fuzz_thread_resolver(void *arg) {
|
||||
* have to be updated. 0x8d, 0xf6 at the start is the ID field
|
||||
* which will be made to match the query.
|
||||
*/
|
||||
const uint8_t dnskey_wf[] = {
|
||||
const isc_uint8_t dnskey_wf[] = {
|
||||
0x8d, 0xf6, 0x84, 0x00, 0x00, 0x01, 0x00, 0x02,
|
||||
0x00, 0x00, 0x00, 0x01, 0x07, 0x65, 0x78, 0x61,
|
||||
0x6d, 0x70, 0x6c, 0x65, 0x00, 0x00, 0x30, 0x00,
|
||||
@@ -285,12 +282,12 @@ fuzz_thread_resolver(void *arg) {
|
||||
int sockfd;
|
||||
int listenfd;
|
||||
int loop;
|
||||
uint16_t qtype;
|
||||
isc_uint16_t qtype;
|
||||
char *buf, *rbuf;
|
||||
char *nameptr;
|
||||
unsigned int i;
|
||||
uint8_t llen;
|
||||
uint64_t seed;
|
||||
isc_uint8_t llen;
|
||||
isc_uint64_t seed;
|
||||
|
||||
UNUSED(arg);
|
||||
|
||||
@@ -388,7 +385,7 @@ fuzz_thread_resolver(void *arg) {
|
||||
close(sockfd);
|
||||
close(listenfd);
|
||||
named_server_flushonshutdown(named_g_server,
|
||||
false);
|
||||
ISC_FALSE);
|
||||
isc_app_shutdown();
|
||||
return (NULL);
|
||||
}
|
||||
@@ -402,7 +399,7 @@ fuzz_thread_resolver(void *arg) {
|
||||
|
||||
RUNTIME_CHECK(pthread_mutex_lock(&mutex) == 0);
|
||||
|
||||
ready = false;
|
||||
ready = ISC_FALSE;
|
||||
|
||||
/* Use a unique query ID. */
|
||||
seed = 1664525 * seed + 1013904223;
|
||||
@@ -552,7 +549,7 @@ fuzz_thread_resolver(void *arg) {
|
||||
* "example."
|
||||
*/
|
||||
if ((nameptr - buf) < (length - 2)) {
|
||||
uint8_t hb, lb;
|
||||
isc_uint8_t hb, lb;
|
||||
hb = *nameptr++;
|
||||
lb = *nameptr++;
|
||||
qtype = (hb << 8) | lb;
|
||||
@@ -580,10 +577,9 @@ fuzz_thread_resolver(void *arg) {
|
||||
}
|
||||
|
||||
free(buf);
|
||||
free(rbuf);
|
||||
close(sockfd);
|
||||
close(listenfd);
|
||||
named_server_flushonshutdown(named_g_server, false);
|
||||
named_server_flushonshutdown(named_g_server, ISC_FALSE);
|
||||
isc_app_shutdown();
|
||||
|
||||
/*
|
||||
@@ -690,7 +686,7 @@ fuzz_thread_tcp(void *arg) {
|
||||
|
||||
RUNTIME_CHECK(pthread_mutex_lock(&mutex) == 0);
|
||||
|
||||
ready = false;
|
||||
ready = ISC_FALSE;
|
||||
yes = 1;
|
||||
sockfd = socket(AF_INET, SOCK_STREAM, 0);
|
||||
|
||||
@@ -721,7 +717,7 @@ fuzz_thread_tcp(void *arg) {
|
||||
|
||||
free(buf);
|
||||
close(sockfd);
|
||||
named_server_flushonshutdown(named_g_server, false);
|
||||
named_server_flushonshutdown(named_g_server, ISC_FALSE);
|
||||
isc_app_shutdown();
|
||||
|
||||
return (NULL);
|
||||
@@ -738,7 +734,7 @@ void
|
||||
named_fuzz_notify(void) {
|
||||
#ifdef ENABLE_AFL
|
||||
if (getenv("AFL_CMIN")) {
|
||||
named_server_flushonshutdown(named_g_server, false);
|
||||
named_server_flushonshutdown(named_g_server, ISC_FALSE);
|
||||
isc_app_shutdown();
|
||||
return;
|
||||
}
|
||||
@@ -747,7 +743,7 @@ named_fuzz_notify(void) {
|
||||
|
||||
RUNTIME_CHECK(pthread_mutex_lock(&mutex) == 0);
|
||||
|
||||
ready = true;
|
||||
ready = ISC_TRUE;
|
||||
|
||||
RUNTIME_CHECK(pthread_cond_signal(&cond) == 0);
|
||||
RUNTIME_CHECK(pthread_mutex_unlock(&mutex) == 0);
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: dlz_dlopen_driver.h,v 1.4 2011/03/17 09:25:53 fdupont Exp $ */
|
||||
|
||||
#ifndef DLZ_DLOPEN_DRIVER_H
|
||||
#define DLZ_DLOPEN_DRIVER_H
|
||||
|
||||
@@ -9,14 +9,13 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: config.h,v 1.16 2009/06/11 23:47:55 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_CONFIG_H
|
||||
#define NAMED_CONFIG_H 1
|
||||
|
||||
/*! \file */
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
#include <isccfg/cfg.h>
|
||||
|
||||
#include <dns/types.h>
|
||||
@@ -51,11 +50,11 @@ isc_result_t
|
||||
named_config_getiplist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
in_port_t defport, isc_mem_t *mctx,
|
||||
isc_sockaddr_t **addrsp, isc_dscp_t **dscpsp,
|
||||
uint32_t *countp);
|
||||
isc_uint32_t *countp);
|
||||
|
||||
void
|
||||
named_config_putiplist(isc_mem_t *mctx, isc_sockaddr_t **addrsp,
|
||||
isc_dscp_t **dscpsp, uint32_t count);
|
||||
isc_dscp_t **dscpsp, isc_uint32_t count);
|
||||
|
||||
isc_result_t
|
||||
named_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
@@ -66,10 +65,10 @@ named_config_getport(const cfg_obj_t *config, in_port_t *portp);
|
||||
|
||||
isc_result_t
|
||||
named_config_getkeyalgorithm(const char *str, const dns_name_t **name,
|
||||
uint16_t *digestbits);
|
||||
isc_uint16_t *digestbits);
|
||||
isc_result_t
|
||||
named_config_getkeyalgorithm2(const char *str, const dns_name_t **name,
|
||||
unsigned int *typep, uint16_t *digestbits);
|
||||
unsigned int *typep, isc_uint16_t *digestbits);
|
||||
|
||||
isc_result_t
|
||||
named_config_getdscp(const cfg_obj_t *config, isc_dscp_t *dscpp);
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
* The name server command channel.
|
||||
*/
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <isccc/types.h>
|
||||
|
||||
#include <isccfg/aclconf.h>
|
||||
@@ -102,7 +101,7 @@ named_controls_shutdown(named_controls_t *controls);
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
named_control_docommand(isccc_sexpr_t *message, bool readonly,
|
||||
named_control_docommand(isccc_sexpr_t *message, isc_boolean_t readonly,
|
||||
isc_buffer_t **text);
|
||||
|
||||
#endif /* NAMED_CONTROL_H */
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
|
||||
/*! \file */
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <isc/rwlock.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/net.h>
|
||||
@@ -54,7 +53,7 @@ EXTERN isc_entropy_t * named_g_fallbackentropy INIT(NULL);
|
||||
EXTERN unsigned int named_g_cpus_detected INIT(1);
|
||||
|
||||
#ifdef ENABLE_AFL
|
||||
EXTERN bool named_g_run_done INIT(false);
|
||||
EXTERN isc_boolean_t named_g_run_done INIT(ISC_FALSE);
|
||||
#endif
|
||||
/*
|
||||
* XXXRTH We're going to want multiple timer managers eventually. One
|
||||
@@ -97,7 +96,7 @@ EXTERN const char * named_g_keyfile INIT(NAMED_SYSCONFDIR
|
||||
|
||||
EXTERN dns_tsigkey_t * named_g_sessionkey INIT(NULL);
|
||||
EXTERN dns_name_t named_g_sessionkeyname;
|
||||
EXTERN bool named_g_conffileset INIT(false);
|
||||
EXTERN isc_boolean_t named_g_conffileset INIT(ISC_FALSE);
|
||||
EXTERN cfg_aclconfctx_t * named_g_aclconfctx INIT(NULL);
|
||||
|
||||
/*
|
||||
@@ -111,11 +110,11 @@ EXTERN isc_resourcevalue_t named_g_initopenfiles INIT(0);
|
||||
/*
|
||||
* Misc.
|
||||
*/
|
||||
EXTERN bool named_g_coreok INIT(true);
|
||||
EXTERN isc_boolean_t named_g_coreok INIT(ISC_TRUE);
|
||||
EXTERN const char * named_g_chrootdir INIT(NULL);
|
||||
EXTERN bool named_g_foreground INIT(false);
|
||||
EXTERN bool named_g_logstderr INIT(false);
|
||||
EXTERN bool named_g_nosyslog INIT(false);
|
||||
EXTERN isc_boolean_t named_g_foreground INIT(ISC_FALSE);
|
||||
EXTERN isc_boolean_t named_g_logstderr INIT(ISC_FALSE);
|
||||
EXTERN isc_boolean_t named_g_nosyslog INIT(ISC_FALSE);
|
||||
EXTERN const char * named_g_logfile INIT(NULL);
|
||||
|
||||
EXTERN const char * named_g_defaultsessionkeyfile
|
||||
@@ -124,7 +123,7 @@ EXTERN const char * named_g_defaultsessionkeyfile
|
||||
EXTERN const char * named_g_defaultlockfile INIT(NAMED_LOCALSTATEDIR
|
||||
"/run/named/"
|
||||
"named.lock");
|
||||
EXTERN bool named_g_forcelock INIT(false);
|
||||
EXTERN isc_boolean_t named_g_forcelock INIT(ISC_FALSE);
|
||||
|
||||
#if NAMED_RUN_PID_DIR
|
||||
EXTERN const char * named_g_defaultpidfile INIT(NAMED_LOCALSTATEDIR
|
||||
@@ -153,8 +152,8 @@ EXTERN const char * named_g_engine INIT(NULL);
|
||||
|
||||
EXTERN isc_time_t named_g_boottime;
|
||||
EXTERN isc_time_t named_g_configtime;
|
||||
EXTERN bool named_g_memstatistics INIT(false);
|
||||
EXTERN bool named_g_keepstderr INIT(false);
|
||||
EXTERN isc_boolean_t named_g_memstatistics INIT(ISC_FALSE);
|
||||
EXTERN isc_boolean_t named_g_keepstderr INIT(ISC_FALSE);
|
||||
|
||||
EXTERN unsigned int named_g_tat_interval INIT(24*3600);
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
#define NAMED_LOGMODULE_CONTROL (&named_g_modules[2])
|
||||
|
||||
isc_result_t
|
||||
named_log_init(bool safe);
|
||||
named_log_init(isc_boolean_t safe);
|
||||
/*%
|
||||
* Initialize the logging system and set up an initial default
|
||||
* logging default configuration that will be used until the
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/* $Id: logconf.h,v 1.17 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_LOGCONF_H
|
||||
#define NAMED_LOGCONF_H 1
|
||||
|
||||
@@ -1,248 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
#ifndef NAMED_SECCOMP_H
|
||||
#define NAMED_SECCOMP_H 1
|
||||
|
||||
/*! \file */
|
||||
|
||||
#ifdef HAVE_LIBSECCOMP
|
||||
#include <sys/types.h>
|
||||
#include <sys/resource.h>
|
||||
#include <unistd.h>
|
||||
#include <seccomp.h>
|
||||
#include <isc/platform.h>
|
||||
|
||||
/*%
|
||||
* For each architecture, the scmp_syscalls and
|
||||
* scmp_syscall_names arrays MUST be kept in sync.
|
||||
*/
|
||||
#ifdef __x86_64__
|
||||
int scmp_syscalls[] = {
|
||||
SCMP_SYS(access),
|
||||
SCMP_SYS(open),
|
||||
SCMP_SYS(openat),
|
||||
SCMP_SYS(lseek),
|
||||
SCMP_SYS(clock_gettime),
|
||||
SCMP_SYS(time),
|
||||
SCMP_SYS(read),
|
||||
SCMP_SYS(write),
|
||||
SCMP_SYS(close),
|
||||
SCMP_SYS(brk),
|
||||
SCMP_SYS(poll),
|
||||
SCMP_SYS(select),
|
||||
SCMP_SYS(madvise),
|
||||
SCMP_SYS(mmap),
|
||||
SCMP_SYS(munmap),
|
||||
SCMP_SYS(exit_group),
|
||||
SCMP_SYS(rt_sigprocmask),
|
||||
SCMP_SYS(rt_sigaction),
|
||||
SCMP_SYS(fsync),
|
||||
SCMP_SYS(rt_sigreturn),
|
||||
SCMP_SYS(setsid),
|
||||
SCMP_SYS(chdir),
|
||||
SCMP_SYS(futex),
|
||||
SCMP_SYS(stat),
|
||||
SCMP_SYS(rt_sigsuspend),
|
||||
SCMP_SYS(fstat),
|
||||
SCMP_SYS(epoll_ctl),
|
||||
SCMP_SYS(gettimeofday),
|
||||
SCMP_SYS(getpid),
|
||||
#ifdef HAVE_GETRANDOM
|
||||
SCMP_SYS(getrandom),
|
||||
#endif
|
||||
SCMP_SYS(rename),
|
||||
SCMP_SYS(unlink),
|
||||
SCMP_SYS(socket),
|
||||
SCMP_SYS(sendto),
|
||||
#ifndef ISC_PLATFORM_USETHREADS
|
||||
SCMP_SYS(bind),
|
||||
SCMP_SYS(accept),
|
||||
SCMP_SYS(connect),
|
||||
SCMP_SYS(listen),
|
||||
SCMP_SYS(fcntl),
|
||||
SCMP_SYS(sendmsg),
|
||||
SCMP_SYS(recvmsg),
|
||||
SCMP_SYS(uname),
|
||||
SCMP_SYS(setrlimit),
|
||||
SCMP_SYS(getrlimit),
|
||||
SCMP_SYS(setsockopt),
|
||||
SCMP_SYS(getsockopt),
|
||||
SCMP_SYS(getsockname),
|
||||
SCMP_SYS(lstat),
|
||||
SCMP_SYS(getgid),
|
||||
SCMP_SYS(getegid),
|
||||
SCMP_SYS(getuid),
|
||||
SCMP_SYS(geteuid),
|
||||
SCMP_SYS(setresgid),
|
||||
SCMP_SYS(setresuid),
|
||||
SCMP_SYS(setgid),
|
||||
SCMP_SYS(setuid),
|
||||
SCMP_SYS(prctl),
|
||||
SCMP_SYS(epoll_wait),
|
||||
SCMP_SYS(getdents),
|
||||
SCMP_SYS(utimes),
|
||||
SCMP_SYS(dup),
|
||||
#endif
|
||||
};
|
||||
const char *scmp_syscall_names[] = {
|
||||
"access",
|
||||
"open",
|
||||
"openat",
|
||||
"lseek",
|
||||
"clock_gettime",
|
||||
"time",
|
||||
"read",
|
||||
"write",
|
||||
"close",
|
||||
"brk",
|
||||
"poll",
|
||||
"select",
|
||||
"madvise",
|
||||
"mmap",
|
||||
"munmap",
|
||||
"exit_group",
|
||||
"rt_sigprocmask",
|
||||
"rt_sigaction",
|
||||
"fsync",
|
||||
"rt_sigreturn",
|
||||
"setsid",
|
||||
"chdir",
|
||||
"futex",
|
||||
"stat",
|
||||
"rt_sigsuspend",
|
||||
"fstat",
|
||||
"epoll_ctl",
|
||||
"gettimeofday",
|
||||
"getpid",
|
||||
#ifdef HAVE_GETRANDOM
|
||||
"getrandom",
|
||||
#endif
|
||||
"rename",
|
||||
"unlink",
|
||||
"socket",
|
||||
"sendto",
|
||||
#ifndef ISC_PLATFORM_USETHREADS
|
||||
"bind",
|
||||
"accept",
|
||||
"connect",
|
||||
"listen",
|
||||
"fcntl",
|
||||
"sendmsg",
|
||||
"recvmsg",
|
||||
"uname",
|
||||
"setrlimit",
|
||||
"getrlimit",
|
||||
"setsockopt",
|
||||
"getsockopt",
|
||||
"getsockname",
|
||||
"lstat",
|
||||
"getgid",
|
||||
"getegid",
|
||||
"getuid",
|
||||
"geteuid",
|
||||
"setresgid",
|
||||
"setresuid",
|
||||
"setgid",
|
||||
"setuid",
|
||||
"prctl",
|
||||
"epoll_wait",
|
||||
"getdents",
|
||||
"utimes",
|
||||
"dup",
|
||||
#endif
|
||||
};
|
||||
#endif /* __x86_64__ */
|
||||
#ifdef __i386__
|
||||
int scmp_syscalls[] = {
|
||||
SCMP_SYS(access),
|
||||
SCMP_SYS(open),
|
||||
SCMP_SYS(clock_gettime),
|
||||
SCMP_SYS(time),
|
||||
SCMP_SYS(read),
|
||||
SCMP_SYS(write),
|
||||
SCMP_SYS(close),
|
||||
SCMP_SYS(brk),
|
||||
SCMP_SYS(poll),
|
||||
SCMP_SYS(_newselect),
|
||||
SCMP_SYS(select),
|
||||
SCMP_SYS(madvise),
|
||||
SCMP_SYS(mmap2),
|
||||
SCMP_SYS(mmap),
|
||||
SCMP_SYS(munmap),
|
||||
SCMP_SYS(exit_group),
|
||||
SCMP_SYS(rt_sigprocmask),
|
||||
SCMP_SYS(sigprocmask),
|
||||
SCMP_SYS(rt_sigaction),
|
||||
SCMP_SYS(socketcall),
|
||||
SCMP_SYS(fsync),
|
||||
SCMP_SYS(sigreturn),
|
||||
SCMP_SYS(setsid),
|
||||
SCMP_SYS(chdir),
|
||||
SCMP_SYS(futex),
|
||||
SCMP_SYS(stat64),
|
||||
SCMP_SYS(rt_sigsuspend),
|
||||
SCMP_SYS(fstat64),
|
||||
SCMP_SYS(epoll_ctl),
|
||||
SCMP_SYS(gettimeofday),
|
||||
SCMP_SYS(getpid),
|
||||
#ifdef HAVE_GETRANDOM
|
||||
SCMP_SYS(getrandom),
|
||||
#endif
|
||||
SCMP_SYS(unlink),
|
||||
#ifndef ISC_PLATFORM_USETHREADS
|
||||
SCMP_SYS(fcntl64),
|
||||
#endif
|
||||
};
|
||||
const char *scmp_syscall_names[] = {
|
||||
"access",
|
||||
"open",
|
||||
"clock_gettime",
|
||||
"time",
|
||||
"read",
|
||||
"write",
|
||||
"close",
|
||||
"brk",
|
||||
"poll",
|
||||
"_newselect",
|
||||
"select",
|
||||
"madvise",
|
||||
"mmap2",
|
||||
"mmap",
|
||||
"munmap",
|
||||
"exit_group",
|
||||
"rt_sigprocmask",
|
||||
"sigprocmask",
|
||||
"rt_sigaction",
|
||||
"socketcall",
|
||||
"fsync",
|
||||
"sigreturn",
|
||||
"setsid",
|
||||
"chdir",
|
||||
"futex",
|
||||
"stat64",
|
||||
"rt_sigsuspend",
|
||||
"fstat64",
|
||||
"epoll_ctl",
|
||||
"gettimeofday",
|
||||
"getpid",
|
||||
#ifdef HAVE_GETRANDOM
|
||||
"getrandom",
|
||||
#endif
|
||||
"unlink",
|
||||
#ifndef ISC_PLATFORM_USETHREADS
|
||||
"fcntl64",
|
||||
#endif
|
||||
};
|
||||
#endif /* __i386__ */
|
||||
#endif /* HAVE_LIBSECCOMP */
|
||||
|
||||
#endif /* NAMED_SECCOMP_H */
|
||||
@@ -14,9 +14,6 @@
|
||||
|
||||
/*! \file */
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include <isc/log.h>
|
||||
#include <isc/magic.h>
|
||||
#include <isc/quota.h>
|
||||
@@ -56,9 +53,9 @@ struct named_server {
|
||||
char * secrootsfile; /*%< Secroots file name */
|
||||
char * bindkeysfile; /*%< bind.keys file name */
|
||||
char * recfile; /*%< Recursive file name */
|
||||
bool version_set; /*%< User has set version */
|
||||
isc_boolean_t version_set; /*%< User has set version */
|
||||
char * version; /*%< User-specified version */
|
||||
bool hostname_set; /*%< User has set hostname */
|
||||
isc_boolean_t hostname_set; /*%< User has set hostname */
|
||||
char * hostname; /*%< User-specified hostname */
|
||||
|
||||
/* Server data structures. */
|
||||
@@ -73,13 +70,13 @@ struct named_server {
|
||||
isc_timer_t * pps_timer;
|
||||
isc_timer_t * tat_timer;
|
||||
|
||||
uint32_t interface_interval;
|
||||
uint32_t heartbeat_interval;
|
||||
isc_uint32_t interface_interval;
|
||||
isc_uint32_t heartbeat_interval;
|
||||
|
||||
isc_mutex_t reload_event_lock;
|
||||
isc_event_t * reload_event;
|
||||
|
||||
bool flushonshutdown;
|
||||
isc_boolean_t flushonshutdown;
|
||||
|
||||
named_cachelist_t cachelist; /*%< Possibly shared caches */
|
||||
isc_stats_t * zonestats; /*% Zone management stats */
|
||||
@@ -96,8 +93,8 @@ struct named_server {
|
||||
char *session_keyfile;
|
||||
dns_name_t *session_keyname;
|
||||
unsigned int session_keyalg;
|
||||
uint16_t session_keybits;
|
||||
bool interface_auto;
|
||||
isc_uint16_t session_keybits;
|
||||
isc_boolean_t interface_auto;
|
||||
unsigned char secret[32]; /*%< Server Cookie Secret */
|
||||
ns_cookiealg_t cookiealg;
|
||||
|
||||
@@ -140,7 +137,7 @@ named_server_scan_interfaces(named_server_t *server);
|
||||
*/
|
||||
|
||||
void
|
||||
named_server_flushonshutdown(named_server_t *server, bool flush);
|
||||
named_server_flushonshutdown(named_server_t *server, isc_boolean_t flush);
|
||||
/*%<
|
||||
* Inform the server that the zones should be flushed to disk on shutdown.
|
||||
*/
|
||||
@@ -237,7 +234,7 @@ named_server_flushcache(named_server_t *server, isc_lex_t *lex);
|
||||
*/
|
||||
isc_result_t
|
||||
named_server_flushnode(named_server_t *server, isc_lex_t *lex,
|
||||
bool tree);
|
||||
isc_boolean_t tree);
|
||||
|
||||
/*%
|
||||
* Report the server's status.
|
||||
@@ -262,7 +259,7 @@ named_server_tsigdelete(named_server_t *server, isc_lex_t *lex,
|
||||
* Enable or disable updates for a zone.
|
||||
*/
|
||||
isc_result_t
|
||||
named_server_freeze(named_server_t *server, bool freeze,
|
||||
named_server_freeze(named_server_t *server, isc_boolean_t freeze,
|
||||
isc_lex_t *lex, isc_buffer_t **text);
|
||||
|
||||
/*%
|
||||
@@ -342,7 +339,7 @@ named_server_zonestatus(named_server_t *server, isc_lex_t *lex,
|
||||
*/
|
||||
isc_result_t
|
||||
named_server_nta(named_server_t *server, isc_lex_t *lex,
|
||||
bool readonly, isc_buffer_t **text);
|
||||
isc_boolean_t readonly, isc_buffer_t **text);
|
||||
|
||||
/*%
|
||||
* Generates a test sequence that is only for use in system tests. The
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
|
||||
/*! \file */
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <isc/lang.h>
|
||||
#include <isc/types.h>
|
||||
|
||||
@@ -42,13 +41,13 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
* \li 'zone' to be initialized.
|
||||
*/
|
||||
|
||||
bool
|
||||
isc_boolean_t
|
||||
named_zone_reusable(dns_zone_t *zone, const cfg_obj_t *zconfig);
|
||||
/*%<
|
||||
* If 'zone' can be safely reconfigured according to the configuration
|
||||
* data in 'zconfig', return true. If the configuration data is so
|
||||
* data in 'zconfig', return ISC_TRUE. If the configuration data is so
|
||||
* different from the current zone state that the zone needs to be destroyed
|
||||
* and recreated, return false.
|
||||
* and recreated, return ISC_FALSE.
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ static isc_logmodule_t modules[] = {
|
||||
};
|
||||
|
||||
isc_result_t
|
||||
named_log_init(bool safe) {
|
||||
named_log_init(isc_boolean_t safe) {
|
||||
isc_result_t result;
|
||||
isc_logconfig_t *lcfg = NULL;
|
||||
|
||||
|
||||
+6
-9
@@ -13,9 +13,6 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include <isc/file.h>
|
||||
#include <isc/offset.h>
|
||||
#include <isc/print.h>
|
||||
@@ -139,10 +136,10 @@ channel_fromconf(const cfg_obj_t *channel, isc_logconfig_t *logconfig) {
|
||||
cfg_tuple_get(fileobj, "versions");
|
||||
const cfg_obj_t *suffixobj =
|
||||
cfg_tuple_get(fileobj, "suffix");
|
||||
int32_t versions = ISC_LOG_ROLLNEVER;
|
||||
isc_int32_t versions = ISC_LOG_ROLLNEVER;
|
||||
isc_log_rollsuffix_t suffix = isc_log_rollsuffix_increment;
|
||||
isc_offset_t size = 0;
|
||||
uint64_t maxoffset;
|
||||
isc_uint64_t maxoffset;
|
||||
|
||||
/*
|
||||
* isc_offset_t is a signed integer type, so the maximum
|
||||
@@ -305,8 +302,8 @@ named_logconfig(isc_logconfig_t *logconfig, const cfg_obj_t *logstmt) {
|
||||
const cfg_obj_t *channels = NULL;
|
||||
const cfg_obj_t *categories = NULL;
|
||||
const cfg_listelt_t *element;
|
||||
bool default_set = false;
|
||||
bool unmatched_set = false;
|
||||
isc_boolean_t default_set = ISC_FALSE;
|
||||
isc_boolean_t unmatched_set = ISC_FALSE;
|
||||
const cfg_obj_t *catname;
|
||||
|
||||
if (logconfig != NULL)
|
||||
@@ -331,12 +328,12 @@ named_logconfig(isc_logconfig_t *logconfig, const cfg_obj_t *logstmt) {
|
||||
if (!default_set) {
|
||||
catname = cfg_tuple_get(category, "name");
|
||||
if (strcmp(cfg_obj_asstring(catname), "default") == 0)
|
||||
default_set = true;
|
||||
default_set = ISC_TRUE;
|
||||
}
|
||||
if (!unmatched_set) {
|
||||
catname = cfg_tuple_get(category, "name");
|
||||
if (strcmp(cfg_obj_asstring(catname), "unmatched") == 0)
|
||||
unmatched_set = true;
|
||||
unmatched_set = ISC_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+139
-279
@@ -14,8 +14,6 @@
|
||||
#include <config.h>
|
||||
|
||||
#include <ctype.h>
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
@@ -74,7 +72,6 @@
|
||||
#include <named/os.h>
|
||||
#include <named/server.h>
|
||||
#include <named/main.h>
|
||||
#include <named/seccomp.h>
|
||||
#ifdef HAVE_LIBSCF
|
||||
#include <named/smf_globals.h>
|
||||
#endif
|
||||
@@ -113,7 +110,7 @@ LIBDNS_EXTERNAL_DATA extern unsigned int dns_zone_mkey_hour;
|
||||
LIBDNS_EXTERNAL_DATA extern unsigned int dns_zone_mkey_day;
|
||||
LIBDNS_EXTERNAL_DATA extern unsigned int dns_zone_mkey_month;
|
||||
|
||||
static bool want_stats = false;
|
||||
static isc_boolean_t want_stats = ISC_FALSE;
|
||||
static char program_name[ISC_DIR_NAMEMAX] = "named";
|
||||
static char absolute_conffile[ISC_DIR_PATHMAX];
|
||||
static char saved_command_line[512];
|
||||
@@ -124,22 +121,21 @@ static int maxudp = 0;
|
||||
/*
|
||||
* -T options:
|
||||
*/
|
||||
static bool clienttest = false;
|
||||
static bool dropedns = false;
|
||||
static bool noedns = false;
|
||||
static bool nosoa = false;
|
||||
static bool noaa = false;
|
||||
static isc_boolean_t clienttest = ISC_FALSE;
|
||||
static isc_boolean_t dropedns = ISC_FALSE;
|
||||
static isc_boolean_t noedns = ISC_FALSE;
|
||||
static isc_boolean_t nosoa = ISC_FALSE;
|
||||
static isc_boolean_t noaa = ISC_FALSE;
|
||||
static unsigned int delay = 0;
|
||||
static bool nonearest = false;
|
||||
static bool notcp = false;
|
||||
static bool fixedlocal = false;
|
||||
static bool sigvalinsecs = false;
|
||||
static isc_boolean_t nonearest = ISC_FALSE;
|
||||
static isc_boolean_t notcp = ISC_FALSE;
|
||||
static isc_boolean_t fixedlocal = ISC_FALSE;
|
||||
|
||||
/*
|
||||
* -4 and -6
|
||||
*/
|
||||
static bool disable6 = false;
|
||||
static bool disable4 = false;
|
||||
static isc_boolean_t disable6 = ISC_FALSE;
|
||||
static isc_boolean_t disable4 = ISC_FALSE;
|
||||
|
||||
void
|
||||
named_main_earlywarning(const char *format, ...) {
|
||||
@@ -342,7 +338,7 @@ save_command_line(int argc, char *argv[]) {
|
||||
char *dst;
|
||||
char *eob;
|
||||
const char truncated[] = "...";
|
||||
bool quoted = false;
|
||||
isc_boolean_t quoted = ISC_FALSE;
|
||||
|
||||
dst = saved_command_line;
|
||||
eob = saved_command_line + sizeof(saved_command_line);
|
||||
@@ -362,10 +358,10 @@ save_command_line(int argc, char *argv[]) {
|
||||
*src == '-' || *src == '_' ||
|
||||
*src == '.' || *src == '/') {
|
||||
*dst++ = *src++;
|
||||
quoted = false;
|
||||
quoted = ISC_FALSE;
|
||||
} else {
|
||||
*dst++ = '\\';
|
||||
quoted = true;
|
||||
quoted = ISC_TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -396,25 +392,25 @@ parse_int(char *arg, const char *desc) {
|
||||
static struct flag_def {
|
||||
const char *name;
|
||||
unsigned int value;
|
||||
bool negate;
|
||||
isc_boolean_t negate;
|
||||
} mem_debug_flags[] = {
|
||||
{ "none", 0, false },
|
||||
{ "trace", ISC_MEM_DEBUGTRACE, false },
|
||||
{ "record", ISC_MEM_DEBUGRECORD, false },
|
||||
{ "usage", ISC_MEM_DEBUGUSAGE, false },
|
||||
{ "size", ISC_MEM_DEBUGSIZE, false },
|
||||
{ "mctx", ISC_MEM_DEBUGCTX, false },
|
||||
{ NULL, 0, false }
|
||||
{ "none", 0, ISC_FALSE },
|
||||
{ "trace", ISC_MEM_DEBUGTRACE, ISC_FALSE },
|
||||
{ "record", ISC_MEM_DEBUGRECORD, ISC_FALSE },
|
||||
{ "usage", ISC_MEM_DEBUGUSAGE, ISC_FALSE },
|
||||
{ "size", ISC_MEM_DEBUGSIZE, ISC_FALSE },
|
||||
{ "mctx", ISC_MEM_DEBUGCTX, ISC_FALSE },
|
||||
{ NULL, 0, ISC_FALSE }
|
||||
}, mem_context_flags[] = {
|
||||
{ "external", ISC_MEMFLAG_INTERNAL, true },
|
||||
{ "fill", ISC_MEMFLAG_FILL, false },
|
||||
{ "nofill", ISC_MEMFLAG_FILL, true },
|
||||
{ NULL, 0, false }
|
||||
{ "external", ISC_MEMFLAG_INTERNAL, ISC_TRUE },
|
||||
{ "fill", ISC_MEMFLAG_FILL, ISC_FALSE },
|
||||
{ "nofill", ISC_MEMFLAG_FILL, ISC_TRUE },
|
||||
{ NULL, 0, ISC_FALSE }
|
||||
};
|
||||
|
||||
static void
|
||||
set_flags(const char *arg, struct flag_def *defs, unsigned int *ret) {
|
||||
bool clear = false;
|
||||
isc_boolean_t clear = ISC_FALSE;
|
||||
|
||||
for (;;) {
|
||||
const struct flag_def *def;
|
||||
@@ -427,7 +423,7 @@ set_flags(const char *arg, struct flag_def *defs, unsigned int *ret) {
|
||||
if (arglen == (int)strlen(def->name) &&
|
||||
memcmp(arg, def->name, arglen) == 0) {
|
||||
if (def->value == 0)
|
||||
clear = true;
|
||||
clear = ISC_TRUE;
|
||||
if (def->negate)
|
||||
*ret &= ~(def->value);
|
||||
else
|
||||
@@ -469,91 +465,6 @@ parse_fuzz_arg(void) {
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
parse_T_opt(char *option) {
|
||||
const char *p;
|
||||
/*
|
||||
* force the server to behave (or misbehave) in
|
||||
* specified ways for testing purposes.
|
||||
*
|
||||
* clienttest: make clients single shot with their
|
||||
* own memory context.
|
||||
* delay=xxxx: delay client responses by xxxx ms to
|
||||
* simulate remote servers.
|
||||
* dscp=x: check that dscp values are as
|
||||
* expected and assert otherwise.
|
||||
*/
|
||||
if (!strcmp(option, "clienttest")) {
|
||||
clienttest = true;
|
||||
} else if (!strncmp(option, "delay=", 6)) {
|
||||
delay = atoi(option + 6);
|
||||
} else if (!strcmp(option, "dropedns")) {
|
||||
dropedns = true;
|
||||
} else if (!strncmp(option, "dscp=", 5)) {
|
||||
isc_dscp_check_value = atoi(option + 5);
|
||||
} else if (!strcmp(option, "fixedlocal")) {
|
||||
fixedlocal = true;
|
||||
} else if (!strcmp(option, "keepstderr")) {
|
||||
named_g_keepstderr = true;
|
||||
} else if (!strcmp(option, "noaa")) {
|
||||
noaa = true;
|
||||
} else if (!strcmp(option, "noedns")) {
|
||||
noedns = true;
|
||||
} else if (!strcmp(option, "nonearest")) {
|
||||
nonearest = true;
|
||||
} else if (!strcmp(option, "nosoa")) {
|
||||
nosoa = true;
|
||||
} else if (!strcmp(option, "nosyslog")) {
|
||||
named_g_nosyslog = true;
|
||||
} else if (!strcmp(option, "notcp")) {
|
||||
notcp = true;
|
||||
} else if (!strcmp(option, "maxudp512")) {
|
||||
maxudp = 512;
|
||||
} else if (!strcmp(option, "maxudp1460")) {
|
||||
maxudp = 1460;
|
||||
} else if (!strncmp(option, "maxudp=", 7)) {
|
||||
maxudp = atoi(option + 7);
|
||||
} else if (!strncmp(option, "mkeytimers=", 11)) {
|
||||
p = strtok(option + 11, "/");
|
||||
if (p == NULL) {
|
||||
named_main_earlyfatal("bad mkeytimer");
|
||||
}
|
||||
|
||||
dns_zone_mkey_hour = atoi(p);
|
||||
if (dns_zone_mkey_hour == 0) {
|
||||
named_main_earlyfatal("bad mkeytimer");
|
||||
}
|
||||
|
||||
p = strtok(NULL, "/");
|
||||
if (p == NULL) {
|
||||
dns_zone_mkey_day = (24 * dns_zone_mkey_hour);
|
||||
dns_zone_mkey_month = (30 * dns_zone_mkey_day);
|
||||
return;
|
||||
}
|
||||
|
||||
dns_zone_mkey_day = atoi(p);
|
||||
if (dns_zone_mkey_day < dns_zone_mkey_hour)
|
||||
named_main_earlyfatal("bad mkeytimer");
|
||||
|
||||
p = strtok(NULL, "/");
|
||||
if (p == NULL) {
|
||||
dns_zone_mkey_month = (30 * dns_zone_mkey_day);
|
||||
return;
|
||||
}
|
||||
|
||||
dns_zone_mkey_month = atoi(p);
|
||||
if (dns_zone_mkey_month < dns_zone_mkey_day) {
|
||||
named_main_earlyfatal("bad mkeytimer");
|
||||
}
|
||||
} else if (!strcmp(option, "sigvalinsecs")) {
|
||||
sigvalinsecs = true;
|
||||
} else if (!strncmp(option, "tat=", 4)) {
|
||||
named_g_tat_interval = atoi(option + 4);
|
||||
} else {
|
||||
fprintf(stderr, "unknown -T flag '%s\n", option);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
parse_command_line(int argc, char *argv[]) {
|
||||
int ch;
|
||||
@@ -566,7 +477,7 @@ parse_command_line(int argc, char *argv[]) {
|
||||
* NAMED_MAIN_ARGS is defined in main.h, so that it can be used
|
||||
* both by named and by ntservice hooks.
|
||||
*/
|
||||
isc_commandline_errprint = false;
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
while ((ch = isc_commandline_parse(argc, argv,
|
||||
NAMED_MAIN_ARGS)) != -1)
|
||||
{
|
||||
@@ -579,7 +490,7 @@ parse_command_line(int argc, char *argv[]) {
|
||||
named_main_earlyfatal("IPv4 not supported "
|
||||
"by OS");
|
||||
isc_net_disableipv6();
|
||||
disable6 = true;
|
||||
disable6 = ISC_TRUE;
|
||||
break;
|
||||
case '6':
|
||||
if (disable6)
|
||||
@@ -589,14 +500,14 @@ parse_command_line(int argc, char *argv[]) {
|
||||
named_main_earlyfatal("IPv6 not supported "
|
||||
"by OS");
|
||||
isc_net_disableipv4();
|
||||
disable4 = true;
|
||||
disable4 = ISC_TRUE;
|
||||
break;
|
||||
case 'A':
|
||||
parse_fuzz_arg();
|
||||
break;
|
||||
case 'c':
|
||||
named_g_conffile = isc_commandline_argument;
|
||||
named_g_conffileset = true;
|
||||
named_g_conffileset = ISC_TRUE;
|
||||
break;
|
||||
case 'd':
|
||||
named_g_debuglevel = parse_int(isc_commandline_argument,
|
||||
@@ -609,11 +520,11 @@ parse_command_line(int argc, char *argv[]) {
|
||||
named_g_engine = isc_commandline_argument;
|
||||
break;
|
||||
case 'f':
|
||||
named_g_foreground = true;
|
||||
named_g_foreground = ISC_TRUE;
|
||||
break;
|
||||
case 'g':
|
||||
named_g_foreground = true;
|
||||
named_g_logstderr = true;
|
||||
named_g_foreground = ISC_TRUE;
|
||||
named_g_logstderr = ISC_TRUE;
|
||||
break;
|
||||
case 'L':
|
||||
named_g_logfile = isc_commandline_argument;
|
||||
@@ -642,7 +553,7 @@ parse_command_line(int argc, char *argv[]) {
|
||||
break;
|
||||
case 's':
|
||||
/* XXXRTH temporary syntax */
|
||||
want_stats = true;
|
||||
want_stats = ISC_TRUE;
|
||||
break;
|
||||
case 'S':
|
||||
maxsocks = parse_int(isc_commandline_argument,
|
||||
@@ -653,7 +564,95 @@ parse_command_line(int argc, char *argv[]) {
|
||||
named_g_chrootdir = isc_commandline_argument;
|
||||
break;
|
||||
case 'T': /* NOT DOCUMENTED */
|
||||
parse_T_opt(isc_commandline_argument);
|
||||
/*
|
||||
* force the server to behave (or misbehave) in
|
||||
* specified ways for testing purposes.
|
||||
*
|
||||
* clienttest: make clients single shot with their
|
||||
* own memory context.
|
||||
* delay=xxxx: delay client responses by xxxx ms to
|
||||
* simulate remote servers.
|
||||
* dscp=x: check that dscp values are as
|
||||
* expected and assert otherwise.
|
||||
*/
|
||||
if (!strcmp(isc_commandline_argument, "clienttest"))
|
||||
clienttest = ISC_TRUE;
|
||||
else if (!strcmp(isc_commandline_argument, "nosoa"))
|
||||
nosoa = ISC_TRUE;
|
||||
else if (!strcmp(isc_commandline_argument, "noaa"))
|
||||
noaa = ISC_TRUE;
|
||||
else if (!strcmp(isc_commandline_argument,
|
||||
"maxudp512"))
|
||||
maxudp = 512;
|
||||
else if (!strcmp(isc_commandline_argument,
|
||||
"maxudp1460"))
|
||||
maxudp = 1460;
|
||||
else if (!strcmp(isc_commandline_argument, "dropedns"))
|
||||
dropedns = ISC_TRUE;
|
||||
else if (!strcmp(isc_commandline_argument, "noedns"))
|
||||
noedns = ISC_TRUE;
|
||||
else if (!strncmp(isc_commandline_argument,
|
||||
"maxudp=", 7))
|
||||
maxudp = atoi(isc_commandline_argument + 7);
|
||||
else if (!strncmp(isc_commandline_argument,
|
||||
"delay=", 6))
|
||||
delay = atoi(isc_commandline_argument + 6);
|
||||
else if (!strcmp(isc_commandline_argument, "nosyslog"))
|
||||
named_g_nosyslog = ISC_TRUE;
|
||||
else if (!strcmp(isc_commandline_argument, "nonearest"))
|
||||
nonearest = ISC_TRUE;
|
||||
else if (!strncmp(isc_commandline_argument, "dscp=", 5))
|
||||
isc_dscp_check_value =
|
||||
atoi(isc_commandline_argument + 5);
|
||||
else if (!strncmp(isc_commandline_argument,
|
||||
"mkeytimers=", 11))
|
||||
{
|
||||
p = strtok(isc_commandline_argument + 11, "/");
|
||||
if (p == NULL)
|
||||
named_main_earlyfatal("bad mkeytimer");
|
||||
dns_zone_mkey_hour = atoi(p);
|
||||
if (dns_zone_mkey_hour == 0)
|
||||
named_main_earlyfatal("bad mkeytimer");
|
||||
|
||||
p = strtok(NULL, "/");
|
||||
if (p == NULL) {
|
||||
dns_zone_mkey_day =
|
||||
(24 * dns_zone_mkey_hour);
|
||||
dns_zone_mkey_month =
|
||||
(30 * dns_zone_mkey_day);
|
||||
break;
|
||||
}
|
||||
dns_zone_mkey_day = atoi(p);
|
||||
if (dns_zone_mkey_day < dns_zone_mkey_hour)
|
||||
named_main_earlyfatal("bad mkeytimer");
|
||||
|
||||
p = strtok(NULL, "/");
|
||||
if (p == NULL) {
|
||||
dns_zone_mkey_month =
|
||||
(30 * dns_zone_mkey_day);
|
||||
break;
|
||||
}
|
||||
dns_zone_mkey_month = atoi(p);
|
||||
if (dns_zone_mkey_month < dns_zone_mkey_day)
|
||||
named_main_earlyfatal("bad mkeytimer");
|
||||
} else if (!strcmp(isc_commandline_argument, "notcp"))
|
||||
notcp = ISC_TRUE;
|
||||
else if (!strncmp(isc_commandline_argument, "tat=", 4))
|
||||
{
|
||||
named_g_tat_interval =
|
||||
atoi(isc_commandline_argument + 4);
|
||||
} else if (!strcmp(isc_commandline_argument,
|
||||
"keepstderr"))
|
||||
{
|
||||
named_g_keepstderr = ISC_TRUE;
|
||||
} else if (!strcmp(isc_commandline_argument,
|
||||
"fixedlocal"))
|
||||
{
|
||||
fixedlocal = ISC_TRUE;
|
||||
} else {
|
||||
fprintf(stderr, "unknown -T flag '%s\n",
|
||||
isc_commandline_argument);
|
||||
}
|
||||
break;
|
||||
case 'U':
|
||||
named_g_udpdisp = parse_int(isc_commandline_argument,
|
||||
@@ -735,7 +734,7 @@ parse_command_line(int argc, char *argv[]) {
|
||||
/* Obsolete. No longer in use. Ignore. */
|
||||
break;
|
||||
case 'X':
|
||||
named_g_forcelock = true;
|
||||
named_g_forcelock = ISC_TRUE;
|
||||
if (strcasecmp(isc_commandline_argument, "none") != 0)
|
||||
named_g_defaultlockfile =
|
||||
isc_commandline_argument;
|
||||
@@ -911,60 +910,6 @@ dump_symboltable(void) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBSECCOMP
|
||||
static void
|
||||
setup_seccomp() {
|
||||
scmp_filter_ctx ctx;
|
||||
unsigned int i;
|
||||
int ret;
|
||||
|
||||
/* Make sure the lists are in sync */
|
||||
INSIST((sizeof(scmp_syscalls) / sizeof(int)) ==
|
||||
(sizeof(scmp_syscall_names) / sizeof(const char *)));
|
||||
|
||||
ctx = seccomp_init(SCMP_ACT_KILL);
|
||||
if (ctx == NULL) {
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_WARNING,
|
||||
"libseccomp activation failed");
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0 ; i < sizeof(scmp_syscalls)/sizeof(*(scmp_syscalls)); i++) {
|
||||
ret = seccomp_rule_add(ctx, SCMP_ACT_ALLOW,
|
||||
scmp_syscalls[i], 0);
|
||||
if (ret < 0)
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_WARNING,
|
||||
"libseccomp rule failed: %s",
|
||||
scmp_syscall_names[i]);
|
||||
|
||||
else
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_DEBUG(9),
|
||||
"added libseccomp rule: %s",
|
||||
scmp_syscall_names[i]);
|
||||
}
|
||||
|
||||
ret = seccomp_load(ctx);
|
||||
if (ret < 0) {
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_WARNING,
|
||||
"libseccomp unable to load filter");
|
||||
} else {
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"libseccomp sandboxing active");
|
||||
}
|
||||
|
||||
/*
|
||||
* Release filter in ctx. Filters already loaded are not
|
||||
* affected.
|
||||
*/
|
||||
seccomp_release(ctx);
|
||||
}
|
||||
#endif /* HAVE_LIBSECCOMP */
|
||||
|
||||
static void
|
||||
setup(void) {
|
||||
isc_result_t result;
|
||||
@@ -1043,7 +988,7 @@ setup(void) {
|
||||
*/
|
||||
named_os_minprivs();
|
||||
|
||||
result = named_log_init((named_g_username != NULL));
|
||||
result = named_log_init(ISC_TF(named_g_username != NULL));
|
||||
if (result != ISC_R_SUCCESS)
|
||||
named_main_earlyfatal("named_log_init() failed: %s",
|
||||
isc_result_totext(result));
|
||||
@@ -1086,85 +1031,6 @@ setup(void) {
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"running as: %s%s",
|
||||
program_name, saved_command_line);
|
||||
#ifdef __clang__
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"compiled by CLANG %s", __VERSION__);
|
||||
#else
|
||||
#if defined(__ICC) || defined(__INTEL_COMPILER)
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"compiled by ICC %s", __VERSION__);
|
||||
#else
|
||||
#ifdef __GNUC__
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"compiled by GCC %s", __VERSION__);
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#ifdef _MSC_VER
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"compiled by MSVC %d", _MSC_VER);
|
||||
#endif
|
||||
#ifdef __SUNPRO_C
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"compiled by Solaris Studio %x", __SUNPRO_C);
|
||||
#endif
|
||||
#ifdef OPENSSL
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"compiled with OpenSSL version: %s",
|
||||
OPENSSL_VERSION_TEXT);
|
||||
#if !defined(LIBRESSL_VERSION_NUMBER) && \
|
||||
OPENSSL_VERSION_NUMBER >= 0x10100000L /* 1.1.0 or higher */
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"linked to OpenSSL version: %s",
|
||||
OpenSSL_version(OPENSSL_VERSION));
|
||||
#else
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"linked to OpenSSL version: %s",
|
||||
SSLeay_version(SSLEAY_VERSION));
|
||||
#endif /* OPENSSL_VERSION_NUMBER >= 0x10100000L */
|
||||
#endif
|
||||
#ifdef HAVE_LIBXML2
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"compiled with libxml2 version: %s",
|
||||
LIBXML_DOTTED_VERSION);
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"linked to libxml2 version: %s", xmlParserVersion);
|
||||
#endif
|
||||
#if defined(HAVE_JSON) && defined(JSON_C_VERSION)
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"compiled with libjson-c version: %s", JSON_C_VERSION);
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"linked to libjson-c version: %s", json_c_version());
|
||||
#endif
|
||||
#if defined(HAVE_ZLIB) && defined(ZLIB_VERSION)
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"compiled with zlib version: %s", ZLIB_VERSION);
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"linked to zlib version: %s", zlibVersion());
|
||||
#endif
|
||||
#ifdef ISC_PLATFORM_USETHREADS
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"threads support is enabled");
|
||||
#else
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"threads support is disabled");
|
||||
#endif
|
||||
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
@@ -1211,8 +1077,8 @@ setup(void) {
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"adjusted limit on open files from "
|
||||
"%" PRIu64 " to "
|
||||
"%" PRIu64,
|
||||
"%" ISC_PRINT_QUADFORMAT "u to "
|
||||
"%" ISC_PRINT_QUADFORMAT "u",
|
||||
old_openfiles, named_g_initopenfiles);
|
||||
}
|
||||
|
||||
@@ -1279,33 +1145,27 @@ setup(void) {
|
||||
* Modify server context according to command line options
|
||||
*/
|
||||
if (clienttest)
|
||||
ns_server_setoption(sctx, NS_SERVER_CLIENTTEST, true);
|
||||
ns_server_setoption(sctx, NS_SERVER_CLIENTTEST, ISC_TRUE);
|
||||
if (dropedns)
|
||||
ns_server_setoption(sctx, NS_SERVER_DROPEDNS, true);
|
||||
ns_server_setoption(sctx, NS_SERVER_DROPEDNS, ISC_TRUE);
|
||||
if (noedns)
|
||||
ns_server_setoption(sctx, NS_SERVER_NOEDNS, true);
|
||||
ns_server_setoption(sctx, NS_SERVER_NOEDNS, ISC_TRUE);
|
||||
if (nosoa)
|
||||
ns_server_setoption(sctx, NS_SERVER_NOSOA, true);
|
||||
ns_server_setoption(sctx, NS_SERVER_NOSOA, ISC_TRUE);
|
||||
if (noaa)
|
||||
ns_server_setoption(sctx, NS_SERVER_NOAA, true);
|
||||
ns_server_setoption(sctx, NS_SERVER_NOAA, ISC_TRUE);
|
||||
if (nonearest)
|
||||
ns_server_setoption(sctx, NS_SERVER_NONEAREST, true);
|
||||
ns_server_setoption(sctx, NS_SERVER_NONEAREST, ISC_TRUE);
|
||||
if (notcp)
|
||||
ns_server_setoption(sctx, NS_SERVER_NOTCP, true);
|
||||
ns_server_setoption(sctx, NS_SERVER_NOTCP, ISC_TRUE);
|
||||
if (fixedlocal)
|
||||
ns_server_setoption(sctx, NS_SERVER_FIXEDLOCAL, true);
|
||||
ns_server_setoption(sctx, NS_SERVER_FIXEDLOCAL, ISC_TRUE);
|
||||
if (disable4)
|
||||
ns_server_setoption(sctx, NS_SERVER_DISABLE4, true);
|
||||
ns_server_setoption(sctx, NS_SERVER_DISABLE4, ISC_TRUE);
|
||||
if (disable6)
|
||||
ns_server_setoption(sctx, NS_SERVER_DISABLE6, true);
|
||||
if (sigvalinsecs)
|
||||
ns_server_setoption(sctx, NS_SERVER_SIGVALINSECS, true);
|
||||
ns_server_setoption(sctx, NS_SERVER_DISABLE6, ISC_TRUE);
|
||||
|
||||
named_g_server->sctx->delay = delay;
|
||||
|
||||
#ifdef HAVE_LIBSECCOMP
|
||||
setup_seccomp();
|
||||
#endif /* HAVE_LIBSECCOMP */
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2000, 2001, 2003-2009, 2011, 2013-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000, 2001, 2003-2009, 2011, 2013-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@@ -378,5 +378,5 @@ BIND 9 Administrator Reference Manual\&.
|
||||
\fBInternet Systems Consortium, Inc\&.\fR
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
Copyright \(co 2000, 2001, 2003-2009, 2011, 2013-2018 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2000, 2001, 2003-2009, 2011, 2013-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
|
||||
+24
-23
@@ -10,12 +10,12 @@
|
||||
.\" Title: named.conf
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
|
||||
.\" Date: 2018-06-21
|
||||
.\" Date: 2018-01-22
|
||||
.\" Manual: BIND9
|
||||
.\" Source: ISC
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NAMED\&.CONF" "5" "2018\-06\-21" "ISC" "BIND9"
|
||||
.TH "NAMED\&.CONF" "5" "2018\-01\-22" "ISC" "BIND9"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
@@ -199,7 +199,6 @@ options {
|
||||
] [ dscp \fIinteger\fR ];
|
||||
alt\-transfer\-source\-v6 ( \fIipv6_address\fR | * ) [ port ( \fIinteger\fR |
|
||||
* ) ] [ dscp \fIinteger\fR ];
|
||||
answer\-cookie \fIboolean\fR;
|
||||
attach\-cache \fIstring\fR;
|
||||
auth\-nxdomain \fIboolean\fR; // default changed
|
||||
auto\-dnssec ( allow | maintain | off );
|
||||
@@ -218,8 +217,9 @@ options {
|
||||
check\-integrity \fIboolean\fR;
|
||||
check\-mx ( fail | warn | ignore );
|
||||
check\-mx\-cname ( fail | warn | ignore );
|
||||
check\-names ( master | slave | response
|
||||
) ( fail | warn | ignore );
|
||||
check\-names ( primary | master |
|
||||
secondary | slave | response ) (
|
||||
fail | warn | ignore );
|
||||
check\-sibling \fIboolean\fR;
|
||||
check\-spf ( warn | ignore );
|
||||
check\-srv\-cname ( fail | warn | ignore );
|
||||
@@ -307,7 +307,8 @@ options {
|
||||
hostname ( \fIquoted_string\fR | none );
|
||||
inline\-signing \fIboolean\fR;
|
||||
interface\-interval \fIinteger\fR;
|
||||
ixfr\-from\-differences ( master | slave | \fIboolean\fR );
|
||||
ixfr\-from\-differences ( primary | master | secondary | slave |
|
||||
\fIboolean\fR );
|
||||
keep\-response\-order { \fIaddress_match_element\fR; \&.\&.\&. };
|
||||
key\-directory \fIquoted_string\fR;
|
||||
lame\-ttl \fIttlval\fR;
|
||||
@@ -419,7 +420,6 @@ options {
|
||||
dnsrps\-enable \fIboolean\fR ] [ dnsrps\-options { \fIunspecified\-text\fR
|
||||
} ];
|
||||
root\-delegation\-only [ exclude { \fIquoted_string\fR; \&.\&.\&. } ];
|
||||
root\-key\-sentinel \fIboolean\fR;
|
||||
rrset\-order { [ class \fIstring\fR ] [ type \fIstring\fR ] [ name
|
||||
\fIquoted_string\fR ] \fIstring\fR \fIstring\fR; \&.\&.\&. };
|
||||
secroots\-file \fIquoted_string\fR;
|
||||
@@ -585,8 +585,9 @@ view \fIstring\fR [ \fIclass\fR ] {
|
||||
check\-integrity \fIboolean\fR;
|
||||
check\-mx ( fail | warn | ignore );
|
||||
check\-mx\-cname ( fail | warn | ignore );
|
||||
check\-names ( master | slave | response
|
||||
) ( fail | warn | ignore );
|
||||
check\-names ( primary | master |
|
||||
secondary | slave | response ) (
|
||||
fail | warn | ignore );
|
||||
check\-sibling \fIboolean\fR;
|
||||
check\-spf ( warn | ignore );
|
||||
check\-srv\-cname ( fail | warn | ignore );
|
||||
@@ -652,7 +653,8 @@ view \fIstring\fR [ \fIclass\fR ] {
|
||||
| \fIipv6_address\fR ) [ port \fIinteger\fR ] [ dscp \fIinteger\fR ]; \&.\&.\&. };
|
||||
glue\-cache \fIboolean\fR;
|
||||
inline\-signing \fIboolean\fR;
|
||||
ixfr\-from\-differences ( master | slave | \fIboolean\fR );
|
||||
ixfr\-from\-differences ( primary | master | secondary | slave |
|
||||
\fIboolean\fR );
|
||||
key \fIstring\fR {
|
||||
algorithm \fIstring\fR;
|
||||
secret \fIstring\fR;
|
||||
@@ -753,7 +755,6 @@ view \fIstring\fR [ \fIclass\fR ] {
|
||||
dnsrps\-enable \fIboolean\fR ] [ dnsrps\-options { \fIunspecified\-text\fR
|
||||
} ];
|
||||
root\-delegation\-only [ exclude { \fIquoted_string\fR; \&.\&.\&. } ];
|
||||
root\-key\-sentinel \fIboolean\fR;
|
||||
rrset\-order { [ class \fIstring\fR ] [ type \fIstring\fR ] [ name
|
||||
\fIquoted_string\fR ] \fIstring\fR \fIstring\fR; \&.\&.\&. };
|
||||
send\-cookie \fIboolean\fR;
|
||||
@@ -903,14 +904,15 @@ view \fIstring\fR [ \fIclass\fR ] {
|
||||
transfer\-source\-v6 ( \fIipv6_address\fR | * ) [ port (
|
||||
\fIinteger\fR | * ) ] [ dscp \fIinteger\fR ];
|
||||
try\-tcp\-refresh \fIboolean\fR;
|
||||
type ( delegation\-only | forward | hint | master | redirect
|
||||
| slave | static\-stub | stub );
|
||||
type ( primary | master | secondary | slave |
|
||||
delegation\-only | forward | hint | redirect |
|
||||
static\-stub | stub );
|
||||
update\-check\-ksk \fIboolean\fR;
|
||||
update\-policy ( local | { ( deny | grant ) \fIstring\fR (
|
||||
6to4\-self | external | krb5\-self | krb5\-selfsub |
|
||||
krb5\-subdomain | ms\-self | ms\-selfsub | ms\-subdomain |
|
||||
name | self | selfsub | selfwild | subdomain | tcp\-self
|
||||
| wildcard | zonesub ) [ \fIstring\fR ] \fIrrtypelist\fR; \&.\&.\&. };
|
||||
6to4\-self | external | krb5\-self | krb5\-subdomain |
|
||||
ms\-self | ms\-subdomain | name | self | selfsub |
|
||||
selfwild | subdomain | tcp\-self | wildcard | zonesub )
|
||||
[ \fIstring\fR ] \fIrrtypelist\fR; \&.\&.\&. };
|
||||
use\-alt\-transfer\-source \fIboolean\fR;
|
||||
zero\-no\-soa\-ttl \fIboolean\fR;
|
||||
zone\-statistics ( full | terse | none | \fIboolean\fR );
|
||||
@@ -1008,14 +1010,13 @@ zone \fIstring\fR [ \fIclass\fR ] {
|
||||
transfer\-source\-v6 ( \fIipv6_address\fR | * ) [ port ( \fIinteger\fR | * )
|
||||
] [ dscp \fIinteger\fR ];
|
||||
try\-tcp\-refresh \fIboolean\fR;
|
||||
type ( delegation\-only | forward | hint | master | redirect | slave
|
||||
| static\-stub | stub );
|
||||
type ( primary | master | secondary | slave | delegation\-only |
|
||||
forward | hint | redirect | static\-stub | stub );
|
||||
update\-check\-ksk \fIboolean\fR;
|
||||
update\-policy ( local | { ( deny | grant ) \fIstring\fR ( 6to4\-self |
|
||||
external | krb5\-self | krb5\-selfsub | krb5\-subdomain | ms\-self
|
||||
| ms\-selfsub | ms\-subdomain | name | self | selfsub | selfwild
|
||||
| subdomain | tcp\-self | wildcard | zonesub ) [ \fIstring\fR ]
|
||||
\fIrrtypelist\fR; \&.\&.\&. };
|
||||
external | krb5\-self | krb5\-subdomain | ms\-self | ms\-subdomain
|
||||
| name | self | selfsub | selfwild | subdomain | tcp\-self |
|
||||
wildcard | zonesub ) [ \fIstring\fR ] \fIrrtypelist\fR; \&.\&.\&. };
|
||||
use\-alt\-transfer\-source \fIboolean\fR;
|
||||
zero\-no\-soa\-ttl \fIboolean\fR;
|
||||
zone\-statistics ( full | terse | none | \fIboolean\fR );
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user