Compare commits
552
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1c92526e48 | ||
|
|
29e7501bef | ||
|
|
19c4fe93c4 | ||
|
|
c1d111cd2e | ||
|
|
541872bf3b | ||
|
|
faa52a704f | ||
|
|
07050fb49a | ||
|
|
e1f0aed034 | ||
|
|
15440d8027 | ||
|
|
0c23a3b0c0 | ||
|
|
065ff16e40 | ||
|
|
503e9b70cf | ||
|
|
921bc89f59 | ||
|
|
cf83016682 | ||
|
|
f2368ce181 | ||
|
|
97a680e5ce | ||
|
|
2ff57d8a39 | ||
|
|
9ff13b23f7 | ||
|
|
8283cbabdc | ||
|
|
139bc2c6ab | ||
|
|
faf2c7711a | ||
|
|
c3b6eaf3d2 | ||
|
|
55a12a4136 | ||
|
|
37df3ca8b6 | ||
|
|
08460c8cb2 | ||
|
|
b4ca282589 | ||
|
|
68f1e8e940 | ||
|
|
dfe5d3330c | ||
|
|
ea9a5e3da4 | ||
|
|
507230aa88 | ||
|
|
c6efbe5d26 | ||
|
|
e11cfafff2 | ||
|
|
276858d88f | ||
|
|
561b780ba0 | ||
|
|
1454665d70 | ||
|
|
1cf1254051 | ||
|
|
87b042a48d | ||
|
|
ff747365db | ||
|
|
241594299b | ||
|
|
58cfb2a18a | ||
|
|
8a6c37faa2 | ||
|
|
d6c50674bb | ||
|
|
83dbe04bf3 | ||
|
|
fbb08b30b8 | ||
|
|
8efd394c80 | ||
|
|
cc8c79bb69 | ||
|
|
b338e6dd21 | ||
|
|
5979471dc7 | ||
|
|
7ef2467e6a | ||
|
|
6cd89d5e9f | ||
|
|
9ecb0a9168 | ||
|
|
3219a873a9 | ||
|
|
bd3163578b | ||
|
|
eb603cb021 | ||
|
|
7e2026a50b | ||
|
|
632a0ae10b | ||
|
|
826c3ddc5b | ||
|
|
fbab100426 | ||
|
|
343333f5c4 | ||
|
|
eb7ca65b78 | ||
|
|
89b186b604 | ||
|
|
c3846425f3 | ||
|
|
68b49d87b2 | ||
|
|
99d919c90f | ||
|
|
6aae193ded | ||
|
|
25805beb29 | ||
|
|
c852810fbc | ||
|
|
cbdb69f4cc | ||
|
|
88f346a952 | ||
|
|
313d2b836f | ||
|
|
d9c4068cc3 | ||
|
|
aeda3f389e | ||
|
|
530f3dcf07 | ||
|
|
189f3ae097 | ||
|
|
13888c93a4 | ||
|
|
7fc78e7cad | ||
|
|
af69bf5491 | ||
|
|
b98ac2593c | ||
|
|
7fd3dc63de | ||
|
|
4b636bf74e | ||
|
|
0484c3a0ba | ||
|
|
f9ceddd8ca | ||
|
|
a4b97b69f3 | ||
|
|
afde30fe9b | ||
|
|
3171f0dab9 | ||
|
|
5888c2866d | ||
|
|
7b2eaca5fe | ||
|
|
5b699aaa42 | ||
|
|
7bb3d000a5 | ||
|
|
adbe2caf28 | ||
|
|
2c69734bcf | ||
|
|
34dc674fed | ||
|
|
1d49b01cc6 | ||
|
|
2cb9e8a020 | ||
|
|
e1bb8de6f0 | ||
|
|
4a83ccf071 | ||
|
|
1ab27e3d53 | ||
|
|
6b1c0a8e6f | ||
|
|
b324576858 | ||
|
|
ed35755a24 | ||
|
|
af5f10fcf6 | ||
|
|
fa3d8f7d70 | ||
|
|
607c2d7441 | ||
|
|
d5e69f0598 | ||
|
|
57bb2f56f4 | ||
|
|
01c174e02e | ||
|
|
b7564cc898 | ||
|
|
76d49c05be | ||
|
|
2791bf9285 | ||
|
|
b6e2d7bca9 | ||
|
|
ffb9f721f0 | ||
|
|
5c422ce803 | ||
|
|
15c3bf9e82 | ||
|
|
ba85bb1a85 | ||
|
|
2b3b626cc1 | ||
|
|
23766ff690 | ||
|
|
86246c7431 | ||
|
|
2f36a62d16 | ||
|
|
1a2a19c693 | ||
|
|
f2af336dc4 | ||
|
|
0246ea14c4 | ||
|
|
98ab65dbe9 | ||
|
|
4754f53979 | ||
|
|
70a1ba20ec | ||
|
|
36e431d632 | ||
|
|
b5c9a8caad | ||
|
|
9fd3c8a939 | ||
|
|
866991c2cb | ||
|
|
cb6b555f07 | ||
|
|
032e6963fe | ||
|
|
4b47958163 | ||
|
|
b6368ffdad | ||
|
|
8ae6280165 | ||
|
|
9d29f73b79 | ||
|
|
60862c5769 | ||
|
|
c4cee27f9b | ||
|
|
0f62a5ce04 | ||
|
|
31bde118db | ||
|
|
a562043fac | ||
|
|
3f443468e0 | ||
|
|
423d42fd7e | ||
|
|
e839972ee2 | ||
|
|
3f35ab8567 | ||
|
|
e8194526f4 | ||
|
|
c609a67ac7 | ||
|
|
aaa66d2560 | ||
|
|
09f58ab63f | ||
|
|
6f7c9623c5 | ||
|
|
0e86fa16e8 | ||
|
|
38a127c35b | ||
|
|
cdbac34cba | ||
|
|
60f22ff410 | ||
|
|
4914f28858 | ||
|
|
a9e1517a61 | ||
|
|
dc531dc340 | ||
|
|
ba91243542 | ||
|
|
b3cd868c4b | ||
|
|
cb48d410d8 | ||
|
|
e8f66bcfa3 | ||
|
|
c642f9970a | ||
|
|
9bf25f7f1e | ||
|
|
7a2b0ac92a | ||
|
|
754dad21f5 | ||
|
|
f14445f13d | ||
|
|
a5bdc18ce6 | ||
|
|
5ccbb274d2 | ||
|
|
0fffb82f81 | ||
|
|
ec1d9b80f5 | ||
|
|
0e74384991 | ||
|
|
e6fc3d8f17 | ||
|
|
d15b08a57c | ||
|
|
c2e2163165 | ||
|
|
4ec0f300a4 | ||
|
|
b8195a0251 | ||
|
|
31b8b37e8f | ||
|
|
f207e0b52e | ||
|
|
09fd5c442b | ||
|
|
3994b1f9c2 | ||
|
|
6aadf7c8ab | ||
|
|
c9eb1518d6 | ||
|
|
2f0897caff | ||
|
|
ff49dd3c21 | ||
|
|
871bc20112 | ||
|
|
0396fbebfe | ||
|
|
739b74759d | ||
|
|
87b07bf08a | ||
|
|
dc7b556c31 | ||
|
|
f1308ef186 | ||
|
|
ae77468e63 | ||
|
|
a216135a15 | ||
|
|
7b08db35af | ||
|
|
e97199b0d0 | ||
|
|
848e42227e | ||
|
|
524c1317f7 | ||
|
|
d5709c5f52 | ||
|
|
f723a1247f | ||
|
|
b7ac47c47d | ||
|
|
1c8b908c21 | ||
|
|
ae8026171b | ||
|
|
6c31ba5c53 | ||
|
|
51c6f4b682 | ||
|
|
8be7d6ac3c | ||
|
|
395f6a1474 | ||
|
|
33229e7fc5 | ||
|
|
a6507af9e3 | ||
|
|
1c0fee613f | ||
|
|
d4cc0b98de | ||
|
|
3e44011370 | ||
|
|
4fcdad292d | ||
|
|
0fc1b1bffa | ||
|
|
c93acb9949 | ||
|
|
b026663c62 | ||
|
|
eb6d02fbe5 | ||
|
|
b4dca44ad2 | ||
|
|
b5cfc5d032 | ||
|
|
be8713a1e8 | ||
|
|
cea9ff573c | ||
|
|
72b49ce869 | ||
|
|
2b61b83199 | ||
|
|
5752645e60 | ||
|
|
0494f86a7b | ||
|
|
e47ef88810 | ||
|
|
6a3afe2778 | ||
|
|
e116beb68e | ||
|
|
9407d9e266 | ||
|
|
9a5c21b475 | ||
|
|
ac1c3aaa27 | ||
|
|
26699ac57e | ||
|
|
b04c7bbd60 | ||
|
|
6d05ec7dc1 | ||
|
|
261b7560b0 | ||
|
|
21966423cd | ||
|
|
37e834defc | ||
|
|
feb2a41b7c | ||
|
|
56003e9f9f | ||
|
|
f6bd695a98 | ||
|
|
f2d6b1b859 | ||
|
|
e673237509 | ||
|
|
e7c99e42f3 | ||
|
|
eb74f2ee68 | ||
|
|
7effcffba2 | ||
|
|
ae2bc454e5 | ||
|
|
a1d8306e3a | ||
|
|
090a564de5 | ||
|
|
be333e93ec | ||
|
|
0eda75fec0 | ||
|
|
5cf8fc4bba | ||
|
|
bf9c60078a | ||
|
|
874a4baf62 | ||
|
|
38cf56ac38 | ||
|
|
29f699d669 | ||
|
|
2f6ba87ab9 | ||
|
|
cc0abf62a1 | ||
|
|
83dc5a704a | ||
|
|
07f29a083b | ||
|
|
a6f43574a0 | ||
|
|
d98de244c3 | ||
|
|
f924c89f97 | ||
|
|
77a0fadfce | ||
|
|
4aa6a118de | ||
|
|
d1f8e116db | ||
|
|
54c4db569b | ||
|
|
fbeefd4990 | ||
|
|
5fb75a3d75 | ||
|
|
156d86e673 | ||
|
|
d6f14f06de | ||
|
|
81b133d963 | ||
|
|
e860375d4f | ||
|
|
ad9bf4c662 | ||
|
|
5824023082 | ||
|
|
2c3b827e5d | ||
|
|
ac430136fb | ||
|
|
68e017792f | ||
|
|
8ffd9a9b71 | ||
|
|
8e4cc152f7 | ||
|
|
2ed5eb3b9e | ||
|
|
341fd22bb0 | ||
|
|
161b5dccae | ||
|
|
2750799132 | ||
|
|
7e25330b3d | ||
|
|
5a0f618d22 | ||
|
|
7716bdd400 | ||
|
|
43c468926b | ||
|
|
5d8f9bf935 | ||
|
|
fa048a9b2c | ||
|
|
c83d9b9b50 | ||
|
|
51bcdb78af | ||
|
|
7384a9f23a | ||
|
|
78bb5761a0 | ||
|
|
4a5ecad038 | ||
|
|
19ae4438ab | ||
|
|
927b65aa7f | ||
|
|
c7b1e7fd08 | ||
|
|
2f02552a93 | ||
|
|
4d46f0f95d | ||
|
|
51b0d5d55e | ||
|
|
f1d3055d7b | ||
|
|
092edb5b44 | ||
|
|
5d65392d18 | ||
|
|
68f473a25e | ||
|
|
d00ef56dfa | ||
|
|
47f18c7d50 | ||
|
|
4014bc42dd | ||
|
|
1333d4a71a | ||
|
|
0bea5c2baf | ||
|
|
53d87175df | ||
|
|
c798db0fcd | ||
|
|
f8635fd719 | ||
|
|
22e5231f99 | ||
|
|
376bea8b40 | ||
|
|
510bb376e1 | ||
|
|
3949450fbd | ||
|
|
17212cf996 | ||
|
|
a985badd34 | ||
|
|
881a868dc0 | ||
|
|
3561018919 | ||
|
|
1aa3ba2bb1 | ||
|
|
633eeabb2e | ||
|
|
ac21bbb13a | ||
|
|
ca6dda7328 | ||
|
|
f8d9bd6178 | ||
|
|
f6c08a28e8 | ||
|
|
0dc714c40d | ||
|
|
8360df5a4c | ||
|
|
02041b94d9 | ||
|
|
215e3fde22 | ||
|
|
19ed6f8f5a | ||
|
|
7157596743 | ||
|
|
0868e5700f | ||
|
|
3023f14c40 | ||
|
|
142cb0ab8f | ||
|
|
25248eb097 | ||
|
|
73b2648480 | ||
|
|
d932ec871c | ||
|
|
0716902f6f | ||
|
|
8a167a4b30 | ||
|
|
47066d3d01 | ||
|
|
75c2996df8 | ||
|
|
5c00162f54 | ||
|
|
eb9849daff | ||
|
|
05bed0ecd6 | ||
|
|
05eb9fd338 | ||
|
|
1b75d421b7 | ||
|
|
feaf381adb | ||
|
|
38f96de923 | ||
|
|
5e37190877 | ||
|
|
615ebc39e3 | ||
|
|
e7e4603f9b | ||
|
|
c81c9660f5 | ||
|
|
c0c80df254 | ||
|
|
d68499e1f7 | ||
|
|
8e5abc6cdf | ||
|
|
050fca2139 | ||
|
|
c5b4948db3 | ||
|
|
455bb23236 | ||
|
|
bbaff4d80f | ||
|
|
e6106b9940 | ||
|
|
7ee4f849b8 | ||
|
|
d9d96761cd | ||
|
|
59156c60eb | ||
|
|
d3e2f848ec | ||
|
|
6a9031b0a6 | ||
|
|
e582d085de | ||
|
|
7f508ec229 | ||
|
|
d67b07c115 | ||
|
|
7cba3cc474 | ||
|
|
c74ee5bb17 | ||
|
|
d967e107f6 | ||
|
|
aa3e33575d | ||
|
|
7d44cc2422 | ||
|
|
d60e553a64 | ||
|
|
d03b9ec544 | ||
|
|
77f71d7d4a | ||
|
|
5928d31efc | ||
|
|
ae80e61684 | ||
|
|
1656152d76 | ||
|
|
cacd21c075 | ||
|
|
b938f50ded | ||
|
|
3c18b7d3fd | ||
|
|
e2a2f08ed5 | ||
|
|
dc410ce58f | ||
|
|
416e09d715 | ||
|
|
103b60e0bc | ||
|
|
d077f5c180 | ||
|
|
cddb699690 | ||
|
|
700614a0eb | ||
|
|
cc8a647887 | ||
|
|
c4c3b98a27 | ||
|
|
79ce86090a | ||
|
|
c268c47c76 | ||
|
|
dedb104382 | ||
|
|
fecbc7923a | ||
|
|
6034664e36 | ||
|
|
ddaa853ed6 | ||
|
|
91aa405778 | ||
|
|
0f24c55d38 | ||
|
|
9d5df99a9d | ||
|
|
b5709e5531 | ||
|
|
d1d15c03e2 | ||
|
|
69b9b9ec77 | ||
|
|
bef8ac5bae | ||
|
|
7fbbf09d21 | ||
|
|
2b74478c8f | ||
|
|
93e8ba1b50 | ||
|
|
0a7535ac81 | ||
|
|
e9e55cbd03 | ||
|
|
e119de4169 | ||
|
|
facc390b54 | ||
|
|
7ab9c9dbee | ||
|
|
ecb27adf86 | ||
|
|
f4c8e42f3e | ||
|
|
7de898777f | ||
|
|
1e404fdb0e | ||
|
|
99f17b80b8 | ||
|
|
b6e64eb23b | ||
|
|
2c19877197 | ||
|
|
19a374e45d | ||
|
|
a8b868e820 | ||
|
|
f1d658764c | ||
|
|
52e1c45156 | ||
|
|
a11a271b28 | ||
|
|
1672935717 | ||
|
|
efd613e874 | ||
|
|
1e1804bb96 | ||
|
|
62fb0759e9 | ||
|
|
29c853f500 | ||
|
|
40f7680efa | ||
|
|
e6dc08b06c | ||
|
|
388d6db5a1 | ||
|
|
3ab9c99567 | ||
|
|
8c526df306 | ||
|
|
4150a86046 | ||
|
|
5083a42072 | ||
|
|
b962f47d3e | ||
|
|
243a347d60 | ||
|
|
7b21bbb7c1 | ||
|
|
00ca487fec | ||
|
|
c19713aa51 | ||
|
|
9f4528c623 | ||
|
|
02e349c051 | ||
|
|
b02de1ec30 | ||
|
|
18e3c8d232 | ||
|
|
f0f71420c8 | ||
|
|
9a8da1e25a | ||
|
|
e53a72a649 | ||
|
|
518772e4e0 | ||
|
|
a1d783bbe2 | ||
|
|
ca0ce1cb42 | ||
|
|
525fd76685 | ||
|
|
760182271e | ||
|
|
de41f0beea | ||
|
|
55361748d7 | ||
|
|
edf5c01fcb | ||
|
|
8b3878dc7d | ||
|
|
dc4086d4f2 | ||
|
|
a3c5c2c29c | ||
|
|
0370d13667 | ||
|
|
25bb33c866 | ||
|
|
59057bee5b | ||
|
|
deb3b85cb2 | ||
|
|
d3bd90f3a7 | ||
|
|
a23162ab28 | ||
|
|
8f37439ccf | ||
|
|
7ab228cf71 | ||
|
|
18ebcf2b30 | ||
|
|
8c5aeb6c4c | ||
|
|
e79b42fec0 | ||
|
|
875b29c3e3 | ||
|
|
ba350f40ff | ||
|
|
4fb5d072c2 | ||
|
|
087157d14f | ||
|
|
2359f06aa6 | ||
|
|
e36c869e85 | ||
|
|
1c82dde85c | ||
|
|
42b16771db | ||
|
|
2c1d8b2e99 | ||
|
|
751c660b9d | ||
|
|
05531d3a86 | ||
|
|
4742f4ecba | ||
|
|
e59617441e | ||
|
|
c1bc3baf7f | ||
|
|
1056376d10 | ||
|
|
0213626992 | ||
|
|
0d6f504ba3 | ||
|
|
af1df8738f | ||
|
|
ca9aaf926f | ||
|
|
591a6c94ee | ||
|
|
4016369212 | ||
|
|
31b5360943 | ||
|
|
65de91f512 | ||
|
|
db3d69263d | ||
|
|
d877d4a561 | ||
|
|
1c57b73e34 | ||
|
|
d30b90dba6 | ||
|
|
e67f81bbf1 | ||
|
|
cb28c27b30 | ||
|
|
f9931f1d22 | ||
|
|
5431583971 | ||
|
|
d2785afebe | ||
|
|
b3b1a9081b | ||
|
|
8db550c42f | ||
|
|
71793853df | ||
|
|
2923ab4945 | ||
|
|
24b9ec555a | ||
|
|
3596bad5ce | ||
|
|
083007e930 | ||
|
|
2bb4392bb3 | ||
|
|
bf98eb41bf | ||
|
|
ab9f12c7f4 | ||
|
|
28cf1a7a9c | ||
|
|
44cec639c4 | ||
|
|
c692da2182 | ||
|
|
5cdb38c2c7 | ||
|
|
8e164f784d | ||
|
|
9c950e5961 | ||
|
|
28748db0b2 | ||
|
|
1ff71c7cee | ||
|
|
e2c938d882 | ||
|
|
0bdefcb599 | ||
|
|
4eb0897c90 | ||
|
|
7ecd699e81 | ||
|
|
eaac2057c7 | ||
|
|
509d71e1aa | ||
|
|
0ce82e9d5f | ||
|
|
53690ef21f | ||
|
|
cab7c34fbd | ||
|
|
fe20f8fe25 | ||
|
|
527614c750 | ||
|
|
13fe763798 | ||
|
|
495e10ba5a | ||
|
|
24dd865b97 | ||
|
|
e0d309572f | ||
|
|
5dd1beec8e | ||
|
|
dc5b8ec97a | ||
|
|
eed6778be4 | ||
|
|
cb40c5229a | ||
|
|
f34e7ee612 | ||
|
|
ebf3083e08 | ||
|
|
9689313331 | ||
|
|
4c06eb20cc | ||
|
|
a2188e61e7 | ||
|
|
c746037622 | ||
|
|
28b0de3e86 | ||
|
|
6bc771828c | ||
|
|
2cd0a493ae | ||
|
|
bdc9860262 | ||
|
|
d6f4592f6b | ||
|
|
b865fb77de | ||
|
|
c3e4363303 | ||
|
|
c5040e5c9e | ||
|
|
86c377ccbb | ||
|
|
b14e127569 |
@@ -62,3 +62,4 @@ unit/atf-src/test-programs/sh_helpers
|
||||
.project
|
||||
.cproject
|
||||
.settings
|
||||
kyua.log
|
||||
+55
-18
@@ -4,11 +4,13 @@ variables:
|
||||
DOCKER_DRIVER: overlay2
|
||||
CI_REGISTRY_IMAGE: registry.gitlab.isc.org/isc-projects/images/bind9
|
||||
CCACHE_DIR: "/ccache"
|
||||
SOFTHSM2_CONF: "/var/tmp/softhsm2/softhsm2.conf"
|
||||
|
||||
stages:
|
||||
- precheck
|
||||
- build
|
||||
- test
|
||||
- push
|
||||
|
||||
.centos-centos6-amd64: ¢os_centos6_amd64_image
|
||||
image: "$CI_REGISTRY_IMAGE:centos-centos6-amd64"
|
||||
@@ -114,20 +116,27 @@ stages:
|
||||
- test -w "${CCACHE_DIR}" && export PATH="/usr/lib/ccache:${PATH}"
|
||||
# - ./autogen.sh
|
||||
script:
|
||||
- ./configure --enable-developer --with-libtool --disable-static --with-atf=/usr $EXTRA_CONFIGURE
|
||||
- ./configure --enable-developer --with-libtool --disable-static --with-atf=/usr --prefix=$HOME/.local --without-make-clean $EXTRA_CONFIGURE || cat config.log
|
||||
- make -j${PARALLEL_JOBS_BUILD:-1} -k all V=1
|
||||
artifacts:
|
||||
paths:
|
||||
- doc/
|
||||
expire_in: '1 hour'
|
||||
untracked: true
|
||||
|
||||
.install_test: &install_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
|
||||
- export SOFTHSM_CONF="/tmp/softhsm.conf"
|
||||
- echo "0:/tmp/softhsm.db" > $SOFTHSM_CONF
|
||||
- if command -v softhsm2-util >/dev/null; then softhsm2-util --init-token --free --pin 0000 --so-pin 0000 --label "softhsm"; fi
|
||||
- bash -x util/prepare-softhsm2.sh
|
||||
script:
|
||||
- ( cd bin/tests && make -j${TEST_PARALLEL_JOBS:-1} -k test V=1 )
|
||||
- test -s bin/tests/system/systests.output
|
||||
@@ -140,9 +149,7 @@ stages:
|
||||
stage: test
|
||||
before_script:
|
||||
- export KYUA_RESULT="$CI_PROJECT_DIR/kyua.results"
|
||||
- export SOFTHSM_CONF="/tmp/softhsm.conf"
|
||||
- echo "0:/tmp/softhsm.db" > $SOFTHSM_CONF
|
||||
- if command -v softhsm2-util >/dev/null; then softhsm2-util --init-token --free --pin 0000 --so-pin 0000 --label "softhsm"; fi
|
||||
- bash -x util/prepare-softhsm2.sh
|
||||
script:
|
||||
- make unit
|
||||
after_script:
|
||||
@@ -165,6 +172,8 @@ precheck:debian:sid:amd64:
|
||||
- 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:
|
||||
@@ -174,6 +183,29 @@ precheck:debian:sid:amd64:
|
||||
expire_in: '1 week'
|
||||
when: on_failure
|
||||
|
||||
docs:debian:sid:amd64:
|
||||
<<: *debian_sid_amd64_image
|
||||
stage: test
|
||||
dependencies:
|
||||
- build:debian:sid:amd64
|
||||
script:
|
||||
- make -C doc/misc docbook
|
||||
- make -C doc/arm Bv9ARM.html
|
||||
artifacts:
|
||||
paths:
|
||||
- doc/arm/
|
||||
expire_in: '1 month'
|
||||
|
||||
push:docs:
|
||||
<<: *debian_sid_amd64_image
|
||||
stage: push
|
||||
dependencies: []
|
||||
script:
|
||||
- curl -X POST -F token=$GITLAB_PAGES_DOCS_TRIGGER_TOKEN -F ref=master $GITLAB_PAGES_DOCS_TRIGGER_URL
|
||||
only:
|
||||
- master@isc-projects/bind9
|
||||
- /^v9_.*$/@isc-projects/bind9
|
||||
|
||||
#build:debian:jessie:amd64:
|
||||
# <<: *debian_jessie_amd64_image
|
||||
# <<: *build_job
|
||||
@@ -214,18 +246,18 @@ build:centos:centos7:amd64:
|
||||
<<: *centos_centos7_amd64_image
|
||||
<<: *build_job
|
||||
|
||||
build:clang:debian:sid:amd64:
|
||||
build:clang:debian:stretch:amd64:
|
||||
variables:
|
||||
CC: clang-6.0
|
||||
CC: clang
|
||||
CFLAGS: "-Wall -Wextra -Wenum-conversion -O2 -g"
|
||||
EXTRA_CONFIGURE: "--with-libidn2"
|
||||
<<: *debian_sid_amd64_image
|
||||
<<: *debian_stretch_amd64_image
|
||||
<<: *build_job
|
||||
|
||||
build:debian:jessie:amd64:
|
||||
variables:
|
||||
CC: gcc
|
||||
CFLAGS: "-Wall -Wextra -O2 -g"
|
||||
EXTRA_CONFIGURE: --without-cmocka
|
||||
<<: *debian_jessie_amd64_image
|
||||
<<: *build_job
|
||||
|
||||
@@ -244,12 +276,11 @@ build:debian:sid:amd64:
|
||||
<<: *debian_sid_amd64_image
|
||||
<<: *build_job
|
||||
|
||||
build:clang:debian:sid:i386:
|
||||
build:clang:debian:stretch:i386:
|
||||
variables:
|
||||
CC: clang-6.0
|
||||
CC: clang
|
||||
CFLAGS: "-Wall -Wextra -Wenum-conversion -O2 -g"
|
||||
EXTRA_CONFIGURE: "--with-libidn2"
|
||||
<<: *debian_sid_i386_image
|
||||
<<: *debian_stretch_i386_image
|
||||
<<: *build_job
|
||||
|
||||
build:debian:sid:i386:
|
||||
@@ -290,11 +321,11 @@ unittest:debian:sid:amd64:
|
||||
dependencies:
|
||||
- build:debian:sid:amd64
|
||||
|
||||
unittest:clang:debian:sid:amd64:
|
||||
<<: *debian_sid_amd64_image
|
||||
unittest:clang:debian:stretch:amd64:
|
||||
<<: *debian_stretch_amd64_image
|
||||
<<: *unit_test_job
|
||||
dependencies:
|
||||
- build:clang:debian:sid:amd64
|
||||
- build:clang:debian:stretch:amd64
|
||||
|
||||
unittest:debian:sid:i386:
|
||||
<<: *debian_sid_i386_image
|
||||
@@ -338,6 +369,12 @@ systemtest:debian:sid:i386:
|
||||
dependencies:
|
||||
- build:debian:sid:i386
|
||||
|
||||
install:debian:sid:amd64:
|
||||
<<: *debian_sid_amd64_image
|
||||
<<: *install_test_job
|
||||
dependencies:
|
||||
- build:debian:sid:amd64
|
||||
|
||||
pkcs11:build:debian:sid:amd64:
|
||||
variables:
|
||||
CC: gcc
|
||||
|
||||
@@ -9,6 +9,10 @@ email to [security-officer@isc.org](security-officer@isc.org).
|
||||
|
||||
(Summarize the bug encountered concisely.)
|
||||
|
||||
### BIND version used
|
||||
|
||||
(Paste the output of `named -V`.)
|
||||
|
||||
### Steps to reproduce
|
||||
|
||||
(How one can reproduce the issue - this is very important.)
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
## Release Checklist
|
||||
|
||||
- [ ] (Manager) Check for the presence of a milestone for the release.
|
||||
- If there is a milestone, are all the issues for the milestone resolved? (other than this checklist).
|
||||
- [ ] (Manager) Inform Support/Marketing of impending release (and give estimated release dates).
|
||||
- (SwEng) Prepare the sources for tarball generation.
|
||||
- [ ] Ensure that there are no outstanding merge requests in the private repository (subscription version only).
|
||||
- [ ] Update API files for libraries with new version information.
|
||||
- [ ] Change software version and library versions in configure.in (new major release only).
|
||||
- [ ] Ensure Kyua and ATF files are correct.
|
||||
- [ ] Rebuild configure using autoconf on docs.isc.org.
|
||||
- [ ] Update CHANGES.
|
||||
- [ ] Update CHANGES.SE (subscription branch only).
|
||||
- [ ] Update "version".
|
||||
- [ ] Update "readme.md".
|
||||
- [ ] Ensure the release notes are correct for this release (content, formatting, etc.).
|
||||
- [ ] Build documentation on docs.isc.org.
|
||||
- [ ] Commit changes and make sure the gitlab-ci tests are passing.
|
||||
- [ ] Push the changes and tag ("alphatag" is an optional string such as "b1", "rc1" etc.). (```git tag -u <DEVELOPER_KEYID> -a -s -m "BIND 9.X.Y[alphatag]" v9_X_Y[alphatag]```)
|
||||
- [ ] If this is the first tag for a release (e.g. beta), create a release branch named `release_v9_X_Y` (this allows development to continue on the release branch whilst release engineering continues).
|
||||
- [ ] (SwEng) Run the "make release" Jenkins job to produce the tarballs and zips.
|
||||
- [ ] (SwEng) Ask QA to sanity check the tarball and zips (passing to them the number of the Jenkins job).
|
||||
- [ ] (QA) Sanity check the tarballs.
|
||||
- [ ] (QA) Request the signature on the tarballs.
|
||||
- [ ] (QA) Check signatures on tarballs.
|
||||
- [ ] (QA) Tell Support to handle notification of release.
|
||||
- [ ] (Support) Make tarballs and signatures available to download.
|
||||
- [ ] (Manager) Update [https://wiki.isc.org/bin/view/Main/BindReleaseDates](BIND release dates page) when public announcement has been made.
|
||||
- [ ] (Manager) Inform marketing of the release
|
||||
|
||||
- [ ] (SwEng) Update DEB and RPM packages
|
||||
- [ ] (SwEng) Merge the automatically prepared `prep 9.X.Y` commit which updates `version` and documentation on the release branch into the relevant maintenance branch (`v9_X`)
|
||||
+1434
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,226 @@
|
||||
5072. [bug] Add unit tests for isc_buffer_copyregion() and fix its
|
||||
behavior for auto-reallocated buffers. [GL #644]
|
||||
|
||||
5071. [bug] Comparision of NXT records was broken. [GL #631]
|
||||
|
||||
5070. [bug] Record types which support a empty rdata field were
|
||||
not handling the empty rdata field case. [GL #638]
|
||||
|
||||
5069. [bug] Fix a hang on in RPZ when named is shutdown during RPZ
|
||||
zone update. [GL !907]
|
||||
|
||||
5068. [bug] Fix a race in RPZ with min-update-interval set to 0.
|
||||
[GL #643]
|
||||
|
||||
5067. [bug] Don't minimize qname when sending the query
|
||||
to a forwarder. [GL #361]
|
||||
|
||||
5066. [cleanup] Allow unquoted strings to be used as a zone names
|
||||
in response-policy statements. [GL #641]
|
||||
|
||||
5065. [bug] Only set IPV6_USE_MIN_MTU on IPv6. [GL #553]
|
||||
|
||||
5064. [test] Initalize TZ environment variable before calling
|
||||
dns_test_begin in dnstap_test. [GL #624]
|
||||
|
||||
5063. [test] In statschannel test try a few times before failing
|
||||
when checking if the compressed output is the same as
|
||||
uncompressed. [GL !909]
|
||||
|
||||
5062. [func] Use non-crypto-secure PRNG to generate nonces for
|
||||
cookies. [GL !887]
|
||||
|
||||
5061. [protocol] Add support for EID and NIMLOC. [GL #626]
|
||||
|
||||
5060. [bug] GID, UID and UINFO could not be loaded using unknown
|
||||
record format. [GL #627]
|
||||
|
||||
5059. [bug] Display a per-view list of zones in the web interface.
|
||||
[GL #427]
|
||||
|
||||
5058. [func] Replace old message digest and hmac APIs with more
|
||||
generic isc_md and isc_hmac APIs, and convert their
|
||||
respective tests to cmocka. [GL #305]
|
||||
|
||||
5057. [protocol] Add support for ATMA. [GL #619]
|
||||
|
||||
5056. [placeholder]
|
||||
|
||||
5055. [func] A default list of primary servers for the root zone is
|
||||
now built into named, allowing the "masters" statement
|
||||
to be omitted when configuring an IANA root zone
|
||||
mirror. [GL #564]
|
||||
|
||||
5054. [func] Attempts to use mirror zones with recursion disabled
|
||||
are now considered a configuration error. [GL #564]
|
||||
|
||||
5053. [func] The only valid zone-level NOTIFY settings for mirror
|
||||
zones are now "notify no;" and "notify explicit;".
|
||||
[GL #564]
|
||||
|
||||
5052. [func] Mirror zones are now configured using "type mirror;"
|
||||
rather than "mirror yes;". [GL #564]
|
||||
|
||||
5051. [doc] Documentation incorrectly stated that the
|
||||
"server-addresses" static-stub zone option accepts
|
||||
custom port numbers. [GL #582]
|
||||
|
||||
5050. [bug] The libirs version of getaddrinfo() was unable to parse
|
||||
scoped IPv6 addresses present in /etc/resolv.conf.
|
||||
[GL #187]
|
||||
|
||||
5049. [cleanup] QNAME minimization has been deeply refactored. [GL #16]
|
||||
|
||||
5048. [func] Add configure option to enable and enforce FIPS mode
|
||||
in BIND 9. [GL #506]
|
||||
|
||||
5047. [bug] Messages logged for certain query processing failures
|
||||
now include a more specific error description if it is
|
||||
available. [GL #572]
|
||||
|
||||
5046. [bug] named could crash during shutdown if an RPZ
|
||||
reload was in progress. [RT #46210]
|
||||
|
||||
5045. [func] Remove support for DNSSEC algorithms 3 (DSA)
|
||||
and 6 (DSA-NSEC3-SHA1). [GL #22]
|
||||
|
||||
5044. [cleanup] If "dnssec-enable" is no, then "dnssec-validation"
|
||||
now also defaults to no. [GL #388]
|
||||
|
||||
5043. [bug] Fix creating and validating EdDSA signatures. [GL #579]
|
||||
|
||||
5042. [test] Make the chained delegations in reclimit behave
|
||||
like they would in a regular name server. [GL #578]
|
||||
|
||||
5041. [test] The chain test contains a incomplete delegation.
|
||||
[GL #568]
|
||||
|
||||
5040. [func] Extended dnstap so that it can log UPDATE requests
|
||||
and responses as separate message types. Thanks
|
||||
to Greg Rabil. [GL #570]
|
||||
|
||||
5039. [bug] Named could fail to preserve owner name case of new
|
||||
RRset. [GL #420]
|
||||
|
||||
5038. [bug] Chaosnet addresses were compared incorrectly.
|
||||
[GL #562]
|
||||
|
||||
5037. [func] "allow-recursion-on" and "allow-query-cache-on"
|
||||
each now default to the other if only one of them
|
||||
is set, in order to be more consistent with the way
|
||||
"allow-recursion" and "allow-query-cache" work.
|
||||
Also we now ensure that both query-cache ACLs are
|
||||
checked when determining cache access. [GL #319]
|
||||
|
||||
5036. [cleanup] Fixed a spacing/formatting error in some RPZ-related
|
||||
error messages in the log. [GL !805]
|
||||
|
||||
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]
|
||||
|
||||
5031. [cleanup] Various defines in platform.h has been either dropped
|
||||
if always or never triggered on supported platforms
|
||||
or replaced with config.h equivalents if the defines
|
||||
didn't have any impact on public headers. Workarounds
|
||||
for LinuxThreads have been removed because NPTL is
|
||||
available since Linux kernel 2.6.0. [GL #525]
|
||||
|
||||
5030. [bug] Align CMSG buffers to a 64-bit boundary, fixes crash
|
||||
on architectures with strict alignment. [GL #521]
|
||||
|
||||
--- 9.13.3 released ---
|
||||
|
||||
5029. [func] Workarounds for servers that misbehave when queried
|
||||
with EDNS have been removed, because these broken
|
||||
servers and the workarounds for their noncompliance
|
||||
cause unnecessary delays, increase code complexity,
|
||||
and prevent deployment of new DNS features. See
|
||||
https://dnsflagday.net for further details. [GL #150]
|
||||
|
||||
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]
|
||||
|
||||
5027. [func] Set SO_SNDBUF size on sockets. [GL #74]
|
||||
|
||||
5026. [bug] rndc reconfig should not touch already loaded zones.
|
||||
[GL #276]
|
||||
|
||||
5025. [cleanup] Remove isc_keyboard family of functions. [GL #178]
|
||||
|
||||
5024. [func] Replace custom assembly for atomic operations with
|
||||
atomic support from the compiler. The code will now use
|
||||
C11 stdatomic, or __atomic, or __sync builtins with GCC
|
||||
or Clang compilers, and Interlocked functions with MSVC.
|
||||
[GL #10]
|
||||
|
||||
5023. [cleanup] Remove wrappers that try to fix broken or incomplete
|
||||
implementations of IPv6, pthreads and other core
|
||||
functionality required and used by BIND. [GL #192]
|
||||
|
||||
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]
|
||||
|
||||
5020. [func] RNG uses thread-local storage instead of locks, if
|
||||
supported by platform. [GL #496]
|
||||
|
||||
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]
|
||||
|
||||
5011. [func] Remove support for unthreaded named. [GL #478]
|
||||
|
||||
5010. [func] New "validate-except" option specifies a list of
|
||||
domains beneath which DNSSEC validation should not
|
||||
be performed. [GL #237]
|
||||
|
||||
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]
|
||||
|
||||
@@ -25,7 +248,7 @@
|
||||
5000. [bug] named_server_servestale() could leave the server in
|
||||
exclusive mode if an error occured. [GL #441]
|
||||
|
||||
4999. [cleanup] Remove custom printf implementaion in lib/isc/print.c.
|
||||
4999. [cleanup] Remove custom printf implementation in lib/isc/print.c.
|
||||
[GL #261]
|
||||
|
||||
4998. [test] Make resolver and cacheclean tests more civilized.
|
||||
|
||||
+2
-1
@@ -14,7 +14,7 @@ top_builddir = @top_builddir@
|
||||
|
||||
VERSION=@BIND9_VERSION@
|
||||
|
||||
SUBDIRS = make unit lib bin doc
|
||||
SUBDIRS = make unit lib fuzz bin doc
|
||||
TARGETS =
|
||||
PREREQS = bind.keys.h
|
||||
|
||||
@@ -90,6 +90,7 @@ force-test: test-force
|
||||
|
||||
test-force:
|
||||
status=0; \
|
||||
(cd fuzz && ${MAKE} check) || status=1; \
|
||||
(cd bin/tests && ${MAKE} ${MAKEDEFS} test) || status=1; \
|
||||
(test -f ${top_builddir}/unit/unittest.sh && \
|
||||
$(SHELL) ${top_builddir}/unit/unittest.sh) || status=1; \
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
Supported platforms
|
||||
|
||||
In general, this version of BIND will build and run on any POSIX-compliant
|
||||
system with a C99-compliant C compiler, BSD-style sockets, and the OpenSSL
|
||||
cryptography library. To build with multiprocessing support, a
|
||||
C11-compliant C compiler will be needed for standard atomics.
|
||||
system with a C99-compliant C compiler, BSD-style sockets with
|
||||
RFC-compliant IPv6 support, POSIX-compliant threads, and the OpenSSL
|
||||
cryptography library. Atomic operations support from the compiler is
|
||||
needed, either in the form of builtin operations, C11 atomics or the
|
||||
Interlocked family of functions on Windows.
|
||||
|
||||
ISC regularly tests BIND on many operating systems and architectures, but
|
||||
lacks the resources to test all of them. Consequently, ISC is only able to
|
||||
@@ -53,4 +55,7 @@ These are platforms on which BIND is known not to build or run:
|
||||
|
||||
* Platforms without at least OpenSSL 1.0.2
|
||||
* Windows 10 / x86
|
||||
* Windows Server 2012
|
||||
* Windows Server 2012 and older
|
||||
* Platforms that don't support IPv6 Advanced Socket API (RFC 3542)
|
||||
* Platforms that don't support atomic operations (via compiler or
|
||||
library)
|
||||
|
||||
+40
-4
@@ -11,9 +11,11 @@
|
||||
## Supported platforms
|
||||
|
||||
In general, this version of BIND will build and run on any POSIX-compliant
|
||||
system with a C99-compliant C compiler, BSD-style sockets, and the OpenSSL
|
||||
cryptography library. To build with multiprocessing support, a
|
||||
C11-compliant C compiler will be needed for standard atomics.
|
||||
system with a C99-compliant C compiler, BSD-style sockets with RFC-compliant
|
||||
IPv6 support, POSIX-compliant threads, and the OpenSSL cryptography library.
|
||||
Atomic operations support from the compiler is needed, either in the form of
|
||||
builtin operations, C11 atomics or the Interlocked family of functions on
|
||||
Windows.
|
||||
|
||||
ISC regularly tests BIND on many operating systems and architectures, but
|
||||
lacks the resources to test all of them. Consequently, ISC is only able to
|
||||
@@ -61,4 +63,38 @@ These are platforms on which BIND is known *not* to build or run:
|
||||
|
||||
* Platforms without at least OpenSSL 1.0.2
|
||||
* Windows 10 / x86
|
||||
* Windows Server 2012
|
||||
* Windows Server 2012 and older
|
||||
* Platforms that don't support IPv6 Advanced Socket API (RFC 3542)
|
||||
* Platforms that don't support atomic operations (via compiler or library)
|
||||
* Linux without NPTL (Native POSIX Thread Library)
|
||||
|
||||
## Platform quirks
|
||||
|
||||
### ARM
|
||||
|
||||
If the compilation ends with following error:
|
||||
|
||||
```
|
||||
Error: selected processor does not support `yield' in ARM mode
|
||||
```
|
||||
|
||||
You will need to set `-march` compiler option to `native`, so the compiler
|
||||
recognizes `yield` assembler instruction. The proper way to set `-march=native`
|
||||
would be to put it into `CFLAGS`, e.g. run `./configure` like this:
|
||||
`CFLAGS="-march=native -Os -g" ./configure` plus your usual options.
|
||||
|
||||
If that doesn't work, you can enforce the minimum CPU and FPU (taken from Debian
|
||||
armhf documentation):
|
||||
|
||||
* The lowest worthwhile CPU implementation is Armv7-A, therefore the recommended
|
||||
build option is `-march=armv7-a`.
|
||||
|
||||
* FPU should be set at VFPv3-D16 as they represent the miminum specification of
|
||||
the processors to support here, therefore the recommended build option is
|
||||
`-mfpu=vfpv3-d16`.
|
||||
|
||||
The configure command should look like this:
|
||||
|
||||
```
|
||||
CFLAGS="-march=armv7-a -mfpu=vfpv3-d16 -Os -g" ./configure
|
||||
```
|
||||
|
||||
@@ -104,8 +104,7 @@ BIND 9.13 features
|
||||
BIND 9.13 is the newest development branch of BIND 9. It includes a number
|
||||
of changes from BIND 9.12 and earlier releases. New features include:
|
||||
|
||||
* The default value of "dnssec-validation" is now "auto".
|
||||
* Support for IDNA2008 when linking with libidn2.
|
||||
* QNAME minimization, as described in RFC 7816, is now supported.
|
||||
* "Root key sentinel" support, enabling validating resolvers to indicate
|
||||
via a special query which trust anchors are configured for the root
|
||||
zone.
|
||||
@@ -114,12 +113,24 @@ of changes from BIND 9.12 and earlier releases. New features include:
|
||||
subject to DNSSEC validation and are not treated as authoritative data
|
||||
when answering. This makes it easier to configure a local copy of the
|
||||
root zone as described in RFC 7706.
|
||||
* The "validate-except" option allows configuration of domains below
|
||||
which DNSSEC validation should not be performed.
|
||||
* The default value of "dnssec-validation" is now "auto".
|
||||
* IDNA2008 is now supported when linking with libidn2.
|
||||
|
||||
In addition, cryptographic support has been modernized. BIND now uses the
|
||||
best available pseudo-random number generator for the platform on which
|
||||
it's built. Very old versions of OpenSSL are no longer supported.
|
||||
Cryptography is now mandatory; building BIND without DNSSEC is now longer
|
||||
supported.
|
||||
In addition, workarounds that were formerly in place to enable resolution
|
||||
of domains whose authoritative servers did not respond to EDNS queries
|
||||
have been removed. See https://dnsflagday.net for more details.
|
||||
|
||||
Cryptographic support has been modernized. BIND now uses the best
|
||||
available pseudo-random number generator for the platform on which it's
|
||||
built. Very old versions of OpenSSL are no longer supported. Cryptography
|
||||
is now mandatory: building BIND without DNSSEC is now longer supported.
|
||||
|
||||
Special code to support certain legacy operating systems has also been
|
||||
removed; see the file PLATFORMS.md for details of supported platforms. In
|
||||
addition to OpenSSL, BIND now requires support for IPv6, threads, and
|
||||
standard atomic operations provided by the C compiler.
|
||||
|
||||
Building BIND
|
||||
|
||||
@@ -127,7 +138,7 @@ Minimally, BIND requires a UNIX or Linux system with an ANSI C compiler,
|
||||
basic POSIX support, and a 64-bit integer type. Successful builds have
|
||||
been observed on many versions of Linux and UNIX, including RedHat,
|
||||
Fedora, Debian, Ubuntu, SuSE, Slackware, FreeBSD, NetBSD, OpenBSD, Mac OS
|
||||
X, Solaris, HP-UX, AIX, SCO OpenServer, and OpenWRT.
|
||||
X, Solaris, HP-UX, and OpenWRT.
|
||||
|
||||
BIND requires a cryptography provider library such as OpenSSL or a
|
||||
hardware service module supporting PKCS#11. On Linux, BIND requires the
|
||||
@@ -253,10 +264,6 @@ specifying --enable-fixed-rrset or --disable-fixed-rrset on the configure
|
||||
command line. By default, fixed rrset-order is disabled to reduce memory
|
||||
footprint.
|
||||
|
||||
If your operating system has integrated support for IPv6, it will be used
|
||||
automatically. If you have installed KAME IPv6 separately, use --with-kame
|
||||
[=PATH] to specify its location.
|
||||
|
||||
make install will install named and the various BIND 9 libraries. By
|
||||
default, installation is into /usr/local, but this can be changed with the
|
||||
--prefix option when running configure.
|
||||
|
||||
@@ -122,8 +122,7 @@ BIND 9.13 is the newest development branch of BIND 9. It includes a
|
||||
number of changes from BIND 9.12 and earlier releases. New features
|
||||
include:
|
||||
|
||||
* The default value of "dnssec-validation" is now "auto".
|
||||
* Support for IDNA2008 when linking with `libidn2`.
|
||||
* QNAME minimization, as described in RFC 7816, is now supported.
|
||||
* "Root key sentinel" support, enabling validating resolvers to indicate
|
||||
via a special query which trust anchors are configured for the root zone.
|
||||
* Secondary zones can now be configured as "mirror" zones; their contents
|
||||
@@ -131,20 +130,35 @@ include:
|
||||
DNSSEC validation and are not treated as authoritative data when
|
||||
answering. This makes it easier to configure a local copy of the root
|
||||
zone as described in RFC 7706.
|
||||
* The "validate-except" option allows configuration of domains below which
|
||||
DNSSEC validation should not be performed.
|
||||
* The default value of "dnssec-validation" is now "auto".
|
||||
* IDNA2008 is now supported when linking with `libidn2`.
|
||||
|
||||
In addition, cryptographic support has been modernized. BIND now uses the
|
||||
In addition, workarounds that were formerly in place to enable resolution
|
||||
of domains whose authoritative servers did not respond to EDNS queries
|
||||
have been removed. See [https://dnsflagday.net](https://dnsflagday.net)
|
||||
for more details.
|
||||
|
||||
Cryptographic support has been modernized. BIND now uses the
|
||||
best available pseudo-random number generator for the platform on which
|
||||
it's built. Very old versions of OpenSSL are no longer supported.
|
||||
Cryptography is now mandatory; building BIND without DNSSEC is now
|
||||
Cryptography is now mandatory: building BIND without DNSSEC is now
|
||||
longer supported.
|
||||
|
||||
Special code to support certain legacy operating systems has also
|
||||
been removed; see the file [PLATFORMS.md](PLATFORMS.md) for details
|
||||
of supported platforms. In addition to OpenSSL, BIND now requires
|
||||
support for IPv6, threads, and standard atomic operations provided
|
||||
by the C compiler.
|
||||
|
||||
### <a name="build"/> Building BIND
|
||||
|
||||
Minimally, BIND requires a UNIX or Linux system with an ANSI C compiler,
|
||||
basic POSIX support, and a 64-bit integer type. Successful builds have been
|
||||
observed on many versions of Linux and UNIX, including RedHat, Fedora,
|
||||
Debian, Ubuntu, SuSE, Slackware, FreeBSD, NetBSD, OpenBSD, Mac OS X,
|
||||
Solaris, HP-UX, AIX, SCO OpenServer, and OpenWRT.
|
||||
Solaris, HP-UX, and OpenWRT.
|
||||
|
||||
BIND requires a cryptography provider library such as OpenSSL or a
|
||||
hardware service module supporting PKCS#11. On Linux, BIND requires
|
||||
@@ -268,10 +282,6 @@ specifying `--enable-fixed-rrset` or `--disable-fixed-rrset` on the
|
||||
configure command line. By default, fixed rrset-order is disabled to
|
||||
reduce memory footprint.
|
||||
|
||||
If your operating system has integrated support for IPv6, it will be used
|
||||
automatically. If you have installed KAME IPv6 separately, use
|
||||
`--with-kame[=PATH]` to specify its location.
|
||||
|
||||
`make install` will install `named` and the various BIND 9 libraries. By
|
||||
default, installation is into /usr/local, but this can be changed with the
|
||||
`--prefix` option when running `configure`.
|
||||
|
||||
-131
@@ -1,131 +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.
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
||||
/***
|
||||
*** This file is not to be included by any public header files, because
|
||||
*** it does not get installed.
|
||||
***/
|
||||
@TOP@
|
||||
|
||||
/** define on DEC OSF to enable 4.4BSD style sa_len support */
|
||||
#undef _SOCKADDR_LEN
|
||||
|
||||
/** define if your system needs pthread_init() before using pthreads */
|
||||
#undef NEED_PTHREAD_INIT
|
||||
|
||||
/** define if your system has sigwait() */
|
||||
#undef HAVE_SIGWAIT
|
||||
|
||||
/** define if sigwait() is the UnixWare flavor */
|
||||
#undef HAVE_UNIXWARE_SIGWAIT
|
||||
|
||||
/** define on Solaris to get sigwait() to work using pthreads semantics */
|
||||
#undef _POSIX_PTHREAD_SEMANTICS
|
||||
|
||||
/** define if LinuxThreads is in use */
|
||||
#undef HAVE_LINUXTHREADS
|
||||
|
||||
/** define if sysconf() is available */
|
||||
#undef HAVE_SYSCONF
|
||||
|
||||
/** define if sysctlbyname() is available */
|
||||
#undef HAVE_SYSCTLBYNAME
|
||||
|
||||
/** define if catgets() is available */
|
||||
#undef HAVE_CATGETS
|
||||
|
||||
/** define if getifaddrs() exists */
|
||||
#undef HAVE_GETIFADDRS
|
||||
|
||||
/** define if you have the NET_RT_IFLIST sysctl variable and sys/sysctl.h */
|
||||
#undef HAVE_IFLIST_SYSCTL
|
||||
|
||||
/** define if tzset() is available */
|
||||
#undef HAVE_TZSET
|
||||
|
||||
/** define if struct addrinfo exists */
|
||||
#undef HAVE_ADDRINFO
|
||||
|
||||
/** define if getaddrinfo() exists */
|
||||
#undef HAVE_GETADDRINFO
|
||||
|
||||
/** define if gai_strerror() exists */
|
||||
#undef HAVE_GAISTRERROR
|
||||
|
||||
/**
|
||||
* define if pthread_setconcurrency() should be called to tell the
|
||||
* OS how many threads we might want to run.
|
||||
*/
|
||||
#undef CALL_PTHREAD_SETCONCURRENCY
|
||||
|
||||
/** define if IPv6 is not disabled */
|
||||
#undef WANT_IPV6
|
||||
|
||||
/** define if flockfile() is available */
|
||||
#undef HAVE_FLOCKFILE
|
||||
|
||||
/** define if getc_unlocked() is available */
|
||||
#undef HAVE_GETCUNLOCKED
|
||||
|
||||
/** Shut up warnings about sputaux in stdio.h on BSD/OS pre-4.1 */
|
||||
#undef SHUTUP_SPUTAUX
|
||||
#ifdef SHUTUP_SPUTAUX
|
||||
struct __sFILE;
|
||||
extern __inline int __sputaux(int _c, struct __sFILE *_p);
|
||||
#endif
|
||||
|
||||
/** Shut up warnings about missing sigwait prototype on BSD/OS 4.0* */
|
||||
#undef SHUTUP_SIGWAIT
|
||||
#ifdef SHUTUP_SIGWAIT
|
||||
int sigwait(const unsigned int *set, int *sig);
|
||||
#endif
|
||||
|
||||
/** Shut up warnings from gcc -Wcast-qual on BSD/OS 4.1. */
|
||||
#undef SHUTUP_STDARG_CAST
|
||||
#if defined(SHUTUP_STDARG_CAST) && defined(__GNUC__)
|
||||
#include <stdarg.h> /** Grr. Must be included *every time*. */
|
||||
/**
|
||||
* The silly continuation line is to keep configure from
|
||||
* commenting out the #undef.
|
||||
*/
|
||||
|
||||
#undef \
|
||||
va_start
|
||||
#define va_start(ap, last) \
|
||||
do { \
|
||||
union { const void *konst; long *var; } _u; \
|
||||
_u.konst = &(last); \
|
||||
ap = (va_list)(_u.var + __va_words(__typeof(last))); \
|
||||
} while (0)
|
||||
#endif /** SHUTUP_STDARG_CAST && __GNUC__ */
|
||||
|
||||
/** define if the system has a random number generating device */
|
||||
#undef PATH_RANDOMDEV
|
||||
|
||||
/** define if pthread_attr_getstacksize() is available */
|
||||
#undef HAVE_PTHREAD_ATTR_GETSTACKSIZE
|
||||
|
||||
/** define if pthread_attr_setstacksize() is available */
|
||||
#undef HAVE_PTHREAD_ATTR_SETSTACKSIZE
|
||||
|
||||
/** define if you have strerror in the C library. */
|
||||
#undef HAVE_STRERROR
|
||||
|
||||
/* Define to the length type used by the socket API (socklen_t, size_t, int). */
|
||||
#undef ISC_SOCKADDR_LEN_T
|
||||
|
||||
/* Define if threads need PTHREAD_SCOPE_SYSTEM */
|
||||
#undef NEED_PTHREAD_SCOPE_SYSTEM
|
||||
|
||||
/* Define to 1 if you have the uname library function. */
|
||||
#undef HAVE_UNAME
|
||||
Vendored
+11
-10
@@ -1,6 +1,6 @@
|
||||
# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
|
||||
# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
|
||||
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@@ -12,9 +12,9 @@
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
|
||||
dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
||||
dnl serial 11 (pkg-config-0.29.1)
|
||||
dnl
|
||||
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
||||
# serial 12 (pkg-config-0.29.2)
|
||||
|
||||
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
||||
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
|
||||
dnl
|
||||
@@ -55,7 +55,7 @@ dnl
|
||||
dnl See the "Since" comment for each macro you use to see what version
|
||||
dnl of the macros you require.
|
||||
m4_defun([PKG_PREREQ],
|
||||
[m4_define([PKG_MACROS_VERSION], [0.29.1])
|
||||
[m4_define([PKG_MACROS_VERSION], [0.29.2])
|
||||
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
|
||||
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
|
||||
])dnl PKG_PREREQ
|
||||
@@ -156,7 +156,7 @@ AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
|
||||
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
|
||||
|
||||
pkg_failed=no
|
||||
AC_MSG_CHECKING([for $1])
|
||||
AC_MSG_CHECKING([for $2])
|
||||
|
||||
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
|
||||
_PKG_CONFIG([$1][_LIBS], [libs], [$2])
|
||||
@@ -166,11 +166,11 @@ and $1[]_LIBS to avoid the need to call pkg-config.
|
||||
See the pkg-config man page for more details.])
|
||||
|
||||
if test $pkg_failed = yes; then
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_RESULT([no])
|
||||
_PKG_SHORT_ERRORS_SUPPORTED
|
||||
if test $_pkg_short_errors_supported = yes; then
|
||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
|
||||
else
|
||||
else
|
||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
|
||||
fi
|
||||
# Put the nasty error message in config.log where it belongs
|
||||
@@ -187,7 +187,7 @@ installed software in a non-standard prefix.
|
||||
_PKG_TEXT])[]dnl
|
||||
])
|
||||
elif test $pkg_failed = untried; then
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_RESULT([no])
|
||||
m4_default([$4], [AC_MSG_FAILURE(
|
||||
[The pkg-config script could not be found or is too old. Make sure it
|
||||
is in your PATH or set the PKG_CONFIG environment variable to the full
|
||||
@@ -289,6 +289,7 @@ AS_VAR_IF([$1], [""], [$5], [$4])dnl
|
||||
])dnl PKG_CHECK_VAR
|
||||
|
||||
m4_include([m4/ax_check_openssl.m4])
|
||||
m4_include([m4/ax_pthread.m4])
|
||||
m4_include([m4/libtool.m4])
|
||||
m4_include([m4/ltoptions.m4])
|
||||
m4_include([m4/ltsugar.m4])
|
||||
|
||||
@@ -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; done
|
||||
for m in ${MANPAGES}; do ${INSTALL_DATA} ${srcdir}/$$m ${DESTDIR}${mandir}/man8 || exit 1; 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 ; done
|
||||
for m in ${MANPAGES}; do rm -f ${DESTDIR}${mandir}/man8/$$m || exit 1; 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@
|
||||
|
||||
+1
-22
@@ -62,14 +62,6 @@
|
||||
#define CHECK_LOCAL 1
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ADDRINFO
|
||||
#ifdef HAVE_GETADDRINFO
|
||||
#ifdef HAVE_GAISTRERROR
|
||||
#define USE_GETADDRINFO
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define CHECK(r) \
|
||||
do { \
|
||||
result = (r); \
|
||||
@@ -177,7 +169,6 @@ static bool
|
||||
checkns(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner,
|
||||
dns_rdataset_t *a, dns_rdataset_t *aaaa)
|
||||
{
|
||||
#ifdef USE_GETADDRINFO
|
||||
dns_rdataset_t *rdataset;
|
||||
dns_rdata_t rdata = DNS_RDATA_INIT;
|
||||
struct addrinfo hints, *ai, *cur;
|
||||
@@ -373,14 +364,10 @@ checkns(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner,
|
||||
}
|
||||
freeaddrinfo(ai);
|
||||
return (answer);
|
||||
#else
|
||||
return (true);
|
||||
#endif
|
||||
}
|
||||
|
||||
static bool
|
||||
checkmx(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner) {
|
||||
#ifdef USE_GETADDRINFO
|
||||
struct addrinfo hints, *ai, *cur;
|
||||
char namebuf[DNS_NAME_FORMATSIZE + 1];
|
||||
char ownerbuf[DNS_NAME_FORMATSIZE];
|
||||
@@ -459,14 +446,10 @@ checkmx(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner) {
|
||||
}
|
||||
return (true);
|
||||
}
|
||||
#else
|
||||
return (true);
|
||||
#endif
|
||||
}
|
||||
|
||||
static bool
|
||||
checksrv(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner) {
|
||||
#ifdef USE_GETADDRINFO
|
||||
struct addrinfo hints, *ai, *cur;
|
||||
char namebuf[DNS_NAME_FORMATSIZE + 1];
|
||||
char ownerbuf[DNS_NAME_FORMATSIZE];
|
||||
@@ -544,9 +527,6 @@ checksrv(dns_zone_t *zone, const dns_name_t *name, const dns_name_t *owner) {
|
||||
}
|
||||
return (true);
|
||||
}
|
||||
#else
|
||||
return (true);
|
||||
#endif
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
@@ -711,7 +691,7 @@ load_zone(isc_mem_t *mctx, const char *zonename, const char *filename,
|
||||
if (dochecksrv)
|
||||
dns_zone_setchecksrv(zone, checksrv);
|
||||
|
||||
CHECK(dns_zone_load(zone));
|
||||
CHECK(dns_zone_load(zone, false));
|
||||
|
||||
/*
|
||||
* When loading map files we can't catch oversize TTLs during
|
||||
@@ -791,4 +771,3 @@ DestroySockets(void) {
|
||||
WSACleanup();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\isccc\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);..\..\..\lib\ns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>checktool.lib;libisc.lib;libdns.lib;libisccfg.lib;libisccc.lib;libbind9.lib;libns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@checktool.lib;libisc.lib;libdns.lib;libisccfg.lib;libisccc.lib;libbind9.lib;libns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
|
||||
@@ -99,7 +99,7 @@
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\isccc\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);..\..\..\lib\ns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>checktool.lib;libisc.lib;libdns.lib;libisccfg.lib;libisccc.lib;libbind9.lib;libns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@checktool.lib;libisc.lib;libdns.lib;libisccfg.lib;libisccc.lib;libbind9.lib;libns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);..\..\..\lib\ns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>checktool.lib;libisc.lib;libdns.lib;libisccfg.lib;libbind9.lib;libns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@checktool.lib;libisc.lib;libdns.lib;libisccfg.lib;libbind9.lib;libns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>cd ..\..\..\Build\$(Configuration)
|
||||
@@ -105,7 +105,7 @@ copy /Y named-checkzone.ilk named-compilezone.ilk
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);..\..\..\lib\ns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>checktool.lib;libisc.lib;libdns.lib;libisccfg.lib;libbind9.lib;libns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@checktool.lib;libisc.lib;libdns.lib;libisccfg.lib;libbind9.lib;libns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/file.h>
|
||||
#include <isc/keyboard.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/net.h>
|
||||
#include <isc/print.h>
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
#include <isc/base64.h>
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/file.h>
|
||||
#include <isc/keyboard.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/print.h>
|
||||
#include <isc/result.h>
|
||||
@@ -192,4 +191,3 @@ write_key_file(const char *keyfile, const char *user,
|
||||
fatal("fclose(%s) failed\n", keyfile);
|
||||
fprintf(stderr, "wrote key file \"%s\"\n", keyfile);
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/file.h>
|
||||
#include <isc/keyboard.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/net.h>
|
||||
#include <isc/print.h>
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\isccc\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>confgentool.lib;libisc.lib;libdns.lib;libisccfg.lib;libisccc.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@confgentool.lib;libisc.lib;libdns.lib;libisccfg.lib;libisccc.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>cd ..\..\..\Build\$(Configuration)
|
||||
@@ -106,7 +106,7 @@ copy /Y ddns-confgen.ilk tsig-keygen.ilk
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\isccc\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>confgentool.lib;libisc.lib;libdns.lib;libisccfg.lib;libisccc.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@confgentool.lib;libisc.lib;libdns.lib;libisccfg.lib;libisccc.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>cd ..\..\..\Build\$(Configuration)
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\isccc\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>confgentool.lib;libisc.lib;libdns.lib;libisccfg.lib;libisccc.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@confgentool.lib;libisc.lib;libdns.lib;libisccfg.lib;libisccc.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
|
||||
@@ -100,7 +100,7 @@
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\isccc\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>confgentool.lib;libisc.lib;libdns.lib;libisccfg.lib;libisccc.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@confgentool.lib;libisc.lib;libdns.lib;libisccfg.lib;libisccc.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\irs\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@libisc.lib;libdns.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
|
||||
@@ -98,7 +98,7 @@
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\irs\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@libisc.lib;libdns.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
+3
-3
@@ -101,12 +101,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; \
|
||||
done
|
||||
${INSTALL_DATA} ${srcdir}/$$m ${DESTDIR}${mandir}/man1 || exit 1; \
|
||||
done
|
||||
|
||||
uninstall::
|
||||
for m in ${MANPAGES}; do \
|
||||
rm -f ${DESTDIR}${mandir}/man1/$$m ; \
|
||||
rm -f ${DESTDIR}${mandir}/man1/$$m || exit 1; \
|
||||
done
|
||||
${LIBTOOL_MODE_UNINSTALL} rm -f ${DESTDIR}${bindir}/nslookup@EXEEXT@
|
||||
${LIBTOOL_MODE_UNINSTALL} rm -f ${DESTDIR}${bindir}/host@EXEEXT@
|
||||
|
||||
+1
-1
@@ -1008,7 +1008,7 @@ plus_option(char *option, bool is_batchfile,
|
||||
code = NULL;
|
||||
if (value != NULL) {
|
||||
code = strtok_r(value,
|
||||
":",
|
||||
":",
|
||||
&last);
|
||||
}
|
||||
if (code == NULL) {
|
||||
|
||||
+3
-1
@@ -1330,7 +1330,9 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
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>.
|
||||
<parameter>+noidnout</parameter> or define
|
||||
the <envar>IDN_DISABLE</envar> environment variable.
|
||||
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
|
||||
+3
-2
@@ -628,8 +628,8 @@ make_empty_lookup(void) {
|
||||
looknew->ttlunits = false;
|
||||
looknew->qr = false;
|
||||
#ifdef HAVE_LIBIDN2
|
||||
looknew->idnin = true;
|
||||
looknew->idnout = true;
|
||||
looknew->idnin = (getenv("IDN_DISABLE") == NULL);
|
||||
looknew->idnout = looknew->idnin;
|
||||
#else
|
||||
looknew->idnin = false;
|
||||
looknew->idnout = false;
|
||||
@@ -3202,6 +3202,7 @@ connect_done(isc_task_t *task, isc_event_t *event) {
|
||||
UNLOCK_LOOKUP;
|
||||
return;
|
||||
}
|
||||
exitcode = 0;
|
||||
if (keep_open) {
|
||||
if (keep != NULL)
|
||||
isc_socket_detach(&keep);
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
#include <isc/string.h>
|
||||
#include <isc/util.h>
|
||||
#include <isc/task.h>
|
||||
#include <isc/stdlib.h>
|
||||
|
||||
#include <dns/byaddr.h>
|
||||
#include <dns/fixedname.h>
|
||||
|
||||
@@ -389,7 +389,7 @@
|
||||
<command>host</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, defines
|
||||
If you'd like to turn off the IDN support for some reason, define
|
||||
the <envar>IDN_DISABLE</envar> environment variable.
|
||||
The IDN support is disabled if the variable is set when
|
||||
<command>host</command> runs.
|
||||
|
||||
@@ -478,6 +478,21 @@ nslookup -query=hinfo -timeout=10
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsection><info><title>IDN SUPPORT</title></info>
|
||||
|
||||
<para>
|
||||
If <command>nslookup</command> has been built with IDN (internationalized
|
||||
domain name) support, it can accept and display non-ASCII domain names.
|
||||
<command>nslookup</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, define
|
||||
the <envar>IDN_DISABLE</envar> environment variable.
|
||||
The IDN support is disabled if the variable is set when
|
||||
<command>nslookup</command> runs.
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsection><info><title>FILES</title></info>
|
||||
|
||||
<para><filename>/etc/resolv.conf</filename>
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\irs\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>dighost.lib;libisc.lib;libisccfg.lib;libirs.lib;libdns.lib;libbind9.lib;@IDN_LIB@ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dighost.lib;libisc.lib;libisccfg.lib;libirs.lib;libdns.lib;libbind9.lib;@IDN_LIB@ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
|
||||
@@ -98,7 +98,7 @@
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\irs\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>dighost.lib;libisc.lib;libisccfg.lib;libirs.lib;libdns.lib;libbind9.lib;@IDN_LIB@ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dighost.lib;libisc.lib;libisccfg.lib;libirs.lib;libdns.lib;libbind9.lib;@IDN_LIB@ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\irs\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>dighost.lib;@IDN_LIB@libisc.lib;libisccfg.lib;libirs.lib;libdns.lib;libbind9.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dighost.lib;@IDN_LIB@libisc.lib;libisccfg.lib;libirs.lib;libdns.lib;libbind9.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
|
||||
@@ -98,7 +98,7 @@
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\irs\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>dighost.lib;@IDN_LIB@libisc.lib;libisccfg.lib;libirs.lib;libdns.lib;libbind9.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dighost.lib;@IDN_LIB@libisc.lib;libisccfg.lib;libirs.lib;libdns.lib;libbind9.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\irs\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>@READLINE_LIBD@@IDN_LIB@libisc.lib;libisccfg.lib;libirs.lib;libdns.lib;libbind9.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@@READLINE_LIBD@@IDN_LIB@libisc.lib;libisccfg.lib;libirs.lib;libdns.lib;libbind9.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
|
||||
@@ -98,7 +98,7 @@
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\irs\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>@READLINE_LIB@@IDN_LIB@libisc.lib;libisccfg.lib;libirs.lib;libdns.lib;libbind9.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@@READLINE_LIB@@IDN_LIB@libisc.lib;libisccfg.lib;libirs.lib;libdns.lib;libbind9.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -115,12 +115,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}; done
|
||||
for m in ${MANPAGES}; do ${INSTALL_DATA} ${srcdir}/$$m ${DESTDIR}${mandir}/man8; done
|
||||
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
|
||||
|
||||
uninstall::
|
||||
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
|
||||
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
|
||||
|
||||
clean distclean::
|
||||
rm -f ${TARGETS}
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
#include "dnssectool.h"
|
||||
|
||||
#ifndef PATH_MAX
|
||||
#define PATH_MAX 1024 /* AIX, WIN32, and others don't define this. */
|
||||
#define PATH_MAX 1024 /* WIN32, and others don't define this. */
|
||||
#endif
|
||||
|
||||
const char *program = "dnssec-cds";
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
#include "dnssectool.h"
|
||||
|
||||
#ifndef PATH_MAX
|
||||
#define PATH_MAX 1024 /* AIX, WIN32, and others don't define this. */
|
||||
#define PATH_MAX 1024 /* WIN32, and others don't define this. */
|
||||
#endif
|
||||
|
||||
const char *program = "dnssec-dsfromkey";
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
#include "dnssectool.h"
|
||||
|
||||
#ifndef PATH_MAX
|
||||
#define PATH_MAX 1024 /* AIX, WIN32, and others don't define this. */
|
||||
#define PATH_MAX 1024 /* WIN32, and others don't define this. */
|
||||
#endif
|
||||
|
||||
const char *program = "dnssec-importkey";
|
||||
|
||||
@@ -64,8 +64,8 @@ usage(void) {
|
||||
fprintf(stderr, " name: owner of the key\n");
|
||||
fprintf(stderr, "Other options:\n");
|
||||
fprintf(stderr, " -a algorithm: \n"
|
||||
" RSA | RSAMD5 | DH | DSA | RSASHA1 |\n"
|
||||
" NSEC3DSA | NSEC3RSASHA1 |\n"
|
||||
" RSA | RSAMD5 | DH | RSASHA1 |\n"
|
||||
" NSEC3RSASHA1 |\n"
|
||||
" RSASHA256 | RSASHA512 |\n"
|
||||
" ECDSAP256SHA256 | ECDSAP384SHA384\n");
|
||||
fprintf(stderr, " -3: use NSEC3-capable algorithm\n");
|
||||
@@ -402,13 +402,9 @@ main(int argc, char **argv) {
|
||||
|
||||
if (use_nsec3) {
|
||||
switch (alg) {
|
||||
case DST_ALG_DSA:
|
||||
alg = DST_ALG_NSEC3DSA;
|
||||
break;
|
||||
case DST_ALG_RSASHA1:
|
||||
alg = DST_ALG_NSEC3RSASHA1;
|
||||
break;
|
||||
case DST_ALG_NSEC3DSA:
|
||||
case DST_ALG_NSEC3RSASHA1:
|
||||
case DST_ALG_RSASHA256:
|
||||
case DST_ALG_RSASHA512:
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
<para>
|
||||
Selects the cryptographic algorithm. The value of
|
||||
<option>algorithm</option> must be one of RSAMD5, RSASHA1,
|
||||
DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512,
|
||||
NSEC3RSASHA1, RSASHA256, RSASHA512,
|
||||
ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448.
|
||||
</para>
|
||||
<para>
|
||||
@@ -119,9 +119,9 @@
|
||||
<para>
|
||||
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
|
||||
ECDSA384 for ECDSAP384SHA384. If RSASHA1 is specified
|
||||
along with the <option>-3</option> option, then NSEC3RSASHA1
|
||||
or NSEC3DSA will be used instead.
|
||||
will be used instead.
|
||||
</para>
|
||||
<para>
|
||||
As of BIND 9.12.0, this option is mandatory except when using
|
||||
|
||||
@@ -79,8 +79,8 @@ usage(void) {
|
||||
fprintf(stderr, "Options:\n");
|
||||
fprintf(stderr, " -K <directory>: write keys into directory\n");
|
||||
fprintf(stderr, " -a <algorithm>:\n");
|
||||
fprintf(stderr, " RSA | RSAMD5 | DSA | RSASHA1 | NSEC3RSASHA1"
|
||||
" | NSEC3DSA |\n");
|
||||
fprintf(stderr, " RSA | RSAMD5 | RSASHA1 | NSEC3RSASHA1"
|
||||
" |\n");
|
||||
fprintf(stderr, " RSASHA256 | RSASHA512 |\n");
|
||||
fprintf(stderr, " ECDSAP256SHA256 | ECDSAP384SHA384 |\n");
|
||||
fprintf(stderr, " ED25519 | ED448 | DH\n");
|
||||
@@ -92,10 +92,6 @@ usage(void) {
|
||||
fprintf(stderr, " RSASHA256:\t[1024..%d]\n", MAX_RSA);
|
||||
fprintf(stderr, " RSASHA512:\t[1024..%d]\n", MAX_RSA);
|
||||
fprintf(stderr, " DH:\t\t[128..4096]\n");
|
||||
fprintf(stderr, " DSA:\t\t[512..1024] and divisible by 64\n");
|
||||
fprintf(stderr, " NSEC3DSA:\t[512..1024] and divisible "
|
||||
"by 64\n");
|
||||
fprintf(stderr, " ECCGOST:\tignored\n");
|
||||
fprintf(stderr, " ECDSAP256SHA256:\tignored\n");
|
||||
fprintf(stderr, " ECDSAP384SHA384:\tignored\n");
|
||||
fprintf(stderr, " ED25519:\tignored\n");
|
||||
@@ -161,11 +157,6 @@ usage(void) {
|
||||
exit (-1);
|
||||
}
|
||||
|
||||
static bool
|
||||
dsa_size_ok(int size) {
|
||||
return (size >= 512 && size <= 1024 && size % 64 == 0);
|
||||
}
|
||||
|
||||
static void
|
||||
progress(int p)
|
||||
{
|
||||
@@ -308,7 +299,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]);
|
||||
@@ -542,17 +533,12 @@ main(int argc, char **argv) {
|
||||
|
||||
if (use_nsec3) {
|
||||
switch (alg) {
|
||||
case DST_ALG_DSA:
|
||||
alg = DST_ALG_NSEC3DSA;
|
||||
break;
|
||||
case DST_ALG_RSASHA1:
|
||||
alg = DST_ALG_NSEC3RSASHA1;
|
||||
break;
|
||||
case DST_ALG_NSEC3DSA:
|
||||
case DST_ALG_NSEC3RSASHA1:
|
||||
case DST_ALG_RSASHA256:
|
||||
case DST_ALG_RSASHA512:
|
||||
case DST_ALG_ECCGOST:
|
||||
case DST_ALG_ECDSA256:
|
||||
case DST_ALG_ECDSA384:
|
||||
case DST_ALG_ED25519:
|
||||
@@ -598,7 +584,6 @@ main(int argc, char **argv) {
|
||||
" to %d\n", size);
|
||||
}
|
||||
break;
|
||||
case DST_ALG_ECCGOST:
|
||||
case DST_ALG_ECDSA256:
|
||||
case DST_ALG_ECDSA384:
|
||||
case DST_ALG_ED25519:
|
||||
@@ -728,14 +713,6 @@ main(int argc, char **argv) {
|
||||
if (size != 0 && (size < 128 || size > 4096))
|
||||
fatal("DH key size %d out of range", size);
|
||||
break;
|
||||
case DNS_KEYALG_DSA:
|
||||
case DNS_KEYALG_NSEC3DSA:
|
||||
if (size != 0 && !dsa_size_ok(size))
|
||||
fatal("invalid DSS key size: %d", size);
|
||||
break;
|
||||
case DST_ALG_ECCGOST:
|
||||
size = 256;
|
||||
break;
|
||||
case DST_ALG_ECDSA256:
|
||||
size = 256;
|
||||
break;
|
||||
@@ -815,9 +792,6 @@ main(int argc, char **argv) {
|
||||
param = generator;
|
||||
break;
|
||||
|
||||
case DNS_KEYALG_DSA:
|
||||
case DNS_KEYALG_NSEC3DSA:
|
||||
case DST_ALG_ECCGOST:
|
||||
case DST_ALG_ECDSA256:
|
||||
case DST_ALG_ECDSA384:
|
||||
case DST_ALG_ED25519:
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
<para>
|
||||
Selects the cryptographic algorithm. For DNSSEC keys, the value
|
||||
of <option>algorithm</option> must be one of RSAMD5, RSASHA1,
|
||||
DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512,
|
||||
NSEC3RSASHA1, RSASHA256, RSASHA512,
|
||||
ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448. For
|
||||
TKEY, the value must be DH (Diffie Hellman); specifying
|
||||
his value will automatically set the <option>-T KEY</option>
|
||||
@@ -132,9 +132,9 @@
|
||||
<para>
|
||||
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
|
||||
ECDSA384 for ECDSAP384SHA384. If RSASHA1 is specified
|
||||
along with the <option>-3</option> option, then NSEC3RSASHA1
|
||||
or NSEC3DSA will be used instead.
|
||||
will be used instead.
|
||||
</para>
|
||||
<para>
|
||||
This parameter <emphasis>must</emphasis> be specified except
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
#include <isc/file.h>
|
||||
#include <isc/hash.h>
|
||||
#include <isc/hex.h>
|
||||
#include <isc/md.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/mutex.h>
|
||||
#include <isc/os.h>
|
||||
@@ -49,7 +50,6 @@
|
||||
#include <isc/serial.h>
|
||||
#include <isc/safe.h>
|
||||
#include <isc/stdio.h>
|
||||
#include <isc/stdlib.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/task.h>
|
||||
#include <isc/time.h>
|
||||
@@ -89,7 +89,7 @@
|
||||
#include "dnssectool.h"
|
||||
|
||||
#ifndef PATH_MAX
|
||||
#define PATH_MAX 1024 /* AIX, WIN32, and others don't define this. */
|
||||
#define PATH_MAX 1024 /* WIN32, and others don't define this. */
|
||||
#endif
|
||||
|
||||
const char *program = "dnssec-signzone";
|
||||
|
||||
@@ -32,7 +32,6 @@
|
||||
#include <isc/rwlock.h>
|
||||
#include <isc/serial.h>
|
||||
#include <isc/stdio.h>
|
||||
#include <isc/stdlib.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/time.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
@@ -410,7 +410,7 @@ key_collision(dst_key_t *dstkey, dns_name_t *name, const char *dir,
|
||||
uint16_t id, oldid;
|
||||
uint32_t rid, roldid;
|
||||
dns_secalg_t alg;
|
||||
char filename[ISC_DIR_NAMEMAX];
|
||||
char filename[NAME_MAX];
|
||||
isc_buffer_t fileb;
|
||||
isc_stdtime_t now;
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
@IF PYTHON
|
||||
<PostBuildEvent>
|
||||
@@ -113,7 +113,7 @@ set PYTHONPATH=.
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
@IF PYTHON
|
||||
<PostBuildEvent>
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
|
||||
@@ -100,7 +100,7 @@
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
|
||||
@@ -100,7 +100,7 @@
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalDependencies>dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -99,7 +99,7 @@
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalDependencies>dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
|
||||
@@ -100,7 +100,7 @@
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalDependencies>dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -99,7 +99,7 @@
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalDependencies>dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
|
||||
@@ -100,7 +100,7 @@
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalDependencies>dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -99,7 +99,7 @@
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalDependencies>dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@dnssectool.lib;libisc.lib;libdns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@@ -198,6 +198,25 @@
|
||||
background-color: #99ddff;
|
||||
}
|
||||
|
||||
table.zones {
|
||||
border: 1px solid grey;
|
||||
width: 500px;
|
||||
}
|
||||
table.zones th {
|
||||
text-align: center;
|
||||
border: 1px solid grey;
|
||||
}
|
||||
table.zones td {
|
||||
text-align: center;
|
||||
font-family: monospace;
|
||||
}
|
||||
table.zones td:nth-child(1) {
|
||||
text-align: right;
|
||||
}
|
||||
table.zones td:nth-child(4) {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.totals {
|
||||
background-color: rgb(1,169,206);
|
||||
color: #ffffff;
|
||||
@@ -705,6 +724,35 @@
|
||||
</table>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="views/view">
|
||||
<xsl:if test="zones/zone">
|
||||
<h3>Zones for View <xsl:value-of select="@name"/></h3>
|
||||
<table class="zones">
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Class</th>
|
||||
<th>Type</th>
|
||||
<th>Serial</th>
|
||||
</tr>
|
||||
<xsl:for-each select="zones/zone">
|
||||
<tr>
|
||||
<td>
|
||||
<xsl:value-of select="@name"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="@rdataclass"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="type"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="serial"/>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
<xsl:if test="views/view[zones/zone/counters[@type="qtype"]/counter >0]">
|
||||
<h2>Received QTYPES per view/zone</h2>
|
||||
<xsl:for-each select="views/view[zones/zone/counters[@type="qtype"]/counter >0]">
|
||||
|
||||
@@ -203,6 +203,25 @@ static char xslmsg[] =
|
||||
" background-color: #99ddff;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" table.zones {\n"
|
||||
" border: 1px solid grey;\n"
|
||||
" width: 500px;\n"
|
||||
" }\n"
|
||||
" table.zones th {\n"
|
||||
" text-align: center;\n"
|
||||
" border: 1px solid grey;\n"
|
||||
" }\n"
|
||||
" table.zones td {\n"
|
||||
" text-align: center;\n"
|
||||
" font-family: monospace;\n"
|
||||
" }\n"
|
||||
" table.zones td:nth-child(1) {\n"
|
||||
" text-align: right;\n"
|
||||
" }\n"
|
||||
" table.zones td:nth-child(4) {\n"
|
||||
" text-align: right;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" .totals {\n"
|
||||
" background-color: rgb(1,169,206);\n"
|
||||
" color: #ffffff;\n"
|
||||
@@ -710,6 +729,35 @@ static char xslmsg[] =
|
||||
" </table>\n"
|
||||
" <br/>\n"
|
||||
" </xsl:if>\n"
|
||||
" <xsl:for-each select=\"views/view\">\n"
|
||||
" <xsl:if test=\"zones/zone\">\n"
|
||||
" <h3>Zones for View <xsl:value-of select=\"@name\"/></h3>\n"
|
||||
" <table class=\"zones\">\n"
|
||||
" <tr>\n"
|
||||
" <th>Name</th>\n"
|
||||
" <th>Class</th>\n"
|
||||
" <th>Type</th>\n"
|
||||
" <th>Serial</th>\n"
|
||||
" </tr>\n"
|
||||
" <xsl:for-each select=\"zones/zone\">\n"
|
||||
" <tr>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"@name\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"@rdataclass\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"type\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"serial\"/>\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" </xsl:for-each>\n"
|
||||
" </table>\n"
|
||||
" </xsl:if>\n"
|
||||
" </xsl:for-each>\n"
|
||||
" <xsl:if test=\"views/view[zones/zone/counters[@type="qtype"]/counter >0]\">\n"
|
||||
" <h2>Received QTYPES per view/zone</h2>\n"
|
||||
" <xsl:for-each select=\"views/view[zones/zone/counters[@type="qtype"]/counter >0]\">\n"
|
||||
|
||||
+22
-4
@@ -301,6 +301,21 @@ view \"_bind\" chaos {\n\
|
||||
MANAGED_KEYS
|
||||
|
||||
"# END MANAGED KEYS\n\
|
||||
\n\
|
||||
masters " DEFAULT_IANA_ROOT_ZONE_MASTERS " {\n\
|
||||
2001:500:84::b; # b.root-servers.net\n\
|
||||
2001:500:2f::f; # f.root-servers.net\n\
|
||||
2001:7fd::1; # k.root-servers.net\n\
|
||||
2620:0:2830:202::132; # xfr.cjr.dns.icann.org\n\
|
||||
2620:0:2d0:202::132; # xfr.lax.dns.icann.org\n\
|
||||
192.228.79.201; # b.root-servers.net\n\
|
||||
192.33.4.12; # c.root-servers.net\n\
|
||||
192.5.5.241; # f.root-servers.net\n\
|
||||
192.112.36.4; # g.root-servers.net\n\
|
||||
193.0.14.129; # k.root-servers.net\n\
|
||||
192.0.47.132; # xfr.cjr.dns.icann.org\n\
|
||||
192.0.32.132; # xfr.lax.dns.icann.org\n\
|
||||
};\n\
|
||||
";
|
||||
|
||||
isc_result_t
|
||||
@@ -432,6 +447,8 @@ named_config_getzonetype(const cfg_obj_t *zonetypeobj) {
|
||||
strcasecmp(str, "slave") == 0)
|
||||
{
|
||||
ztype = dns_zone_slave;
|
||||
} else if (strcasecmp(str, "mirror") == 0) {
|
||||
ztype = dns_zone_mirror;
|
||||
} else if (strcasecmp(str, "stub") == 0) {
|
||||
ztype = dns_zone_stub;
|
||||
} else if (strcasecmp(str, "static-stub") == 0) {
|
||||
@@ -553,9 +570,9 @@ named_config_putiplist(isc_mem_t *mctx, isc_sockaddr_t **addrsp,
|
||||
}
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
get_masters_def(const cfg_obj_t *cctx, const char *name,
|
||||
const cfg_obj_t **ret)
|
||||
isc_result_t
|
||||
named_config_getmastersdef(const cfg_obj_t *cctx, const char *name,
|
||||
const cfg_obj_t **ret)
|
||||
{
|
||||
isc_result_t result;
|
||||
const cfg_obj_t *masters = NULL;
|
||||
@@ -697,7 +714,8 @@ named_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
break;
|
||||
if (j < l)
|
||||
continue;
|
||||
tresult = get_masters_def(config, listname, &list);
|
||||
tresult = named_config_getmastersdef(config, listname,
|
||||
&list);
|
||||
if (tresult == ISC_R_NOTFOUND) {
|
||||
cfg_obj_log(addr, named_g_lctx, ISC_LOG_ERROR,
|
||||
"masters \"%s\" not found", listname);
|
||||
|
||||
+11
-9
@@ -9,7 +9,7 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include <config.h>
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
@@ -36,10 +36,6 @@
|
||||
#include <unistd.h>
|
||||
#include <pthread.h>
|
||||
|
||||
#ifndef __AFL_LOOP
|
||||
#error To use American Fuzzy Lop you have to set CC to afl-clang-fast!!!
|
||||
#endif
|
||||
|
||||
/*
|
||||
* We are using pthreads directly because we might be using it with
|
||||
* unthreaded version of BIND, where all thread functions are
|
||||
@@ -61,7 +57,6 @@ fuzz_thread_client(void *arg) {
|
||||
char *port;
|
||||
struct sockaddr_in servaddr;
|
||||
int sockfd;
|
||||
int loop;
|
||||
void *buf;
|
||||
|
||||
UNUSED(arg);
|
||||
@@ -103,14 +98,18 @@ fuzz_thread_client(void *arg) {
|
||||
* Processing fuzzed packets 100,000 times before shutting down
|
||||
* the app.
|
||||
*/
|
||||
for (loop = 0; loop < 100000; loop++) {
|
||||
#ifdef __AFL_LOOP
|
||||
for (int loop = 0; loop < 100000; loop++) {
|
||||
#else
|
||||
{
|
||||
#endif
|
||||
ssize_t length;
|
||||
ssize_t sent;
|
||||
|
||||
length = read(0, buf, 65536);
|
||||
if (length <= 0) {
|
||||
usleep(1000000);
|
||||
continue;
|
||||
goto next;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -130,7 +129,7 @@ fuzz_thread_client(void *arg) {
|
||||
return (NULL);
|
||||
}
|
||||
raise(SIGSTOP);
|
||||
continue;
|
||||
goto next;
|
||||
}
|
||||
|
||||
RUNTIME_CHECK(pthread_mutex_lock(&mutex) == 0);
|
||||
@@ -151,6 +150,7 @@ fuzz_thread_client(void *arg) {
|
||||
pthread_cond_wait(&cond, &mutex);
|
||||
|
||||
RUNTIME_CHECK(pthread_mutex_unlock(&mutex) == 0);
|
||||
next: ;
|
||||
}
|
||||
|
||||
free(buf);
|
||||
@@ -586,6 +586,7 @@ fuzz_thread_resolver(void *arg) {
|
||||
named_server_flushonshutdown(named_g_server, false);
|
||||
isc_app_shutdown();
|
||||
|
||||
#ifdef __AFL_LOOP
|
||||
/*
|
||||
* This is here just for the signature, that's how AFL detects
|
||||
* if it's a 'persistent mode' binary. It has to occur somewhere
|
||||
@@ -594,6 +595,7 @@ fuzz_thread_resolver(void *arg) {
|
||||
* in persistent mode if it's present.
|
||||
*/
|
||||
__AFL_LOOP(0);
|
||||
#endif
|
||||
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
#include <dns/types.h>
|
||||
#include <dns/zone.h>
|
||||
|
||||
#define DEFAULT_IANA_ROOT_ZONE_MASTERS "_default_iana_root_zone_masters"
|
||||
|
||||
isc_result_t
|
||||
named_config_parsedefaults(cfg_parser_t *parser, cfg_obj_t **conf);
|
||||
|
||||
@@ -57,6 +59,10 @@ void
|
||||
named_config_putiplist(isc_mem_t *mctx, isc_sockaddr_t **addrsp,
|
||||
isc_dscp_t **dscpsp, uint32_t count);
|
||||
|
||||
isc_result_t
|
||||
named_config_getmastersdef(const cfg_obj_t *cctx, const char *name,
|
||||
const cfg_obj_t **ret);
|
||||
|
||||
isc_result_t
|
||||
named_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
isc_mem_t *mctx, dns_ipkeylist_t *ipkl);
|
||||
|
||||
+40
-34
@@ -110,8 +110,8 @@ 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 char program_name[ISC_DIR_NAMEMAX] = "named";
|
||||
static char absolute_conffile[ISC_DIR_PATHMAX];
|
||||
static char program_name[NAME_MAX] = "named";
|
||||
static char absolute_conffile[PATH_MAX];
|
||||
static char saved_command_line[512];
|
||||
static char version[512];
|
||||
static unsigned int maxsocks = 0;
|
||||
@@ -122,14 +122,17 @@ static int maxudp = 0;
|
||||
*/
|
||||
static bool clienttest = false;
|
||||
static bool dropedns = false;
|
||||
static bool noedns = false;
|
||||
static bool nosoa = false;
|
||||
static bool noaa = false;
|
||||
static unsigned int delay = 0;
|
||||
static bool nonearest = false;
|
||||
static bool notcp = false;
|
||||
static bool ednsformerr = false;
|
||||
static bool ednsnotimp = false;
|
||||
static bool ednsrefused = false;
|
||||
static bool fixedlocal = false;
|
||||
static bool noaa = false;
|
||||
static bool noedns = false;
|
||||
static bool nonearest = false;
|
||||
static bool nosoa = false;
|
||||
static bool notcp = false;
|
||||
static bool sigvalinsecs = false;
|
||||
static unsigned int delay = 0;
|
||||
|
||||
/*
|
||||
* -4 and -6
|
||||
@@ -488,6 +491,12 @@ parse_T_opt(char *option) {
|
||||
dropedns = true;
|
||||
} else if (!strncmp(option, "dscp=", 5)) {
|
||||
isc_dscp_check_value = atoi(option + 5);
|
||||
} else if (!strcmp(option, "ednsformerr")) {
|
||||
ednsformerr = true;
|
||||
} else if (!strcmp(option, "ednsnotimp")) {
|
||||
ednsnotimp = true;
|
||||
} else if (!strcmp(option, "ednsrefused")) {
|
||||
ednsrefused = true;
|
||||
} else if (!strcmp(option, "fixedlocal")) {
|
||||
fixedlocal = true;
|
||||
} else if (!strcmp(option, "keepstderr")) {
|
||||
@@ -547,7 +556,7 @@ parse_T_opt(char *option) {
|
||||
} else if (!strncmp(option, "tat=", 4)) {
|
||||
named_g_tat_interval = atoi(option + 4);
|
||||
} else {
|
||||
fprintf(stderr, "unknown -T flag '%s\n", option);
|
||||
fprintf(stderr, "unknown -T flag '%s'\n", option);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -773,7 +782,7 @@ create_managers(void) {
|
||||
INSIST(named_g_cpus_detected > 0);
|
||||
|
||||
if (named_g_cpus == 0)
|
||||
named_g_cpus = named_g_cpus_detected * 1.5;
|
||||
named_g_cpus = named_g_cpus_detected;
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_SERVER, ISC_LOG_INFO,
|
||||
"found %u CPU%s, using %u worker thread%s",
|
||||
@@ -787,7 +796,7 @@ create_managers(void) {
|
||||
if (named_g_cpus_detected == 1)
|
||||
named_g_udpdisp = 1;
|
||||
else
|
||||
named_g_udpdisp = named_g_cpus_detected;
|
||||
named_g_udpdisp = named_g_cpus_detected - 1;
|
||||
}
|
||||
if (named_g_udpdisp > named_g_cpus)
|
||||
named_g_udpdisp = named_g_cpus;
|
||||
@@ -994,7 +1003,6 @@ setup(void) {
|
||||
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",
|
||||
@@ -1011,7 +1019,6 @@ setup(void) {
|
||||
"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,
|
||||
@@ -1037,10 +1044,6 @@ setup(void) {
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"linked to zlib version: %s", zlibVersion());
|
||||
#endif
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"threads support is enabled");
|
||||
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"----------------------------------------------------");
|
||||
@@ -1155,24 +1158,30 @@ setup(void) {
|
||||
*/
|
||||
if (clienttest)
|
||||
ns_server_setoption(sctx, NS_SERVER_CLIENTTEST, true);
|
||||
if (dropedns)
|
||||
ns_server_setoption(sctx, NS_SERVER_DROPEDNS, true);
|
||||
if (noedns)
|
||||
ns_server_setoption(sctx, NS_SERVER_NOEDNS, true);
|
||||
if (nosoa)
|
||||
ns_server_setoption(sctx, NS_SERVER_NOSOA, true);
|
||||
if (noaa)
|
||||
ns_server_setoption(sctx, NS_SERVER_NOAA, true);
|
||||
if (nonearest)
|
||||
ns_server_setoption(sctx, NS_SERVER_NONEAREST, true);
|
||||
if (notcp)
|
||||
ns_server_setoption(sctx, NS_SERVER_NOTCP, true);
|
||||
if (fixedlocal)
|
||||
ns_server_setoption(sctx, NS_SERVER_FIXEDLOCAL, true);
|
||||
if (disable4)
|
||||
ns_server_setoption(sctx, NS_SERVER_DISABLE4, true);
|
||||
if (disable6)
|
||||
ns_server_setoption(sctx, NS_SERVER_DISABLE6, true);
|
||||
if (dropedns)
|
||||
ns_server_setoption(sctx, NS_SERVER_DROPEDNS, true);
|
||||
if (ednsformerr) /* STD13 server */
|
||||
ns_server_setoption(sctx, NS_SERVER_EDNSFORMERR, true);
|
||||
if (ednsnotimp)
|
||||
ns_server_setoption(sctx, NS_SERVER_EDNSNOTIMP, true);
|
||||
if (ednsrefused)
|
||||
ns_server_setoption(sctx, NS_SERVER_EDNSREFUSED, true);
|
||||
if (fixedlocal)
|
||||
ns_server_setoption(sctx, NS_SERVER_FIXEDLOCAL, true);
|
||||
if (noaa)
|
||||
ns_server_setoption(sctx, NS_SERVER_NOAA, true);
|
||||
if (noedns)
|
||||
ns_server_setoption(sctx, NS_SERVER_NOEDNS, true);
|
||||
if (nonearest)
|
||||
ns_server_setoption(sctx, NS_SERVER_NONEAREST, true);
|
||||
if (nosoa)
|
||||
ns_server_setoption(sctx, NS_SERVER_NOSOA, true);
|
||||
if (notcp)
|
||||
ns_server_setoption(sctx, NS_SERVER_NOTCP, true);
|
||||
if (sigvalinsecs)
|
||||
ns_server_setoption(sctx, NS_SERVER_SIGVALINSECS, true);
|
||||
|
||||
@@ -1326,9 +1335,6 @@ main(int argc, char *argv[]) {
|
||||
if (result != ISC_R_SUCCESS)
|
||||
named_main_earlyfatal("program name too long");
|
||||
|
||||
if (result != ISC_R_SUCCESS)
|
||||
named_main_earlyfatal("failed to build internal symbol table");
|
||||
|
||||
isc_assertion_setcallback(assertion_failed);
|
||||
isc_error_setfatal(library_fatal_error);
|
||||
isc_error_setunexpected(library_unexpected_error);
|
||||
|
||||
+30
-33
@@ -10,12 +10,12 @@
|
||||
.\" Title: named.conf
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
|
||||
.\" Date: 2018-05-29
|
||||
.\" Date: 2018-06-21
|
||||
.\" Manual: BIND9
|
||||
.\" Source: ISC
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NAMED\&.CONF" "5" "2018\-05\-29" "ISC" "BIND9"
|
||||
.TH "NAMED\&.CONF" "5" "2018\-06\-21" "ISC" "BIND9"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
@@ -231,9 +231,9 @@ options {
|
||||
coresize ( default | unlimited | \fIsizeval\fR );
|
||||
datasize ( default | unlimited | \fIsizeval\fR );
|
||||
deny\-answer\-addresses { \fIaddress_match_element\fR; \&.\&.\&. } [
|
||||
except\-from { \fIquoted_string\fR; \&.\&.\&. } ];
|
||||
deny\-answer\-aliases { \fIquoted_string\fR; \&.\&.\&. } [ except\-from {
|
||||
\fIquoted_string\fR; \&.\&.\&. } ];
|
||||
except\-from { \fIstring\fR; \&.\&.\&. } ];
|
||||
deny\-answer\-aliases { \fIstring\fR; \&.\&.\&. } [ except\-from { \fIstring\fR; \&.\&.\&.
|
||||
} ];
|
||||
dialup ( notify | notify\-passive | passive | refresh | \fIboolean\fR );
|
||||
directory \fIquoted_string\fR;
|
||||
disable\-algorithms \fIstring\fR { \fIstring\fR;
|
||||
@@ -264,14 +264,12 @@ options {
|
||||
dnssec\-secure\-to\-insecure \fIboolean\fR;
|
||||
dnssec\-update\-mode ( maintain | no\-resign );
|
||||
dnssec\-validation ( yes | no | auto );
|
||||
dnstap { ( all | auth | client | forwarder |
|
||||
resolver ) [ ( query | response ) ]; \&.\&.\&. };
|
||||
dnstap\-identity ( \fIquoted_string\fR | none |
|
||||
hostname );
|
||||
dnstap\-output ( file | unix ) \fIquoted_string\fR [
|
||||
size ( unlimited | \fIsize\fR ) ] [ versions (
|
||||
unlimited | \fIinteger\fR ) ] [ suffix ( increment
|
||||
| timestamp ) ];
|
||||
dnstap { ( all | auth | client | forwarder | resolver ) [ ( query |
|
||||
response ) ]; \&.\&.\&. };
|
||||
dnstap\-identity ( \fIquoted_string\fR | none | hostname );
|
||||
dnstap\-output ( file | unix ) \fIquoted_string\fR [ size ( unlimited |
|
||||
\fIsize\fR ) ] [ versions ( unlimited | \fIinteger\fR ) ] [ suffix (
|
||||
increment | timestamp ) ];
|
||||
dnstap\-version ( \fIquoted_string\fR | none );
|
||||
dscp \fIinteger\fR;
|
||||
dual\-stack\-servers [ port \fIinteger\fR ] { ( \fIquoted_string\fR [ port
|
||||
@@ -369,7 +367,7 @@ options {
|
||||
preferred\-glue \fIstring\fR;
|
||||
prefetch \fIinteger\fR [ \fIinteger\fR ];
|
||||
provide\-ixfr \fIboolean\fR;
|
||||
qname\-minimization ( strict | relaxed | disabled );
|
||||
qname\-minimization ( strict | relaxed | disabled | off );
|
||||
query\-source ( ( [ address ] ( \fIipv4_address\fR | * ) [ port (
|
||||
\fIinteger\fR | * ) ] ) | ( [ [ address ] ( \fIipv4_address\fR | * ) ]
|
||||
port ( \fIinteger\fR | * ) ) ) [ dscp \fIinteger\fR ];
|
||||
@@ -420,7 +418,7 @@ options {
|
||||
nsip\-enable \fIboolean\fR ] [ nsdname\-enable \fIboolean\fR ] [
|
||||
dnsrps\-enable \fIboolean\fR ] [ dnsrps\-options { \fIunspecified\-text\fR
|
||||
} ];
|
||||
root\-delegation\-only [ exclude { \fIquoted_string\fR; \&.\&.\&. } ];
|
||||
root\-delegation\-only [ exclude { \fIstring\fR; \&.\&.\&. } ];
|
||||
root\-key\-sentinel \fIboolean\fR;
|
||||
rrset\-order { [ class \fIstring\fR ] [ type \fIstring\fR ] [ name
|
||||
\fIquoted_string\fR ] \fIstring\fR \fIstring\fR; \&.\&.\&. };
|
||||
@@ -470,6 +468,7 @@ options {
|
||||
use\-v4\-udp\-ports { \fIportrange\fR; \&.\&.\&. };
|
||||
use\-v6\-udp\-ports { \fIportrange\fR; \&.\&.\&. };
|
||||
v6\-bias \fIinteger\fR;
|
||||
validate\-except { \fIstring\fR; \&.\&.\&. };
|
||||
version ( \fIquoted_string\fR | none );
|
||||
zero\-no\-soa\-ttl \fIboolean\fR;
|
||||
zero\-no\-soa\-ttl\-cache \fIboolean\fR;
|
||||
@@ -597,9 +596,9 @@ view \fIstring\fR [ \fIclass\fR ] {
|
||||
cleaning\-interval \fIinteger\fR;
|
||||
clients\-per\-query \fIinteger\fR;
|
||||
deny\-answer\-addresses { \fIaddress_match_element\fR; \&.\&.\&. } [
|
||||
except\-from { \fIquoted_string\fR; \&.\&.\&. } ];
|
||||
deny\-answer\-aliases { \fIquoted_string\fR; \&.\&.\&. } [ except\-from {
|
||||
\fIquoted_string\fR; \&.\&.\&. } ];
|
||||
except\-from { \fIstring\fR; \&.\&.\&. } ];
|
||||
deny\-answer\-aliases { \fIstring\fR; \&.\&.\&. } [ except\-from { \fIstring\fR; \&.\&.\&.
|
||||
} ];
|
||||
dialup ( notify | notify\-passive | passive | refresh | \fIboolean\fR );
|
||||
disable\-algorithms \fIstring\fR { \fIstring\fR;
|
||||
\&.\&.\&. };
|
||||
@@ -633,8 +632,8 @@ view \fIstring\fR [ \fIclass\fR ] {
|
||||
dnssec\-secure\-to\-insecure \fIboolean\fR;
|
||||
dnssec\-update\-mode ( maintain | no\-resign );
|
||||
dnssec\-validation ( yes | no | auto );
|
||||
dnstap { ( all | auth | client | forwarder |
|
||||
resolver ) [ ( query | response ) ]; \&.\&.\&. };
|
||||
dnstap { ( all | auth | client | forwarder | resolver ) [ ( query |
|
||||
response ) ]; \&.\&.\&. };
|
||||
dual\-stack\-servers [ port \fIinteger\fR ] { ( \fIquoted_string\fR [ port
|
||||
\fIinteger\fR ] [ dscp \fIinteger\fR ] | \fIipv4_address\fR [ port
|
||||
\fIinteger\fR ] [ dscp \fIinteger\fR ] | \fIipv6_address\fR [ port
|
||||
@@ -712,7 +711,7 @@ view \fIstring\fR [ \fIclass\fR ] {
|
||||
preferred\-glue \fIstring\fR;
|
||||
prefetch \fIinteger\fR [ \fIinteger\fR ];
|
||||
provide\-ixfr \fIboolean\fR;
|
||||
qname\-minimization ( strict | relaxed | disabled );
|
||||
qname\-minimization ( strict | relaxed | disabled | off );
|
||||
query\-source ( ( [ address ] ( \fIipv4_address\fR | * ) [ port (
|
||||
\fIinteger\fR | * ) ] ) | ( [ [ address ] ( \fIipv4_address\fR | * ) ]
|
||||
port ( \fIinteger\fR | * ) ) ) [ dscp \fIinteger\fR ];
|
||||
@@ -758,7 +757,7 @@ view \fIstring\fR [ \fIclass\fR ] {
|
||||
nsip\-enable \fIboolean\fR ] [ nsdname\-enable \fIboolean\fR ] [
|
||||
dnsrps\-enable \fIboolean\fR ] [ dnsrps\-options { \fIunspecified\-text\fR
|
||||
} ];
|
||||
root\-delegation\-only [ exclude { \fIquoted_string\fR; \&.\&.\&. } ];
|
||||
root\-delegation\-only [ exclude { \fIstring\fR; \&.\&.\&. } ];
|
||||
root\-key\-sentinel \fIboolean\fR;
|
||||
rrset\-order { [ class \fIstring\fR ] [ type \fIstring\fR ] [ name
|
||||
\fIquoted_string\fR ] \fIstring\fR \fIstring\fR; \&.\&.\&. };
|
||||
@@ -820,6 +819,7 @@ view \fIstring\fR [ \fIclass\fR ] {
|
||||
update\-check\-ksk \fIboolean\fR;
|
||||
use\-alt\-transfer\-source \fIboolean\fR;
|
||||
v6\-bias \fIinteger\fR;
|
||||
validate\-except { \fIstring\fR; \&.\&.\&. };
|
||||
zero\-no\-soa\-ttl \fIboolean\fR;
|
||||
zero\-no\-soa\-ttl\-cache \fIboolean\fR;
|
||||
zone \fIstring\fR [ \fIclass\fR ] {
|
||||
@@ -884,7 +884,6 @@ view \fIstring\fR [ \fIclass\fR ] {
|
||||
max\-zone\-ttl ( unlimited | \fIttlval\fR );
|
||||
min\-refresh\-time \fIinteger\fR;
|
||||
min\-retry\-time \fIinteger\fR;
|
||||
mirror \fIboolean\fR;
|
||||
multi\-master \fIboolean\fR;
|
||||
notify ( explicit | master\-only | \fIboolean\fR );
|
||||
notify\-delay \fIinteger\fR;
|
||||
@@ -899,9 +898,8 @@ view \fIstring\fR [ \fIclass\fR ] {
|
||||
request\-expire \fIboolean\fR;
|
||||
request\-ixfr \fIboolean\fR;
|
||||
serial\-update\-method ( date | increment | unixtime );
|
||||
server\-addresses { ( \fIipv4_address\fR | \fIipv6_address\fR ) [
|
||||
port \fIinteger\fR ]; \&.\&.\&. };
|
||||
server\-names { \fIquoted_string\fR; \&.\&.\&. };
|
||||
server\-addresses { ( \fIipv4_address\fR | \fIipv6_address\fR ); \&.\&.\&. };
|
||||
server\-names { \fIstring\fR; \&.\&.\&. };
|
||||
sig\-signing\-nodes \fIinteger\fR;
|
||||
sig\-signing\-signatures \fIinteger\fR;
|
||||
sig\-signing\-type \fIinteger\fR;
|
||||
@@ -911,7 +909,7 @@ view \fIstring\fR [ \fIclass\fR ] {
|
||||
transfer\-source\-v6 ( \fIipv6_address\fR | * ) [ port (
|
||||
\fIinteger\fR | * ) ] [ dscp \fIinteger\fR ];
|
||||
try\-tcp\-refresh \fIboolean\fR;
|
||||
type ( primary | master | secondary | slave |
|
||||
type ( primary | master | secondary | slave | mirror |
|
||||
delegation\-only | forward | hint | redirect |
|
||||
static\-stub | stub );
|
||||
update\-check\-ksk \fIboolean\fR;
|
||||
@@ -994,7 +992,6 @@ zone \fIstring\fR [ \fIclass\fR ] {
|
||||
max\-zone\-ttl ( unlimited | \fIttlval\fR );
|
||||
min\-refresh\-time \fIinteger\fR;
|
||||
min\-retry\-time \fIinteger\fR;
|
||||
mirror \fIboolean\fR;
|
||||
multi\-master \fIboolean\fR;
|
||||
notify ( explicit | master\-only | \fIboolean\fR );
|
||||
notify\-delay \fIinteger\fR;
|
||||
@@ -1007,9 +1004,8 @@ zone \fIstring\fR [ \fIclass\fR ] {
|
||||
request\-expire \fIboolean\fR;
|
||||
request\-ixfr \fIboolean\fR;
|
||||
serial\-update\-method ( date | increment | unixtime );
|
||||
server\-addresses { ( \fIipv4_address\fR | \fIipv6_address\fR ) [ port
|
||||
\fIinteger\fR ]; \&.\&.\&. };
|
||||
server\-names { \fIquoted_string\fR; \&.\&.\&. };
|
||||
server\-addresses { ( \fIipv4_address\fR | \fIipv6_address\fR ); \&.\&.\&. };
|
||||
server\-names { \fIstring\fR; \&.\&.\&. };
|
||||
sig\-signing\-nodes \fIinteger\fR;
|
||||
sig\-signing\-signatures \fIinteger\fR;
|
||||
sig\-signing\-type \fIinteger\fR;
|
||||
@@ -1019,8 +1015,9 @@ zone \fIstring\fR [ \fIclass\fR ] {
|
||||
transfer\-source\-v6 ( \fIipv6_address\fR | * ) [ port ( \fIinteger\fR | * )
|
||||
] [ dscp \fIinteger\fR ];
|
||||
try\-tcp\-refresh \fIboolean\fR;
|
||||
type ( primary | master | secondary | slave | delegation\-only |
|
||||
forward | hint | redirect | static\-stub | stub );
|
||||
type ( primary | master | secondary | slave | mirror |
|
||||
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\-subdomain | ms\-self | ms\-subdomain
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.named.conf">
|
||||
<info>
|
||||
<date>2018-05-29</date>
|
||||
<date>2018-10-23</date>
|
||||
</info>
|
||||
<refentryinfo>
|
||||
<corpname>ISC</corpname>
|
||||
@@ -192,6 +192,7 @@ options {
|
||||
] [ dscp <replaceable>integer</replaceable> ];
|
||||
alt-transfer-source-v6 ( <replaceable>ipv6_address</replaceable> | * ) [ port ( <replaceable>integer</replaceable> |
|
||||
* ) ] [ dscp <replaceable>integer</replaceable> ];
|
||||
answer-cookie <replaceable>boolean</replaceable>;
|
||||
attach-cache <replaceable>string</replaceable>;
|
||||
auth-nxdomain <replaceable>boolean</replaceable>; // default changed
|
||||
auto-dnssec ( allow | maintain | off );
|
||||
@@ -224,9 +225,9 @@ options {
|
||||
coresize ( default | unlimited | <replaceable>sizeval</replaceable> );
|
||||
datasize ( default | unlimited | <replaceable>sizeval</replaceable> );
|
||||
deny-answer-addresses { <replaceable>address_match_element</replaceable>; ... } [
|
||||
except-from { <replaceable>quoted_string</replaceable>; ... } ];
|
||||
deny-answer-aliases { <replaceable>quoted_string</replaceable>; ... } [ except-from {
|
||||
<replaceable>quoted_string</replaceable>; ... } ];
|
||||
except-from { <replaceable>string</replaceable>; ... } ];
|
||||
deny-answer-aliases { <replaceable>string</replaceable>; ... } [ except-from { <replaceable>string</replaceable>; ...
|
||||
} ];
|
||||
dialup ( notify | notify-passive | passive | refresh | <replaceable>boolean</replaceable> );
|
||||
directory <replaceable>quoted_string</replaceable>;
|
||||
disable-algorithms <replaceable>string</replaceable> { <replaceable>string</replaceable>;
|
||||
@@ -257,14 +258,12 @@ options {
|
||||
dnssec-secure-to-insecure <replaceable>boolean</replaceable>;
|
||||
dnssec-update-mode ( maintain | no-resign );
|
||||
dnssec-validation ( yes | no | auto );
|
||||
dnstap { ( all | auth | client | forwarder |
|
||||
resolver ) [ ( query | response ) ]; ... };
|
||||
dnstap-identity ( <replaceable>quoted_string</replaceable> | none |
|
||||
hostname );
|
||||
dnstap-output ( file | unix ) <replaceable>quoted_string</replaceable> [
|
||||
size ( unlimited | <replaceable>size</replaceable> ) ] [ versions (
|
||||
unlimited | <replaceable>integer</replaceable> ) ] [ suffix ( increment
|
||||
| timestamp ) ];
|
||||
dnstap { ( all | auth | client | forwarder | resolver | update ) [
|
||||
( query | response ) ]; ... };
|
||||
dnstap-identity ( <replaceable>quoted_string</replaceable> | none | hostname );
|
||||
dnstap-output ( file | unix ) <replaceable>quoted_string</replaceable> [ size ( unlimited |
|
||||
<replaceable>size</replaceable> ) ] [ versions ( unlimited | <replaceable>integer</replaceable> ) ] [ suffix (
|
||||
increment | timestamp ) ];
|
||||
dnstap-version ( <replaceable>quoted_string</replaceable> | none );
|
||||
dscp <replaceable>integer</replaceable>;
|
||||
dual-stack-servers [ port <replaceable>integer</replaceable> ] { ( <replaceable>quoted_string</replaceable> [ port
|
||||
@@ -362,7 +361,7 @@ options {
|
||||
preferred-glue <replaceable>string</replaceable>;
|
||||
prefetch <replaceable>integer</replaceable> [ <replaceable>integer</replaceable> ];
|
||||
provide-ixfr <replaceable>boolean</replaceable>;
|
||||
qname-minimization ( strict | relaxed | disabled );
|
||||
qname-minimization ( strict | relaxed | disabled | off );
|
||||
query-source ( ( [ address ] ( <replaceable>ipv4_address</replaceable> | * ) [ port (
|
||||
<replaceable>integer</replaceable> | * ) ] ) | ( [ [ address ] ( <replaceable>ipv4_address</replaceable> | * ) ]
|
||||
port ( <replaceable>integer</replaceable> | * ) ) ) [ dscp <replaceable>integer</replaceable> ];
|
||||
@@ -413,7 +412,7 @@ options {
|
||||
nsip-enable <replaceable>boolean</replaceable> ] [ nsdname-enable <replaceable>boolean</replaceable> ] [
|
||||
dnsrps-enable <replaceable>boolean</replaceable> ] [ dnsrps-options { <replaceable>unspecified-text</replaceable>
|
||||
} ];
|
||||
root-delegation-only [ exclude { <replaceable>quoted_string</replaceable>; ... } ];
|
||||
root-delegation-only [ exclude { <replaceable>string</replaceable>; ... } ];
|
||||
root-key-sentinel <replaceable>boolean</replaceable>;
|
||||
rrset-order { [ class <replaceable>string</replaceable> ] [ type <replaceable>string</replaceable> ] [ name
|
||||
<replaceable>quoted_string</replaceable> ] <replaceable>string</replaceable> <replaceable>string</replaceable>; ... };
|
||||
@@ -463,6 +462,7 @@ options {
|
||||
use-v4-udp-ports { <replaceable>portrange</replaceable>; ... };
|
||||
use-v6-udp-ports { <replaceable>portrange</replaceable>; ... };
|
||||
v6-bias <replaceable>integer</replaceable>;
|
||||
validate-except { <replaceable>string</replaceable>; ... };
|
||||
version ( <replaceable>quoted_string</replaceable> | none );
|
||||
zero-no-soa-ttl <replaceable>boolean</replaceable>;
|
||||
zero-no-soa-ttl-cache <replaceable>boolean</replaceable>;
|
||||
@@ -574,9 +574,9 @@ view <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
|
||||
cleaning-interval <replaceable>integer</replaceable>;
|
||||
clients-per-query <replaceable>integer</replaceable>;
|
||||
deny-answer-addresses { <replaceable>address_match_element</replaceable>; ... } [
|
||||
except-from { <replaceable>quoted_string</replaceable>; ... } ];
|
||||
deny-answer-aliases { <replaceable>quoted_string</replaceable>; ... } [ except-from {
|
||||
<replaceable>quoted_string</replaceable>; ... } ];
|
||||
except-from { <replaceable>string</replaceable>; ... } ];
|
||||
deny-answer-aliases { <replaceable>string</replaceable>; ... } [ except-from { <replaceable>string</replaceable>; ...
|
||||
} ];
|
||||
dialup ( notify | notify-passive | passive | refresh | <replaceable>boolean</replaceable> );
|
||||
disable-algorithms <replaceable>string</replaceable> { <replaceable>string</replaceable>;
|
||||
... };
|
||||
@@ -610,8 +610,8 @@ view <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
|
||||
dnssec-secure-to-insecure <replaceable>boolean</replaceable>;
|
||||
dnssec-update-mode ( maintain | no-resign );
|
||||
dnssec-validation ( yes | no | auto );
|
||||
dnstap { ( all | auth | client | forwarder |
|
||||
resolver ) [ ( query | response ) ]; ... };
|
||||
dnstap { ( all | auth | client | forwarder | resolver | update ) [
|
||||
( query | response ) ]; ... };
|
||||
dual-stack-servers [ port <replaceable>integer</replaceable> ] { ( <replaceable>quoted_string</replaceable> [ port
|
||||
<replaceable>integer</replaceable> ] [ dscp <replaceable>integer</replaceable> ] | <replaceable>ipv4_address</replaceable> [ port
|
||||
<replaceable>integer</replaceable> ] [ dscp <replaceable>integer</replaceable> ] | <replaceable>ipv6_address</replaceable> [ port
|
||||
@@ -689,7 +689,7 @@ view <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
|
||||
preferred-glue <replaceable>string</replaceable>;
|
||||
prefetch <replaceable>integer</replaceable> [ <replaceable>integer</replaceable> ];
|
||||
provide-ixfr <replaceable>boolean</replaceable>;
|
||||
qname-minimization ( strict | relaxed | disabled );
|
||||
qname-minimization ( strict | relaxed | disabled | off );
|
||||
query-source ( ( [ address ] ( <replaceable>ipv4_address</replaceable> | * ) [ port (
|
||||
<replaceable>integer</replaceable> | * ) ] ) | ( [ [ address ] ( <replaceable>ipv4_address</replaceable> | * ) ]
|
||||
port ( <replaceable>integer</replaceable> | * ) ) ) [ dscp <replaceable>integer</replaceable> ];
|
||||
@@ -735,7 +735,7 @@ view <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
|
||||
nsip-enable <replaceable>boolean</replaceable> ] [ nsdname-enable <replaceable>boolean</replaceable> ] [
|
||||
dnsrps-enable <replaceable>boolean</replaceable> ] [ dnsrps-options { <replaceable>unspecified-text</replaceable>
|
||||
} ];
|
||||
root-delegation-only [ exclude { <replaceable>quoted_string</replaceable>; ... } ];
|
||||
root-delegation-only [ exclude { <replaceable>string</replaceable>; ... } ];
|
||||
root-key-sentinel <replaceable>boolean</replaceable>;
|
||||
rrset-order { [ class <replaceable>string</replaceable> ] [ type <replaceable>string</replaceable> ] [ name
|
||||
<replaceable>quoted_string</replaceable> ] <replaceable>string</replaceable> <replaceable>string</replaceable>; ... };
|
||||
@@ -797,6 +797,7 @@ view <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
|
||||
update-check-ksk <replaceable>boolean</replaceable>;
|
||||
use-alt-transfer-source <replaceable>boolean</replaceable>;
|
||||
v6-bias <replaceable>integer</replaceable>;
|
||||
validate-except { <replaceable>string</replaceable>; ... };
|
||||
zero-no-soa-ttl <replaceable>boolean</replaceable>;
|
||||
zero-no-soa-ttl-cache <replaceable>boolean</replaceable>;
|
||||
zone <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
|
||||
@@ -861,7 +862,6 @@ view <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
|
||||
max-zone-ttl ( unlimited | <replaceable>ttlval</replaceable> );
|
||||
min-refresh-time <replaceable>integer</replaceable>;
|
||||
min-retry-time <replaceable>integer</replaceable>;
|
||||
mirror <replaceable>boolean</replaceable>;
|
||||
multi-master <replaceable>boolean</replaceable>;
|
||||
notify ( explicit | master-only | <replaceable>boolean</replaceable> );
|
||||
notify-delay <replaceable>integer</replaceable>;
|
||||
@@ -876,9 +876,8 @@ view <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
|
||||
request-expire <replaceable>boolean</replaceable>;
|
||||
request-ixfr <replaceable>boolean</replaceable>;
|
||||
serial-update-method ( date | increment | unixtime );
|
||||
server-addresses { ( <replaceable>ipv4_address</replaceable> | <replaceable>ipv6_address</replaceable> ) [
|
||||
port <replaceable>integer</replaceable> ]; ... };
|
||||
server-names { <replaceable>quoted_string</replaceable>; ... };
|
||||
server-addresses { ( <replaceable>ipv4_address</replaceable> | <replaceable>ipv6_address</replaceable> ); ... };
|
||||
server-names { <replaceable>string</replaceable>; ... };
|
||||
sig-signing-nodes <replaceable>integer</replaceable>;
|
||||
sig-signing-signatures <replaceable>integer</replaceable>;
|
||||
sig-signing-type <replaceable>integer</replaceable>;
|
||||
@@ -888,15 +887,15 @@ view <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
|
||||
transfer-source-v6 ( <replaceable>ipv6_address</replaceable> | * ) [ port (
|
||||
<replaceable>integer</replaceable> | * ) ] [ dscp <replaceable>integer</replaceable> ];
|
||||
try-tcp-refresh <replaceable>boolean</replaceable>;
|
||||
type ( primary | master | secondary | slave |
|
||||
type ( primary | master | secondary | slave | mirror |
|
||||
delegation-only | forward | hint | redirect |
|
||||
static-stub | stub );
|
||||
update-check-ksk <replaceable>boolean</replaceable>;
|
||||
update-policy ( local | { ( deny | grant ) <replaceable>string</replaceable> (
|
||||
6to4-self | external | krb5-self | krb5-subdomain |
|
||||
ms-self | ms-subdomain | name | self | selfsub |
|
||||
selfwild | subdomain | tcp-self | wildcard | zonesub )
|
||||
[ <replaceable>string</replaceable> ] <replaceable>rrtypelist</replaceable>; ... };
|
||||
6to4-self | external | krb5-self | krb5-selfsub |
|
||||
krb5-subdomain | ms-self | ms-selfsub | ms-subdomain |
|
||||
name | self | selfsub | selfwild | subdomain | tcp-self
|
||||
| wildcard | zonesub ) [ <replaceable>string</replaceable> ] <replaceable>rrtypelist</replaceable>; ... };
|
||||
use-alt-transfer-source <replaceable>boolean</replaceable>;
|
||||
zero-no-soa-ttl <replaceable>boolean</replaceable>;
|
||||
zone-statistics ( full | terse | none | <replaceable>boolean</replaceable> );
|
||||
@@ -967,7 +966,6 @@ zone <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
|
||||
max-zone-ttl ( unlimited | <replaceable>ttlval</replaceable> );
|
||||
min-refresh-time <replaceable>integer</replaceable>;
|
||||
min-retry-time <replaceable>integer</replaceable>;
|
||||
mirror <replaceable>boolean</replaceable>;
|
||||
multi-master <replaceable>boolean</replaceable>;
|
||||
notify ( explicit | master-only | <replaceable>boolean</replaceable> );
|
||||
notify-delay <replaceable>integer</replaceable>;
|
||||
@@ -980,9 +978,8 @@ zone <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
|
||||
request-expire <replaceable>boolean</replaceable>;
|
||||
request-ixfr <replaceable>boolean</replaceable>;
|
||||
serial-update-method ( date | increment | unixtime );
|
||||
server-addresses { ( <replaceable>ipv4_address</replaceable> | <replaceable>ipv6_address</replaceable> ) [ port
|
||||
<replaceable>integer</replaceable> ]; ... };
|
||||
server-names { <replaceable>quoted_string</replaceable>; ... };
|
||||
server-addresses { ( <replaceable>ipv4_address</replaceable> | <replaceable>ipv6_address</replaceable> ); ... };
|
||||
server-names { <replaceable>string</replaceable>; ... };
|
||||
sig-signing-nodes <replaceable>integer</replaceable>;
|
||||
sig-signing-signatures <replaceable>integer</replaceable>;
|
||||
sig-signing-type <replaceable>integer</replaceable>;
|
||||
@@ -992,13 +989,15 @@ zone <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
|
||||
transfer-source-v6 ( <replaceable>ipv6_address</replaceable> | * ) [ port ( <replaceable>integer</replaceable> | * )
|
||||
] [ dscp <replaceable>integer</replaceable> ];
|
||||
try-tcp-refresh <replaceable>boolean</replaceable>;
|
||||
type ( primary | master | secondary | slave | delegation-only |
|
||||
forward | hint | redirect | static-stub | stub );
|
||||
type ( primary | master | secondary | slave | mirror |
|
||||
delegation-only | forward | hint | redirect | static-stub |
|
||||
stub );
|
||||
update-check-ksk <replaceable>boolean</replaceable>;
|
||||
update-policy ( local | { ( deny | grant ) <replaceable>string</replaceable> ( 6to4-self |
|
||||
external | krb5-self | krb5-subdomain | ms-self | ms-subdomain
|
||||
| name | self | selfsub | selfwild | subdomain | tcp-self |
|
||||
wildcard | zonesub ) [ <replaceable>string</replaceable> ] <replaceable>rrtypelist</replaceable>; ... };
|
||||
external | krb5-self | krb5-selfsub | krb5-subdomain | ms-self
|
||||
| ms-selfsub | ms-subdomain | name | self | selfsub | selfwild
|
||||
| subdomain | tcp-self | wildcard | zonesub ) [ <replaceable>string</replaceable> ]
|
||||
<replaceable>rrtypelist</replaceable>; ... };
|
||||
use-alt-transfer-source <replaceable>boolean</replaceable>;
|
||||
zero-no-soa-ttl <replaceable>boolean</replaceable>;
|
||||
zone-statistics ( full | terse | none | <replaceable>boolean</replaceable> );
|
||||
|
||||
+28
-31
@@ -212,9 +212,9 @@ options
|
||||
coresize ( default | unlimited | <em class="replaceable"><code>sizeval</code></em> );<br>
|
||||
datasize ( default | unlimited | <em class="replaceable"><code>sizeval</code></em> );<br>
|
||||
deny-answer-addresses { <em class="replaceable"><code>address_match_element</code></em>; ... } [<br>
|
||||
except-from { <em class="replaceable"><code>quoted_string</code></em>; ... } ];<br>
|
||||
deny-answer-aliases { <em class="replaceable"><code>quoted_string</code></em>; ... } [ except-from {<br>
|
||||
<em class="replaceable"><code>quoted_string</code></em>; ... } ];<br>
|
||||
except-from { <em class="replaceable"><code>string</code></em>; ... } ];<br>
|
||||
deny-answer-aliases { <em class="replaceable"><code>string</code></em>; ... } [ except-from { <em class="replaceable"><code>string</code></em>; ...<br>
|
||||
} ];<br>
|
||||
dialup ( notify | notify-passive | passive | refresh | <em class="replaceable"><code>boolean</code></em> );<br>
|
||||
directory <em class="replaceable"><code>quoted_string</code></em>;<br>
|
||||
disable-algorithms <em class="replaceable"><code>string</code></em> { <em class="replaceable"><code>string</code></em>;<br>
|
||||
@@ -245,14 +245,12 @@ options
|
||||
dnssec-secure-to-insecure <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
dnssec-update-mode ( maintain | no-resign );<br>
|
||||
dnssec-validation ( yes | no | auto );<br>
|
||||
dnstap { ( all | auth | client | forwarder |<br>
|
||||
resolver ) [ ( query | response ) ]; ... };<br>
|
||||
dnstap-identity ( <em class="replaceable"><code>quoted_string</code></em> | none |<br>
|
||||
hostname );<br>
|
||||
dnstap-output ( file | unix ) <em class="replaceable"><code>quoted_string</code></em> [<br>
|
||||
size ( unlimited | <em class="replaceable"><code>size</code></em> ) ] [ versions (<br>
|
||||
unlimited | <em class="replaceable"><code>integer</code></em> ) ] [ suffix ( increment<br>
|
||||
| timestamp ) ];<br>
|
||||
dnstap { ( all | auth | client | forwarder | resolver ) [ ( query |<br>
|
||||
response ) ]; ... };<br>
|
||||
dnstap-identity ( <em class="replaceable"><code>quoted_string</code></em> | none | hostname );<br>
|
||||
dnstap-output ( file | unix ) <em class="replaceable"><code>quoted_string</code></em> [ size ( unlimited |<br>
|
||||
<em class="replaceable"><code>size</code></em> ) ] [ versions ( unlimited | <em class="replaceable"><code>integer</code></em> ) ] [ suffix (<br>
|
||||
increment | timestamp ) ];<br>
|
||||
dnstap-version ( <em class="replaceable"><code>quoted_string</code></em> | none );<br>
|
||||
dscp <em class="replaceable"><code>integer</code></em>;<br>
|
||||
dual-stack-servers [ port <em class="replaceable"><code>integer</code></em> ] { ( <em class="replaceable"><code>quoted_string</code></em> [ port<br>
|
||||
@@ -350,7 +348,7 @@ options
|
||||
preferred-glue <em class="replaceable"><code>string</code></em>;<br>
|
||||
prefetch <em class="replaceable"><code>integer</code></em> [ <em class="replaceable"><code>integer</code></em> ];<br>
|
||||
provide-ixfr <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
qname-minimization ( strict | relaxed | disabled );<br>
|
||||
qname-minimization ( strict | relaxed | disabled | off );<br>
|
||||
query-source ( ( [ address ] ( <em class="replaceable"><code>ipv4_address</code></em> | * ) [ port (<br>
|
||||
<em class="replaceable"><code>integer</code></em> | * ) ] ) | ( [ [ address ] ( <em class="replaceable"><code>ipv4_address</code></em> | * ) ]<br>
|
||||
port ( <em class="replaceable"><code>integer</code></em> | * ) ) ) [ dscp <em class="replaceable"><code>integer</code></em> ];<br>
|
||||
@@ -401,7 +399,7 @@ options
|
||||
nsip-enable <em class="replaceable"><code>boolean</code></em> ] [ nsdname-enable <em class="replaceable"><code>boolean</code></em> ] [<br>
|
||||
dnsrps-enable <em class="replaceable"><code>boolean</code></em> ] [ dnsrps-options { <em class="replaceable"><code>unspecified-text</code></em><br>
|
||||
} ];<br>
|
||||
root-delegation-only [ exclude { <em class="replaceable"><code>quoted_string</code></em>; ... } ];<br>
|
||||
root-delegation-only [ exclude { <em class="replaceable"><code>string</code></em>; ... } ];<br>
|
||||
root-key-sentinel <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
rrset-order { [ class <em class="replaceable"><code>string</code></em> ] [ type <em class="replaceable"><code>string</code></em> ] [ name<br>
|
||||
<em class="replaceable"><code>quoted_string</code></em> ] <em class="replaceable"><code>string</code></em> <em class="replaceable"><code>string</code></em>; ... };<br>
|
||||
@@ -451,6 +449,7 @@ options
|
||||
use-v4-udp-ports { <em class="replaceable"><code>portrange</code></em>; ... };<br>
|
||||
use-v6-udp-ports { <em class="replaceable"><code>portrange</code></em>; ... };<br>
|
||||
v6-bias <em class="replaceable"><code>integer</code></em>;<br>
|
||||
validate-except { <em class="replaceable"><code>string</code></em>; ... };<br>
|
||||
version ( <em class="replaceable"><code>quoted_string</code></em> | none );<br>
|
||||
zero-no-soa-ttl <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
zero-no-soa-ttl-cache <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
@@ -566,9 +565,9 @@ view
|
||||
cleaning-interval <em class="replaceable"><code>integer</code></em>;<br>
|
||||
clients-per-query <em class="replaceable"><code>integer</code></em>;<br>
|
||||
deny-answer-addresses { <em class="replaceable"><code>address_match_element</code></em>; ... } [<br>
|
||||
except-from { <em class="replaceable"><code>quoted_string</code></em>; ... } ];<br>
|
||||
deny-answer-aliases { <em class="replaceable"><code>quoted_string</code></em>; ... } [ except-from {<br>
|
||||
<em class="replaceable"><code>quoted_string</code></em>; ... } ];<br>
|
||||
except-from { <em class="replaceable"><code>string</code></em>; ... } ];<br>
|
||||
deny-answer-aliases { <em class="replaceable"><code>string</code></em>; ... } [ except-from { <em class="replaceable"><code>string</code></em>; ...<br>
|
||||
} ];<br>
|
||||
dialup ( notify | notify-passive | passive | refresh | <em class="replaceable"><code>boolean</code></em> );<br>
|
||||
disable-algorithms <em class="replaceable"><code>string</code></em> { <em class="replaceable"><code>string</code></em>;<br>
|
||||
... };<br>
|
||||
@@ -602,8 +601,8 @@ view
|
||||
dnssec-secure-to-insecure <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
dnssec-update-mode ( maintain | no-resign );<br>
|
||||
dnssec-validation ( yes | no | auto );<br>
|
||||
dnstap { ( all | auth | client | forwarder |<br>
|
||||
resolver ) [ ( query | response ) ]; ... };<br>
|
||||
dnstap { ( all | auth | client | forwarder | resolver ) [ ( query |<br>
|
||||
response ) ]; ... };<br>
|
||||
dual-stack-servers [ port <em class="replaceable"><code>integer</code></em> ] { ( <em class="replaceable"><code>quoted_string</code></em> [ port<br>
|
||||
<em class="replaceable"><code>integer</code></em> ] [ dscp <em class="replaceable"><code>integer</code></em> ] | <em class="replaceable"><code>ipv4_address</code></em> [ port<br>
|
||||
<em class="replaceable"><code>integer</code></em> ] [ dscp <em class="replaceable"><code>integer</code></em> ] | <em class="replaceable"><code>ipv6_address</code></em> [ port<br>
|
||||
@@ -681,7 +680,7 @@ view
|
||||
preferred-glue <em class="replaceable"><code>string</code></em>;<br>
|
||||
prefetch <em class="replaceable"><code>integer</code></em> [ <em class="replaceable"><code>integer</code></em> ];<br>
|
||||
provide-ixfr <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
qname-minimization ( strict | relaxed | disabled );<br>
|
||||
qname-minimization ( strict | relaxed | disabled | off );<br>
|
||||
query-source ( ( [ address ] ( <em class="replaceable"><code>ipv4_address</code></em> | * ) [ port (<br>
|
||||
<em class="replaceable"><code>integer</code></em> | * ) ] ) | ( [ [ address ] ( <em class="replaceable"><code>ipv4_address</code></em> | * ) ]<br>
|
||||
port ( <em class="replaceable"><code>integer</code></em> | * ) ) ) [ dscp <em class="replaceable"><code>integer</code></em> ];<br>
|
||||
@@ -727,7 +726,7 @@ view
|
||||
nsip-enable <em class="replaceable"><code>boolean</code></em> ] [ nsdname-enable <em class="replaceable"><code>boolean</code></em> ] [<br>
|
||||
dnsrps-enable <em class="replaceable"><code>boolean</code></em> ] [ dnsrps-options { <em class="replaceable"><code>unspecified-text</code></em><br>
|
||||
} ];<br>
|
||||
root-delegation-only [ exclude { <em class="replaceable"><code>quoted_string</code></em>; ... } ];<br>
|
||||
root-delegation-only [ exclude { <em class="replaceable"><code>string</code></em>; ... } ];<br>
|
||||
root-key-sentinel <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
rrset-order { [ class <em class="replaceable"><code>string</code></em> ] [ type <em class="replaceable"><code>string</code></em> ] [ name<br>
|
||||
<em class="replaceable"><code>quoted_string</code></em> ] <em class="replaceable"><code>string</code></em> <em class="replaceable"><code>string</code></em>; ... };<br>
|
||||
@@ -789,6 +788,7 @@ view
|
||||
update-check-ksk <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
use-alt-transfer-source <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
v6-bias <em class="replaceable"><code>integer</code></em>;<br>
|
||||
validate-except { <em class="replaceable"><code>string</code></em>; ... };<br>
|
||||
zero-no-soa-ttl <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
zero-no-soa-ttl-cache <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
zone <em class="replaceable"><code>string</code></em> [ <em class="replaceable"><code>class</code></em> ] {<br>
|
||||
@@ -853,7 +853,6 @@ view
|
||||
max-zone-ttl ( unlimited | <em class="replaceable"><code>ttlval</code></em> );<br>
|
||||
min-refresh-time <em class="replaceable"><code>integer</code></em>;<br>
|
||||
min-retry-time <em class="replaceable"><code>integer</code></em>;<br>
|
||||
mirror <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
multi-master <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
notify ( explicit | master-only | <em class="replaceable"><code>boolean</code></em> );<br>
|
||||
notify-delay <em class="replaceable"><code>integer</code></em>;<br>
|
||||
@@ -868,9 +867,8 @@ view
|
||||
request-expire <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
request-ixfr <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
serial-update-method ( date | increment | unixtime );<br>
|
||||
server-addresses { ( <em class="replaceable"><code>ipv4_address</code></em> | <em class="replaceable"><code>ipv6_address</code></em> ) [<br>
|
||||
port <em class="replaceable"><code>integer</code></em> ]; ... };<br>
|
||||
server-names { <em class="replaceable"><code>quoted_string</code></em>; ... };<br>
|
||||
server-addresses { ( <em class="replaceable"><code>ipv4_address</code></em> | <em class="replaceable"><code>ipv6_address</code></em> ); ... };<br>
|
||||
server-names { <em class="replaceable"><code>string</code></em>; ... };<br>
|
||||
sig-signing-nodes <em class="replaceable"><code>integer</code></em>;<br>
|
||||
sig-signing-signatures <em class="replaceable"><code>integer</code></em>;<br>
|
||||
sig-signing-type <em class="replaceable"><code>integer</code></em>;<br>
|
||||
@@ -880,7 +878,7 @@ view
|
||||
transfer-source-v6 ( <em class="replaceable"><code>ipv6_address</code></em> | * ) [ port (<br>
|
||||
<em class="replaceable"><code>integer</code></em> | * ) ] [ dscp <em class="replaceable"><code>integer</code></em> ];<br>
|
||||
try-tcp-refresh <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
type ( primary | master | secondary | slave |<br>
|
||||
type ( primary | master | secondary | slave | mirror |<br>
|
||||
delegation-only | forward | hint | redirect |<br>
|
||||
static-stub | stub );<br>
|
||||
update-check-ksk <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
@@ -960,7 +958,6 @@ zone
|
||||
max-zone-ttl ( unlimited | <em class="replaceable"><code>ttlval</code></em> );<br>
|
||||
min-refresh-time <em class="replaceable"><code>integer</code></em>;<br>
|
||||
min-retry-time <em class="replaceable"><code>integer</code></em>;<br>
|
||||
mirror <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
multi-master <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
notify ( explicit | master-only | <em class="replaceable"><code>boolean</code></em> );<br>
|
||||
notify-delay <em class="replaceable"><code>integer</code></em>;<br>
|
||||
@@ -973,9 +970,8 @@ zone
|
||||
request-expire <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
request-ixfr <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
serial-update-method ( date | increment | unixtime );<br>
|
||||
server-addresses { ( <em class="replaceable"><code>ipv4_address</code></em> | <em class="replaceable"><code>ipv6_address</code></em> ) [ port<br>
|
||||
<em class="replaceable"><code>integer</code></em> ]; ... };<br>
|
||||
server-names { <em class="replaceable"><code>quoted_string</code></em>; ... };<br>
|
||||
server-addresses { ( <em class="replaceable"><code>ipv4_address</code></em> | <em class="replaceable"><code>ipv6_address</code></em> ); ... };<br>
|
||||
server-names { <em class="replaceable"><code>string</code></em>; ... };<br>
|
||||
sig-signing-nodes <em class="replaceable"><code>integer</code></em>;<br>
|
||||
sig-signing-signatures <em class="replaceable"><code>integer</code></em>;<br>
|
||||
sig-signing-type <em class="replaceable"><code>integer</code></em>;<br>
|
||||
@@ -985,8 +981,9 @@ zone
|
||||
transfer-source-v6 ( <em class="replaceable"><code>ipv6_address</code></em> | * ) [ port ( <em class="replaceable"><code>integer</code></em> | * )<br>
|
||||
] [ dscp <em class="replaceable"><code>integer</code></em> ];<br>
|
||||
try-tcp-refresh <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
type ( primary | master | secondary | slave | delegation-only |<br>
|
||||
forward | hint | redirect | static-stub | stub );<br>
|
||||
type ( primary | master | secondary | slave | mirror |<br>
|
||||
delegation-only | forward | hint | redirect | static-stub |<br>
|
||||
stub );<br>
|
||||
update-check-ksk <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
update-policy ( local | { ( deny | grant ) <em class="replaceable"><code>string</code></em> ( 6to4-self |<br>
|
||||
external | krb5-self | krb5-subdomain | ms-self | ms-subdomain<br>
|
||||
|
||||
+299
-115
@@ -30,7 +30,7 @@
|
||||
#include <isc/file.h>
|
||||
#include <isc/hash.h>
|
||||
#include <isc/hex.h>
|
||||
#include <isc/hmacsha.h>
|
||||
#include <isc/hmac.h>
|
||||
#include <isc/httpd.h>
|
||||
#include <isc/lex.h>
|
||||
#include <isc/meminfo.h>
|
||||
@@ -41,7 +41,6 @@
|
||||
#include <isc/print.h>
|
||||
#include <isc/refcount.h>
|
||||
#include <isc/resource.h>
|
||||
#include <isc/sha2.h>
|
||||
#include <isc/socket.h>
|
||||
#include <isc/stat.h>
|
||||
#include <isc/stats.h>
|
||||
@@ -938,7 +937,8 @@ configure_view_dnsseckeys(dns_view_t *view, const cfg_obj_t *vconfig,
|
||||
|
||||
/* We don't need trust anchors for the _bind view */
|
||||
if (strcmp(view->name, "_bind") == 0 &&
|
||||
view->rdclass == dns_rdataclass_chaos) {
|
||||
view->rdclass == dns_rdataclass_chaos)
|
||||
{
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
@@ -2608,12 +2608,12 @@ catz_addmodzone_taskaction(isc_task_t *task, isc_event_t *event0) {
|
||||
* Load the zone from the master file. If this fails, we'll
|
||||
* need to undo the configuration we've done already.
|
||||
*/
|
||||
result = dns_zone_loadnew(zone);
|
||||
result = dns_zone_load(zone, true);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
dns_db_t *dbp = NULL;
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_SERVER, ISC_LOG_ERROR,
|
||||
"catz: dns_zone_loadnew() failed "
|
||||
"catz: dns_zone_load() failed "
|
||||
"with %s; reverting.",
|
||||
isc_result_totext(result));
|
||||
|
||||
@@ -3411,11 +3411,14 @@ configure_dnstap(const cfg_obj_t **maps, dns_view_t *view) {
|
||||
dt |= DNS_DTTYPE_RQ|DNS_DTTYPE_RR;
|
||||
} else if (strcasecmp(str, "forwarder") == 0) {
|
||||
dt |= DNS_DTTYPE_FQ|DNS_DTTYPE_FR;
|
||||
} else if (strcasecmp(str, "update") == 0) {
|
||||
dt |= DNS_DTTYPE_UQ|DNS_DTTYPE_UR;
|
||||
} else if (strcasecmp(str, "all") == 0) {
|
||||
dt |= DNS_DTTYPE_CQ|DNS_DTTYPE_CR|
|
||||
DNS_DTTYPE_AQ|DNS_DTTYPE_AR|
|
||||
DNS_DTTYPE_RQ|DNS_DTTYPE_RR|
|
||||
DNS_DTTYPE_FQ|DNS_DTTYPE_FR;
|
||||
DNS_DTTYPE_FQ|DNS_DTTYPE_FR|
|
||||
DNS_DTTYPE_UQ|DNS_DTTYPE_UR;
|
||||
}
|
||||
|
||||
obj2 = cfg_tuple_get(obj, "mode");
|
||||
@@ -3692,6 +3695,7 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
|
||||
isc_dscp_t dscp4 = -1, dscp6 = -1;
|
||||
dns_dyndbctx_t *dctx = NULL;
|
||||
unsigned int resolver_param;
|
||||
dns_ntatable_t *ntatable = NULL;
|
||||
const char *qminmode = NULL;
|
||||
|
||||
REQUIRE(DNS_VIEW_VALID(view));
|
||||
@@ -4062,14 +4066,38 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
|
||||
view->acceptexpired = cfg_obj_asboolean(obj);
|
||||
|
||||
obj = NULL;
|
||||
result = named_config_get(maps, "dnssec-validation", &obj);
|
||||
result = named_config_get(maps, "dnssec-enable", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
if (cfg_obj_isboolean(obj)) {
|
||||
view->enablevalidation = cfg_obj_asboolean(obj);
|
||||
} else {
|
||||
/* If dnssec-validation is not boolean, it must be "auto" */
|
||||
view->enablevalidation = true;
|
||||
auto_root = true;
|
||||
view->enablednssec = cfg_obj_asboolean(obj);
|
||||
|
||||
obj = NULL;
|
||||
/* 'optionmaps', not 'maps': don't check named_g_defaults yet */
|
||||
(void)named_config_get(optionmaps, "dnssec-validation", &obj);
|
||||
if (obj == NULL) {
|
||||
/*
|
||||
* If dnssec-enable is yes, then we default to
|
||||
* VALIDATION_DEFAULT as set in config.c. Otherwise
|
||||
* we default to "no".
|
||||
*/
|
||||
if (view->enablednssec) {
|
||||
(void)cfg_map_get(named_g_defaults,
|
||||
"dnssec-validation", &obj);
|
||||
INSIST(obj != NULL);
|
||||
} else {
|
||||
view->enablevalidation = false;
|
||||
}
|
||||
}
|
||||
if (obj != NULL) {
|
||||
if (cfg_obj_isboolean(obj)) {
|
||||
view->enablevalidation = cfg_obj_asboolean(obj);
|
||||
} else {
|
||||
/*
|
||||
* If dnssec-validation is set but not boolean,
|
||||
* then it must be "auto"
|
||||
*/
|
||||
view->enablevalidation = true;
|
||||
auto_root = true;
|
||||
}
|
||||
}
|
||||
|
||||
obj = NULL;
|
||||
@@ -4706,14 +4734,12 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
view->root_key_sentinel = cfg_obj_asboolean(obj);
|
||||
|
||||
CHECK(configure_view_acl(vconfig, config, named_g_config,
|
||||
"allow-query-cache-on", NULL, actx,
|
||||
named_g_mctx, &view->cacheonacl));
|
||||
/*
|
||||
* Set the "allow-query", "allow-query-cache", "allow-recursion",
|
||||
* and "allow-recursion-on" ACLs if configured in named.conf, but
|
||||
* NOT from the global defaults. This is done by leaving the third
|
||||
* argument to configure_view_acl() NULL.
|
||||
* "allow-recursion-on" and "allow-query-cache-on" ACLs if
|
||||
* configured in named.conf, but NOT from the global defaults.
|
||||
* This is done by leaving the third argument to configure_view_acl()
|
||||
* NULL.
|
||||
*
|
||||
* We ignore the global defaults here because these ACLs
|
||||
* can inherit from each other. If any are still unset after
|
||||
@@ -4730,6 +4756,10 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
|
||||
CHECK(configure_view_acl(vconfig, config, NULL,
|
||||
"allow-query-cache", NULL, actx,
|
||||
named_g_mctx, &view->cacheacl));
|
||||
/* named.conf only */
|
||||
CHECK(configure_view_acl(vconfig, config, NULL,
|
||||
"allow-query-cache-on", NULL, actx,
|
||||
named_g_mctx, &view->cacheonacl));
|
||||
|
||||
if (strcmp(view->name, "_bind") != 0 &&
|
||||
view->rdclass != dns_rdataclass_chaos)
|
||||
@@ -4748,8 +4778,6 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
|
||||
/*
|
||||
* "allow-query-cache" inherits from "allow-recursion" if set,
|
||||
* otherwise from "allow-query" if set.
|
||||
* "allow-recursion" inherits from "allow-query-cache" if set,
|
||||
* otherwise from "allow-query" if set.
|
||||
*/
|
||||
if (view->cacheacl == NULL) {
|
||||
if (view->recursionacl != NULL) {
|
||||
@@ -4760,6 +4788,11 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
|
||||
&view->cacheacl);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* "allow-recursion" inherits from "allow-query-cache" if set,
|
||||
* otherwise from "allow-query" if set.
|
||||
*/
|
||||
if (view->recursionacl == NULL) {
|
||||
if (view->cacheacl != NULL) {
|
||||
dns_acl_attach(view->cacheacl,
|
||||
@@ -4771,10 +4804,32 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
|
||||
}
|
||||
|
||||
/*
|
||||
* If any are still unset, we now get default "allow-recursion",
|
||||
* "allow-recursion-on" and "allow-query-cache" ACLs from
|
||||
* the global config.
|
||||
* "allow-query-cache-on" inherits from "allow-recursion-on"
|
||||
* if set.
|
||||
*/
|
||||
if (view->cacheonacl == NULL) {
|
||||
if (view->recursiononacl != NULL) {
|
||||
dns_acl_attach(view->recursiononacl,
|
||||
&view->cacheonacl);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* "allow-recursion-on" inherits from "allow-query-cache-on"
|
||||
* if set.
|
||||
*/
|
||||
if (view->recursiononacl == NULL) {
|
||||
if (view->cacheonacl != NULL) {
|
||||
dns_acl_attach(view->cacheonacl,
|
||||
&view->recursiononacl);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If any are still unset at this point, we now get default
|
||||
* values for from the global config.
|
||||
*/
|
||||
|
||||
if (view->recursionacl == NULL) {
|
||||
/* global default only */
|
||||
CHECK(configure_view_acl(NULL, NULL, named_g_config,
|
||||
@@ -4796,14 +4851,30 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
|
||||
actx, named_g_mctx,
|
||||
&view->cacheacl));
|
||||
}
|
||||
} else if (view->cacheacl == NULL) {
|
||||
if (view->cacheonacl == NULL) {
|
||||
/* global default only */
|
||||
CHECK(configure_view_acl(NULL, NULL, named_g_config,
|
||||
"allow-query-cache-on", NULL,
|
||||
actx, named_g_mctx,
|
||||
&view->cacheonacl));
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
* We're not recursive; if "allow-query-cache" hasn't been
|
||||
* set at the options/view level, set it to none.
|
||||
* We're not recursive; if the query-cache ACLs haven't
|
||||
* been set at the options/view level, set them to none.
|
||||
*/
|
||||
CHECK(dns_acl_none(mctx, &view->cacheacl));
|
||||
if (view->cacheacl == NULL) {
|
||||
CHECK(dns_acl_none(mctx, &view->cacheacl));
|
||||
}
|
||||
if (view->cacheonacl == NULL) {
|
||||
CHECK(dns_acl_none(mctx, &view->cacheonacl));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Finished setting recursion and query-cache ACLs, so now we
|
||||
* can get the allow-query default if it wasn't set in named.conf
|
||||
*/
|
||||
if (view->queryacl == NULL) {
|
||||
/* global default only */
|
||||
CHECK(configure_view_acl(NULL, NULL, named_g_config,
|
||||
@@ -5042,11 +5113,6 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
|
||||
view->prefetch_eligible = view->prefetch_trigger + 6;
|
||||
}
|
||||
|
||||
obj = NULL;
|
||||
result = named_config_get(maps, "dnssec-enable", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
view->enablednssec = cfg_obj_asboolean(obj);
|
||||
|
||||
obj = NULL;
|
||||
result = named_config_get(optionmaps, "dnssec-lookaside", &obj);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
@@ -5348,8 +5414,35 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
|
||||
CHECK(dns_name_fromstring(name, cfg_obj_asstring(obj), 0,
|
||||
NULL));
|
||||
view->redirectzone = name;
|
||||
} else
|
||||
} else {
|
||||
view->redirectzone = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Exceptions to DNSSEC validation.
|
||||
*/
|
||||
obj = NULL;
|
||||
result = named_config_get(maps, "validate-except", &obj);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
result = dns_view_getntatable(view, &ntatable);
|
||||
}
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
for (element = cfg_list_first(obj);
|
||||
element != NULL;
|
||||
element = cfg_list_next(element))
|
||||
{
|
||||
dns_fixedname_t fntaname;
|
||||
dns_name_t *ntaname;
|
||||
|
||||
ntaname = dns_fixedname_initname(&fntaname);
|
||||
obj = cfg_listelt_value(element);
|
||||
CHECK(dns_name_fromstring(ntaname,
|
||||
cfg_obj_asstring(obj),
|
||||
0, NULL));
|
||||
CHECK(dns_ntatable_add(ntatable, ntaname,
|
||||
true, 0, 0xffffffffU));
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_DNSTAP
|
||||
/*
|
||||
@@ -5362,35 +5455,51 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
|
||||
result = ISC_R_SUCCESS;
|
||||
|
||||
cleanup:
|
||||
if (clients != NULL)
|
||||
if (ntatable != NULL) {
|
||||
dns_ntatable_detach(&ntatable);
|
||||
}
|
||||
if (clients != NULL) {
|
||||
dns_acl_detach(&clients);
|
||||
if (mapped != NULL)
|
||||
}
|
||||
if (mapped != NULL) {
|
||||
dns_acl_detach(&mapped);
|
||||
if (excluded != NULL)
|
||||
}
|
||||
if (excluded != NULL) {
|
||||
dns_acl_detach(&excluded);
|
||||
if (ring != NULL)
|
||||
}
|
||||
if (ring != NULL) {
|
||||
dns_tsigkeyring_detach(&ring);
|
||||
if (zone != NULL)
|
||||
}
|
||||
if (zone != NULL) {
|
||||
dns_zone_detach(&zone);
|
||||
if (dispatch4 != NULL)
|
||||
}
|
||||
if (dispatch4 != NULL) {
|
||||
dns_dispatch_detach(&dispatch4);
|
||||
if (dispatch6 != NULL)
|
||||
}
|
||||
if (dispatch6 != NULL) {
|
||||
dns_dispatch_detach(&dispatch6);
|
||||
if (resstats != NULL)
|
||||
}
|
||||
if (resstats != NULL) {
|
||||
isc_stats_detach(&resstats);
|
||||
if (resquerystats != NULL)
|
||||
}
|
||||
if (resquerystats != NULL) {
|
||||
dns_stats_detach(&resquerystats);
|
||||
if (order != NULL)
|
||||
}
|
||||
if (order != NULL) {
|
||||
dns_order_detach(&order);
|
||||
if (cmctx != NULL)
|
||||
}
|
||||
if (cmctx != NULL) {
|
||||
isc_mem_detach(&cmctx);
|
||||
if (hmctx != NULL)
|
||||
}
|
||||
if (hmctx != NULL) {
|
||||
isc_mem_detach(&hmctx);
|
||||
|
||||
if (cache != NULL)
|
||||
}
|
||||
if (cache != NULL) {
|
||||
dns_cache_detach(&cache);
|
||||
if (dctx != NULL)
|
||||
}
|
||||
if (dctx != NULL) {
|
||||
dns_dyndb_destroyctx(&dctx);
|
||||
}
|
||||
|
||||
return (result);
|
||||
}
|
||||
@@ -5734,6 +5843,7 @@ configure_zone(const cfg_obj_t *config, const cfg_obj_t *zconfig,
|
||||
const cfg_obj_t *typeobj = NULL;
|
||||
const cfg_obj_t *forwarders = NULL;
|
||||
const cfg_obj_t *forwardtype = NULL;
|
||||
const cfg_obj_t *ixfrfromdiffs = NULL;
|
||||
const cfg_obj_t *only = NULL;
|
||||
const cfg_obj_t *signing = NULL;
|
||||
const cfg_obj_t *viewobj = NULL;
|
||||
@@ -6087,6 +6197,15 @@ configure_zone(const cfg_obj_t *config, const cfg_obj_t *zconfig,
|
||||
dns_zone_setstats(raw, named_g_server->zonestats);
|
||||
CHECK(dns_zone_link(zone, raw));
|
||||
}
|
||||
if (cfg_map_get(zoptions, "ixfr-from-differences",
|
||||
&ixfrfromdiffs) == ISC_R_SUCCESS)
|
||||
{
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_SERVER, ISC_LOG_INFO,
|
||||
"zone '%s': 'ixfr-from-differences' is "
|
||||
"ignored for inline-signed zones",
|
||||
zname);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -6644,8 +6763,8 @@ dotat(dns_keytable_t *keytable, dns_keynode_t *keynode, void *arg) {
|
||||
*/
|
||||
domain = dns_fixedname_initname(&fdomain);
|
||||
dns_rdataset_init(&nameservers);
|
||||
result = dns_view_findzonecut(view, origin, domain, 0, 0, true,
|
||||
true, &nameservers, NULL);
|
||||
result = dns_view_findzonecut(view, origin, domain, NULL, 0, 0,
|
||||
true, true, &nameservers, NULL);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
result = dns_resolver_createfetch(view->resolver, tatname,
|
||||
dns_rdatatype_null, domain,
|
||||
@@ -6858,6 +6977,9 @@ removed(dns_zone_t *zone, void *uap) {
|
||||
case dns_zone_slave:
|
||||
type = "slave";
|
||||
break;
|
||||
case dns_zone_mirror:
|
||||
type = "mirror";
|
||||
break;
|
||||
case dns_zone_stub:
|
||||
type = "stub";
|
||||
break;
|
||||
@@ -8888,6 +9010,7 @@ load_configuration(const char *filename, named_server_t *server,
|
||||
bool first = true;
|
||||
isc_buffer_t b;
|
||||
unsigned int usedlength;
|
||||
unsigned int expectedlength;
|
||||
|
||||
for (element = cfg_list_first(obj);
|
||||
element != NULL;
|
||||
@@ -8933,21 +9056,26 @@ load_configuration(const char *filename, named_server_t *server,
|
||||
usedlength = isc_buffer_usedlength(&b);
|
||||
switch (server->sctx->cookiealg) {
|
||||
case ns_cookiealg_aes:
|
||||
if (usedlength != ISC_AES128_KEYLENGTH) {
|
||||
expectedlength = ISC_AES128_KEYLENGTH;
|
||||
if (usedlength != expectedlength) {
|
||||
CHECKM(ISC_R_RANGE,
|
||||
"AES cookie-secret must be "
|
||||
"128 bits");
|
||||
}
|
||||
break;
|
||||
case ns_cookiealg_sha1:
|
||||
if (usedlength != ISC_SHA1_DIGESTLENGTH) {
|
||||
expectedlength =
|
||||
isc_md_type_get_size(ISC_MD_SHA1);
|
||||
if (usedlength != expectedlength) {
|
||||
CHECKM(ISC_R_RANGE,
|
||||
"SHA1 cookie-secret must be "
|
||||
"160 bits");
|
||||
}
|
||||
break;
|
||||
case ns_cookiealg_sha256:
|
||||
if (usedlength != ISC_SHA256_DIGESTLENGTH) {
|
||||
expectedlength =
|
||||
isc_md_type_get_size(ISC_MD_SHA256);
|
||||
if (usedlength != expectedlength) {
|
||||
CHECKM(ISC_R_RANGE,
|
||||
"SHA256 cookie-secret must be "
|
||||
"256 bits");
|
||||
@@ -9089,7 +9217,6 @@ view_loaded(void *arg) {
|
||||
ns_zoneload_t *zl = (ns_zoneload_t *) arg;
|
||||
named_server_t *server = zl->server;
|
||||
bool reconfig = zl->reconfig;
|
||||
unsigned int refs;
|
||||
|
||||
|
||||
/*
|
||||
@@ -9100,35 +9227,43 @@ view_loaded(void *arg) {
|
||||
* We use the zoneload reference counter to let us
|
||||
* know when all views are finished.
|
||||
*/
|
||||
isc_refcount_decrement(&zl->refs, &refs);
|
||||
if (refs != 0)
|
||||
return (ISC_R_SUCCESS);
|
||||
if (isc_refcount_decrement(&zl->refs) == 1) {
|
||||
|
||||
isc_refcount_destroy(&zl->refs);
|
||||
isc_mem_put(server->mctx, zl, sizeof (*zl));
|
||||
isc_refcount_destroy(&zl->refs);
|
||||
isc_mem_put(server->mctx, zl, sizeof (*zl));
|
||||
|
||||
/*
|
||||
* To maintain compatibility with log parsing tools that might
|
||||
* be looking for this string after "rndc reconfig", we keep it
|
||||
* as it is
|
||||
*/
|
||||
if (reconfig) {
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_SERVER, ISC_LOG_INFO,
|
||||
"any newly configured zones are now loaded");
|
||||
} else {
|
||||
/*
|
||||
* To maintain compatibility with log parsing tools that might
|
||||
* be looking for this string after "rndc reconfig", we keep it
|
||||
* as it is
|
||||
*/
|
||||
if (reconfig) {
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_SERVER, ISC_LOG_INFO,
|
||||
"any newly configured zones are now loaded");
|
||||
} else {
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_SERVER, ISC_LOG_NOTICE,
|
||||
"all zones loaded");
|
||||
}
|
||||
|
||||
CHECKFATAL(dns_zonemgr_forcemaint(server->zonemgr),
|
||||
"forcing zone maintenance");
|
||||
|
||||
named_os_started();
|
||||
|
||||
#ifdef HAVE_FIPS_MODE
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_SERVER, ISC_LOG_NOTICE,
|
||||
"all zones loaded");
|
||||
"FIPS mode is %s",
|
||||
FIPS_mode() ? "enabled" : "disabled");
|
||||
#endif
|
||||
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_SERVER, ISC_LOG_NOTICE,
|
||||
"running");
|
||||
}
|
||||
|
||||
CHECKFATAL(dns_zonemgr_forcemaint(server->zonemgr),
|
||||
"forcing zone maintenance");
|
||||
|
||||
named_os_started();
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_SERVER, ISC_LOG_NOTICE, "running");
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
@@ -9137,7 +9272,6 @@ load_zones(named_server_t *server, bool init, bool reconfig) {
|
||||
isc_result_t result;
|
||||
dns_view_t *view;
|
||||
ns_zoneload_t *zl;
|
||||
unsigned int refs = 0;
|
||||
|
||||
zl = isc_mem_get(server->mctx, sizeof (*zl));
|
||||
if (zl == NULL)
|
||||
@@ -9158,14 +9292,14 @@ load_zones(named_server_t *server, bool init, bool reconfig) {
|
||||
view = ISC_LIST_NEXT(view, link))
|
||||
{
|
||||
if (view->managed_keys != NULL) {
|
||||
result = dns_zone_load(view->managed_keys);
|
||||
result = dns_zone_load(view->managed_keys, false);
|
||||
if (result != ISC_R_SUCCESS &&
|
||||
result != DNS_R_UPTODATE &&
|
||||
result != DNS_R_CONTINUE)
|
||||
goto cleanup;
|
||||
}
|
||||
if (view->redirect != NULL) {
|
||||
result = dns_zone_load(view->redirect);
|
||||
result = dns_zone_load(view->redirect, false);
|
||||
if (result != ISC_R_SUCCESS &&
|
||||
result != DNS_R_UPTODATE &&
|
||||
result != DNS_R_CONTINUE)
|
||||
@@ -9176,13 +9310,12 @@ load_zones(named_server_t *server, bool init, bool reconfig) {
|
||||
* 'dns_view_asyncload' calls view_loaded if there are no
|
||||
* zones.
|
||||
*/
|
||||
isc_refcount_increment(&zl->refs, NULL);
|
||||
CHECK(dns_view_asyncload(view, view_loaded, zl));
|
||||
isc_refcount_increment(&zl->refs);
|
||||
CHECK(dns_view_asyncload(view, reconfig, view_loaded, zl));
|
||||
}
|
||||
|
||||
cleanup:
|
||||
isc_refcount_decrement(&zl->refs, &refs);
|
||||
if (refs == 0) {
|
||||
if (isc_refcount_decrement(&zl->refs) == 1) {
|
||||
isc_refcount_destroy(&zl->refs);
|
||||
isc_mem_put(server->mctx, zl, sizeof (*zl));
|
||||
} else if (init) {
|
||||
@@ -10037,7 +10170,8 @@ named_server_retransfercommand(named_server_t *server, isc_lex_t *lex,
|
||||
dns_zone_detach(&raw);
|
||||
}
|
||||
type = dns_zone_gettype(zone);
|
||||
if (type == dns_zone_slave || type == dns_zone_stub ||
|
||||
if (type == dns_zone_slave || type == dns_zone_mirror ||
|
||||
type == dns_zone_stub ||
|
||||
(type == dns_zone_redirect &&
|
||||
dns_zone_getredirecttype(zone) == dns_zone_slave))
|
||||
dns_zone_forcereload(zone);
|
||||
@@ -10069,12 +10203,14 @@ named_server_reloadcommand(named_server_t *server, isc_lex_t *lex,
|
||||
msg = "server reload successful";
|
||||
} else {
|
||||
type = dns_zone_gettype(zone);
|
||||
if (type == dns_zone_slave || type == dns_zone_stub) {
|
||||
if (type == dns_zone_slave || type == dns_zone_mirror ||
|
||||
type == dns_zone_stub)
|
||||
{
|
||||
dns_zone_refresh(zone);
|
||||
dns_zone_detach(&zone);
|
||||
msg = "zone refresh queued";
|
||||
} else {
|
||||
result = dns_zone_load(zone);
|
||||
result = dns_zone_load(zone, false);
|
||||
dns_zone_detach(&zone);
|
||||
switch (result) {
|
||||
case ISC_R_SUCCESS:
|
||||
@@ -10160,7 +10296,7 @@ named_server_refreshcommand(named_server_t *server, isc_lex_t *lex,
|
||||
isc_result_t result;
|
||||
dns_zone_t *zone = NULL, *raw = NULL;
|
||||
const char msg1[] = "zone refresh queued";
|
||||
const char msg2[] = "not a slave or stub zone";
|
||||
const char msg2[] = "not a slave, mirror, or stub zone";
|
||||
dns_zonetype_t type;
|
||||
|
||||
result = zone_from_args(server, lex, NULL, &zone, NULL,
|
||||
@@ -10178,7 +10314,9 @@ named_server_refreshcommand(named_server_t *server, isc_lex_t *lex,
|
||||
}
|
||||
|
||||
type = dns_zone_gettype(zone);
|
||||
if (type == dns_zone_slave || type == dns_zone_stub) {
|
||||
if (type == dns_zone_slave || type == dns_zone_mirror ||
|
||||
type == dns_zone_stub)
|
||||
{
|
||||
dns_zone_refresh(zone);
|
||||
dns_zone_detach(&zone);
|
||||
(void) putstr(text, msg1);
|
||||
@@ -12728,7 +12866,7 @@ do_addzone(named_server_t *server, ns_cfgctx_t *cfg, dns_view_t *view,
|
||||
* Load the zone from the master file. If this fails, we'll
|
||||
* need to undo the configuration we've done already.
|
||||
*/
|
||||
result = dns_zone_loadnew(zone);
|
||||
result = dns_zone_load(zone, true);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
dns_db_t *dbp = NULL;
|
||||
|
||||
@@ -12918,7 +13056,7 @@ do_modzone(named_server_t *server, ns_cfgctx_t *cfg, dns_view_t *view,
|
||||
}
|
||||
|
||||
/* Load the zone from the master file if it needs reloading. */
|
||||
result = dns_zone_loadnew(zone);
|
||||
result = dns_zone_load(zone, true);
|
||||
|
||||
/*
|
||||
* Dynamic zones need no reloading, so we can pass this result.
|
||||
@@ -13370,6 +13508,7 @@ named_server_delzone(named_server_t *server, isc_lex_t *lex,
|
||||
TCHECK(putstr(text, zonename));
|
||||
TCHECK(putstr(text, "' and associated files will be deleted."));
|
||||
} else if (dns_zone_gettype(mayberaw) == dns_zone_slave ||
|
||||
dns_zone_gettype(mayberaw) == dns_zone_mirror ||
|
||||
dns_zone_gettype(mayberaw) == dns_zone_stub)
|
||||
{
|
||||
bool first;
|
||||
@@ -13912,7 +14051,10 @@ named_server_zonestatus(named_server_t *server, isc_lex_t *lex,
|
||||
type = "master";
|
||||
break;
|
||||
case dns_zone_slave:
|
||||
type = dns_zone_ismirror(zone) ? "mirror" : "slave";
|
||||
type = "slave";
|
||||
break;
|
||||
case dns_zone_mirror:
|
||||
type = "mirror";
|
||||
break;
|
||||
case dns_zone_stub:
|
||||
type = "stub";
|
||||
@@ -13968,6 +14110,7 @@ named_server_zonestatus(named_server_t *server, isc_lex_t *lex,
|
||||
|
||||
/* Refresh/expire times */
|
||||
if (zonetype == dns_zone_slave ||
|
||||
zonetype == dns_zone_mirror ||
|
||||
zonetype == dns_zone_stub ||
|
||||
zonetype == dns_zone_redirect)
|
||||
{
|
||||
@@ -14181,6 +14324,7 @@ named_server_nta(named_server_t *server, isc_lex_t *lex,
|
||||
dns_name_t *fname;
|
||||
dns_ttl_t ntattl;
|
||||
bool ttlset = false, excl = false;
|
||||
dns_rdataclass_t rdclass = dns_rdataclass_in;
|
||||
|
||||
UNUSED(force);
|
||||
|
||||
@@ -14188,18 +14332,20 @@ named_server_nta(named_server_t *server, isc_lex_t *lex,
|
||||
|
||||
/* Skip the command name. */
|
||||
ptr = next_token(lex, text);
|
||||
if (ptr == NULL)
|
||||
if (ptr == NULL) {
|
||||
return (ISC_R_UNEXPECTEDEND);
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
/* Check for options */
|
||||
ptr = next_token(lex, text);
|
||||
if (ptr == NULL)
|
||||
if (ptr == NULL) {
|
||||
return (ISC_R_UNEXPECTEDEND);
|
||||
}
|
||||
|
||||
if (argcheck(ptr, "dump"))
|
||||
if (argcheck(ptr, "dump")) {
|
||||
dump = true;
|
||||
else if (argcheck(ptr, "remove")) {
|
||||
} else if (argcheck(ptr, "remove")) {
|
||||
ntattl = 0;
|
||||
ttlset = true;
|
||||
} else if (argcheck(ptr, "force")) {
|
||||
@@ -14229,8 +14375,22 @@ named_server_nta(named_server_t *server, isc_lex_t *lex,
|
||||
|
||||
ttlset = true;
|
||||
continue;
|
||||
} else
|
||||
} else if (argcheck(ptr, "class")) {
|
||||
isc_textregion_t tr;
|
||||
|
||||
ptr = next_token(lex, text);
|
||||
if (ptr == NULL) {
|
||||
msg = "No class specified";
|
||||
CHECK(ISC_R_UNEXPECTEDEND);
|
||||
}
|
||||
|
||||
tr.base = ptr;
|
||||
tr.length = strlen(ptr);
|
||||
CHECK(dns_rdataclass_fromtext(&rdclass, &tr));
|
||||
continue;
|
||||
} else {
|
||||
nametext = ptr;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -14243,11 +14403,13 @@ named_server_nta(named_server_t *server, isc_lex_t *lex,
|
||||
view != NULL;
|
||||
view = ISC_LIST_NEXT(view, link))
|
||||
{
|
||||
if (ntatable != NULL)
|
||||
if (ntatable != NULL) {
|
||||
dns_ntatable_detach(&ntatable);
|
||||
}
|
||||
result = dns_view_getntatable(view, &ntatable);
|
||||
if (result == ISC_R_NOTFOUND)
|
||||
if (result == ISC_R_NOTFOUND) {
|
||||
continue;
|
||||
}
|
||||
CHECK(dns_ntatable_totext(ntatable, text));
|
||||
}
|
||||
CHECK(putnull(text));
|
||||
@@ -14264,17 +14426,19 @@ named_server_nta(named_server_t *server, isc_lex_t *lex,
|
||||
}
|
||||
|
||||
/* Get the NTA name. */
|
||||
if (nametext == NULL)
|
||||
if (nametext == NULL) {
|
||||
nametext = next_token(lex, text);
|
||||
if (nametext == NULL)
|
||||
}
|
||||
if (nametext == NULL) {
|
||||
return (ISC_R_UNEXPECTEDEND);
|
||||
}
|
||||
|
||||
/* Copy nametext as it'll be overwritten by next_token() */
|
||||
strlcpy(namebuf, nametext, DNS_NAME_FORMATSIZE);
|
||||
|
||||
if (strcmp(namebuf, ".") == 0)
|
||||
if (strcmp(namebuf, ".") == 0) {
|
||||
ntaname = dns_rootname;
|
||||
else {
|
||||
} else {
|
||||
isc_buffer_t b;
|
||||
isc_buffer_init(&b, namebuf, strlen(namebuf));
|
||||
isc_buffer_add(&b, strlen(namebuf));
|
||||
@@ -14294,18 +14458,27 @@ named_server_nta(named_server_t *server, isc_lex_t *lex,
|
||||
view != NULL;
|
||||
view = ISC_LIST_NEXT(view, link))
|
||||
{
|
||||
if (viewname != NULL &&
|
||||
strcmp(view->name, viewname) != 0)
|
||||
continue;
|
||||
static bool first = true;
|
||||
|
||||
if (view->nta_lifetime == 0)
|
||||
if (viewname != NULL && strcmp(view->name, viewname) != 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!ttlset)
|
||||
if (view->rdclass != rdclass && rdclass != dns_rdataclass_any) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (view->nta_lifetime == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!ttlset) {
|
||||
ntattl = view->nta_lifetime;
|
||||
}
|
||||
|
||||
if (ntatable != NULL)
|
||||
if (ntatable != NULL) {
|
||||
dns_ntatable_detach(&ntatable);
|
||||
}
|
||||
|
||||
result = dns_view_getntatable(view, &ntatable);
|
||||
if (result == ISC_R_NOTFOUND) {
|
||||
@@ -14328,6 +14501,11 @@ named_server_nta(named_server_t *server, isc_lex_t *lex,
|
||||
isc_time_set(&t, when, 0);
|
||||
isc_time_formattimestamp(&t, tbuf, sizeof(tbuf));
|
||||
|
||||
if (!first) {
|
||||
CHECK(putstr(text, "\n"));
|
||||
}
|
||||
first = false;
|
||||
|
||||
CHECK(putstr(text, "Negative trust anchor added: "));
|
||||
CHECK(putstr(text, namebuf));
|
||||
CHECK(putstr(text, "/"));
|
||||
@@ -14342,6 +14520,11 @@ named_server_nta(named_server_t *server, isc_lex_t *lex,
|
||||
} else {
|
||||
CHECK(dns_ntatable_delete(ntatable, ntaname));
|
||||
|
||||
if (!first) {
|
||||
CHECK(putstr(text, "\n"));
|
||||
}
|
||||
first = false;
|
||||
|
||||
CHECK(putstr(text, "Negative trust anchor removed: "));
|
||||
CHECK(putstr(text, namebuf));
|
||||
CHECK(putstr(text, "/"));
|
||||
@@ -14361,20 +14544,21 @@ named_server_nta(named_server_t *server, isc_lex_t *lex,
|
||||
"for view '%s': %s",
|
||||
view->name, isc_result_totext(result));
|
||||
}
|
||||
|
||||
CHECK(putnull(text));
|
||||
|
||||
}
|
||||
|
||||
CHECK(putnull(text));
|
||||
|
||||
cleanup:
|
||||
if (msg != NULL) {
|
||||
(void) putstr(text, msg);
|
||||
(void) putnull(text);
|
||||
}
|
||||
if (excl)
|
||||
if (excl) {
|
||||
isc_task_endexclusive(server->task);
|
||||
if (ntatable != NULL)
|
||||
}
|
||||
if (ntatable != NULL) {
|
||||
dns_ntatable_detach(&ntatable);
|
||||
}
|
||||
return (result);
|
||||
}
|
||||
|
||||
|
||||
@@ -94,6 +94,7 @@ user_zonetype( dns_zone_t *zone ) {
|
||||
{ dns_zone_none, "none" },
|
||||
{ dns_zone_master, "master" },
|
||||
{ dns_zone_slave, "slave" },
|
||||
{ dns_zone_mirror, "mirror" },
|
||||
{ dns_zone_stub, "stub" },
|
||||
{ dns_zone_staticstub, "static-stub" },
|
||||
{ dns_zone_key, "key" },
|
||||
|
||||
+37
-143
@@ -23,8 +23,8 @@
|
||||
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <grp.h>
|
||||
#include <fcntl.h>
|
||||
#include <grp.h> /* Required for initgroups() on IRIX. */
|
||||
#include <pwd.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -40,7 +40,7 @@
|
||||
#include <isc/print.h>
|
||||
#include <isc/resource.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/strerror.h>
|
||||
#include <isc/strerr.h>
|
||||
#include <isc/string.h>
|
||||
|
||||
#include <named/globals.h>
|
||||
@@ -59,54 +59,6 @@ static int singletonfd = -1;
|
||||
#define ISC_FACILITY LOG_DAEMON
|
||||
#endif
|
||||
|
||||
/*
|
||||
* If there's no <sys/capability.h>, we don't care about <sys/prctl.h>
|
||||
*/
|
||||
#ifndef HAVE_SYS_CAPABILITY_H
|
||||
#undef HAVE_SYS_PRCTL_H
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Linux defines:
|
||||
* (T) HAVE_LINUXTHREADS
|
||||
* (C) HAVE_SYS_CAPABILITY_H
|
||||
* (P) HAVE_SYS_PRCTL_H
|
||||
* The possible cases are:
|
||||
* none: setuid() normally
|
||||
* T: no setuid()
|
||||
* C: setuid() normally, drop caps (keep CAP_SETUID)
|
||||
* T+C: no setuid(), drop caps (don't keep CAP_SETUID)
|
||||
* T+C+P: setuid() early, drop caps (keep CAP_SETUID)
|
||||
* C+P: setuid() normally, drop caps (keep CAP_SETUID)
|
||||
* P: not possible
|
||||
* T+P: not possible
|
||||
*
|
||||
* if (C)
|
||||
* caps = BIND_SERVICE + CHROOT + SETGID
|
||||
* if ((T && C && P) || !T)
|
||||
* caps += SETUID
|
||||
* endif
|
||||
* capset(caps)
|
||||
* endif
|
||||
* if (T && C && P && -u)
|
||||
* setuid()
|
||||
* else if (T && -u)
|
||||
* fail
|
||||
* --> start threads
|
||||
* if (!T && -u)
|
||||
* setuid()
|
||||
* if (C && (P || !-u))
|
||||
* caps = BIND_SERVICE
|
||||
* capset(caps)
|
||||
* endif
|
||||
*
|
||||
* It will be nice when Linux threads work properly with setuid().
|
||||
*/
|
||||
|
||||
#ifdef HAVE_LINUXTHREADS
|
||||
static pid_t mainpid = 0;
|
||||
#endif
|
||||
|
||||
static struct passwd *runas_pw = NULL;
|
||||
static bool done_setuid = false;
|
||||
static int dfd[2] = { -1, -1 };
|
||||
@@ -117,10 +69,7 @@ static bool non_root = false;
|
||||
static bool non_root_caps = false;
|
||||
|
||||
#include <sys/capability.h>
|
||||
|
||||
#ifdef HAVE_SYS_PRCTL_H
|
||||
#include <sys/prctl.h> /* Required for prctl(). */
|
||||
#endif /* HAVE_SYS_PRCTL_H */
|
||||
#include <sys/prctl.h>
|
||||
|
||||
static void
|
||||
linux_setcaps(cap_t caps) {
|
||||
@@ -130,7 +79,7 @@ linux_setcaps(cap_t caps) {
|
||||
return;
|
||||
}
|
||||
if (cap_set_proc(caps) < 0) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlyfatal("cap_set_proc() failed: %s:"
|
||||
" please ensure that the capset kernel"
|
||||
" module is loaded. see insmod(8)",
|
||||
@@ -146,13 +95,13 @@ linux_setcaps(cap_t caps) {
|
||||
if (err != -1 && curval) { \
|
||||
err = cap_set_flag(caps, CAP_EFFECTIVE, 1, &capval, CAP_SET); \
|
||||
if (err == -1) { \
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf)); \
|
||||
strerror_r(errno, strbuf, sizeof(strbuf)); \
|
||||
named_main_earlyfatal("cap_set_proc failed: %s", strbuf); \
|
||||
} \
|
||||
\
|
||||
err = cap_set_flag(caps, CAP_PERMITTED, 1, &capval, CAP_SET); \
|
||||
if (err == -1) { \
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf)); \
|
||||
strerror_r(errno, strbuf, sizeof(strbuf)); \
|
||||
named_main_earlyfatal("cap_set_proc failed: %s", strbuf); \
|
||||
} \
|
||||
} \
|
||||
@@ -161,12 +110,12 @@ linux_setcaps(cap_t caps) {
|
||||
do { \
|
||||
caps = cap_init(); \
|
||||
if (caps == NULL) { \
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf)); \
|
||||
strerror_r(errno, strbuf, sizeof(strbuf)); \
|
||||
named_main_earlyfatal("cap_init failed: %s", strbuf); \
|
||||
} \
|
||||
curcaps = cap_get_proc(); \
|
||||
if (curcaps == NULL) { \
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf)); \
|
||||
strerror_r(errno, strbuf, sizeof(strbuf)); \
|
||||
named_main_earlyfatal("cap_get_proc failed: %s", strbuf); \
|
||||
} \
|
||||
} while (0)
|
||||
@@ -201,15 +150,11 @@ linux_initialprivs(void) {
|
||||
*/
|
||||
SET_CAP(CAP_SYS_CHROOT);
|
||||
|
||||
#if defined(HAVE_SYS_PRCTL_H) || !defined(HAVE_LINUXTHREADS)
|
||||
/*
|
||||
* We can setuid() only if either the kernel supports keeping
|
||||
* capabilities after setuid() (which we don't know until we've
|
||||
* tried) or we're not using threads. If either of these is
|
||||
* true, we want the setuid capability.
|
||||
* We need setuid() as the kernel supports keeping capabilities after
|
||||
* setuid().
|
||||
*/
|
||||
SET_CAP(CAP_SETUID);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Since we call initgroups, we need this.
|
||||
@@ -275,7 +220,6 @@ linux_minprivs(void) {
|
||||
FREE_CAP;
|
||||
}
|
||||
|
||||
#ifdef HAVE_SYS_PRCTL_H
|
||||
static void
|
||||
linux_keepcaps(void) {
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
@@ -286,7 +230,7 @@ linux_keepcaps(void) {
|
||||
|
||||
if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) < 0) {
|
||||
if (errno != EINVAL) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlyfatal("prctl() failed: %s", strbuf);
|
||||
}
|
||||
} else {
|
||||
@@ -295,11 +239,9 @@ linux_keepcaps(void) {
|
||||
non_root = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* HAVE_SYS_CAPABILITY_H */
|
||||
|
||||
|
||||
static void
|
||||
setup_syslog(const char *progname) {
|
||||
int options;
|
||||
@@ -317,9 +259,6 @@ named_os_init(const char *progname) {
|
||||
#ifdef HAVE_SYS_CAPABILITY_H
|
||||
linux_initialprivs();
|
||||
#endif
|
||||
#ifdef HAVE_LINUXTHREADS
|
||||
mainpid = getpid();
|
||||
#endif
|
||||
#ifdef SIGXFSZ
|
||||
signal(SIGXFSZ, SIG_IGN);
|
||||
#endif
|
||||
@@ -331,13 +270,13 @@ named_os_daemonize(void) {
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
|
||||
if (pipe(dfd) == -1) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlyfatal("pipe(): %s", strbuf);
|
||||
}
|
||||
|
||||
pid = fork();
|
||||
if (pid == -1) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlyfatal("fork(): %s", strbuf);
|
||||
}
|
||||
if (pid != 0) {
|
||||
@@ -362,12 +301,8 @@ named_os_daemonize(void) {
|
||||
* We're the child.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_LINUXTHREADS
|
||||
mainpid = getpid();
|
||||
#endif
|
||||
|
||||
if (setsid() == -1) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlyfatal("setsid(): %s", strbuf);
|
||||
}
|
||||
|
||||
@@ -450,14 +385,14 @@ named_os_chroot(const char *root) {
|
||||
if (root != NULL) {
|
||||
#ifdef HAVE_CHROOT
|
||||
if (chroot(root) < 0) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlyfatal("chroot(): %s", strbuf);
|
||||
}
|
||||
#else
|
||||
named_main_earlyfatal("chroot(): disabled");
|
||||
#endif
|
||||
if (chdir("/") < 0) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlyfatal("chdir(/): %s", strbuf);
|
||||
}
|
||||
#ifdef HAVE_LIBSCF
|
||||
@@ -484,7 +419,7 @@ named_os_inituserinfo(const char *username) {
|
||||
|
||||
if (getuid() == 0) {
|
||||
if (initgroups(runas_pw->pw_name, runas_pw->pw_gid) < 0) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlyfatal("initgroups(): %s", strbuf);
|
||||
}
|
||||
}
|
||||
@@ -499,42 +434,27 @@ named_os_changeuser(void) {
|
||||
|
||||
done_setuid = true;
|
||||
|
||||
#ifdef HAVE_LINUXTHREADS
|
||||
#ifdef HAVE_SYS_CAPABILITY_H
|
||||
if (!non_root_caps) {
|
||||
named_main_earlyfatal("-u with Linux threads not supported: "
|
||||
"requires kernel support for "
|
||||
"prctl(PR_SET_KEEPCAPS)");
|
||||
}
|
||||
#else
|
||||
named_main_earlyfatal("-u with Linux threads not supported: "
|
||||
"no capabilities support or capabilities "
|
||||
"disabled at build time");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if (setgid(runas_pw->pw_gid) < 0) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlyfatal("setgid(): %s", strbuf);
|
||||
}
|
||||
|
||||
if (setuid(runas_pw->pw_uid) < 0) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlyfatal("setuid(): %s", strbuf);
|
||||
}
|
||||
|
||||
#if defined(HAVE_SYS_PRCTL_H) && defined(PR_SET_DUMPABLE)
|
||||
#if defined(HAVE_SYS_CAPABILITY_H)
|
||||
/*
|
||||
* Restore the ability of named to drop core after the setuid()
|
||||
* call has disabled it.
|
||||
*/
|
||||
if (prctl(PR_SET_DUMPABLE,1,0,0,0) < 0) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlywarning("prctl(PR_SET_DUMPABLE) failed: %s",
|
||||
strbuf);
|
||||
}
|
||||
#endif
|
||||
#if defined(HAVE_SYS_CAPABILITY_H) && !defined(HAVE_LINUXTHREADS)
|
||||
|
||||
linux_minprivs();
|
||||
#endif
|
||||
}
|
||||
@@ -548,7 +468,7 @@ ns_os_uid(void) {
|
||||
|
||||
void
|
||||
named_os_adjustnofile(void) {
|
||||
#ifdef HAVE_LINUXTHREADS
|
||||
#if defined(__linux__)
|
||||
isc_result_t result;
|
||||
isc_resourcevalue_t newvalue;
|
||||
|
||||
@@ -566,15 +486,9 @@ named_os_adjustnofile(void) {
|
||||
|
||||
void
|
||||
named_os_minprivs(void) {
|
||||
#ifdef HAVE_SYS_PRCTL_H
|
||||
#if defined(HAVE_SYS_CAPABILITY_H)
|
||||
linux_keepcaps();
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_LINUXTHREADS
|
||||
named_os_changeuser(); /* Call setuid() before threads are started */
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_SYS_CAPABILITY_H) && defined(HAVE_LINUXTHREADS)
|
||||
named_os_changeuser();
|
||||
linux_minprivs();
|
||||
#endif
|
||||
}
|
||||
@@ -648,7 +562,7 @@ mkdirpath(char *filename, void (*report)(const char *, ...)) {
|
||||
|
||||
if (stat(filename, &sb) == -1) {
|
||||
if (errno != ENOENT) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
(*report)("couldn't stat '%s': %s", filename,
|
||||
strbuf);
|
||||
goto error;
|
||||
@@ -668,7 +582,7 @@ mkdirpath(char *filename, void (*report)(const char *, ...)) {
|
||||
mode |= S_IRGRP | S_IXGRP; /* g=rx */
|
||||
mode |= S_IROTH | S_IXOTH; /* o=rx */
|
||||
if (mkdir(filename, mode) == -1) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
(*report)("couldn't mkdir '%s': %s", filename,
|
||||
strbuf);
|
||||
goto error;
|
||||
@@ -676,7 +590,7 @@ mkdirpath(char *filename, void (*report)(const char *, ...)) {
|
||||
if (runas_pw != NULL &&
|
||||
chown(filename, runas_pw->pw_uid,
|
||||
runas_pw->pw_gid) == -1) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
(*report)("couldn't chown '%s': %s", filename,
|
||||
strbuf);
|
||||
}
|
||||
@@ -703,7 +617,7 @@ setperms(uid_t uid, gid_t gid) {
|
||||
#endif
|
||||
#if defined(HAVE_SETEGID)
|
||||
if (getegid() != gid && setegid(gid) == -1) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlywarning("unable to set effective "
|
||||
"gid to %ld: %s",
|
||||
(long)gid, strbuf);
|
||||
@@ -711,7 +625,7 @@ setperms(uid_t uid, gid_t gid) {
|
||||
#elif defined(HAVE_SETRESGID)
|
||||
if (getresgid(&tmpg, &oldgid, &tmpg) == -1 || oldgid != gid) {
|
||||
if (setresgid(-1, gid, -1) == -1) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlywarning("unable to set effective "
|
||||
"gid to %d: %s", gid, strbuf);
|
||||
}
|
||||
@@ -720,7 +634,7 @@ setperms(uid_t uid, gid_t gid) {
|
||||
|
||||
#if defined(HAVE_SETEUID)
|
||||
if (geteuid() != uid && seteuid(uid) == -1) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlywarning("unable to set effective "
|
||||
"uid to %ld: %s",
|
||||
(long)uid, strbuf);
|
||||
@@ -728,7 +642,7 @@ setperms(uid_t uid, gid_t gid) {
|
||||
#elif defined(HAVE_SETRESUID)
|
||||
if (getresuid(&tmpu, &olduid, &tmpu) == -1 || olduid != uid) {
|
||||
if (setresuid(-1, uid, -1) == -1) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlywarning("unable to set effective "
|
||||
"uid to %d: %s", uid, strbuf);
|
||||
}
|
||||
@@ -747,7 +661,7 @@ named_os_openfile(const char *filename, mode_t mode, bool switch_user) {
|
||||
*/
|
||||
f = strdup(filename);
|
||||
if (f == NULL) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlywarning("couldn't strdup() '%s': %s",
|
||||
filename, strbuf);
|
||||
return (NULL);
|
||||
@@ -759,21 +673,16 @@ named_os_openfile(const char *filename, mode_t mode, bool switch_user) {
|
||||
free(f);
|
||||
|
||||
if (switch_user && runas_pw != NULL) {
|
||||
#ifndef HAVE_LINUXTHREADS
|
||||
gid_t oldgid = getgid();
|
||||
#endif
|
||||
/* Set UID/GID to the one we'll be running with eventually */
|
||||
setperms(runas_pw->pw_uid, runas_pw->pw_gid);
|
||||
|
||||
fd = safe_open(filename, mode, false);
|
||||
|
||||
#ifndef HAVE_LINUXTHREADS
|
||||
/* Restore UID/GID to root */
|
||||
setperms(0, oldgid);
|
||||
#endif /* HAVE_LINUXTHREADS */
|
||||
|
||||
if (fd == -1) {
|
||||
#ifndef HAVE_LINUXTHREADS
|
||||
fd = safe_open(filename, mode, false);
|
||||
if (fd != -1) {
|
||||
named_main_earlywarning("Required root "
|
||||
@@ -786,20 +695,13 @@ named_os_openfile(const char *filename, mode_t mode, bool switch_user) {
|
||||
named_main_earlywarning("Please check file and "
|
||||
"directory permissions "
|
||||
"or reconfigure the filename.");
|
||||
#else /* HAVE_LINUXTHREADS */
|
||||
named_main_earlywarning("Could not open "
|
||||
"'%s'.", filename);
|
||||
named_main_earlywarning("Please check file and "
|
||||
"directory permissions "
|
||||
"or reconfigure the filename.");
|
||||
#endif /* HAVE_LINUXTHREADS */
|
||||
}
|
||||
} else {
|
||||
fd = safe_open(filename, mode, false);
|
||||
}
|
||||
|
||||
if (fd < 0) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlywarning("could not open file '%s': %s",
|
||||
filename, strbuf);
|
||||
return (NULL);
|
||||
@@ -807,7 +709,7 @@ named_os_openfile(const char *filename, mode_t mode, bool switch_user) {
|
||||
|
||||
fp = fdopen(fd, "w");
|
||||
if (fp == NULL) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlywarning("could not fdopen() file '%s': %s",
|
||||
filename, strbuf);
|
||||
}
|
||||
@@ -835,7 +737,7 @@ named_os_writepidfile(const char *filename, bool first_time) {
|
||||
|
||||
pidfile = strdup(filename);
|
||||
if (pidfile == NULL) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
(*report)("couldn't strdup() '%s': %s", filename, strbuf);
|
||||
return;
|
||||
}
|
||||
@@ -846,11 +748,7 @@ named_os_writepidfile(const char *filename, bool first_time) {
|
||||
cleanup_pidfile();
|
||||
return;
|
||||
}
|
||||
#ifdef HAVE_LINUXTHREADS
|
||||
pid = mainpid;
|
||||
#else
|
||||
pid = getpid();
|
||||
#endif
|
||||
if (fprintf(fh, "%ld\n", (long)pid) < 0) {
|
||||
(*report)("fprintf() to pid file '%s' failed", filename);
|
||||
(void)fclose(fh);
|
||||
@@ -882,7 +780,7 @@ named_os_issingleton(const char *filename) {
|
||||
*/
|
||||
lockfile = strdup(filename);
|
||||
if (lockfile == NULL) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
named_main_earlyfatal("couldn't allocate memory for '%s': %s",
|
||||
filename, strbuf);
|
||||
} else {
|
||||
@@ -956,11 +854,7 @@ named_os_shutdownmsg(char *command, isc_buffer_t *text) {
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef HAVE_LINUXTHREADS
|
||||
pid = mainpid;
|
||||
#else
|
||||
pid = getpid();
|
||||
#endif
|
||||
|
||||
(void)isc_buffer_printf(text, "pid: %ld", (long)pid);
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccc\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);..\..\..\lib\ns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>@LIBXML2_LIB@@OPENSSL_LIB@@GSSAPI_LIB@@GEOIP_LIB@libisc.lib;libdns.lib;libisccc.lib;libisccfg.lib;libbind9.lib;libns.lib;version.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@@LIBXML2_LIB@@GSSAPI_LIB@@GEOIP_LIB@libisc.lib;libdns.lib;libisccc.lib;libisccfg.lib;libbind9.lib;libns.lib;version.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
|
||||
@@ -98,7 +98,7 @@
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccc\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);..\..\..\lib\ns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>@LIBXML2_LIB@@OPENSSL_LIB@@GSSAPI_LIB@@GEOIP_LIB@libisc.lib;libdns.lib;libisccc.lib;libisccfg.lib;libbind9.lib;libns.lib;version.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@@LIBXML2_LIB@@GSSAPI_LIB@@GEOIP_LIB@libisc.lib;libdns.lib;libisccc.lib;libisccfg.lib;libbind9.lib;libns.lib;version.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
|
||||
#include <isc/print.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/strerror.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/ntpaths.h>
|
||||
#include <isc/util.h>
|
||||
@@ -231,7 +230,7 @@ named_os_openfile(const char *filename, int mode, bool switch_user) {
|
||||
UNUSED(switch_user);
|
||||
fd = safe_open(filename, mode, false);
|
||||
if (fd < 0) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_s(strbuf, sizeof(strbuf), errno);
|
||||
named_main_earlywarning("could not open file '%s': %s",
|
||||
filename, strbuf);
|
||||
return (NULL);
|
||||
@@ -239,7 +238,7 @@ named_os_openfile(const char *filename, int mode, bool switch_user) {
|
||||
|
||||
fp = fdopen(fd, "w");
|
||||
if (fp == NULL) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_s(strbuf, sizeof(strbuf), errno);
|
||||
named_main_earlywarning("could not fdopen() file '%s': %s",
|
||||
filename, strbuf);
|
||||
close(fd);
|
||||
@@ -268,7 +267,7 @@ named_os_writepidfile(const char *filename, bool first_time) {
|
||||
|
||||
pidfile = strdup(filename);
|
||||
if (pidfile == NULL) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_s(strbuf, sizeof(strbuf), errno);
|
||||
(*report)("couldn't strdup() '%s': %s", filename, strbuf);
|
||||
return;
|
||||
}
|
||||
@@ -312,7 +311,7 @@ named_os_issingleton(const char *filename) {
|
||||
|
||||
lockfile = strdup(filename);
|
||||
if (lockfile == NULL) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
strerror_s(strbuf, sizeof(strbuf), errno);
|
||||
named_main_earlyfatal("couldn't allocate memory for '%s': %s",
|
||||
filename, strbuf);
|
||||
}
|
||||
|
||||
+71
-51
@@ -224,7 +224,7 @@ configure_zone_ssutable(const cfg_obj_t *zconfig, dns_zone_t *zone,
|
||||
const char *str;
|
||||
bool grant = false;
|
||||
bool usezone = false;
|
||||
unsigned int mtype = dns_ssumatchtype_name;
|
||||
dns_ssumatchtype_t mtype = dns_ssumatchtype_name;
|
||||
dns_fixedname_t fname, fident;
|
||||
isc_buffer_t b;
|
||||
dns_rdatatype_t *types;
|
||||
@@ -755,8 +755,13 @@ checknames(dns_zonetype_t ztype, const cfg_obj_t **maps,
|
||||
isc_result_t result;
|
||||
|
||||
switch (ztype) {
|
||||
case dns_zone_slave: zone = "slave"; break;
|
||||
case dns_zone_master: zone = "master"; break;
|
||||
case dns_zone_slave:
|
||||
case dns_zone_mirror:
|
||||
zone = "slave";
|
||||
break;
|
||||
case dns_zone_master:
|
||||
zone = "master";
|
||||
break;
|
||||
default:
|
||||
INSIST(0);
|
||||
}
|
||||
@@ -828,6 +833,37 @@ isself(dns_view_t *myview, dns_tsigkey_t *mykey,
|
||||
return (view == myview);
|
||||
}
|
||||
|
||||
/*%
|
||||
* For mirror zones, change "notify yes;" to "notify explicit;", informing the
|
||||
* user only if "notify" was explicitly configured rather than inherited from
|
||||
* default configuration.
|
||||
*/
|
||||
static dns_notifytype_t
|
||||
process_notifytype(dns_notifytype_t ntype, dns_zonetype_t ztype,
|
||||
const char *zname, const cfg_obj_t **maps)
|
||||
{
|
||||
const cfg_obj_t *obj = NULL;
|
||||
|
||||
/*
|
||||
* Return the original setting if this is not a mirror zone or if the
|
||||
* zone is configured with something else than "notify yes;".
|
||||
*/
|
||||
if (ztype != dns_zone_mirror || ntype != dns_notifytype_yes) {
|
||||
return (ntype);
|
||||
}
|
||||
|
||||
/*
|
||||
* Only log a message if "notify" was set in the configuration
|
||||
* hierarchy supplied in 'maps'.
|
||||
*/
|
||||
if (named_config_get(maps, "notify", &obj) == ISC_R_SUCCESS) {
|
||||
cfg_obj_log(obj, named_g_lctx, ISC_LOG_INFO,
|
||||
"'notify explicit;' will be used for mirror zone "
|
||||
"'%s'", zname);
|
||||
}
|
||||
|
||||
return (dns_notifytype_explicit);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
@@ -982,7 +1018,7 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
return (ISC_R_FAILURE);
|
||||
}
|
||||
|
||||
if (ztype == dns_zone_slave)
|
||||
if (ztype == dns_zone_slave || ztype == dns_zone_mirror)
|
||||
masterformat = dns_masterformat_raw;
|
||||
else
|
||||
masterformat = dns_masterformat_text;
|
||||
@@ -1076,7 +1112,7 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
/*
|
||||
* Notify messages are processed by the raw zone if it exists.
|
||||
*/
|
||||
if (ztype == dns_zone_slave)
|
||||
if (ztype == dns_zone_slave || ztype == dns_zone_mirror)
|
||||
RETERR(configure_zone_acl(zconfig, vconfig, config,
|
||||
allow_notify, ac, mayberaw,
|
||||
dns_zone_setnotifyacl,
|
||||
@@ -1182,6 +1218,8 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
else
|
||||
INSIST(0);
|
||||
}
|
||||
notifytype = process_notifytype(notifytype, ztype, zname,
|
||||
nodefault);
|
||||
if (raw != NULL)
|
||||
dns_zone_setnotifytype(raw, dns_notifytype_no);
|
||||
dns_zone_setnotifytype(zone, notifytype);
|
||||
@@ -1537,7 +1575,7 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
}
|
||||
}
|
||||
|
||||
if (ztype == dns_zone_slave) {
|
||||
if (ztype == dns_zone_slave || ztype == dns_zone_mirror) {
|
||||
RETERR(configure_zone_acl(zconfig, vconfig, config,
|
||||
allow_update_forwarding, ac,
|
||||
mayberaw, dns_zone_setforwardacl,
|
||||
@@ -1695,12 +1733,38 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
* Configure slave functionality.
|
||||
*/
|
||||
switch (ztype) {
|
||||
case dns_zone_mirror:
|
||||
/*
|
||||
* Disable outgoing zone transfers for mirror zones unless they
|
||||
* are explicitly enabled by zone configuration.
|
||||
*/
|
||||
obj = NULL;
|
||||
(void)cfg_map_get(zoptions, "allow-transfer", &obj);
|
||||
if (obj == NULL) {
|
||||
dns_acl_t *none;
|
||||
RETERR(dns_acl_none(mctx, &none));
|
||||
dns_zone_setxfracl(zone, none);
|
||||
dns_acl_detach(&none);
|
||||
}
|
||||
/* FALLTHROUGH */
|
||||
case dns_zone_slave:
|
||||
case dns_zone_stub:
|
||||
case dns_zone_redirect:
|
||||
count = 0;
|
||||
obj = NULL;
|
||||
(void)cfg_map_get(zoptions, "masters", &obj);
|
||||
/*
|
||||
* Use the built-in master server list if one was not
|
||||
* explicitly specified and this is a root zone mirror.
|
||||
*/
|
||||
if (obj == NULL && ztype == dns_zone_mirror &&
|
||||
dns_name_equal(dns_zone_getorigin(zone), dns_rootname))
|
||||
{
|
||||
result = named_config_getmastersdef(named_g_config,
|
||||
DEFAULT_IANA_ROOT_ZONE_MASTERS,
|
||||
&obj);
|
||||
RETERR(result);
|
||||
}
|
||||
if (obj != NULL) {
|
||||
dns_ipkeylist_t ipkl;
|
||||
dns_ipkeylist_init(&ipkl);
|
||||
@@ -1727,35 +1791,6 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
}
|
||||
dns_zone_setoption(mayberaw, DNS_ZONEOPT_MULTIMASTER, multi);
|
||||
|
||||
obj = NULL;
|
||||
(void)cfg_map_get(zoptions, "mirror", &obj);
|
||||
if (obj != NULL) {
|
||||
bool mirror = cfg_obj_asboolean(obj);
|
||||
dns_zone_setoption(mayberaw, DNS_ZONEOPT_MIRROR,
|
||||
mirror);
|
||||
if (mirror) {
|
||||
/*
|
||||
* Disable outgoing zone transfers unless they
|
||||
* are explicitly enabled by zone
|
||||
* configuration.
|
||||
*/
|
||||
obj = NULL;
|
||||
(void)cfg_map_get(zoptions, "allow-transfer",
|
||||
&obj);
|
||||
if (obj == NULL) {
|
||||
dns_acl_t *none;
|
||||
RETERR(dns_acl_none(mctx, &none));
|
||||
dns_zone_setxfracl(zone, none);
|
||||
dns_acl_detach(&none);
|
||||
}
|
||||
/*
|
||||
* Only allow "also-notify".
|
||||
*/
|
||||
notifytype = dns_notifytype_explicit;
|
||||
dns_zone_setnotifytype(zone, notifytype);
|
||||
}
|
||||
}
|
||||
|
||||
obj = NULL;
|
||||
result = named_config_get(maps, "max-transfer-time-in", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS && obj != NULL);
|
||||
@@ -1895,7 +1930,7 @@ named_zone_reusable(dns_zone_t *zone, const cfg_obj_t *zconfig) {
|
||||
const char *cfilename;
|
||||
const char *zfilename;
|
||||
dns_zone_t *raw = NULL;
|
||||
bool has_raw, mirror;
|
||||
bool has_raw;
|
||||
dns_zonetype_t ztype;
|
||||
|
||||
zoptions = cfg_tuple_get(zconfig, "options");
|
||||
@@ -1935,21 +1970,6 @@ named_zone_reusable(dns_zone_t *zone, const cfg_obj_t *zconfig) {
|
||||
return (false);
|
||||
}
|
||||
|
||||
/*
|
||||
* Do not reuse a zone whose "mirror" setting was changed.
|
||||
*/
|
||||
obj = NULL;
|
||||
mirror = false;
|
||||
(void)cfg_map_get(zoptions, "mirror", &obj);
|
||||
if (obj != NULL) {
|
||||
mirror = cfg_obj_asboolean(obj);
|
||||
}
|
||||
if (dns_zone_ismirror(zone) != mirror) {
|
||||
dns_zone_log(zone, ISC_LOG_DEBUG(1),
|
||||
"not reusable: mirror setting changed");
|
||||
return (false);
|
||||
}
|
||||
|
||||
if (zonetype_fromconfig(zoptions) != ztype) {
|
||||
dns_zone_log(zone, ISC_LOG_DEBUG(1),
|
||||
"not reusable: type mismatch");
|
||||
|
||||
@@ -99,20 +99,6 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ADDRINFO
|
||||
#ifdef HAVE_GETADDRINFO
|
||||
#ifdef HAVE_GAISTRERROR
|
||||
#define USE_GETADDRINFO
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef USE_GETADDRINFO
|
||||
#ifndef ISC_PLATFORM_NONSTDHERRNO
|
||||
extern int h_errno;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define MAXCMD (128 * 1024)
|
||||
#define MAXWIRE (64 * 1024)
|
||||
#define PACKETSIZE ((64 * 1024) - 1)
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\irs\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>@READLINE_LIBD@@GSSAPI_LIB@@KRB5_LIB@libisc.lib;libdns.lib;libbind9.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@@READLINE_LIBD@@GSSAPI_LIB@@KRB5_LIB@libisc.lib;libdns.lib;libbind9.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
|
||||
@@ -98,7 +98,7 @@
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\irs\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>@READLINE_LIB@@GSSAPI_LIB@@KRB5_LIB@libisc.lib;libdns.lib;libbind9.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@@READLINE_LIB@@GSSAPI_LIB@@KRB5_LIB@libisc.lib;libdns.lib;libbind9.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
+8
-239
@@ -43,7 +43,7 @@
|
||||
* Create a key in the keystore of an HSM
|
||||
*
|
||||
* The calculation of key tag is left to the script
|
||||
* that converts the key into a DNSKEY RR and inserts
|
||||
* that converts the key into a DNSKEY RR and inserts
|
||||
* it into a zone file.
|
||||
*
|
||||
* usage:
|
||||
@@ -71,7 +71,6 @@
|
||||
|
||||
#include <pk11/pk11.h>
|
||||
#include <pk11/result.h>
|
||||
#define WANT_DH_PRIMES
|
||||
#include <pk11/constants.h>
|
||||
#include <pkcs11/eddsa.h>
|
||||
|
||||
@@ -79,12 +78,10 @@
|
||||
static CK_BBOOL truevalue = TRUE;
|
||||
static CK_BBOOL falsevalue = FALSE;
|
||||
|
||||
/* Key class: RSA, ECC, ECX, DSA, DH, or unknown */
|
||||
/* Key class: RSA, ECC, ECX, or unknown */
|
||||
typedef enum {
|
||||
key_unknown,
|
||||
key_rsa,
|
||||
key_dsa,
|
||||
key_dh,
|
||||
key_ecc,
|
||||
key_ecx
|
||||
} key_class_t;
|
||||
@@ -152,78 +149,6 @@ static CK_ATTRIBUTE ecc_template[] = {
|
||||
{CKA_ID, NULL_PTR, 0}
|
||||
};
|
||||
|
||||
/*
|
||||
* Public key template for DSA keys
|
||||
*/
|
||||
#define DSA_LABEL 0
|
||||
#define DSA_VERIFY 1
|
||||
#define DSA_TOKEN 2
|
||||
#define DSA_PRIVATE 3
|
||||
#define DSA_PRIME 4
|
||||
#define DSA_SUBPRIME 5
|
||||
#define DSA_BASE 6
|
||||
#define DSA_ID 7
|
||||
#define DSA_ATTRS 8
|
||||
static CK_ATTRIBUTE dsa_template[] = {
|
||||
{CKA_LABEL, NULL_PTR, 0},
|
||||
{CKA_VERIFY, &truevalue, sizeof(truevalue)},
|
||||
{CKA_TOKEN, &truevalue, sizeof(truevalue)},
|
||||
{CKA_PRIVATE, &falsevalue, sizeof(falsevalue)},
|
||||
{CKA_PRIME, NULL_PTR, 0},
|
||||
{CKA_SUBPRIME, NULL_PTR, 0},
|
||||
{CKA_BASE, NULL_PTR, 0},
|
||||
{CKA_ID, NULL_PTR, 0}
|
||||
};
|
||||
#define DSA_PARAM_PRIME 0
|
||||
#define DSA_PARAM_SUBPRIME 1
|
||||
#define DSA_PARAM_BASE 2
|
||||
#define DSA_PARAM_ATTRS 3
|
||||
static CK_ATTRIBUTE dsa_param_template[] = {
|
||||
{CKA_PRIME, NULL_PTR, 0},
|
||||
{CKA_SUBPRIME, NULL_PTR, 0},
|
||||
{CKA_BASE, NULL_PTR, 0},
|
||||
};
|
||||
#define DSA_DOMAIN_PRIMEBITS 0
|
||||
#define DSA_DOMAIN_PRIVATE 1
|
||||
#define DSA_DOMAIN_ATTRS 2
|
||||
static CK_ATTRIBUTE dsa_domain_template[] = {
|
||||
{CKA_PRIME_BITS, NULL_PTR, 0},
|
||||
{CKA_PRIVATE, &falsevalue, sizeof(falsevalue)},
|
||||
};
|
||||
|
||||
/*
|
||||
* Public key template for DH keys
|
||||
*/
|
||||
#define DH_LABEL 0
|
||||
#define DH_VERIFY 1
|
||||
#define DH_TOKEN 2
|
||||
#define DH_PRIVATE 3
|
||||
#define DH_PRIME 4
|
||||
#define DH_BASE 5
|
||||
#define DH_ID 6
|
||||
#define DH_ATTRS 7
|
||||
static CK_ATTRIBUTE dh_template[] = {
|
||||
{CKA_LABEL, NULL_PTR, 0},
|
||||
{CKA_VERIFY, &truevalue, sizeof(truevalue)},
|
||||
{CKA_TOKEN, &truevalue, sizeof(truevalue)},
|
||||
{CKA_PRIVATE, &falsevalue, sizeof(falsevalue)},
|
||||
{CKA_PRIME, NULL_PTR, 0},
|
||||
{CKA_BASE, NULL_PTR, 0},
|
||||
{CKA_ID, NULL_PTR, 0}
|
||||
};
|
||||
#define DH_PARAM_PRIME 0
|
||||
#define DH_PARAM_BASE 1
|
||||
#define DH_PARAM_ATTRS 2
|
||||
static CK_ATTRIBUTE dh_param_template[] = {
|
||||
{CKA_PRIME, NULL_PTR, 0},
|
||||
{CKA_BASE, NULL_PTR, 0},
|
||||
};
|
||||
#define DH_DOMAIN_PRIMEBITS 0
|
||||
#define DH_DOMAIN_ATTRS 1
|
||||
static CK_ATTRIBUTE dh_domain_template[] = {
|
||||
{CKA_PRIME_BITS, NULL_PTR, 0},
|
||||
};
|
||||
|
||||
/*
|
||||
* Convert from text to key class. Accepts the names of DNSSEC
|
||||
* signing algorithms, so e.g., ECDSAP256SHA256 maps to ECC and
|
||||
@@ -237,11 +162,6 @@ keyclass_fromtext(const char *name) {
|
||||
if (strncasecmp(name, "rsa", 3) == 0 ||
|
||||
strncasecmp(name, "nsec3rsa", 8) == 0)
|
||||
return (key_rsa);
|
||||
else if (strncasecmp(name, "dsa", 3) == 0 ||
|
||||
strncasecmp(name, "nsec3dsa", 8) == 0)
|
||||
return (key_dsa);
|
||||
else if (strcasecmp(name, "dh") == 0)
|
||||
return (key_dh);
|
||||
else if (strncasecmp(name, "ecc", 3) == 0 ||
|
||||
strncasecmp(name, "ecdsa", 5) == 0)
|
||||
return (key_ecc);
|
||||
@@ -279,7 +199,7 @@ main(int argc, char *argv[]) {
|
||||
pk11_context_t pctx;
|
||||
int error = 0;
|
||||
int c, errflg = 0;
|
||||
int hide = 1, special = 0, quiet = 0;
|
||||
int hide = 1, quiet = 0;
|
||||
int idlen = 0, id_offset = 0;
|
||||
unsigned int i;
|
||||
unsigned long id = 0;
|
||||
@@ -331,9 +251,6 @@ main(int argc, char *argv[]) {
|
||||
case 'q':
|
||||
quiet = 1;
|
||||
break;
|
||||
case 'S':
|
||||
special = 1;
|
||||
break;
|
||||
case ':':
|
||||
fprintf(stderr,
|
||||
"Option -%c requires an operand\n",
|
||||
@@ -360,12 +277,6 @@ main(int argc, char *argv[]) {
|
||||
exit(2);
|
||||
}
|
||||
|
||||
if (special != 0 && keyclass != key_dh) {
|
||||
fprintf(stderr, "The -S option is only compatible "
|
||||
"with Diffie-Hellman key generation\n");
|
||||
exit(2);
|
||||
}
|
||||
|
||||
switch (keyclass) {
|
||||
case key_rsa:
|
||||
op_type = OP_RSA;
|
||||
@@ -461,70 +372,10 @@ main(int argc, char *argv[]) {
|
||||
|
||||
#endif
|
||||
break;
|
||||
case key_dsa:
|
||||
op_type = OP_DSA;
|
||||
if (bits == 0)
|
||||
usage();
|
||||
|
||||
dpmech.mechanism = CKM_DSA_PARAMETER_GEN;
|
||||
dpmech.pParameter = NULL;
|
||||
dpmech.ulParameterLen = 0;
|
||||
mech.mechanism = CKM_DSA_KEY_PAIR_GEN;
|
||||
mech.pParameter = NULL;
|
||||
mech.ulParameterLen = 0;
|
||||
|
||||
public_template = dsa_template;
|
||||
public_attrcnt = DSA_ATTRS;
|
||||
id_offset = DSA_ID;
|
||||
|
||||
domain_template = dsa_domain_template;
|
||||
domain_attrcnt = DSA_DOMAIN_ATTRS;
|
||||
param_template = dsa_param_template;
|
||||
param_attrcnt = DSA_PARAM_ATTRS;
|
||||
|
||||
domain_template[DSA_DOMAIN_PRIMEBITS].pValue = &bits;
|
||||
domain_template[DSA_DOMAIN_PRIMEBITS].ulValueLen = sizeof(bits);
|
||||
break;
|
||||
case key_dh:
|
||||
op_type = OP_DH;
|
||||
if (special && bits == 0)
|
||||
bits = 1024;
|
||||
else if (special &&
|
||||
bits != 768 && bits != 1024 && bits != 1536)
|
||||
{
|
||||
fprintf(stderr, "When using the special prime (-S) "
|
||||
"option, only key sizes of\n"
|
||||
"768, 1024 or 1536 are supported.\n");
|
||||
exit(2);
|
||||
} else if (bits == 0)
|
||||
usage();
|
||||
|
||||
dpmech.mechanism = CKM_DH_PKCS_PARAMETER_GEN;
|
||||
dpmech.pParameter = NULL;
|
||||
dpmech.ulParameterLen = 0;
|
||||
mech.mechanism = CKM_DH_PKCS_KEY_PAIR_GEN;
|
||||
mech.pParameter = NULL;
|
||||
mech.ulParameterLen = 0;
|
||||
|
||||
/* Override CKA_SIGN attribute */
|
||||
private_template[PRIVATE_DERIVE].type = CKA_DERIVE;
|
||||
|
||||
public_template = dh_template;
|
||||
public_attrcnt = DH_ATTRS;
|
||||
id_offset = DH_ID;
|
||||
|
||||
domain_template = dh_domain_template;
|
||||
domain_attrcnt = DH_DOMAIN_ATTRS;
|
||||
param_template = dh_param_template;
|
||||
param_attrcnt = DH_PARAM_ATTRS;
|
||||
|
||||
domain_template[DH_DOMAIN_PRIMEBITS].pValue = &bits;
|
||||
domain_template[DH_DOMAIN_PRIMEBITS].ulValueLen = sizeof(bits);
|
||||
break;
|
||||
case key_unknown:
|
||||
usage();
|
||||
}
|
||||
|
||||
|
||||
search_template[0].pValue = label;
|
||||
search_template[0].ulValueLen = strlen((char *)label);
|
||||
public_template[0].pValue = label;
|
||||
@@ -582,7 +433,7 @@ main(int argc, char *argv[]) {
|
||||
hSession = pctx.session;
|
||||
|
||||
/* check if a key with the same id already exists */
|
||||
rv = pkcs_C_FindObjectsInit(hSession, search_template, 1);
|
||||
rv = pkcs_C_FindObjectsInit(hSession, search_template, 1);
|
||||
if (rv != CKR_OK) {
|
||||
fprintf(stderr, "C_FindObjectsInit: Error = 0x%.8lX\n", rv);
|
||||
error = 1;
|
||||
@@ -609,29 +460,6 @@ main(int argc, char *argv[]) {
|
||||
if (keyclass == key_rsa || keyclass == key_ecc || keyclass == key_ecx)
|
||||
goto generate_keys;
|
||||
|
||||
/*
|
||||
* Special setup for Diffie-Hellman keys
|
||||
*/
|
||||
if (special != 0) {
|
||||
public_template[DH_BASE].pValue = pk11_dh_bn2;
|
||||
public_template[DH_BASE].ulValueLen = sizeof(pk11_dh_bn2);
|
||||
if (bits == 768) {
|
||||
public_template[DH_PRIME].pValue = pk11_dh_bn768;
|
||||
public_template[DH_PRIME].ulValueLen =
|
||||
sizeof(pk11_dh_bn768);
|
||||
} else if (bits == 1024) {
|
||||
public_template[DH_PRIME].pValue = pk11_dh_bn1024;
|
||||
public_template[DH_PRIME].ulValueLen =
|
||||
sizeof(pk11_dh_bn1024);
|
||||
} else {
|
||||
public_template[DH_PRIME].pValue = pk11_dh_bn1536;
|
||||
public_template[DH_PRIME].ulValueLen =
|
||||
sizeof(pk11_dh_bn1536);
|
||||
}
|
||||
param_attrcnt = 0;
|
||||
goto generate_keys;
|
||||
}
|
||||
|
||||
/* Generate Domain parameters */
|
||||
rv = pkcs_C_GenerateKey(hSession, &dpmech, domain_template,
|
||||
domain_attrcnt, &domainparams);
|
||||
@@ -651,7 +479,7 @@ main(int argc, char *argv[]) {
|
||||
fprintf(stderr,
|
||||
"C_GetAttributeValue0: Error = 0x%.8lX\n", rv);
|
||||
error = 1;
|
||||
goto exit_domain;
|
||||
goto exit_search;
|
||||
}
|
||||
|
||||
/* Allocate space for parameter attributes */
|
||||
@@ -664,81 +492,22 @@ main(int argc, char *argv[]) {
|
||||
if (param_template[i].pValue == NULL) {
|
||||
fprintf(stderr, "malloc failed\n");
|
||||
error = 1;
|
||||
goto exit_params;
|
||||
goto exit_search;
|
||||
}
|
||||
}
|
||||
|
||||
rv = pkcs_C_GetAttributeValue(hSession, domainparams,
|
||||
dsa_param_template, DSA_PARAM_ATTRS);
|
||||
|
||||
if (rv != CKR_OK) {
|
||||
fprintf(stderr,
|
||||
"C_GetAttributeValue1: Error = 0x%.8lX\n", rv);
|
||||
error = 1;
|
||||
goto exit_params;
|
||||
}
|
||||
|
||||
switch (keyclass) {
|
||||
case key_dsa:
|
||||
public_template[DSA_PRIME].pValue =
|
||||
param_template[DSA_PARAM_PRIME].pValue;
|
||||
public_template[DSA_PRIME].ulValueLen =
|
||||
param_template[DSA_PARAM_PRIME].ulValueLen;
|
||||
public_template[DSA_SUBPRIME].pValue =
|
||||
param_template[DSA_PARAM_SUBPRIME].pValue;
|
||||
public_template[DSA_SUBPRIME].ulValueLen =
|
||||
param_template[DSA_PARAM_SUBPRIME].ulValueLen;
|
||||
public_template[DSA_BASE].pValue =
|
||||
param_template[DSA_PARAM_BASE].pValue;
|
||||
public_template[DSA_BASE].ulValueLen =
|
||||
param_template[DSA_PARAM_BASE].ulValueLen;
|
||||
break;
|
||||
case key_dh:
|
||||
public_template[DH_PRIME].pValue =
|
||||
param_template[DH_PARAM_PRIME].pValue;
|
||||
public_template[DH_PRIME].ulValueLen =
|
||||
param_template[DH_PARAM_PRIME].ulValueLen;
|
||||
public_template[DH_BASE].pValue =
|
||||
param_template[DH_PARAM_BASE].pValue;
|
||||
public_template[DH_BASE].ulValueLen =
|
||||
param_template[DH_PARAM_BASE].ulValueLen;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
generate_keys:
|
||||
/* Generate Key pair for signing/verifying */
|
||||
rv = pkcs_C_GenerateKeyPair(hSession, &mech,
|
||||
public_template, public_attrcnt,
|
||||
private_template, private_attrcnt,
|
||||
&publickey, &privatekey);
|
||||
|
||||
|
||||
if (rv != CKR_OK) {
|
||||
fprintf(stderr, "C_GenerateKeyPair: Error = 0x%.8lX\n", rv);
|
||||
error = 1;
|
||||
} else if (!quiet)
|
||||
printf("Key pair generation complete.\n");
|
||||
|
||||
exit_params:
|
||||
/* Free parameter attributes */
|
||||
if (keyclass == key_dsa || keyclass == key_dh) {
|
||||
for (i = 0; i < param_attrcnt; i++) {
|
||||
if (param_template[i].pValue != NULL) {
|
||||
free(param_template[i].pValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
exit_domain:
|
||||
/* Destroy domain parameters */
|
||||
if (keyclass == key_dsa || (keyclass == key_dh && !special)) {
|
||||
rv = pkcs_C_DestroyObject(hSession, domainparams);
|
||||
if (rv != CKR_OK) {
|
||||
fprintf(stderr,
|
||||
"C_DestroyObject: Error = 0x%.8lX\n", rv);
|
||||
error = 1;
|
||||
}
|
||||
}
|
||||
|
||||
exit_search:
|
||||
rv = pkcs_C_FindObjectsFinal(hSession);
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>libisc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@libisc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
|
||||
@@ -100,7 +100,7 @@
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>libisc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@libisc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>libisc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@libisc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
|
||||
@@ -100,7 +100,7 @@
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>libisc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@libisc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>libisc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@libisc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
|
||||
@@ -100,7 +100,7 @@
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>libisc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@libisc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>libisc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@libisc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
|
||||
@@ -100,7 +100,7 @@
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>libisc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@libisc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -299,8 +299,7 @@
|
||||
Takes two arguments: keytype (eihter "zsk" or "ksk") and size.
|
||||
A default value for this option can be set in algorithm policies
|
||||
as well as in policy classes or zone policies. If no policy is
|
||||
configured, the default is 1024 bits for DSA keys and 2048 for
|
||||
RSA.
|
||||
configured, the default is 2048 bits for RSA keys.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@@ -30,9 +30,9 @@ class dnskey:
|
||||
'Revoke', 'DSPublish', 'SyncPublish', 'SyncDelete')
|
||||
_OPTS = (None, '-P', '-A', '-I', '-D', '-R', None, '-Psync', '-Dsync')
|
||||
|
||||
_ALGNAMES = (None, 'RSAMD5', 'DH', 'DSA', 'ECC', 'RSASHA1',
|
||||
_ALGNAMES = (None, 'RSAMD5', 'DH', 'DSA', None, 'RSASHA1',
|
||||
'NSEC3DSA', 'NSEC3RSASHA1', 'RSASHA256', None,
|
||||
'RSASHA512', None, None, 'ECDSAP256SHA256',
|
||||
'RSASHA512', None, 'ECCGOST', 'ECDSAP256SHA256',
|
||||
'ECDSAP384SHA384', 'ED25519', 'ED448')
|
||||
|
||||
def __init__(self, key, directory=None, keyttl=None):
|
||||
|
||||
@@ -71,7 +71,7 @@ class PolicyLex:
|
||||
return t
|
||||
|
||||
def t_ALGNAME(self, t):
|
||||
r'(?i)\b(RSAMD5|DH|DSA|NSEC3DSA|ECC|RSASHA1|NSEC3RSASHA1|RSASHA256|RSASHA512|ECDSAP256SHA256|ECDSAP384SHA384|ED25519|ED448)\b'
|
||||
r'(?i)\b(RSAMD5|DH|ECC|RSASHA1|NSEC3RSASHA1|RSASHA256|RSASHA512|ECDSAP256SHA256|ECDSAP384SHA384|ED25519|ED448)\b'
|
||||
t.value = t.value.upper()
|
||||
return t
|
||||
|
||||
@@ -132,9 +132,7 @@ class Policy:
|
||||
keyttl = None
|
||||
coverage = None
|
||||
directory = None
|
||||
valid_key_sz_per_algo = {'DSA': [512, 1024],
|
||||
'NSEC3DSA': [512, 1024],
|
||||
'RSAMD5': [1024, 4096],
|
||||
valid_key_sz_per_algo = {'RSAMD5': [1024, 4096],
|
||||
'RSASHA1': [1024, 4096],
|
||||
'NSEC3RSASHA1': [512, 4096],
|
||||
'RSASHA256': [1024, 4096],
|
||||
@@ -264,19 +262,6 @@ class Policy:
|
||||
return False, 'ZSK key size %d outside valid range %s' \
|
||||
% (self.zsk_keysize, key_sz_range)
|
||||
|
||||
# Specific check for DSA keys
|
||||
if self.algorithm in ['DSA', 'NSEC3DSA'] and \
|
||||
self.ksk_keysize % 64 != 0:
|
||||
return False, \
|
||||
('KSK key size %d not divisible by 64 ' +
|
||||
'as required for DSA') % self.ksk_keysize
|
||||
|
||||
if self.algorithm in ['DSA', 'NSEC3DSA'] and \
|
||||
self.zsk_keysize % 64 != 0:
|
||||
return False, \
|
||||
('ZSK key size %d not divisible by 64 ' +
|
||||
'as required for DSA') % self.zsk_keysize
|
||||
|
||||
if self.algorithm in ['ECDSAP256SHA256', \
|
||||
'ECDSAP384SHA384', \
|
||||
'ED25519', \
|
||||
@@ -335,16 +320,6 @@ class dnssec_policy:
|
||||
p.zsk_keysize = 2048;
|
||||
|
||||
# set default algorithm policies
|
||||
# these need a lower default key size:
|
||||
self.alg_policy['DSA'] = copy(p)
|
||||
self.alg_policy['DSA'].algorithm = "DSA"
|
||||
self.alg_policy['DSA'].name = "DSA"
|
||||
self.alg_policy['DSA'].ksk_keysize = 1024;
|
||||
|
||||
self.alg_policy['NSEC3DSA'] = copy(p)
|
||||
self.alg_policy['NSEC3DSA'].algorithm = "NSEC3DSA"
|
||||
self.alg_policy['NSEC3DSA'].name = "NSEC3DSA"
|
||||
self.alg_policy['NSEC3DSA'].ksk_keysize = 1024;
|
||||
|
||||
# these can use default settings
|
||||
self.alg_policy['RSAMD5'] = copy(p)
|
||||
|
||||
@@ -25,15 +25,6 @@ class PolicyTest(unittest.TestCase):
|
||||
self.assertEqual(p.constructed(), False)
|
||||
self.assertEqual(p.validate(), (True, ""))
|
||||
|
||||
p = pol.policy('good_dsa.test', novalidate=True)
|
||||
self.assertEqual(p.get_name(), "good_dsa.test")
|
||||
self.assertEqual(p.constructed(), False)
|
||||
self.assertEqual(p.validate(), (True, ""))
|
||||
|
||||
p = pol.policy('bad_dsa.test', novalidate=True)
|
||||
self.assertEqual(p.validate(),
|
||||
(False, 'ZSK key size 769 not divisible by 64 as required for DSA'))
|
||||
|
||||
def test_prepublish(self):
|
||||
pol = policy.dnssec_policy()
|
||||
pol.load('test-policies/02-prepublish.pol')
|
||||
|
||||
+16
-8
@@ -575,7 +575,7 @@
|
||||
|
||||
<varlistentry>
|
||||
<term><userinput>nta
|
||||
<optional>( -d | -f | -r | -l <replaceable>duration</replaceable>)</optional>
|
||||
<optional>( -class <replaceable>class</replaceable> | -dump | -force | -remove | -lifetime <replaceable>duration</replaceable>)</optional>
|
||||
<replaceable>domain</replaceable>
|
||||
<optional><replaceable>view</replaceable></optional>
|
||||
</userinput></term>
|
||||
@@ -623,7 +623,7 @@
|
||||
is equivalent to <option>-remove</option>.
|
||||
</para>
|
||||
<para>
|
||||
If <option>-dump</option> is used, any other arguments
|
||||
If the <option>-dump</option> is used, any other arguments
|
||||
are ignored, and a list of existing NTAs is printed
|
||||
(note that this may include NTAs that are expired but
|
||||
have not yet been cleaned up).
|
||||
@@ -640,10 +640,15 @@
|
||||
lifetime, regardless of whether data could be
|
||||
validated if the NTA were not present.
|
||||
</para>
|
||||
<para>
|
||||
The view class can be specified with <option>-class</option>.
|
||||
The default is class <userinput>IN</userinput>, which is
|
||||
the only class for which DNSSEC is currently supported.
|
||||
</para>
|
||||
<para>
|
||||
All of these options can be shortened, i.e., to
|
||||
<option>-l</option>, <option>-r</option>, <option>-d</option>,
|
||||
and <option>-f</option>.
|
||||
<option>-f</option>, and <option>-c</option>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -1065,11 +1070,14 @@
|
||||
<listitem>
|
||||
<para>
|
||||
Enable, disable, or check the current status of
|
||||
DNSSEC validation.
|
||||
Note <command>dnssec-enable</command> also needs to be
|
||||
set to <userinput>yes</userinput> or
|
||||
<userinput>auto</userinput> to be effective.
|
||||
It defaults to enabled.
|
||||
DNSSEC validation. By default, validation is enabled.
|
||||
(Note that <command>dnssec-enable</command> must also be
|
||||
<userinput>yes</userinput> (the default value) for signatures
|
||||
to be returned along with validated data. If validation is
|
||||
enabled while <command>dnssec-enable</command> is set to
|
||||
<userinput>no</userinput>, the server will validate internally,
|
||||
but will not supply clients with the necessary records to allow
|
||||
validity to be confirmed.)
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\isccc\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>util.lib;libisc.lib;libdns.lib;libisccfg.lib;libisccc.lib;libbind9.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@util.lib;libisc.lib;libdns.lib;libisccfg.lib;libisccc.lib;libbind9.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
|
||||
@@ -98,7 +98,7 @@
|
||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\isccc\win32\$(Configuration);..\..\..\lib\bind9\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>util.lib;libisc.lib;libdns.lib;libisccfg.lib;libisccc.lib;libbind9.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>@OPENSSL_LIB@util.lib;libisc.lib;libdns.lib;libisccfg.lib;libisccc.lib;libbind9.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -115,6 +115,8 @@ main(int argc, char **argv) {
|
||||
strcmp(argv[1], "seconary") == 0)
|
||||
{
|
||||
zonetype = CFG_ZONE_SLAVE;
|
||||
} else if (strcmp(argv[1], "mirror") == 0) {
|
||||
zonetype = CFG_ZONE_MIRROR;
|
||||
} else if (strcmp(argv[1], "stub") == 0) {
|
||||
zonetype = CFG_ZONE_STUB;
|
||||
} else if (strcmp(argv[1], "static-stub") == 0) {
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
child.example. IN KEY 256 3 3 ALeiYGFXbil6PgHnkm5ZE67ygEVDvGT/gqZmLH7tGboofcPSfyhh1hpw dxZgJ26d/gynWMGVSYzaXfzsxpPoNeYn+qeevQoJOaxXXlfcy8Ik52Rm eW0J9mWlf9hsD7ShIhh1+0kRYGCOCaU25wIe3SLVkN3HgqiCBDYnBY0u nMkqRadiUnoEa3Tcvc9kJx9r9gDstR2A9A5sBhFLI/XQ0gViHHLVpQ4x hz+rTLb/xrBoAb5sQJT3xUjhhdNo9HuL6kwdLdSu//PCl1QnY9NpYPVV SKUo
|
||||
@@ -1,7 +0,0 @@
|
||||
Private-key-format: v1.2
|
||||
Algorithm: 3 (DSA)
|
||||
Prime(p): vGT/gqZmLH7tGboofcPSfyhh1hpwdxZgJ26d/gynWMGVSYzaXfzsxpPoNeYn+qeevQoJOaxXXlfcy8Ik52RmeQ==
|
||||
Subprime(q): t6JgYVduKXo+AeeSblkTrvKARUM=
|
||||
Base(g): bQn2ZaV/2GwPtKEiGHX7SRFgYI4JpTbnAh7dItWQ3ceCqIIENicFjS6cySpFp2JSegRrdNy9z2QnH2v2AOy1HQ==
|
||||
Private_value(x): J1Ctez8+w1PTR56Hze3pGoe0Wag=
|
||||
Public_value(y): gPQObAYRSyP10NIFYhxy1aUOMYc/q0y2/8awaAG+bECU98VI4YXTaPR7i+pMHS3Urv/zwpdUJ2PTaWD1VUilKA==
|
||||
@@ -0,0 +1,5 @@
|
||||
; This is a zone-signing key, keyid 33180, for child.example.
|
||||
; Created: 20181025104746 (Thu Oct 25 12:47:46 2018)
|
||||
; Publish: 20181025104746 (Thu Oct 25 12:47:46 2018)
|
||||
; Activate: 20181025104746 (Thu Oct 25 12:47:46 2018)
|
||||
child.example. IN DNSKEY 256 3 5 AwEAAb9eatC8ASzDnRApcZuxyBrvJRANRQjCXQ1FWK+8vEyXV5NIE9Km hKIV2wbq2tLBPfjNQz4BTJ9RmDINf1RayDlt6L+IQV1JCaDaMjd1zU3n SQK18Y7fMu0ww4AMKOnoVRbkIxa3zlA0chImXcfPE0q2AvKBYLzPfkPO cfplAuRkLcGUxdADCipNzCOakpcd5gfm9Sa2HlaXcw3gyI1WcE8=
|
||||
@@ -0,0 +1,13 @@
|
||||
Private-key-format: v1.3
|
||||
Algorithm: 5 (RSASHA1)
|
||||
Modulus: v15q0LwBLMOdEClxm7HIGu8lEA1FCMJdDUVYr7y8TJdXk0gT0qaEohXbBura0sE9+M1DPgFMn1GYMg1/VFrIOW3ov4hBXUkJoNoyN3XNTedJArXxjt8y7TDDgAwo6ehVFuQjFrfOUDRyEiZdx88TSrYC8oFgvM9+Q85x+mUC5GQtwZTF0AMKKk3MI5qSlx3mB+b1JrYeVpdzDeDIjVZwTw==
|
||||
PublicExponent: AQAB
|
||||
PrivateExponent: WDsn9GU6BXGLENCK2MX3BLQN2oDDu24hiOTYJu5VwtpkPjuVKCIuNKzu9xmBGnqOIBBDWGsw8KOmEC247yOL/S53iRdBS8lI7yiqznc52RhlmrdPKXbNpVnPwil8wocw+oQYa7uvdPYxI2Yy3B/tRgUxlxSlc/LW/dr0BX2L7qr/aeOBeGSRUlCpc7tYU9a2RUaLpVxF6SlqicCpC91MAQ==
|
||||
Prime1: 466f+JL66Bl4qYnkj0s9+1N3pYmdcM9Ja1AN66X4VLslA9Cm1JEaC5V9HOptfcXUk0XYEVnKeKM2lIQnvcLG0yuQHIa+pGi7P8vgQfdaRUE=
|
||||
Prime2: 1yuUkTVRSbUWeUreEcHgeeBBJ61UshX7t07gnGgIr3artGdo2CVEb5//+2Mvj5bgjCQBvjBbmHNZrR0jKDRBTIGtqbBerOuhEN4AXdAEgY8=
|
||||
Exponent1: KzUXbJ/P973ltR7S/hKEV66WVRbRhvf/cdsGWULs5n+BXcD59/r1W19qF9OxJZ4mYjBt+ZT1pIEsuXB+7jcJbkelGJTFlwO9DTVOgJZFTkE=
|
||||
Exponent2: FTPsLertGbBIiKdB/sn2Dsx0Xy6LXAkihsu1AnSV9oRhIyPVhwcVGVLQ7Lq3YxThB648pbsqK3miapamcj3D+YAF1uTUT4Hgm0LlEll/OC0=
|
||||
Coefficient: Vulw9kmmjKc+wmOukLdzheoA2hNPDVtgiynfzHybyXdqvapCoK+ZVmNFzjO0M41ATcpvya3iX0bekMQqYnBhLURNZUIyqz2nGskOjV8I5Jg=
|
||||
Created: 20181025104746
|
||||
Publish: 20181025104746
|
||||
Activate: 20181025104746
|
||||
@@ -20,6 +20,7 @@ CDEFINES = @USE_GSSAPI@
|
||||
|
||||
CWARNINGS =
|
||||
BACKTRACECFLAGS = @BACKTRACECFLAGS@
|
||||
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
||||
|
||||
DNSLIBS = ../../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
|
||||
ISCLIBS = ../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
||||
@@ -48,10 +49,8 @@ XTARGETS = adb_test@EXEEXT@ \
|
||||
db_test@EXEEXT@ \
|
||||
dst_test@EXEEXT@ \
|
||||
gsstest@EXEEXT@ \
|
||||
hash_test@EXEEXT@ \
|
||||
fsaccess_test@EXEEXT@ \
|
||||
inter_test@EXEEXT@ \
|
||||
keyboard_test@EXEEXT@ \
|
||||
lex_test@EXEEXT@ \
|
||||
lfsr_test@EXEEXT@ \
|
||||
log_test@EXEEXT@ \
|
||||
@@ -78,11 +77,9 @@ XSRCS = adb_test.c \
|
||||
byname_test.c \
|
||||
db_test.c \
|
||||
dst_test.c \
|
||||
hash_test.c \
|
||||
fsaccess_test.c \
|
||||
gsstest.c \
|
||||
inter_test.c \
|
||||
keyboard_test.c \
|
||||
lex_test.c \
|
||||
lfsr_test.c \
|
||||
log_test.c \
|
||||
@@ -106,7 +103,7 @@ XSRCS = adb_test.c \
|
||||
|
||||
# disable optimization for backtrace test to get the expected result
|
||||
BTTEST_CFLAGS = ${BACKTRACECFLAGS} ${EXT_CFLAGS} ${ALL_CPPFLAGS} -g \
|
||||
${ALWAYS_WARNINGS} ${STD_CWARNINGS} ${CWARNINGS}
|
||||
${ALWAYS_WARNINGS} ${STD_CWARNINGS} ${CWARNINGS} ${PTHREAD_CFLAGS}
|
||||
|
||||
all_tests: ${XTARGETS}
|
||||
|
||||
@@ -168,10 +165,6 @@ name_test@EXEEXT@: name_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
|
||||
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ name_test.@O@ \
|
||||
${DNSLIBS} ${ISCLIBS} ${LIBS}
|
||||
|
||||
hash_test@EXEEXT@: hash_test.@O@ ${ISCDEPLIBS}
|
||||
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ hash_test.@O@ \
|
||||
${ISCLIBS} ${LIBS}
|
||||
|
||||
entropy_test@EXEEXT@: entropy_test.@O@ ${ISCDEPLIBS}
|
||||
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ entropy_test.@O@ \
|
||||
${ISCLIBS} ${LIBS}
|
||||
@@ -240,10 +233,6 @@ inter_test@EXEEXT@: inter_test.@O@ ${ISCDEPLIBS}
|
||||
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ inter_test.@O@ \
|
||||
${ISCLIBS} ${LIBS}
|
||||
|
||||
keyboard_test@EXEEXT@: keyboard_test.@O@ ${ISCDEPLIBS}
|
||||
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ keyboard_test.@O@ \
|
||||
${ISCLIBS} ${LIBS}
|
||||
|
||||
sig0_test@EXEEXT@: sig0_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
|
||||
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ sig0_test.@O@ \
|
||||
${DNSLIBS} ${ISCLIBS} ${LIBS}
|
||||
|
||||
@@ -771,7 +771,7 @@ main(int argc, char *argv[]) {
|
||||
if (noexact_zonecut)
|
||||
zcoptions |= DNS_DBFIND_NOEXACT;
|
||||
result = dns_db_findzonecut(db, &name, zcoptions,
|
||||
0, &node, fname,
|
||||
0, &node, fname, NULL,
|
||||
&rdataset, &sigrdataset);
|
||||
} else {
|
||||
result = dns_db_find(db, &name, version, type,
|
||||
|
||||
@@ -254,11 +254,9 @@ main(void) {
|
||||
result = dns_name_fromtext(name, &b, NULL, 0, NULL);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (1);
|
||||
io(name, 23616, DST_ALG_DSA, DST_TYPE_PRIVATE|DST_TYPE_PUBLIC, mctx);
|
||||
io(name, 54622, DST_ALG_RSAMD5, DST_TYPE_PRIVATE|DST_TYPE_PUBLIC,
|
||||
mctx);
|
||||
|
||||
io(name, 49667, DST_ALG_DSA, DST_TYPE_PRIVATE|DST_TYPE_PUBLIC, mctx);
|
||||
io(name, 2, DST_ALG_RSAMD5, DST_TYPE_PRIVATE|DST_TYPE_PUBLIC, mctx);
|
||||
|
||||
isc_buffer_constinit(&b, "dh.", 3);
|
||||
@@ -270,7 +268,6 @@ main(void) {
|
||||
|
||||
generate(DST_ALG_RSAMD5, mctx);
|
||||
generate(DST_ALG_DH, mctx);
|
||||
generate(DST_ALG_DSA, mctx);
|
||||
generate(DST_ALG_HMACMD5, mctx);
|
||||
|
||||
dst_lib_destroy();
|
||||
|
||||
@@ -1,284 +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.
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
#include <config.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <isc/hmacmd5.h>
|
||||
#include <isc/hmacsha.h>
|
||||
#include <isc/md5.h>
|
||||
#include <isc/sha1.h>
|
||||
#include <isc/util.h>
|
||||
#include <isc/print.h>
|
||||
#include <isc/string.h>
|
||||
|
||||
#include <pk11/site.h>
|
||||
|
||||
static void
|
||||
print_digest(const char *s, const char *hash, unsigned char *d,
|
||||
unsigned int words)
|
||||
{
|
||||
unsigned int i, j;
|
||||
|
||||
printf("hash (%s) %s:\n\t", hash, s);
|
||||
for (i = 0; i < words; i++) {
|
||||
printf(" ");
|
||||
for (j = 0; j < 4; j++)
|
||||
printf("%02x", d[i * 4 + j]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv) {
|
||||
isc_sha1_t sha1;
|
||||
isc_sha224_t sha224;
|
||||
isc_md5_t md5;
|
||||
isc_hmacmd5_t hmacmd5;
|
||||
isc_hmacsha1_t hmacsha1;
|
||||
isc_hmacsha224_t hmacsha224;
|
||||
isc_hmacsha256_t hmacsha256;
|
||||
isc_hmacsha384_t hmacsha384;
|
||||
isc_hmacsha512_t hmacsha512;
|
||||
unsigned char digest[ISC_SHA512_DIGESTLENGTH];
|
||||
unsigned char buffer[1024];
|
||||
const char *s;
|
||||
unsigned char key[20];
|
||||
|
||||
UNUSED(argc);
|
||||
UNUSED(argv);
|
||||
|
||||
s = "abc";
|
||||
isc_sha1_init(&sha1);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_sha1_update(&sha1, buffer, strlen(s));
|
||||
isc_sha1_final(&sha1, digest);
|
||||
print_digest(s, "sha1", digest, ISC_SHA1_DIGESTLENGTH/4);
|
||||
|
||||
s = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
|
||||
isc_sha1_init(&sha1);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_sha1_update(&sha1, buffer, strlen(s));
|
||||
isc_sha1_final(&sha1, digest);
|
||||
print_digest(s, "sha1", digest, ISC_SHA1_DIGESTLENGTH/4);
|
||||
|
||||
s = "abc";
|
||||
isc_sha224_init(&sha224);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_sha224_update(&sha224, buffer, strlen(s));
|
||||
isc_sha224_final(digest, &sha224);
|
||||
print_digest(s, "sha224", digest, ISC_SHA224_DIGESTLENGTH/4);
|
||||
|
||||
s = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
|
||||
isc_sha224_init(&sha224);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_sha224_update(&sha224, buffer, strlen(s));
|
||||
isc_sha224_final(digest, &sha224);
|
||||
print_digest(s, "sha224", digest, ISC_SHA224_DIGESTLENGTH/4);
|
||||
|
||||
s = "abc";
|
||||
isc_md5_init(&md5);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_md5_update(&md5, buffer, strlen(s));
|
||||
isc_md5_final(&md5, digest);
|
||||
print_digest(s, "md5", digest, 4);
|
||||
|
||||
/*
|
||||
* The 3 HMAC-MD5 examples from RFC2104
|
||||
*/
|
||||
s = "Hi There";
|
||||
memset(key, 0x0b, 16);
|
||||
isc_hmacmd5_init(&hmacmd5, key, 16);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacmd5_update(&hmacmd5, buffer, strlen(s));
|
||||
isc_hmacmd5_sign(&hmacmd5, digest);
|
||||
print_digest(s, "hmacmd5", digest, 4);
|
||||
|
||||
s = "what do ya want for nothing?";
|
||||
strlcpy((char *)key, "Jefe", sizeof(key));
|
||||
isc_hmacmd5_init(&hmacmd5, key, 4);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacmd5_update(&hmacmd5, buffer, strlen(s));
|
||||
isc_hmacmd5_sign(&hmacmd5, digest);
|
||||
print_digest(s, "hmacmd5", digest, 4);
|
||||
|
||||
s = "\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335";
|
||||
memset(key, 0xaa, 16);
|
||||
isc_hmacmd5_init(&hmacmd5, key, 16);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacmd5_update(&hmacmd5, buffer, strlen(s));
|
||||
isc_hmacmd5_sign(&hmacmd5, digest);
|
||||
print_digest(s, "hmacmd5", digest, 4);
|
||||
|
||||
/*
|
||||
* The 3 HMAC-SHA1 examples from RFC4634.
|
||||
*/
|
||||
s = "Hi There";
|
||||
memset(key, 0x0b, 20);
|
||||
isc_hmacsha1_init(&hmacsha1, key, 20);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacsha1_update(&hmacsha1, buffer, strlen(s));
|
||||
isc_hmacsha1_sign(&hmacsha1, digest, ISC_SHA1_DIGESTLENGTH);
|
||||
print_digest(s, "hmacsha1", digest, ISC_SHA1_DIGESTLENGTH/4);
|
||||
|
||||
s = "what do ya want for nothing?";
|
||||
strlcpy((char *)key, "Jefe", sizeof(key));
|
||||
isc_hmacsha1_init(&hmacsha1, key, 4);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacsha1_update(&hmacsha1, buffer, strlen(s));
|
||||
isc_hmacsha1_sign(&hmacsha1, digest, ISC_SHA1_DIGESTLENGTH);
|
||||
print_digest(s, "hmacsha1", digest, ISC_SHA1_DIGESTLENGTH/4);
|
||||
|
||||
s = "\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335";
|
||||
memset(key, 0xaa, 20);
|
||||
isc_hmacsha1_init(&hmacsha1, key, 20);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacsha1_update(&hmacsha1, buffer, strlen(s));
|
||||
isc_hmacsha1_sign(&hmacsha1, digest, ISC_SHA1_DIGESTLENGTH);
|
||||
print_digest(s, "hmacsha1", digest, ISC_SHA1_DIGESTLENGTH/4);
|
||||
|
||||
/*
|
||||
* The 3 HMAC-SHA224 examples from RFC4634.
|
||||
*/
|
||||
s = "Hi There";
|
||||
memset(key, 0x0b, 20);
|
||||
isc_hmacsha224_init(&hmacsha224, key, 20);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacsha224_update(&hmacsha224, buffer, strlen(s));
|
||||
isc_hmacsha224_sign(&hmacsha224, digest, ISC_SHA224_DIGESTLENGTH);
|
||||
print_digest(s, "hmacsha224", digest, ISC_SHA224_DIGESTLENGTH/4);
|
||||
|
||||
s = "what do ya want for nothing?";
|
||||
strlcpy((char *)key, "Jefe", sizeof(key));
|
||||
isc_hmacsha224_init(&hmacsha224, key, 4);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacsha224_update(&hmacsha224, buffer, strlen(s));
|
||||
isc_hmacsha224_sign(&hmacsha224, digest, ISC_SHA224_DIGESTLENGTH);
|
||||
print_digest(s, "hmacsha224", digest, ISC_SHA224_DIGESTLENGTH/4);
|
||||
|
||||
s = "\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335";
|
||||
memset(key, 0xaa, 20);
|
||||
isc_hmacsha224_init(&hmacsha224, key, 20);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacsha224_update(&hmacsha224, buffer, strlen(s));
|
||||
isc_hmacsha224_sign(&hmacsha224, digest, ISC_SHA224_DIGESTLENGTH);
|
||||
print_digest(s, "hmacsha224", digest, ISC_SHA224_DIGESTLENGTH/4);
|
||||
|
||||
/*
|
||||
* The 3 HMAC-SHA256 examples from RFC4634.
|
||||
*/
|
||||
s = "Hi There";
|
||||
memset(key, 0x0b, 20);
|
||||
isc_hmacsha256_init(&hmacsha256, key, 20);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacsha256_update(&hmacsha256, buffer, strlen(s));
|
||||
isc_hmacsha256_sign(&hmacsha256, digest, ISC_SHA256_DIGESTLENGTH);
|
||||
print_digest(s, "hmacsha256", digest, ISC_SHA256_DIGESTLENGTH/4);
|
||||
|
||||
s = "what do ya want for nothing?";
|
||||
strlcpy((char *)key, "Jefe", sizeof(key));
|
||||
isc_hmacsha256_init(&hmacsha256, key, 4);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacsha256_update(&hmacsha256, buffer, strlen(s));
|
||||
isc_hmacsha256_sign(&hmacsha256, digest, ISC_SHA256_DIGESTLENGTH);
|
||||
print_digest(s, "hmacsha256", digest, ISC_SHA256_DIGESTLENGTH/4);
|
||||
|
||||
s = "\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335";
|
||||
memset(key, 0xaa, 20);
|
||||
isc_hmacsha256_init(&hmacsha256, key, 20);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacsha256_update(&hmacsha256, buffer, strlen(s));
|
||||
isc_hmacsha256_sign(&hmacsha256, digest, ISC_SHA256_DIGESTLENGTH);
|
||||
print_digest(s, "hmacsha256", digest, ISC_SHA256_DIGESTLENGTH/4);
|
||||
|
||||
/*
|
||||
* The 3 HMAC-SHA384 examples from RFC4634.
|
||||
*/
|
||||
s = "Hi There";
|
||||
memset(key, 0x0b, 20);
|
||||
isc_hmacsha384_init(&hmacsha384, key, 20);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacsha384_update(&hmacsha384, buffer, strlen(s));
|
||||
isc_hmacsha384_sign(&hmacsha384, digest, ISC_SHA384_DIGESTLENGTH);
|
||||
print_digest(s, "hmacsha384", digest, ISC_SHA384_DIGESTLENGTH/4);
|
||||
|
||||
s = "what do ya want for nothing?";
|
||||
strlcpy((char *)key, "Jefe", sizeof(key));
|
||||
isc_hmacsha384_init(&hmacsha384, key, 4);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacsha384_update(&hmacsha384, buffer, strlen(s));
|
||||
isc_hmacsha384_sign(&hmacsha384, digest, ISC_SHA384_DIGESTLENGTH);
|
||||
print_digest(s, "hmacsha384", digest, ISC_SHA384_DIGESTLENGTH/4);
|
||||
|
||||
s = "\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335";
|
||||
memset(key, 0xaa, 20);
|
||||
isc_hmacsha384_init(&hmacsha384, key, 20);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacsha384_update(&hmacsha384, buffer, strlen(s));
|
||||
isc_hmacsha384_sign(&hmacsha384, digest, ISC_SHA384_DIGESTLENGTH);
|
||||
print_digest(s, "hmacsha384", digest, ISC_SHA384_DIGESTLENGTH/4);
|
||||
|
||||
/*
|
||||
* The 3 HMAC-SHA512 examples from RFC4634.
|
||||
*/
|
||||
s = "Hi There";
|
||||
memset(key, 0x0b, 20);
|
||||
isc_hmacsha512_init(&hmacsha512, key, 20);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacsha512_update(&hmacsha512, buffer, strlen(s));
|
||||
isc_hmacsha512_sign(&hmacsha512, digest, ISC_SHA512_DIGESTLENGTH);
|
||||
print_digest(s, "hmacsha512", digest, ISC_SHA512_DIGESTLENGTH/4);
|
||||
|
||||
s = "what do ya want for nothing?";
|
||||
strlcpy((char *)key, "Jefe", sizeof(key));
|
||||
isc_hmacsha512_init(&hmacsha512, key, 4);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacsha512_update(&hmacsha512, buffer, strlen(s));
|
||||
isc_hmacsha512_sign(&hmacsha512, digest, ISC_SHA512_DIGESTLENGTH);
|
||||
print_digest(s, "hmacsha512", digest, ISC_SHA512_DIGESTLENGTH/4);
|
||||
|
||||
s = "\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335"
|
||||
"\335\335\335\335\335\335\335\335\335\335";
|
||||
memset(key, 0xaa, 20);
|
||||
isc_hmacsha512_init(&hmacsha512, key, 20);
|
||||
memmove(buffer, s, strlen(s));
|
||||
isc_hmacsha512_update(&hmacsha512, buffer, strlen(s));
|
||||
isc_hmacsha512_sign(&hmacsha512, digest, ISC_SHA512_DIGESTLENGTH);
|
||||
print_digest(s, "hmacsha512", digest, ISC_SHA512_DIGESTLENGTH/4);
|
||||
|
||||
return (0);
|
||||
}
|
||||
@@ -1,67 +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.
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
#include <config.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isc/keyboard.h>
|
||||
#include <isc/print.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
static void
|
||||
CHECK(const char *msg, isc_result_t result) {
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
printf("FAILURE: %s: %s\n", msg, isc_result_totext(result));
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv) {
|
||||
isc_keyboard_t kbd;
|
||||
unsigned char c;
|
||||
isc_result_t res;
|
||||
unsigned int count;
|
||||
|
||||
UNUSED(argc);
|
||||
UNUSED(argv);
|
||||
|
||||
printf("Type Q to exit.\n");
|
||||
|
||||
res = isc_keyboard_open(&kbd);
|
||||
CHECK("isc_keyboard_open()", res);
|
||||
|
||||
c = 'x';
|
||||
count = 0;
|
||||
while (res == ISC_R_SUCCESS && c != 'Q') {
|
||||
res = isc_keyboard_getchar(&kbd, &c);
|
||||
printf(".");
|
||||
fflush(stdout);
|
||||
count++;
|
||||
if (count % 64 == 0)
|
||||
printf("\r\n");
|
||||
}
|
||||
printf("\r\n");
|
||||
if (res != ISC_R_SUCCESS) {
|
||||
printf("FAILURE: keyboard getchar failed: %s\r\n",
|
||||
isc_result_totext(res));
|
||||
goto errout;
|
||||
}
|
||||
|
||||
errout:
|
||||
res = isc_keyboard_close(&kbd, 3);
|
||||
CHECK("isc_keyboard_close()", res);
|
||||
|
||||
return (0);
|
||||
}
|
||||
@@ -12,11 +12,11 @@
|
||||
#include <config.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
#include <isc/print.h>
|
||||
#include <isc/serial.h>
|
||||
#include <isc/stdlib.h>
|
||||
|
||||
int
|
||||
main() {
|
||||
|
||||
@@ -255,7 +255,7 @@ main(int argc, char *argv[]) {
|
||||
CHECK("dns_name_fromtext", result);
|
||||
|
||||
key = NULL;
|
||||
result = dst_key_fromfile(name, 4017, DNS_KEYALG_DSA,
|
||||
result = dst_key_fromfile(name, 33180, DNS_KEYALG_RSASHA1,
|
||||
DST_TYPE_PUBLIC | DST_TYPE_PRIVATE,
|
||||
NULL, mctx, &key);
|
||||
CHECK("dst_key_fromfile", result);
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <config.h>
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
@@ -35,10 +36,6 @@
|
||||
#include <dns/result.h>
|
||||
#include <dns/zone.h>
|
||||
|
||||
#ifdef ISC_PLATFORM_NEEDSYSSELECTH
|
||||
#include <sys/select.h>
|
||||
#endif
|
||||
|
||||
static int debug = 0;
|
||||
static int quiet = 0;
|
||||
static int stats = 0;
|
||||
@@ -122,7 +119,7 @@ setup(const char *zonename, const char *filename, const char *classname) {
|
||||
if (zonetype == dns_zone_slave)
|
||||
dns_zone_setmasters(zone, &addr, 1);
|
||||
|
||||
result = dns_zone_load(zone);
|
||||
result = dns_zone_load(zone, false);
|
||||
ERRRET(result, "dns_zone_load");
|
||||
|
||||
result = dns_zonemgr_managezone(zonemgr, zone);
|
||||
|
||||
@@ -22,3 +22,10 @@ ns2 A 10.53.0.2
|
||||
|
||||
a A 10.0.7.1
|
||||
mail A 10.0.7.2
|
||||
b A 10.0.7.3
|
||||
c A 10.0.7.4
|
||||
d A 10.0.7.5
|
||||
e A 10.0.7.6
|
||||
f A 10.0.7.7
|
||||
g A 10.0.7.8
|
||||
h A 10.0.7.9
|
||||
|
||||
+9
@@ -18,6 +18,15 @@ options {
|
||||
dnssec-validation no;
|
||||
};
|
||||
|
||||
key rndc_key {
|
||||
secret "1234abcd8765";
|
||||
algorithm hmac-sha256;
|
||||
};
|
||||
|
||||
controls {
|
||||
inet 10.53.0.3 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type hint;
|
||||
file "../../common/root.hint";
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
options {
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.3; };
|
||||
listen-on-v6 { none; };
|
||||
recursion yes;
|
||||
allow-recursion { any; };
|
||||
allow-recursion-on { none; };
|
||||
allow-query-cache-on { 10.53.0.3; };
|
||||
dnssec-validation no;
|
||||
};
|
||||
|
||||
key rndc_key {
|
||||
secret "1234abcd8765";
|
||||
algorithm hmac-sha256;
|
||||
};
|
||||
|
||||
controls {
|
||||
inet 10.53.0.3 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type hint;
|
||||
file "../../common/root.hint";
|
||||
};
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
options {
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.3; 10.53.1.2; };
|
||||
listen-on-v6 { none; };
|
||||
recursion yes;
|
||||
allow-recursion { any; };
|
||||
allow-query-cache { any; };
|
||||
allow-query-cache-on { 10.53.0.3; }; # allow-recursion-on inherits
|
||||
dnssec-validation no;
|
||||
};
|
||||
|
||||
key rndc_key {
|
||||
secret "1234abcd8765";
|
||||
algorithm hmac-sha256;
|
||||
};
|
||||
|
||||
controls {
|
||||
inet 10.53.0.3 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type hint;
|
||||
file "../../common/root.hint";
|
||||
};
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
options {
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.3; 10.53.1.2; };
|
||||
listen-on-v6 { none; };
|
||||
recursion yes;
|
||||
allow-recursion { any; };
|
||||
allow-query-cache { any; };
|
||||
allow-recursion-on { 10.53.0.3; }; # allow-query-cache-on inherits
|
||||
dnssec-validation no;
|
||||
};
|
||||
|
||||
key rndc_key {
|
||||
secret "1234abcd8765";
|
||||
algorithm hmac-sha256;
|
||||
};
|
||||
|
||||
controls {
|
||||
inet 10.53.0.3 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type hint;
|
||||
file "../../common/root.hint";
|
||||
};
|
||||
@@ -12,7 +12,9 @@
|
||||
SYSTEMTESTTOP=..
|
||||
. $SYSTEMTESTTOP/conf.sh
|
||||
|
||||
$SHELL clean.sh
|
||||
|
||||
copy_setports ../common/controls.conf.in ns2/controls.conf
|
||||
copy_setports ns1/named.conf.in ns1/named.conf
|
||||
copy_setports ns2/named01.conf.in ns2/named.conf
|
||||
copy_setports ns3/named.conf.in ns3/named.conf
|
||||
copy_setports ns3/named1.conf.in ns3/named.conf
|
||||
|
||||
@@ -56,9 +56,9 @@ SYSTEMTESTTOP=..
|
||||
DIGOPTS="+tcp +nosea +nostat +nocmd +norec +noques +noauth +noadd +nostats +dnssec -p ${PORT}"
|
||||
|
||||
rndc_reload() {
|
||||
echo_i "`$RNDC -c ../common/rndc.conf -s 10.53.0.2 -p ${CONTROLPORT} reload 2>&1 | sed 's/^/ns2 /'`"
|
||||
echo_i "`$RNDC -c ../common/rndc.conf -s $2 -p ${CONTROLPORT} reload 2>&1 | sed 's/^/'$1' /'`"
|
||||
for try in 0 1 2 3 4 5 6 7 8 9; do
|
||||
nextpart ns2/named.run | grep "reloading configuration succeeded" > /dev/null && break
|
||||
nextpart $1/named.run | grep "reloading configuration succeeded" > /dev/null && break
|
||||
sleep 1
|
||||
done
|
||||
}
|
||||
@@ -81,7 +81,7 @@ status=`expr $status + $ret`
|
||||
# Test 2 - explicit any, query allowed
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named02.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: explicit any - query allowed"
|
||||
ret=0
|
||||
@@ -94,7 +94,7 @@ status=`expr $status + $ret`
|
||||
# Test 3 - none, query refused
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named03.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: none - query refused"
|
||||
ret=0
|
||||
@@ -107,7 +107,7 @@ status=`expr $status + $ret`
|
||||
# Test 4 - address allowed, query allowed
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named04.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: address allowed - query allowed"
|
||||
ret=0
|
||||
@@ -120,7 +120,7 @@ status=`expr $status + $ret`
|
||||
# Test 5 - address not allowed, query refused
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named05.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: address not allowed - query refused"
|
||||
ret=0
|
||||
@@ -133,7 +133,7 @@ status=`expr $status + $ret`
|
||||
# Test 6 - address disallowed, query refused
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named06.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: address disallowed - query refused"
|
||||
ret=0
|
||||
@@ -146,7 +146,7 @@ status=`expr $status + $ret`
|
||||
# Test 7 - acl allowed, query allowed
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named07.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: acl allowed - query allowed"
|
||||
ret=0
|
||||
@@ -159,7 +159,7 @@ status=`expr $status + $ret`
|
||||
# Test 8 - acl not allowed, query refused
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named08.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: acl not allowed - query refused"
|
||||
ret=0
|
||||
@@ -173,7 +173,7 @@ status=`expr $status + $ret`
|
||||
# Test 9 - acl disallowed, query refused
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named09.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: acl disallowed - query refused"
|
||||
ret=0
|
||||
@@ -186,7 +186,7 @@ status=`expr $status + $ret`
|
||||
# Test 10 - key allowed, query allowed
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named10.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: key allowed - query allowed"
|
||||
ret=0
|
||||
@@ -199,7 +199,7 @@ status=`expr $status + $ret`
|
||||
# Test 11 - key not allowed, query refused
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named11.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: key not allowed - query refused"
|
||||
ret=0
|
||||
@@ -212,7 +212,7 @@ status=`expr $status + $ret`
|
||||
# Test 12 - key disallowed, query refused
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named12.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: key disallowed - query refused"
|
||||
ret=0
|
||||
@@ -228,7 +228,7 @@ n=20
|
||||
# Test 21 - views default, query allowed
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named21.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: views default - query allowed"
|
||||
ret=0
|
||||
@@ -241,7 +241,7 @@ status=`expr $status + $ret`
|
||||
# Test 22 - views explicit any, query allowed
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named22.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: views explicit any - query allowed"
|
||||
ret=0
|
||||
@@ -254,7 +254,7 @@ status=`expr $status + $ret`
|
||||
# Test 23 - views none, query refused
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named23.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: views none - query refused"
|
||||
ret=0
|
||||
@@ -267,7 +267,7 @@ status=`expr $status + $ret`
|
||||
# Test 24 - views address allowed, query allowed
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named24.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: views address allowed - query allowed"
|
||||
ret=0
|
||||
@@ -280,7 +280,7 @@ status=`expr $status + $ret`
|
||||
# Test 25 - views address not allowed, query refused
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named25.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: views address not allowed - query refused"
|
||||
ret=0
|
||||
@@ -293,7 +293,7 @@ status=`expr $status + $ret`
|
||||
# Test 26 - views address disallowed, query refused
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named26.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: views address disallowed - query refused"
|
||||
ret=0
|
||||
@@ -306,7 +306,7 @@ status=`expr $status + $ret`
|
||||
# Test 27 - views acl allowed, query allowed
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named27.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: views acl allowed - query allowed"
|
||||
ret=0
|
||||
@@ -319,7 +319,7 @@ status=`expr $status + $ret`
|
||||
# Test 28 - views acl not allowed, query refused
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named28.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: views acl not allowed - query refused"
|
||||
ret=0
|
||||
@@ -332,7 +332,7 @@ status=`expr $status + $ret`
|
||||
# Test 29 - views acl disallowed, query refused
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named29.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: views acl disallowed - query refused"
|
||||
ret=0
|
||||
@@ -345,7 +345,7 @@ status=`expr $status + $ret`
|
||||
# Test 30 - views key allowed, query allowed
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named30.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: views key allowed - query allowed"
|
||||
ret=0
|
||||
@@ -358,7 +358,7 @@ status=`expr $status + $ret`
|
||||
# Test 31 - views key not allowed, query refused
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named31.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: views key not allowed - query refused"
|
||||
ret=0
|
||||
@@ -371,7 +371,7 @@ status=`expr $status + $ret`
|
||||
# Test 32 - views key disallowed, query refused
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named32.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: views key disallowed - query refused"
|
||||
ret=0
|
||||
@@ -384,7 +384,7 @@ status=`expr $status + $ret`
|
||||
# Test 33 - views over options, views allow, query allowed
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named33.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: views over options, views allow - query allowed"
|
||||
ret=0
|
||||
@@ -397,7 +397,7 @@ status=`expr $status + $ret`
|
||||
# Test 34 - views over options, views disallow, query refused
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named34.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: views over options, views disallow - query refused"
|
||||
ret=0
|
||||
@@ -414,7 +414,7 @@ n=40
|
||||
# Test 41 - zone default, query allowed
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named40.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: zone default - query allowed"
|
||||
ret=0
|
||||
@@ -537,7 +537,7 @@ status=`expr $status + $ret`
|
||||
# Test 53 - zones over options, zones allow, query allowed
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named53.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: views over options, views allow - query allowed"
|
||||
ret=0
|
||||
@@ -550,7 +550,7 @@ status=`expr $status + $ret`
|
||||
# Test 54 - zones over options, zones disallow, query refused
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named54.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: views over options, views disallow - query refused"
|
||||
ret=0
|
||||
@@ -563,7 +563,7 @@ status=`expr $status + $ret`
|
||||
# Test 55 - zones over views, zones allow, query allowed
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named55.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: zones over views, views allow - query allowed"
|
||||
ret=0
|
||||
@@ -576,7 +576,7 @@ status=`expr $status + $ret`
|
||||
# Test 56 - zones over views, zones disallow, query refused
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named56.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: zones over views, views disallow - query refused"
|
||||
ret=0
|
||||
@@ -589,7 +589,7 @@ status=`expr $status + $ret`
|
||||
# Test 57 - zones over views, zones disallow, query refused (allow-query-on)
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns2/named57.conf.in ns2/named.conf
|
||||
rndc_reload
|
||||
rndc_reload ns2 10.53.0.2
|
||||
|
||||
echo_i "test $n: zones over views, allow-query-on"
|
||||
ret=0
|
||||
@@ -602,9 +602,9 @@ grep '^a.aclnotallow.example' dig.out.ns2.2.$n > /dev/null && ret=1
|
||||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
# Test 58 - allow-recursion inheritance
|
||||
# Test 58 - allow-recursion default
|
||||
n=`expr $n + 1`
|
||||
echo_i "test $n: default recursion configuration"
|
||||
echo_i "test $n: default allow-recursion configuration"
|
||||
ret=0
|
||||
$DIG -p ${PORT} @10.53.0.3 -b 127.0.0.1 a.normal.example a > dig.out.ns3.1.$n
|
||||
grep 'status: NOERROR' dig.out.ns3.1.$n > /dev/null || ret=1
|
||||
@@ -613,5 +613,82 @@ grep 'status: REFUSED' dig.out.ns3.2.$n > /dev/null || ret=1
|
||||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
# Test 59 - allow-query-cache default
|
||||
n=`expr $n + 1`
|
||||
echo_i "test $n: default allow-query-cache configuration"
|
||||
ret=0
|
||||
$DIG -p ${PORT} @10.53.0.3 -b 127.0.0.1 ns . > dig.out.ns3.1.$n
|
||||
grep 'status: NOERROR' dig.out.ns3.1.$n > /dev/null || ret=1
|
||||
$DIG -p ${PORT} @10.53.0.3 -b 10.53.0.1 ns . > dig.out.ns3.2.$n
|
||||
grep 'status: REFUSED' dig.out.ns3.2.$n > /dev/null || ret=1
|
||||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
# Test 60 - block recursion-on, allow query-cache-on
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns3/named2.conf.in ns3/named.conf
|
||||
rndc_reload ns3 10.53.0.3
|
||||
|
||||
echo_i "test $n: block recursion-on, allow query-cache-on"
|
||||
ret=0
|
||||
# this should query the cache, and an answer should already be there
|
||||
$DIG -p ${PORT} @10.53.0.3 a.normal.example a > dig.out.ns3.1.$n
|
||||
grep 'recursion requested but not available' dig.out.ns3.1.$n > /dev/null || ret=1
|
||||
grep 'ANSWER: 1' dig.out.ns3.1.$n > /dev/null || ret=1
|
||||
# this should require recursion and therefore can't get an answer
|
||||
$DIG -p ${PORT} @10.53.0.3 b.normal.example a > dig.out.ns3.2.$n
|
||||
grep 'recursion requested but not available' dig.out.ns3.2.$n > /dev/null || ret=1
|
||||
grep 'ANSWER: 0' dig.out.ns3.2.$n > /dev/null || ret=1
|
||||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
# Test 61 - inheritance of allow-query-cache-on from allow-recursion-on
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns3/named3.conf.in ns3/named.conf
|
||||
rndc_reload ns3 10.53.0.3
|
||||
|
||||
echo_i "test $n: inheritance of allow-query-cache-on"
|
||||
ret=0
|
||||
# this should query the cache, an answer should already be there
|
||||
$DIG -p ${PORT} @10.53.0.3 a.normal.example a > dig.out.ns3.1.$n
|
||||
grep 'ANSWER: 1' dig.out.ns3.1.$n > /dev/null || ret=1
|
||||
# this should be refused due to allow-recursion-on/allow-query-cache-on
|
||||
$DIG -p ${PORT} @10.53.1.2 a.normal.example a > dig.out.ns3.2.$n
|
||||
grep 'recursion requested but not available' dig.out.ns3.2.$n > /dev/null || ret=1
|
||||
grep 'status: REFUSED' dig.out.ns3.2.$n > /dev/null || ret=1
|
||||
# this should require recursion and should be allowed
|
||||
$DIG -p ${PORT} @10.53.0.3 c.normal.example a > dig.out.ns3.3.$n
|
||||
grep 'ANSWER: 1' dig.out.ns3.3.$n > /dev/null || ret=1
|
||||
# this should require recursion and be refused
|
||||
$DIG -p ${PORT} @10.53.1.2 d.normal.example a > dig.out.ns3.4.$n
|
||||
grep 'recursion requested but not available' dig.out.ns3.4.$n > /dev/null || ret=1
|
||||
grep 'status: REFUSED' dig.out.ns3.4.$n > /dev/null || ret=1
|
||||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
# Test 62 - inheritance of allow-recursion-on from allow-query-cache-on
|
||||
n=`expr $n + 1`
|
||||
copy_setports ns3/named4.conf.in ns3/named.conf
|
||||
rndc_reload ns3 10.53.0.3
|
||||
|
||||
echo_i "test $n: inheritance of allow-recursion-on"
|
||||
ret=0
|
||||
# this should query the cache, an answer should already be there
|
||||
$DIG -p ${PORT} @10.53.0.3 a.normal.example a > dig.out.ns3.1.$n
|
||||
grep 'ANSWER: 1' dig.out.ns3.1.$n > /dev/null || ret=1
|
||||
# this should be refused due to allow-recursion-on/allow-query-cache-on
|
||||
$DIG -p ${PORT} @10.53.1.2 a.normal.example a > dig.out.ns3.2.$n
|
||||
grep 'recursion requested but not available' dig.out.ns3.2.$n > /dev/null || ret=1
|
||||
grep 'status: REFUSED' dig.out.ns3.2.$n > /dev/null || ret=1
|
||||
# this should require recursion and should be allowed
|
||||
$DIG -p ${PORT} @10.53.0.3 e.normal.example a > dig.out.ns3.3.$n
|
||||
grep 'ANSWER: 1' dig.out.ns3.3.$n > /dev/null || ret=1
|
||||
# this should require recursion and be refused
|
||||
$DIG -p ${PORT} @10.53.1.2 f.normal.example a > dig.out.ns3.4.$n
|
||||
grep 'recursion requested but not available' dig.out.ns3.4.$n > /dev/null || ret=1
|
||||
grep 'status: REFUSED' dig.out.ns3.4.$n > /dev/null || ret=1
|
||||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
echo_i "exit status: $status"
|
||||
[ $status -eq 0 ] || exit 1
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user