Compare commits
769
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1af069c318 | ||
|
|
d410de0545 | ||
|
|
4ee12e5337 | ||
|
|
70da456043 | ||
|
|
8af8d626d3 | ||
|
|
4c09be6309 | ||
|
|
95b2398fdf | ||
|
|
4c56b3c556 | ||
|
|
2ee9a6ee4e | ||
|
|
8766962f22 | ||
|
|
22247084e3 | ||
|
|
7434f80008 | ||
|
|
31636d05c4 | ||
|
|
b632142526 | ||
|
|
dd4c4d155c | ||
|
|
b5ca157e2a | ||
|
|
f5d443aa56 | ||
|
|
b3bc4f6eac | ||
|
|
30bf32365f | ||
|
|
a38aa7f674 | ||
|
|
93c334dd41 | ||
|
|
76a15b6fe8 | ||
|
|
72d5660a15 | ||
|
|
f861d5d156 | ||
|
|
4fa3b4ff9c | ||
|
|
6ab9726038 | ||
|
|
d20a928435 | ||
|
|
78a3cacf8d | ||
|
|
90b8e590b7 | ||
|
|
d43392e546 | ||
|
|
1bf5a95774 | ||
|
|
cfb6e311a0 | ||
|
|
fea03c8a43 | ||
|
|
d44a1289c9 | ||
|
|
fd916bf406 | ||
|
|
6d2092e749 | ||
|
|
903fab5f6c | ||
|
|
3096e11af9 | ||
|
|
b440d30a78 | ||
|
|
7f55b7d60c | ||
|
|
9d400c7d89 | ||
|
|
75bc9ea249 | ||
|
|
239c1195d5 | ||
|
|
8dfb51b15d | ||
|
|
258f48bcf0 | ||
|
|
e9f9062732 | ||
|
|
4d725a54b8 | ||
|
|
75a8acf3ab | ||
|
|
bf63ff09c1 | ||
|
|
553313c2c2 | ||
|
|
c6d9e9cd8f | ||
|
|
7c992a0e57 | ||
|
|
b479738b20 | ||
|
|
5347941ef1 | ||
|
|
df6e06e941 | ||
|
|
236e47beec | ||
|
|
28241706c6 | ||
|
|
b792a3bc02 | ||
|
|
3ec897c97e | ||
|
|
974fc3c3f4 | ||
|
|
31a905775c | ||
|
|
1aff269e6a | ||
|
|
946f08db99 | ||
|
|
fd395947ad | ||
|
|
ab6db576e2 | ||
|
|
097989cf59 | ||
|
|
83ceebef81 | ||
|
|
84fdc4034f | ||
|
|
bf4c9450ca | ||
|
|
973eac118d | ||
|
|
9f612e0850 | ||
|
|
eeb281641b | ||
|
|
57824120e4 | ||
|
|
39057cceec | ||
|
|
87bcd335d6 | ||
|
|
2a2d8d00aa | ||
|
|
57a21490bf | ||
|
|
34f4295d1f | ||
|
|
729882ce41 | ||
|
|
91b0e48b2a | ||
|
|
c628c9a9ad | ||
|
|
cc5978a961 | ||
|
|
7b26e2d819 | ||
|
|
6f729bf3e3 | ||
|
|
ee1636d0c8 | ||
|
|
1eafd26fa4 | ||
|
|
573f88e5ba | ||
|
|
33c751c967 | ||
|
|
0c75cb9a1e | ||
|
|
d72f73af48 | ||
|
|
581baceff9 | ||
|
|
77a68cbd4c | ||
|
|
8057e21421 | ||
|
|
25bbe76f4f | ||
|
|
2a58b03336 | ||
|
|
b92b5ef35d | ||
|
|
2078d8fcca | ||
|
|
326ec91c8b | ||
|
|
2701f9eab0 | ||
|
|
7ef47e8979 | ||
|
|
ed92040d7a | ||
|
|
9691ad733b | ||
|
|
d17168b102 | ||
|
|
1c084c35f0 | ||
|
|
53058ce4b3 | ||
|
|
173ecd41a2 | ||
|
|
6464b2e962 | ||
|
|
76e8f7783d | ||
|
|
1d04597702 | ||
|
|
a12ad253f1 | ||
|
|
768fb45660 | ||
|
|
f54f73d063 | ||
|
|
b25262b1df | ||
|
|
aefde2f527 | ||
|
|
8959c97667 | ||
|
|
f109c56f4e | ||
|
|
491b2ebcf2 | ||
|
|
545e7cca9d | ||
|
|
45402340b6 | ||
|
|
8b4ce7f900 | ||
|
|
b361e7523e | ||
|
|
6cd21bd26e | ||
|
|
cbc0f07a70 | ||
|
|
7f67efcc14 | ||
|
|
18e8b0cd7f | ||
|
|
f155d1e020 | ||
|
|
04e7d2294f | ||
|
|
6809a5b594 | ||
|
|
5170a79d09 | ||
|
|
ea0543a74f | ||
|
|
db381b7205 | ||
|
|
3e3fd9bb2e | ||
|
|
3df7a1961f | ||
|
|
5d8eba4be0 | ||
|
|
a8b29e051e | ||
|
|
51a3ba45e1 | ||
|
|
ca4c9f3b06 | ||
|
|
3292b22957 | ||
|
|
5d36461feb | ||
|
|
822e20a721 | ||
|
|
e68255814e | ||
|
|
f520e571b4 | ||
|
|
25bd10710a | ||
|
|
50f6c92ae6 | ||
|
|
c356748700 | ||
|
|
66cfb7a34e | ||
|
|
841be8d06d | ||
|
|
d0b9ca1a2e | ||
|
|
f9154f3c88 | ||
|
|
4809483086 | ||
|
|
e39b03d06d | ||
|
|
e7b8c9b451 | ||
|
|
81312bcf82 | ||
|
|
c2a128587c | ||
|
|
13f4c3b54d | ||
|
|
ebc48cda26 | ||
|
|
e394632703 | ||
|
|
232140edae | ||
|
|
94ba942eab | ||
|
|
e6b8944f9e | ||
|
|
4caffaaad2 | ||
|
|
cb0140bdda | ||
|
|
1d925c4068 | ||
|
|
c9e6813899 | ||
|
|
2e85ede202 | ||
|
|
df6574aa2c | ||
|
|
d1e36a5adf | ||
|
|
f2ab4eb376 | ||
|
|
a15e89c3d6 | ||
|
|
d4551764fd | ||
|
|
f3b4b3601b | ||
|
|
06f390e478 | ||
|
|
f0fa5ce397 | ||
|
|
31998f2bf2 | ||
|
|
558ee243a6 | ||
|
|
72915c9d40 | ||
|
|
df4d771ed8 | ||
|
|
0cebbd2742 | ||
|
|
947d40692b | ||
|
|
3c11f3ea0c | ||
|
|
2b5237c325 | ||
|
|
f6d6fb8124 | ||
|
|
ef63765c73 | ||
|
|
6cf79bc963 | ||
|
|
8d0cdb54ee | ||
|
|
5159597db5 | ||
|
|
61981b3688 | ||
|
|
fe7dec851b | ||
|
|
fdd926d7cb | ||
|
|
149ffc529d | ||
|
|
3f341b996d | ||
|
|
80669d8c89 | ||
|
|
77dc5be6b4 | ||
|
|
747dbdcb84 | ||
|
|
7bcb5a3178 | ||
|
|
cd288f14e2 | ||
|
|
c3a996d547 | ||
|
|
8f1cdaeed9 | ||
|
|
326349228a | ||
|
|
fd5fc5b46a | ||
|
|
16610d5477 | ||
|
|
b572a5a210 | ||
|
|
2524d76133 | ||
|
|
2a2d512ca3 | ||
|
|
448ec6acad | ||
|
|
1298a2aa40 | ||
|
|
e1006e0a25 | ||
|
|
f6bc62e663 | ||
|
|
b8e6b68d88 | ||
|
|
6ba4b02d67 | ||
|
|
97f1bff3cc | ||
|
|
22471cc532 | ||
|
|
4e63bacc04 | ||
|
|
984f2cea47 | ||
|
|
712d991b2a | ||
|
|
d8a613b78d | ||
|
|
1b85e20f03 | ||
|
|
b2401f0caa | ||
|
|
01b76c373e | ||
|
|
be0cd728c5 | ||
|
|
7d8e7b0194 | ||
|
|
196b342bc9 | ||
|
|
496397eb3f | ||
|
|
84ff6a6963 | ||
|
|
c727a31eab | ||
|
|
a98c7408fc | ||
|
|
5b0f81e549 | ||
|
|
973d2991a0 | ||
|
|
588c14d5c9 | ||
|
|
283101fc89 | ||
|
|
3f826a923f | ||
|
|
4e04e3d861 | ||
|
|
2188a58171 | ||
|
|
8d87ad53eb | ||
|
|
0b050ad4fd | ||
|
|
3e16bf6ecb | ||
|
|
aad88d2c00 | ||
|
|
b8c84a7900 | ||
|
|
4748d7e6d4 | ||
|
|
a1f27b4012 | ||
|
|
1f83aca5e8 | ||
|
|
5dfd116057 | ||
|
|
124595ea7f | ||
|
|
430365772b | ||
|
|
b5032f7a8b | ||
|
|
387b205a65 | ||
|
|
9ffec881f2 | ||
|
|
e5f565358d | ||
|
|
36387a3761 | ||
|
|
2b8cdc06f9 | ||
|
|
c4565c994d | ||
|
|
bc6c042116 | ||
|
|
9d9a8400b2 | ||
|
|
48c1ad84c3 | ||
|
|
801bdd5a13 | ||
|
|
d995dc4661 | ||
|
|
d66a9a9b9a | ||
|
|
6045adbd1a | ||
|
|
23c2b14064 | ||
|
|
18aa38610f | ||
|
|
1a1e550f94 | ||
|
|
5369bbe6e6 | ||
|
|
24103171ca | ||
|
|
d6bd7bb9af | ||
|
|
049d8a311b | ||
|
|
7468036226 | ||
|
|
0283ab7512 | ||
|
|
7fc92bee0c | ||
|
|
6a7e805796 | ||
|
|
38e10a8201 | ||
|
|
e87a180187 | ||
|
|
34bacac31e | ||
|
|
04c8c43f09 | ||
|
|
97041a38a7 | ||
|
|
212db50edd | ||
|
|
2c494feee6 | ||
|
|
ec799c667d | ||
|
|
a25668a58b | ||
|
|
93b3964bc1 | ||
|
|
8573a1d752 | ||
|
|
41bb9505d4 | ||
|
|
e20eb63a6d | ||
|
|
bbb55191c5 | ||
|
|
0c6b4f7285 | ||
|
|
5246f6ecaa | ||
|
|
e8ce85d073 | ||
|
|
11b4bd4d7e | ||
|
|
3d839809c9 | ||
|
|
6b3eef02c5 | ||
|
|
a049ce872f | ||
|
|
09fc9d4f87 | ||
|
|
9ea8ff424a | ||
|
|
e79362eaee | ||
|
|
efaa857219 | ||
|
|
22a40323b0 | ||
|
|
0612da5d5d | ||
|
|
5324e332c5 | ||
|
|
8c1c47b22b | ||
|
|
32e5035ddb | ||
|
|
e98921fd8d | ||
|
|
aff3391656 | ||
|
|
019c5f3d12 | ||
|
|
7c963d0fc4 | ||
|
|
79765491c0 | ||
|
|
1f9eb50f56 | ||
|
|
add9625713 | ||
|
|
4906e9cb9a | ||
|
|
de65b8f0f8 | ||
|
|
095cfa32a3 | ||
|
|
5de88e29f8 | ||
|
|
5f777e6a49 | ||
|
|
b0c7a44744 | ||
|
|
84c8c26ae4 | ||
|
|
adf5b60e50 | ||
|
|
5a70336065 | ||
|
|
1c6ce19e1b | ||
|
|
878dfb1e52 | ||
|
|
488656375c | ||
|
|
931357d801 | ||
|
|
14d4968f78 | ||
|
|
aa54cc407f | ||
|
|
4f23a48449 | ||
|
|
a4946bfd23 | ||
|
|
7e8884e2e3 | ||
|
|
b9820ec727 | ||
|
|
87b7562bfb | ||
|
|
1d0bb1de10 | ||
|
|
a0621b51d8 | ||
|
|
bd501abaa6 | ||
|
|
8d2ae614e4 | ||
|
|
639bdf24c7 | ||
|
|
929ee132fc | ||
|
|
823c7babf8 | ||
|
|
6e058ea035 | ||
|
|
4e0e7e2f24 | ||
|
|
60177eb292 | ||
|
|
b65b268fde | ||
|
|
9a957fef40 | ||
|
|
9c374db434 | ||
|
|
e3afb5c619 | ||
|
|
a86cf8eef6 | ||
|
|
535cf4b1aa | ||
|
|
0c65d9dc3a | ||
|
|
f9649f0529 | ||
|
|
f33d9a825f | ||
|
|
023b44a921 | ||
|
|
65ece077c2 | ||
|
|
9c3c0c463f | ||
|
|
0fc89e0f9f | ||
|
|
d19507416d | ||
|
|
4a889d5fe3 | ||
|
|
8da63b7e7b | ||
|
|
5dda2cfca7 | ||
|
|
95c2595194 | ||
|
|
b6d11230b2 | ||
|
|
dddc16d1d5 | ||
|
|
40b2ebc9c7 | ||
|
|
60d0da833b | ||
|
|
8b29a7cbf4 | ||
|
|
668fce4f79 | ||
|
|
630d05e920 | ||
|
|
e726515e03 | ||
|
|
6ca95b5478 | ||
|
|
b7a14300d8 | ||
|
|
d0181cb97d | ||
|
|
09b95b399e | ||
|
|
7273a5fa98 | ||
|
|
93063a0d3a | ||
|
|
53683aeed5 | ||
|
|
8464fef786 | ||
|
|
2a569ef9e4 | ||
|
|
30c9068714 | ||
|
|
909651afe6 | ||
|
|
0f5871e0fa | ||
|
|
e1823c5240 | ||
|
|
eeb0747efa | ||
|
|
762344a468 | ||
|
|
96a4c329f1 | ||
|
|
a74bcebbff | ||
|
|
82f3c88d46 | ||
|
|
bdae8ed097 | ||
|
|
f7050fc728 | ||
|
|
a17eb8dec4 | ||
|
|
477515fb09 | ||
|
|
1ceef52e21 | ||
|
|
43f5b94da6 | ||
|
|
000fdd8fa5 | ||
|
|
0fc9c25cd8 | ||
|
|
98de15b780 | ||
|
|
4b21ee60b6 | ||
|
|
1aabcfc725 | ||
|
|
9088679e85 | ||
|
|
2b343d1fc1 | ||
|
|
5d8d65bfdc | ||
|
|
110beba49c | ||
|
|
b61d6cde83 | ||
|
|
f433202a5e | ||
|
|
0617148792 | ||
|
|
7ad719f45a | ||
|
|
4de58ee1c8 | ||
|
|
354cf1f66f | ||
|
|
d7862ea81c | ||
|
|
092b9d3cba | ||
|
|
3b7bf9ecac | ||
|
|
ddb09b8046 | ||
|
|
9ca0c63f1f | ||
|
|
c6bf43a821 | ||
|
|
90c4e778d5 | ||
|
|
31fbfe56fd | ||
|
|
c3162ac196 | ||
|
|
c10f361f44 | ||
|
|
ace60a3daa | ||
|
|
07f8daf536 | ||
|
|
b31a9ce95d | ||
|
|
bfd646795d | ||
|
|
9b59425d06 | ||
|
|
80d946e90e | ||
|
|
228a50a3f3 | ||
|
|
0ae562e2af | ||
|
|
7dd4fa9da3 | ||
|
|
b99c0f93b1 | ||
|
|
7098238039 | ||
|
|
227b49a830 | ||
|
|
8c7052e1cf | ||
|
|
ea9083647e | ||
|
|
0b6a698320 | ||
|
|
a0feec3dbc | ||
|
|
dbbbed29e9 | ||
|
|
b01ebf8168 | ||
|
|
83310317c7 | ||
|
|
3ebf1ddeb2 | ||
|
|
0e6a620432 | ||
|
|
2ffdbe9eff | ||
|
|
9c9b9ab651 | ||
|
|
df9cfeaf1b | ||
|
|
96e0e38fcd | ||
|
|
5755465c2f | ||
|
|
9fe5acc36b | ||
|
|
6925c8136d | ||
|
|
fb58d23a94 | ||
|
|
3e052caca8 | ||
|
|
756bb201bd | ||
|
|
63fe63c8c5 | ||
|
|
455472c817 | ||
|
|
0e30e6abaa | ||
|
|
524d36bc2d | ||
|
|
60a834789e | ||
|
|
e203d4d65a | ||
|
|
bb258967c3 | ||
|
|
3b7bc3421c | ||
|
|
e3a090e159 | ||
|
|
027c6179a8 | ||
|
|
9215d68c6b | ||
|
|
e4204809ed | ||
|
|
8c1af0d3f5 | ||
|
|
1d6133277f | ||
|
|
586e085a71 | ||
|
|
02cbca91d7 | ||
|
|
a6fac68b4f | ||
|
|
228a29da4b | ||
|
|
86e9e54766 | ||
|
|
a78af2f1d3 | ||
|
|
a41c9dbfc1 | ||
|
|
010e6f4bd7 | ||
|
|
ef28e8879b | ||
|
|
4ca208adb8 | ||
|
|
b128b54261 | ||
|
|
31c690396d | ||
|
|
6b22e1f4fe | ||
|
|
a38d17dc1c | ||
|
|
ef6001e055 | ||
|
|
434ef46661 | ||
|
|
84a02a0ed7 | ||
|
|
c7bf78d52d | ||
|
|
0c5ab7563a | ||
|
|
d5ec990f18 | ||
|
|
c15805d74d | ||
|
|
1b432b3633 | ||
|
|
ae9c457878 | ||
|
|
f58a0bbcc1 | ||
|
|
5496b04829 | ||
|
|
5bb8f501ee | ||
|
|
5bd52654e8 | ||
|
|
8691b38edf | ||
|
|
41af10f069 | ||
|
|
ca51ee2bb3 | ||
|
|
f5eae9d637 | ||
|
|
ff2c10cced | ||
|
|
8af9f59a58 | ||
|
|
eee13b7786 | ||
|
|
6419622575 | ||
|
|
358e37309c | ||
|
|
fcd2c2b644 | ||
|
|
93af6cd40e | ||
|
|
d5d4ddd764 | ||
|
|
5ac1725b67 | ||
|
|
f069aca7ed | ||
|
|
26907f1b0b | ||
|
|
2c7e341bf3 | ||
|
|
aa5839b19c | ||
|
|
b45e5fc0c6 | ||
|
|
a228c5b7be | ||
|
|
f9b7e2834c | ||
|
|
d79ad36b90 | ||
|
|
a8172d06cf | ||
|
|
1aeeb6ab85 | ||
|
|
3349792aa3 | ||
|
|
5c1d831069 | ||
|
|
c8e376af50 | ||
|
|
9e44151d40 | ||
|
|
cd40d65e1b | ||
|
|
d583362353 | ||
|
|
30ec661356 | ||
|
|
b93cb57afe | ||
|
|
d52bed8864 | ||
|
|
3113dc24ec | ||
|
|
a224bea4b2 | ||
|
|
a7c59e322b | ||
|
|
42c543bb85 | ||
|
|
96312dadc6 | ||
|
|
5626c56862 | ||
|
|
ab125db998 | ||
|
|
0d6a4f7a89 | ||
|
|
0ccddb2b0e | ||
|
|
19f249ffa5 | ||
|
|
7d7930cb82 | ||
|
|
f4dc62f33b | ||
|
|
244870844c | ||
|
|
3e75bea995 | ||
|
|
4dee3d149c | ||
|
|
72ba7d132d | ||
|
|
a7e1a91a36 | ||
|
|
7378ba8a80 | ||
|
|
ded4650794 | ||
|
|
f6c3b13522 | ||
|
|
c675e366f2 | ||
|
|
7b99a235a8 | ||
|
|
57c8cb42db | ||
|
|
ad73e08b07 | ||
|
|
b27ef87c38 | ||
|
|
86bb6e23ce | ||
|
|
1eb7267e60 | ||
|
|
14c2db8c5d | ||
|
|
4395311280 | ||
|
|
c5b191e78f | ||
|
|
56a534ab06 | ||
|
|
63b34486c1 | ||
|
|
fe0c131061 | ||
|
|
5b77d02cbb | ||
|
|
f471907db8 | ||
|
|
6ba7607283 | ||
|
|
dad1a49e4e | ||
|
|
10fba8fd8d | ||
|
|
3818f05513 | ||
|
|
92bb35b2f5 | ||
|
|
480bcb314d | ||
|
|
b24c128a2c | ||
|
|
4b3df7b577 | ||
|
|
2e7a18fb3c | ||
|
|
d006ae2195 | ||
|
|
25b1635310 | ||
|
|
69e218ea45 | ||
|
|
e09a3f0a2b | ||
|
|
3c32b765c1 | ||
|
|
53a62e2977 | ||
|
|
07d024a4da | ||
|
|
356bf021e2 | ||
|
|
14313d798a | ||
|
|
e5de594ddb | ||
|
|
6e63d7047d | ||
|
|
5ca807d65d | ||
|
|
4df48b84c1 | ||
|
|
9ff296afeb | ||
|
|
4024dac62b | ||
|
|
915f94a6a3 | ||
|
|
cabee6b765 | ||
|
|
ffdd736b63 | ||
|
|
69d3bb78c2 | ||
|
|
ddfd5be3b7 | ||
|
|
7a0f39b848 | ||
|
|
8c2a3b03f4 | ||
|
|
e1240eaa2e | ||
|
|
684f90a674 | ||
|
|
e6225b210b | ||
|
|
19c53595ff | ||
|
|
2d36283bc1 | ||
|
|
fdeb694c1e | ||
|
|
fc43fe565a | ||
|
|
9cfcce0858 | ||
|
|
7485a4332e | ||
|
|
ffb950c8ae | ||
|
|
6b09e885b8 | ||
|
|
dde35a8edf | ||
|
|
a31960314a | ||
|
|
5125a367ad | ||
|
|
753d77c51f | ||
|
|
e4bd0c00e2 | ||
|
|
2818a83df9 | ||
|
|
c52dfb2063 | ||
|
|
8b047466c9 | ||
|
|
d14d661c20 | ||
|
|
7046195e23 | ||
|
|
689f5aef5a | ||
|
|
78cce30893 | ||
|
|
31a2a00c64 | ||
|
|
514ed3d0fa | ||
|
|
03a7e521df | ||
|
|
cab6c2ff01 | ||
|
|
a61cc8cffe | ||
|
|
e677397e19 | ||
|
|
a226afa2a6 | ||
|
|
1119cccf99 | ||
|
|
6fd2475f3e | ||
|
|
3954d4ec30 | ||
|
|
8c0a0011f4 | ||
|
|
b1c658b850 | ||
|
|
7885bbff99 | ||
|
|
2dc5dbfeb2 | ||
|
|
b57ca2982f | ||
|
|
3123d8714f | ||
|
|
b30e5f11fb | ||
|
|
838906b3cd | ||
|
|
46bc92d5d1 | ||
|
|
68608eaa3c | ||
|
|
1c1fb922c2 | ||
|
|
8f2227a423 | ||
|
|
be71d9cc43 | ||
|
|
cdaf04f043 | ||
|
|
12fa506459 | ||
|
|
d69530cae8 | ||
|
|
d8ef8b5658 | ||
|
|
1210201ab3 | ||
|
|
e9a1087e96 | ||
|
|
e658e92ada | ||
|
|
a87585aba3 | ||
|
|
fcb5642ec0 | ||
|
|
84910c0920 | ||
|
|
ec8621ae10 | ||
|
|
fcc7a8c6ca | ||
|
|
769982d7db | ||
|
|
abf84143e4 | ||
|
|
b0b1c5f88f | ||
|
|
2b526cf8e1 | ||
|
|
4e0e40dee7 | ||
|
|
7dcee14699 | ||
|
|
d974a28898 | ||
|
|
85f6e00755 | ||
|
|
0faa56cb6c | ||
|
|
802a965245 | ||
|
|
79a4cbd203 | ||
|
|
83acb4ffad | ||
|
|
8f2f5d98dc | ||
|
|
f301744f59 | ||
|
|
f28953b6fc | ||
|
|
8f1c3e5da6 | ||
|
|
95a765202c | ||
|
|
b23e7208ed | ||
|
|
a169e35634 | ||
|
|
4e38e3bb24 | ||
|
|
3bf0350ae7 | ||
|
|
7202303f8c | ||
|
|
9fe1f29d39 | ||
|
|
040d631027 | ||
|
|
a364783956 | ||
|
|
1e2bfb1460 | ||
|
|
1d3a271352 | ||
|
|
8faca93b37 | ||
|
|
06d2cb71da | ||
|
|
e2ee2e9e0b | ||
|
|
61339e91ea | ||
|
|
cdf928d391 | ||
|
|
5bb39746a1 | ||
|
|
c1489dfa4f | ||
|
|
8b1e4ec8e9 | ||
|
|
e58a77043c | ||
|
|
ee9d1eca72 | ||
|
|
c117605812 | ||
|
|
f13692afcf | ||
|
|
d76b2147a8 | ||
|
|
e152529fb7 | ||
|
|
edc607bced | ||
|
|
b3e152610d | ||
|
|
5d09223874 | ||
|
|
56e4b5c9dd | ||
|
|
36d91876bf | ||
|
|
4a46242ed2 | ||
|
|
5b27d26909 | ||
|
|
7ddd24ba97 | ||
|
|
9d3eb872d0 | ||
|
|
ef46f75066 | ||
|
|
98fd813532 | ||
|
|
be60fedced | ||
|
|
71adab3f4a | ||
|
|
54f9c1d306 | ||
|
|
c2fb1f8853 | ||
|
|
9036952f84 | ||
|
|
3e676b0d65 | ||
|
|
0a5a0a5e97 | ||
|
|
a553168786 | ||
|
|
d4d89a18af | ||
|
|
f1f695ef5a | ||
|
|
1865264426 | ||
|
|
9b72458b1e | ||
|
|
3883acc5c2 | ||
|
|
4ddfaeea3e | ||
|
|
017b190bdb | ||
|
|
919dc5dd42 | ||
|
|
c7d164fad5 | ||
|
|
1d8682d429 | ||
|
|
3b6de8e0c1 | ||
|
|
cb1006d95d | ||
|
|
8c32b70956 | ||
|
|
b12970046a | ||
|
|
4b0eaf7267 | ||
|
|
e4a544e989 | ||
|
|
60beddf87f | ||
|
|
7c78e5b90a | ||
|
|
3ca83c19d9 | ||
|
|
8578d11ca7 | ||
|
|
00d04b28c2 | ||
|
|
4e800096e6 | ||
|
|
f9920f62c4 | ||
|
|
25e4ebaba6 | ||
|
|
3c29d47797 | ||
|
|
6fd9415350 | ||
|
|
06b36db554 | ||
|
|
3761db36e8 | ||
|
|
778cfd3a98 | ||
|
|
8431d18426 | ||
|
|
ed72b9434d | ||
|
|
71f7589f08 | ||
|
|
43eeb2319b | ||
|
|
79666f739b | ||
|
|
7b1f4c8a6a | ||
|
|
c2c957735f | ||
|
|
4ea7fb82a7 | ||
|
|
13c0bf922b | ||
|
|
8d3931409e | ||
|
|
3396f9396f | ||
|
|
06d5da0204 | ||
|
|
0f520ac026 | ||
|
|
05f156e8ba | ||
|
|
ae159914b0 | ||
|
|
d6cb3022a3 | ||
|
|
6594f7acb2 | ||
|
|
a4cd74e71a | ||
|
|
48d7e4bb40 | ||
|
|
e2def297b6 | ||
|
|
c01d63373c | ||
|
|
6491691ac4 | ||
|
|
453f5da790 | ||
|
|
856c74700f | ||
|
|
ce5857556b | ||
|
|
ed6c10d46b | ||
|
|
bc01aadc02 | ||
|
|
702e5dc21a | ||
|
|
a47d2850c0 | ||
|
|
7d5b7192ec | ||
|
|
d68adfea9c | ||
|
|
873c704de9 | ||
|
|
ff47556e26 | ||
|
|
f3fbbc20d2 | ||
|
|
8b8e492e48 | ||
|
|
ea5a5b77f9 | ||
|
|
98ef5c09d2 | ||
|
|
3516864ade | ||
|
|
5aa41ae9f8 | ||
|
|
566ad7021e | ||
|
|
2579f31f54 |
+28
-4
@@ -15,9 +15,6 @@
|
|||||||
(expand-file-name
|
(expand-file-name
|
||||||
(concat directory-of-current-dir-locals-file "./"))
|
(concat directory-of-current-dir-locals-file "./"))
|
||||||
|
|
||||||
;; current directory
|
|
||||||
(expand-file-name (concat default-directory "./"))
|
|
||||||
|
|
||||||
;; libisc
|
;; libisc
|
||||||
(expand-file-name
|
(expand-file-name
|
||||||
(concat directory-of-current-dir-locals-file "lib/isc/unix/include"))
|
(concat directory-of-current-dir-locals-file "lib/isc/unix/include"))
|
||||||
@@ -25,11 +22,16 @@
|
|||||||
(concat directory-of-current-dir-locals-file "lib/isc/pthreads/include"))
|
(concat directory-of-current-dir-locals-file "lib/isc/pthreads/include"))
|
||||||
(expand-file-name
|
(expand-file-name
|
||||||
(concat directory-of-current-dir-locals-file "lib/isc/include"))
|
(concat directory-of-current-dir-locals-file "lib/isc/include"))
|
||||||
|
(expand-file-name
|
||||||
|
(concat directory-of-current-dir-locals-file "lib/isc"))
|
||||||
|
(expand-file-name
|
||||||
|
(concat directory-of-current-dir-locals-file "lib/isc/netmgr"))
|
||||||
|
|
||||||
;; libdns
|
;; libdns
|
||||||
|
|
||||||
(expand-file-name
|
(expand-file-name
|
||||||
(concat directory-of-current-dir-locals-file "lib/dns/include"))
|
(concat directory-of-current-dir-locals-file "lib/dns/include"))
|
||||||
|
(expand-file-name
|
||||||
|
(concat directory-of-current-dir-locals-file "lib/dns"))
|
||||||
|
|
||||||
;; libisccc
|
;; libisccc
|
||||||
(expand-file-name
|
(expand-file-name
|
||||||
@@ -51,6 +53,28 @@
|
|||||||
(expand-file-name
|
(expand-file-name
|
||||||
(concat directory-of-current-dir-locals-file "lib/bind9/include"))
|
(concat directory-of-current-dir-locals-file "lib/bind9/include"))
|
||||||
|
|
||||||
|
;; bin
|
||||||
|
(expand-file-name
|
||||||
|
(concat directory-of-current-dir-locals-file "bin/check"))
|
||||||
|
(expand-file-name
|
||||||
|
(concat directory-of-current-dir-locals-file "bin/confgen/include"))
|
||||||
|
(expand-file-name
|
||||||
|
(concat directory-of-current-dir-locals-file "bin/confgen"))
|
||||||
|
(expand-file-name
|
||||||
|
(concat directory-of-current-dir-locals-file "bin/confgen/include"))
|
||||||
|
(expand-file-name
|
||||||
|
(concat directory-of-current-dir-locals-file "bin/dig/include"))
|
||||||
|
(expand-file-name
|
||||||
|
(concat directory-of-current-dir-locals-file "bin/named/include"))
|
||||||
|
(expand-file-name
|
||||||
|
(concat directory-of-current-dir-locals-file "bin/rndc/include"))
|
||||||
|
(expand-file-name
|
||||||
|
(concat directory-of-current-dir-locals-file "bin/dnssec/include"))
|
||||||
|
(expand-file-name
|
||||||
|
(concat directory-of-current-dir-locals-file "bin/named/include"))
|
||||||
|
(expand-file-name
|
||||||
|
(concat directory-of-current-dir-locals-file "bin/rndc/include"))
|
||||||
|
|
||||||
(expand-file-name "/usr/local/opt/openssl@1.1/include")
|
(expand-file-name "/usr/local/opt/openssl@1.1/include")
|
||||||
(expand-file-name "/usr/local/opt/libxml2/include/libxml2")
|
(expand-file-name "/usr/local/opt/libxml2/include/libxml2")
|
||||||
(expand-file-name "/usr/local/include")
|
(expand-file-name "/usr/local/include")
|
||||||
|
|||||||
+51
-29
@@ -1,36 +1,58 @@
|
|||||||
Makefile
|
|
||||||
config.log
|
|
||||||
config.h
|
|
||||||
config.cache
|
|
||||||
config.status
|
|
||||||
libtool
|
|
||||||
/isc-config.sh
|
|
||||||
/configure.lineno
|
|
||||||
autom4te.cache/
|
|
||||||
*.rej
|
|
||||||
*.orig
|
|
||||||
*.o
|
|
||||||
*.lo
|
|
||||||
*.so
|
|
||||||
*.a
|
|
||||||
*.la
|
|
||||||
*.gcno
|
|
||||||
*.gcda
|
|
||||||
*_test
|
|
||||||
*-symtbl.c
|
*-symtbl.c
|
||||||
timestamp
|
*.a
|
||||||
ans.run
|
*.gcda
|
||||||
named.run
|
*.gcno
|
||||||
named.memstats
|
*.la
|
||||||
gen.dSYM/
|
*.lo
|
||||||
|
*.o
|
||||||
|
*.orig
|
||||||
|
*.plist/ # ccc-analyzer store its results in .plist directories
|
||||||
|
*.rej
|
||||||
|
*.so
|
||||||
|
*_test
|
||||||
|
*~
|
||||||
.ccache/
|
.ccache/
|
||||||
|
.cproject
|
||||||
.deps/
|
.deps/
|
||||||
.dirstamp
|
.dirstamp
|
||||||
.libs/
|
.libs/
|
||||||
# ccc-analyzer store its results in .plist directories
|
|
||||||
*.plist/
|
|
||||||
*~
|
|
||||||
.project
|
.project
|
||||||
.cproject
|
|
||||||
.settings
|
.settings
|
||||||
kyua.log
|
/aclocal.m4
|
||||||
|
/ar-lib
|
||||||
|
/autom4te.cache/
|
||||||
|
/bind.keys.h
|
||||||
|
/compile
|
||||||
|
/config.cache
|
||||||
|
/config.guess
|
||||||
|
/config.h
|
||||||
|
/config.h.in
|
||||||
|
/config.log
|
||||||
|
/config.status
|
||||||
|
/config.sub
|
||||||
|
/configure
|
||||||
|
/configure.lineno
|
||||||
|
/depcomp
|
||||||
|
/install-sh
|
||||||
|
/isc-config.sh
|
||||||
|
/libltdl/*
|
||||||
|
/libtool
|
||||||
|
/ltmain.sh
|
||||||
|
/m4/libtool.m4
|
||||||
|
/m4/ltargz.m4
|
||||||
|
/m4/ltdl.m4
|
||||||
|
/m4/ltoptions.m4
|
||||||
|
/m4/ltsugar.m4
|
||||||
|
/m4/ltversion.m4
|
||||||
|
/m4/lt~obsolete.m4
|
||||||
|
/missing
|
||||||
|
/py-compile
|
||||||
|
/stamp-h1
|
||||||
|
/test-driver
|
||||||
|
Makefile
|
||||||
|
ans.run
|
||||||
|
gen.dSYM/
|
||||||
|
kyua.log
|
||||||
|
named.memstats
|
||||||
|
named.run
|
||||||
|
timestamp
|
||||||
|
|||||||
+308
-32
@@ -8,14 +8,30 @@ variables:
|
|||||||
CCACHE_DIR: "/ccache"
|
CCACHE_DIR: "/ccache"
|
||||||
SOFTHSM2_CONF: "/var/tmp/softhsm2/softhsm2.conf"
|
SOFTHSM2_CONF: "/var/tmp/softhsm2/softhsm2.conf"
|
||||||
|
|
||||||
|
# VirtualBox driver needs to set build_dir to "/builds" in gitlab-runner.toml
|
||||||
|
KYUA_RESULT: "$CI_PROJECT_DIR/kyua.results"
|
||||||
|
|
||||||
|
GIT_DEPTH: 1
|
||||||
|
BUILD_PARALLEL_JOBS: 6
|
||||||
|
TEST_PARALLEL_JOBS: 6
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- precheck
|
- precheck
|
||||||
- build
|
- build
|
||||||
- test
|
- unit
|
||||||
|
- system
|
||||||
|
- docs
|
||||||
- push
|
- push
|
||||||
|
|
||||||
### Runner Tag Templates
|
### Runner Tag Templates
|
||||||
|
|
||||||
|
# Note: FreeBSD runners extract the FreeBSD version to use from job name
|
||||||
|
|
||||||
|
.freebsd-amd64: &freebsd_amd64
|
||||||
|
tags:
|
||||||
|
- freebsd
|
||||||
|
- amd64
|
||||||
|
|
||||||
.linux-amd64: &linux_amd64
|
.linux-amd64: &linux_amd64
|
||||||
tags:
|
tags:
|
||||||
- linux
|
- linux
|
||||||
@@ -28,6 +44,12 @@ stages:
|
|||||||
|
|
||||||
### Docker Image Templates
|
### Docker Image Templates
|
||||||
|
|
||||||
|
# Alpine Linux
|
||||||
|
|
||||||
|
.alpine-3.10-amd64: &alpine_3_10_amd64_image
|
||||||
|
image: "$CI_REGISTRY_IMAGE:alpine-3.10-amd64"
|
||||||
|
<<: *linux_amd64
|
||||||
|
|
||||||
# CentOS
|
# CentOS
|
||||||
|
|
||||||
.centos-centos6-amd64: ¢os_centos6_amd64_image
|
.centos-centos6-amd64: ¢os_centos6_amd64_image
|
||||||
@@ -44,10 +66,6 @@ stages:
|
|||||||
image: "$CI_REGISTRY_IMAGE:debian-jessie-amd64"
|
image: "$CI_REGISTRY_IMAGE:debian-jessie-amd64"
|
||||||
<<: *linux_amd64
|
<<: *linux_amd64
|
||||||
|
|
||||||
.debian-jessie-i386: &debian_jessie_i386_image
|
|
||||||
image: "$CI_REGISTRY_IMAGE:debian-jessie-i386"
|
|
||||||
<<: *linux_i386
|
|
||||||
|
|
||||||
.debian-stretch-amd64: &debian_stretch_amd64_image
|
.debian-stretch-amd64: &debian_stretch_amd64_image
|
||||||
image: "$CI_REGISTRY_IMAGE:debian-stretch-amd64"
|
image: "$CI_REGISTRY_IMAGE:debian-stretch-amd64"
|
||||||
<<: *linux_amd64
|
<<: *linux_amd64
|
||||||
@@ -56,6 +74,10 @@ stages:
|
|||||||
image: "$CI_REGISTRY_IMAGE:debian-stretch-i386"
|
image: "$CI_REGISTRY_IMAGE:debian-stretch-i386"
|
||||||
<<: *linux_i386
|
<<: *linux_i386
|
||||||
|
|
||||||
|
.debian-buster-amd64: &debian_buster_amd64_image
|
||||||
|
image: "$CI_REGISTRY_IMAGE:debian-buster-amd64"
|
||||||
|
<<: *linux_i386
|
||||||
|
|
||||||
.debian-sid-amd64: &debian_sid_amd64_image
|
.debian-sid-amd64: &debian_sid_amd64_image
|
||||||
image: "$CI_REGISTRY_IMAGE:debian-sid-amd64"
|
image: "$CI_REGISTRY_IMAGE:debian-sid-amd64"
|
||||||
<<: *linux_amd64
|
<<: *linux_amd64
|
||||||
@@ -66,8 +88,8 @@ stages:
|
|||||||
|
|
||||||
# Fedora
|
# Fedora
|
||||||
|
|
||||||
.fedora-29-amd64: &fedora_29_amd64_image
|
.fedora-30-amd64: &fedora_30_amd64_image
|
||||||
image: "$CI_REGISTRY_IMAGE:fedora-29-amd64"
|
image: "$CI_REGISTRY_IMAGE:fedora-30-amd64"
|
||||||
<<: *linux_amd64
|
<<: *linux_amd64
|
||||||
|
|
||||||
# Ubuntu
|
# Ubuntu
|
||||||
@@ -101,26 +123,65 @@ stages:
|
|||||||
<<: *debian_sid_amd64_image
|
<<: *debian_sid_amd64_image
|
||||||
stage: precheck
|
stage: precheck
|
||||||
|
|
||||||
|
.autoconf: &autoconf_job
|
||||||
|
<<: *default_triggering_rules
|
||||||
|
<<: *debian_sid_amd64_image
|
||||||
|
stage: precheck
|
||||||
|
script:
|
||||||
|
- autoreconf -fi
|
||||||
|
artifacts:
|
||||||
|
untracked: true
|
||||||
|
expire_in: "1 hour"
|
||||||
|
|
||||||
|
.configure: &configure |
|
||||||
|
./configure \
|
||||||
|
--disable-maintainer-mode \
|
||||||
|
--enable-developer \
|
||||||
|
--with-libtool \
|
||||||
|
--with-geoip2=auto \
|
||||||
|
--disable-static \
|
||||||
|
--with-cmocka \
|
||||||
|
--with-libxml2 \
|
||||||
|
--with-json \
|
||||||
|
--prefix=$HOME/.local \
|
||||||
|
--without-make-clean \
|
||||||
|
$EXTRA_CONFIGURE \
|
||||||
|
|| cat config.log
|
||||||
|
|
||||||
.build: &build_job
|
.build: &build_job
|
||||||
<<: *default_triggering_rules
|
<<: *default_triggering_rules
|
||||||
stage: build
|
stage: build
|
||||||
before_script:
|
before_script:
|
||||||
- test -w "${CCACHE_DIR}" && export PATH="/usr/lib/ccache:${PATH}"
|
- test -w "${CCACHE_DIR}" && export PATH="/usr/lib/ccache:${PATH}"
|
||||||
script:
|
script:
|
||||||
- ./configure --enable-developer --with-libtool --disable-static --with-cmocka --prefix=$HOME/.local --without-make-clean $EXTRA_CONFIGURE || cat config.log
|
- *configure
|
||||||
- make -j${BUILD_PARALLEL_JOBS:-1} -k all V=1
|
- make -j${BUILD_PARALLEL_JOBS:-1} -k all V=1
|
||||||
- test -z "${RUN_MAKE_INSTALL}" || make install
|
- test -z "${RUN_MAKE_INSTALL}" || make install
|
||||||
|
dependencies:
|
||||||
|
- autoreconf:sid:amd64
|
||||||
|
needs:
|
||||||
|
- autoreconf:sid:amd64
|
||||||
artifacts:
|
artifacts:
|
||||||
untracked: true
|
untracked: true
|
||||||
expire_in: "1 hour"
|
expire_in: "1 hour"
|
||||||
|
|
||||||
|
.setup_interfaces: &setup_interfaces |
|
||||||
|
if [ "$(id -u)" -eq "0" ]; then
|
||||||
|
sh -x bin/tests/system/ifconfig.sh up;
|
||||||
|
else
|
||||||
|
sudo sh -x bin/tests/system/ifconfig.sh up;
|
||||||
|
fi
|
||||||
|
|
||||||
|
.setup_softhsm: &setup_softhsm |
|
||||||
|
sh -x util/prepare-softhsm2.sh
|
||||||
|
|
||||||
.system_test: &system_test_job
|
.system_test: &system_test_job
|
||||||
<<: *default_triggering_rules
|
<<: *default_triggering_rules
|
||||||
stage: test
|
stage: system
|
||||||
retry: 2
|
retry: 2
|
||||||
before_script:
|
before_script:
|
||||||
- bash -x bin/tests/system/ifconfig.sh up
|
- *setup_interfaces
|
||||||
- bash -x util/prepare-softhsm2.sh
|
- *setup_softhsm
|
||||||
script:
|
script:
|
||||||
- ( cd bin/tests && make -j${TEST_PARALLEL_JOBS:-1} -k test V=1 )
|
- ( cd bin/tests && make -j${TEST_PARALLEL_JOBS:-1} -k test V=1 )
|
||||||
- test -s bin/tests/system/systests.output
|
- test -s bin/tests/system/systests.output
|
||||||
@@ -129,16 +190,22 @@ stages:
|
|||||||
expire_in: "1 week"
|
expire_in: "1 week"
|
||||||
when: on_failure
|
when: on_failure
|
||||||
|
|
||||||
|
.kyua_report: &kyua_report_html |
|
||||||
|
kyua --logfile /dev/null report-html \
|
||||||
|
--force \
|
||||||
|
--results-file "$KYUA_RESULT" \
|
||||||
|
--results-filter "" \
|
||||||
|
--output kyua_html
|
||||||
|
|
||||||
.unit_test: &unit_test_job
|
.unit_test: &unit_test_job
|
||||||
<<: *default_triggering_rules
|
<<: *default_triggering_rules
|
||||||
stage: test
|
stage: unit
|
||||||
before_script:
|
before_script:
|
||||||
- export KYUA_RESULT="$CI_PROJECT_DIR/kyua.results"
|
- *setup_softhsm
|
||||||
- bash -x util/prepare-softhsm2.sh
|
|
||||||
script:
|
script:
|
||||||
- make unit
|
- make unit
|
||||||
after_script:
|
after_script:
|
||||||
- kyua report-html --force --results-file kyua.results --results-filter "" --output kyua_html
|
- *kyua_report_html
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- kyua.log
|
- kyua.log
|
||||||
@@ -151,6 +218,9 @@ stages:
|
|||||||
|
|
||||||
# Jobs in the precheck stage
|
# Jobs in the precheck stage
|
||||||
|
|
||||||
|
autoreconf:sid:amd64:
|
||||||
|
<<: *autoconf_job
|
||||||
|
|
||||||
misc:sid:amd64:
|
misc:sid:amd64:
|
||||||
<<: *precheck_job
|
<<: *precheck_job
|
||||||
script:
|
script:
|
||||||
@@ -167,6 +237,7 @@ misc:sid:amd64:
|
|||||||
- if test "$(git status --porcelain | grep -Ev '\?\?' | wc -l)" -gt "0"; then git status --short; exit 1; fi
|
- 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 `git ls-files '*.xml' '*.docbook'`
|
||||||
- xmllint --noout --nonet --html `git ls-files '*.html'`
|
- xmllint --noout --nonet --html `git ls-files '*.html'`
|
||||||
|
- sh util/check-win32util-configure
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- util/newcopyrights
|
- util/newcopyrights
|
||||||
@@ -176,17 +247,23 @@ misc:sid:amd64:
|
|||||||
|
|
||||||
🐞:sid:amd64:
|
🐞:sid:amd64:
|
||||||
<<: *precheck_job
|
<<: *precheck_job
|
||||||
script: util/check-cocci
|
script:
|
||||||
|
- util/check-cocci
|
||||||
|
- if test "$(git status --porcelain | grep -Ev '\?\?' | wc -l)" -gt "0"; then git status --short; exit 1; fi
|
||||||
|
|
||||||
# Jobs for doc builds on Debian Sid (amd64)
|
# Jobs for doc builds on Debian Sid (amd64)
|
||||||
|
|
||||||
docs:sid:amd64:
|
docs:sid:amd64:
|
||||||
<<: *debian_sid_amd64_image
|
<<: *debian_sid_amd64_image
|
||||||
stage: build
|
stage: docs
|
||||||
script:
|
script:
|
||||||
- ./configure || cat config.log
|
- ./configure || cat config.log
|
||||||
- make -C doc/misc docbook
|
- make -C doc/misc docbook
|
||||||
- make -C doc/arm Bv9ARM.html
|
- make -C doc/arm Bv9ARM.html
|
||||||
|
dependencies:
|
||||||
|
- autoreconf:sid:amd64
|
||||||
|
needs:
|
||||||
|
- autoreconf:sid:amd64
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- doc/arm/
|
- doc/arm/
|
||||||
@@ -208,6 +285,30 @@ push:docs:sid:amd64:
|
|||||||
- master@isc-projects/bind9
|
- master@isc-projects/bind9
|
||||||
- /^v9_[1-9][0-9]$/@isc-projects/bind9
|
- /^v9_[1-9][0-9]$/@isc-projects/bind9
|
||||||
|
|
||||||
|
# Jobs for regular GCC builds on Alpine Linux 3.10 (amd64)
|
||||||
|
|
||||||
|
gcc:alpine3.10:amd64:
|
||||||
|
variables:
|
||||||
|
CC: gcc
|
||||||
|
CFLAGS: "-Wall -Wextra -O2 -g"
|
||||||
|
EXTRA_CONFIGURE: "--enable-dnstap"
|
||||||
|
<<: *alpine_3_10_amd64_image
|
||||||
|
<<: *build_job
|
||||||
|
|
||||||
|
system:gcc:alpine3.10:amd64:
|
||||||
|
<<: *alpine_3_10_amd64_image
|
||||||
|
<<: *system_test_job
|
||||||
|
dependencies:
|
||||||
|
- gcc:alpine3.10:amd64
|
||||||
|
needs: ["gcc:alpine3.10:amd64"]
|
||||||
|
|
||||||
|
unit:gcc:alpine3.10:amd64:
|
||||||
|
<<: *alpine_3_10_amd64_image
|
||||||
|
<<: *unit_test_job
|
||||||
|
dependencies:
|
||||||
|
- gcc:alpine3.10:amd64
|
||||||
|
needs: ["gcc:alpine3.10:amd64"]
|
||||||
|
|
||||||
# Jobs for regular GCC builds on CentOS 6 (amd64)
|
# Jobs for regular GCC builds on CentOS 6 (amd64)
|
||||||
|
|
||||||
gcc:centos6:amd64:
|
gcc:centos6:amd64:
|
||||||
@@ -223,12 +324,14 @@ system:gcc:centos6:amd64:
|
|||||||
<<: *system_test_job
|
<<: *system_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:centos6:amd64
|
- gcc:centos6:amd64
|
||||||
|
needs: ["gcc:centos6:amd64"]
|
||||||
|
|
||||||
unit:gcc:centos6:amd64:
|
unit:gcc:centos6:amd64:
|
||||||
<<: *centos_centos6_amd64_image
|
<<: *centos_centos6_amd64_image
|
||||||
<<: *unit_test_job
|
<<: *unit_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:centos6:amd64
|
- gcc:centos6:amd64
|
||||||
|
needs: ["gcc:centos6:amd64"]
|
||||||
|
|
||||||
# Jobs for regular GCC builds on CentOS 7 (amd64)
|
# Jobs for regular GCC builds on CentOS 7 (amd64)
|
||||||
|
|
||||||
@@ -236,7 +339,7 @@ gcc:centos7:amd64:
|
|||||||
variables:
|
variables:
|
||||||
CC: gcc
|
CC: gcc
|
||||||
CFLAGS: "-Wall -Wextra -O2 -g"
|
CFLAGS: "-Wall -Wextra -O2 -g"
|
||||||
EXTRA_CONFIGURE: "--with-libidn2"
|
EXTRA_CONFIGURE: "--enable-dnstap --with-libidn2"
|
||||||
<<: *centos_centos7_amd64_image
|
<<: *centos_centos7_amd64_image
|
||||||
<<: *build_job
|
<<: *build_job
|
||||||
|
|
||||||
@@ -245,12 +348,14 @@ system:gcc:centos7:amd64:
|
|||||||
<<: *system_test_job
|
<<: *system_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:centos7:amd64
|
- gcc:centos7:amd64
|
||||||
|
needs: ["gcc:centos7:amd64"]
|
||||||
|
|
||||||
unit:gcc:centos7:amd64:
|
unit:gcc:centos7:amd64:
|
||||||
<<: *centos_centos7_amd64_image
|
<<: *centos_centos7_amd64_image
|
||||||
<<: *unit_test_job
|
<<: *unit_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:centos7:amd64
|
- gcc:centos7:amd64
|
||||||
|
needs: ["gcc:centos7:amd64"]
|
||||||
|
|
||||||
# Jobs for regular GCC builds on Debian 8 Jessie (amd64)
|
# Jobs for regular GCC builds on Debian 8 Jessie (amd64)
|
||||||
|
|
||||||
@@ -258,7 +363,7 @@ gcc:jessie:amd64:
|
|||||||
variables:
|
variables:
|
||||||
CC: gcc
|
CC: gcc
|
||||||
CFLAGS: "-Wall -Wextra -O2 -g"
|
CFLAGS: "-Wall -Wextra -O2 -g"
|
||||||
EXTRA_CONFIGURE: "--without-cmocka --with-python"
|
EXTRA_CONFIGURE: "--without-cmocka --with-python --disable-geoip"
|
||||||
<<: *debian_jessie_amd64_image
|
<<: *debian_jessie_amd64_image
|
||||||
<<: *build_job
|
<<: *build_job
|
||||||
|
|
||||||
@@ -267,12 +372,14 @@ system:gcc:jessie:amd64:
|
|||||||
<<: *system_test_job
|
<<: *system_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:jessie:amd64
|
- gcc:jessie:amd64
|
||||||
|
needs: ["gcc:jessie:amd64"]
|
||||||
|
|
||||||
unit:gcc:jessie:amd64:
|
unit:gcc:jessie:amd64:
|
||||||
<<: *debian_jessie_amd64_image
|
<<: *debian_jessie_amd64_image
|
||||||
<<: *unit_test_job
|
<<: *unit_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:jessie:amd64
|
- gcc:jessie:amd64
|
||||||
|
needs: ["gcc:jessie:amd64"]
|
||||||
|
|
||||||
# Jobs for regular GCC builds on Debian 9 Stretch (amd64)
|
# Jobs for regular GCC builds on Debian 9 Stretch (amd64)
|
||||||
|
|
||||||
@@ -288,20 +395,45 @@ system:gcc:stretch:amd64:
|
|||||||
<<: *system_test_job
|
<<: *system_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:stretch:amd64
|
- gcc:stretch:amd64
|
||||||
|
needs: ["gcc:stretch:amd64"]
|
||||||
|
|
||||||
unit:gcc:stretch:amd64:
|
unit:gcc:stretch:amd64:
|
||||||
<<: *debian_stretch_amd64_image
|
<<: *debian_stretch_amd64_image
|
||||||
<<: *unit_test_job
|
<<: *unit_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:stretch:amd64
|
- gcc:stretch:amd64
|
||||||
|
needs: ["gcc:stretch:amd64"]
|
||||||
|
|
||||||
|
# Jobs for regular GCC builds on Debian 10 Buster (amd64)
|
||||||
|
|
||||||
|
gcc:buster:amd64:
|
||||||
|
variables:
|
||||||
|
CC: gcc
|
||||||
|
CFLAGS: "-Wall -Wextra -O2 -g"
|
||||||
|
<<: *debian_buster_amd64_image
|
||||||
|
<<: *build_job
|
||||||
|
|
||||||
|
system:gcc:buster:amd64:
|
||||||
|
<<: *debian_buster_amd64_image
|
||||||
|
<<: *system_test_job
|
||||||
|
dependencies:
|
||||||
|
- gcc:buster:amd64
|
||||||
|
needs: ["gcc:buster:amd64"]
|
||||||
|
|
||||||
|
unit:gcc:buster:amd64:
|
||||||
|
<<: *debian_buster_amd64_image
|
||||||
|
<<: *unit_test_job
|
||||||
|
dependencies:
|
||||||
|
- gcc:buster:amd64
|
||||||
|
needs: ["gcc:buster:amd64"]
|
||||||
|
|
||||||
# Jobs for regular GCC builds on Debian Sid (amd64)
|
# Jobs for regular GCC builds on Debian Sid (amd64)
|
||||||
|
|
||||||
gcc:sid:amd64:
|
gcc:sid:amd64:
|
||||||
variables:
|
variables:
|
||||||
CC: gcc
|
CC: gcc
|
||||||
CFLAGS: "-Wall -Wextra -O2 -g"
|
CFLAGS: "-Wall -Wextra -O3 -g"
|
||||||
EXTRA_CONFIGURE: "--with-libidn2"
|
EXTRA_CONFIGURE: "--enable-dnstap --with-libidn2"
|
||||||
RUN_MAKE_INSTALL: 1
|
RUN_MAKE_INSTALL: 1
|
||||||
<<: *debian_sid_amd64_image
|
<<: *debian_sid_amd64_image
|
||||||
<<: *build_job
|
<<: *build_job
|
||||||
@@ -311,20 +443,22 @@ system:gcc:sid:amd64:
|
|||||||
<<: *system_test_job
|
<<: *system_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:sid:amd64
|
- gcc:sid:amd64
|
||||||
|
needs: ["gcc:sid:amd64"]
|
||||||
|
|
||||||
unit:gcc:sid:amd64:
|
unit:gcc:sid:amd64:
|
||||||
<<: *debian_sid_amd64_image
|
<<: *debian_sid_amd64_image
|
||||||
<<: *unit_test_job
|
<<: *unit_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:sid:amd64
|
- gcc:sid:amd64
|
||||||
|
needs: ["gcc:sid:amd64"]
|
||||||
|
|
||||||
# Jobs for regular GCC builds on Debian Sid (i386)
|
# Jobs for regular GCC builds on Debian Sid (i386)
|
||||||
|
|
||||||
gcc:sid:i386:
|
gcc:sid:i386:
|
||||||
variables:
|
variables:
|
||||||
CC: gcc
|
CC: gcc
|
||||||
CFLAGS: "-Wall -Wextra -O2 -g"
|
CFLAGS: "-Wall -Wextra -O3 -g"
|
||||||
EXTRA_CONFIGURE: "--with-libidn2 --without-python"
|
EXTRA_CONFIGURE: "--enable-dnstap --with-libidn2 --without-python"
|
||||||
<<: *debian_sid_i386_image
|
<<: *debian_sid_i386_image
|
||||||
<<: *build_job
|
<<: *build_job
|
||||||
|
|
||||||
@@ -333,34 +467,38 @@ system:gcc:sid:i386:
|
|||||||
<<: *system_test_job
|
<<: *system_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:sid:i386
|
- gcc:sid:i386
|
||||||
|
needs: ["gcc:sid:i386"]
|
||||||
|
|
||||||
unit:gcc:sid:i386:
|
unit:gcc:sid:i386:
|
||||||
<<: *debian_sid_i386_image
|
<<: *debian_sid_i386_image
|
||||||
<<: *unit_test_job
|
<<: *unit_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:sid:i386
|
- gcc:sid:i386
|
||||||
|
needs: ["gcc:sid:i386"]
|
||||||
|
|
||||||
# Jobs for regular GCC builds on Fedora 29 (amd64)
|
# Jobs for regular GCC builds on Fedora 30 (amd64)
|
||||||
|
|
||||||
gcc:fedora29:amd64:
|
gcc:fedora30:amd64:
|
||||||
variables:
|
variables:
|
||||||
CC: gcc
|
CC: gcc
|
||||||
CFLAGS: "-Wall -Wextra -O2 -g"
|
CFLAGS: "-Wall -Wextra -O2 -g"
|
||||||
EXTRA_CONFIGURE: "--with-libidn2"
|
EXTRA_CONFIGURE: "--with-libidn2"
|
||||||
<<: *fedora_29_amd64_image
|
<<: *fedora_30_amd64_image
|
||||||
<<: *build_job
|
<<: *build_job
|
||||||
|
|
||||||
system:gcc:fedora29:amd64:
|
system:gcc:fedora30:amd64:
|
||||||
<<: *fedora_29_amd64_image
|
<<: *fedora_30_amd64_image
|
||||||
<<: *system_test_job
|
<<: *system_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:fedora29:amd64
|
- gcc:fedora30:amd64
|
||||||
|
needs: ["gcc:fedora30:amd64"]
|
||||||
|
|
||||||
unit:gcc:fedora29:amd64:
|
unit:gcc:fedora30:amd64:
|
||||||
<<: *fedora_29_amd64_image
|
<<: *fedora_30_amd64_image
|
||||||
<<: *unit_test_job
|
<<: *unit_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:fedora29:amd64
|
- gcc:fedora30:amd64
|
||||||
|
needs: ["gcc:fedora30:amd64"]
|
||||||
|
|
||||||
# Jobs for regular GCC builds on Ubuntu 16.04 Xenial Xerus (amd64)
|
# Jobs for regular GCC builds on Ubuntu 16.04 Xenial Xerus (amd64)
|
||||||
|
|
||||||
@@ -368,6 +506,7 @@ gcc:xenial:amd64:
|
|||||||
variables:
|
variables:
|
||||||
CC: gcc
|
CC: gcc
|
||||||
CFLAGS: "-Wall -Wextra -O2 -g"
|
CFLAGS: "-Wall -Wextra -O2 -g"
|
||||||
|
EXTRA_CONFIGURE: "--disable-geoip"
|
||||||
<<: *ubuntu_xenial_amd64_image
|
<<: *ubuntu_xenial_amd64_image
|
||||||
<<: *build_job
|
<<: *build_job
|
||||||
|
|
||||||
@@ -376,12 +515,14 @@ system:gcc:xenial:amd64:
|
|||||||
<<: *system_test_job
|
<<: *system_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:xenial:amd64
|
- gcc:xenial:amd64
|
||||||
|
needs: ["gcc:xenial:amd64"]
|
||||||
|
|
||||||
unit:gcc:xenial:amd64:
|
unit:gcc:xenial:amd64:
|
||||||
<<: *ubuntu_xenial_amd64_image
|
<<: *ubuntu_xenial_amd64_image
|
||||||
<<: *unit_test_job
|
<<: *unit_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:xenial:amd64
|
- gcc:xenial:amd64
|
||||||
|
needs: ["gcc:xenial:amd64"]
|
||||||
|
|
||||||
# Jobs for regular GCC builds on Ubuntu 18.04 Bionic Beaver (amd64)
|
# Jobs for regular GCC builds on Ubuntu 18.04 Bionic Beaver (amd64)
|
||||||
|
|
||||||
@@ -398,12 +539,14 @@ system:gcc:bionic:amd64:
|
|||||||
<<: *system_test_job
|
<<: *system_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:bionic:amd64
|
- gcc:bionic:amd64
|
||||||
|
needs: ["gcc:bionic:amd64"]
|
||||||
|
|
||||||
unit:gcc:bionic:amd64:
|
unit:gcc:bionic:amd64:
|
||||||
<<: *ubuntu_bionic_amd64_image
|
<<: *ubuntu_bionic_amd64_image
|
||||||
<<: *unit_test_job
|
<<: *unit_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- gcc:bionic:amd64
|
- gcc:bionic:amd64
|
||||||
|
needs: ["gcc:bionic:amd64"]
|
||||||
|
|
||||||
# Jobs for GCC builds with ASAN enabled on Debian Sid (amd64)
|
# Jobs for GCC builds with ASAN enabled on Debian Sid (amd64)
|
||||||
|
|
||||||
@@ -421,12 +564,14 @@ system:asan:sid:amd64:
|
|||||||
<<: *system_test_job
|
<<: *system_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- asan:sid:amd64
|
- asan:sid:amd64
|
||||||
|
needs: ["asan:sid:amd64"]
|
||||||
|
|
||||||
unit:asan:sid:amd64:
|
unit:asan:sid:amd64:
|
||||||
<<: *debian_sid_amd64_image
|
<<: *debian_sid_amd64_image
|
||||||
<<: *unit_test_job
|
<<: *unit_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- asan:sid:amd64
|
- asan:sid:amd64
|
||||||
|
needs: ["asan:sid:amd64"]
|
||||||
|
|
||||||
# Jobs for Clang builds on Debian Stretch (amd64)
|
# Jobs for Clang builds on Debian Stretch (amd64)
|
||||||
|
|
||||||
@@ -443,6 +588,7 @@ unit:clang:stretch:amd64:
|
|||||||
<<: *unit_test_job
|
<<: *unit_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- clang:stretch:amd64
|
- clang:stretch:amd64
|
||||||
|
needs: ["clang:stretch:amd64"]
|
||||||
|
|
||||||
# Jobs for Clang builds on Debian Stretch (i386)
|
# Jobs for Clang builds on Debian Stretch (i386)
|
||||||
|
|
||||||
@@ -469,9 +615,139 @@ system:pkcs11:sid:amd64:
|
|||||||
<<: *system_test_job
|
<<: *system_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- pkcs11:sid:amd64
|
- pkcs11:sid:amd64
|
||||||
|
needs: ["pkcs11:sid:amd64"]
|
||||||
|
|
||||||
unit:pkcs11:sid:amd64:
|
unit:pkcs11:sid:amd64:
|
||||||
<<: *debian_sid_amd64_image
|
<<: *debian_sid_amd64_image
|
||||||
<<: *unit_test_job
|
<<: *unit_test_job
|
||||||
dependencies:
|
dependencies:
|
||||||
- pkcs11:sid:amd64
|
- pkcs11:sid:amd64
|
||||||
|
needs: ["pkcs11:sid:amd64"]
|
||||||
|
|
||||||
|
# Jobs for Clang builds on FreeBSD 11.3 (amd64)
|
||||||
|
|
||||||
|
clang:freebsd11.3:amd64:
|
||||||
|
variables:
|
||||||
|
CFLAGS: "-Wall -Wextra -O2 -g"
|
||||||
|
<<: *freebsd_amd64
|
||||||
|
<<: *build_job
|
||||||
|
|
||||||
|
system:clang:freebsd11.3:amd64:
|
||||||
|
<<: *freebsd_amd64
|
||||||
|
<<: *system_test_job
|
||||||
|
dependencies:
|
||||||
|
- clang:freebsd11.3:amd64
|
||||||
|
needs: ["clang:freebsd11.3:amd64"]
|
||||||
|
|
||||||
|
unit:clang:freebsd11.3:amd64:
|
||||||
|
<<: *freebsd_amd64
|
||||||
|
<<: *unit_test_job
|
||||||
|
dependencies:
|
||||||
|
- clang:freebsd11.3:amd64
|
||||||
|
needs: ["clang:freebsd11.3:amd64"]
|
||||||
|
|
||||||
|
# Jobs for Clang builds on FreeBSD 12.0 (amd64)
|
||||||
|
|
||||||
|
clang:freebsd12.0:amd64:
|
||||||
|
variables:
|
||||||
|
CFLAGS: "-Wall -Wextra -O2 -g"
|
||||||
|
EXTRA_CONFIGURE: "--enable-dnstap"
|
||||||
|
<<: *freebsd_amd64
|
||||||
|
<<: *build_job
|
||||||
|
|
||||||
|
system:clang:freebsd12.0:amd64:
|
||||||
|
<<: *freebsd_amd64
|
||||||
|
<<: *system_test_job
|
||||||
|
dependencies:
|
||||||
|
- clang:freebsd12.0:amd64
|
||||||
|
needs: ["clang:freebsd12.0:amd64"]
|
||||||
|
|
||||||
|
unit:clang:freebsd12.0:amd64:
|
||||||
|
<<: *freebsd_amd64
|
||||||
|
<<: *unit_test_job
|
||||||
|
dependencies:
|
||||||
|
- clang:freebsd12.0:amd64
|
||||||
|
needs: ["clang:freebsd12.0:amd64"]
|
||||||
|
|
||||||
|
# Jobs with libtool disabled
|
||||||
|
|
||||||
|
nolibtool:sid:amd64:
|
||||||
|
variables:
|
||||||
|
CC: gcc
|
||||||
|
CFLAGS: "-Wall -Wextra -Og -g"
|
||||||
|
EXTRA_CONFIGURE: "--with-libidn2 --without-libtool --with-dlopen"
|
||||||
|
<<: *debian_sid_amd64_image
|
||||||
|
<<: *build_job
|
||||||
|
|
||||||
|
system:nolibtool:sid:amd64:
|
||||||
|
<<: *debian_sid_amd64_image
|
||||||
|
<<: *system_test_job
|
||||||
|
dependencies:
|
||||||
|
- nolibtool:sid:amd64
|
||||||
|
needs: ["nolibtool:sid:amd64"]
|
||||||
|
|
||||||
|
unit:nolibtool:sid:amd64:
|
||||||
|
<<: *debian_sid_amd64_image
|
||||||
|
<<: *unit_test_job
|
||||||
|
dependencies:
|
||||||
|
- nolibtool:sid:amd64
|
||||||
|
needs: ["nolibtool:sid:amd64"]
|
||||||
|
|
||||||
|
# Jobs for Visual Studio 2017 builds on Windows (amd64)
|
||||||
|
|
||||||
|
msvc:windows:amd64:
|
||||||
|
<<: *default_triggering_rules
|
||||||
|
stage: build
|
||||||
|
tags:
|
||||||
|
- windows
|
||||||
|
- amd64
|
||||||
|
variables:
|
||||||
|
VSCONF: Release
|
||||||
|
script:
|
||||||
|
- 'Push-Location "C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Auxiliary/Build"'
|
||||||
|
- '& cmd.exe /C "vcvarsall.bat x64 & set" | Foreach-Object { if ($_ -match "(.*?)=(.*)") { Set-Item -force -path "Env:\$($matches[1])" -value "$($matches[2])" } }'
|
||||||
|
- 'Pop-Location'
|
||||||
|
- 'Set-Location win32utils'
|
||||||
|
- '& "C:/Strawberry/perl/bin/perl.exe" Configure
|
||||||
|
"with-tools-version=15.0"
|
||||||
|
"with-platform-toolset=v141"
|
||||||
|
"with-platform-version=10.0.17763.0"
|
||||||
|
"with-vcredist=C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Redist/MSVC/14.16.27012/vcredist_x64.exe"
|
||||||
|
"with-openssl=C:/OpenSSL"
|
||||||
|
"with-libxml2=C:/libxml2"
|
||||||
|
"without-python"
|
||||||
|
"with-system-tests"
|
||||||
|
x64'
|
||||||
|
- 'Set-Item -path "Env:CL" -value "/MP$([Math]::Truncate($BUILD_PARALLEL_JOBS/2))"'
|
||||||
|
- '& msbuild.exe /maxCpuCount:2 /t:Build /p:Configuration=$VSCONF bind9.sln'
|
||||||
|
artifacts:
|
||||||
|
untracked: true
|
||||||
|
expire_in: "1 hour"
|
||||||
|
|
||||||
|
system:msvc:windows:amd64:
|
||||||
|
stage: system
|
||||||
|
tags:
|
||||||
|
- windows
|
||||||
|
- amd64
|
||||||
|
variables:
|
||||||
|
VSCONF: Release
|
||||||
|
script:
|
||||||
|
- 'Push-Location bin/tests/system'
|
||||||
|
- '$ifIndex = Get-NetIPInterface -AddressFamily IPv4 -InterfaceMetric 75 | Select-Object -ExpandProperty ifIndex'
|
||||||
|
- '& C:/tools/cygwin/bin/sed.exe -i "s/^exit.*/netsh interface ipv4 set dnsservers $ifIndex dhcp/; s/\(name\|interface\)=Loopback/$ifIndex/;" ifconfig.bat'
|
||||||
|
- '& C:/tools/cygwin/bin/sed.exe -i "s/kill -f/kill -W/;" conf.sh stop.pl'
|
||||||
|
- '& cmd.exe /C ifconfig.bat up; ""'
|
||||||
|
- 'Start-Sleep 2'
|
||||||
|
- '$Env:Path = "C:/tools/cygwin/bin;$Env:Path"'
|
||||||
|
- '& sh.exe runall.sh $TEST_PARALLEL_JOBS'
|
||||||
|
- 'If (Test-Path C:/CrashDumps/*) { dir C:/CrashDumps; Throw }'
|
||||||
|
dependencies:
|
||||||
|
- msvc:windows:amd64
|
||||||
|
needs: ["msvc:windows:amd64"]
|
||||||
|
artifacts:
|
||||||
|
untracked: true
|
||||||
|
expire_in: "1 week"
|
||||||
|
when: on_failure
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
- web
|
||||||
|
|||||||
@@ -1,3 +1,359 @@
|
|||||||
|
--- 9.14.7 released ---
|
||||||
|
|
||||||
|
5299. [security] A flaw in DNSSEC verification when transferring
|
||||||
|
mirror zones could allow data to be incorrectly
|
||||||
|
marked valid. (CVE-2019-6475) [GL #16P]
|
||||||
|
|
||||||
|
5298. [security] Named could assert if a forwarder returned a
|
||||||
|
referral, rather than resolving the query, when QNAME
|
||||||
|
minimization was enabled. (CVE-2019-6476) [GL #1051]
|
||||||
|
|
||||||
|
5297. [bug] Check whether a previous QNAME minimization fetch
|
||||||
|
is still running before starting a new one; return
|
||||||
|
SERVFAIL and log an error if so. [GL #1191]
|
||||||
|
|
||||||
|
5294. [func] Fallback to ACE name on output in locale, which does not
|
||||||
|
support converting it to unicode. [GL #846]
|
||||||
|
|
||||||
|
5293. [bug] On Windows, named crashed upon any attempt to fetch XML
|
||||||
|
statistics from it. [GL #1245]
|
||||||
|
|
||||||
|
5292. [bug] Queue 'rndc nsec3param' requests while signing inline
|
||||||
|
zone changes. [GL #1205]
|
||||||
|
|
||||||
|
--- 9.14.6 released ---
|
||||||
|
|
||||||
|
5289. [bug] Address NULL pointer dereference in rpz.c:rpz_detach.
|
||||||
|
[GL #1210]
|
||||||
|
|
||||||
|
5286. [contrib] Address potential NULL pointer dereferences in
|
||||||
|
dlz_mysqldyn_mod.c. [GL #1207]
|
||||||
|
|
||||||
|
5285. [port] win32: implement "-T maxudpXXX". [GL #837]
|
||||||
|
|
||||||
|
5283. [bug] When a response-policy zone expires, ensure that
|
||||||
|
its policies are removed from the RPZ summary
|
||||||
|
database. [GL #1146]
|
||||||
|
|
||||||
|
5282. [bug] Fixed a bug in searching for possible wildcard matches
|
||||||
|
for query names in the RPZ summary database. [GL #1146]
|
||||||
|
|
||||||
|
5281. [cleanup] Don't escape commas when reporting named's command
|
||||||
|
line. [GL #1189]
|
||||||
|
|
||||||
|
5280. [protocol] Add support for displaying EDNS option LLQ. [GL #1201]
|
||||||
|
|
||||||
|
5279. [bug] When loading, reject zones containing CDS or CDNSKEY
|
||||||
|
RRsets at the zone apex if they would cause DNSSEC
|
||||||
|
validation failures if published in the parent zone
|
||||||
|
as the DS RRset. [GL #1187]
|
||||||
|
|
||||||
|
--- 9.14.5 released ---
|
||||||
|
|
||||||
|
5277. [bug] Cache DB statistics could underflow when serve-stale
|
||||||
|
was in use, because of a bug in counter maintenance
|
||||||
|
when RRsets become stale.
|
||||||
|
|
||||||
|
Functions for dumping statistics have been updated
|
||||||
|
to dump active, stale, and ancient statistic
|
||||||
|
counters. Ancient RRset counters are prefixed
|
||||||
|
with '~'; stale RRset counters are still prefixed
|
||||||
|
with '#'. [GL #602]
|
||||||
|
|
||||||
|
5275. [bug] Mark DS records included in referral messages
|
||||||
|
with trust level "pending" so that they can be
|
||||||
|
validated and cached immediately, with no need to
|
||||||
|
re-query. [GL #964]
|
||||||
|
|
||||||
|
5274. [bug] Address potential use after free race when shutting
|
||||||
|
down rpz. [GL #1175]
|
||||||
|
|
||||||
|
5273. [bug] Check that bits [64..71] of a dns64 prefix are zero.
|
||||||
|
[GL #1159]
|
||||||
|
|
||||||
|
5269. [port] cygwin: can return ETIMEDOUT on connect() with a
|
||||||
|
non-blocking socket. [GL #1133]
|
||||||
|
|
||||||
|
5268. [bug] named could crash during configuration if
|
||||||
|
configured to use "geoip continent" ACLs with
|
||||||
|
legacy GeoIP. [GL #1163]
|
||||||
|
|
||||||
|
5266. [bug] named-checkconf failed to report dnstap-output
|
||||||
|
missing from named.conf when dnstap was specified.
|
||||||
|
[GL #1136]
|
||||||
|
|
||||||
|
5265. [bug] DNS64 and RPZ nodata (CNAME *.) rules interacted badly
|
||||||
|
[GL #1106]
|
||||||
|
|
||||||
|
5264. [func] New DNS Cookie algorithm - siphash24 - has been added
|
||||||
|
to BIND 9. [GL #605]
|
||||||
|
|
||||||
|
5236. [func] Add SipHash 2-4 implementation in lib/isc/siphash.c
|
||||||
|
and switch isc_hash_function() to use SipHash 2-4.
|
||||||
|
[GL #605]
|
||||||
|
|
||||||
|
--- 9.14.4 released ---
|
||||||
|
|
||||||
|
5260. [bug] dnstap-read was producing malformed output for large
|
||||||
|
packets. [GL #1093]
|
||||||
|
|
||||||
|
5258. [func] Added support for the GeoIP2 API from MaxMind,
|
||||||
|
when BIND is compiled using "configure --with-geoip2".
|
||||||
|
The legacy GeoIP API can be enabled by using
|
||||||
|
"configure --with-geoip" instead. These options
|
||||||
|
cannot be used together.
|
||||||
|
|
||||||
|
Certain geoip ACL settings that were available with
|
||||||
|
legacy GeoIP are not available when using GeoIP2.
|
||||||
|
See the ARM for details. [GL #182]
|
||||||
|
|
||||||
|
5257. [bug] Some statistics data was not being displayed.
|
||||||
|
Add shading to the zone tables. [GL #1030]
|
||||||
|
|
||||||
|
5256. [bug] Ensure that glue records are included in root
|
||||||
|
priming responses if "minimal-responses" is not
|
||||||
|
set to "yes". [GL #1092]
|
||||||
|
|
||||||
|
5255. [bug] Errors encountered while reloading inline-signing
|
||||||
|
zones could be ignored, causing the zone content to
|
||||||
|
be left in an incompletely updated state rather than
|
||||||
|
reverted. [GL #1109]
|
||||||
|
|
||||||
|
5254. [func] Collect metrics to report to the statistics-channel
|
||||||
|
DNSSEC signing operations (dnssec-sign) and refresh
|
||||||
|
operations (dnssec-refresh) per zone and per keytag.
|
||||||
|
[GL #513]
|
||||||
|
|
||||||
|
5253. [port] Support platforms that don't define ULLONG_MAX.
|
||||||
|
[GL #1098]
|
||||||
|
|
||||||
|
5251. [bug] Statistics were broken in x86 Windows builds.
|
||||||
|
[GL #1081]
|
||||||
|
|
||||||
|
5249. [bug] Fix a possible underflow in recursion clients
|
||||||
|
statistics when hitting recursive clients
|
||||||
|
soft quota. [GL #1067]
|
||||||
|
|
||||||
|
--- 9.14.3 released ---
|
||||||
|
|
||||||
|
5244. [security] Fixed a race condition in dns_dispatch_getnext()
|
||||||
|
that could cause an assertion failure if a
|
||||||
|
significant number of incoming packets were
|
||||||
|
rejected. (CVE-2019-6471) [GL #942]
|
||||||
|
|
||||||
|
5243. [bug] Fix a possible race between dispatcher and socket
|
||||||
|
code in a high-load cold-cache resolver scenario.
|
||||||
|
[GL #943]
|
||||||
|
|
||||||
|
5242. [bug] In relaxed qname minimization mode, fall back to
|
||||||
|
normal resolution when encountering a lame
|
||||||
|
delegation, and use _.domain/A queries rather
|
||||||
|
than domain/NS. [GL #1055]
|
||||||
|
|
||||||
|
5241. [bug] Fix Ed448 private and public key ASN.1 prefix blobs.
|
||||||
|
[GL #225]
|
||||||
|
|
||||||
|
5240. [bug] Remove key id calculation for RSAMD5. [GL #996]
|
||||||
|
|
||||||
|
5238. [bug] Fix a possible deadlock in TCP code. [GL #1046]
|
||||||
|
|
||||||
|
5237. [bug] Recurse to find the root server list with 'dig +trace'.
|
||||||
|
[GL #1028]
|
||||||
|
|
||||||
|
5234. [port] arm: just use the compiler's default support for
|
||||||
|
yield. [GL #981]
|
||||||
|
|
||||||
|
--- 9.14.2 released ---
|
||||||
|
|
||||||
|
5233. [bug] Negative trust anchors did not work with "forward only;"
|
||||||
|
to validating resolvers. [GL #997]
|
||||||
|
|
||||||
|
5231. [protocol] Add support for displaying CLIENT-TAG and SERVER-TAG.
|
||||||
|
[GL #960]
|
||||||
|
|
||||||
|
5229. [protocol] Enforce known SSHFP fingerprint lengths. [GL #852]
|
||||||
|
|
||||||
|
5228. [cleanup] If trusted-keys and managed-keys are configured
|
||||||
|
simultaneously for the same name, the key cannot
|
||||||
|
be rolled automatically. This configuration now
|
||||||
|
logs a warning. [GL #868]
|
||||||
|
|
||||||
|
5224. [bug] Only test provide-ixfr on TCP streams. [GL #991]
|
||||||
|
|
||||||
|
5223. [bug] Fixed a race in the filter-aaaa plugin accessing
|
||||||
|
the hash table. [GL #1005]
|
||||||
|
|
||||||
|
5222. [bug] 'delv -t ANY' could leak memory. [GL #983]
|
||||||
|
|
||||||
|
5221. [test] Enable parallel execution of system tests on
|
||||||
|
Windows. [GL !4101]
|
||||||
|
|
||||||
|
5220. [cleanup] Refactor the isc_stat structure to take advantage
|
||||||
|
of stdatomic. [GL !1493]
|
||||||
|
|
||||||
|
5219. [bug] Fixed a race in the filter-aaaa plugin that could
|
||||||
|
trigger a crash when returning an instance object
|
||||||
|
to the memory pool. [GL #982]
|
||||||
|
|
||||||
|
5218. [bug] Conditionally include <dlfcn.h>. [GL #995]
|
||||||
|
|
||||||
|
5217. [bug] Restore key id calculation for RSAMD5. [GL #996]
|
||||||
|
|
||||||
|
5216. [bug] Fetches-per-zone counter wasn't updated correctly
|
||||||
|
when doing qname minimization. [GL #992]
|
||||||
|
|
||||||
|
5215. [bug] Change #5124 was incomplete; named could still
|
||||||
|
return FORMERR instead of SERVFAIL in some cases.
|
||||||
|
[GL #990]
|
||||||
|
|
||||||
|
5214. [bug] win32: named now removes its lock file upon shutdown.
|
||||||
|
[GL #979]
|
||||||
|
|
||||||
|
5213. [bug] win32: Eliminated a race which allowed named.exe running
|
||||||
|
as a service to be killed prematurely during shutdown.
|
||||||
|
[GL #978]
|
||||||
|
|
||||||
|
5211. [bug] Allow out-of-zone additional data to be included
|
||||||
|
in authoritative responses if recursion is allowed
|
||||||
|
and "minimal-responses" is disabled. This behavior
|
||||||
|
was inadvertently removed in change #4605. [GL #817]
|
||||||
|
|
||||||
|
5210. [bug] When dnstap is enabled and recursion is not
|
||||||
|
available, incoming queries are now logged
|
||||||
|
as "auth". Previously, this depended on whether
|
||||||
|
recursion was requested by the client, not on
|
||||||
|
whether recursion was available. [GL #963]
|
||||||
|
|
||||||
|
5209. [bug] When update-check-ksk is true, add_sigs was not
|
||||||
|
considering offline keys, leaving record sets signed
|
||||||
|
with the incorrect type key. [GL #763]
|
||||||
|
|
||||||
|
5208. [test] Run valid rdata wire encodings through totext+fromtext
|
||||||
|
and tofmttext+fromtext methods to check these methods.
|
||||||
|
[GL #899]
|
||||||
|
|
||||||
|
5207. [test] Check delv and dig TTL values. [GL #965]
|
||||||
|
|
||||||
|
5206. [bug] Delv could print out bad TTLs. [GL #965]
|
||||||
|
|
||||||
|
5205. [bug] Enforce that a DS hash exists. [GL #899]
|
||||||
|
|
||||||
|
5204. [test] Check that dns_rdata_fromtext() produces a record that
|
||||||
|
will be accepted by dns_rdata_fromwire(). [GL #852]
|
||||||
|
|
||||||
|
5203. [bug] Enforce whether key rdata exists or not in KEY,
|
||||||
|
DNSKEY, CDNSKEY and RKEY. [GL #899]
|
||||||
|
|
||||||
|
5202. [bug] <dns/ecs.h> was missing ISC_LANG_ENDDECLS. [GL #976]
|
||||||
|
|
||||||
|
5190. [bug] Ignore trust anchors using disabled algorithms.
|
||||||
|
[GL #806]
|
||||||
|
|
||||||
|
--- 9.14.1 released ---
|
||||||
|
|
||||||
|
5201. [bug] Fix a possible deadlock in RPZ update code. [GL #973]
|
||||||
|
|
||||||
|
5200. [security] tcp-clients settings could be exceeded in some cases,
|
||||||
|
which could lead to exhaustion of file descriptors.
|
||||||
|
(CVE-2018-5743) [GL #615]
|
||||||
|
|
||||||
|
5199. [security] In certain configurations, named could crash
|
||||||
|
if nxdomain-redirect was in use and a redirected
|
||||||
|
query resulted in an NXDOMAIN from the cache.
|
||||||
|
(CVE-2019-6467) [GL #880]
|
||||||
|
|
||||||
|
5198. [bug] If a fetch context was being shut down and, at the same
|
||||||
|
time, we returned from qname minimization, an INSIST
|
||||||
|
could be hit. [GL #966]
|
||||||
|
|
||||||
|
5197. [bug] dig could die in best effort mode on multiple SIG(0)
|
||||||
|
records. Similarly on multiple OPT and multiple TSIG
|
||||||
|
records. [GL #920]
|
||||||
|
|
||||||
|
5196. [bug] make install failed with --with-dlopen=no. [GL #955]
|
||||||
|
|
||||||
|
5195. [bug] "allow-update" and "allow-update-forwarding" were
|
||||||
|
treated as configuration errors if used at the
|
||||||
|
options or view level. [GL #913]
|
||||||
|
|
||||||
|
5194. [bug] Enforce non empty ZOMEMD hash. [GL #899]
|
||||||
|
|
||||||
|
5193. [bug] EID and NIMLOC failed to do multi-line output
|
||||||
|
correctly. [GL #899]
|
||||||
|
|
||||||
|
5189. [cleanup] Remove revoked root DNSKEY from bind.keys. [GL #945]
|
||||||
|
|
||||||
|
5187. [test] Set time zone before running any tests in dnstap_test.
|
||||||
|
[GL #940]
|
||||||
|
|
||||||
|
5186. [cleanup] More dnssec-keygen manual tidying. [GL !1678]
|
||||||
|
|
||||||
|
5184. [bug] Missing unlocks in sdlz.c. [GL #936]
|
||||||
|
|
||||||
|
5183. [bug] Reinitialize ECS data before reusing client
|
||||||
|
structures. [GL #881]
|
||||||
|
|
||||||
|
--- 9.14.0 released ---
|
||||||
|
|
||||||
|
--- 9.14.0rc3 released ---
|
||||||
|
|
||||||
|
5182. [bug] Fix a high-load race/crash in handling of
|
||||||
|
isc_socket_close() in resolver. [GL #834]
|
||||||
|
|
||||||
|
5180. [bug] delv now honors the operating system's preferred
|
||||||
|
ephemeral port range. [GL #925]
|
||||||
|
|
||||||
|
5179. [cleanup] Replace some vague type declarations with the more
|
||||||
|
specific dns_secalg_t and dns_dsdigest_t.
|
||||||
|
Thanks to Tony Finch. [GL !1498]
|
||||||
|
|
||||||
|
5178. [bug] Handle EDQUOT (disk quota) and ENOSPC (disk full)
|
||||||
|
errors when writing files. [GL #902]
|
||||||
|
|
||||||
|
5177. [func] Add the ability to specify in named.conf whether a
|
||||||
|
response-policy zone's SOA record should be added
|
||||||
|
to the additional section (add-soa yes/no). [GL #865]
|
||||||
|
|
||||||
|
5167. [bug] nxdomain-redirect could sometimes lookup the wrong
|
||||||
|
redirect name. [GL #892]
|
||||||
|
|
||||||
|
--- 9.14.0rc2 released ---
|
||||||
|
|
||||||
|
5176. [tests] Remove a dependency on libxml in statschannel system
|
||||||
|
test. [GL #926]
|
||||||
|
|
||||||
|
5175. [bug] Fixed a problem with file input in dnssec-keymgr,
|
||||||
|
dnssec-coverage and dnssec-checkds when using
|
||||||
|
python3. [GL #882]
|
||||||
|
|
||||||
|
5174. [doc] Tidy dnssec-keygen manual. [GL !1557]
|
||||||
|
|
||||||
|
5173. [bug] Fixed a race in socket code that could occur when
|
||||||
|
accept, send, or recv were called from an event
|
||||||
|
loop but the socket had been closed by another
|
||||||
|
thread. [RT #874]
|
||||||
|
|
||||||
|
5172. [bug] nsupdate now honors the operating system's preferred
|
||||||
|
ephemeral port range. [GL #905]
|
||||||
|
|
||||||
|
5171. [func] named plugins are now installed into a separate
|
||||||
|
directory. Supplying a filename (a string without path
|
||||||
|
separators) in a "plugin" configuration stanza now
|
||||||
|
causes named to look for that plugin in that directory.
|
||||||
|
[GL #878]
|
||||||
|
|
||||||
|
5170. [test] Added --with-dlz-filesystem to feature-test. [GL !1587]
|
||||||
|
|
||||||
|
5169. [bug] The presence of certain types in an otherwise
|
||||||
|
empty node could cause a crash while processing a
|
||||||
|
type ANY query. [GL #901]
|
||||||
|
|
||||||
|
--- 9.14.0rc1 released ---
|
||||||
|
|
||||||
|
5168. [bug] Do not crash on shutdown when RPZ fails to load. Also,
|
||||||
|
keep previous version of the database if RPZ fails to
|
||||||
|
load. [GL #813]
|
||||||
|
|
||||||
5165. [contrib] Removed SDB drivers from contrib; they're obsolete.
|
5165. [contrib] Removed SDB drivers from contrib; they're obsolete.
|
||||||
[GL #428]
|
[GL #428]
|
||||||
|
|
||||||
@@ -25,6 +381,18 @@
|
|||||||
5157. [bug] Nslookup now errors out if there are extra command
|
5157. [bug] Nslookup now errors out if there are extra command
|
||||||
line arguments. [GL #207]
|
line arguments. [GL #207]
|
||||||
|
|
||||||
|
5141. [security] Zone transfer controls for writable DLZ zones were
|
||||||
|
not effective as the allowzonexfr method was not being
|
||||||
|
called for such zones. (CVE-2019-6465) [GL #790]
|
||||||
|
|
||||||
|
5118. [security] Named could crash if it is managing a key with
|
||||||
|
`managed-keys` and the authoritative zone is rolling
|
||||||
|
the key to an unsupported algorithm. (CVE-2018-5745)
|
||||||
|
[GL #780]
|
||||||
|
|
||||||
|
5110. [security] Named leaked memory if there were multiple Key Tag
|
||||||
|
EDNS options present. (CVE-2018-5744) [GL #772]
|
||||||
|
|
||||||
--- 9.13.6 released ---
|
--- 9.13.6 released ---
|
||||||
|
|
||||||
5156. [doc] Extended and refined the section of the ARM describing
|
5156. [doc] Extended and refined the section of the ARM describing
|
||||||
@@ -48,7 +416,7 @@
|
|||||||
- Zone signing and DNSKEY maintenance events are
|
- Zone signing and DNSKEY maintenance events are
|
||||||
now logged to the "dnssec" category
|
now logged to the "dnssec" category
|
||||||
- Messages are now logged when DNSSEC keys are
|
- Messages are now logged when DNSSEC keys are
|
||||||
pubished, activated, inactivated, deleted,
|
published, activated, inactivated, deleted,
|
||||||
or revoked.
|
or revoked.
|
||||||
[GL #714]
|
[GL #714]
|
||||||
|
|
||||||
@@ -85,8 +453,6 @@
|
|||||||
and "nsdname-enable" both now default to yes,
|
and "nsdname-enable" both now default to yes,
|
||||||
regardless of compile-time settings. [GL #824]
|
regardless of compile-time settings. [GL #824]
|
||||||
|
|
||||||
5141. [placeholder]
|
|
||||||
|
|
||||||
5140. [bug] Don't immediately mark existing keys as inactive and
|
5140. [bug] Don't immediately mark existing keys as inactive and
|
||||||
deleted when running dnssec-keymgr for the first
|
deleted when running dnssec-keymgr for the first
|
||||||
time. [GL #117]
|
time. [GL #117]
|
||||||
@@ -157,8 +523,6 @@
|
|||||||
|
|
||||||
5119. [placeholder]
|
5119. [placeholder]
|
||||||
|
|
||||||
5118. [placeholder]
|
|
||||||
|
|
||||||
5117. [placeholder]
|
5117. [placeholder]
|
||||||
|
|
||||||
5116. [bug] Named/named-checkconf triggered a assertion when
|
5116. [bug] Named/named-checkconf triggered a assertion when
|
||||||
@@ -179,8 +543,6 @@
|
|||||||
5111. [bug] Occluded DNSKEY records could make it into the
|
5111. [bug] Occluded DNSKEY records could make it into the
|
||||||
delegating NSEC/NSEC3 bitmap. [GL #742]
|
delegating NSEC/NSEC3 bitmap. [GL #742]
|
||||||
|
|
||||||
5110. [placeholder]
|
|
||||||
|
|
||||||
5109. [cleanup] Remove support for RSAMD5 algorithm. [GL #628]
|
5109. [cleanup] Remove support for RSAMD5 algorithm. [GL #628]
|
||||||
|
|
||||||
--- 9.13.5 released ---
|
--- 9.13.5 released ---
|
||||||
@@ -259,8 +621,8 @@
|
|||||||
5091. [func] Two new global and per-view options min-cache-ttl
|
5091. [func] Two new global and per-view options min-cache-ttl
|
||||||
and min-ncache-ttl [GL #613]
|
and min-ncache-ttl [GL #613]
|
||||||
|
|
||||||
5090. [bug] dig and mdig failed to properly preparse dash value
|
5090. [bug] dig and mdig failed to properly pre-parse dash value
|
||||||
pairs when value was a seperate argument and started
|
pairs when value was a separate argument and started
|
||||||
with a dash. [GL #584]
|
with a dash. [GL #584]
|
||||||
|
|
||||||
5089. [bug] Restore localhost fallback in dig and host which is
|
5089. [bug] Restore localhost fallback in dig and host which is
|
||||||
@@ -326,7 +688,7 @@
|
|||||||
5072. [bug] Add unit tests for isc_buffer_copyregion() and fix its
|
5072. [bug] Add unit tests for isc_buffer_copyregion() and fix its
|
||||||
behavior for auto-reallocated buffers. [GL #644]
|
behavior for auto-reallocated buffers. [GL #644]
|
||||||
|
|
||||||
5071. [bug] Comparision of NXT records was broken. [GL #631]
|
5071. [bug] Comparison of NXT records was broken. [GL #631]
|
||||||
|
|
||||||
5070. [bug] Record types which support a empty rdata field were
|
5070. [bug] Record types which support a empty rdata field were
|
||||||
not handling the empty rdata field case. [GL #638]
|
not handling the empty rdata field case. [GL #638]
|
||||||
@@ -345,7 +707,7 @@
|
|||||||
|
|
||||||
5065. [bug] Only set IPV6_USE_MIN_MTU on IPv6. [GL #553]
|
5065. [bug] Only set IPV6_USE_MIN_MTU on IPv6. [GL #553]
|
||||||
|
|
||||||
5064. [test] Initalize TZ environment variable before calling
|
5064. [test] Initialize TZ environment variable before calling
|
||||||
dns_test_begin in dnstap_test. [GL #624]
|
dns_test_begin in dnstap_test. [GL #624]
|
||||||
|
|
||||||
5063. [test] In statschannel test try a few times before failing
|
5063. [test] In statschannel test try a few times before failing
|
||||||
@@ -571,7 +933,7 @@
|
|||||||
5001. [bug] Fix refcount errors on error paths. [GL !563]
|
5001. [bug] Fix refcount errors on error paths. [GL !563]
|
||||||
|
|
||||||
5000. [bug] named_server_servestale() could leave the server in
|
5000. [bug] named_server_servestale() could leave the server in
|
||||||
exclusive mode if an error occured. [GL #441]
|
exclusive mode if an error occurred. [GL #441]
|
||||||
|
|
||||||
4999. [cleanup] Remove custom printf implementation in lib/isc/print.c.
|
4999. [cleanup] Remove custom printf implementation in lib/isc/print.c.
|
||||||
[GL #261]
|
[GL #261]
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
CONTRIBUTING
|
||||||
|
|
||||||
BIND Source Access and Contributor Guidelines
|
BIND Source Access and Contributor Guidelines
|
||||||
|
|
||||||
Feb 22, 2018
|
Feb 22, 2018
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
HISTORY
|
||||||
|
|
||||||
Functional enhancements from prior major releases of BIND 9
|
Functional enhancements from prior major releases of BIND 9
|
||||||
|
|
||||||
BIND 9.11
|
BIND 9.11
|
||||||
@@ -431,11 +433,11 @@ BIND 9.4.0
|
|||||||
* Detect duplicates of UDP queries we are recursing on and drop them.
|
* Detect duplicates of UDP queries we are recursing on and drop them.
|
||||||
New stats category "duplicates".
|
New stats category "duplicates".
|
||||||
* "USE INTERNAL MALLOC" is now runtime selectable.
|
* "USE INTERNAL MALLOC" is now runtime selectable.
|
||||||
* The lame cache is now done on a basis as some servers only appear to
|
* The lame cache is now done on a <qname,qclass,qtype> basis as some
|
||||||
be lame for certain query types.
|
servers only appear to be lame for certain query types.
|
||||||
* Limit the number of recursive clients that can be waiting for a single
|
* Limit the number of recursive clients that can be waiting for a single
|
||||||
query () to resolve. New options clients-per-query and
|
query (<qname,qtype,qclass>) to resolve. New options clients-per-query
|
||||||
max-clients-per-query.
|
and max-clients-per-query.
|
||||||
* dig: report the number of extra bytes still left in the packet after
|
* dig: report the number of extra bytes still left in the packet after
|
||||||
processing all the records.
|
processing all the records.
|
||||||
* Support for IPSECKEY rdata type.
|
* Support for IPSECKEY rdata type.
|
||||||
|
|||||||
+5
-5
@@ -97,27 +97,27 @@ test-force:
|
|||||||
exit $$status
|
exit $$status
|
||||||
|
|
||||||
README: README.md
|
README: README.md
|
||||||
${PANDOC} --email-obfuscation=none -s -t html README.md | \
|
${PANDOC} --email-obfuscation=none -s --metadata title="README" -f markdown-smart -t html README.md | \
|
||||||
${W3M} -dump -cols 75 -O ascii -T text/html | \
|
${W3M} -dump -cols 75 -O ascii -T text/html | \
|
||||||
sed -e '$${/^$$/d;}' > $@
|
sed -e '$${/^$$/d;}' > $@
|
||||||
|
|
||||||
HISTORY: HISTORY.md
|
HISTORY: HISTORY.md
|
||||||
${PANDOC} --email-obfuscation=none -s -t html HISTORY.md | \
|
${PANDOC} --email-obfuscation=none -s --metadata title="HISTORY" -f markdown-smart -t html HISTORY.md | \
|
||||||
${W3M} -dump -cols 75 -O ascii -T text/html | \
|
${W3M} -dump -cols 75 -O ascii -T text/html | \
|
||||||
sed -e '$${/^$$/d;}' > $@
|
sed -e '$${/^$$/d;}' > $@
|
||||||
|
|
||||||
OPTIONS: OPTIONS.md
|
OPTIONS: OPTIONS.md
|
||||||
${PANDOC} --email-obfuscation=none -s -t html OPTIONS.md | \
|
${PANDOC} --email-obfuscation=none -s --metadata title="OPTIONS" -f markdown-smart -t html OPTIONS.md | \
|
||||||
${W3M} -dump -cols 75 -O ascii -T text/html | \
|
${W3M} -dump -cols 75 -O ascii -T text/html | \
|
||||||
sed -e '$${/^$$/d;}' > $@
|
sed -e '$${/^$$/d;}' > $@
|
||||||
|
|
||||||
CONTRIBUTING: CONTRIBUTING.md
|
CONTRIBUTING: CONTRIBUTING.md
|
||||||
${PANDOC} --email-obfuscation=none -s -t html CONTRIBUTING.md | \
|
${PANDOC} --email-obfuscation=none -s --metadata title="CONTRIBUTING" -f markdown-smart -t html CONTRIBUTING.md | \
|
||||||
${W3M} -dump -cols 75 -O ascii -T text/html | \
|
${W3M} -dump -cols 75 -O ascii -T text/html | \
|
||||||
sed -e '$${/^$$/d;}' > $@
|
sed -e '$${/^$$/d;}' > $@
|
||||||
|
|
||||||
PLATFORMS: PLATFORMS.md
|
PLATFORMS: PLATFORMS.md
|
||||||
${PANDOC} --email-obfuscation=none -s -t html PLATFORMS.md | \
|
${PANDOC} --email-obfuscation=none -s --metadata title="PLATFORMS" -f markdown-smart -t html PLATFORMS.md | \
|
||||||
${W3M} -dump -cols 75 -O ascii -T text/html | \
|
${W3M} -dump -cols 75 -O ascii -T text/html | \
|
||||||
sed -e '$${/^$$/d;}' > $@
|
sed -e '$${/^$$/d;}' > $@
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
|
OPTIONS
|
||||||
|
|
||||||
Setting the STD_CDEFINES environment variable before running configure can
|
Setting the STD_CDEFINES environment variable before running configure can
|
||||||
be used to enable certain compile-time options that are not explicitly
|
be used to enable certain compile-time options that are not explicitly
|
||||||
defined in configure.
|
defined in configure.
|
||||||
|
|
||||||
Some of these settings are:
|
Some of these settings are:
|
||||||
|
|
||||||
Setting Description
|
Setting Description
|
||||||
Overwrite memory with tag values when allocating
|
Overwrite memory with tag values when allocating
|
||||||
-DISC_MEM_DEFAULTFILL=1 or freeing it; this impairs performance but
|
-DISC_MEM_DEFAULTFILL=1 or freeing it; this impairs performance but
|
||||||
makes debugging of memory problems easier.
|
makes debugging of memory problems easier.
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
PLATFORMS
|
||||||
|
|
||||||
Supported platforms
|
Supported platforms
|
||||||
|
|
||||||
In general, this version of BIND will build and run on any POSIX-compliant
|
In general, this version of BIND will build and run on any POSIX-compliant
|
||||||
@@ -13,7 +15,7 @@ offer support on a "best effort" basis for some.
|
|||||||
|
|
||||||
Regularly tested platforms
|
Regularly tested platforms
|
||||||
|
|
||||||
As of Jan 2019, BIND 9.13 is fully supported and regularly tested on the
|
As of Feb 2019, BIND 9.14 is fully supported and regularly tested on the
|
||||||
following systems:
|
following systems:
|
||||||
|
|
||||||
* Debian 8, 9, 10
|
* Debian 8, 9, 10
|
||||||
@@ -51,7 +53,7 @@ Server 2012 R2, none of these are tested regularly by ISC.
|
|||||||
|
|
||||||
Unsupported platforms
|
Unsupported platforms
|
||||||
|
|
||||||
These are platforms on which BIND 9.13 is known not to build or run:
|
These are platforms on which BIND 9.14 is known not to build or run:
|
||||||
|
|
||||||
* Platforms without at least OpenSSL 1.0.2
|
* Platforms without at least OpenSSL 1.0.2
|
||||||
* Windows 10 / x86
|
* Windows 10 / x86
|
||||||
@@ -64,27 +66,10 @@ These are platforms on which BIND 9.13 is known not to build or run:
|
|||||||
|
|
||||||
Platform quirks
|
Platform quirks
|
||||||
|
|
||||||
ARM
|
NetBSD 6 i386
|
||||||
|
|
||||||
If the compilation ends with following error:
|
The i386 build of NetBSD requires the libatomic library, available from
|
||||||
|
the gcc5-libs package. Because this library is in a non-standard path, its
|
||||||
|
location must be specified in the configure command line:
|
||||||
|
|
||||||
Error: selected processor does not support `yield' in ARM mode
|
LDFLAGS="-L/usr/pkg/gcc5/i486--netbsdelf/lib/ -Wl,-R/usr/pkg/gcc5/i486--netbsdelf/lib/" ./configure
|
||||||
|
|
||||||
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 minimum
|
|
||||||
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
|
|
||||||
|
|||||||
+7
-26
@@ -23,7 +23,7 @@ offer support on a "best effort" basis for some.
|
|||||||
|
|
||||||
### Regularly tested platforms
|
### Regularly tested platforms
|
||||||
|
|
||||||
As of Jan 2019, BIND 9.13 is fully supported and regularly tested on the
|
As of Feb 2019, BIND 9.14 is fully supported and regularly tested on the
|
||||||
following systems:
|
following systems:
|
||||||
|
|
||||||
* Debian 8, 9, 10
|
* Debian 8, 9, 10
|
||||||
@@ -60,7 +60,7 @@ Server 2012 R2, none of these are tested regularly by ISC.
|
|||||||
|
|
||||||
## Unsupported platforms
|
## Unsupported platforms
|
||||||
|
|
||||||
These are platforms on which BIND 9.13 is known *not* to build or run:
|
These are platforms on which BIND 9.14 is known *not* to build or run:
|
||||||
|
|
||||||
* Platforms without at least OpenSSL 1.0.2
|
* Platforms without at least OpenSSL 1.0.2
|
||||||
* Windows 10 / x86
|
* Windows 10 / x86
|
||||||
@@ -72,31 +72,12 @@ These are platforms on which BIND 9.13 is known *not* to build or run:
|
|||||||
|
|
||||||
## Platform quirks
|
## Platform quirks
|
||||||
|
|
||||||
### ARM
|
### NetBSD 6 i386
|
||||||
|
|
||||||
If the compilation ends with following error:
|
The i386 build of NetBSD requires the `libatomic` library, available from
|
||||||
|
the `gcc5-libs` package. Because this library is in a non-standard path,
|
||||||
|
its location must be specified in the `configure` command line:
|
||||||
|
|
||||||
```
|
```
|
||||||
Error: selected processor does not support `yield' in ARM mode
|
LDFLAGS="-L/usr/pkg/gcc5/i486--netbsdelf/lib/ -Wl,-R/usr/pkg/gcc5/i486--netbsdelf/lib/" ./configure
|
||||||
```
|
|
||||||
|
|
||||||
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 minimum 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
|
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
README
|
||||||
|
|
||||||
BIND 9
|
BIND 9
|
||||||
|
|
||||||
Contents
|
Contents
|
||||||
@@ -5,7 +7,7 @@ Contents
|
|||||||
1. Introduction
|
1. Introduction
|
||||||
2. Reporting bugs and getting help
|
2. Reporting bugs and getting help
|
||||||
3. Contributing to BIND
|
3. Contributing to BIND
|
||||||
4. BIND 9.13 features
|
4. BIND 9.14 features
|
||||||
5. Building BIND
|
5. Building BIND
|
||||||
6. macOS
|
6. macOS
|
||||||
7. Dependencies
|
7. Dependencies
|
||||||
@@ -37,7 +39,7 @@ in versions 4 and 8. Internet Systems Consortium (https://www.isc.org), a
|
|||||||
501(c)(3) public benefit corporation dedicated to providing software and
|
501(c)(3) public benefit corporation dedicated to providing software and
|
||||||
services in support of the Internet infrastructure, developed BIND 9 and
|
services in support of the Internet infrastructure, developed BIND 9 and
|
||||||
is responsible for its ongoing maintenance and improvement. BIND is open
|
is responsible for its ongoing maintenance and improvement. BIND is open
|
||||||
source software licenced under the terms of the Mozilla Public License,
|
source software licensed under the terms of the Mozilla Public License,
|
||||||
version 2.0.
|
version 2.0.
|
||||||
|
|
||||||
For a summary of features introduced in past major releases of BIND, see
|
For a summary of features introduced in past major releases of BIND, see
|
||||||
@@ -69,6 +71,9 @@ If the bug you are reporting is a potential security issue, such as an
|
|||||||
assertion failure or other crash in named, please do NOT use GitLab to
|
assertion failure or other crash in named, please do NOT use GitLab to
|
||||||
report it. Instead, please send mail to security-officer@isc.org.
|
report it. Instead, please send mail to security-officer@isc.org.
|
||||||
|
|
||||||
|
For a general overview of ISC security policies, read the Knowledge Base
|
||||||
|
article at https://kb.isc.org/docs/aa-00861.
|
||||||
|
|
||||||
Professional support and training for BIND are available from ISC at
|
Professional support and training for BIND are available from ISC at
|
||||||
https://www.isc.org/support.
|
https://www.isc.org/support.
|
||||||
|
|
||||||
@@ -88,7 +93,7 @@ Information for BIND contributors can be found in the following files: -
|
|||||||
General information: CONTRIBUTING.md - BIND 9 code style: doc/dev/style.md
|
General information: CONTRIBUTING.md - BIND 9 code style: doc/dev/style.md
|
||||||
- BIND architecture and developer guide: doc/dev/dev.md
|
- BIND architecture and developer guide: doc/dev/dev.md
|
||||||
|
|
||||||
Patches for BIND may be submitted as Merge Requests in the ISC GitLab
|
Patches for BIND may be submitted as merge requests in the ISC GitLab
|
||||||
server at at https://gitlab.isc.org/isc-projects/bind9/merge_requests.
|
server at at https://gitlab.isc.org/isc-projects/bind9/merge_requests.
|
||||||
|
|
||||||
By default, external contributors don't have ability to fork BIND in the
|
By default, external contributors don't have ability to fork BIND in the
|
||||||
@@ -100,17 +105,19 @@ If you prefer, you may also submit code by opening a GitLab Issue and
|
|||||||
including your patch as an attachment, preferably generated by git
|
including your patch as an attachment, preferably generated by git
|
||||||
format-patch.
|
format-patch.
|
||||||
|
|
||||||
BIND 9.13 features
|
BIND 9.14 features
|
||||||
|
|
||||||
BIND 9.13 is the newest development branch of BIND 9. It includes a number
|
BIND 9.14.0 is the first release from a new stable branch of BIND 9,
|
||||||
of changes from BIND 9.12 and earlier releases. New features include:
|
incorporating all changes from the 9.13 development branch, updating the
|
||||||
|
most recent stable branch, 9.12. These changes include:
|
||||||
|
|
||||||
* A new "plugin" mechanism has been added to allow query functionality
|
* A new "plugin" mechanism has been added to allow query functionality
|
||||||
to be extended using dynamically loadable libraries. The "filter-aaaa"
|
to be extended using dynamically loadable libraries. The "filter-aaaa"
|
||||||
feature has been removed from named and is now implemented as a
|
feature has been removed from named and is now implemented as a
|
||||||
plugin.
|
plugin.
|
||||||
* Socket and task code has been refactored to improve performance.
|
|
||||||
* QNAME minimization, as described in RFC 7816, is now supported.
|
* QNAME minimization, as described in RFC 7816, is now supported.
|
||||||
|
* Socket and task code has been refactored to improve performance on
|
||||||
|
most modern machines.
|
||||||
* "Root key sentinel" support, enabling validating resolvers to indicate
|
* "Root key sentinel" support, enabling validating resolvers to indicate
|
||||||
via a special query which trust anchors are configured for the root
|
via a special query which trust anchors are configured for the root
|
||||||
zone.
|
zone.
|
||||||
@@ -138,15 +145,49 @@ is now mandatory: building BIND without DNSSEC is no longer supported.
|
|||||||
Special code to support certain legacy operating systems has also been
|
Special code to support certain legacy operating systems has also been
|
||||||
removed; see the file PLATFORMS.md for details of supported platforms. In
|
removed; see the file PLATFORMS.md for details of supported platforms. In
|
||||||
addition to OpenSSL, BIND now requires support for IPv6, threads, and
|
addition to OpenSSL, BIND now requires support for IPv6, threads, and
|
||||||
standard atomic operations provided by the C compiler.
|
standard atomic operations provided by the C compiler. Non-threaded builds
|
||||||
|
are no longer supported.
|
||||||
|
|
||||||
|
BIND 9.14.1
|
||||||
|
|
||||||
|
BIND 9.14.1 is a maintenance release, and addresses security
|
||||||
|
vulnerabilities disclosed in CVE-2018-5743 and CVE-2019-6467.
|
||||||
|
|
||||||
|
BIND 9.14.2
|
||||||
|
|
||||||
|
BIND 9.14.2 is a maintenance release.
|
||||||
|
|
||||||
|
BIND 9.14.3
|
||||||
|
|
||||||
|
BIND 9.14.3 is a maintenance release, and addresses the security
|
||||||
|
vulnerability disclosed in CVE-2019-6471.
|
||||||
|
|
||||||
|
BIND 9.14.4
|
||||||
|
|
||||||
|
BIND 9.14.4 is a maintenance release, and also adds support for the new
|
||||||
|
MaxMind GeoIP2 geolocation API when built with configure --with-geoip2.
|
||||||
|
|
||||||
|
BIND 9.14.5
|
||||||
|
|
||||||
|
BIND 9.14.5 is a maintenance release.
|
||||||
|
|
||||||
|
BIND 9.14.6
|
||||||
|
|
||||||
|
BIND 9.14.6 is a maintenance release.
|
||||||
|
|
||||||
|
BIND 9.14.7
|
||||||
|
|
||||||
|
BIND 9.14.7 is a maintenance release, and also addresses the security
|
||||||
|
vulnerabilities disclosed in CVE-2019-6475 and CVE-2019-6476.
|
||||||
|
|
||||||
Building BIND
|
Building BIND
|
||||||
|
|
||||||
Minimally, BIND requires a UNIX or Linux system with an ANSI C compiler,
|
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
|
basic POSIX support, and a 64-bit integer type. Successful builds have
|
||||||
been observed on many versions of Linux and UNIX, including RedHat,
|
been observed on many versions of Linux and UNIX, including RHEL/CentOS,
|
||||||
Fedora, Debian, Ubuntu, SuSE, Slackware, FreeBSD, NetBSD, OpenBSD, Mac OS
|
Fedora, Debian, Ubuntu, SLES, openSUSE, Slackware, Alpine, FreeBSD,
|
||||||
X, Solaris, HP-UX, and OpenWRT.
|
NetBSD, OpenBSD, macOS, Solaris, OpenIndiana, OmniOS CE, HP-UX, and
|
||||||
|
OpenWRT.
|
||||||
|
|
||||||
BIND requires a cryptography provider library such as OpenSSL or a
|
BIND requires a cryptography provider library such as OpenSSL or a
|
||||||
hardware service module supporting PKCS#11. On Linux, BIND requires the
|
hardware service module supporting PKCS#11. On Linux, BIND requires the
|
||||||
@@ -155,8 +196,8 @@ overridden by disabling capability support at compile time. See
|
|||||||
Compile-time options below for details on other libraries that may be
|
Compile-time options below for details on other libraries that may be
|
||||||
required to support optional features.
|
required to support optional features.
|
||||||
|
|
||||||
BIND is also available for Windows 2008 and higher. See win32utils/
|
BIND is also available for Windows Server 2008 and higher. See win32utils/
|
||||||
readme1st.txt for details on building for Windows systems.
|
build.txt for details on building for Windows systems.
|
||||||
|
|
||||||
To build on a UNIX or Linux system, use:
|
To build on a UNIX or Linux system, use:
|
||||||
|
|
||||||
@@ -169,7 +210,7 @@ make depend. If you're using Emacs, you might find make tags helpful.
|
|||||||
Several environment variables that can be set before running configure
|
Several environment variables that can be set before running configure
|
||||||
will affect compilation:
|
will affect compilation:
|
||||||
|
|
||||||
Variable Description
|
Variable Description
|
||||||
CC The C compiler to use. configure tries to figure out the
|
CC The C compiler to use. configure tries to figure out the
|
||||||
right one for supported systems.
|
right one for supported systems.
|
||||||
C compiler flags. Defaults to include -g and/or -O2 as
|
C compiler flags. Defaults to include -g and/or -O2 as
|
||||||
@@ -184,25 +225,23 @@ STD_CDEFINES Defaults to empty string. For a list of possible settings,
|
|||||||
LDFLAGS Linker flags. Defaults to empty string.
|
LDFLAGS Linker flags. Defaults to empty string.
|
||||||
BUILD_CC Needed when cross-compiling: the native C compiler to use
|
BUILD_CC Needed when cross-compiling: the native C compiler to use
|
||||||
when building for the target system.
|
when building for the target system.
|
||||||
BUILD_CFLAGS Optional, used for cross-compiling
|
BUILD_CFLAGS CFLAGS for the target system during cross-compiling.
|
||||||
BUILD_CPPFLAGS
|
BUILD_CPPFLAGS CPPFLAGS for the target system during cross-compiling.
|
||||||
BUILD_LDFLAGS
|
BUILD_LDFLAGS LDFLAGS for the target system during cross-compiling.
|
||||||
BUILD_LIBS
|
BUILD_LIBS LIBS for the target system during cross-compiling.
|
||||||
|
|
||||||
macOS
|
macOS
|
||||||
|
|
||||||
Building on macOS assumes that the "Command Tools for Xcode" is installed.
|
Building on macOS assumes that the "Command Tools for Xcode" is installed.
|
||||||
This can be downloaded from https://developer.apple.com/download/more/ or
|
This can be downloaded from https://developer.apple.com/download/more/ or
|
||||||
if you have Xcode already installed you can run "xcode-select --install".
|
if you have Xcode already installed you can run xcode-select --install.
|
||||||
This will add /usr/include to the system and install the compiler and
|
|
||||||
other tools so that they can be easily found.
|
|
||||||
|
|
||||||
Dependencies
|
Dependencies
|
||||||
|
|
||||||
Portions of BIND that are written in Python, including dnssec-keymgr,
|
Portions of BIND that are written in Python, including dnssec-keymgr,
|
||||||
dnssec-coverage, dnssec-checkds, and some of the system tests, require the
|
dnssec-coverage, dnssec-checkds, and some of the system tests, require the
|
||||||
'argparse' and 'ply' modules to be available. 'argparse' is a standard
|
argparse and ply modules to be available. argparse is a standard module as
|
||||||
module as of Python 2.7 and Python 3.2. 'ply' is available from https://
|
of Python 2.7 and Python 3.2. ply is available from https://
|
||||||
pypi.python.org/pypi/ply.
|
pypi.python.org/pypi/ply.
|
||||||
|
|
||||||
Compile-time options
|
Compile-time options
|
||||||
@@ -221,9 +260,12 @@ operations, specify the path to the PKCS#11 provider library using
|
|||||||
--with-pkcs11=<PREFIX>, and configure BIND with --enable-native-pkcs11.
|
--with-pkcs11=<PREFIX>, and configure BIND with --enable-native-pkcs11.
|
||||||
|
|
||||||
To support the HTTP statistics channel, the server must be linked with at
|
To support the HTTP statistics channel, the server must be linked with at
|
||||||
least one of the following: libxml2 http://xmlsoft.org or json-c https://
|
least one of the following libraries: libxml2 http://xmlsoft.org or json-c
|
||||||
github.com/json-c. If these are installed at a nonstandard location,
|
https://github.com/json-c/json-c. If these are installed at a nonstandard
|
||||||
specify the prefix using --with-libxml2=/prefix or --with-libjson=/prefix.
|
location, then:
|
||||||
|
|
||||||
|
* for libxml2, specify the prefix using --with-libxml2=/prefix,
|
||||||
|
* for json-c, adjust PKG_CONFIG_PATH.
|
||||||
|
|
||||||
To support compression on the HTTP statistics channel, the server must be
|
To support compression on the HTTP statistics channel, the server must be
|
||||||
linked against libzlib. If this is installed in a nonstandard location,
|
linked against libzlib. If this is installed in a nonstandard location,
|
||||||
@@ -252,8 +294,8 @@ smaller systems.
|
|||||||
|
|
||||||
On Linux, process capabilities are managed in user space using the libcap
|
On Linux, process capabilities are managed in user space using the libcap
|
||||||
library, which can be installed on most Linux systems via the libcap-dev
|
library, which can be installed on most Linux systems via the libcap-dev
|
||||||
or libcap-devel module. Process capability support can also be disabled by
|
or libcap-devel package. Process capability support can also be disabled
|
||||||
configuring with --disable-linux-caps.
|
by configuring with --disable-linux-caps.
|
||||||
|
|
||||||
On some platforms it is necessary to explicitly request large file support
|
On some platforms it is necessary to explicitly request large file support
|
||||||
to handle files bigger than 2GB. This can be done by using
|
to handle files bigger than 2GB. This can be done by using
|
||||||
@@ -290,7 +332,7 @@ ifconfig.sh up as root.
|
|||||||
|
|
||||||
Some tests require Perl and the Net::DNS and/or IO::Socket::INET6 modules,
|
Some tests require Perl and the Net::DNS and/or IO::Socket::INET6 modules,
|
||||||
and will be skipped if these are not available. Some tests require Python
|
and will be skipped if these are not available. Some tests require Python
|
||||||
and the 'dnspython' module and will be skipped if these are not available.
|
and the dnspython module and will be skipped if these are not available.
|
||||||
See bin/tests/system/README for further details.
|
See bin/tests/system/README for further details.
|
||||||
|
|
||||||
Unit tests are implemented using the CMocka unit testing framework. To
|
Unit tests are implemented using the CMocka unit testing framework. To
|
||||||
@@ -301,7 +343,7 @@ tests can be run via make test or make unit.
|
|||||||
Documentation
|
Documentation
|
||||||
|
|
||||||
The BIND 9 Administrator Reference Manual is included with the source
|
The BIND 9 Administrator Reference Manual is included with the source
|
||||||
distribution, in DocBook XML, HTML and PDF format, in the doc/arm
|
distribution, in DocBook XML, HTML, and PDF format, in the doc/arm
|
||||||
directory.
|
directory.
|
||||||
|
|
||||||
Some of the programs in the BIND 9 distribution have man pages in their
|
Some of the programs in the BIND 9 distribution have man pages in their
|
||||||
@@ -321,7 +363,7 @@ development BIND 9 is included in the file CHANGES, with the most recent
|
|||||||
changes listed first. Change notes include tags indicating the category of
|
changes listed first. Change notes include tags indicating the category of
|
||||||
the change that was made; these categories are:
|
the change that was made; these categories are:
|
||||||
|
|
||||||
Category Description
|
Category Description
|
||||||
[func] New feature
|
[func] New feature
|
||||||
[bug] General bug fix
|
[bug] General bug fix
|
||||||
[security] Fix for a significant security flaw
|
[security] Fix for a significant security flaw
|
||||||
@@ -349,26 +391,46 @@ releases (i.e., those with version numbers ending in zero). Some new
|
|||||||
functionality may be backported to older releases on a case-by-case basis.
|
functionality may be backported to older releases on a case-by-case basis.
|
||||||
All other change types may be applied to all currently-supported releases.
|
All other change types may be applied to all currently-supported releases.
|
||||||
|
|
||||||
|
Bug report identifiers
|
||||||
|
|
||||||
|
Most notes in the CHANGES file include a reference to a bug report or
|
||||||
|
issue number. Prior to 2018, these were usually of the form [RT #NNN] and
|
||||||
|
referred to entries in the "bind9-bugs" RT database, which was not open to
|
||||||
|
the public. More recent entries use the form [GL #NNN] or, less often, [GL
|
||||||
|
!NNN], which, respectively, refer to issues or merge requests in the
|
||||||
|
GitLab database. Most of these are publicly readable, unless they include
|
||||||
|
information which is confidential or security sensitive.
|
||||||
|
|
||||||
|
To look up a GitLab issue by its number, use the URL https://
|
||||||
|
gitlab.isc.org/isc-projects/bind9/issues/NNN. To look up a merge request,
|
||||||
|
use https://gitlab.isc.org/isc-projects/bind9/merge_requests/NNN.
|
||||||
|
|
||||||
|
In rare cases, an issue or merge request number may be followed with the
|
||||||
|
letter "P". This indicates that the information is in the private ISC
|
||||||
|
GitLab instance, which is not visible to the public.
|
||||||
|
|
||||||
Acknowledgments
|
Acknowledgments
|
||||||
|
|
||||||
* The original development of BIND 9 was underwritten by the following
|
* The original development of BIND 9 was underwritten by the following
|
||||||
organizations:
|
organizations:
|
||||||
|
|
||||||
Sun Microsystems, Inc.
|
Sun Microsystems, Inc.
|
||||||
Hewlett Packard
|
Hewlett Packard
|
||||||
Compaq Computer Corporation
|
Compaq Computer Corporation
|
||||||
IBM
|
IBM
|
||||||
Process Software Corporation
|
Process Software Corporation
|
||||||
Silicon Graphics, Inc.
|
Silicon Graphics, Inc.
|
||||||
Network Associates, Inc.
|
Network Associates, Inc.
|
||||||
U.S. Defense Information Systems Agency
|
U.S. Defense Information Systems Agency
|
||||||
USENIX Association
|
USENIX Association
|
||||||
Stichting NLnet - NLnet Foundation
|
Stichting NLnet - NLnet Foundation
|
||||||
Nominum, Inc.
|
Nominum, Inc.
|
||||||
|
|
||||||
* This product includes software developed by the OpenSSL Project for
|
* This product includes software developed by the OpenSSL Project for
|
||||||
use in the OpenSSL Toolkit. http://www.OpenSSL.org/
|
use in the OpenSSL Toolkit. http://www.OpenSSL.org/
|
||||||
|
|
||||||
* This product includes cryptographic software written by Eric Young
|
* This product includes cryptographic software written by Eric Young
|
||||||
(eay@cryptsoft.com)
|
(eay@cryptsoft.com)
|
||||||
|
|
||||||
* This product includes software written by Tim Hudson
|
* This product includes software written by Tim Hudson
|
||||||
(tjh@cryptsoft.com)
|
(tjh@cryptsoft.com)
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
1. [Introduction](#intro)
|
1. [Introduction](#intro)
|
||||||
1. [Reporting bugs and getting help](#help)
|
1. [Reporting bugs and getting help](#help)
|
||||||
1. [Contributing to BIND](#contrib)
|
1. [Contributing to BIND](#contrib)
|
||||||
1. [BIND 9.13 features](#features)
|
1. [BIND 9.14 features](#features)
|
||||||
1. [Building BIND](#build)
|
1. [Building BIND](#build)
|
||||||
1. [macOS](#macos)
|
1. [macOS](#macos)
|
||||||
1. [Dependencies](#dependencies)
|
1. [Dependencies](#dependencies)
|
||||||
@@ -48,7 +48,7 @@ used in versions 4 and 8. Internet Systems Consortium
|
|||||||
corporation dedicated to providing software and services in support of the
|
corporation dedicated to providing software and services in support of the
|
||||||
Internet infrastructure, developed BIND 9 and is responsible for its
|
Internet infrastructure, developed BIND 9 and is responsible for its
|
||||||
ongoing maintenance and improvement. BIND is open source software
|
ongoing maintenance and improvement. BIND is open source software
|
||||||
licenced under the terms of the Mozilla Public License, version 2.0.
|
licensed under the terms of the Mozilla Public License, version 2.0.
|
||||||
|
|
||||||
For a summary of features introduced in past major releases of BIND,
|
For a summary of features introduced in past major releases of BIND,
|
||||||
see the file [HISTORY](HISTORY.md).
|
see the file [HISTORY](HISTORY.md).
|
||||||
@@ -82,6 +82,9 @@ assertion failure or other crash in `named`, please do *NOT* use GitLab to
|
|||||||
report it. Instead, please send mail to
|
report it. Instead, please send mail to
|
||||||
[security-officer@isc.org](mailto:security-officer@isc.org).
|
[security-officer@isc.org](mailto:security-officer@isc.org).
|
||||||
|
|
||||||
|
For a general overview of ISC security policies, read the Knowledge Base
|
||||||
|
article at [https://kb.isc.org/docs/aa-00861](https://kb.isc.org/docs/aa-00861).
|
||||||
|
|
||||||
Professional support and training for BIND are available from
|
Professional support and training for BIND are available from
|
||||||
ISC at [https://www.isc.org/support](https://www.isc.org/support).
|
ISC at [https://www.isc.org/support](https://www.isc.org/support).
|
||||||
|
|
||||||
@@ -103,7 +106,7 @@ Information for BIND contributors can be found in the following files:
|
|||||||
- BIND architecture and developer guide: [doc/dev/dev.md](doc/dev/dev.md)
|
- BIND architecture and developer guide: [doc/dev/dev.md](doc/dev/dev.md)
|
||||||
|
|
||||||
Patches for BIND may be submitted as
|
Patches for BIND may be submitted as
|
||||||
[Merge Requests](https://gitlab.isc.org/isc-projects/bind9/merge_requests)
|
[merge requests](https://gitlab.isc.org/isc-projects/bind9/merge_requests)
|
||||||
in the [ISC GitLab server](https://gitlab.isc.org) at
|
in the [ISC GitLab server](https://gitlab.isc.org) at
|
||||||
at [https://gitlab.isc.org/isc-projects/bind9/merge_requests](https://gitlab.isc.org/isc-projects/bind9/merge_requests).
|
at [https://gitlab.isc.org/isc-projects/bind9/merge_requests](https://gitlab.isc.org/isc-projects/bind9/merge_requests).
|
||||||
|
|
||||||
@@ -117,17 +120,18 @@ If you prefer, you may also submit code by opening a
|
|||||||
including your patch as an attachment, preferably generated by
|
including your patch as an attachment, preferably generated by
|
||||||
`git format-patch`.
|
`git format-patch`.
|
||||||
|
|
||||||
### <a name="features"/> BIND 9.13 features
|
### <a name="features"/> BIND 9.14 features
|
||||||
|
|
||||||
BIND 9.13 is the newest development branch of BIND 9. It includes a
|
BIND 9.14.0 is the first release from a new stable branch of BIND 9,
|
||||||
number of changes from BIND 9.12 and earlier releases. New features
|
incorporating all changes from the 9.13 development branch, updating
|
||||||
include:
|
the most recent stable branch, 9.12. These changes include:
|
||||||
|
|
||||||
* A new "plugin" mechanism has been added to allow query functionality
|
* A new "plugin" mechanism has been added to allow query functionality
|
||||||
to be extended using dynamically loadable libraries. The "filter-aaaa"
|
to be extended using dynamically loadable libraries. The "filter-aaaa"
|
||||||
feature has been removed from named and is now implemented as a plugin.
|
feature has been removed from named and is now implemented as a plugin.
|
||||||
* Socket and task code has been refactored to improve performance.
|
|
||||||
* QNAME minimization, as described in RFC 7816, is now supported.
|
* QNAME minimization, as described in RFC 7816, is now supported.
|
||||||
|
* Socket and task code has been refactored to improve performance on most
|
||||||
|
modern machines.
|
||||||
* "Root key sentinel" support, enabling validating resolvers to indicate
|
* "Root key sentinel" support, enabling validating resolvers to indicate
|
||||||
via a special query which trust anchors are configured for the root zone.
|
via a special query which trust anchors are configured for the root zone.
|
||||||
* Secondary zones can now be configured as "mirror" zones; their contents
|
* Secondary zones can now be configured as "mirror" zones; their contents
|
||||||
@@ -157,15 +161,48 @@ Special code to support certain legacy operating systems has also
|
|||||||
been removed; see the file [PLATFORMS.md](PLATFORMS.md) for details
|
been removed; see the file [PLATFORMS.md](PLATFORMS.md) for details
|
||||||
of supported platforms. In addition to OpenSSL, BIND now requires
|
of supported platforms. In addition to OpenSSL, BIND now requires
|
||||||
support for IPv6, threads, and standard atomic operations provided
|
support for IPv6, threads, and standard atomic operations provided
|
||||||
by the C compiler.
|
by the C compiler. Non-threaded builds are no longer supported.
|
||||||
|
|
||||||
|
#### BIND 9.14.1
|
||||||
|
|
||||||
|
BIND 9.14.1 is a maintenance release, and addresses security
|
||||||
|
vulnerabilities disclosed in CVE-2018-5743 and CVE-2019-6467.
|
||||||
|
|
||||||
|
#### BIND 9.14.2
|
||||||
|
|
||||||
|
BIND 9.14.2 is a maintenance release.
|
||||||
|
|
||||||
|
#### BIND 9.14.3
|
||||||
|
|
||||||
|
BIND 9.14.3 is a maintenance release, and addresses the security
|
||||||
|
vulnerability disclosed in CVE-2019-6471.
|
||||||
|
|
||||||
|
#### BIND 9.14.4
|
||||||
|
|
||||||
|
BIND 9.14.4 is a maintenance release, and also adds support for
|
||||||
|
the new MaxMind GeoIP2 geolocation API when built with
|
||||||
|
`configure --with-geoip2`.
|
||||||
|
|
||||||
|
#### BIND 9.14.5
|
||||||
|
|
||||||
|
BIND 9.14.5 is a maintenance release.
|
||||||
|
|
||||||
|
#### BIND 9.14.6
|
||||||
|
|
||||||
|
BIND 9.14.6 is a maintenance release.
|
||||||
|
|
||||||
|
#### BIND 9.14.7
|
||||||
|
|
||||||
|
BIND 9.14.7 is a maintenance release, and also addresses the security
|
||||||
|
vulnerabilities disclosed in CVE-2019-6475 and CVE-2019-6476.
|
||||||
|
|
||||||
### <a name="build"/> Building BIND
|
### <a name="build"/> Building BIND
|
||||||
|
|
||||||
Minimally, BIND requires a UNIX or Linux system with an ANSI C compiler,
|
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
|
basic POSIX support, and a 64-bit integer type. Successful builds have been
|
||||||
observed on many versions of Linux and UNIX, including RedHat, Fedora,
|
observed on many versions of Linux and UNIX, including RHEL/CentOS, Fedora,
|
||||||
Debian, Ubuntu, SuSE, Slackware, FreeBSD, NetBSD, OpenBSD, Mac OS X,
|
Debian, Ubuntu, SLES, openSUSE, Slackware, Alpine, FreeBSD, NetBSD,
|
||||||
Solaris, HP-UX, and OpenWRT.
|
OpenBSD, macOS, Solaris, OpenIndiana, OmniOS CE, HP-UX, and OpenWRT.
|
||||||
|
|
||||||
BIND requires a cryptography provider library such as OpenSSL or a
|
BIND requires a cryptography provider library such as OpenSSL or a
|
||||||
hardware service module supporting PKCS#11. On Linux, BIND requires
|
hardware service module supporting PKCS#11. On Linux, BIND requires
|
||||||
@@ -174,8 +211,8 @@ can be overridden by disabling capability support at compile time.
|
|||||||
See [Compile-time options](#opts) below for details on other libraries
|
See [Compile-time options](#opts) below for details on other libraries
|
||||||
that may be required to support optional features.
|
that may be required to support optional features.
|
||||||
|
|
||||||
BIND is also available for Windows 2008 and higher. See
|
BIND is also available for Windows Server 2008 and higher. See
|
||||||
`win32utils/readme1st.txt` for details on building for Windows
|
`win32utils/build.txt` for details on building for Windows
|
||||||
systems.
|
systems.
|
||||||
|
|
||||||
To build on a UNIX or Linux system, use:
|
To build on a UNIX or Linux system, use:
|
||||||
@@ -197,26 +234,24 @@ affect compilation:
|
|||||||
|`STD_CDEFINES`|Any additional preprocessor symbols you want defined. Defaults to empty string. For a list of possible settings, see the file [OPTIONS](OPTIONS.md).|
|
|`STD_CDEFINES`|Any additional preprocessor symbols you want defined. Defaults to empty string. For a list of possible settings, see the file [OPTIONS](OPTIONS.md).|
|
||||||
|`LDFLAGS`|Linker flags. Defaults to empty string.|
|
|`LDFLAGS`|Linker flags. Defaults to empty string.|
|
||||||
|`BUILD_CC`|Needed when cross-compiling: the native C compiler to use when building for the target system.|
|
|`BUILD_CC`|Needed when cross-compiling: the native C compiler to use when building for the target system.|
|
||||||
|`BUILD_CFLAGS`|Optional, used for cross-compiling|
|
|`BUILD_CFLAGS`|`CFLAGS` for the target system during cross-compiling.|
|
||||||
|`BUILD_CPPFLAGS`||
|
|`BUILD_CPPFLAGS`|`CPPFLAGS` for the target system during cross-compiling.|
|
||||||
|`BUILD_LDFLAGS`||
|
|`BUILD_LDFLAGS`|`LDFLAGS` for the target system during cross-compiling.|
|
||||||
|`BUILD_LIBS`||
|
|`BUILD_LIBS`|`LIBS` for the target system during cross-compiling.|
|
||||||
|
|
||||||
#### <a name="macos"> macOS
|
#### <a name="macos"> macOS
|
||||||
|
|
||||||
Building on macOS assumes that the "Command Tools for Xcode" is installed.
|
Building on macOS assumes that the "Command Tools for Xcode" is installed.
|
||||||
This can be downloaded from https://developer.apple.com/download/more/
|
This can be downloaded from [https://developer.apple.com/download/more/](https://developer.apple.com/download/more/)
|
||||||
or if you have Xcode already installed you can run "xcode-select --install".
|
or if you have Xcode already installed you can run `xcode-select --install`.
|
||||||
This will add /usr/include to the system and install the compiler and other
|
|
||||||
tools so that they can be easily found.
|
|
||||||
|
|
||||||
### <a name="dependencies"/> Dependencies
|
### <a name="dependencies"/> Dependencies
|
||||||
|
|
||||||
Portions of BIND that are written in Python, including
|
Portions of BIND that are written in Python, including
|
||||||
`dnssec-keymgr`, `dnssec-coverage`, `dnssec-checkds`, and some of the
|
`dnssec-keymgr`, `dnssec-coverage`, `dnssec-checkds`, and some of the
|
||||||
system tests, require the 'argparse' and 'ply' modules to be available.
|
system tests, require the `argparse` and `ply` modules to be available.
|
||||||
'argparse' is a standard module as of Python 2.7 and Python 3.2.
|
`argparse` is a standard module as of Python 2.7 and Python 3.2.
|
||||||
'ply' is available from [https://pypi.python.org/pypi/ply](https://pypi.python.org/pypi/ply).
|
`ply` is available from [https://pypi.python.org/pypi/ply](https://pypi.python.org/pypi/ply).
|
||||||
|
|
||||||
#### <a name="opts"/> Compile-time options
|
#### <a name="opts"/> Compile-time options
|
||||||
|
|
||||||
@@ -234,14 +269,16 @@ path to the PKCS#11 provider library using `--with-pkcs11=<PREFIX>`, and
|
|||||||
configure BIND with `--enable-native-pkcs11`.
|
configure BIND with `--enable-native-pkcs11`.
|
||||||
|
|
||||||
To support the HTTP statistics channel, the server must be linked with at
|
To support the HTTP statistics channel, the server must be linked with at
|
||||||
least one of the following: libxml2
|
least one of the following libraries: `libxml2`
|
||||||
[http://xmlsoft.org](http://xmlsoft.org) or json-c
|
[http://xmlsoft.org](http://xmlsoft.org) or `json-c`
|
||||||
[https://github.com/json-c](https://github.com/json-c). If these are
|
[https://github.com/json-c/json-c](https://github.com/json-c/json-c).
|
||||||
installed at a nonstandard location, specify the prefix using
|
If these are installed at a nonstandard location, then:
|
||||||
`--with-libxml2=/prefix` or `--with-libjson=/prefix`.
|
|
||||||
|
* for `libxml2`, specify the prefix using `--with-libxml2=/prefix`,
|
||||||
|
* for `json-c`, adjust `PKG_CONFIG_PATH`.
|
||||||
|
|
||||||
To support compression on the HTTP statistics channel, the server must be
|
To support compression on the HTTP statistics channel, the server must be
|
||||||
linked against libzlib. If this is installed in a nonstandard location,
|
linked against `libzlib`. If this is installed in a nonstandard location,
|
||||||
specify the prefix using `--with-zlib=/prefix`.
|
specify the prefix using `--with-zlib=/prefix`.
|
||||||
|
|
||||||
To support storing configuration data for runtime-added zones in an LMDB
|
To support storing configuration data for runtime-added zones in an LMDB
|
||||||
@@ -253,9 +290,9 @@ libGeoIP. This is not turned on by default; BIND must be configured with
|
|||||||
`--with-geoip`. If the library is installed in a nonstandard location,
|
`--with-geoip`. If the library is installed in a nonstandard location,
|
||||||
specify the prefix using `--with-geoip=/prefix`.
|
specify the prefix using `--with-geoip=/prefix`.
|
||||||
|
|
||||||
For DNSTAP packet logging, you must have installed libfstrm
|
For DNSTAP packet logging, you must have installed `libfstrm`
|
||||||
[https://github.com/farsightsec/fstrm](https://github.com/farsightsec/fstrm)
|
[https://github.com/farsightsec/fstrm](https://github.com/farsightsec/fstrm)
|
||||||
and libprotobuf-c
|
and `libprotobuf-c`
|
||||||
[https://developers.google.com/protocol-buffers](https://developers.google.com/protocol-buffers),
|
[https://developers.google.com/protocol-buffers](https://developers.google.com/protocol-buffers),
|
||||||
and BIND must be configured with `--enable-dnstap`.
|
and BIND must be configured with `--enable-dnstap`.
|
||||||
|
|
||||||
@@ -268,7 +305,7 @@ performance on smaller systems.
|
|||||||
|
|
||||||
On Linux, process capabilities are managed in user space using
|
On Linux, process capabilities are managed in user space using
|
||||||
the `libcap` library, which can be installed on most Linux systems via
|
the `libcap` library, which can be installed on most Linux systems via
|
||||||
the `libcap-dev` or `libcap-devel` module. Process capability support can
|
the `libcap-dev` or `libcap-devel` package. Process capability support can
|
||||||
also be disabled by configuring with `--disable-linux-caps`.
|
also be disabled by configuring with `--disable-linux-caps`.
|
||||||
|
|
||||||
On some platforms it is necessary to explicitly request large file support
|
On some platforms it is necessary to explicitly request large file support
|
||||||
@@ -304,20 +341,21 @@ multiple servers to run locally and communicate with one another). These
|
|||||||
IP addresses can be configured by running the command
|
IP addresses can be configured by running the command
|
||||||
`bin/tests/system/ifconfig.sh up` as root.
|
`bin/tests/system/ifconfig.sh up` as root.
|
||||||
|
|
||||||
Some tests require Perl and the Net::DNS and/or IO::Socket::INET6 modules,
|
Some tests require Perl and the `Net::DNS` and/or `IO::Socket::INET6` modules,
|
||||||
and will be skipped if these are not available. Some tests require Python
|
and will be skipped if these are not available. Some tests require Python
|
||||||
and the 'dnspython' module and will be skipped if these are not available.
|
and the `dnspython` module and will be skipped if these are not available.
|
||||||
See bin/tests/system/README for further details.
|
See bin/tests/system/README for further details.
|
||||||
|
|
||||||
Unit tests are implemented using the CMocka unit testing framework.
|
Unit tests are implemented using the [CMocka unit testing framework](https://cmocka.org/).
|
||||||
To build them, use `configure --with-cmocka`. Execution of tests is done
|
To build them, use `configure --with-cmocka`. Execution of tests is done
|
||||||
by the Kyua test execution engine; if the `kyua` command is available,
|
by the [Kyua test execution engine](https://github.com/jmmv/kyua); if the
|
||||||
then unit tests can be run via `make test` or `make unit`.
|
`kyua` command is available, then unit tests can be run via `make test`
|
||||||
|
or `make unit`.
|
||||||
|
|
||||||
### <a name="doc"/> Documentation
|
### <a name="doc"/> Documentation
|
||||||
|
|
||||||
The *BIND 9 Administrator Reference Manual* is included with the source
|
The *BIND 9 Administrator Reference Manual* is included with the source
|
||||||
distribution, in DocBook XML, HTML and PDF format, in the `doc/arm`
|
distribution, in DocBook XML, HTML, and PDF format, in the `doc/arm`
|
||||||
directory.
|
directory.
|
||||||
|
|
||||||
Some of the programs in the BIND 9 distribution have man pages in their
|
Some of the programs in the BIND 9 distribution have man pages in their
|
||||||
@@ -360,6 +398,25 @@ releases (i.e., those with version numbers ending in zero). Some new
|
|||||||
functionality may be backported to older releases on a case-by-case basis.
|
functionality may be backported to older releases on a case-by-case basis.
|
||||||
All other change types may be applied to all currently-supported releases.
|
All other change types may be applied to all currently-supported releases.
|
||||||
|
|
||||||
|
#### Bug report identifiers
|
||||||
|
|
||||||
|
Most notes in the CHANGES file include a reference to a bug report or
|
||||||
|
issue number. Prior to 2018, these were usually of the form `[RT #NNN]`
|
||||||
|
and referred to entries in the "bind9-bugs" RT database, which was not open
|
||||||
|
to the public. More recent entries use the form `[GL #NNN]` or, less often,
|
||||||
|
`[GL !NNN]`, which, respectively, refer to issues or merge requests in the
|
||||||
|
GitLab database. Most of these are publicly readable, unless they include
|
||||||
|
information which is confidential or security sensitive.
|
||||||
|
|
||||||
|
To look up a GitLab issue by its number, use the URL
|
||||||
|
[https://gitlab.isc.org/isc-projects/bind9/issues/NNN](https://gitlab.isc.org/isc-projects/bind9/issues).
|
||||||
|
To look up a merge request, use
|
||||||
|
[https://gitlab.isc.org/isc-projects/bind9/merge_requests/NNN](https://gitlab.isc.org/isc-projects/bind9/merge_requests).
|
||||||
|
|
||||||
|
In rare cases, an issue or merge request number may be followed with the
|
||||||
|
letter "P". This indicates that the information is in the private ISC
|
||||||
|
GitLab instance, which is not visible to the public.
|
||||||
|
|
||||||
### <a name="ack"/> Acknowledgments
|
### <a name="ack"/> Acknowledgments
|
||||||
|
|
||||||
* The original development of BIND 9 was underwritten by the
|
* The original development of BIND 9 was underwritten by the
|
||||||
|
|||||||
Vendored
+2
@@ -291,6 +291,8 @@ AS_VAR_IF([$1], [""], [$5], [$4])dnl
|
|||||||
m4_include([m4/ax_check_openssl.m4])
|
m4_include([m4/ax_check_openssl.m4])
|
||||||
m4_include([m4/ax_posix_shell.m4])
|
m4_include([m4/ax_posix_shell.m4])
|
||||||
m4_include([m4/ax_pthread.m4])
|
m4_include([m4/ax_pthread.m4])
|
||||||
|
m4_include([m4/ax_restore_flags.m4])
|
||||||
|
m4_include([m4/ax_save_flags.m4])
|
||||||
m4_include([m4/libtool.m4])
|
m4_include([m4/libtool.m4])
|
||||||
m4_include([m4/ltoptions.m4])
|
m4_include([m4/ltoptions.m4])
|
||||||
m4_include([m4/ltsugar.m4])
|
m4_include([m4/ltsugar.m4])
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ CINCLUDES = ${NS_INCLUDES} ${BIND9_INCLUDES} ${DNS_INCLUDES} ${ISCCFG_INCLUDES}
|
|||||||
CDEFINES = -DNAMED_CONFFILE=\"${sysconfdir}/named.conf\"
|
CDEFINES = -DNAMED_CONFFILE=\"${sysconfdir}/named.conf\"
|
||||||
CWARNINGS =
|
CWARNINGS =
|
||||||
|
|
||||||
DNSLIBS = ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
|
DNSLIBS = ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
|
||||||
ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
|
ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
|
||||||
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
||||||
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ usage(void) ISC_PLATFORM_NORETURN_POST;
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
usage(void) {
|
usage(void) {
|
||||||
fprintf(stderr, "usage: %s [-hjlvz] [-p [-x]] [-t directory] "
|
fprintf(stderr, "usage: %s [-chjlvz] [-p [-x]] [-t directory] "
|
||||||
"[named.conf]\n", program);
|
"[named.conf]\n", program);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{03A96113-CB14-43AA-AEB2-48950E3915C5}</ProjectGuid>
|
<ProjectGuid>{03A96113-CB14-43AA-AEB2-48950E3915C5}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>checkconf</RootNamespace>
|
<RootNamespace>checkconf</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -17,18 +17,21 @@
|
|||||||
<ProjectGuid>{2C1F7096-C5B5-48D4-846F-A7ACA454335D}</ProjectGuid>
|
<ProjectGuid>{2C1F7096-C5B5-48D4-846F-A7ACA454335D}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>checktool</RootNamespace>
|
<RootNamespace>checktool</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{66028555-7DD5-4016-B601-9EF9A1EE8BFA}</ProjectGuid>
|
<ProjectGuid>{66028555-7DD5-4016-B601-9EF9A1EE8BFA}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>checkzone</RootNamespace>
|
<RootNamespace>checkzone</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
@@ -62,15 +65,15 @@
|
|||||||
<ObjectFileName>.\$(Configuration)\</ObjectFileName>
|
<ObjectFileName>.\$(Configuration)\</ObjectFileName>
|
||||||
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<AdditionalIncludeDirectories>.\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@..\..\..\lib\isc\win32;..\..\..\lib\isc\win32\include;..\..\..\lib\isc\include;..\..\..\lib\dns\include;..\..\..\lib\bind9\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>.\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@..\..\..\lib\isc\win32;..\..\..\lib\isc\win32\include;..\..\..\lib\isc\include;..\..\..\lib\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
<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>
|
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\ns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>@OPENSSL_LIB@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;libns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
<PostBuildEvent>
|
<PostBuildEvent>
|
||||||
<Command>cd ..\..\..\Build\$(Configuration)
|
<Command>cd ..\..\..\Build\$(Configuration)
|
||||||
@@ -95,7 +98,7 @@ copy /Y named-checkzone.ilk named-compilezone.ilk
|
|||||||
<AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>
|
<AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>
|
||||||
<ObjectFileName>.\$(Configuration)\</ObjectFileName>
|
<ObjectFileName>.\$(Configuration)\</ObjectFileName>
|
||||||
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||||
<AdditionalIncludeDirectories>.\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@..\..\..\lib\isc\win32;..\..\..\lib\isc\win32\include;..\..\..\lib\isc\include;..\..\..\lib\dns\include;..\..\..\lib\bind9\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>.\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@..\..\..\lib\isc\win32;..\..\..\lib\isc\win32\include;..\..\..\lib\isc\include;..\..\..\lib\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@@ -104,8 +107,8 @@ copy /Y named-checkzone.ilk named-compilezone.ilk
|
|||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
|
<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>
|
<AdditionalLibraryDirectories>$(Configuration);..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\ns\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>@OPENSSL_LIB@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;libns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||||
</Link>
|
</Link>
|
||||||
<PostBuildEvent>
|
<PostBuildEvent>
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
|
|||||||
ISCCCLIBS = ../../lib/isccc/libisccc.@A@
|
ISCCCLIBS = ../../lib/isccc/libisccc.@A@
|
||||||
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
||||||
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
||||||
DNSLIBS = ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
|
DNSLIBS = ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
|
||||||
BIND9LIBS = ../../lib/bind9/libbind9.@A@
|
BIND9LIBS = ../../lib/bind9/libbind9.@A@
|
||||||
|
|
||||||
ISCCFGDEPLIBS = ../../lib/isccfg/libisccfg.@A@
|
ISCCFGDEPLIBS = ../../lib/isccfg/libisccfg.@A@
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{64964B03-4815-41F0-9057-E766A94AF197}</ProjectGuid>
|
<ProjectGuid>{64964B03-4815-41F0-9057-E766A94AF197}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>confgentool</RootNamespace>
|
<RootNamespace>confgentool</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{1EA4FC64-F33B-4A50-970A-EA052BBE9CF1}</ProjectGuid>
|
<ProjectGuid>{1EA4FC64-F33B-4A50-970A-EA052BBE9CF1}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>ddnsconfgen</RootNamespace>
|
<RootNamespace>ddnsconfgen</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{1E2C1635-3093-4D59-80E7-4743AC10F22F}</ProjectGuid>
|
<ProjectGuid>{1E2C1635-3093-4D59-80E7-4743AC10F22F}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>rndcconfgen</RootNamespace>
|
<RootNamespace>rndcconfgen</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ CDEFINES = -DVERSION=\"${VERSION}\" \
|
|||||||
CWARNINGS =
|
CWARNINGS =
|
||||||
|
|
||||||
ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
|
ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
|
||||||
DNSLIBS = ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
|
DNSLIBS = ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
|
||||||
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
||||||
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
||||||
IRSLIBS = ../../lib/irs/libirs.@A@
|
IRSLIBS = ../../lib/irs/libirs.@A@
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F}</ProjectGuid>
|
<ProjectGuid>{BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>delv</RootNamespace>
|
<RootNamespace>delv</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
+1
-1
@@ -25,7 +25,7 @@ CDEFINES = -DVERSION=\"${VERSION}\"
|
|||||||
CWARNINGS =
|
CWARNINGS =
|
||||||
|
|
||||||
ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
|
ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
|
||||||
DNSLIBS = ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
|
DNSLIBS = ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
|
||||||
BIND9LIBS = ../../lib/bind9/libbind9.@A@
|
BIND9LIBS = ../../lib/bind9/libbind9.@A@
|
||||||
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
||||||
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
||||||
|
|||||||
+16
-10
@@ -361,14 +361,20 @@ Display [do not display] the CLASS when printing the record\&.
|
|||||||
.PP
|
.PP
|
||||||
\fB+[no]cmd\fR
|
\fB+[no]cmd\fR
|
||||||
.RS 4
|
.RS 4
|
||||||
Toggles the printing of the initial comment in the output identifying the version of
|
Toggles the printing of the initial comment in the output, identifying the version of
|
||||||
\fBdig\fR
|
\fBdig\fR
|
||||||
and the query options that have been applied\&. This comment is printed by default\&.
|
and the query options that have been applied\&. This option always has global effect; it cannot be set globally and then overridden on a per\-lookup basis\&. The default is to print this comment\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\fB+[no]comments\fR
|
\fB+[no]comments\fR
|
||||||
.RS 4
|
.RS 4
|
||||||
Toggle the display of comment lines in the output\&. The default is to print comments\&.
|
Toggles the display of some comment lines in the output, containing information about the packet header and OPT pseudosection, and the names of the response section\&. The default is to print these comments\&.
|
||||||
|
.sp
|
||||||
|
Other types of comments in the output are not affected by this option, but can be controlled using other command line switches\&. These include
|
||||||
|
\fB+[no]cmd\fR,
|
||||||
|
\fB+[no]question\fR,
|
||||||
|
\fB+[no]stats\fR, and
|
||||||
|
\fB+[no]rrcomments\fR\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\fB+[no]cookie\fR\fB[=####]\fR
|
\fB+[no]cookie\fR\fB[=####]\fR
|
||||||
@@ -561,12 +567,12 @@ would cause a 48\-byte query to be padded to 64 bytes\&. The default block size
|
|||||||
.PP
|
.PP
|
||||||
\fB+[no]qr\fR
|
\fB+[no]qr\fR
|
||||||
.RS 4
|
.RS 4
|
||||||
Print [do not print] the query as it is sent\&. By default, the query is not printed\&.
|
Toggles the display of the query message as it is sent\&. By default, the query is not printed\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\fB+[no]question\fR
|
\fB+[no]question\fR
|
||||||
.RS 4
|
.RS 4
|
||||||
Print [do not print] the question section of a query when an answer is returned\&. The default is to print the question section as a comment\&.
|
Toggles the display of the question section of a query when an answer is returned\&. The default is to print the question section as a comment\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\fB+[no]raflag\fR
|
\fB+[no]raflag\fR
|
||||||
@@ -584,11 +590,11 @@ A synonym for
|
|||||||
.RS 4
|
.RS 4
|
||||||
Toggle the setting of the RD (recursion desired) bit in the query\&. This bit is set by default, which means
|
Toggle the setting of the RD (recursion desired) bit in the query\&. This bit is set by default, which means
|
||||||
\fBdig\fR
|
\fBdig\fR
|
||||||
normally sends recursive queries\&. Recursion is automatically disabled when the
|
normally sends recursive queries\&. Recursion is automatically disabled when using the
|
||||||
\fI+nssearch\fR
|
\fI+nssearch\fR
|
||||||
or
|
option, and when using
|
||||||
\fI+trace\fR
|
\fI+trace\fR
|
||||||
query options are used\&.
|
except for an initial recursive query to get the list of root servers\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\fB+retry=T\fR
|
\fB+retry=T\fR
|
||||||
@@ -619,7 +625,7 @@ determines if the name will be treated as relative or not and hence whether a se
|
|||||||
.PP
|
.PP
|
||||||
\fB+[no]short\fR
|
\fB+[no]short\fR
|
||||||
.RS 4
|
.RS 4
|
||||||
Provide a terse answer\&. The default is to print the answer in a verbose form\&.
|
Provide a terse answer\&. The default is to print the answer in a verbose form\&. This option always has global effect; it cannot be set globally and then overridden on a per\-lookup basis\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\fB+[no]showsearch\fR
|
\fB+[no]showsearch\fR
|
||||||
@@ -649,7 +655,7 @@ causes fields not to be split at all\&. The default is 56 characters, or 44 char
|
|||||||
.PP
|
.PP
|
||||||
\fB+[no]stats\fR
|
\fB+[no]stats\fR
|
||||||
.RS 4
|
.RS 4
|
||||||
This query option toggles the printing of statistics: when the query was made, the size of the reply and so on\&. The default behavior is to print the query statistics\&.
|
Toggles the printing of statistics: when the query was made, the size of the reply and so on\&. The default behavior is to print the query statistics as a comment after each lookup\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\fB+[no]subnet=addr[/prefix\-length]\fR
|
\fB+[no]subnet=addr[/prefix\-length]\fR
|
||||||
|
|||||||
+19
-12
@@ -175,11 +175,13 @@ help(void) {
|
|||||||
" +bufsize=### (Set EDNS0 Max UDP packet size)\n"
|
" +bufsize=### (Set EDNS0 Max UDP packet size)\n"
|
||||||
" +[no]cdflag (Set checking disabled flag in query)\n"
|
" +[no]cdflag (Set checking disabled flag in query)\n"
|
||||||
" +[no]class (Control display of class in records)\n"
|
" +[no]class (Control display of class in records)\n"
|
||||||
" +[no]cmd (Control display of command line)\n"
|
" +[no]cmd (Control display of command line -\n"
|
||||||
" +[no]comments (Control display of comment lines)\n"
|
" global option)\n"
|
||||||
|
" +[no]comments (Control display of packet header\n"
|
||||||
|
" and section name comments)\n"
|
||||||
" +[no]cookie (Add a COOKIE option to the request)\n"
|
" +[no]cookie (Add a COOKIE option to the request)\n"
|
||||||
" +[no]crypto (Control display of cryptographic "
|
" +[no]crypto (Control display of cryptographic\n"
|
||||||
"fields in records)\n"
|
" fields in records)\n"
|
||||||
" +[no]defname (Use search list (+[no]search))\n"
|
" +[no]defname (Use search list (+[no]search))\n"
|
||||||
" +[no]dnssec (Request DNSSEC records)\n"
|
" +[no]dnssec (Request DNSSEC records)\n"
|
||||||
" +domain=### (Set default domainname)\n"
|
" +domain=### (Set default domainname)\n"
|
||||||
@@ -195,11 +197,13 @@ help(void) {
|
|||||||
" +[no]identify (ID responders in short answers)\n"
|
" +[no]identify (ID responders in short answers)\n"
|
||||||
#ifdef HAVE_LIBIDN2
|
#ifdef HAVE_LIBIDN2
|
||||||
" +[no]idnin (Parse IDN names [default=on on tty])\n"
|
" +[no]idnin (Parse IDN names [default=on on tty])\n"
|
||||||
" +[no]idnout (Convert IDN response [default=on on tty])\n"
|
" +[no]idnout (Convert IDN response "
|
||||||
|
"[default=on on tty])\n"
|
||||||
#endif
|
#endif
|
||||||
" +[no]ignore (Don't revert to TCP for TC responses.)\n"
|
" +[no]ignore (Don't revert to TCP for TC responses.)\n"
|
||||||
" +[no]keepalive (Request EDNS TCP keepalive)\n"
|
" +[no]keepalive (Request EDNS TCP keepalive)\n"
|
||||||
" +[no]keepopen (Keep the TCP socket open between queries)\n"
|
" +[no]keepopen (Keep the TCP socket open between "
|
||||||
|
"queries)\n"
|
||||||
" +[no]mapped (Allow mapped IPv4 over IPv6)\n"
|
" +[no]mapped (Allow mapped IPv4 over IPv6)\n"
|
||||||
" +[no]multiline (Print records in an expanded format)\n"
|
" +[no]multiline (Print records in an expanded format)\n"
|
||||||
" +ndots=### (Set search NDOTS value)\n"
|
" +ndots=### (Set search NDOTS value)\n"
|
||||||
@@ -218,7 +222,7 @@ help(void) {
|
|||||||
"comments)\n"
|
"comments)\n"
|
||||||
" +[no]search (Set whether to use searchlist)\n"
|
" +[no]search (Set whether to use searchlist)\n"
|
||||||
" +[no]short (Display nothing except short\n"
|
" +[no]short (Display nothing except short\n"
|
||||||
" form of answer)\n"
|
" form of answers - global option)\n"
|
||||||
" +[no]showsearch (Search with intermediate results)\n"
|
" +[no]showsearch (Search with intermediate results)\n"
|
||||||
" +[no]split=## (Split hex/base64 fields into chunks)\n"
|
" +[no]split=## (Split hex/base64 fields into chunks)\n"
|
||||||
" +[no]stats (Control display of statistics)\n"
|
" +[no]stats (Control display of statistics)\n"
|
||||||
@@ -226,11 +230,13 @@ help(void) {
|
|||||||
" +[no]tcflag (Set TC flag in query (+[no]tcflag))\n"
|
" +[no]tcflag (Set TC flag in query (+[no]tcflag))\n"
|
||||||
" +[no]tcp (TCP mode (+[no]vc))\n"
|
" +[no]tcp (TCP mode (+[no]vc))\n"
|
||||||
" +timeout=### (Set query timeout) [5]\n"
|
" +timeout=### (Set query timeout) [5]\n"
|
||||||
" +[no]trace (Trace delegation down from root [+dnssec])\n"
|
" +[no]trace (Trace delegation down from root "
|
||||||
|
"[+dnssec])\n"
|
||||||
" +tries=### (Set number of UDP attempts) [3]\n"
|
" +tries=### (Set number of UDP attempts) [3]\n"
|
||||||
" +[no]ttlid (Control display of ttls in records)\n"
|
" +[no]ttlid (Control display of ttls in records)\n"
|
||||||
" +[no]ttlunits (Display TTLs in human-readable units)\n"
|
" +[no]ttlunits (Display TTLs in human-readable units)\n"
|
||||||
" +[no]unknownformat (Print RDATA in RFC 3597 \"unknown\" format)\n"
|
" +[no]unknownformat (Print RDATA in RFC 3597 \"unknown\" "
|
||||||
|
"format)\n"
|
||||||
" +[no]vc (TCP mode (+[no]tcp))\n"
|
" +[no]vc (TCP mode (+[no]tcp))\n"
|
||||||
" +[no]zflag (Set Z flag in query)\n"
|
" +[no]zflag (Set Z flag in query)\n"
|
||||||
" global d-opts and servers (before host name) affect all queries.\n"
|
" global d-opts and servers (before host name) affect all queries.\n"
|
||||||
@@ -502,8 +508,9 @@ printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
|
|||||||
check_result(result, "dns_master_stylecreate");
|
check_result(result, "dns_master_stylecreate");
|
||||||
|
|
||||||
if (query->lookup->cmdline[0] != 0) {
|
if (query->lookup->cmdline[0] != 0) {
|
||||||
if (!short_form)
|
if (!short_form && printcmd) {
|
||||||
fputs(query->lookup->cmdline, stdout);
|
fputs(query->lookup->cmdline, stdout);
|
||||||
|
}
|
||||||
query->lookup->cmdline[0]=0;
|
query->lookup->cmdline[0]=0;
|
||||||
}
|
}
|
||||||
debug("printmessage(%s %s %s)", headers ? "headers" : "noheaders",
|
debug("printmessage(%s %s %s)", headers ? "headers" : "noheaders",
|
||||||
@@ -526,7 +533,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, bool headers) {
|
|||||||
check_result(result, "isc_buffer_allocate");
|
check_result(result, "isc_buffer_allocate");
|
||||||
|
|
||||||
if (query->lookup->comments && !short_form) {
|
if (query->lookup->comments && !short_form) {
|
||||||
if (query->lookup->cmdline[0] != 0)
|
if (query->lookup->cmdline[0] != 0 && printcmd)
|
||||||
printf("; %s\n", query->lookup->cmdline);
|
printf("; %s\n", query->lookup->cmdline);
|
||||||
if (msg == query->lookup->sendmsg)
|
if (msg == query->lookup->sendmsg)
|
||||||
printf(";; Sending:\n");
|
printf(";; Sending:\n");
|
||||||
@@ -1445,7 +1452,7 @@ plus_option(char *option, bool is_batchfile,
|
|||||||
lookup->trace = state;
|
lookup->trace = state;
|
||||||
lookup->trace_root = state;
|
lookup->trace_root = state;
|
||||||
if (state) {
|
if (state) {
|
||||||
lookup->recurse = false;
|
lookup->recurse = true;
|
||||||
lookup->identify = true;
|
lookup->identify = true;
|
||||||
lookup->comments = false;
|
lookup->comments = false;
|
||||||
lookup->rrcomments = 0;
|
lookup->rrcomments = 0;
|
||||||
|
|||||||
+30
-15
@@ -593,9 +593,11 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Toggles the printing of the initial comment in the
|
Toggles the printing of the initial comment in the
|
||||||
output identifying the version of <command>dig</command>
|
output, identifying the version of <command>dig</command>
|
||||||
and the query options that have been applied. This
|
and the query options that have been applied. This option
|
||||||
comment is printed by default.
|
always has global effect; it cannot be set globally
|
||||||
|
and then overridden on a per-lookup basis. The default
|
||||||
|
is to print this comment.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@@ -604,8 +606,18 @@
|
|||||||
<term><option>+[no]comments</option></term>
|
<term><option>+[no]comments</option></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Toggle the display of comment lines in the output.
|
Toggles the display of some comment lines in the output,
|
||||||
The default is to print comments.
|
containing information about the packet header and
|
||||||
|
OPT pseudosection, and the names of the response
|
||||||
|
section. The default is to print these comments.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Other types of comments in the output are not affected by
|
||||||
|
this option, but can be controlled using other command
|
||||||
|
line switches. These include <command>+[no]cmd</command>,
|
||||||
|
<command>+[no]question</command>,
|
||||||
|
<command>+[no]stats</command>, and
|
||||||
|
<command>+[no]rrcomments</command>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@@ -955,8 +967,8 @@
|
|||||||
<term><option>+[no]qr</option></term>
|
<term><option>+[no]qr</option></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Print [do not print] the query as it is sent. By
|
Toggles the display of the query message as it is sent.
|
||||||
default, the query is not printed.
|
By default, the query is not printed.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@@ -965,7 +977,7 @@
|
|||||||
<term><option>+[no]question</option></term>
|
<term><option>+[no]question</option></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Print [do not print] the question section of a query
|
Toggles the display of the question section of a query
|
||||||
when an answer is returned. The default is to print
|
when an answer is returned. The default is to print
|
||||||
the question section as a comment.
|
the question section as a comment.
|
||||||
</para>
|
</para>
|
||||||
@@ -1000,8 +1012,10 @@
|
|||||||
in the query. This bit is set by default, which means
|
in the query. This bit is set by default, which means
|
||||||
<command>dig</command> normally sends recursive
|
<command>dig</command> normally sends recursive
|
||||||
queries. Recursion is automatically disabled when
|
queries. Recursion is automatically disabled when
|
||||||
the <parameter>+nssearch</parameter> or
|
using the <parameter>+nssearch</parameter> option, and
|
||||||
<parameter>+trace</parameter> query options are used.
|
when using <parameter>+trace</parameter> except for
|
||||||
|
an initial recursive query to get the list of root
|
||||||
|
servers.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@@ -1054,7 +1068,9 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Provide a terse answer. The default is to print the
|
Provide a terse answer. The default is to print the
|
||||||
answer in a verbose form.
|
answer in a verbose form. This option always has global
|
||||||
|
effect; it cannot be set globally and then overridden on
|
||||||
|
a per-lookup basis.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@@ -1099,10 +1115,9 @@
|
|||||||
<term><option>+[no]stats</option></term>
|
<term><option>+[no]stats</option></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
This query option toggles the printing of statistics:
|
Toggles the printing of statistics: when the query was made,
|
||||||
when the query was made, the size of the reply and
|
the size of the reply and so on. The default behavior is to
|
||||||
so on. The default behavior is to print the query
|
print the query statistics as a comment after each lookup.
|
||||||
statistics.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|||||||
+30
-15
@@ -481,16 +481,28 @@
|
|||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Toggles the printing of the initial comment in the
|
Toggles the printing of the initial comment in the
|
||||||
output identifying the version of <span class="command"><strong>dig</strong></span>
|
output, identifying the version of <span class="command"><strong>dig</strong></span>
|
||||||
and the query options that have been applied. This
|
and the query options that have been applied. This option
|
||||||
comment is printed by default.
|
always has global effect; it cannot be set globally
|
||||||
|
and then overridden on a per-lookup basis. The default
|
||||||
|
is to print this comment.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term"><code class="option">+[no]comments</code></span></dt>
|
<dt><span class="term"><code class="option">+[no]comments</code></span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Toggle the display of comment lines in the output.
|
Toggles the display of some comment lines in the output,
|
||||||
The default is to print comments.
|
containing information about the packet header and
|
||||||
|
OPT pseudosection, and the names of the response
|
||||||
|
section. The default is to print these comments.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Other types of comments in the output are not affected by
|
||||||
|
this option, but can be controlled using other command
|
||||||
|
line switches. These include <span class="command"><strong>+[no]cmd</strong></span>,
|
||||||
|
<span class="command"><strong>+[no]question</strong></span>,
|
||||||
|
<span class="command"><strong>+[no]stats</strong></span>, and
|
||||||
|
<span class="command"><strong>+[no]rrcomments</strong></span>.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term"><code class="option">+[no]cookie[<span class="optional">=####</span>]</code></span></dt>
|
<dt><span class="term"><code class="option">+[no]cookie[<span class="optional">=####</span>]</code></span></dt>
|
||||||
@@ -757,14 +769,14 @@
|
|||||||
<dt><span class="term"><code class="option">+[no]qr</code></span></dt>
|
<dt><span class="term"><code class="option">+[no]qr</code></span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Print [do not print] the query as it is sent. By
|
Toggles the display of the query message as it is sent.
|
||||||
default, the query is not printed.
|
By default, the query is not printed.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term"><code class="option">+[no]question</code></span></dt>
|
<dt><span class="term"><code class="option">+[no]question</code></span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Print [do not print] the question section of a query
|
Toggles the display of the question section of a query
|
||||||
when an answer is returned. The default is to print
|
when an answer is returned. The default is to print
|
||||||
the question section as a comment.
|
the question section as a comment.
|
||||||
</p>
|
</p>
|
||||||
@@ -790,8 +802,10 @@
|
|||||||
in the query. This bit is set by default, which means
|
in the query. This bit is set by default, which means
|
||||||
<span class="command"><strong>dig</strong></span> normally sends recursive
|
<span class="command"><strong>dig</strong></span> normally sends recursive
|
||||||
queries. Recursion is automatically disabled when
|
queries. Recursion is automatically disabled when
|
||||||
the <em class="parameter"><code>+nssearch</code></em> or
|
using the <em class="parameter"><code>+nssearch</code></em> option, and
|
||||||
<em class="parameter"><code>+trace</code></em> query options are used.
|
when using <em class="parameter"><code>+trace</code></em> except for
|
||||||
|
an initial recursive query to get the list of root
|
||||||
|
servers.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term"><code class="option">+retry=T</code></span></dt>
|
<dt><span class="term"><code class="option">+retry=T</code></span></dt>
|
||||||
@@ -832,7 +846,9 @@
|
|||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Provide a terse answer. The default is to print the
|
Provide a terse answer. The default is to print the
|
||||||
answer in a verbose form.
|
answer in a verbose form. This option always has global
|
||||||
|
effect; it cannot be set globally and then overridden on
|
||||||
|
a per-lookup basis.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term"><code class="option">+[no]showsearch</code></span></dt>
|
<dt><span class="term"><code class="option">+[no]showsearch</code></span></dt>
|
||||||
@@ -865,10 +881,9 @@
|
|||||||
<dt><span class="term"><code class="option">+[no]stats</code></span></dt>
|
<dt><span class="term"><code class="option">+[no]stats</code></span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
This query option toggles the printing of statistics:
|
Toggles the printing of statistics: when the query was made,
|
||||||
when the query was made, the size of the reply and
|
the size of the reply and so on. The default behavior is to
|
||||||
so on. The default behavior is to print the query
|
print the query statistics as a comment after each lookup.
|
||||||
statistics.
|
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term"><code class="option">+[no]subnet=addr[/prefix-length]</code></span></dt>
|
<dt><span class="term"><code class="option">+[no]subnet=addr[/prefix-length]</code></span></dt>
|
||||||
|
|||||||
+22
-6
@@ -1399,6 +1399,7 @@ typedef struct dig_ednsoptname {
|
|||||||
} dig_ednsoptname_t;
|
} dig_ednsoptname_t;
|
||||||
|
|
||||||
dig_ednsoptname_t optnames[] = {
|
dig_ednsoptname_t optnames[] = {
|
||||||
|
{ 1, "LLQ" }, /* draft-sekar-dns-llq */
|
||||||
{ 3, "NSID" }, /* RFC 5001 */
|
{ 3, "NSID" }, /* RFC 5001 */
|
||||||
{ 5, "DAU" }, /* RFC 6975 */
|
{ 5, "DAU" }, /* RFC 6975 */
|
||||||
{ 6, "DHU" }, /* RFC 6975 */
|
{ 6, "DHU" }, /* RFC 6975 */
|
||||||
@@ -1411,6 +1412,8 @@ dig_ednsoptname_t optnames[] = {
|
|||||||
{ 12, "PAD" }, /* shorthand */
|
{ 12, "PAD" }, /* shorthand */
|
||||||
{ 13, "CHAIN" }, /* RFC 7901 */
|
{ 13, "CHAIN" }, /* RFC 7901 */
|
||||||
{ 14, "KEY-TAG" }, /* RFC 8145 */
|
{ 14, "KEY-TAG" }, /* RFC 8145 */
|
||||||
|
{ 16, "CLIENT-TAG" }, /* draft-bellis-dnsop-edns-tags */
|
||||||
|
{ 17, "SERVER-TAG" }, /* draft-bellis-dnsop-edns-tags */
|
||||||
{ 26946, "DEVICEID" }, /* Brian Hartvigsen */
|
{ 26946, "DEVICEID" }, /* Brian Hartvigsen */
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -2189,12 +2192,14 @@ setup_lookup(dig_lookup_t *lookup) {
|
|||||||
lookup->sendmsg->id = (dns_messageid_t)isc_random16();
|
lookup->sendmsg->id = (dns_messageid_t)isc_random16();
|
||||||
lookup->sendmsg->opcode = lookup->opcode;
|
lookup->sendmsg->opcode = lookup->opcode;
|
||||||
lookup->msgcounter = 0;
|
lookup->msgcounter = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If this is a trace request, completely disallow recursion, since
|
* If this is a trace request, completely disallow recursion after
|
||||||
* it's meaningless for traces.
|
* looking up the root name servers, since it's meaningless for traces.
|
||||||
*/
|
*/
|
||||||
if (lookup->trace || (lookup->ns_search_only && !lookup->trace_root))
|
if ((lookup->trace || lookup->ns_search_only) && !lookup->trace_root) {
|
||||||
lookup->recurse = false;
|
lookup->recurse = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (lookup->recurse &&
|
if (lookup->recurse &&
|
||||||
lookup->rdtype != dns_rdatatype_axfr &&
|
lookup->rdtype != dns_rdatatype_axfr &&
|
||||||
@@ -4374,9 +4379,20 @@ idn_ace_to_locale(const char *src, char **dst) {
|
|||||||
*/
|
*/
|
||||||
res = idn2_to_unicode_8zlz(utf8_src, &local_src, 0);
|
res = idn2_to_unicode_8zlz(utf8_src, &local_src, 0);
|
||||||
if (res != IDN2_OK) {
|
if (res != IDN2_OK) {
|
||||||
fatal("Cannot represent '%s' in the current locale (%s), "
|
static bool warned = false;
|
||||||
"use +noidnout or a different locale",
|
|
||||||
src, idn2_strerror(res));
|
res = idn2_to_ascii_8z(utf8_src, &local_src, 0);
|
||||||
|
if (res != IDN2_OK) {
|
||||||
|
fatal("Cannot represent '%s' "
|
||||||
|
"in the current locale nor ascii (%s), "
|
||||||
|
"use +noidnout or a different locale",
|
||||||
|
src, idn2_strerror(res));
|
||||||
|
} else if (!warned) {
|
||||||
|
fprintf(stderr, ";; Warning: cannot represent '%s' "
|
||||||
|
"in the current locale",
|
||||||
|
local_src);
|
||||||
|
warned = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{F938F9B8-D395-4A40-BEC7-0122D289C692}</ProjectGuid>
|
<ProjectGuid>{F938F9B8-D395-4A40-BEC7-0122D289C692}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>dig</RootNamespace>
|
<RootNamespace>dig</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{140DE800-E552-43CC-B0C7-A33A92E368CA}</ProjectGuid>
|
<ProjectGuid>{140DE800-E552-43CC-B0C7-A33A92E368CA}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>dighost</RootNamespace>
|
<RootNamespace>dighost</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{BA1048A8-6961-4A20-BE12-08BE20611C9D}</ProjectGuid>
|
<ProjectGuid>{BA1048A8-6961-4A20-BE12-08BE20611C9D}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>host</RootNamespace>
|
<RootNamespace>host</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{C15A6E1A-94CE-4686-99F9-6BC5FD623EB5}</ProjectGuid>
|
<ProjectGuid>{C15A6E1A-94CE-4686-99F9-6BC5FD623EB5}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>nslookup</RootNamespace>
|
<RootNamespace>nslookup</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ CINCLUDES = ${DNS_INCLUDES} ${ISC_INCLUDES} @OPENSSL_INCLUDES@
|
|||||||
CDEFINES = -DVERSION=\"${VERSION}\"
|
CDEFINES = -DVERSION=\"${VERSION}\"
|
||||||
CWARNINGS =
|
CWARNINGS =
|
||||||
|
|
||||||
DNSLIBS = ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
|
DNSLIBS = ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
|
||||||
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
||||||
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
||||||
|
|
||||||
|
|||||||
+10
-10
@@ -86,7 +86,7 @@ static dns_rdataclass_t rdclass = dns_rdataclass_in;
|
|||||||
* List of digest types used by ds_from_cdnskey(), filled in by add_dtype()
|
* List of digest types used by ds_from_cdnskey(), filled in by add_dtype()
|
||||||
* from -a arguments. The size of the array is an arbitrary limit.
|
* from -a arguments. The size of the array is an arbitrary limit.
|
||||||
*/
|
*/
|
||||||
static uint8_t dtype[8];
|
static dns_dsdigest_t dtype[8];
|
||||||
|
|
||||||
static const char *startstr = NULL; /* from which we derive notbefore */
|
static const char *startstr = NULL; /* from which we derive notbefore */
|
||||||
static isc_stdtime_t notbefore = 0; /* restrict sig inception times */
|
static isc_stdtime_t notbefore = 0; /* restrict sig inception times */
|
||||||
@@ -129,7 +129,7 @@ static int nkey; /* number of child zone DNSKEY records */
|
|||||||
typedef struct keyinfo {
|
typedef struct keyinfo {
|
||||||
dns_rdata_t rdata;
|
dns_rdata_t rdata;
|
||||||
dst_key_t *dst;
|
dst_key_t *dst;
|
||||||
uint8_t algo;
|
dns_secalg_t algo;
|
||||||
dns_keytag_t tag;
|
dns_keytag_t tag;
|
||||||
} keyinfo_t;
|
} keyinfo_t;
|
||||||
|
|
||||||
@@ -614,12 +614,12 @@ free_keytable(keyinfo_t **keytable_p) {
|
|||||||
* otherwise the key algorithm. This is used by the signature coverage
|
* otherwise the key algorithm. This is used by the signature coverage
|
||||||
* check functions below.
|
* check functions below.
|
||||||
*/
|
*/
|
||||||
static uint8_t *
|
static dns_secalg_t *
|
||||||
matching_sigs(keyinfo_t *keytbl, dns_rdataset_t *rdataset,
|
matching_sigs(keyinfo_t *keytbl, dns_rdataset_t *rdataset,
|
||||||
dns_rdataset_t *sigset)
|
dns_rdataset_t *sigset)
|
||||||
{
|
{
|
||||||
isc_result_t result;
|
isc_result_t result;
|
||||||
uint8_t *algo;
|
dns_secalg_t *algo;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
algo = isc_mem_get(mctx, nkey);
|
algo = isc_mem_get(mctx, nkey);
|
||||||
@@ -702,7 +702,7 @@ matching_sigs(keyinfo_t *keytbl, dns_rdataset_t *rdataset,
|
|||||||
* fetched from the child zone, any working signature is enough.
|
* fetched from the child zone, any working signature is enough.
|
||||||
*/
|
*/
|
||||||
static bool
|
static bool
|
||||||
signed_loose(uint8_t *algo) {
|
signed_loose(dns_secalg_t *algo) {
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < nkey; i++) {
|
for (i = 0; i < nkey; i++) {
|
||||||
@@ -721,7 +721,7 @@ signed_loose(uint8_t *algo) {
|
|||||||
* RRset.
|
* RRset.
|
||||||
*/
|
*/
|
||||||
static bool
|
static bool
|
||||||
signed_strict(dns_rdataset_t *dsset, uint8_t *algo) {
|
signed_strict(dns_rdataset_t *dsset, dns_secalg_t *algo) {
|
||||||
isc_result_t result;
|
isc_result_t result;
|
||||||
bool all_ok = true;
|
bool all_ok = true;
|
||||||
|
|
||||||
@@ -844,14 +844,14 @@ ds_from_cdnskey(dns_rdatalist_t *dslist, isc_buffer_t *buf,
|
|||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
cmp_dtype(const void *ap, const void *bp) {
|
cmp_dtype(const void *ap, const void *bp) {
|
||||||
int a = *(const uint8_t *)ap;
|
int a = *(const dns_dsdigest_t *)ap;
|
||||||
int b = *(const uint8_t *)bp;
|
int b = *(const dns_dsdigest_t *)bp;
|
||||||
return (a - b);
|
return (a - b);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
add_dtype(const char *dn) {
|
add_dtype(const char *dn) {
|
||||||
uint8_t dt;
|
dns_dsdigest_t dt;
|
||||||
unsigned i, n;
|
unsigned i, n;
|
||||||
|
|
||||||
dt = strtodsdigest(dn);
|
dt = strtodsdigest(dn);
|
||||||
@@ -936,7 +936,7 @@ consistent_digests(dns_rdataset_t *dsset) {
|
|||||||
dns_rdata_t *arrdata;
|
dns_rdata_t *arrdata;
|
||||||
dns_rdata_ds_t *ds;
|
dns_rdata_ds_t *ds;
|
||||||
dns_keytag_t key_tag;
|
dns_keytag_t key_tag;
|
||||||
uint8_t algorithm;
|
dns_secalg_t algorithm;
|
||||||
bool match;
|
bool match;
|
||||||
int i, j, n, d;
|
int i, j, n, d;
|
||||||
|
|
||||||
|
|||||||
@@ -235,7 +235,7 @@ logkey(dns_rdata_t *rdata)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
emit(unsigned int dtype, bool showall, char *lookaside,
|
emit(dns_dsdigest_t dtype, bool showall, char *lookaside,
|
||||||
bool cds, dns_rdata_t *rdata)
|
bool cds, dns_rdata_t *rdata)
|
||||||
{
|
{
|
||||||
isc_result_t result;
|
isc_result_t result;
|
||||||
@@ -350,7 +350,7 @@ main(int argc, char **argv) {
|
|||||||
char *lookaside = NULL;
|
char *lookaside = NULL;
|
||||||
char *endp;
|
char *endp;
|
||||||
int ch;
|
int ch;
|
||||||
unsigned int dtype = DNS_DSDIGEST_SHA1;
|
dns_dsdigest_t dtype = DNS_DSDIGEST_SHA1;
|
||||||
bool cds = false;
|
bool cds = false;
|
||||||
bool both = true;
|
bool both = true;
|
||||||
bool usekeyset = false;
|
bool usekeyset = false;
|
||||||
@@ -362,12 +362,14 @@ main(int argc, char **argv) {
|
|||||||
|
|
||||||
dns_rdata_init(&rdata);
|
dns_rdata_init(&rdata);
|
||||||
|
|
||||||
if (argc == 1)
|
if (argc == 1) {
|
||||||
usage();
|
usage();
|
||||||
|
}
|
||||||
|
|
||||||
result = isc_mem_create(0, 0, &mctx);
|
result = isc_mem_create(0, 0, &mctx);
|
||||||
if (result != ISC_R_SUCCESS)
|
if (result != ISC_R_SUCCESS) {
|
||||||
fatal("out of memory");
|
fatal("out of memory");
|
||||||
|
}
|
||||||
|
|
||||||
#if USE_PKCS11
|
#if USE_PKCS11
|
||||||
pk11_result_register();
|
pk11_result_register();
|
||||||
@@ -395,9 +397,10 @@ main(int argc, char **argv) {
|
|||||||
both = false;
|
both = false;
|
||||||
break;
|
break;
|
||||||
case 'C':
|
case 'C':
|
||||||
if (lookaside != NULL)
|
if (lookaside != NULL) {
|
||||||
fatal("lookaside and CDS are mutually"
|
fatal("lookaside and CDS are mutually"
|
||||||
" exclusive");
|
" exclusive");
|
||||||
|
}
|
||||||
cds = true;
|
cds = true;
|
||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
@@ -409,16 +412,18 @@ main(int argc, char **argv) {
|
|||||||
/* fall through */
|
/* fall through */
|
||||||
case 'K':
|
case 'K':
|
||||||
dir = isc_commandline_argument;
|
dir = isc_commandline_argument;
|
||||||
if (strlen(dir) == 0U)
|
if (strlen(dir) == 0U) {
|
||||||
fatal("directory must be non-empty string");
|
fatal("directory must be non-empty string");
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'f':
|
case 'f':
|
||||||
filename = isc_commandline_argument;
|
filename = isc_commandline_argument;
|
||||||
break;
|
break;
|
||||||
case 'l':
|
case 'l':
|
||||||
if (cds)
|
if (cds) {
|
||||||
fatal("lookaside and CDS are mutually"
|
fatal("lookaside and CDS are mutually"
|
||||||
" exclusive");
|
" exclusive");
|
||||||
|
}
|
||||||
lookaside = isc_commandline_argument;
|
lookaside = isc_commandline_argument;
|
||||||
if (strlen(lookaside) == 0U)
|
if (strlen(lookaside) == 0U)
|
||||||
fatal("lookaside must be a non-empty string");
|
fatal("lookaside must be a non-empty string");
|
||||||
@@ -432,16 +437,18 @@ main(int argc, char **argv) {
|
|||||||
break;
|
break;
|
||||||
case 'v':
|
case 'v':
|
||||||
verbose = strtol(isc_commandline_argument, &endp, 0);
|
verbose = strtol(isc_commandline_argument, &endp, 0);
|
||||||
if (*endp != '\0')
|
if (*endp != '\0') {
|
||||||
fatal("-v must be followed by a number");
|
fatal("-v must be followed by a number");
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'F':
|
case 'F':
|
||||||
/* Reserved for FIPS mode */
|
/* Reserved for FIPS mode */
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
case '?':
|
case '?':
|
||||||
if (isc_commandline_option != '?')
|
if (isc_commandline_option != '?') {
|
||||||
fprintf(stderr, "%s: invalid argument -%c\n",
|
fprintf(stderr, "%s: invalid argument -%c\n",
|
||||||
program, isc_commandline_option);
|
program, isc_commandline_option);
|
||||||
|
}
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
case 'h':
|
case 'h':
|
||||||
/* Does not return. */
|
/* Does not return. */
|
||||||
@@ -460,46 +467,56 @@ main(int argc, char **argv) {
|
|||||||
|
|
||||||
rdclass = strtoclass(classname);
|
rdclass = strtoclass(classname);
|
||||||
|
|
||||||
if (usekeyset && filename != NULL)
|
if (usekeyset && filename != NULL) {
|
||||||
fatal("cannot use both -s and -f");
|
fatal("cannot use both -s and -f");
|
||||||
|
}
|
||||||
|
|
||||||
/* When not using -f, -A is implicit */
|
/* When not using -f, -A is implicit */
|
||||||
if (filename == NULL)
|
if (filename == NULL) {
|
||||||
showall = true;
|
showall = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (argc < isc_commandline_index + 1 && filename == NULL)
|
if (argc < isc_commandline_index + 1 && filename == NULL) {
|
||||||
fatal("the key file name was not specified");
|
fatal("the key file name was not specified");
|
||||||
if (argc > isc_commandline_index + 1)
|
}
|
||||||
|
if (argc > isc_commandline_index + 1) {
|
||||||
fatal("extraneous arguments");
|
fatal("extraneous arguments");
|
||||||
|
}
|
||||||
|
|
||||||
result = dst_lib_init(mctx, NULL);
|
result = dst_lib_init(mctx, NULL);
|
||||||
if (result != ISC_R_SUCCESS)
|
if (result != ISC_R_SUCCESS) {
|
||||||
fatal("could not initialize dst: %s",
|
fatal("could not initialize dst: %s",
|
||||||
isc_result_totext(result));
|
isc_result_totext(result));
|
||||||
|
}
|
||||||
|
|
||||||
setup_logging(mctx, &log);
|
setup_logging(mctx, &log);
|
||||||
|
|
||||||
dns_rdataset_init(&rdataset);
|
dns_rdataset_init(&rdataset);
|
||||||
|
|
||||||
if (usekeyset || filename != NULL) {
|
if (usekeyset || filename != NULL) {
|
||||||
if (argc < isc_commandline_index + 1 && filename != NULL) {
|
if (argc < isc_commandline_index + 1) {
|
||||||
/* using zone name as the zone file name */
|
/* using zone name as the zone file name */
|
||||||
namestr = filename;
|
namestr = filename;
|
||||||
} else
|
} else {
|
||||||
namestr = argv[isc_commandline_index];
|
namestr = argv[isc_commandline_index];
|
||||||
|
}
|
||||||
|
|
||||||
result = initname(namestr);
|
result = initname(namestr);
|
||||||
if (result != ISC_R_SUCCESS)
|
if (result != ISC_R_SUCCESS) {
|
||||||
fatal("could not initialize name %s", namestr);
|
fatal("could not initialize name %s", namestr);
|
||||||
|
}
|
||||||
|
|
||||||
if (usekeyset)
|
if (usekeyset) {
|
||||||
result = loadkeyset(dir, &rdataset);
|
result = loadkeyset(dir, &rdataset);
|
||||||
else
|
} else {
|
||||||
|
INSIST(filename != NULL);
|
||||||
result = loadset(filename, &rdataset);
|
result = loadset(filename, &rdataset);
|
||||||
|
}
|
||||||
|
|
||||||
if (result != ISC_R_SUCCESS)
|
if (result != ISC_R_SUCCESS) {
|
||||||
fatal("could not load DNSKEY set: %s\n",
|
fatal("could not load DNSKEY set: %s\n",
|
||||||
isc_result_totext(result));
|
isc_result_totext(result));
|
||||||
|
}
|
||||||
|
|
||||||
for (result = dns_rdataset_first(&rdataset);
|
for (result = dns_rdataset_first(&rdataset);
|
||||||
result == ISC_R_SUCCESS;
|
result == ISC_R_SUCCESS;
|
||||||
@@ -507,16 +524,18 @@ main(int argc, char **argv) {
|
|||||||
dns_rdata_init(&rdata);
|
dns_rdata_init(&rdata);
|
||||||
dns_rdataset_current(&rdataset, &rdata);
|
dns_rdataset_current(&rdataset, &rdata);
|
||||||
|
|
||||||
if (verbose > 2)
|
if (verbose > 2) {
|
||||||
logkey(&rdata);
|
logkey(&rdata);
|
||||||
|
}
|
||||||
|
|
||||||
if (both) {
|
if (both) {
|
||||||
emit(DNS_DSDIGEST_SHA1, showall, lookaside,
|
emit(DNS_DSDIGEST_SHA1, showall, lookaside,
|
||||||
cds, &rdata);
|
cds, &rdata);
|
||||||
emit(DNS_DSDIGEST_SHA256, showall, lookaside,
|
emit(DNS_DSDIGEST_SHA256, showall, lookaside,
|
||||||
cds, &rdata);
|
cds, &rdata);
|
||||||
} else
|
} else {
|
||||||
emit(dtype, showall, lookaside, cds, &rdata);
|
emit(dtype, showall, lookaside, cds, &rdata);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
unsigned char key_buf[DST_KEY_MAXSIZE];
|
unsigned char key_buf[DST_KEY_MAXSIZE];
|
||||||
@@ -529,8 +548,9 @@ main(int argc, char **argv) {
|
|||||||
&rdata);
|
&rdata);
|
||||||
emit(DNS_DSDIGEST_SHA256, showall, lookaside, cds,
|
emit(DNS_DSDIGEST_SHA256, showall, lookaside, cds,
|
||||||
&rdata);
|
&rdata);
|
||||||
} else
|
} else {
|
||||||
emit(dtype, showall, lookaside, cds, &rdata);
|
emit(dtype, showall, lookaside, cds, &rdata);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dns_rdataset_isassociated(&rdataset))
|
if (dns_rdataset_isassociated(&rdataset))
|
||||||
@@ -538,14 +558,16 @@ main(int argc, char **argv) {
|
|||||||
cleanup_logging(&log);
|
cleanup_logging(&log);
|
||||||
dst_lib_destroy();
|
dst_lib_destroy();
|
||||||
dns_name_destroy();
|
dns_name_destroy();
|
||||||
if (verbose > 10)
|
if (verbose > 10) {
|
||||||
isc_mem_stats(mctx, stdout);
|
isc_mem_stats(mctx, stdout);
|
||||||
|
}
|
||||||
isc_mem_destroy(&mctx);
|
isc_mem_destroy(&mctx);
|
||||||
|
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
if (ferror(stdout)) {
|
if (ferror(stdout)) {
|
||||||
fprintf(stderr, "write error\n");
|
fprintf(stderr, "write error\n");
|
||||||
return (1);
|
return (1);
|
||||||
} else
|
} else {
|
||||||
return (0);
|
return (0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+41
-42
@@ -39,7 +39,7 @@
|
|||||||
dnssec-keygen \- DNSSEC key generation tool
|
dnssec-keygen \- DNSSEC key generation tool
|
||||||
.SH "SYNOPSIS"
|
.SH "SYNOPSIS"
|
||||||
.HP \w'\fBdnssec\-keygen\fR\ 'u
|
.HP \w'\fBdnssec\-keygen\fR\ 'u
|
||||||
\fBdnssec\-keygen\fR [\fB\-a\ \fR\fB\fIalgorithm\fR\fR] [\fB\-b\ \fR\fB\fIkeysize\fR\fR] [\fB\-n\ \fR\fB\fInametype\fR\fR] [\fB\-3\fR] [\fB\-A\ \fR\fB\fIdate/offset\fR\fR] [\fB\-C\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-D\ \fR\fB\fIdate/offset\fR\fR] [\fB\-D\ sync\ \fR\fB\fIdate/offset\fR\fR] [\fB\-E\ \fR\fB\fIengine\fR\fR] [\fB\-f\ \fR\fB\fIflag\fR\fR] [\fB\-G\fR] [\fB\-g\ \fR\fB\fIgenerator\fR\fR] [\fB\-h\fR] [\fB\-I\ \fR\fB\fIdate/offset\fR\fR] [\fB\-i\ \fR\fB\fIinterval\fR\fR] [\fB\-K\ \fR\fB\fIdirectory\fR\fR] [\fB\-k\fR] [\fB\-L\ \fR\fB\fIttl\fR\fR] [\fB\-P\ \fR\fB\fIdate/offset\fR\fR] [\fB\-P\ sync\ \fR\fB\fIdate/offset\fR\fR] [\fB\-p\ \fR\fB\fIprotocol\fR\fR] [\fB\-q\fR] [\fB\-R\ \fR\fB\fIdate/offset\fR\fR] [\fB\-S\ \fR\fB\fIkey\fR\fR] [\fB\-s\ \fR\fB\fIstrength\fR\fR] [\fB\-t\ \fR\fB\fItype\fR\fR] [\fB\-V\fR] [\fB\-v\ \fR\fB\fIlevel\fR\fR] [\fB\-z\fR] {name}
|
\fBdnssec\-keygen\fR [\fB\-3\fR] [\fB\-A\ \fR\fB\fIdate/offset\fR\fR] [\fB\-a\ \fR\fB\fIalgorithm\fR\fR] [\fB\-b\ \fR\fB\fIkeysize\fR\fR] [\fB\-C\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-D\ \fR\fB\fIdate/offset\fR\fR] [\fB\-D\ sync\ \fR\fB\fIdate/offset\fR\fR] [\fB\-E\ \fR\fB\fIengine\fR\fR] [\fB\-f\ \fR\fB\fIflag\fR\fR] [\fB\-G\fR] [\fB\-g\ \fR\fB\fIgenerator\fR\fR] [\fB\-h\fR] [\fB\-I\ \fR\fB\fIdate/offset\fR\fR] [\fB\-i\ \fR\fB\fIinterval\fR\fR] [\fB\-K\ \fR\fB\fIdirectory\fR\fR] [\fB\-k\fR] [\fB\-L\ \fR\fB\fIttl\fR\fR] [\fB\-n\ \fR\fB\fInametype\fR\fR] [\fB\-P\ \fR\fB\fIdate/offset\fR\fR] [\fB\-P\ sync\ \fR\fB\fIdate/offset\fR\fR] [\fB\-p\ \fR\fB\fIprotocol\fR\fR] [\fB\-q\fR] [\fB\-R\ \fR\fB\fIdate/offset\fR\fR] [\fB\-S\ \fR\fB\fIkey\fR\fR] [\fB\-s\ \fR\fB\fIstrength\fR\fR] [\fB\-t\ \fR\fB\fItype\fR\fR] [\fB\-V\fR] [\fB\-v\ \fR\fB\fIlevel\fR\fR] {name}
|
||||||
.SH "DESCRIPTION"
|
.SH "DESCRIPTION"
|
||||||
.PP
|
.PP
|
||||||
\fBdnssec\-keygen\fR
|
\fBdnssec\-keygen\fR
|
||||||
@@ -58,6 +58,13 @@ may be preferable to direct use of
|
|||||||
\fBdnssec\-keygen\fR\&.
|
\fBdnssec\-keygen\fR\&.
|
||||||
.SH "OPTIONS"
|
.SH "OPTIONS"
|
||||||
.PP
|
.PP
|
||||||
|
\-3
|
||||||
|
.RS 4
|
||||||
|
Use an NSEC3\-capable algorithm to generate a DNSSEC key\&. If this option is used with an algorithm that has both NSEC and NSEC3 versions, then the NSEC3 version will be used; for example,
|
||||||
|
\fBdnssec\-keygen \-3a RSASHA1\fR
|
||||||
|
specifies the NSEC3RSASHA1 algorithm\&.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
\-a \fIalgorithm\fR
|
\-a \fIalgorithm\fR
|
||||||
.RS 4
|
.RS 4
|
||||||
Selects the cryptographic algorithm\&. For DNSSEC keys, the value of
|
Selects the cryptographic algorithm\&. For DNSSEC keys, the value of
|
||||||
@@ -83,29 +90,15 @@ to generate TSIG keys\&.
|
|||||||
.PP
|
.PP
|
||||||
\-b \fIkeysize\fR
|
\-b \fIkeysize\fR
|
||||||
.RS 4
|
.RS 4
|
||||||
Specifies the number of bits in the key\&. The choice of key size depends on the algorithm used\&. RSA keys must be between 1024 and 2048 bits\&. Diffie Hellman keys must be between 128 and 4096 bits\&. DSA keys must be between 512 and 1024 bits and an exact multiple of 64\&. HMAC keys must be between 1 and 512 bits\&. Elliptic curve algorithms don\*(Aqt need this parameter\&.
|
Specifies the number of bits in the key\&. The choice of key size depends on the algorithm used\&. RSA keys must be between 1024 and 4096 bits\&. Diffie Hellman keys must be between 128 and 4096 bits\&. Elliptic curve algorithms don\*(Aqt need this parameter\&.
|
||||||
.sp
|
.sp
|
||||||
If the key size is not specified, some algorithms have pre\-defined defaults\&. For example, RSA keys for use as DNSSEC zone signing keys have a default size of 1024 bits; RSA keys for use as key signing keys (KSKs, generated with
|
If the key size is not specified, some algorithms have pre\-defined defaults\&. For example, RSA keys for use as DNSSEC zone signing keys have a default size of 1024 bits; RSA keys for use as key signing keys (KSKs, generated with
|
||||||
\fB\-f KSK\fR) default to 2048 bits\&.
|
\fB\-f KSK\fR) default to 2048 bits\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\-n \fInametype\fR
|
|
||||||
.RS 4
|
|
||||||
Specifies the owner type of the key\&. The value of
|
|
||||||
\fBnametype\fR
|
|
||||||
must either be ZONE (for a DNSSEC zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated with a host (KEY)), USER (for a key associated with a user(KEY)) or OTHER (DNSKEY)\&. These values are case insensitive\&. Defaults to ZONE for DNSKEY generation\&.
|
|
||||||
.RE
|
|
||||||
.PP
|
|
||||||
\-3
|
|
||||||
.RS 4
|
|
||||||
Use an NSEC3\-capable algorithm to generate a DNSSEC key\&. If this option is used with an algorithm that has both NSEC and NSEC3 versions, then the NSEC3 version will be used; for example,
|
|
||||||
\fBdnssec\-keygen \-3a RSASHA1\fR
|
|
||||||
specifies the NSEC3RSASHA1 algorithm\&.
|
|
||||||
.RE
|
|
||||||
.PP
|
|
||||||
\-C
|
\-C
|
||||||
.RS 4
|
.RS 4
|
||||||
Compatibility mode: generates an old\-style key, without any metadata\&. By default,
|
Compatibility mode: generates an old\-style key, without any timing metadata\&. By default,
|
||||||
\fBdnssec\-keygen\fR
|
\fBdnssec\-keygen\fR
|
||||||
will include the key\*(Aqs creation date in the metadata stored with the private key, and other dates may be set there as well (publication date, activation date, etc)\&. Keys that include this data may be incompatible with older versions of BIND; the
|
will include the key\*(Aqs creation date in the metadata stored with the private key, and other dates may be set there as well (publication date, activation date, etc)\&. Keys that include this data may be incompatible with older versions of BIND; the
|
||||||
\fB\-C\fR
|
\fB\-C\fR
|
||||||
@@ -150,11 +143,6 @@ Prints a short summary of the options and arguments to
|
|||||||
Sets the directory in which the key files are to be written\&.
|
Sets the directory in which the key files are to be written\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\-k
|
|
||||||
.RS 4
|
|
||||||
Deprecated in favor of \-T KEY\&.
|
|
||||||
.RE
|
|
||||||
.PP
|
|
||||||
\-L \fIttl\fR
|
\-L \fIttl\fR
|
||||||
.RS 4
|
.RS 4
|
||||||
Sets the default TTL to use for this key when it is converted into a DNSKEY RR\&. If the key is imported into a zone, this is the TTL that will be used for it, unless there was already a DNSKEY RRset in place, in which case the existing TTL would take precedence\&. If this value is not set and there is no existing DNSKEY RRset, the TTL will default to the SOA TTL\&. Setting the default TTL to
|
Sets the default TTL to use for this key when it is converted into a DNSKEY RR\&. If the key is imported into a zone, this is the TTL that will be used for it, unless there was already a DNSKEY RRset in place, in which case the existing TTL would take precedence\&. If this value is not set and there is no existing DNSKEY RRset, the TTL will default to the SOA TTL\&. Setting the default TTL to
|
||||||
@@ -164,9 +152,17 @@ none
|
|||||||
is the same as leaving it unset\&.
|
is the same as leaving it unset\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
|
\-n \fInametype\fR
|
||||||
|
.RS 4
|
||||||
|
Specifies the owner type of the key\&. The value of
|
||||||
|
\fBnametype\fR
|
||||||
|
must either be ZONE (for a DNSSEC zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated with a host (KEY)), USER (for a key associated with a user(KEY)) or OTHER (DNSKEY)\&. These values are case insensitive\&. Defaults to ZONE for DNSKEY generation\&.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
\-p \fIprotocol\fR
|
\-p \fIprotocol\fR
|
||||||
.RS 4
|
.RS 4
|
||||||
Sets the protocol value for the generated key\&. The protocol is a number between 0 and 255\&. The default is 3 (DNSSEC)\&. Other possible values for this argument are listed in RFC 2535 and its successors\&.
|
Sets the protocol value for the generated key, for use with
|
||||||
|
\fB\-T KEY\fR\&. The protocol is a number between 0 and 255\&. The default is 3 (DNSSEC)\&. Other possible values for this argument are listed in RFC 2535 and its successors\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\-q
|
\-q
|
||||||
@@ -193,27 +189,25 @@ Specifies the strength value of the key\&. The strength is a number between 0 an
|
|||||||
Specifies the resource record type to use for the key\&.
|
Specifies the resource record type to use for the key\&.
|
||||||
\fBrrtype\fR
|
\fBrrtype\fR
|
||||||
must be either DNSKEY or KEY\&. The default is DNSKEY when using a DNSSEC algorithm, but it can be overridden to KEY for use with SIG(0)\&.
|
must be either DNSKEY or KEY\&. The default is DNSKEY when using a DNSSEC algorithm, but it can be overridden to KEY for use with SIG(0)\&.
|
||||||
Specifying any TSIG algorithm (HMAC\-* or DH) with
|
|
||||||
\fB\-a\fR
|
|
||||||
forces this option to KEY\&.
|
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\-t \fItype\fR
|
\-t \fItype\fR
|
||||||
.RS 4
|
.RS 4
|
||||||
Indicates the use of the key\&.
|
Indicates the use of the key, for use with
|
||||||
|
\fB\-T KEY\fR\&.
|
||||||
\fBtype\fR
|
\fBtype\fR
|
||||||
must be one of AUTHCONF, NOAUTHCONF, NOAUTH, or NOCONF\&. The default is AUTHCONF\&. AUTH refers to the ability to authenticate data, and CONF the ability to encrypt data\&.
|
must be one of AUTHCONF, NOAUTHCONF, NOAUTH, or NOCONF\&. The default is AUTHCONF\&. AUTH refers to the ability to authenticate data, and CONF the ability to encrypt data\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\-v \fIlevel\fR
|
|
||||||
.RS 4
|
|
||||||
Sets the debugging level\&.
|
|
||||||
.RE
|
|
||||||
.PP
|
|
||||||
\-V
|
\-V
|
||||||
.RS 4
|
.RS 4
|
||||||
Prints version information\&.
|
Prints version information\&.
|
||||||
.RE
|
.RE
|
||||||
|
.PP
|
||||||
|
\-v \fIlevel\fR
|
||||||
|
.RS 4
|
||||||
|
Sets the debugging level\&.
|
||||||
|
.RE
|
||||||
.SH "TIMING OPTIONS"
|
.SH "TIMING OPTIONS"
|
||||||
.PP
|
.PP
|
||||||
Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS\&. If the argument begins with a \*(Aq+\*(Aq or \*(Aq\-\*(Aq, it is interpreted as an offset from the present time\&. For convenience, if such an offset is followed by one of the suffixes \*(Aqy\*(Aq, \*(Aqmo\*(Aq, \*(Aqw\*(Aq, \*(Aqd\*(Aq, \*(Aqh\*(Aq, or \*(Aqmi\*(Aq, then the offset is computed in years (defined as 365 24\-hour days, ignoring leap years), months (defined as 30 24\-hour days), weeks, days, hours, or minutes, respectively\&. Without a suffix, the offset is computed in seconds\&. To explicitly prevent a date from being set, use \*(Aqnone\*(Aq or \*(Aqnever\*(Aq\&.
|
Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS\&. If the argument begins with a \*(Aq+\*(Aq or \*(Aq\-\*(Aq, it is interpreted as an offset from the present time\&. For convenience, if such an offset is followed by one of the suffixes \*(Aqy\*(Aq, \*(Aqmo\*(Aq, \*(Aqw\*(Aq, \*(Aqd\*(Aq, \*(Aqh\*(Aq, or \*(Aqmi\*(Aq, then the offset is computed in years (defined as 365 24\-hour days, ignoring leap years), months (defined as 30 24\-hour days), weeks, days, hours, or minutes, respectively\&. Without a suffix, the offset is computed in seconds\&. To explicitly prevent a date from being set, use \*(Aqnone\*(Aq or \*(Aqnever\*(Aq\&.
|
||||||
@@ -314,23 +308,24 @@ contains the private key\&.
|
|||||||
.PP
|
.PP
|
||||||
The
|
The
|
||||||
\&.key
|
\&.key
|
||||||
file contains a DNS KEY record that can be inserted into a zone file (directly or with a $INCLUDE statement)\&.
|
file contains a DNSKEY or KEY record\&. When a zone is being signed by
|
||||||
|
\fBnamed\fR
|
||||||
|
or
|
||||||
|
\fBdnssec\-signzone\fR\fB\-S\fR, DNSKEY records are included automatically\&. In other cases, the
|
||||||
|
\&.key
|
||||||
|
file can be inserted into a zone file manually or with a
|
||||||
|
\fB$INCLUDE\fR
|
||||||
|
statement\&.
|
||||||
.PP
|
.PP
|
||||||
The
|
The
|
||||||
\&.private
|
\&.private
|
||||||
file contains algorithm\-specific fields\&. For obvious security reasons, this file does not have general read permission\&.
|
file contains algorithm\-specific fields\&. For obvious security reasons, this file does not have general read permission\&.
|
||||||
.PP
|
|
||||||
Both
|
|
||||||
\&.key
|
|
||||||
and
|
|
||||||
\&.private
|
|
||||||
files are generated for symmetric cryptography algorithms such as HMAC\-MD5, even though the public and private key are equivalent\&.
|
|
||||||
.SH "EXAMPLE"
|
.SH "EXAMPLE"
|
||||||
.PP
|
.PP
|
||||||
To generate an ECDSAP256SHA256 key for the domain
|
To generate an ECDSAP256SHA256 zone\-signing key for the zone
|
||||||
\fBexample\&.com\fR, the following command would be issued:
|
\fBexample\&.com\fR, issue the command:
|
||||||
.PP
|
.PP
|
||||||
\fBdnssec\-keygen \-a ECDSAP256SHA256 \-n ZONE example\&.com\fR
|
\fBdnssec\-keygen \-a ECDSAP256SHA256 example\&.com\fR
|
||||||
.PP
|
.PP
|
||||||
The command would print a string of the form:
|
The command would print a string of the form:
|
||||||
.PP
|
.PP
|
||||||
@@ -342,6 +337,10 @@ creates the files
|
|||||||
Kexample\&.com\&.+013+26160\&.key
|
Kexample\&.com\&.+013+26160\&.key
|
||||||
and
|
and
|
||||||
Kexample\&.com\&.+013+26160\&.private\&.
|
Kexample\&.com\&.+013+26160\&.private\&.
|
||||||
|
.PP
|
||||||
|
To generate a matching key\-signing key, issue the command:
|
||||||
|
.PP
|
||||||
|
\fBdnssec\-keygen \-a ECDSAP256SHA256 \-f KSK example\&.com\fR
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
.PP
|
.PP
|
||||||
\fBdnssec-signzone\fR(8),
|
\fBdnssec-signzone\fR(8),
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ main(int argc, char **argv) {
|
|||||||
/*
|
/*
|
||||||
* Process memory debugging argument first.
|
* Process memory debugging argument first.
|
||||||
*/
|
*/
|
||||||
#define CMDLINE_FLAGS "3A:a:b:Cc:D:d:E:eFf:Gg:hI:i:K:kL:m:n:P:p:qR:r:S:s:T:t:" \
|
#define CMDLINE_FLAGS "3A:a:b:Cc:D:d:E:eFf:Gg:hI:i:K:L:m:n:P:p:qR:r:S:s:T:t:" \
|
||||||
"v:V"
|
"v:V"
|
||||||
while ((ch = isc_commandline_parse(argc, argv, CMDLINE_FLAGS)) != -1) {
|
while ((ch = isc_commandline_parse(argc, argv, CMDLINE_FLAGS)) != -1) {
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
@@ -322,11 +322,6 @@ main(int argc, char **argv) {
|
|||||||
fatal("cannot open directory %s: %s",
|
fatal("cannot open directory %s: %s",
|
||||||
directory, isc_result_totext(ret));
|
directory, isc_result_totext(ret));
|
||||||
break;
|
break;
|
||||||
case 'k':
|
|
||||||
fatal("The -k option has been deprecated.\n"
|
|
||||||
"To generate a key-signing key, use -f KSK.\n"
|
|
||||||
"To generate a key with TYPE=KEY, use -T KEY.\n");
|
|
||||||
break;
|
|
||||||
case 'L':
|
case 'L':
|
||||||
ttl = strtottl(isc_commandline_argument);
|
ttl = strtottl(isc_commandline_argument);
|
||||||
setttl = true;
|
setttl = true;
|
||||||
|
|||||||
@@ -58,11 +58,10 @@
|
|||||||
<refsynopsisdiv>
|
<refsynopsisdiv>
|
||||||
<cmdsynopsis sepchar=" ">
|
<cmdsynopsis sepchar=" ">
|
||||||
<command>dnssec-keygen</command>
|
<command>dnssec-keygen</command>
|
||||||
<arg rep="norepeat"><option>-a <replaceable class="parameter">algorithm</replaceable></option></arg>
|
|
||||||
<arg choice="opt" rep="norepeat"><option>-b <replaceable class="parameter">keysize</replaceable></option></arg>
|
|
||||||
<arg choice="opt" rep="norepeat"><option>-n <replaceable class="parameter">nametype</replaceable></option></arg>
|
|
||||||
<arg choice="opt" rep="norepeat"><option>-3</option></arg>
|
<arg choice="opt" rep="norepeat"><option>-3</option></arg>
|
||||||
<arg choice="opt" rep="norepeat"><option>-A <replaceable class="parameter">date/offset</replaceable></option></arg>
|
<arg choice="opt" rep="norepeat"><option>-A <replaceable class="parameter">date/offset</replaceable></option></arg>
|
||||||
|
<arg rep="norepeat"><option>-a <replaceable class="parameter">algorithm</replaceable></option></arg>
|
||||||
|
<arg choice="opt" rep="norepeat"><option>-b <replaceable class="parameter">keysize</replaceable></option></arg>
|
||||||
<arg choice="opt" rep="norepeat"><option>-C</option></arg>
|
<arg choice="opt" rep="norepeat"><option>-C</option></arg>
|
||||||
<arg choice="opt" rep="norepeat"><option>-c <replaceable class="parameter">class</replaceable></option></arg>
|
<arg choice="opt" rep="norepeat"><option>-c <replaceable class="parameter">class</replaceable></option></arg>
|
||||||
<arg choice="opt" rep="norepeat"><option>-D <replaceable class="parameter">date/offset</replaceable></option></arg>
|
<arg choice="opt" rep="norepeat"><option>-D <replaceable class="parameter">date/offset</replaceable></option></arg>
|
||||||
@@ -77,6 +76,7 @@
|
|||||||
<arg choice="opt" rep="norepeat"><option>-K <replaceable class="parameter">directory</replaceable></option></arg>
|
<arg choice="opt" rep="norepeat"><option>-K <replaceable class="parameter">directory</replaceable></option></arg>
|
||||||
<arg choice="opt" rep="norepeat"><option>-k</option></arg>
|
<arg choice="opt" rep="norepeat"><option>-k</option></arg>
|
||||||
<arg choice="opt" rep="norepeat"><option>-L <replaceable class="parameter">ttl</replaceable></option></arg>
|
<arg choice="opt" rep="norepeat"><option>-L <replaceable class="parameter">ttl</replaceable></option></arg>
|
||||||
|
<arg choice="opt" rep="norepeat"><option>-n <replaceable class="parameter">nametype</replaceable></option></arg>
|
||||||
<arg choice="opt" rep="norepeat"><option>-P <replaceable class="parameter">date/offset</replaceable></option></arg>
|
<arg choice="opt" rep="norepeat"><option>-P <replaceable class="parameter">date/offset</replaceable></option></arg>
|
||||||
<arg choice="opt" rep="norepeat"><option>-P sync <replaceable class="parameter">date/offset</replaceable></option></arg>
|
<arg choice="opt" rep="norepeat"><option>-P sync <replaceable class="parameter">date/offset</replaceable></option></arg>
|
||||||
<arg choice="opt" rep="norepeat"><option>-p <replaceable class="parameter">protocol</replaceable></option></arg>
|
<arg choice="opt" rep="norepeat"><option>-p <replaceable class="parameter">protocol</replaceable></option></arg>
|
||||||
@@ -87,7 +87,6 @@
|
|||||||
<arg choice="opt" rep="norepeat"><option>-t <replaceable class="parameter">type</replaceable></option></arg>
|
<arg choice="opt" rep="norepeat"><option>-t <replaceable class="parameter">type</replaceable></option></arg>
|
||||||
<arg choice="opt" rep="norepeat"><option>-V</option></arg>
|
<arg choice="opt" rep="norepeat"><option>-V</option></arg>
|
||||||
<arg choice="opt" rep="norepeat"><option>-v <replaceable class="parameter">level</replaceable></option></arg>
|
<arg choice="opt" rep="norepeat"><option>-v <replaceable class="parameter">level</replaceable></option></arg>
|
||||||
<arg choice="opt" rep="norepeat"><option>-z</option></arg>
|
|
||||||
<arg choice="req" rep="norepeat">name</arg>
|
<arg choice="req" rep="norepeat">name</arg>
|
||||||
</cmdsynopsis>
|
</cmdsynopsis>
|
||||||
</refsynopsisdiv>
|
</refsynopsisdiv>
|
||||||
@@ -118,6 +117,20 @@
|
|||||||
|
|
||||||
|
|
||||||
<variablelist>
|
<variablelist>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>-3</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Use an NSEC3-capable algorithm to generate a DNSSEC key.
|
||||||
|
If this option is used with an algorithm that has both
|
||||||
|
NSEC and NSEC3 versions, then the NSEC3 version will be
|
||||||
|
used; for example, <command>dnssec-keygen -3a RSASHA1</command>
|
||||||
|
specifies the NSEC3RSASHA1 algorithm.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>-a <replaceable class="parameter">algorithm</replaceable></term>
|
<term>-a <replaceable class="parameter">algorithm</replaceable></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
@@ -157,11 +170,9 @@
|
|||||||
<para>
|
<para>
|
||||||
Specifies the number of bits in the key. The choice of key
|
Specifies the number of bits in the key. The choice of key
|
||||||
size depends on the algorithm used. RSA keys must be
|
size depends on the algorithm used. RSA keys must be
|
||||||
between 1024 and 2048 bits. Diffie Hellman keys must be between
|
between 1024 and 4096 bits. Diffie Hellman keys must be between
|
||||||
128 and 4096 bits. DSA keys must be between 512 and 1024
|
128 and 4096 bits. Elliptic curve algorithms don't need this
|
||||||
bits and an exact multiple of 64. HMAC keys must be
|
parameter.
|
||||||
between 1 and 512 bits. Elliptic curve algorithms don't need
|
|
||||||
this parameter.
|
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
If the key size is not specified, some algorithms have
|
If the key size is not specified, some algorithms have
|
||||||
@@ -173,43 +184,16 @@
|
|||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>-n <replaceable class="parameter">nametype</replaceable></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Specifies the owner type of the key. The value of
|
|
||||||
<option>nametype</option> must either be ZONE (for a DNSSEC
|
|
||||||
zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated
|
|
||||||
with a host (KEY)), USER (for a key associated with a
|
|
||||||
user(KEY)) or OTHER (DNSKEY). These values are case
|
|
||||||
insensitive. Defaults to ZONE for DNSKEY generation.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>-3</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Use an NSEC3-capable algorithm to generate a DNSSEC key.
|
|
||||||
If this option is used with an algorithm that has both
|
|
||||||
NSEC and NSEC3 versions, then the NSEC3 version will be
|
|
||||||
used; for example, <command>dnssec-keygen -3a RSASHA1</command>
|
|
||||||
specifies the NSEC3RSASHA1 algorithm.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>-C</term>
|
<term>-C</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Compatibility mode: generates an old-style key, without
|
Compatibility mode: generates an old-style key, without any
|
||||||
any metadata. By default, <command>dnssec-keygen</command>
|
timing metadata. By default, <command>dnssec-keygen</command>
|
||||||
will include the key's creation date in the metadata stored
|
will include the key's creation date in the metadata stored with
|
||||||
with the private key, and other dates may be set there as well
|
the private key, and other dates may be set there as well
|
||||||
(publication date, activation date, etc). Keys that include
|
(publication date, activation date, etc). Keys that include this
|
||||||
this data may be incompatible with older versions of BIND; the
|
data may be incompatible with older versions of BIND; the
|
||||||
<option>-C</option> option suppresses them.
|
<option>-C</option> option suppresses them.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@@ -293,15 +277,6 @@
|
|||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>-k</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Deprecated in favor of -T KEY.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>-L <replaceable class="parameter">ttl</replaceable></term>
|
<term>-L <replaceable class="parameter">ttl</replaceable></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
@@ -318,14 +293,28 @@
|
|||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>-n <replaceable class="parameter">nametype</replaceable></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Specifies the owner type of the key. The value of
|
||||||
|
<option>nametype</option> must either be ZONE (for a DNSSEC
|
||||||
|
zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated
|
||||||
|
with a host (KEY)), USER (for a key associated with a
|
||||||
|
user(KEY)) or OTHER (DNSKEY). These values are case
|
||||||
|
insensitive. Defaults to ZONE for DNSKEY generation.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>-p <replaceable class="parameter">protocol</replaceable></term>
|
<term>-p <replaceable class="parameter">protocol</replaceable></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Sets the protocol value for the generated key. The protocol
|
Sets the protocol value for the generated key, for use
|
||||||
is a number between 0 and 255. The default is 3 (DNSSEC).
|
with <option>-T KEY</option>. The protocol is a number between 0
|
||||||
Other possible values for this argument are listed in
|
and 255. The default is 3 (DNSSEC). Other possible values for
|
||||||
RFC 2535 and its successors.
|
this argument are listed in RFC 2535 and its successors.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@@ -383,10 +372,6 @@
|
|||||||
<option>rrtype</option> must be either DNSKEY or KEY. The
|
<option>rrtype</option> must be either DNSKEY or KEY. The
|
||||||
default is DNSKEY when using a DNSSEC algorithm, but it can be
|
default is DNSKEY when using a DNSSEC algorithm, but it can be
|
||||||
overridden to KEY for use with SIG(0).
|
overridden to KEY for use with SIG(0).
|
||||||
<para>
|
|
||||||
</para>
|
|
||||||
Specifying any TSIG algorithm (HMAC-* or DH) with
|
|
||||||
<option>-a</option> forces this option to KEY.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@@ -395,19 +380,11 @@
|
|||||||
<term>-t <replaceable class="parameter">type</replaceable></term>
|
<term>-t <replaceable class="parameter">type</replaceable></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Indicates the use of the key. <option>type</option> must be
|
Indicates the use of the key, for use with <option>-T
|
||||||
one of AUTHCONF, NOAUTHCONF, NOAUTH, or NOCONF. The default
|
KEY</option>. <option>type</option> must be one of AUTHCONF,
|
||||||
is AUTHCONF. AUTH refers to the ability to authenticate
|
NOAUTHCONF, NOAUTH, or NOCONF. The default is AUTHCONF. AUTH
|
||||||
data, and CONF the ability to encrypt data.
|
refers to the ability to authenticate data, and CONF the ability
|
||||||
</para>
|
to encrypt data.
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>-v <replaceable class="parameter">level</replaceable></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Sets the debugging level.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@@ -421,6 +398,15 @@
|
|||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>-v <replaceable class="parameter">level</replaceable></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Sets the debugging level.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
</variablelist>
|
</variablelist>
|
||||||
</refsection>
|
</refsection>
|
||||||
|
|
||||||
@@ -585,10 +571,12 @@
|
|||||||
key.
|
key.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The <filename>.key</filename> file contains a DNS KEY record
|
The <filename>.key</filename> file contains a DNSKEY or KEY record.
|
||||||
that
|
When a zone is being signed by <command>named</command>
|
||||||
can be inserted into a zone file (directly or with a $INCLUDE
|
or <command>dnssec-signzone</command> <option>-S</option>, DNSKEY
|
||||||
statement).
|
records are included automatically. In other cases,
|
||||||
|
the <filename>.key</filename> file can be inserted into a zone file
|
||||||
|
manually or with a <userinput>$INCLUDE</userinput> statement.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The <filename>.private</filename> file contains
|
The <filename>.private</filename> file contains
|
||||||
@@ -596,21 +584,16 @@
|
|||||||
fields. For obvious security reasons, this file does not have
|
fields. For obvious security reasons, this file does not have
|
||||||
general read permission.
|
general read permission.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
|
||||||
Both <filename>.key</filename> and <filename>.private</filename>
|
|
||||||
files are generated for symmetric cryptography algorithms such as
|
|
||||||
HMAC-MD5, even though the public and private key are equivalent.
|
|
||||||
</para>
|
|
||||||
</refsection>
|
</refsection>
|
||||||
|
|
||||||
<refsection><info><title>EXAMPLE</title></info>
|
<refsection><info><title>EXAMPLE</title></info>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
To generate an ECDSAP256SHA256 key for the domain
|
To generate an ECDSAP256SHA256 zone-signing key for the zone
|
||||||
<userinput>example.com</userinput>, the following command would be
|
<userinput>example.com</userinput>, issue the command:
|
||||||
issued:
|
|
||||||
</para>
|
</para>
|
||||||
<para><userinput>dnssec-keygen -a ECDSAP256SHA256 -n ZONE example.com</userinput>
|
<para>
|
||||||
|
<userinput>dnssec-keygen -a ECDSAP256SHA256 example.com</userinput>
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The command would print a string of the form:
|
The command would print a string of the form:
|
||||||
@@ -623,6 +606,12 @@
|
|||||||
and
|
and
|
||||||
<filename>Kexample.com.+013+26160.private</filename>.
|
<filename>Kexample.com.+013+26160.private</filename>.
|
||||||
</para>
|
</para>
|
||||||
|
<para>
|
||||||
|
To generate a matching key-signing key, issue the command:
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
<userinput>dnssec-keygen -a ECDSAP256SHA256 -f KSK example.com</userinput>
|
||||||
|
</para>
|
||||||
</refsection>
|
</refsection>
|
||||||
|
|
||||||
<refsection><info><title>SEE ALSO</title></info>
|
<refsection><info><title>SEE ALSO</title></info>
|
||||||
|
|||||||
@@ -33,11 +33,10 @@
|
|||||||
<h2>Synopsis</h2>
|
<h2>Synopsis</h2>
|
||||||
<div class="cmdsynopsis"><p>
|
<div class="cmdsynopsis"><p>
|
||||||
<code class="command">dnssec-keygen</code>
|
<code class="command">dnssec-keygen</code>
|
||||||
[<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>]
|
|
||||||
[<code class="option">-b <em class="replaceable"><code>keysize</code></em></code>]
|
|
||||||
[<code class="option">-n <em class="replaceable"><code>nametype</code></em></code>]
|
|
||||||
[<code class="option">-3</code>]
|
[<code class="option">-3</code>]
|
||||||
[<code class="option">-A <em class="replaceable"><code>date/offset</code></em></code>]
|
[<code class="option">-A <em class="replaceable"><code>date/offset</code></em></code>]
|
||||||
|
[<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>]
|
||||||
|
[<code class="option">-b <em class="replaceable"><code>keysize</code></em></code>]
|
||||||
[<code class="option">-C</code>]
|
[<code class="option">-C</code>]
|
||||||
[<code class="option">-c <em class="replaceable"><code>class</code></em></code>]
|
[<code class="option">-c <em class="replaceable"><code>class</code></em></code>]
|
||||||
[<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>]
|
[<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>]
|
||||||
@@ -52,6 +51,7 @@
|
|||||||
[<code class="option">-K <em class="replaceable"><code>directory</code></em></code>]
|
[<code class="option">-K <em class="replaceable"><code>directory</code></em></code>]
|
||||||
[<code class="option">-k</code>]
|
[<code class="option">-k</code>]
|
||||||
[<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>]
|
[<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>]
|
||||||
|
[<code class="option">-n <em class="replaceable"><code>nametype</code></em></code>]
|
||||||
[<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>]
|
[<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>]
|
||||||
[<code class="option">-P sync <em class="replaceable"><code>date/offset</code></em></code>]
|
[<code class="option">-P sync <em class="replaceable"><code>date/offset</code></em></code>]
|
||||||
[<code class="option">-p <em class="replaceable"><code>protocol</code></em></code>]
|
[<code class="option">-p <em class="replaceable"><code>protocol</code></em></code>]
|
||||||
@@ -62,7 +62,6 @@
|
|||||||
[<code class="option">-t <em class="replaceable"><code>type</code></em></code>]
|
[<code class="option">-t <em class="replaceable"><code>type</code></em></code>]
|
||||||
[<code class="option">-V</code>]
|
[<code class="option">-V</code>]
|
||||||
[<code class="option">-v <em class="replaceable"><code>level</code></em></code>]
|
[<code class="option">-v <em class="replaceable"><code>level</code></em></code>]
|
||||||
[<code class="option">-z</code>]
|
|
||||||
{name}
|
{name}
|
||||||
</p></div>
|
</p></div>
|
||||||
</div>
|
</div>
|
||||||
@@ -95,6 +94,16 @@
|
|||||||
|
|
||||||
|
|
||||||
<div class="variablelist"><dl class="variablelist">
|
<div class="variablelist"><dl class="variablelist">
|
||||||
|
<dt><span class="term">-3</span></dt>
|
||||||
|
<dd>
|
||||||
|
<p>
|
||||||
|
Use an NSEC3-capable algorithm to generate a DNSSEC key.
|
||||||
|
If this option is used with an algorithm that has both
|
||||||
|
NSEC and NSEC3 versions, then the NSEC3 version will be
|
||||||
|
used; for example, <span class="command"><strong>dnssec-keygen -3a RSASHA1</strong></span>
|
||||||
|
specifies the NSEC3RSASHA1 algorithm.
|
||||||
|
</p>
|
||||||
|
</dd>
|
||||||
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
|
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
@@ -130,11 +139,9 @@
|
|||||||
<p>
|
<p>
|
||||||
Specifies the number of bits in the key. The choice of key
|
Specifies the number of bits in the key. The choice of key
|
||||||
size depends on the algorithm used. RSA keys must be
|
size depends on the algorithm used. RSA keys must be
|
||||||
between 1024 and 2048 bits. Diffie Hellman keys must be between
|
between 1024 and 4096 bits. Diffie Hellman keys must be between
|
||||||
128 and 4096 bits. DSA keys must be between 512 and 1024
|
128 and 4096 bits. Elliptic curve algorithms don't need this
|
||||||
bits and an exact multiple of 64. HMAC keys must be
|
parameter.
|
||||||
between 1 and 512 bits. Elliptic curve algorithms don't need
|
|
||||||
this parameter.
|
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
If the key size is not specified, some algorithms have
|
If the key size is not specified, some algorithms have
|
||||||
@@ -144,36 +151,15 @@
|
|||||||
<code class="option">-f KSK</code>) default to 2048 bits.
|
<code class="option">-f KSK</code>) default to 2048 bits.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term">-n <em class="replaceable"><code>nametype</code></em></span></dt>
|
|
||||||
<dd>
|
|
||||||
<p>
|
|
||||||
Specifies the owner type of the key. The value of
|
|
||||||
<code class="option">nametype</code> must either be ZONE (for a DNSSEC
|
|
||||||
zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated
|
|
||||||
with a host (KEY)), USER (for a key associated with a
|
|
||||||
user(KEY)) or OTHER (DNSKEY). These values are case
|
|
||||||
insensitive. Defaults to ZONE for DNSKEY generation.
|
|
||||||
</p>
|
|
||||||
</dd>
|
|
||||||
<dt><span class="term">-3</span></dt>
|
|
||||||
<dd>
|
|
||||||
<p>
|
|
||||||
Use an NSEC3-capable algorithm to generate a DNSSEC key.
|
|
||||||
If this option is used with an algorithm that has both
|
|
||||||
NSEC and NSEC3 versions, then the NSEC3 version will be
|
|
||||||
used; for example, <span class="command"><strong>dnssec-keygen -3a RSASHA1</strong></span>
|
|
||||||
specifies the NSEC3RSASHA1 algorithm.
|
|
||||||
</p>
|
|
||||||
</dd>
|
|
||||||
<dt><span class="term">-C</span></dt>
|
<dt><span class="term">-C</span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Compatibility mode: generates an old-style key, without
|
Compatibility mode: generates an old-style key, without any
|
||||||
any metadata. By default, <span class="command"><strong>dnssec-keygen</strong></span>
|
timing metadata. By default, <span class="command"><strong>dnssec-keygen</strong></span>
|
||||||
will include the key's creation date in the metadata stored
|
will include the key's creation date in the metadata stored with
|
||||||
with the private key, and other dates may be set there as well
|
the private key, and other dates may be set there as well
|
||||||
(publication date, activation date, etc). Keys that include
|
(publication date, activation date, etc). Keys that include this
|
||||||
this data may be incompatible with older versions of BIND; the
|
data may be incompatible with older versions of BIND; the
|
||||||
<code class="option">-C</code> option suppresses them.
|
<code class="option">-C</code> option suppresses them.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
@@ -234,12 +220,6 @@
|
|||||||
Sets the directory in which the key files are to be written.
|
Sets the directory in which the key files are to be written.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term">-k</span></dt>
|
|
||||||
<dd>
|
|
||||||
<p>
|
|
||||||
Deprecated in favor of -T KEY.
|
|
||||||
</p>
|
|
||||||
</dd>
|
|
||||||
<dt><span class="term">-L <em class="replaceable"><code>ttl</code></em></span></dt>
|
<dt><span class="term">-L <em class="replaceable"><code>ttl</code></em></span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
@@ -253,13 +233,24 @@
|
|||||||
or <code class="literal">none</code> is the same as leaving it unset.
|
or <code class="literal">none</code> is the same as leaving it unset.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
|
<dt><span class="term">-n <em class="replaceable"><code>nametype</code></em></span></dt>
|
||||||
|
<dd>
|
||||||
|
<p>
|
||||||
|
Specifies the owner type of the key. The value of
|
||||||
|
<code class="option">nametype</code> must either be ZONE (for a DNSSEC
|
||||||
|
zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated
|
||||||
|
with a host (KEY)), USER (for a key associated with a
|
||||||
|
user(KEY)) or OTHER (DNSKEY). These values are case
|
||||||
|
insensitive. Defaults to ZONE for DNSKEY generation.
|
||||||
|
</p>
|
||||||
|
</dd>
|
||||||
<dt><span class="term">-p <em class="replaceable"><code>protocol</code></em></span></dt>
|
<dt><span class="term">-p <em class="replaceable"><code>protocol</code></em></span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Sets the protocol value for the generated key. The protocol
|
Sets the protocol value for the generated key, for use
|
||||||
is a number between 0 and 255. The default is 3 (DNSSEC).
|
with <code class="option">-T KEY</code>. The protocol is a number between 0
|
||||||
Other possible values for this argument are listed in
|
and 255. The default is 3 (DNSSEC). Other possible values for
|
||||||
RFC 2535 and its successors.
|
this argument are listed in RFC 2535 and its successors.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term">-q</span></dt>
|
<dt><span class="term">-q</span></dt>
|
||||||
@@ -306,26 +297,15 @@
|
|||||||
default is DNSKEY when using a DNSSEC algorithm, but it can be
|
default is DNSKEY when using a DNSSEC algorithm, but it can be
|
||||||
overridden to KEY for use with SIG(0).
|
overridden to KEY for use with SIG(0).
|
||||||
</p>
|
</p>
|
||||||
<p>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Specifying any TSIG algorithm (HMAC-* or DH) with
|
|
||||||
<code class="option">-a</code> forces this option to KEY.
|
|
||||||
</p>
|
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term">-t <em class="replaceable"><code>type</code></em></span></dt>
|
<dt><span class="term">-t <em class="replaceable"><code>type</code></em></span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Indicates the use of the key. <code class="option">type</code> must be
|
Indicates the use of the key, for use with <code class="option">-T
|
||||||
one of AUTHCONF, NOAUTHCONF, NOAUTH, or NOCONF. The default
|
KEY</code>. <code class="option">type</code> must be one of AUTHCONF,
|
||||||
is AUTHCONF. AUTH refers to the ability to authenticate
|
NOAUTHCONF, NOAUTH, or NOCONF. The default is AUTHCONF. AUTH
|
||||||
data, and CONF the ability to encrypt data.
|
refers to the ability to authenticate data, and CONF the ability
|
||||||
</p>
|
to encrypt data.
|
||||||
</dd>
|
|
||||||
<dt><span class="term">-v <em class="replaceable"><code>level</code></em></span></dt>
|
|
||||||
<dd>
|
|
||||||
<p>
|
|
||||||
Sets the debugging level.
|
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term">-V</span></dt>
|
<dt><span class="term">-V</span></dt>
|
||||||
@@ -334,6 +314,12 @@
|
|||||||
Prints version information.
|
Prints version information.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
|
<dt><span class="term">-v <em class="replaceable"><code>level</code></em></span></dt>
|
||||||
|
<dd>
|
||||||
|
<p>
|
||||||
|
Sets the debugging level.
|
||||||
|
</p>
|
||||||
|
</dd>
|
||||||
</dl></div>
|
</dl></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -476,10 +462,12 @@
|
|||||||
key.
|
key.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
The <code class="filename">.key</code> file contains a DNS KEY record
|
The <code class="filename">.key</code> file contains a DNSKEY or KEY record.
|
||||||
that
|
When a zone is being signed by <span class="command"><strong>named</strong></span>
|
||||||
can be inserted into a zone file (directly or with a $INCLUDE
|
or <span class="command"><strong>dnssec-signzone</strong></span> <code class="option">-S</code>, DNSKEY
|
||||||
statement).
|
records are included automatically. In other cases,
|
||||||
|
the <code class="filename">.key</code> file can be inserted into a zone file
|
||||||
|
manually or with a <strong class="userinput"><code>$INCLUDE</code></strong> statement.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
The <code class="filename">.private</code> file contains
|
The <code class="filename">.private</code> file contains
|
||||||
@@ -487,22 +475,17 @@
|
|||||||
fields. For obvious security reasons, this file does not have
|
fields. For obvious security reasons, this file does not have
|
||||||
general read permission.
|
general read permission.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
|
||||||
Both <code class="filename">.key</code> and <code class="filename">.private</code>
|
|
||||||
files are generated for symmetric cryptography algorithms such as
|
|
||||||
HMAC-MD5, even though the public and private key are equivalent.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="refsection">
|
<div class="refsection">
|
||||||
<a name="id-1.11"></a><h2>EXAMPLE</h2>
|
<a name="id-1.11"></a><h2>EXAMPLE</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
To generate an ECDSAP256SHA256 key for the domain
|
To generate an ECDSAP256SHA256 zone-signing key for the zone
|
||||||
<strong class="userinput"><code>example.com</code></strong>, the following command would be
|
<strong class="userinput"><code>example.com</code></strong>, issue the command:
|
||||||
issued:
|
|
||||||
</p>
|
</p>
|
||||||
<p><strong class="userinput"><code>dnssec-keygen -a ECDSAP256SHA256 -n ZONE example.com</code></strong>
|
<p>
|
||||||
|
<strong class="userinput"><code>dnssec-keygen -a ECDSAP256SHA256 example.com</code></strong>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
The command would print a string of the form:
|
The command would print a string of the form:
|
||||||
@@ -515,6 +498,12 @@
|
|||||||
and
|
and
|
||||||
<code class="filename">Kexample.com.+013+26160.private</code>.
|
<code class="filename">Kexample.com.+013+26160.private</code>.
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
To generate a matching key-signing key, issue the command:
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<strong class="userinput"><code>dnssec-keygen -a ECDSAP256SHA256 -f KSK example.com</code></strong>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="refsection">
|
<div class="refsection">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{0EB1727E-2BBD-47A6-AD12-418F9DEB0531}</ProjectGuid>
|
<ProjectGuid>{0EB1727E-2BBD-47A6-AD12-418F9DEB0531}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>cds</RootNamespace>
|
<RootNamespace>cds</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -20,18 +20,21 @@
|
|||||||
<ProjectGuid>{2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}</ProjectGuid>
|
<ProjectGuid>{2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>dnssectool</RootNamespace>
|
<RootNamespace>dnssectool</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{6E6297F4-69D7-4533-85E1-BD17C30017C8}</ProjectGuid>
|
<ProjectGuid>{6E6297F4-69D7-4533-85E1-BD17C30017C8}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>dsfromkey</RootNamespace>
|
<RootNamespace>dsfromkey</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{AB6690A0-055E-458f-BAC5-BF38BCC5834F}</ProjectGuid>
|
<ProjectGuid>{AB6690A0-055E-458f-BAC5-BF38BCC5834F}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>importkey</RootNamespace>
|
<RootNamespace>importkey</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{17455DC6-5FBB-47C3-8F44-7DB574A188D3}</ProjectGuid>
|
<ProjectGuid>{17455DC6-5FBB-47C3-8F44-7DB574A188D3}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>keyfromlabel</RootNamespace>
|
<RootNamespace>keyfromlabel</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{0BF11E21-168C-4CAA-B784-429D126BBAE5}</ProjectGuid>
|
<ProjectGuid>{0BF11E21-168C-4CAA-B784-429D126BBAE5}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>keygen</RootNamespace>
|
<RootNamespace>keygen</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{D171F185-D3C2-4463-9CF3-ED1D0B1D6832}</ProjectGuid>
|
<ProjectGuid>{D171F185-D3C2-4463-9CF3-ED1D0B1D6832}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>revoke</RootNamespace>
|
<RootNamespace>revoke</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{03FB7588-C5A7-4572-968F-14F1206BC69C}</ProjectGuid>
|
<ProjectGuid>{03FB7588-C5A7-4572-968F-14F1206BC69C}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>settime</RootNamespace>
|
<RootNamespace>settime</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{205ED8A9-2E4C-41CC-9385-F3613402AA90}</ProjectGuid>
|
<ProjectGuid>{205ED8A9-2E4C-41CC-9385-F3613402AA90}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>signzone</RootNamespace>
|
<RootNamespace>signzone</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{FD653434-F1A8-44A9-85B2-A7468491DA6D}</ProjectGuid>
|
<ProjectGuid>{FD653434-F1A8-44A9-85B2-A7468491DA6D}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>verify</RootNamespace>
|
<RootNamespace>verify</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
+10
-4
@@ -46,13 +46,14 @@ CINCLUDES = -I${srcdir}/include -I${srcdir}/unix/include -I. \
|
|||||||
${NS_INCLUDES} ${DNS_INCLUDES} \
|
${NS_INCLUDES} ${DNS_INCLUDES} \
|
||||||
${BIND9_INCLUDES} ${ISCCFG_INCLUDES} ${ISCCC_INCLUDES} \
|
${BIND9_INCLUDES} ${ISCCFG_INCLUDES} ${ISCCC_INCLUDES} \
|
||||||
${ISC_INCLUDES} ${DLZDRIVER_INCLUDES} \
|
${ISC_INCLUDES} ${DLZDRIVER_INCLUDES} \
|
||||||
${DBDRIVER_INCLUDES} @OPENSSL_INCLUDES@
|
${DBDRIVER_INCLUDES} ${MAXMINDDB_CFLAGS} \
|
||||||
|
@OPENSSL_INCLUDES@
|
||||||
|
|
||||||
CDEFINES = @CONTRIB_DLZ@
|
CDEFINES = @CONTRIB_DLZ@
|
||||||
|
|
||||||
CWARNINGS =
|
CWARNINGS =
|
||||||
|
|
||||||
DNSLIBS = ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
|
DNSLIBS = ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
|
||||||
ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
|
ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
|
||||||
ISCCCLIBS = ../../lib/isccc/libisccc.@A@
|
ISCCCLIBS = ../../lib/isccc/libisccc.@A@
|
||||||
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
||||||
@@ -85,9 +86,11 @@ SUBDIRS = unix
|
|||||||
TARGETS = named@EXEEXT@
|
TARGETS = named@EXEEXT@
|
||||||
|
|
||||||
GEOIPLINKOBJS = geoip.@O@
|
GEOIPLINKOBJS = geoip.@O@
|
||||||
|
GEOIP2LINKOBJS = geoip.@O@
|
||||||
|
|
||||||
OBJS = builtin.@O@ config.@O@ control.@O@ \
|
OBJS = builtin.@O@ config.@O@ control.@O@ \
|
||||||
controlconf.@O@ fuzz.@O@ @GEOIPLINKOBJS@ \
|
controlconf.@O@ fuzz.@O@ \
|
||||||
|
@GEOIPLINKOBJS@ @GEOIP2LINKOBJS@ \
|
||||||
log.@O@ logconf.@O@ main.@O@ \
|
log.@O@ logconf.@O@ main.@O@ \
|
||||||
server.@O@ statschannel.@O@ \
|
server.@O@ statschannel.@O@ \
|
||||||
tkeyconf.@O@ tsigconf.@O@ zoneconf.@O@ \
|
tkeyconf.@O@ tsigconf.@O@ zoneconf.@O@ \
|
||||||
@@ -98,9 +101,11 @@ UOBJS = unix/os.@O@ unix/dlz_dlopen_driver.@O@
|
|||||||
SYMOBJS = symtbl.@O@
|
SYMOBJS = symtbl.@O@
|
||||||
|
|
||||||
GEOIPLINKSRCS = geoip.c
|
GEOIPLINKSRCS = geoip.c
|
||||||
|
GEOIP2LINKSRCS = geoip.c
|
||||||
|
|
||||||
SRCS = builtin.c config.c control.c \
|
SRCS = builtin.c config.c control.c \
|
||||||
controlconf.c fuzz.c @GEOIPLINKSRCS@ \
|
controlconf.c fuzz.c \
|
||||||
|
@GEOIPLINKSRCS@ @GEOIP2LINKSRCS@ \
|
||||||
log.c logconf.c main.c \
|
log.c logconf.c main.c \
|
||||||
server.c statschannel.c \
|
server.c statschannel.c \
|
||||||
tkeyconf.c tsigconf.c zoneconf.c \
|
tkeyconf.c tsigconf.c zoneconf.c \
|
||||||
@@ -132,6 +137,7 @@ config.@O@: config.c
|
|||||||
-DDYNDB_LIBDIR=\"@libdir@/bind\" \
|
-DDYNDB_LIBDIR=\"@libdir@/bind\" \
|
||||||
-DNAMED_LOCALSTATEDIR=\"${localstatedir}\" \
|
-DNAMED_LOCALSTATEDIR=\"${localstatedir}\" \
|
||||||
-DNAMED_SYSCONFDIR=\"${sysconfdir}\" \
|
-DNAMED_SYSCONFDIR=\"${sysconfdir}\" \
|
||||||
|
-DMAXMINDDB_PREFIX=\"@MAXMINDDB_PREFIX@\" \
|
||||||
-c ${srcdir}/config.c
|
-c ${srcdir}/config.c
|
||||||
|
|
||||||
server.@O@: server.c
|
server.@O@: server.c
|
||||||
|
|||||||
+69
-40
@@ -15,6 +15,15 @@
|
|||||||
<xsl:template match="statistics[@version="3.11"]">
|
<xsl:template match="statistics[@version="3.11"]">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function($) {
|
||||||
|
var wid=0;
|
||||||
|
$('table.zones').each(function(i) { if( $(this).width() > wid ) wid = $(this).width(); return true; });
|
||||||
|
$('table.zones').css('min-width', wid );
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
<xsl:if test="system-property('xsl:vendor')!='Transformiix'">
|
<xsl:if test="system-property('xsl:vendor')!='Transformiix'">
|
||||||
<!-- Non Mozilla specific markup -->
|
<!-- Non Mozilla specific markup -->
|
||||||
<script type="text/javascript" src="https://www.google.com/jsapi"/>
|
<script type="text/javascript" src="https://www.google.com/jsapi"/>
|
||||||
@@ -221,6 +230,22 @@
|
|||||||
background-color: rgb(1,169,206);
|
background-color: rgb(1,169,206);
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
table.zones {
|
||||||
|
border: 1px solid grey;
|
||||||
|
}
|
||||||
|
table.zones td {
|
||||||
|
text-align: right;
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
table.zones td:nth-child(2) {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
table.zones td:nth-child(3) {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
table.zones tr:hover{
|
||||||
|
background-color: #99ddff;
|
||||||
|
}
|
||||||
|
|
||||||
td, th {
|
td, th {
|
||||||
padding-right: 5px;
|
padding-right: 5px;
|
||||||
@@ -293,25 +318,25 @@
|
|||||||
<hr/>
|
<hr/>
|
||||||
<h2>Server Status</h2>
|
<h2>Server Status</h2>
|
||||||
<table class="info">
|
<table class="info">
|
||||||
<tr>
|
<tr class="odd">
|
||||||
<th>Boot time:</th>
|
<th>Boot time:</th>
|
||||||
<td>
|
<td>
|
||||||
<xsl:value-of select="server/boot-time"/>
|
<xsl:value-of select="server/boot-time"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr class="even">
|
||||||
<th>Last reconfigured:</th>
|
<th>Last reconfigured:</th>
|
||||||
<td>
|
<td>
|
||||||
<xsl:value-of select="server/config-time"/>
|
<xsl:value-of select="server/config-time"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr class="odd">
|
||||||
<th>Current time:</th>
|
<th>Current time:</th>
|
||||||
<td>
|
<td>
|
||||||
<xsl:value-of select="server/current-time"/>
|
<xsl:value-of select="server/current-time"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr class="even">
|
||||||
<th>Server version:</th>
|
<th>Server version:</th>
|
||||||
<td>
|
<td>
|
||||||
<xsl:value-of select="server/version"/>
|
<xsl:value-of select="server/version"/>
|
||||||
@@ -330,7 +355,13 @@
|
|||||||
<table class="counters">
|
<table class="counters">
|
||||||
<xsl:for-each select="server/counters[@type="opcode"]/counter[. > 0 or substring(@name,1,3) != 'RES']">
|
<xsl:for-each select="server/counters[@type="opcode"]/counter[. > 0 or substring(@name,1,3) != 'RES']">
|
||||||
<xsl:sort select="." data-type="number" order="descending"/>
|
<xsl:sort select="." data-type="number" order="descending"/>
|
||||||
<tr>
|
<xsl:variable name="css-class0">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="position() mod 2 = 0">even</xsl:when>
|
||||||
|
<xsl:otherwise>odd</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<tr class="{$css-class0}">
|
||||||
<th>
|
<th>
|
||||||
<xsl:value-of select="@name"/>
|
<xsl:value-of select="@name"/>
|
||||||
</th>
|
</th>
|
||||||
@@ -611,13 +642,13 @@
|
|||||||
<br/>
|
<br/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
<xsl:if test="traffic/udp/counters[@type="request-size"]/counter[.>0] or traffic/udp/counters[@type="response-size"]/counter[.>0] or traffic/tcp/counters[@type="request-size"]/counter[.>0] or traffic/tcp/counters[@type="response-size"]/counter[.>0]">
|
<xsl:if test="traffic//udp/counters[@type="request-size"]/counter[.>0] or traffic//udp/counters[@type="response-size"]/counter[.>0] or traffic//tcp/counters[@type="request-size"]/counter[.>0] or traffic//tcp/counters[@type="response-size"]/counter[.>0]">
|
||||||
<h2>Traffic Size Statistics</h2>
|
<h2>Traffic Size Statistics</h2>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="traffic/udp/counters[@type="request-size"]/counter[.>0]">
|
<xsl:if test="traffic//udp/counters[@type="request-size"]/counter[.>0]">
|
||||||
<h4>UDP Requests Received</h4>
|
<h4>UDP Requests Received</h4>
|
||||||
<table class="counters">
|
<table class="counters">
|
||||||
<xsl:for-each select="traffic/udp/counters[@type="request-size"]/counter[.>0]">
|
<xsl:for-each select="traffic//udp/counters[@type="request-size"]/counter[.>0]">
|
||||||
<xsl:variable name="css-class7">
|
<xsl:variable name="css-class7">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="position() mod 2 = 0">even</xsl:when>
|
<xsl:when test="position() mod 2 = 0">even</xsl:when>
|
||||||
@@ -625,6 +656,7 @@
|
|||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:variable>
|
</xsl:variable>
|
||||||
<tr class="{$css-class7}">
|
<tr class="{$css-class7}">
|
||||||
|
<th><xsl:value-of select="local-name(../../..)"/></th>
|
||||||
<th>
|
<th>
|
||||||
<xsl:value-of select="@name"/>
|
<xsl:value-of select="@name"/>
|
||||||
</th>
|
</th>
|
||||||
@@ -636,10 +668,10 @@
|
|||||||
</table>
|
</table>
|
||||||
<br/>
|
<br/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="traffic/udp/counters[@type="response-size"]/counter[.>0]">
|
<xsl:if test="traffic//udp/counters[@type="response-size"]/counter[.>0]">
|
||||||
<h4>UDP Responses Sent</h4>
|
<h4>UDP Responses Sent</h4>
|
||||||
<table class="counters">
|
<table class="counters">
|
||||||
<xsl:for-each select="traffic/udp/counters[@type="response-size"]/counter[.>0]">
|
<xsl:for-each select="traffic//udp/counters[@type="response-size"]/counter[.>0]">
|
||||||
<xsl:variable name="css-class7">
|
<xsl:variable name="css-class7">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="position() mod 2 = 0">even</xsl:when>
|
<xsl:when test="position() mod 2 = 0">even</xsl:when>
|
||||||
@@ -647,6 +679,7 @@
|
|||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:variable>
|
</xsl:variable>
|
||||||
<tr class="{$css-class7}">
|
<tr class="{$css-class7}">
|
||||||
|
<th><xsl:value-of select="local-name(../../..)"/></th>
|
||||||
<th>
|
<th>
|
||||||
<xsl:value-of select="@name"/>
|
<xsl:value-of select="@name"/>
|
||||||
</th>
|
</th>
|
||||||
@@ -658,10 +691,10 @@
|
|||||||
</table>
|
</table>
|
||||||
<br/>
|
<br/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="traffic/tcp/counters[@type="request-size"]/counter[.>0]">
|
<xsl:if test="traffic//tcp/counters[@type="request-size"]/counter[.>0]">
|
||||||
<h4>TCP Requests Received</h4>
|
<h4>TCP Requests Received</h4>
|
||||||
<table class="counters">
|
<table class="counters">
|
||||||
<xsl:for-each select="traffic/tcp/counters[@type="request-size"]/counter[.>0]">
|
<xsl:for-each select="traffic//tcp/counters[@type="request-size"]/counter[.>0]">
|
||||||
<xsl:variable name="css-class7">
|
<xsl:variable name="css-class7">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="position() mod 2 = 0">even</xsl:when>
|
<xsl:when test="position() mod 2 = 0">even</xsl:when>
|
||||||
@@ -669,6 +702,7 @@
|
|||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:variable>
|
</xsl:variable>
|
||||||
<tr class="{$css-class7}">
|
<tr class="{$css-class7}">
|
||||||
|
<th><xsl:value-of select="local-name(../../..)"/></th>
|
||||||
<th>
|
<th>
|
||||||
<xsl:value-of select="@name"/>
|
<xsl:value-of select="@name"/>
|
||||||
</th>
|
</th>
|
||||||
@@ -680,10 +714,10 @@
|
|||||||
</table>
|
</table>
|
||||||
<br/>
|
<br/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="traffic/tcp/counters[@type="response-size"]/counter[.>0]">
|
<xsl:if test="traffic//tcp/counters[@type="response-size"]/counter[.>0]">
|
||||||
<h4>TCP Responses Sent</h4>
|
<h4>TCP Responses Sent</h4>
|
||||||
<table class="counters">
|
<table class="counters">
|
||||||
<xsl:for-each select="traffic/tcp/counters[@type="response-size"]/counter[.>0]">
|
<xsl:for-each select="traffic//tcp/counters[@type="response-size"]/counter[.>0]">
|
||||||
<xsl:variable name="css-class7">
|
<xsl:variable name="css-class7">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="position() mod 2 = 0">even</xsl:when>
|
<xsl:when test="position() mod 2 = 0">even</xsl:when>
|
||||||
@@ -691,6 +725,7 @@
|
|||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:variable>
|
</xsl:variable>
|
||||||
<tr class="{$css-class7}">
|
<tr class="{$css-class7}">
|
||||||
|
<th><xsl:value-of select="local-name(../../..)"/></th>
|
||||||
<th>
|
<th>
|
||||||
<xsl:value-of select="@name"/>
|
<xsl:value-of select="@name"/>
|
||||||
</th>
|
</th>
|
||||||
@@ -724,35 +759,29 @@
|
|||||||
</table>
|
</table>
|
||||||
<br/>
|
<br/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:for-each select="views/view">
|
<xsl:if test="views/view/zones/zone">
|
||||||
<xsl:if test="zones/zone">
|
<xsl:for-each select="views/view">
|
||||||
<h3>Zones for View <xsl:value-of select="@name"/></h3>
|
<h3>Zones for View <xsl:value-of select="@name"/></h3>
|
||||||
<table class="zones">
|
<table class="zones">
|
||||||
<tr>
|
<thead><tr><th>Name</th><th>Class</th><th>Type</th><th>Serial</th></tr></thead>
|
||||||
<th>Name</th>
|
<tbody>
|
||||||
<th>Class</th>
|
<xsl:for-each select="zones/zone">
|
||||||
<th>Type</th>
|
<xsl:variable name="css-class15">
|
||||||
<th>Serial</th>
|
<xsl:choose>
|
||||||
</tr>
|
<xsl:when test="position() mod 2 = 0">even</xsl:when>
|
||||||
<xsl:for-each select="zones/zone">
|
<xsl:otherwise>odd</xsl:otherwise>
|
||||||
<tr>
|
</xsl:choose>
|
||||||
<td>
|
</xsl:variable>
|
||||||
<xsl:value-of select="@name"/>
|
<tr class="{$css-class15}">
|
||||||
</td>
|
<td><xsl:value-of select="@name"/></td>
|
||||||
<td>
|
<td><xsl:value-of select="@rdataclass"/></td>
|
||||||
<xsl:value-of select="@rdataclass"/>
|
<td><xsl:value-of select="type"/></td>
|
||||||
</td>
|
<td><xsl:value-of select="serial"/></td></tr>
|
||||||
<td>
|
</xsl:for-each>
|
||||||
<xsl:value-of select="type"/>
|
</tbody>
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<xsl:value-of select="serial"/>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</xsl:for-each>
|
|
||||||
</table>
|
</table>
|
||||||
</xsl:if>
|
</xsl:for-each>
|
||||||
</xsl:for-each>
|
</xsl:if>
|
||||||
<xsl:if test="views/view[zones/zone/counters[@type="qtype"]/counter >0]">
|
<xsl:if test="views/view[zones/zone/counters[@type="qtype"]/counter >0]">
|
||||||
<h2>Received QTYPES per view/zone</h2>
|
<h2>Received QTYPES per view/zone</h2>
|
||||||
<xsl:for-each select="views/view[zones/zone/counters[@type="qtype"]/counter >0]">
|
<xsl:for-each select="views/view[zones/zone/counters[@type="qtype"]/counter >0]">
|
||||||
|
|||||||
+65
-36
@@ -20,6 +20,15 @@ static char xslmsg[] =
|
|||||||
" <xsl:template match=\"statistics[@version="3.11"]\">\n"
|
" <xsl:template match=\"statistics[@version="3.11"]\">\n"
|
||||||
" <html>\n"
|
" <html>\n"
|
||||||
" <head>\n"
|
" <head>\n"
|
||||||
|
" <script type=\"text/javascript\" src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js\"></script>\n"
|
||||||
|
" <script type=\"text/javascript\">\n"
|
||||||
|
" $(function($) {\n"
|
||||||
|
" var wid=0;\n"
|
||||||
|
" $('table.zones').each(function(i) { if( $(this).width() > wid ) wid = $(this).width(); return true; });\n"
|
||||||
|
" $('table.zones').css('min-width', wid );\n"
|
||||||
|
" });\n"
|
||||||
|
" </script>\n"
|
||||||
|
"\n"
|
||||||
" <xsl:if test=\"system-property('xsl:vendor')!='Transformiix'\">\n"
|
" <xsl:if test=\"system-property('xsl:vendor')!='Transformiix'\">\n"
|
||||||
" <!-- Non Mozilla specific markup -->\n"
|
" <!-- Non Mozilla specific markup -->\n"
|
||||||
" <script type=\"text/javascript\" src=\"https://www.google.com/jsapi\"/>\n"
|
" <script type=\"text/javascript\" src=\"https://www.google.com/jsapi\"/>\n"
|
||||||
@@ -226,6 +235,22 @@ static char xslmsg[] =
|
|||||||
" background-color: rgb(1,169,206);\n"
|
" background-color: rgb(1,169,206);\n"
|
||||||
" color: #ffffff;\n"
|
" color: #ffffff;\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
|
" table.zones {\n"
|
||||||
|
" border: 1px solid grey;\n"
|
||||||
|
" }\n"
|
||||||
|
" table.zones td {\n"
|
||||||
|
" text-align: right;\n"
|
||||||
|
" font-family: monospace;\n"
|
||||||
|
" }\n"
|
||||||
|
" table.zones td:nth-child(2) {\n"
|
||||||
|
" text-align: center;\n"
|
||||||
|
" }\n"
|
||||||
|
" table.zones td:nth-child(3) {\n"
|
||||||
|
" text-align: left;\n"
|
||||||
|
" }\n"
|
||||||
|
" table.zones tr:hover{\n"
|
||||||
|
" background-color: #99ddff;\n"
|
||||||
|
" }\n"
|
||||||
"\n"
|
"\n"
|
||||||
" td, th {\n"
|
" td, th {\n"
|
||||||
" padding-right: 5px;\n"
|
" padding-right: 5px;\n"
|
||||||
@@ -298,25 +323,25 @@ static char xslmsg[] =
|
|||||||
" <hr/>\n"
|
" <hr/>\n"
|
||||||
" <h2>Server Status</h2>\n"
|
" <h2>Server Status</h2>\n"
|
||||||
" <table class=\"info\">\n"
|
" <table class=\"info\">\n"
|
||||||
" <tr>\n"
|
" <tr class=\"odd\">\n"
|
||||||
" <th>Boot time:</th>\n"
|
" <th>Boot time:</th>\n"
|
||||||
" <td>\n"
|
" <td>\n"
|
||||||
" <xsl:value-of select=\"server/boot-time\"/>\n"
|
" <xsl:value-of select=\"server/boot-time\"/>\n"
|
||||||
" </td>\n"
|
" </td>\n"
|
||||||
" </tr>\n"
|
" </tr>\n"
|
||||||
" <tr>\n"
|
" <tr class=\"even\">\n"
|
||||||
" <th>Last reconfigured:</th>\n"
|
" <th>Last reconfigured:</th>\n"
|
||||||
" <td>\n"
|
" <td>\n"
|
||||||
" <xsl:value-of select=\"server/config-time\"/>\n"
|
" <xsl:value-of select=\"server/config-time\"/>\n"
|
||||||
" </td>\n"
|
" </td>\n"
|
||||||
" </tr>\n"
|
" </tr>\n"
|
||||||
" <tr>\n"
|
" <tr class=\"odd\">\n"
|
||||||
" <th>Current time:</th>\n"
|
" <th>Current time:</th>\n"
|
||||||
" <td>\n"
|
" <td>\n"
|
||||||
" <xsl:value-of select=\"server/current-time\"/>\n"
|
" <xsl:value-of select=\"server/current-time\"/>\n"
|
||||||
" </td>\n"
|
" </td>\n"
|
||||||
" </tr>\n"
|
" </tr>\n"
|
||||||
" <tr>\n"
|
" <tr class=\"even\">\n"
|
||||||
" <th>Server version:</th>\n"
|
" <th>Server version:</th>\n"
|
||||||
" <td>\n"
|
" <td>\n"
|
||||||
" <xsl:value-of select=\"server/version\"/>\n"
|
" <xsl:value-of select=\"server/version\"/>\n"
|
||||||
@@ -335,7 +360,13 @@ static char xslmsg[] =
|
|||||||
" <table class=\"counters\">\n"
|
" <table class=\"counters\">\n"
|
||||||
" <xsl:for-each select=\"server/counters[@type="opcode"]/counter[. > 0 or substring(@name,1,3) != 'RES']\">\n"
|
" <xsl:for-each select=\"server/counters[@type="opcode"]/counter[. > 0 or substring(@name,1,3) != 'RES']\">\n"
|
||||||
" <xsl:sort select=\".\" data-type=\"number\" order=\"descending\"/>\n"
|
" <xsl:sort select=\".\" data-type=\"number\" order=\"descending\"/>\n"
|
||||||
" <tr>\n"
|
" <xsl:variable name=\"css-class0\">\n"
|
||||||
|
" <xsl:choose>\n"
|
||||||
|
" <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
|
||||||
|
" <xsl:otherwise>odd</xsl:otherwise>\n"
|
||||||
|
" </xsl:choose>\n"
|
||||||
|
" </xsl:variable>\n"
|
||||||
|
" <tr class=\"{$css-class0}\">\n"
|
||||||
" <th>\n"
|
" <th>\n"
|
||||||
" <xsl:value-of select=\"@name\"/>\n"
|
" <xsl:value-of select=\"@name\"/>\n"
|
||||||
" </th>\n"
|
" </th>\n"
|
||||||
@@ -616,13 +647,13 @@ static char xslmsg[] =
|
|||||||
" <br/>\n"
|
" <br/>\n"
|
||||||
" </xsl:if>\n"
|
" </xsl:if>\n"
|
||||||
" </xsl:for-each>\n"
|
" </xsl:for-each>\n"
|
||||||
" <xsl:if test=\"traffic/udp/counters[@type="request-size"]/counter[.>0] or traffic/udp/counters[@type="response-size"]/counter[.>0] or traffic/tcp/counters[@type="request-size"]/counter[.>0] or traffic/tcp/counters[@type="response-size"]/counter[.>0]\">\n"
|
" <xsl:if test=\"traffic//udp/counters[@type="request-size"]/counter[.>0] or traffic//udp/counters[@type="response-size"]/counter[.>0] or traffic//tcp/counters[@type="request-size"]/counter[.>0] or traffic//tcp/counters[@type="response-size"]/counter[.>0]\">\n"
|
||||||
" <h2>Traffic Size Statistics</h2>\n"
|
" <h2>Traffic Size Statistics</h2>\n"
|
||||||
" </xsl:if>\n"
|
" </xsl:if>\n"
|
||||||
" <xsl:if test=\"traffic/udp/counters[@type="request-size"]/counter[.>0]\">\n"
|
" <xsl:if test=\"traffic//udp/counters[@type="request-size"]/counter[.>0]\">\n"
|
||||||
" <h4>UDP Requests Received</h4>\n"
|
" <h4>UDP Requests Received</h4>\n"
|
||||||
" <table class=\"counters\">\n"
|
" <table class=\"counters\">\n"
|
||||||
" <xsl:for-each select=\"traffic/udp/counters[@type="request-size"]/counter[.>0]\">\n"
|
" <xsl:for-each select=\"traffic//udp/counters[@type="request-size"]/counter[.>0]\">\n"
|
||||||
" <xsl:variable name=\"css-class7\">\n"
|
" <xsl:variable name=\"css-class7\">\n"
|
||||||
" <xsl:choose>\n"
|
" <xsl:choose>\n"
|
||||||
" <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
|
" <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
|
||||||
@@ -630,6 +661,7 @@ static char xslmsg[] =
|
|||||||
" </xsl:choose>\n"
|
" </xsl:choose>\n"
|
||||||
" </xsl:variable>\n"
|
" </xsl:variable>\n"
|
||||||
" <tr class=\"{$css-class7}\">\n"
|
" <tr class=\"{$css-class7}\">\n"
|
||||||
|
" <th><xsl:value-of select=\"local-name(../../..)\"/></th>\n"
|
||||||
" <th>\n"
|
" <th>\n"
|
||||||
" <xsl:value-of select=\"@name\"/>\n"
|
" <xsl:value-of select=\"@name\"/>\n"
|
||||||
" </th>\n"
|
" </th>\n"
|
||||||
@@ -641,10 +673,10 @@ static char xslmsg[] =
|
|||||||
" </table>\n"
|
" </table>\n"
|
||||||
" <br/>\n"
|
" <br/>\n"
|
||||||
" </xsl:if>\n"
|
" </xsl:if>\n"
|
||||||
" <xsl:if test=\"traffic/udp/counters[@type="response-size"]/counter[.>0]\">\n"
|
" <xsl:if test=\"traffic//udp/counters[@type="response-size"]/counter[.>0]\">\n"
|
||||||
" <h4>UDP Responses Sent</h4>\n"
|
" <h4>UDP Responses Sent</h4>\n"
|
||||||
" <table class=\"counters\">\n"
|
" <table class=\"counters\">\n"
|
||||||
" <xsl:for-each select=\"traffic/udp/counters[@type="response-size"]/counter[.>0]\">\n"
|
" <xsl:for-each select=\"traffic//udp/counters[@type="response-size"]/counter[.>0]\">\n"
|
||||||
" <xsl:variable name=\"css-class7\">\n"
|
" <xsl:variable name=\"css-class7\">\n"
|
||||||
" <xsl:choose>\n"
|
" <xsl:choose>\n"
|
||||||
" <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
|
" <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
|
||||||
@@ -652,6 +684,7 @@ static char xslmsg[] =
|
|||||||
" </xsl:choose>\n"
|
" </xsl:choose>\n"
|
||||||
" </xsl:variable>\n"
|
" </xsl:variable>\n"
|
||||||
" <tr class=\"{$css-class7}\">\n"
|
" <tr class=\"{$css-class7}\">\n"
|
||||||
|
" <th><xsl:value-of select=\"local-name(../../..)\"/></th>\n"
|
||||||
" <th>\n"
|
" <th>\n"
|
||||||
" <xsl:value-of select=\"@name\"/>\n"
|
" <xsl:value-of select=\"@name\"/>\n"
|
||||||
" </th>\n"
|
" </th>\n"
|
||||||
@@ -663,10 +696,10 @@ static char xslmsg[] =
|
|||||||
" </table>\n"
|
" </table>\n"
|
||||||
" <br/>\n"
|
" <br/>\n"
|
||||||
" </xsl:if>\n"
|
" </xsl:if>\n"
|
||||||
" <xsl:if test=\"traffic/tcp/counters[@type="request-size"]/counter[.>0]\">\n"
|
" <xsl:if test=\"traffic//tcp/counters[@type="request-size"]/counter[.>0]\">\n"
|
||||||
" <h4>TCP Requests Received</h4>\n"
|
" <h4>TCP Requests Received</h4>\n"
|
||||||
" <table class=\"counters\">\n"
|
" <table class=\"counters\">\n"
|
||||||
" <xsl:for-each select=\"traffic/tcp/counters[@type="request-size"]/counter[.>0]\">\n"
|
" <xsl:for-each select=\"traffic//tcp/counters[@type="request-size"]/counter[.>0]\">\n"
|
||||||
" <xsl:variable name=\"css-class7\">\n"
|
" <xsl:variable name=\"css-class7\">\n"
|
||||||
" <xsl:choose>\n"
|
" <xsl:choose>\n"
|
||||||
" <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
|
" <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
|
||||||
@@ -674,6 +707,7 @@ static char xslmsg[] =
|
|||||||
" </xsl:choose>\n"
|
" </xsl:choose>\n"
|
||||||
" </xsl:variable>\n"
|
" </xsl:variable>\n"
|
||||||
" <tr class=\"{$css-class7}\">\n"
|
" <tr class=\"{$css-class7}\">\n"
|
||||||
|
" <th><xsl:value-of select=\"local-name(../../..)\"/></th>\n"
|
||||||
" <th>\n"
|
" <th>\n"
|
||||||
" <xsl:value-of select=\"@name\"/>\n"
|
" <xsl:value-of select=\"@name\"/>\n"
|
||||||
" </th>\n"
|
" </th>\n"
|
||||||
@@ -685,10 +719,10 @@ static char xslmsg[] =
|
|||||||
" </table>\n"
|
" </table>\n"
|
||||||
" <br/>\n"
|
" <br/>\n"
|
||||||
" </xsl:if>\n"
|
" </xsl:if>\n"
|
||||||
" <xsl:if test=\"traffic/tcp/counters[@type="response-size"]/counter[.>0]\">\n"
|
" <xsl:if test=\"traffic//tcp/counters[@type="response-size"]/counter[.>0]\">\n"
|
||||||
" <h4>TCP Responses Sent</h4>\n"
|
" <h4>TCP Responses Sent</h4>\n"
|
||||||
" <table class=\"counters\">\n"
|
" <table class=\"counters\">\n"
|
||||||
" <xsl:for-each select=\"traffic/tcp/counters[@type="response-size"]/counter[.>0]\">\n"
|
" <xsl:for-each select=\"traffic//tcp/counters[@type="response-size"]/counter[.>0]\">\n"
|
||||||
" <xsl:variable name=\"css-class7\">\n"
|
" <xsl:variable name=\"css-class7\">\n"
|
||||||
" <xsl:choose>\n"
|
" <xsl:choose>\n"
|
||||||
" <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
|
" <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
|
||||||
@@ -696,6 +730,7 @@ static char xslmsg[] =
|
|||||||
" </xsl:choose>\n"
|
" </xsl:choose>\n"
|
||||||
" </xsl:variable>\n"
|
" </xsl:variable>\n"
|
||||||
" <tr class=\"{$css-class7}\">\n"
|
" <tr class=\"{$css-class7}\">\n"
|
||||||
|
" <th><xsl:value-of select=\"local-name(../../..)\"/></th>\n"
|
||||||
" <th>\n"
|
" <th>\n"
|
||||||
" <xsl:value-of select=\"@name\"/>\n"
|
" <xsl:value-of select=\"@name\"/>\n"
|
||||||
" </th>\n"
|
" </th>\n"
|
||||||
@@ -729,35 +764,29 @@ static char xslmsg[] =
|
|||||||
" </table>\n"
|
" </table>\n"
|
||||||
" <br/>\n"
|
" <br/>\n"
|
||||||
" </xsl:if>\n"
|
" </xsl:if>\n"
|
||||||
|
" <xsl:if test=\"views/view/zones/zone\">\n"
|
||||||
" <xsl:for-each select=\"views/view\">\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"
|
" <h3>Zones for View <xsl:value-of select=\"@name\"/></h3>\n"
|
||||||
" <table class=\"zones\">\n"
|
" <table class=\"zones\">\n"
|
||||||
" <tr>\n"
|
" <thead><tr><th>Name</th><th>Class</th><th>Type</th><th>Serial</th></tr></thead>\n"
|
||||||
" <th>Name</th>\n"
|
" <tbody>\n"
|
||||||
" <th>Class</th>\n"
|
|
||||||
" <th>Type</th>\n"
|
|
||||||
" <th>Serial</th>\n"
|
|
||||||
" </tr>\n"
|
|
||||||
" <xsl:for-each select=\"zones/zone\">\n"
|
" <xsl:for-each select=\"zones/zone\">\n"
|
||||||
" <tr>\n"
|
" <xsl:variable name=\"css-class15\">\n"
|
||||||
" <td>\n"
|
" <xsl:choose>\n"
|
||||||
" <xsl:value-of select=\"@name\"/>\n"
|
" <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
|
||||||
" </td>\n"
|
" <xsl:otherwise>odd</xsl:otherwise>\n"
|
||||||
" <td>\n"
|
" </xsl:choose>\n"
|
||||||
" <xsl:value-of select=\"@rdataclass\"/>\n"
|
" </xsl:variable>\n"
|
||||||
" </td>\n"
|
" <tr class=\"{$css-class15}\">\n"
|
||||||
" <td>\n"
|
" <td><xsl:value-of select=\"@name\"/></td>\n"
|
||||||
" <xsl:value-of select=\"type\"/>\n"
|
" <td><xsl:value-of select=\"@rdataclass\"/></td>\n"
|
||||||
" </td>\n"
|
" <td><xsl:value-of select=\"type\"/></td>\n"
|
||||||
" <td>\n"
|
" <td><xsl:value-of select=\"serial\"/></td></tr>\n"
|
||||||
" <xsl:value-of select=\"serial\"/>\n"
|
|
||||||
" </td>\n"
|
|
||||||
" </tr>\n"
|
|
||||||
" </xsl:for-each>\n"
|
" </xsl:for-each>\n"
|
||||||
|
" </tbody>\n"
|
||||||
" </table>\n"
|
" </table>\n"
|
||||||
" </xsl:if>\n"
|
|
||||||
" </xsl:for-each>\n"
|
" </xsl:for-each>\n"
|
||||||
|
" </xsl:if>\n"
|
||||||
" <xsl:if test=\"views/view[zones/zone/counters[@type="qtype"]/counter >0]\">\n"
|
" <xsl:if test=\"views/view[zones/zone/counters[@type="qtype"]/counter >0]\">\n"
|
||||||
" <h2>Received QTYPES per view/zone</h2>\n"
|
" <h2>Received QTYPES per view/zone</h2>\n"
|
||||||
" <xsl:for-each select=\"views/view[zones/zone/counters[@type="qtype"]/counter >0]\">\n"
|
" <xsl:for-each select=\"views/view[zones/zone/counters[@type="qtype"]/counter >0]\">\n"
|
||||||
|
|||||||
+9
-5
@@ -66,6 +66,11 @@ options {\n\
|
|||||||
#ifndef WIN32
|
#ifndef WIN32
|
||||||
" files unlimited;\n"
|
" files unlimited;\n"
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(HAVE_GEOIP2) && !defined(WIN32)
|
||||||
|
" geoip-directory \"" MAXMINDDB_PREFIX "/share/GeoIP2\";\n"
|
||||||
|
#elif defined(HAVE_GEOIP2)
|
||||||
|
" geoip-directory \".\";\n"
|
||||||
|
#endif
|
||||||
"\
|
"\
|
||||||
# has-old-clients <obsolete>;\n\
|
# has-old-clients <obsolete>;\n\
|
||||||
heartbeat-interval 60;\n\
|
heartbeat-interval 60;\n\
|
||||||
@@ -154,11 +159,8 @@ options {\n\
|
|||||||
# fetch-glue <obsolete>;\n\
|
# fetch-glue <obsolete>;\n\
|
||||||
fetch-quota-params 100 0.1 0.3 0.7;\n\
|
fetch-quota-params 100 0.1 0.3 0.7;\n\
|
||||||
fetches-per-server 0;\n\
|
fetches-per-server 0;\n\
|
||||||
fetches-per-zone 0;\n"
|
fetches-per-zone 0;\n\
|
||||||
#ifdef HAVE_GEOIP
|
glue-cache yes;\n\
|
||||||
" geoip-use-ecs yes;\n"
|
|
||||||
#endif
|
|
||||||
" glue-cache yes;\n\
|
|
||||||
lame-ttl 600;\n"
|
lame-ttl 600;\n"
|
||||||
#ifdef HAVE_LMDB
|
#ifdef HAVE_LMDB
|
||||||
" lmdb-mapsize 32M;\n"
|
" lmdb-mapsize 32M;\n"
|
||||||
@@ -881,7 +883,9 @@ named_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
|
|||||||
if (stack != NULL)
|
if (stack != NULL)
|
||||||
isc_mem_put(mctx, stack, stackcount * sizeof(*stack));
|
isc_mem_put(mctx, stack, stackcount * sizeof(*stack));
|
||||||
|
|
||||||
|
INSIST(dscpcount == addrcount);
|
||||||
INSIST(keycount == addrcount);
|
INSIST(keycount == addrcount);
|
||||||
|
INSIST(keycount == dscpcount);
|
||||||
|
|
||||||
ipkl->addrs = addrs;
|
ipkl->addrs = addrs;
|
||||||
ipkl->dscps = dscps;
|
ipkl->dscps = dscps;
|
||||||
|
|||||||
+1
-1
@@ -19,7 +19,7 @@
|
|||||||
#ifdef ENABLE_AFL
|
#ifdef ENABLE_AFL
|
||||||
#include <named/globals.h>
|
#include <named/globals.h>
|
||||||
#include <named/server.h>
|
#include <named/server.h>
|
||||||
#include <sys/errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include <isc/app.h>
|
#include <isc/app.h>
|
||||||
#include <isc/condition.h>
|
#include <isc/condition.h>
|
||||||
|
|||||||
+124
-20
@@ -13,20 +13,27 @@
|
|||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
|
#if defined(HAVE_GEOIP2)
|
||||||
|
#include <maxminddb.h>
|
||||||
|
#elif defined(HAVE_GEOIP)
|
||||||
|
#include <GeoIP.h>
|
||||||
|
#include <GeoIPCity.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <isc/print.h>
|
||||||
|
#include <isc/string.h>
|
||||||
#include <isc/util.h>
|
#include <isc/util.h>
|
||||||
|
|
||||||
|
#include <dns/geoip.h>
|
||||||
|
|
||||||
#include <named/log.h>
|
#include <named/log.h>
|
||||||
#include <named/geoip.h>
|
#include <named/geoip.h>
|
||||||
|
|
||||||
#include <dns/geoip.h>
|
static dns_geoip_databases_t geoip_table;
|
||||||
|
|
||||||
#ifdef HAVE_GEOIP
|
|
||||||
static dns_geoip_databases_t geoip_table = {
|
|
||||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
|
#if defined(HAVE_GEOIP)
|
||||||
static void
|
static void
|
||||||
init_geoip_db(GeoIP **dbp, GeoIPDBTypes edition, GeoIPDBTypes fallback,
|
init_geoip_db(void **dbp, GeoIPDBTypes edition, GeoIPDBTypes fallback,
|
||||||
GeoIPOptions method, const char *name)
|
GeoIPOptions method, const char *name)
|
||||||
{
|
{
|
||||||
char *info;
|
char *info;
|
||||||
@@ -34,7 +41,7 @@ init_geoip_db(GeoIP **dbp, GeoIPDBTypes edition, GeoIPDBTypes fallback,
|
|||||||
|
|
||||||
REQUIRE(dbp != NULL);
|
REQUIRE(dbp != NULL);
|
||||||
|
|
||||||
db = *dbp;
|
db = (GeoIP *)*dbp;
|
||||||
|
|
||||||
if (db != NULL) {
|
if (db != NULL) {
|
||||||
GeoIP_delete(db);
|
GeoIP_delete(db);
|
||||||
@@ -72,32 +79,97 @@ init_geoip_db(GeoIP **dbp, GeoIPDBTypes edition, GeoIPDBTypes fallback,
|
|||||||
|
|
||||||
*dbp = db;
|
*dbp = db;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
if (fallback != 0)
|
if (fallback != 0) {
|
||||||
init_geoip_db(dbp, fallback, 0, method, name);
|
init_geoip_db(dbp, fallback, 0, method, name);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif /* HAVE_GEOIP */
|
#elif defined(HAVE_GEOIP2)
|
||||||
|
static MMDB_s geoip_country, geoip_city, geoip_as, geoip_isp, geoip_domain;
|
||||||
|
|
||||||
|
static MMDB_s *
|
||||||
|
open_geoip2(const char *dir, const char *dbfile, MMDB_s *mmdb) {
|
||||||
|
char pathbuf[PATH_MAX];
|
||||||
|
unsigned int n;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
n = snprintf(pathbuf, sizeof(pathbuf), "%s/%s", dir, dbfile);
|
||||||
|
if (n >= sizeof(pathbuf)) {
|
||||||
|
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||||
|
NAMED_LOGMODULE_SERVER, ISC_LOG_ERROR,
|
||||||
|
"GeoIP2 database '%s/%s': path too long",
|
||||||
|
dir, dbfile);
|
||||||
|
return (NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = MMDB_open(pathbuf, MMDB_MODE_MMAP, mmdb);
|
||||||
|
if (ret == MMDB_SUCCESS) {
|
||||||
|
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||||
|
NAMED_LOGMODULE_SERVER, ISC_LOG_INFO,
|
||||||
|
"opened GeoIP2 database '%s'", pathbuf);
|
||||||
|
return (mmdb);
|
||||||
|
}
|
||||||
|
|
||||||
|
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||||
|
NAMED_LOGMODULE_SERVER, ISC_LOG_DEBUG(1),
|
||||||
|
"unable to open GeoIP2 database '%s' (status %d)",
|
||||||
|
pathbuf, ret);
|
||||||
|
|
||||||
|
return (NULL);
|
||||||
|
}
|
||||||
|
#endif /* HAVE_GEOIP2 */
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
named_geoip_init(void) {
|
named_geoip_init(void) {
|
||||||
#ifndef HAVE_GEOIP
|
#if defined(HAVE_GEOIP) || defined(HAVE_GEOIP2)
|
||||||
return;
|
if (named_g_geoip == NULL) {
|
||||||
#else
|
|
||||||
GeoIP_cleanup();
|
|
||||||
if (named_g_geoip == NULL)
|
|
||||||
named_g_geoip = &geoip_table;
|
named_g_geoip = &geoip_table;
|
||||||
|
}
|
||||||
|
#if defined(HAVE_GEOIP)
|
||||||
|
GeoIP_cleanup();
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
return;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
named_geoip_load(char *dir) {
|
named_geoip_load(char *dir) {
|
||||||
#ifndef HAVE_GEOIP
|
#if defined(HAVE_GEOIP2)
|
||||||
|
REQUIRE(dir != NULL);
|
||||||
|
|
||||||
UNUSED(dir);
|
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||||
|
NAMED_LOGMODULE_SERVER, ISC_LOG_INFO,
|
||||||
|
"looking for GeoIP2 databases in '%s'", dir);
|
||||||
|
|
||||||
return;
|
named_g_geoip->country = open_geoip2(dir, "GeoIP2-Country.mmdb",
|
||||||
#else
|
&geoip_country);
|
||||||
|
if (named_g_geoip->country == NULL) {
|
||||||
|
named_g_geoip->country = open_geoip2(dir,
|
||||||
|
"GeoLite2-Country.mmdb",
|
||||||
|
&geoip_country);
|
||||||
|
}
|
||||||
|
|
||||||
|
named_g_geoip->city = open_geoip2(dir, "GeoIP2-City.mmdb",
|
||||||
|
&geoip_city);
|
||||||
|
if (named_g_geoip->city == NULL) {
|
||||||
|
named_g_geoip->city = open_geoip2(dir, "GeoLite2-City.mmdb",
|
||||||
|
&geoip_city);
|
||||||
|
}
|
||||||
|
|
||||||
|
named_g_geoip->as = open_geoip2(dir, "GeoIP2-ASN.mmdb", &geoip_as);
|
||||||
|
if (named_g_geoip->as == NULL) {
|
||||||
|
named_g_geoip->as = open_geoip2(dir, "GeoLite2-ASN.mmdb",
|
||||||
|
&geoip_as);
|
||||||
|
}
|
||||||
|
|
||||||
|
named_g_geoip->isp = open_geoip2(dir, "GeoIP2-ISP.mmdb", &geoip_isp);
|
||||||
|
named_g_geoip->domain = open_geoip2(dir, "GeoIP2-Domain.mmdb",
|
||||||
|
&geoip_domain);
|
||||||
|
#elif defined(HAVE_GEOIP)
|
||||||
GeoIPOptions method;
|
GeoIPOptions method;
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
@@ -141,5 +213,37 @@ named_geoip_load(char *dir) {
|
|||||||
method, "Domain");
|
method, "Domain");
|
||||||
init_geoip_db(&named_g_geoip->netspeed, GEOIP_NETSPEED_EDITION, 0,
|
init_geoip_db(&named_g_geoip->netspeed, GEOIP_NETSPEED_EDITION, 0,
|
||||||
method, "NetSpeed");
|
method, "NetSpeed");
|
||||||
#endif /* HAVE_GEOIP */
|
#else
|
||||||
|
UNUSED(dir);
|
||||||
|
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
named_geoip_shutdown(void) {
|
||||||
|
#ifdef HAVE_GEOIP2
|
||||||
|
if (named_g_geoip->country != NULL) {
|
||||||
|
MMDB_close(named_g_geoip->country);
|
||||||
|
named_g_geoip->country = NULL;
|
||||||
|
}
|
||||||
|
if (named_g_geoip->city != NULL) {
|
||||||
|
MMDB_close(named_g_geoip->city);
|
||||||
|
named_g_geoip->city = NULL;
|
||||||
|
}
|
||||||
|
if (named_g_geoip->as != NULL) {
|
||||||
|
MMDB_close(named_g_geoip->as);
|
||||||
|
named_g_geoip->as = NULL;
|
||||||
|
}
|
||||||
|
if (named_g_geoip->isp != NULL) {
|
||||||
|
MMDB_close(named_g_geoip->isp);
|
||||||
|
named_g_geoip->isp = NULL;
|
||||||
|
}
|
||||||
|
if (named_g_geoip->domain != NULL) {
|
||||||
|
MMDB_close(named_g_geoip->domain);
|
||||||
|
named_g_geoip->domain = NULL;
|
||||||
|
}
|
||||||
|
#endif /* HAVE_GEOIP2 */
|
||||||
|
|
||||||
|
dns_geoip_shutdown();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,18 +9,15 @@
|
|||||||
* information regarding copyright ownership.
|
* information regarding copyright ownership.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _GEOIP_H
|
#pragma once
|
||||||
#define _GEOIP_H
|
|
||||||
|
|
||||||
#ifdef HAVE_GEOIP
|
|
||||||
#include <GeoIP.h>
|
|
||||||
#include <GeoIPCity.h>
|
|
||||||
#endif /* HAVE_GEOIP */
|
|
||||||
|
|
||||||
void named_geoip_init(void);
|
|
||||||
void named_geoip_load(char *dir);
|
|
||||||
|
|
||||||
#ifdef HAVE_GEOIP
|
|
||||||
extern dns_geoip_databases_t *named_g_geoip;
|
extern dns_geoip_databases_t *named_g_geoip;
|
||||||
#endif /* HAVE_GEOIP */
|
|
||||||
#endif
|
void
|
||||||
|
named_geoip_init(void);
|
||||||
|
|
||||||
|
void
|
||||||
|
named_geoip_load(char *dir);
|
||||||
|
|
||||||
|
void
|
||||||
|
named_geoip_shutdown(void);
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ EXTERN bool named_g_keepstderr INIT(false);
|
|||||||
|
|
||||||
EXTERN unsigned int named_g_tat_interval INIT(24*3600);
|
EXTERN unsigned int named_g_tat_interval INIT(24*3600);
|
||||||
|
|
||||||
#ifdef HAVE_GEOIP
|
#if defined(HAVE_GEOIP) || defined(HAVE_GEOIP2)
|
||||||
EXTERN dns_geoip_databases_t *named_g_geoip INIT(NULL);
|
EXTERN dns_geoip_databases_t *named_g_geoip INIT(NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
+15
-1
@@ -358,7 +358,7 @@ save_command_line(int argc, char *argv[]) {
|
|||||||
* nearly always be fine.
|
* nearly always be fine.
|
||||||
*/
|
*/
|
||||||
if (quoted || isalnum(*src & 0xff) ||
|
if (quoted || isalnum(*src & 0xff) ||
|
||||||
*src == '-' || *src == '_' ||
|
*src == ',' || *src == '-' || *src == '_' ||
|
||||||
*src == '.' || *src == '/') {
|
*src == '.' || *src == '/') {
|
||||||
*dst++ = *src++;
|
*dst++ = *src++;
|
||||||
quoted = false;
|
quoted = false;
|
||||||
@@ -611,6 +611,9 @@ parse_T_opt(char *option) {
|
|||||||
maxudp = 1460;
|
maxudp = 1460;
|
||||||
} else if (!strncmp(option, "maxudp=", 7)) {
|
} else if (!strncmp(option, "maxudp=", 7)) {
|
||||||
maxudp = atoi(option + 7);
|
maxudp = atoi(option + 7);
|
||||||
|
if (maxudp <= 0) {
|
||||||
|
named_main_earlyfatal("bad maxudp");
|
||||||
|
}
|
||||||
} else if (!strncmp(option, "mkeytimers=", 11)) {
|
} else if (!strncmp(option, "mkeytimers=", 11)) {
|
||||||
p = strtok_r(option + 11, "/", &last);
|
p = strtok_r(option + 11, "/", &last);
|
||||||
if (p == NULL) {
|
if (p == NULL) {
|
||||||
@@ -1360,6 +1363,17 @@ main(int argc, char *argv[]) {
|
|||||||
(void) ProfilerStart(NULL);
|
(void) ProfilerStart(NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
/*
|
||||||
|
* Prevent unbuffered I/O from crippling named performance on Windows
|
||||||
|
* when it is logging to stderr (e.g. in system tests). Use full
|
||||||
|
* buffering (_IOFBF) as line buffering (_IOLBF) is unavailable on
|
||||||
|
* Windows and fflush() is called anyway after each log message gets
|
||||||
|
* written to the default stderr logging channels created by libisc.
|
||||||
|
*/
|
||||||
|
setvbuf(stderr, NULL, _IOFBF, BUFSIZ);
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Record version in core image.
|
* Record version in core image.
|
||||||
* strings named.core | grep "named version:"
|
* strings named.core | grep "named version:"
|
||||||
|
|||||||
+15
-13
@@ -10,12 +10,12 @@
|
|||||||
.\" Title: named.conf
|
.\" Title: named.conf
|
||||||
.\" Author:
|
.\" Author:
|
||||||
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
|
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
|
||||||
.\" Date: 2018-12-07
|
.\" Date: 2019-07-21
|
||||||
.\" Manual: BIND9
|
.\" Manual: BIND9
|
||||||
.\" Source: ISC
|
.\" Source: ISC
|
||||||
.\" Language: English
|
.\" Language: English
|
||||||
.\"
|
.\"
|
||||||
.TH "NAMED\&.CONF" "5" "2018\-12\-07" "ISC" "BIND9"
|
.TH "NAMED\&.CONF" "5" "2019\-07\-21" "ISC" "BIND9"
|
||||||
.\" -----------------------------------------------------------------
|
.\" -----------------------------------------------------------------
|
||||||
.\" * Define some portability stuff
|
.\" * Define some portability stuff
|
||||||
.\" -----------------------------------------------------------------
|
.\" -----------------------------------------------------------------
|
||||||
@@ -227,7 +227,7 @@ options {
|
|||||||
check\-wildcard \fIboolean\fR;
|
check\-wildcard \fIboolean\fR;
|
||||||
cleaning\-interval \fIinteger\fR;
|
cleaning\-interval \fIinteger\fR;
|
||||||
clients\-per\-query \fIinteger\fR;
|
clients\-per\-query \fIinteger\fR;
|
||||||
cookie\-algorithm ( aes | sha1 | sha256 );
|
cookie\-algorithm ( aes | sha1 | sha256 | siphash24 );
|
||||||
cookie\-secret \fIstring\fR;
|
cookie\-secret \fIstring\fR;
|
||||||
coresize ( default | unlimited | \fIsizeval\fR );
|
coresize ( default | unlimited | \fIsizeval\fR );
|
||||||
datasize ( default | unlimited | \fIsizeval\fR );
|
datasize ( default | unlimited | \fIsizeval\fR );
|
||||||
@@ -409,11 +409,12 @@ options {
|
|||||||
resolver\-retry\-interval \fIinteger\fR;
|
resolver\-retry\-interval \fIinteger\fR;
|
||||||
response\-padding { \fIaddress_match_element\fR; \&.\&.\&. } block\-size
|
response\-padding { \fIaddress_match_element\fR; \&.\&.\&. } block\-size
|
||||||
\fIinteger\fR;
|
\fIinteger\fR;
|
||||||
response\-policy { zone \fIstring\fR [ log \fIboolean\fR ] [ max\-policy\-ttl
|
response\-policy { zone \fIstring\fR [ add\-soa \fIboolean\fR ] [ log
|
||||||
\fIttlval\fR ] [ min\-update\-interval \fIttlval\fR ] [ policy ( cname |
|
\fIboolean\fR ] [ max\-policy\-ttl \fIttlval\fR ] [ min\-update\-interval
|
||||||
disabled | drop | given | no\-op | nodata | nxdomain | passthru
|
\fIttlval\fR ] [ policy ( cname | disabled | drop | given | no\-op |
|
||||||
| tcp\-only \fIquoted_string\fR ) ] [ recursive\-only \fIboolean\fR ] [
|
nodata | nxdomain | passthru | tcp\-only \fIquoted_string\fR ) ] [
|
||||||
nsip\-enable \fIboolean\fR ] [ nsdname\-enable \fIboolean\fR ]; \&.\&.\&. } [
|
recursive\-only \fIboolean\fR ] [ nsip\-enable \fIboolean\fR ] [
|
||||||
|
nsdname\-enable \fIboolean\fR ]; \&.\&.\&. } [ add\-soa \fIboolean\fR ] [
|
||||||
break\-dnssec \fIboolean\fR ] [ max\-policy\-ttl \fIttlval\fR ] [
|
break\-dnssec \fIboolean\fR ] [ max\-policy\-ttl \fIttlval\fR ] [
|
||||||
min\-update\-interval \fIttlval\fR ] [ min\-ns\-dots \fIinteger\fR ] [
|
min\-update\-interval \fIttlval\fR ] [ min\-ns\-dots \fIinteger\fR ] [
|
||||||
nsip\-wait\-recurse \fIboolean\fR ] [ qname\-wait\-recurse \fIboolean\fR ]
|
nsip\-wait\-recurse \fIboolean\fR ] [ qname\-wait\-recurse \fIboolean\fR ]
|
||||||
@@ -761,11 +762,12 @@ view \fIstring\fR [ \fIclass\fR ] {
|
|||||||
resolver\-retry\-interval \fIinteger\fR;
|
resolver\-retry\-interval \fIinteger\fR;
|
||||||
response\-padding { \fIaddress_match_element\fR; \&.\&.\&. } block\-size
|
response\-padding { \fIaddress_match_element\fR; \&.\&.\&. } block\-size
|
||||||
\fIinteger\fR;
|
\fIinteger\fR;
|
||||||
response\-policy { zone \fIstring\fR [ log \fIboolean\fR ] [ max\-policy\-ttl
|
response\-policy { zone \fIstring\fR [ add\-soa \fIboolean\fR ] [ log
|
||||||
\fIttlval\fR ] [ min\-update\-interval \fIttlval\fR ] [ policy ( cname |
|
\fIboolean\fR ] [ max\-policy\-ttl \fIttlval\fR ] [ min\-update\-interval
|
||||||
disabled | drop | given | no\-op | nodata | nxdomain | passthru
|
\fIttlval\fR ] [ policy ( cname | disabled | drop | given | no\-op |
|
||||||
| tcp\-only \fIquoted_string\fR ) ] [ recursive\-only \fIboolean\fR ] [
|
nodata | nxdomain | passthru | tcp\-only \fIquoted_string\fR ) ] [
|
||||||
nsip\-enable \fIboolean\fR ] [ nsdname\-enable \fIboolean\fR ]; \&.\&.\&. } [
|
recursive\-only \fIboolean\fR ] [ nsip\-enable \fIboolean\fR ] [
|
||||||
|
nsdname\-enable \fIboolean\fR ]; \&.\&.\&. } [ add\-soa \fIboolean\fR ] [
|
||||||
break\-dnssec \fIboolean\fR ] [ max\-policy\-ttl \fIttlval\fR ] [
|
break\-dnssec \fIboolean\fR ] [ max\-policy\-ttl \fIttlval\fR ] [
|
||||||
min\-update\-interval \fIttlval\fR ] [ min\-ns\-dots \fIinteger\fR ] [
|
min\-update\-interval \fIttlval\fR ] [ min\-ns\-dots \fIinteger\fR ] [
|
||||||
nsip\-wait\-recurse \fIboolean\fR ] [ qname\-wait\-recurse \fIboolean\fR ]
|
nsip\-wait\-recurse \fIboolean\fR ] [ qname\-wait\-recurse \fIboolean\fR ]
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.named.conf">
|
<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.named.conf">
|
||||||
<info>
|
<info>
|
||||||
<date>2018-12-07</date>
|
<date>2019-07-21</date>
|
||||||
</info>
|
</info>
|
||||||
<refentryinfo>
|
<refentryinfo>
|
||||||
<corpname>ISC</corpname>
|
<corpname>ISC</corpname>
|
||||||
@@ -221,7 +221,7 @@ options {
|
|||||||
check-wildcard <replaceable>boolean</replaceable>;
|
check-wildcard <replaceable>boolean</replaceable>;
|
||||||
cleaning-interval <replaceable>integer</replaceable>;
|
cleaning-interval <replaceable>integer</replaceable>;
|
||||||
clients-per-query <replaceable>integer</replaceable>;
|
clients-per-query <replaceable>integer</replaceable>;
|
||||||
cookie-algorithm ( aes | sha1 | sha256 );
|
cookie-algorithm ( aes | sha1 | sha256 | siphash24 );
|
||||||
cookie-secret <replaceable>string</replaceable>;
|
cookie-secret <replaceable>string</replaceable>;
|
||||||
coresize ( default | unlimited | <replaceable>sizeval</replaceable> );
|
coresize ( default | unlimited | <replaceable>sizeval</replaceable> );
|
||||||
datasize ( default | unlimited | <replaceable>sizeval</replaceable> );
|
datasize ( default | unlimited | <replaceable>sizeval</replaceable> );
|
||||||
@@ -403,11 +403,12 @@ options {
|
|||||||
resolver-retry-interval <replaceable>integer</replaceable>;
|
resolver-retry-interval <replaceable>integer</replaceable>;
|
||||||
response-padding { <replaceable>address_match_element</replaceable>; ... } block-size
|
response-padding { <replaceable>address_match_element</replaceable>; ... } block-size
|
||||||
<replaceable>integer</replaceable>;
|
<replaceable>integer</replaceable>;
|
||||||
response-policy { zone <replaceable>string</replaceable> [ log <replaceable>boolean</replaceable> ] [ max-policy-ttl
|
response-policy { zone <replaceable>string</replaceable> [ add-soa <replaceable>boolean</replaceable> ] [ log
|
||||||
<replaceable>ttlval</replaceable> ] [ min-update-interval <replaceable>ttlval</replaceable> ] [ policy ( cname |
|
<replaceable>boolean</replaceable> ] [ max-policy-ttl <replaceable>ttlval</replaceable> ] [ min-update-interval
|
||||||
disabled | drop | given | no-op | nodata | nxdomain | passthru
|
<replaceable>ttlval</replaceable> ] [ policy ( cname | disabled | drop | given | no-op |
|
||||||
| tcp-only <replaceable>quoted_string</replaceable> ) ] [ recursive-only <replaceable>boolean</replaceable> ] [
|
nodata | nxdomain | passthru | tcp-only <replaceable>quoted_string</replaceable> ) ] [
|
||||||
nsip-enable <replaceable>boolean</replaceable> ] [ nsdname-enable <replaceable>boolean</replaceable> ]; ... } [
|
recursive-only <replaceable>boolean</replaceable> ] [ nsip-enable <replaceable>boolean</replaceable> ] [
|
||||||
|
nsdname-enable <replaceable>boolean</replaceable> ]; ... } [ add-soa <replaceable>boolean</replaceable> ] [
|
||||||
break-dnssec <replaceable>boolean</replaceable> ] [ max-policy-ttl <replaceable>ttlval</replaceable> ] [
|
break-dnssec <replaceable>boolean</replaceable> ] [ max-policy-ttl <replaceable>ttlval</replaceable> ] [
|
||||||
min-update-interval <replaceable>ttlval</replaceable> ] [ min-ns-dots <replaceable>integer</replaceable> ] [
|
min-update-interval <replaceable>ttlval</replaceable> ] [ min-ns-dots <replaceable>integer</replaceable> ] [
|
||||||
nsip-wait-recurse <replaceable>boolean</replaceable> ] [ qname-wait-recurse <replaceable>boolean</replaceable> ]
|
nsip-wait-recurse <replaceable>boolean</replaceable> ] [ qname-wait-recurse <replaceable>boolean</replaceable> ]
|
||||||
@@ -735,11 +736,12 @@ view <replaceable>string</replaceable> [ <replaceable>class</replaceable> ] {
|
|||||||
resolver-retry-interval <replaceable>integer</replaceable>;
|
resolver-retry-interval <replaceable>integer</replaceable>;
|
||||||
response-padding { <replaceable>address_match_element</replaceable>; ... } block-size
|
response-padding { <replaceable>address_match_element</replaceable>; ... } block-size
|
||||||
<replaceable>integer</replaceable>;
|
<replaceable>integer</replaceable>;
|
||||||
response-policy { zone <replaceable>string</replaceable> [ log <replaceable>boolean</replaceable> ] [ max-policy-ttl
|
response-policy { zone <replaceable>string</replaceable> [ add-soa <replaceable>boolean</replaceable> ] [ log
|
||||||
<replaceable>ttlval</replaceable> ] [ min-update-interval <replaceable>ttlval</replaceable> ] [ policy ( cname |
|
<replaceable>boolean</replaceable> ] [ max-policy-ttl <replaceable>ttlval</replaceable> ] [ min-update-interval
|
||||||
disabled | drop | given | no-op | nodata | nxdomain | passthru
|
<replaceable>ttlval</replaceable> ] [ policy ( cname | disabled | drop | given | no-op |
|
||||||
| tcp-only <replaceable>quoted_string</replaceable> ) ] [ recursive-only <replaceable>boolean</replaceable> ] [
|
nodata | nxdomain | passthru | tcp-only <replaceable>quoted_string</replaceable> ) ] [
|
||||||
nsip-enable <replaceable>boolean</replaceable> ] [ nsdname-enable <replaceable>boolean</replaceable> ]; ... } [
|
recursive-only <replaceable>boolean</replaceable> ] [ nsip-enable <replaceable>boolean</replaceable> ] [
|
||||||
|
nsdname-enable <replaceable>boolean</replaceable> ]; ... } [ add-soa <replaceable>boolean</replaceable> ] [
|
||||||
break-dnssec <replaceable>boolean</replaceable> ] [ max-policy-ttl <replaceable>ttlval</replaceable> ] [
|
break-dnssec <replaceable>boolean</replaceable> ] [ max-policy-ttl <replaceable>ttlval</replaceable> ] [
|
||||||
min-update-interval <replaceable>ttlval</replaceable> ] [ min-ns-dots <replaceable>integer</replaceable> ] [
|
min-update-interval <replaceable>ttlval</replaceable> ] [ min-ns-dots <replaceable>integer</replaceable> ] [
|
||||||
nsip-wait-recurse <replaceable>boolean</replaceable> ] [ qname-wait-recurse <replaceable>boolean</replaceable> ]
|
nsip-wait-recurse <replaceable>boolean</replaceable> ] [ qname-wait-recurse <replaceable>boolean</replaceable> ]
|
||||||
|
|||||||
+13
-11
@@ -208,7 +208,7 @@ options
|
|||||||
check-wildcard <em class="replaceable"><code>boolean</code></em>;<br>
|
check-wildcard <em class="replaceable"><code>boolean</code></em>;<br>
|
||||||
cleaning-interval <em class="replaceable"><code>integer</code></em>;<br>
|
cleaning-interval <em class="replaceable"><code>integer</code></em>;<br>
|
||||||
clients-per-query <em class="replaceable"><code>integer</code></em>;<br>
|
clients-per-query <em class="replaceable"><code>integer</code></em>;<br>
|
||||||
cookie-algorithm ( aes | sha1 | sha256 );<br>
|
cookie-algorithm ( aes | sha1 | sha256 | siphash24 );<br>
|
||||||
cookie-secret <em class="replaceable"><code>string</code></em>;<br>
|
cookie-secret <em class="replaceable"><code>string</code></em>;<br>
|
||||||
coresize ( default | unlimited | <em class="replaceable"><code>sizeval</code></em> );<br>
|
coresize ( default | unlimited | <em class="replaceable"><code>sizeval</code></em> );<br>
|
||||||
datasize ( default | unlimited | <em class="replaceable"><code>sizeval</code></em> );<br>
|
datasize ( default | unlimited | <em class="replaceable"><code>sizeval</code></em> );<br>
|
||||||
@@ -390,11 +390,12 @@ options
|
|||||||
resolver-retry-interval <em class="replaceable"><code>integer</code></em>;<br>
|
resolver-retry-interval <em class="replaceable"><code>integer</code></em>;<br>
|
||||||
response-padding { <em class="replaceable"><code>address_match_element</code></em>; ... } block-size<br>
|
response-padding { <em class="replaceable"><code>address_match_element</code></em>; ... } block-size<br>
|
||||||
<em class="replaceable"><code>integer</code></em>;<br>
|
<em class="replaceable"><code>integer</code></em>;<br>
|
||||||
response-policy { zone <em class="replaceable"><code>string</code></em> [ log <em class="replaceable"><code>boolean</code></em> ] [ max-policy-ttl<br>
|
response-policy { zone <em class="replaceable"><code>string</code></em> [ add-soa <em class="replaceable"><code>boolean</code></em> ] [ log<br>
|
||||||
<em class="replaceable"><code>ttlval</code></em> ] [ min-update-interval <em class="replaceable"><code>ttlval</code></em> ] [ policy ( cname |<br>
|
<em class="replaceable"><code>boolean</code></em> ] [ max-policy-ttl <em class="replaceable"><code>ttlval</code></em> ] [ min-update-interval<br>
|
||||||
disabled | drop | given | no-op | nodata | nxdomain | passthru<br>
|
<em class="replaceable"><code>ttlval</code></em> ] [ policy ( cname | disabled | drop | given | no-op |<br>
|
||||||
| tcp-only <em class="replaceable"><code>quoted_string</code></em> ) ] [ recursive-only <em class="replaceable"><code>boolean</code></em> ] [<br>
|
nodata | nxdomain | passthru | tcp-only <em class="replaceable"><code>quoted_string</code></em> ) ] [<br>
|
||||||
nsip-enable <em class="replaceable"><code>boolean</code></em> ] [ nsdname-enable <em class="replaceable"><code>boolean</code></em> ]; ... } [<br>
|
recursive-only <em class="replaceable"><code>boolean</code></em> ] [ nsip-enable <em class="replaceable"><code>boolean</code></em> ] [<br>
|
||||||
|
nsdname-enable <em class="replaceable"><code>boolean</code></em> ]; ... } [ add-soa <em class="replaceable"><code>boolean</code></em> ] [<br>
|
||||||
break-dnssec <em class="replaceable"><code>boolean</code></em> ] [ max-policy-ttl <em class="replaceable"><code>ttlval</code></em> ] [<br>
|
break-dnssec <em class="replaceable"><code>boolean</code></em> ] [ max-policy-ttl <em class="replaceable"><code>ttlval</code></em> ] [<br>
|
||||||
min-update-interval <em class="replaceable"><code>ttlval</code></em> ] [ min-ns-dots <em class="replaceable"><code>integer</code></em> ] [<br>
|
min-update-interval <em class="replaceable"><code>ttlval</code></em> ] [ min-ns-dots <em class="replaceable"><code>integer</code></em> ] [<br>
|
||||||
nsip-wait-recurse <em class="replaceable"><code>boolean</code></em> ] [ qname-wait-recurse <em class="replaceable"><code>boolean</code></em> ]<br>
|
nsip-wait-recurse <em class="replaceable"><code>boolean</code></em> ] [ qname-wait-recurse <em class="replaceable"><code>boolean</code></em> ]<br>
|
||||||
@@ -727,11 +728,12 @@ view
|
|||||||
resolver-retry-interval <em class="replaceable"><code>integer</code></em>;<br>
|
resolver-retry-interval <em class="replaceable"><code>integer</code></em>;<br>
|
||||||
response-padding { <em class="replaceable"><code>address_match_element</code></em>; ... } block-size<br>
|
response-padding { <em class="replaceable"><code>address_match_element</code></em>; ... } block-size<br>
|
||||||
<em class="replaceable"><code>integer</code></em>;<br>
|
<em class="replaceable"><code>integer</code></em>;<br>
|
||||||
response-policy { zone <em class="replaceable"><code>string</code></em> [ log <em class="replaceable"><code>boolean</code></em> ] [ max-policy-ttl<br>
|
response-policy { zone <em class="replaceable"><code>string</code></em> [ add-soa <em class="replaceable"><code>boolean</code></em> ] [ log<br>
|
||||||
<em class="replaceable"><code>ttlval</code></em> ] [ min-update-interval <em class="replaceable"><code>ttlval</code></em> ] [ policy ( cname |<br>
|
<em class="replaceable"><code>boolean</code></em> ] [ max-policy-ttl <em class="replaceable"><code>ttlval</code></em> ] [ min-update-interval<br>
|
||||||
disabled | drop | given | no-op | nodata | nxdomain | passthru<br>
|
<em class="replaceable"><code>ttlval</code></em> ] [ policy ( cname | disabled | drop | given | no-op |<br>
|
||||||
| tcp-only <em class="replaceable"><code>quoted_string</code></em> ) ] [ recursive-only <em class="replaceable"><code>boolean</code></em> ] [<br>
|
nodata | nxdomain | passthru | tcp-only <em class="replaceable"><code>quoted_string</code></em> ) ] [<br>
|
||||||
nsip-enable <em class="replaceable"><code>boolean</code></em> ] [ nsdname-enable <em class="replaceable"><code>boolean</code></em> ]; ... } [<br>
|
recursive-only <em class="replaceable"><code>boolean</code></em> ] [ nsip-enable <em class="replaceable"><code>boolean</code></em> ] [<br>
|
||||||
|
nsdname-enable <em class="replaceable"><code>boolean</code></em> ]; ... } [ add-soa <em class="replaceable"><code>boolean</code></em> ] [<br>
|
||||||
break-dnssec <em class="replaceable"><code>boolean</code></em> ] [ max-policy-ttl <em class="replaceable"><code>ttlval</code></em> ] [<br>
|
break-dnssec <em class="replaceable"><code>boolean</code></em> ] [ max-policy-ttl <em class="replaceable"><code>ttlval</code></em> ] [<br>
|
||||||
min-update-interval <em class="replaceable"><code>ttlval</code></em> ] [ min-ns-dots <em class="replaceable"><code>integer</code></em> ] [<br>
|
min-update-interval <em class="replaceable"><code>ttlval</code></em> ] [ min-ns-dots <em class="replaceable"><code>integer</code></em> ] [<br>
|
||||||
nsip-wait-recurse <em class="replaceable"><code>boolean</code></em> ] [ qname-wait-recurse <em class="replaceable"><code>boolean</code></em> ]<br>
|
nsip-wait-recurse <em class="replaceable"><code>boolean</code></em> ] [ qname-wait-recurse <em class="replaceable"><code>boolean</code></em> ]<br>
|
||||||
|
|||||||
+241
-123
@@ -41,6 +41,7 @@
|
|||||||
#include <isc/print.h>
|
#include <isc/print.h>
|
||||||
#include <isc/refcount.h>
|
#include <isc/refcount.h>
|
||||||
#include <isc/resource.h>
|
#include <isc/resource.h>
|
||||||
|
#include <isc/siphash.h>
|
||||||
#include <isc/socket.h>
|
#include <isc/socket.h>
|
||||||
#include <isc/stat.h>
|
#include <isc/stat.h>
|
||||||
#include <isc/stats.h>
|
#include <isc/stats.h>
|
||||||
@@ -108,9 +109,9 @@
|
|||||||
|
|
||||||
#include <named/config.h>
|
#include <named/config.h>
|
||||||
#include <named/control.h>
|
#include <named/control.h>
|
||||||
#ifdef HAVE_GEOIP
|
#if defined(HAVE_GEOIP) || defined(HAVE_GEOIP2)
|
||||||
#include <named/geoip.h>
|
#include <named/geoip.h>
|
||||||
#endif /* HAVE_GEOIP */
|
#endif /* HAVE_GEOIP || HAVE_GEOIP2 */
|
||||||
#include <named/log.h>
|
#include <named/log.h>
|
||||||
#include <named/logconf.h>
|
#include <named/logconf.h>
|
||||||
#include <named/main.h>
|
#include <named/main.h>
|
||||||
@@ -165,23 +166,23 @@
|
|||||||
* using it has a 'result' variable and a 'cleanup' label.
|
* using it has a 'result' variable and a 'cleanup' label.
|
||||||
*/
|
*/
|
||||||
#define CHECK(op) \
|
#define CHECK(op) \
|
||||||
do { result = (op); \
|
do { result = (op); \
|
||||||
if (result != ISC_R_SUCCESS) goto cleanup; \
|
if (result != ISC_R_SUCCESS) goto cleanup; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define TCHECK(op) \
|
#define TCHECK(op) \
|
||||||
do { tresult = (op); \
|
do { tresult = (op); \
|
||||||
if (tresult != ISC_R_SUCCESS) { \
|
if (tresult != ISC_R_SUCCESS) { \
|
||||||
isc_buffer_clear(*text); \
|
isc_buffer_clear(*text); \
|
||||||
goto cleanup; \
|
goto cleanup; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define CHECKM(op, msg) \
|
#define CHECKM(op, msg) \
|
||||||
do { result = (op); \
|
do { result = (op); \
|
||||||
if (result != ISC_R_SUCCESS) { \
|
if (result != ISC_R_SUCCESS) { \
|
||||||
isc_log_write(named_g_lctx, \
|
isc_log_write(named_g_lctx, \
|
||||||
NAMED_LOGCATEGORY_GENERAL, \
|
NAMED_LOGCATEGORY_GENERAL, \
|
||||||
NAMED_LOGMODULE_SERVER, \
|
NAMED_LOGMODULE_SERVER, \
|
||||||
ISC_LOG_ERROR, \
|
ISC_LOG_ERROR, \
|
||||||
"%s: %s", msg, \
|
"%s: %s", msg, \
|
||||||
@@ -194,7 +195,7 @@
|
|||||||
do { result = (op); \
|
do { result = (op); \
|
||||||
if (result != ISC_R_SUCCESS) { \
|
if (result != ISC_R_SUCCESS) { \
|
||||||
isc_log_write(named_g_lctx, \
|
isc_log_write(named_g_lctx, \
|
||||||
NAMED_LOGCATEGORY_GENERAL, \
|
NAMED_LOGCATEGORY_GENERAL, \
|
||||||
NAMED_LOGMODULE_SERVER, \
|
NAMED_LOGMODULE_SERVER, \
|
||||||
ISC_LOG_ERROR, \
|
ISC_LOG_ERROR, \
|
||||||
"%s '%s': %s", msg, file, \
|
"%s '%s': %s", msg, file, \
|
||||||
@@ -703,7 +704,8 @@ configure_view_nametable(const cfg_obj_t *vconfig, const cfg_obj_t *config,
|
|||||||
|
|
||||||
static isc_result_t
|
static isc_result_t
|
||||||
dstkey_fromconfig(const cfg_obj_t *vconfig, const cfg_obj_t *key,
|
dstkey_fromconfig(const cfg_obj_t *vconfig, const cfg_obj_t *key,
|
||||||
bool managed, dst_key_t **target, isc_mem_t *mctx)
|
bool managed, dst_key_t **target, const char **keynamestrp,
|
||||||
|
isc_mem_t *mctx)
|
||||||
{
|
{
|
||||||
dns_rdataclass_t viewclass;
|
dns_rdataclass_t viewclass;
|
||||||
dns_rdata_dnskey_t keystruct;
|
dns_rdata_dnskey_t keystruct;
|
||||||
@@ -721,12 +723,14 @@ dstkey_fromconfig(const cfg_obj_t *vconfig, const cfg_obj_t *key,
|
|||||||
dst_key_t *dstkey = NULL;
|
dst_key_t *dstkey = NULL;
|
||||||
|
|
||||||
INSIST(target != NULL && *target == NULL);
|
INSIST(target != NULL && *target == NULL);
|
||||||
|
INSIST(keynamestrp != NULL && *keynamestrp == NULL);
|
||||||
|
|
||||||
flags = cfg_obj_asuint32(cfg_tuple_get(key, "flags"));
|
flags = cfg_obj_asuint32(cfg_tuple_get(key, "flags"));
|
||||||
proto = cfg_obj_asuint32(cfg_tuple_get(key, "protocol"));
|
proto = cfg_obj_asuint32(cfg_tuple_get(key, "protocol"));
|
||||||
alg = cfg_obj_asuint32(cfg_tuple_get(key, "algorithm"));
|
alg = cfg_obj_asuint32(cfg_tuple_get(key, "algorithm"));
|
||||||
keyname = dns_fixedname_name(&fkeyname);
|
keyname = dns_fixedname_name(&fkeyname);
|
||||||
keynamestr = cfg_obj_asstring(cfg_tuple_get(key, "name"));
|
keynamestr = cfg_obj_asstring(cfg_tuple_get(key, "name"));
|
||||||
|
*keynamestrp = keynamestr;
|
||||||
|
|
||||||
if (managed) {
|
if (managed) {
|
||||||
const char *initmethod;
|
const char *initmethod;
|
||||||
@@ -760,6 +764,8 @@ dstkey_fromconfig(const cfg_obj_t *vconfig, const cfg_obj_t *key,
|
|||||||
|
|
||||||
if (flags > 0xffff)
|
if (flags > 0xffff)
|
||||||
CHECKM(ISC_R_RANGE, "key flags");
|
CHECKM(ISC_R_RANGE, "key flags");
|
||||||
|
if (flags & DNS_KEYFLAG_REVOKE)
|
||||||
|
CHECKM(DST_R_BADKEYTYPE, "key flags revoke bit set");
|
||||||
if (proto > 0xff)
|
if (proto > 0xff)
|
||||||
CHECKM(ISC_R_RANGE, "key protocol");
|
CHECKM(ISC_R_RANGE, "key protocol");
|
||||||
if (alg > 0xff)
|
if (alg > 0xff)
|
||||||
@@ -799,26 +805,118 @@ dstkey_fromconfig(const cfg_obj_t *vconfig, const cfg_obj_t *key,
|
|||||||
return (ISC_R_SUCCESS);
|
return (ISC_R_SUCCESS);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
if (result == DST_R_NOCRYPTO) {
|
if (dstkey != NULL) {
|
||||||
|
dst_key_free(&dstkey);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*%
|
||||||
|
* Parse 'key' in the context of view configuration 'vconfig'. If successful,
|
||||||
|
* add the key to 'secroots' if both of the following conditions are true:
|
||||||
|
*
|
||||||
|
* - 'keyname_match' is NULL or it matches the owner name of 'key',
|
||||||
|
* - support for the algorithm used by 'key' is not disabled by 'resolver'
|
||||||
|
* for the owner name of 'key'.
|
||||||
|
*
|
||||||
|
* 'managed' is true for managed keys and false for trusted keys. 'mctx' is
|
||||||
|
* the memory context to use for allocating memory.
|
||||||
|
*/
|
||||||
|
static isc_result_t
|
||||||
|
process_key(const cfg_obj_t *key, const cfg_obj_t *vconfig,
|
||||||
|
dns_keytable_t *secroots, const dns_name_t *keyname_match,
|
||||||
|
dns_resolver_t *resolver, bool managed, isc_mem_t *mctx)
|
||||||
|
{
|
||||||
|
const dns_name_t *keyname = NULL;
|
||||||
|
const char *keynamestr = NULL;
|
||||||
|
dst_key_t *dstkey = NULL;
|
||||||
|
unsigned int keyalg;
|
||||||
|
isc_result_t result;
|
||||||
|
|
||||||
|
result = dstkey_fromconfig(vconfig, key, managed, &dstkey, &keynamestr,
|
||||||
|
mctx);
|
||||||
|
|
||||||
|
switch (result) {
|
||||||
|
case ISC_R_SUCCESS:
|
||||||
|
/*
|
||||||
|
* Key was parsed correctly, its algorithm is supported by the
|
||||||
|
* crypto library, and it is not revoked.
|
||||||
|
*/
|
||||||
|
keyname = dst_key_name(dstkey);
|
||||||
|
keyalg = dst_key_alg(dstkey);
|
||||||
|
break;
|
||||||
|
case DST_R_UNSUPPORTEDALG:
|
||||||
|
case DST_R_BADKEYTYPE:
|
||||||
|
/*
|
||||||
|
* Key was parsed correctly, but it cannot be used; this is not
|
||||||
|
* a fatal error - log a warning about this key being ignored,
|
||||||
|
* but do not prevent any further ones from being processed.
|
||||||
|
*/
|
||||||
|
cfg_obj_log(key, named_g_lctx, ISC_LOG_WARNING,
|
||||||
|
"ignoring %s key for '%s': %s",
|
||||||
|
managed ? "managed" : "trusted",
|
||||||
|
keynamestr, isc_result_totext(result));
|
||||||
|
return (ISC_R_SUCCESS);
|
||||||
|
case DST_R_NOCRYPTO:
|
||||||
|
/*
|
||||||
|
* Crypto support is not available.
|
||||||
|
*/
|
||||||
cfg_obj_log(key, named_g_lctx, ISC_LOG_ERROR,
|
cfg_obj_log(key, named_g_lctx, ISC_LOG_ERROR,
|
||||||
"ignoring %s key for '%s': no crypto support",
|
"ignoring %s key for '%s': no crypto support",
|
||||||
managed ? "managed" : "trusted",
|
managed ? "managed" : "trusted",
|
||||||
keynamestr);
|
keynamestr);
|
||||||
} else if (result == DST_R_UNSUPPORTEDALG) {
|
return (result);
|
||||||
cfg_obj_log(key, named_g_lctx, ISC_LOG_WARNING,
|
default:
|
||||||
"skipping %s key for '%s': %s",
|
/*
|
||||||
managed ? "managed" : "trusted",
|
* Something unexpected happened; we have no choice but to
|
||||||
keynamestr, isc_result_totext(result));
|
* indicate an error so that the configuration loading process
|
||||||
} else {
|
* is interrupted.
|
||||||
|
*/
|
||||||
cfg_obj_log(key, named_g_lctx, ISC_LOG_ERROR,
|
cfg_obj_log(key, named_g_lctx, ISC_LOG_ERROR,
|
||||||
"configuring %s key for '%s': %s",
|
"configuring %s key for '%s': %s",
|
||||||
managed ? "managed" : "trusted",
|
managed ? "managed" : "trusted",
|
||||||
keynamestr, isc_result_totext(result));
|
keynamestr, isc_result_totext(result));
|
||||||
result = ISC_R_FAILURE;
|
return (ISC_R_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dstkey != NULL)
|
/*
|
||||||
|
* If the caller requested to only load keys for a specific name and
|
||||||
|
* the owner name of this key does not match the requested name, do not
|
||||||
|
* load it.
|
||||||
|
*/
|
||||||
|
if (keyname_match != NULL && !dns_name_equal(keyname_match, keyname)) {
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Ensure that 'resolver' allows using the algorithm of this key for
|
||||||
|
* its owner name. If it does not, do not load the key and log a
|
||||||
|
* warning, but do not prevent further keys from being processed.
|
||||||
|
*/
|
||||||
|
if (!dns_resolver_algorithm_supported(resolver, keyname, keyalg)) {
|
||||||
|
cfg_obj_log(key, named_g_lctx, ISC_LOG_WARNING,
|
||||||
|
"ignoring %s key for '%s': algorithm is disabled",
|
||||||
|
managed ? "managed" : "trusted", keynamestr);
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Add the key to 'secroots'. This key is taken from the
|
||||||
|
* configuration, so if it's a managed key then it's an initializing
|
||||||
|
* key; that's why 'managed' is duplicated below.
|
||||||
|
*/
|
||||||
|
result = dns_keytable_add(secroots, managed, managed, &dstkey);
|
||||||
|
|
||||||
|
done:
|
||||||
|
/*
|
||||||
|
* Ensure 'dstkey' does not leak. Note that if dns_keytable_add()
|
||||||
|
* succeeds, ownership of the key structure is transferred to the key
|
||||||
|
* table, i.e. 'dstkey' is set to NULL.
|
||||||
|
*/
|
||||||
|
if (dstkey != NULL) {
|
||||||
dst_key_free(&dstkey);
|
dst_key_free(&dstkey);
|
||||||
|
}
|
||||||
|
|
||||||
return (result);
|
return (result);
|
||||||
}
|
}
|
||||||
@@ -834,8 +932,7 @@ load_view_keys(const cfg_obj_t *keys, const cfg_obj_t *vconfig,
|
|||||||
const dns_name_t *keyname, isc_mem_t *mctx)
|
const dns_name_t *keyname, isc_mem_t *mctx)
|
||||||
{
|
{
|
||||||
const cfg_listelt_t *elt, *elt2;
|
const cfg_listelt_t *elt, *elt2;
|
||||||
const cfg_obj_t *key, *keylist;
|
const cfg_obj_t *keylist;
|
||||||
dst_key_t *dstkey = NULL;
|
|
||||||
isc_result_t result;
|
isc_result_t result;
|
||||||
dns_keytable_t *secroots = NULL;
|
dns_keytable_t *secroots = NULL;
|
||||||
|
|
||||||
@@ -851,42 +948,13 @@ load_view_keys(const cfg_obj_t *keys, const cfg_obj_t *vconfig,
|
|||||||
elt2 != NULL;
|
elt2 != NULL;
|
||||||
elt2 = cfg_list_next(elt2))
|
elt2 = cfg_list_next(elt2))
|
||||||
{
|
{
|
||||||
key = cfg_listelt_value(elt2);
|
CHECK(process_key(cfg_listelt_value(elt2), vconfig,
|
||||||
result = dstkey_fromconfig(vconfig, key, managed,
|
secroots, keyname, view->resolver,
|
||||||
&dstkey, mctx);
|
managed, mctx));
|
||||||
if (result == DST_R_UNSUPPORTEDALG) {
|
|
||||||
result = ISC_R_SUCCESS;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (result != ISC_R_SUCCESS) {
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If keyname was specified, we only add that key.
|
|
||||||
*/
|
|
||||||
if (keyname != NULL &&
|
|
||||||
!dns_name_equal(keyname, dst_key_name(dstkey)))
|
|
||||||
{
|
|
||||||
dst_key_free(&dstkey);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This key is taken from the configuration, so
|
|
||||||
* if it's a managed key then it's an
|
|
||||||
* initializing key; that's why 'managed'
|
|
||||||
* is duplicated below.
|
|
||||||
*/
|
|
||||||
CHECK(dns_keytable_add(secroots, managed,
|
|
||||||
managed, &dstkey));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
if (dstkey != NULL) {
|
|
||||||
dst_key_free(&dstkey);
|
|
||||||
}
|
|
||||||
if (secroots != NULL) {
|
if (secroots != NULL) {
|
||||||
dns_keytable_detach(&secroots);
|
dns_keytable_detach(&secroots);
|
||||||
}
|
}
|
||||||
@@ -2115,6 +2183,7 @@ configure_rpz_name2(dns_view_t *view, const cfg_obj_t *obj, dns_name_t *name,
|
|||||||
static isc_result_t
|
static isc_result_t
|
||||||
configure_rpz_zone(dns_view_t *view, const cfg_listelt_t *element,
|
configure_rpz_zone(dns_view_t *view, const cfg_listelt_t *element,
|
||||||
bool recursive_only_default,
|
bool recursive_only_default,
|
||||||
|
bool add_soa_default,
|
||||||
dns_ttl_t ttl_default,
|
dns_ttl_t ttl_default,
|
||||||
uint32_t minupdateinterval_default,
|
uint32_t minupdateinterval_default,
|
||||||
const dns_rpz_zone_t *old,
|
const dns_rpz_zone_t *old,
|
||||||
@@ -2259,6 +2328,13 @@ configure_rpz_zone(dns_view_t *view, const cfg_listelt_t *element,
|
|||||||
!dns_name_equal(&old->cname, &zone->cname)))
|
!dns_name_equal(&old->cname, &zone->cname)))
|
||||||
*old_rpz_okp = false;
|
*old_rpz_okp = false;
|
||||||
|
|
||||||
|
obj = cfg_tuple_get(rpz_obj, "add-soa");
|
||||||
|
if (cfg_obj_isvoid(obj)) {
|
||||||
|
zone->addsoa = add_soa_default;
|
||||||
|
} else {
|
||||||
|
zone->addsoa = cfg_obj_asboolean(obj);
|
||||||
|
}
|
||||||
|
|
||||||
return (ISC_R_SUCCESS);
|
return (ISC_R_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2271,7 +2347,7 @@ configure_rpz(dns_view_t *view, const cfg_obj_t **maps,
|
|||||||
char *rps_cstr;
|
char *rps_cstr;
|
||||||
size_t rps_cstr_size;
|
size_t rps_cstr_size;
|
||||||
const cfg_obj_t *sub_obj;
|
const cfg_obj_t *sub_obj;
|
||||||
bool recursive_only_default;
|
bool recursive_only_default, add_soa_default;
|
||||||
bool nsip_enabled, nsdname_enabled;
|
bool nsip_enabled, nsdname_enabled;
|
||||||
dns_rpz_zbits_t nsip_on, nsdname_on;
|
dns_rpz_zbits_t nsip_on, nsdname_on;
|
||||||
dns_ttl_t ttl_default;
|
dns_ttl_t ttl_default;
|
||||||
@@ -2367,6 +2443,13 @@ configure_rpz(dns_view_t *view, const cfg_obj_t **maps,
|
|||||||
recursive_only_default = true;
|
recursive_only_default = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub_obj = cfg_tuple_get(rpz_obj, "add-soa");
|
||||||
|
if (!cfg_obj_isvoid(sub_obj) && !cfg_obj_asboolean(sub_obj)) {
|
||||||
|
add_soa_default = false;
|
||||||
|
} else {
|
||||||
|
add_soa_default = true;
|
||||||
|
}
|
||||||
|
|
||||||
sub_obj = cfg_tuple_get(rpz_obj, "break-dnssec");
|
sub_obj = cfg_tuple_get(rpz_obj, "break-dnssec");
|
||||||
if (!cfg_obj_isvoid(sub_obj) && cfg_obj_asboolean(sub_obj)) {
|
if (!cfg_obj_isvoid(sub_obj) && cfg_obj_asboolean(sub_obj)) {
|
||||||
zones->p.break_dnssec = true;
|
zones->p.break_dnssec = true;
|
||||||
@@ -2429,6 +2512,7 @@ configure_rpz(dns_view_t *view, const cfg_obj_t **maps,
|
|||||||
}
|
}
|
||||||
result = configure_rpz_zone(view, zone_element,
|
result = configure_rpz_zone(view, zone_element,
|
||||||
recursive_only_default,
|
recursive_only_default,
|
||||||
|
add_soa_default,
|
||||||
ttl_default,
|
ttl_default,
|
||||||
minupdateinterval_default,
|
minupdateinterval_default,
|
||||||
old_zone, old_rpz_okp);
|
old_zone, old_rpz_okp);
|
||||||
@@ -3655,9 +3739,21 @@ register_one_plugin(const cfg_obj_t *config, const cfg_obj_t *obj,
|
|||||||
void *callback_data)
|
void *callback_data)
|
||||||
{
|
{
|
||||||
dns_view_t *view = callback_data;
|
dns_view_t *view = callback_data;
|
||||||
|
char full_path[PATH_MAX];
|
||||||
isc_result_t result;
|
isc_result_t result;
|
||||||
|
|
||||||
result = ns_plugin_register(plugin_path, parameters, config,
|
result = ns_plugin_expandpath(plugin_path,
|
||||||
|
full_path, sizeof(full_path));
|
||||||
|
if (result != ISC_R_SUCCESS) {
|
||||||
|
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||||
|
NAMED_LOGMODULE_SERVER, ISC_LOG_ERROR,
|
||||||
|
"%s: plugin configuration failed: "
|
||||||
|
"unable to get full plugin path: %s",
|
||||||
|
plugin_path, isc_result_totext(result));
|
||||||
|
return (result);
|
||||||
|
}
|
||||||
|
|
||||||
|
result = ns_plugin_register(full_path, parameters, config,
|
||||||
cfg_obj_file(obj), cfg_obj_line(obj),
|
cfg_obj_file(obj), cfg_obj_line(obj),
|
||||||
named_g_mctx, named_g_lctx,
|
named_g_mctx, named_g_lctx,
|
||||||
named_g_aclconfctx, view);
|
named_g_aclconfctx, view);
|
||||||
@@ -3665,7 +3761,7 @@ register_one_plugin(const cfg_obj_t *config, const cfg_obj_t *obj,
|
|||||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||||
NAMED_LOGMODULE_SERVER, ISC_LOG_ERROR,
|
NAMED_LOGMODULE_SERVER, ISC_LOG_ERROR,
|
||||||
"%s: plugin configuration failed: %s",
|
"%s: plugin configuration failed: %s",
|
||||||
plugin_path, isc_result_totext(result));
|
full_path, isc_result_totext(result));
|
||||||
}
|
}
|
||||||
|
|
||||||
return (result);
|
return (result);
|
||||||
@@ -4993,8 +5089,9 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Configure default allow-update and allow-update-forwarding ACLs,
|
* Configure default allow-update and allow-update-forwarding ACLs,
|
||||||
* so they can be inherited by zones. (Note these cannot be set at
|
* so they can be inherited by zones. (XXX: These are not
|
||||||
* options/view level.)
|
* read from the options/view level here. However, they may be
|
||||||
|
* read from there in zoneconf.c:configure_zone_acl() later.)
|
||||||
*/
|
*/
|
||||||
if (view->updateacl == NULL) {
|
if (view->updateacl == NULL) {
|
||||||
CHECK(configure_view_acl(NULL, NULL, named_g_config,
|
CHECK(configure_view_acl(NULL, NULL, named_g_config,
|
||||||
@@ -8187,7 +8284,7 @@ load_configuration(const char *filename, named_server_t *server,
|
|||||||
}
|
}
|
||||||
isc_socketmgr_setreserved(named_g_socketmgr, reserved);
|
isc_socketmgr_setreserved(named_g_socketmgr, reserved);
|
||||||
|
|
||||||
#ifdef HAVE_GEOIP
|
#if defined(HAVE_GEOIP) || defined(HAVE_GEOIP2)
|
||||||
/*
|
/*
|
||||||
* Initialize GeoIP databases from the configured location.
|
* Initialize GeoIP databases from the configured location.
|
||||||
* This should happen before configuring any ACLs, so that we
|
* This should happen before configuring any ACLs, so that we
|
||||||
@@ -8200,11 +8297,9 @@ load_configuration(const char *filename, named_server_t *server,
|
|||||||
char *dir;
|
char *dir;
|
||||||
DE_CONST(cfg_obj_asstring(obj), dir);
|
DE_CONST(cfg_obj_asstring(obj), dir);
|
||||||
named_geoip_load(dir);
|
named_geoip_load(dir);
|
||||||
} else {
|
|
||||||
named_geoip_load(NULL);
|
|
||||||
}
|
}
|
||||||
named_g_aclconfctx->geoip = named_g_geoip;
|
named_g_aclconfctx->geoip = named_g_geoip;
|
||||||
#endif /* HAVE_GEOIP */
|
#endif /* HAVE_GEOIP || HAVE_GEOIP2 */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Configure various server options.
|
* Configure various server options.
|
||||||
@@ -8968,8 +9063,7 @@ load_configuration(const char *filename, named_server_t *server,
|
|||||||
{
|
{
|
||||||
named_g_memstatistics = cfg_obj_asboolean(obj);
|
named_g_memstatistics = cfg_obj_asboolean(obj);
|
||||||
} else {
|
} else {
|
||||||
named_g_memstatistics =
|
named_g_memstatistics = true;
|
||||||
((isc_mem_debugging & ISC_MEM_DEBUGRECORD) != 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
obj = NULL;
|
obj = NULL;
|
||||||
@@ -9056,7 +9150,9 @@ load_configuration(const char *filename, named_server_t *server,
|
|||||||
obj = NULL;
|
obj = NULL;
|
||||||
result = named_config_get(maps, "cookie-algorithm", &obj);
|
result = named_config_get(maps, "cookie-algorithm", &obj);
|
||||||
INSIST(result == ISC_R_SUCCESS);
|
INSIST(result == ISC_R_SUCCESS);
|
||||||
if (strcasecmp(cfg_obj_asstring(obj), "aes") == 0) {
|
if (strcasecmp(cfg_obj_asstring(obj), "siphash24") == 0) {
|
||||||
|
server->sctx->cookiealg = ns_cookiealg_siphash24;
|
||||||
|
} else if (strcasecmp(cfg_obj_asstring(obj), "aes") == 0) {
|
||||||
server->sctx->cookiealg = ns_cookiealg_aes;
|
server->sctx->cookiealg = ns_cookiealg_aes;
|
||||||
} else if (strcasecmp(cfg_obj_asstring(obj), "sha1") == 0) {
|
} else if (strcasecmp(cfg_obj_asstring(obj), "sha1") == 0) {
|
||||||
server->sctx->cookiealg = ns_cookiealg_sha1;
|
server->sctx->cookiealg = ns_cookiealg_sha1;
|
||||||
@@ -9119,12 +9215,18 @@ load_configuration(const char *filename, named_server_t *server,
|
|||||||
|
|
||||||
usedlength = isc_buffer_usedlength(&b);
|
usedlength = isc_buffer_usedlength(&b);
|
||||||
switch (server->sctx->cookiealg) {
|
switch (server->sctx->cookiealg) {
|
||||||
|
case ns_cookiealg_siphash24:
|
||||||
|
expectedlength = ISC_SIPHASH24_KEY_LENGTH;
|
||||||
|
if (usedlength != expectedlength) {
|
||||||
|
CHECKM(ISC_R_RANGE,
|
||||||
|
"SipHash-2-4 cookie-secret must be 128 bits");
|
||||||
|
}
|
||||||
|
break;
|
||||||
case ns_cookiealg_aes:
|
case ns_cookiealg_aes:
|
||||||
expectedlength = ISC_AES128_KEYLENGTH;
|
expectedlength = ISC_AES128_KEYLENGTH;
|
||||||
if (usedlength != expectedlength) {
|
if (usedlength != expectedlength) {
|
||||||
CHECKM(ISC_R_RANGE,
|
CHECKM(ISC_R_RANGE,
|
||||||
"AES cookie-secret must be "
|
"AES cookie-secret must be 128 bits");
|
||||||
"128 bits");
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ns_cookiealg_sha1:
|
case ns_cookiealg_sha1:
|
||||||
@@ -9407,6 +9509,7 @@ static void
|
|||||||
run_server(isc_task_t *task, isc_event_t *event) {
|
run_server(isc_task_t *task, isc_event_t *event) {
|
||||||
isc_result_t result;
|
isc_result_t result;
|
||||||
named_server_t *server = (named_server_t *)event->ev_arg;
|
named_server_t *server = (named_server_t *)event->ev_arg;
|
||||||
|
dns_geoip_databases_t *geoip;
|
||||||
|
|
||||||
INSIST(task == server->task);
|
INSIST(task == server->task);
|
||||||
|
|
||||||
@@ -9417,25 +9520,19 @@ run_server(isc_task_t *task, isc_event_t *event) {
|
|||||||
|
|
||||||
dns_dispatchmgr_setstats(named_g_dispatchmgr, server->resolverstats);
|
dns_dispatchmgr_setstats(named_g_dispatchmgr, server->resolverstats);
|
||||||
|
|
||||||
#ifdef HAVE_GEOIP
|
#if defined(HAVE_GEOIP) || defined(HAVE_GEOIP2)
|
||||||
CHECKFATAL(ns_interfacemgr_create(named_g_mctx, server->sctx,
|
geoip = named_g_geoip;
|
||||||
named_g_taskmgr, named_g_timermgr,
|
|
||||||
named_g_socketmgr,
|
|
||||||
named_g_dispatchmgr,
|
|
||||||
server->task, named_g_udpdisp,
|
|
||||||
named_g_geoip,
|
|
||||||
&server->interfacemgr),
|
|
||||||
"creating interface manager");
|
|
||||||
#else
|
#else
|
||||||
|
geoip = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
CHECKFATAL(ns_interfacemgr_create(named_g_mctx, server->sctx,
|
CHECKFATAL(ns_interfacemgr_create(named_g_mctx, server->sctx,
|
||||||
named_g_taskmgr, named_g_timermgr,
|
named_g_taskmgr, named_g_timermgr,
|
||||||
named_g_socketmgr,
|
named_g_socketmgr,
|
||||||
named_g_dispatchmgr,
|
named_g_dispatchmgr,
|
||||||
server->task, named_g_udpdisp,
|
server->task, named_g_udpdisp, geoip,
|
||||||
NULL,
|
|
||||||
&server->interfacemgr),
|
&server->interfacemgr),
|
||||||
"creating interface manager");
|
"creating interface manager");
|
||||||
#endif
|
|
||||||
|
|
||||||
CHECKFATAL(isc_timer_create(named_g_timermgr, isc_timertype_inactive,
|
CHECKFATAL(isc_timer_create(named_g_timermgr, isc_timertype_inactive,
|
||||||
NULL, NULL, server->task,
|
NULL, NULL, server->task,
|
||||||
@@ -9557,9 +9654,9 @@ shutdown_server(isc_task_t *task, isc_event_t *event) {
|
|||||||
#ifdef HAVE_DNSTAP
|
#ifdef HAVE_DNSTAP
|
||||||
dns_dt_shutdown();
|
dns_dt_shutdown();
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_GEOIP
|
#if defined(HAVE_GEOIP) || defined(HAVE_GEOIP2)
|
||||||
dns_geoip_shutdown();
|
named_geoip_shutdown();
|
||||||
#endif
|
#endif /* HAVE_GEOIP || HAVE_GEOIP2 */
|
||||||
|
|
||||||
dns_db_detach(&server->in_roothints);
|
dns_db_detach(&server->in_roothints);
|
||||||
|
|
||||||
@@ -9675,14 +9772,14 @@ named_server_create(isc_mem_t *mctx, named_server_t **serverp) {
|
|||||||
&server->sctx),
|
&server->sctx),
|
||||||
"creating server context");
|
"creating server context");
|
||||||
|
|
||||||
#ifdef HAVE_GEOIP
|
#if defined(HAVE_GEOIP) || defined(HAVE_GEOIP2)
|
||||||
/*
|
/*
|
||||||
* GeoIP must be initialized before the interface
|
* GeoIP must be initialized before the interface
|
||||||
* manager (which includes the ACL environment)
|
* manager (which includes the ACL environment)
|
||||||
* is created
|
* is created
|
||||||
*/
|
*/
|
||||||
named_geoip_init();
|
named_geoip_init();
|
||||||
#endif
|
#endif /* HAVE_GEOIP || HAVE_GEOIP2 */
|
||||||
|
|
||||||
#ifdef ENABLE_AFL
|
#ifdef ENABLE_AFL
|
||||||
server->sctx->fuzztype = named_g_fuzz_type;
|
server->sctx->fuzztype = named_g_fuzz_type;
|
||||||
@@ -10570,7 +10667,7 @@ add_zone_tolist(dns_zone_t *zone, void *uap) {
|
|||||||
struct zonelistentry *zle;
|
struct zonelistentry *zle;
|
||||||
|
|
||||||
zle = isc_mem_get(dctx->mctx, sizeof *zle);
|
zle = isc_mem_get(dctx->mctx, sizeof *zle);
|
||||||
if (zle == NULL)
|
if (zle == NULL)
|
||||||
return (ISC_R_NOMEMORY);
|
return (ISC_R_NOMEMORY);
|
||||||
zle->zone = NULL;
|
zle->zone = NULL;
|
||||||
dns_zone_attach(zone, &zle->zone);
|
dns_zone_attach(zone, &zle->zone);
|
||||||
@@ -10647,17 +10744,21 @@ dumpdone(void *arg, isc_result_t result) {
|
|||||||
char buf[1024+32];
|
char buf[1024+32];
|
||||||
const dns_master_style_t *style;
|
const dns_master_style_t *style;
|
||||||
|
|
||||||
if (result != ISC_R_SUCCESS)
|
if (result != ISC_R_SUCCESS) {
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
if (dctx->mdctx != NULL)
|
}
|
||||||
|
if (dctx->mdctx != NULL) {
|
||||||
dns_dumpctx_detach(&dctx->mdctx);
|
dns_dumpctx_detach(&dctx->mdctx);
|
||||||
|
}
|
||||||
if (dctx->view == NULL) {
|
if (dctx->view == NULL) {
|
||||||
dctx->view = ISC_LIST_HEAD(dctx->viewlist);
|
dctx->view = ISC_LIST_HEAD(dctx->viewlist);
|
||||||
if (dctx->view == NULL)
|
if (dctx->view == NULL) {
|
||||||
goto done;
|
goto done;
|
||||||
|
}
|
||||||
INSIST(dctx->zone == NULL);
|
INSIST(dctx->zone == NULL);
|
||||||
} else
|
} else {
|
||||||
goto resume;
|
goto resume;
|
||||||
|
}
|
||||||
nextview:
|
nextview:
|
||||||
fprintf(dctx->fp, ";\n; Start view %s\n;\n", dctx->view->view->name);
|
fprintf(dctx->fp, ";\n; Start view %s\n;\n", dctx->view->view->name);
|
||||||
resume:
|
resume:
|
||||||
@@ -10671,8 +10772,9 @@ dumpdone(void *arg, isc_result_t result) {
|
|||||||
{
|
{
|
||||||
style = &dns_master_style_cache;
|
style = &dns_master_style_cache;
|
||||||
/* start cache dump */
|
/* start cache dump */
|
||||||
if (dctx->view->view->cachedb != NULL)
|
if (dctx->view->view->cachedb != NULL) {
|
||||||
dns_db_attach(dctx->view->view->cachedb, &dctx->cache);
|
dns_db_attach(dctx->view->view->cachedb, &dctx->cache);
|
||||||
|
}
|
||||||
if (dctx->cache != NULL) {
|
if (dctx->cache != NULL) {
|
||||||
fprintf(dctx->fp,
|
fprintf(dctx->fp,
|
||||||
";\n; Cache dump of view '%s' (cache %s)\n;\n",
|
";\n; Cache dump of view '%s' (cache %s)\n;\n",
|
||||||
@@ -10684,43 +10786,52 @@ dumpdone(void *arg, isc_result_t result) {
|
|||||||
dctx->task,
|
dctx->task,
|
||||||
dumpdone, dctx,
|
dumpdone, dctx,
|
||||||
&dctx->mdctx);
|
&dctx->mdctx);
|
||||||
if (result == DNS_R_CONTINUE)
|
if (result == DNS_R_CONTINUE) {
|
||||||
return;
|
return;
|
||||||
if (result == ISC_R_NOTIMPLEMENTED)
|
}
|
||||||
|
if (result == ISC_R_NOTIMPLEMENTED) {
|
||||||
fprintf(dctx->fp, "; %s\n",
|
fprintf(dctx->fp, "; %s\n",
|
||||||
dns_result_totext(result));
|
dns_result_totext(result));
|
||||||
else if (result != ISC_R_SUCCESS)
|
} else if (result != ISC_R_SUCCESS) {
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((dctx->dumpadb || dctx->dumpbad || dctx->dumpfail) &&
|
if ((dctx->dumpadb || dctx->dumpbad || dctx->dumpfail) &&
|
||||||
dctx->cache == NULL && dctx->view->view->cachedb != NULL)
|
dctx->cache == NULL && dctx->view->view->cachedb != NULL) {
|
||||||
dns_db_attach(dctx->view->view->cachedb, &dctx->cache);
|
dns_db_attach(dctx->view->view->cachedb, &dctx->cache);
|
||||||
|
}
|
||||||
|
|
||||||
if (dctx->cache != NULL) {
|
if (dctx->cache != NULL) {
|
||||||
if (dctx->dumpadb)
|
if (dctx->dumpadb) {
|
||||||
dns_adb_dump(dctx->view->view->adb, dctx->fp);
|
dns_adb_dump(dctx->view->view->adb, dctx->fp);
|
||||||
if (dctx->dumpbad)
|
}
|
||||||
|
if (dctx->dumpbad) {
|
||||||
dns_resolver_printbadcache(dctx->view->view->resolver,
|
dns_resolver_printbadcache(dctx->view->view->resolver,
|
||||||
dctx->fp);
|
dctx->fp);
|
||||||
if (dctx->dumpfail)
|
}
|
||||||
|
if (dctx->dumpfail) {
|
||||||
dns_badcache_print(dctx->view->view->failcache,
|
dns_badcache_print(dctx->view->view->failcache,
|
||||||
"SERVFAIL cache", dctx->fp);
|
"SERVFAIL cache", dctx->fp);
|
||||||
|
}
|
||||||
dns_db_detach(&dctx->cache);
|
dns_db_detach(&dctx->cache);
|
||||||
}
|
}
|
||||||
if (dctx->dumpzones) {
|
if (dctx->dumpzones) {
|
||||||
style = &dns_master_style_full;
|
style = &dns_master_style_full;
|
||||||
nextzone:
|
nextzone:
|
||||||
if (dctx->version != NULL)
|
if (dctx->version != NULL) {
|
||||||
dns_db_closeversion(dctx->db, &dctx->version,
|
dns_db_closeversion(dctx->db, &dctx->version,
|
||||||
false);
|
false);
|
||||||
if (dctx->db != NULL)
|
}
|
||||||
|
if (dctx->db != NULL) {
|
||||||
dns_db_detach(&dctx->db);
|
dns_db_detach(&dctx->db);
|
||||||
if (dctx->zone == NULL)
|
}
|
||||||
|
if (dctx->zone == NULL) {
|
||||||
dctx->zone = ISC_LIST_HEAD(dctx->view->zonelist);
|
dctx->zone = ISC_LIST_HEAD(dctx->view->zonelist);
|
||||||
else
|
} else {
|
||||||
dctx->zone = ISC_LIST_NEXT(dctx->zone, link);
|
dctx->zone = ISC_LIST_NEXT(dctx->zone, link);
|
||||||
|
}
|
||||||
if (dctx->zone != NULL) {
|
if (dctx->zone != NULL) {
|
||||||
/* start zone dump */
|
/* start zone dump */
|
||||||
dns_zone_name(dctx->zone->zone, buf, sizeof(buf));
|
dns_zone_name(dctx->zone->zone, buf, sizeof(buf));
|
||||||
@@ -10739,8 +10850,9 @@ dumpdone(void *arg, isc_result_t result) {
|
|||||||
dctx->task,
|
dctx->task,
|
||||||
dumpdone, dctx,
|
dumpdone, dctx,
|
||||||
&dctx->mdctx);
|
&dctx->mdctx);
|
||||||
if (result == DNS_R_CONTINUE)
|
if (result == DNS_R_CONTINUE) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
if (result == ISC_R_NOTIMPLEMENTED) {
|
if (result == ISC_R_NOTIMPLEMENTED) {
|
||||||
fprintf(dctx->fp, "; %s\n",
|
fprintf(dctx->fp, "; %s\n",
|
||||||
dns_result_totext(result));
|
dns_result_totext(result));
|
||||||
@@ -10748,26 +10860,31 @@ dumpdone(void *arg, isc_result_t result) {
|
|||||||
POST(result);
|
POST(result);
|
||||||
goto nextzone;
|
goto nextzone;
|
||||||
}
|
}
|
||||||
if (result != ISC_R_SUCCESS)
|
if (result != ISC_R_SUCCESS) {
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (dctx->view != NULL)
|
if (dctx->view != NULL) {
|
||||||
dctx->view = ISC_LIST_NEXT(dctx->view, link);
|
dctx->view = ISC_LIST_NEXT(dctx->view, link);
|
||||||
if (dctx->view != NULL)
|
if (dctx->view != NULL) {
|
||||||
goto nextview;
|
goto nextview;
|
||||||
|
}
|
||||||
|
}
|
||||||
done:
|
done:
|
||||||
fprintf(dctx->fp, "; Dump complete\n");
|
fprintf(dctx->fp, "; Dump complete\n");
|
||||||
result = isc_stdio_flush(dctx->fp);
|
result = isc_stdio_flush(dctx->fp);
|
||||||
if (result == ISC_R_SUCCESS)
|
if (result == ISC_R_SUCCESS) {
|
||||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||||
NAMED_LOGMODULE_SERVER, ISC_LOG_INFO,
|
NAMED_LOGMODULE_SERVER, ISC_LOG_INFO,
|
||||||
"dumpdb complete");
|
"dumpdb complete");
|
||||||
|
}
|
||||||
cleanup:
|
cleanup:
|
||||||
if (result != ISC_R_SUCCESS)
|
if (result != ISC_R_SUCCESS) {
|
||||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||||
NAMED_LOGMODULE_SERVER, ISC_LOG_ERROR,
|
NAMED_LOGMODULE_SERVER, ISC_LOG_ERROR,
|
||||||
"dumpdb failed: %s", dns_result_totext(result));
|
"dumpdb failed: %s", dns_result_totext(result));
|
||||||
|
}
|
||||||
dumpcontext_destroy(dctx);
|
dumpcontext_destroy(dctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -11453,13 +11570,13 @@ named_server_status(named_server_t *server, isc_buffer_t **text) {
|
|||||||
? "ON" : "OFF");
|
? "ON" : "OFF");
|
||||||
CHECK(putstr(text, line));
|
CHECK(putstr(text, line));
|
||||||
|
|
||||||
snprintf(line, sizeof(line), "recursive clients: %d/%d/%d\n",
|
snprintf(line, sizeof(line), "recursive clients: %u/%u/%u\n",
|
||||||
isc_quota_getused(&server->sctx->recursionquota),
|
isc_quota_getused(&server->sctx->recursionquota),
|
||||||
isc_quota_getsoft(&server->sctx->recursionquota),
|
isc_quota_getsoft(&server->sctx->recursionquota),
|
||||||
isc_quota_getmax(&server->sctx->recursionquota));
|
isc_quota_getmax(&server->sctx->recursionquota));
|
||||||
CHECK(putstr(text, line));
|
CHECK(putstr(text, line));
|
||||||
|
|
||||||
snprintf(line, sizeof(line), "tcp clients: %d/%d\n",
|
snprintf(line, sizeof(line), "tcp clients: %u/%u\n",
|
||||||
isc_quota_getused(&server->sctx->tcpquota),
|
isc_quota_getused(&server->sctx->tcpquota),
|
||||||
isc_quota_getmax(&server->sctx->tcpquota));
|
isc_quota_getmax(&server->sctx->tcpquota));
|
||||||
CHECK(putstr(text, line));
|
CHECK(putstr(text, line));
|
||||||
@@ -14664,13 +14781,13 @@ named_server_nta(named_server_t *server, isc_lex_t *lex,
|
|||||||
"added NTA '%s' (%d sec) in view '%s'",
|
"added NTA '%s' (%d sec) in view '%s'",
|
||||||
namebuf, ntattl, view->name);
|
namebuf, ntattl, view->name);
|
||||||
} else {
|
} else {
|
||||||
bool removed;
|
bool wasremoved;
|
||||||
|
|
||||||
result = dns_ntatable_delete(ntatable, ntaname);
|
result = dns_ntatable_delete(ntatable, ntaname);
|
||||||
if (result == ISC_R_SUCCESS) {
|
if (result == ISC_R_SUCCESS) {
|
||||||
removed = true;
|
wasremoved = true;
|
||||||
} else if (result == ISC_R_NOTFOUND) {
|
} else if (result == ISC_R_NOTFOUND) {
|
||||||
removed = false;
|
wasremoved = false;
|
||||||
} else {
|
} else {
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@@ -14681,13 +14798,13 @@ named_server_nta(named_server_t *server, isc_lex_t *lex,
|
|||||||
first = false;
|
first = false;
|
||||||
|
|
||||||
CHECK(putstr(text, "Negative trust anchor "));
|
CHECK(putstr(text, "Negative trust anchor "));
|
||||||
CHECK(putstr(text, removed ? "removed: "
|
CHECK(putstr(text, wasremoved ? "removed: "
|
||||||
: "not found: "));
|
: "not found: "));
|
||||||
CHECK(putstr(text, namebuf));
|
CHECK(putstr(text, namebuf));
|
||||||
CHECK(putstr(text, "/"));
|
CHECK(putstr(text, "/"));
|
||||||
CHECK(putstr(text, view->name));
|
CHECK(putstr(text, view->name));
|
||||||
|
|
||||||
if (removed) {
|
if (wasremoved) {
|
||||||
isc_log_write(named_g_lctx,
|
isc_log_write(named_g_lctx,
|
||||||
NAMED_LOGCATEGORY_GENERAL,
|
NAMED_LOGCATEGORY_GENERAL,
|
||||||
NAMED_LOGMODULE_SERVER,
|
NAMED_LOGMODULE_SERVER,
|
||||||
@@ -15297,14 +15414,15 @@ named_server_servestale(named_server_t *server, isc_lex_t *lex,
|
|||||||
|
|
||||||
/* Look for the optional class name. */
|
/* Look for the optional class name. */
|
||||||
classtxt = next_token(lex, text);
|
classtxt = next_token(lex, text);
|
||||||
if (classtxt != NULL) {
|
|
||||||
/* Look for the optional view name. */
|
|
||||||
viewtxt = next_token(lex, text);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (classtxt != NULL) {
|
if (classtxt != NULL) {
|
||||||
isc_textregion_t r;
|
isc_textregion_t r;
|
||||||
|
|
||||||
|
/* Look for the optional view name. */
|
||||||
|
viewtxt = next_token(lex, text);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If 'classtext' is not a valid class then it us a view name.
|
||||||
|
*/
|
||||||
r.base = classtxt;
|
r.base = classtxt;
|
||||||
r.length = strlen(classtxt);
|
r.length = strlen(classtxt);
|
||||||
result = dns_rdataclass_fromtext(&rdclass, &r);
|
result = dns_rdataclass_fromtext(&rdclass, &r);
|
||||||
|
|||||||
+178
-13
@@ -1246,6 +1246,12 @@ rdtypestat_dump(dns_rdatastatstype_t type, uint64_t val, void *arg) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool
|
||||||
|
rdatastatstype_attr(dns_rdatastatstype_t type, unsigned int attr)
|
||||||
|
{
|
||||||
|
return ((DNS_RDATASTATSTYPE_ATTR(type) & attr) != 0);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
rdatasetstats_dump(dns_rdatastatstype_t type, uint64_t val, void *arg) {
|
rdatasetstats_dump(dns_rdatastatstype_t type, uint64_t val, void *arg) {
|
||||||
stats_dumparg_t *dumparg = arg;
|
stats_dumparg_t *dumparg = arg;
|
||||||
@@ -1254,6 +1260,7 @@ rdatasetstats_dump(dns_rdatastatstype_t type, uint64_t val, void *arg) {
|
|||||||
const char *typestr;
|
const char *typestr;
|
||||||
bool nxrrset = false;
|
bool nxrrset = false;
|
||||||
bool stale = false;
|
bool stale = false;
|
||||||
|
bool ancient = false;
|
||||||
#ifdef HAVE_LIBXML2
|
#ifdef HAVE_LIBXML2
|
||||||
xmlTextWriterPtr writer;
|
xmlTextWriterPtr writer;
|
||||||
int xmlrc;
|
int xmlrc;
|
||||||
@@ -1275,19 +1282,16 @@ rdatasetstats_dump(dns_rdatastatstype_t type, uint64_t val, void *arg) {
|
|||||||
typestr = typebuf;
|
typestr = typebuf;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((DNS_RDATASTATSTYPE_ATTR(type) & DNS_RDATASTATSTYPE_ATTR_NXRRSET)
|
nxrrset = rdatastatstype_attr(type, DNS_RDATASTATSTYPE_ATTR_NXRRSET);
|
||||||
!= 0)
|
stale = rdatastatstype_attr(type, DNS_RDATASTATSTYPE_ATTR_STALE);
|
||||||
nxrrset = true;
|
ancient = rdatastatstype_attr(type, DNS_RDATASTATSTYPE_ATTR_ANCIENT);
|
||||||
|
|
||||||
if ((DNS_RDATASTATSTYPE_ATTR(type) & DNS_RDATASTATSTYPE_ATTR_STALE)
|
|
||||||
!= 0)
|
|
||||||
stale = true;
|
|
||||||
|
|
||||||
switch (dumparg->type) {
|
switch (dumparg->type) {
|
||||||
case isc_statsformat_file:
|
case isc_statsformat_file:
|
||||||
fp = dumparg->arg;
|
fp = dumparg->arg;
|
||||||
fprintf(fp, "%20" PRIu64 " %s%s%s\n", val,
|
fprintf(fp, "%20" PRIu64 " %s%s%s%s\n", val,
|
||||||
stale ? "#" : "", nxrrset ? "!" : "", typestr);
|
ancient ? "~" : "", stale ? "#" : "",
|
||||||
|
nxrrset ? "!" : "", typestr);
|
||||||
break;
|
break;
|
||||||
case isc_statsformat_xml:
|
case isc_statsformat_xml:
|
||||||
#ifdef HAVE_LIBXML2
|
#ifdef HAVE_LIBXML2
|
||||||
@@ -1295,7 +1299,8 @@ rdatasetstats_dump(dns_rdatastatstype_t type, uint64_t val, void *arg) {
|
|||||||
|
|
||||||
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "rrset"));
|
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "rrset"));
|
||||||
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "name"));
|
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "name"));
|
||||||
TRY0(xmlTextWriterWriteFormatString(writer, "%s%s%s",
|
TRY0(xmlTextWriterWriteFormatString(writer, "%s%s%s%s",
|
||||||
|
ancient ? "~" : "",
|
||||||
stale ? "#" : "",
|
stale ? "#" : "",
|
||||||
nxrrset ? "!" : "", typestr));
|
nxrrset ? "!" : "", typestr));
|
||||||
TRY0(xmlTextWriterEndElement(writer)); /* name */
|
TRY0(xmlTextWriterEndElement(writer)); /* name */
|
||||||
@@ -1312,7 +1317,7 @@ rdatasetstats_dump(dns_rdatastatstype_t type, uint64_t val, void *arg) {
|
|||||||
case isc_statsformat_json:
|
case isc_statsformat_json:
|
||||||
#ifdef HAVE_JSON
|
#ifdef HAVE_JSON
|
||||||
zoneobj = (json_object *) dumparg->arg;
|
zoneobj = (json_object *) dumparg->arg;
|
||||||
snprintf(buf, sizeof(buf), "%s%s%s",
|
snprintf(buf, sizeof(buf), "%s%s%s%s", ancient ? "~" : "",
|
||||||
stale ? "#" : "", nxrrset ? "!" : "", typestr);
|
stale ? "#" : "", nxrrset ? "!" : "", typestr);
|
||||||
obj = json_object_new_int64(val);
|
obj = json_object_new_int64(val);
|
||||||
if (obj == NULL)
|
if (obj == NULL)
|
||||||
@@ -1446,6 +1451,62 @@ rcodestat_dump(dns_rcode_t code, uint64_t val, void *arg) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(EXTENDED_STATS)
|
||||||
|
static void
|
||||||
|
dnssecsignstat_dump(dns_keytag_t tag, uint64_t val, void *arg) {
|
||||||
|
FILE *fp;
|
||||||
|
char tagbuf[64];
|
||||||
|
stats_dumparg_t *dumparg = arg;
|
||||||
|
#ifdef HAVE_LIBXML2
|
||||||
|
xmlTextWriterPtr writer;
|
||||||
|
int xmlrc;
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_JSON
|
||||||
|
json_object *zoneobj, *obj;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
snprintf(tagbuf, sizeof(tagbuf), "%u", tag);
|
||||||
|
|
||||||
|
switch (dumparg->type) {
|
||||||
|
case isc_statsformat_file:
|
||||||
|
fp = dumparg->arg;
|
||||||
|
fprintf(fp, "%20" PRIu64 " %s\n", val, tagbuf);
|
||||||
|
break;
|
||||||
|
case isc_statsformat_xml:
|
||||||
|
#ifdef HAVE_LIBXML2
|
||||||
|
writer = dumparg->arg;
|
||||||
|
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "counter"));
|
||||||
|
TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "name",
|
||||||
|
ISC_XMLCHAR tagbuf ));
|
||||||
|
TRY0(xmlTextWriterWriteFormatString(writer,
|
||||||
|
"%" PRIu64,
|
||||||
|
val));
|
||||||
|
TRY0(xmlTextWriterEndElement(writer)); /* counter */
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
case isc_statsformat_json:
|
||||||
|
#ifdef HAVE_JSON
|
||||||
|
zoneobj = (json_object *) dumparg->arg;
|
||||||
|
obj = json_object_new_int64(val);
|
||||||
|
if (obj == NULL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
json_object_object_add(zoneobj, tagbuf, obj);
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
#ifdef HAVE_LIBXML2
|
||||||
|
error:
|
||||||
|
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||||
|
NAMED_LOGMODULE_SERVER, ISC_LOG_ERROR,
|
||||||
|
"failed at dnssecsignstat_dump()");
|
||||||
|
dumparg->result = ISC_R_FAILURE;
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif /* defined(EXTENDED_STATS) */
|
||||||
|
|
||||||
#ifdef HAVE_LIBXML2
|
#ifdef HAVE_LIBXML2
|
||||||
/*
|
/*
|
||||||
* Which statistics to include when rendering to XML
|
* Which statistics to include when rendering to XML
|
||||||
@@ -1508,6 +1569,8 @@ zone_xmlrender(dns_zone_t *zone, void *arg) {
|
|||||||
isc_stats_t *zonestats;
|
isc_stats_t *zonestats;
|
||||||
isc_stats_t *gluecachestats;
|
isc_stats_t *gluecachestats;
|
||||||
dns_stats_t *rcvquerystats;
|
dns_stats_t *rcvquerystats;
|
||||||
|
dns_stats_t *dnssecsignstats;
|
||||||
|
dns_stats_t *dnssecrefreshstats;
|
||||||
uint64_t nsstat_values[ns_statscounter_max];
|
uint64_t nsstat_values[ns_statscounter_max];
|
||||||
uint64_t gluecachestats_values[dns_gluecachestatscounter_max];
|
uint64_t gluecachestats_values[dns_gluecachestatscounter_max];
|
||||||
|
|
||||||
@@ -1535,8 +1598,8 @@ zone_xmlrender(dns_zone_t *zone, void *arg) {
|
|||||||
TRY0(xmlTextWriterStartElement(writer,
|
TRY0(xmlTextWriterStartElement(writer,
|
||||||
ISC_XMLCHAR "counters"));
|
ISC_XMLCHAR "counters"));
|
||||||
TRY0(xmlTextWriterWriteAttribute(writer,
|
TRY0(xmlTextWriterWriteAttribute(writer,
|
||||||
ISC_XMLCHAR "type",
|
ISC_XMLCHAR "type",
|
||||||
ISC_XMLCHAR "gluecache"));
|
ISC_XMLCHAR "gluecache"));
|
||||||
|
|
||||||
result = dump_counters(gluecachestats,
|
result = dump_counters(gluecachestats,
|
||||||
isc_statsformat_xml,
|
isc_statsformat_xml,
|
||||||
@@ -1569,6 +1632,46 @@ zone_xmlrender(dns_zone_t *zone, void *arg) {
|
|||||||
/* counters type="qtype"*/
|
/* counters type="qtype"*/
|
||||||
TRY0(xmlTextWriterEndElement(writer));
|
TRY0(xmlTextWriterEndElement(writer));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dnssecsignstats = dns_zone_getdnssecsignstats(zone);
|
||||||
|
if (dnssecsignstats != NULL) {
|
||||||
|
TRY0(xmlTextWriterStartElement(writer,
|
||||||
|
ISC_XMLCHAR "counters"));
|
||||||
|
TRY0(xmlTextWriterWriteAttribute(writer,
|
||||||
|
ISC_XMLCHAR "type",
|
||||||
|
ISC_XMLCHAR "dnssec-sign"));
|
||||||
|
|
||||||
|
dumparg.result = ISC_R_SUCCESS;
|
||||||
|
dns_dnssecsignstats_dump(dnssecsignstats,
|
||||||
|
dnssecsignstat_dump,
|
||||||
|
&dumparg, 0);
|
||||||
|
if(dumparg.result != ISC_R_SUCCESS) {
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* counters type="dnssec-sign"*/
|
||||||
|
TRY0(xmlTextWriterEndElement(writer));
|
||||||
|
}
|
||||||
|
|
||||||
|
dnssecrefreshstats = dns_zone_getdnssecrefreshstats(zone);
|
||||||
|
if (dnssecrefreshstats != NULL) {
|
||||||
|
TRY0(xmlTextWriterStartElement(writer,
|
||||||
|
ISC_XMLCHAR "counters"));
|
||||||
|
TRY0(xmlTextWriterWriteAttribute(writer,
|
||||||
|
ISC_XMLCHAR "type",
|
||||||
|
ISC_XMLCHAR "dnssec-refresh"));
|
||||||
|
|
||||||
|
dumparg.result = ISC_R_SUCCESS;
|
||||||
|
dns_dnssecsignstats_dump(dnssecrefreshstats,
|
||||||
|
dnssecsignstat_dump,
|
||||||
|
&dumparg, 0);
|
||||||
|
if(dumparg.result != ISC_R_SUCCESS) {
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* counters type="dnssec-refresh"*/
|
||||||
|
TRY0(xmlTextWriterEndElement(writer));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TRY0(xmlTextWriterEndElement(writer)); /* zone */
|
TRY0(xmlTextWriterEndElement(writer)); /* zone */
|
||||||
@@ -2289,6 +2392,8 @@ zone_jsonrender(dns_zone_t *zone, void *arg) {
|
|||||||
isc_stats_t *zonestats;
|
isc_stats_t *zonestats;
|
||||||
isc_stats_t *gluecachestats;
|
isc_stats_t *gluecachestats;
|
||||||
dns_stats_t *rcvquerystats;
|
dns_stats_t *rcvquerystats;
|
||||||
|
dns_stats_t *dnssecsignstats;
|
||||||
|
dns_stats_t *dnssecrefreshstats;
|
||||||
uint64_t nsstat_values[ns_statscounter_max];
|
uint64_t nsstat_values[ns_statscounter_max];
|
||||||
uint64_t gluecachestats_values[dns_gluecachestatscounter_max];
|
uint64_t gluecachestats_values[dns_gluecachestatscounter_max];
|
||||||
|
|
||||||
@@ -2366,6 +2471,58 @@ zone_jsonrender(dns_zone_t *zone, void *arg) {
|
|||||||
else
|
else
|
||||||
json_object_put(counters);
|
json_object_put(counters);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dnssecsignstats = dns_zone_getdnssecsignstats(zone);
|
||||||
|
if (dnssecsignstats != NULL) {
|
||||||
|
stats_dumparg_t dumparg;
|
||||||
|
json_object *counters = json_object_new_object();
|
||||||
|
CHECKMEM(counters);
|
||||||
|
|
||||||
|
dumparg.type = isc_statsformat_json;
|
||||||
|
dumparg.arg = counters;
|
||||||
|
dumparg.result = ISC_R_SUCCESS;
|
||||||
|
dns_dnssecsignstats_dump(dnssecsignstats,
|
||||||
|
dnssecsignstat_dump,
|
||||||
|
&dumparg, 0);
|
||||||
|
if (dumparg.result != ISC_R_SUCCESS) {
|
||||||
|
json_object_put(counters);
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (json_object_get_object(counters)->count != 0) {
|
||||||
|
json_object_object_add(zoneobj,
|
||||||
|
"dnssec-sign",
|
||||||
|
counters);
|
||||||
|
} else {
|
||||||
|
json_object_put(counters);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dnssecrefreshstats = dns_zone_getdnssecrefreshstats(zone);
|
||||||
|
if (dnssecrefreshstats != NULL) {
|
||||||
|
stats_dumparg_t dumparg;
|
||||||
|
json_object *counters = json_object_new_object();
|
||||||
|
CHECKMEM(counters);
|
||||||
|
|
||||||
|
dumparg.type = isc_statsformat_json;
|
||||||
|
dumparg.arg = counters;
|
||||||
|
dumparg.result = ISC_R_SUCCESS;
|
||||||
|
dns_dnssecsignstats_dump(dnssecrefreshstats,
|
||||||
|
dnssecsignstat_dump,
|
||||||
|
&dumparg, 0);
|
||||||
|
if (dumparg.result != ISC_R_SUCCESS) {
|
||||||
|
json_object_put(counters);
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (json_object_get_object(counters)->count != 0) {
|
||||||
|
json_object_object_add(zoneobj,
|
||||||
|
"dnssec-refresh",
|
||||||
|
counters);
|
||||||
|
} else {
|
||||||
|
json_object_put(counters);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
json_object_array_add(zonearray, zoneobj);
|
json_object_array_add(zonearray, zoneobj);
|
||||||
@@ -3425,6 +3582,10 @@ named_statschannels_configure(named_server_t *server, const cfg_obj_t *config,
|
|||||||
|
|
||||||
ISC_LIST_INIT(new_listeners);
|
ISC_LIST_INIT(new_listeners);
|
||||||
|
|
||||||
|
#ifdef HAVE_LIBXML2
|
||||||
|
xmlInitThreads();
|
||||||
|
#endif /* HAVE_LIBXML2 */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get the list of named.conf 'statistics-channels' statements.
|
* Get the list of named.conf 'statistics-channels' statements.
|
||||||
*/
|
*/
|
||||||
@@ -3557,6 +3718,10 @@ named_statschannels_shutdown(named_server_t *server) {
|
|||||||
ISC_LIST_UNLINK(server->statschannels, listener, link);
|
ISC_LIST_UNLINK(server->statschannels, listener, link);
|
||||||
shutdown_listener(listener);
|
shutdown_listener(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_LIBXML2
|
||||||
|
xmlCleanupThreads();
|
||||||
|
#endif /* HAVE_LIBXML2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
isc_result_t
|
isc_result_t
|
||||||
|
|||||||
@@ -17,7 +17,9 @@
|
|||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#if HAVE_DLFCN_H
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <dns/log.h>
|
#include <dns/log.h>
|
||||||
#include <dns/result.h>
|
#include <dns/result.h>
|
||||||
|
|||||||
@@ -41,6 +41,11 @@
|
|||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
@END GEOIP
|
@END GEOIP
|
||||||
|
@IF GEOIPLEGACY
|
||||||
|
<ClCompile Include="..\geoip.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
@END GEOIPLEGACY
|
||||||
<ClCompile Include="..\log.c">
|
<ClCompile Include="..\log.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
@@ -87,6 +92,11 @@
|
|||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
@END GEOIP
|
@END GEOIP
|
||||||
|
@IF GEOIPLEGACY
|
||||||
|
<ClInclude Include="..\include\named\geoip.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
@END GEOIPLEGACY
|
||||||
<ClInclude Include="..\include\named\globals.h">
|
<ClInclude Include="..\include\named\globals.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{723C65DA-A96C-4BA3-A34E-44F11CA346F9}</ProjectGuid>
|
<ProjectGuid>{723C65DA-A96C-4BA3-A34E-44F11CA346F9}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>named</RootNamespace>
|
<RootNamespace>named</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
@@ -109,6 +112,9 @@
|
|||||||
@IF GEOIP
|
@IF GEOIP
|
||||||
<ClCompile Include="..\geoip.c" />
|
<ClCompile Include="..\geoip.c" />
|
||||||
@END GEOIP
|
@END GEOIP
|
||||||
|
@IF GEOIPLEGACY
|
||||||
|
<ClCompile Include="..\geoip.c" />
|
||||||
|
@END GEOIPLEGACY
|
||||||
<ClCompile Include="..\log.c" />
|
<ClCompile Include="..\log.c" />
|
||||||
<ClCompile Include="..\logconf.c" />
|
<ClCompile Include="..\logconf.c" />
|
||||||
<ClCompile Include="..\main.c" />
|
<ClCompile Include="..\main.c" />
|
||||||
@@ -128,6 +134,9 @@
|
|||||||
@IF GEOIP
|
@IF GEOIP
|
||||||
<ClInclude Include="..\include\named\geoip.h" />
|
<ClInclude Include="..\include\named\geoip.h" />
|
||||||
@END GEOIP
|
@END GEOIP
|
||||||
|
@IF GEOIPLEGACY
|
||||||
|
<ClInclude Include="..\include\named\geoip.h" />
|
||||||
|
@END GEOIPLEGACY
|
||||||
<ClInclude Include="..\include\named\globals.h" />
|
<ClInclude Include="..\include\named\globals.h" />
|
||||||
<ClInclude Include="..\include\named\log.h" />
|
<ClInclude Include="..\include\named\log.h" />
|
||||||
<ClInclude Include="..\include\named\logconf.h" />
|
<ClInclude Include="..\include\named\logconf.h" />
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ ServiceControl(DWORD dwCtrlCode) {
|
|||||||
case SERVICE_CONTROL_STOP:
|
case SERVICE_CONTROL_STOP:
|
||||||
named_server_flushonshutdown(named_g_server, true);
|
named_server_flushonshutdown(named_g_server, true);
|
||||||
isc_app_shutdown();
|
isc_app_shutdown();
|
||||||
UpdateSCM(SERVICE_STOPPED);
|
UpdateSCM(SERVICE_STOP_PENDING);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
+12
-2
@@ -110,6 +110,16 @@ named_os_init(const char *progname) {
|
|||||||
* ntservice_init();
|
* ntservice_init();
|
||||||
*/
|
*/
|
||||||
version_check(progname);
|
version_check(progname);
|
||||||
|
/*
|
||||||
|
* If running in a Cygwin environment, clear the SEM_NOGPFAULTERRORBOX
|
||||||
|
* bit in the process error mode to prevent Cygwin from concealing
|
||||||
|
* non-abort() crashes, giving Windows Error Reporting a chance to
|
||||||
|
* handle such crashes. This is done to ensure all crashes triggered
|
||||||
|
* by system tests can be detected.
|
||||||
|
*/
|
||||||
|
if (getenv("CYGWIN") != NULL) {
|
||||||
|
SetErrorMode(GetErrorMode() & ~SEM_NOGPFAULTERRORBOX);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -349,9 +359,9 @@ named_os_shutdown(void) {
|
|||||||
if (lockfilefd != -1) {
|
if (lockfilefd != -1) {
|
||||||
(void) UnlockFile((HANDLE) _get_osfhandle(lockfilefd),
|
(void) UnlockFile((HANDLE) _get_osfhandle(lockfilefd),
|
||||||
0, 0, 0, 1);
|
0, 0, 0, 1);
|
||||||
close(lockfilefd);
|
|
||||||
lockfilefd = -1;
|
|
||||||
}
|
}
|
||||||
|
cleanup_lockfile();
|
||||||
|
|
||||||
ntservice_shutdown(); /* This MUST be the last thing done */
|
ntservice_shutdown(); /* This MUST be the last thing done */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+48
-37
@@ -566,7 +566,8 @@ configure_staticstub(const cfg_obj_t *zconfig, dns_zone_t *zone,
|
|||||||
RETERR(dns_db_create(mctx, dbtype, dns_zone_getorigin(zone),
|
RETERR(dns_db_create(mctx, dbtype, dns_zone_getorigin(zone),
|
||||||
dns_dbtype_stub, dns_zone_getclass(zone),
|
dns_dbtype_stub, dns_zone_getclass(zone),
|
||||||
0, NULL, &db));
|
0, NULL, &db));
|
||||||
dns_zone_setdb(zone, db);
|
|
||||||
|
dns_rdataset_init(&rdataset);
|
||||||
|
|
||||||
dns_rdatalist_init(&rdatalist_ns);
|
dns_rdatalist_init(&rdatalist_ns);
|
||||||
rdatalist_ns.rdclass = dns_zone_getclass(zone);
|
rdatalist_ns.rdclass = dns_zone_getclass(zone);
|
||||||
@@ -588,23 +589,19 @@ configure_staticstub(const cfg_obj_t *zconfig, dns_zone_t *zone,
|
|||||||
result = cfg_map_get(zconfig, "server-addresses", &obj);
|
result = cfg_map_get(zconfig, "server-addresses", &obj);
|
||||||
if (result == ISC_R_SUCCESS) {
|
if (result == ISC_R_SUCCESS) {
|
||||||
INSIST(obj != NULL);
|
INSIST(obj != NULL);
|
||||||
result = configure_staticstub_serveraddrs(obj, zone,
|
CHECK(configure_staticstub_serveraddrs(obj, zone,
|
||||||
&rdatalist_ns,
|
&rdatalist_ns,
|
||||||
&rdatalist_a,
|
&rdatalist_a,
|
||||||
&rdatalist_aaaa);
|
&rdatalist_aaaa));
|
||||||
if (result != ISC_R_SUCCESS)
|
|
||||||
goto cleanup;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
obj = NULL;
|
obj = NULL;
|
||||||
result = cfg_map_get(zconfig, "server-names", &obj);
|
result = cfg_map_get(zconfig, "server-names", &obj);
|
||||||
if (result == ISC_R_SUCCESS) {
|
if (result == ISC_R_SUCCESS) {
|
||||||
INSIST(obj != NULL);
|
INSIST(obj != NULL);
|
||||||
result = configure_staticstub_servernames(obj, zone,
|
CHECK(configure_staticstub_servernames(obj, zone,
|
||||||
&rdatalist_ns,
|
&rdatalist_ns,
|
||||||
zname);
|
zname));
|
||||||
if (result != ISC_R_SUCCESS)
|
|
||||||
goto cleanup;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -625,34 +622,26 @@ configure_staticstub(const cfg_obj_t *zconfig, dns_zone_t *zone,
|
|||||||
* First open a new version for the add operation and get a pointer
|
* First open a new version for the add operation and get a pointer
|
||||||
* to the apex node (all RRs are of the apex name).
|
* to the apex node (all RRs are of the apex name).
|
||||||
*/
|
*/
|
||||||
result = dns_db_newversion(db, &dbversion);
|
CHECK(dns_db_newversion(db, &dbversion));
|
||||||
if (result != ISC_R_SUCCESS)
|
|
||||||
goto cleanup;
|
|
||||||
dns_name_init(&apexname, NULL);
|
dns_name_init(&apexname, NULL);
|
||||||
dns_name_clone(dns_zone_getorigin(zone), &apexname);
|
dns_name_clone(dns_zone_getorigin(zone), &apexname);
|
||||||
result = dns_db_findnode(db, &apexname, false, &apexnode);
|
CHECK(dns_db_findnode(db, &apexname, false, &apexnode));
|
||||||
if (result != ISC_R_SUCCESS)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
/* Add NS RRset */
|
/* Add NS RRset */
|
||||||
dns_rdataset_init(&rdataset);
|
|
||||||
RUNTIME_CHECK(dns_rdatalist_tordataset(&rdatalist_ns, &rdataset)
|
RUNTIME_CHECK(dns_rdatalist_tordataset(&rdatalist_ns, &rdataset)
|
||||||
== ISC_R_SUCCESS);
|
== ISC_R_SUCCESS);
|
||||||
result = dns_db_addrdataset(db, apexnode, dbversion, 0, &rdataset,
|
CHECK(dns_db_addrdataset(db, apexnode, dbversion, 0, &rdataset,
|
||||||
0, NULL);
|
0, NULL));
|
||||||
dns_rdataset_disassociate(&rdataset);
|
dns_rdataset_disassociate(&rdataset);
|
||||||
if (result != ISC_R_SUCCESS)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
/* Add glue A RRset, if any */
|
/* Add glue A RRset, if any */
|
||||||
if (!ISC_LIST_EMPTY(rdatalist_a.rdata)) {
|
if (!ISC_LIST_EMPTY(rdatalist_a.rdata)) {
|
||||||
RUNTIME_CHECK(dns_rdatalist_tordataset(&rdatalist_a, &rdataset)
|
RUNTIME_CHECK(dns_rdatalist_tordataset(&rdatalist_a, &rdataset)
|
||||||
== ISC_R_SUCCESS);
|
== ISC_R_SUCCESS);
|
||||||
result = dns_db_addrdataset(db, apexnode, dbversion, 0,
|
CHECK(dns_db_addrdataset(db, apexnode, dbversion, 0,
|
||||||
&rdataset, 0, NULL);
|
&rdataset, 0, NULL));
|
||||||
dns_rdataset_disassociate(&rdataset);
|
dns_rdataset_disassociate(&rdataset);
|
||||||
if (result != ISC_R_SUCCESS)
|
|
||||||
goto cleanup;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Add glue AAAA RRset, if any */
|
/* Add glue AAAA RRset, if any */
|
||||||
@@ -660,22 +649,29 @@ configure_staticstub(const cfg_obj_t *zconfig, dns_zone_t *zone,
|
|||||||
RUNTIME_CHECK(dns_rdatalist_tordataset(&rdatalist_aaaa,
|
RUNTIME_CHECK(dns_rdatalist_tordataset(&rdatalist_aaaa,
|
||||||
&rdataset)
|
&rdataset)
|
||||||
== ISC_R_SUCCESS);
|
== ISC_R_SUCCESS);
|
||||||
result = dns_db_addrdataset(db, apexnode, dbversion, 0,
|
CHECK(dns_db_addrdataset(db, apexnode, dbversion, 0,
|
||||||
&rdataset, 0, NULL);
|
&rdataset, 0, NULL));
|
||||||
dns_rdataset_disassociate(&rdataset);
|
dns_rdataset_disassociate(&rdataset);
|
||||||
if (result != ISC_R_SUCCESS)
|
|
||||||
goto cleanup;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dns_db_closeversion(db, &dbversion, true);
|
||||||
|
dns_zone_setdb(zone, db);
|
||||||
|
|
||||||
result = ISC_R_SUCCESS;
|
result = ISC_R_SUCCESS;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
if (apexnode != NULL)
|
if (dns_rdataset_isassociated(&rdataset)) {
|
||||||
|
dns_rdataset_disassociate(&rdataset);
|
||||||
|
}
|
||||||
|
if (apexnode != NULL) {
|
||||||
dns_db_detachnode(db, &apexnode);
|
dns_db_detachnode(db, &apexnode);
|
||||||
if (dbversion != NULL)
|
}
|
||||||
dns_db_closeversion(db, &dbversion, true);
|
if (dbversion != NULL) {
|
||||||
if (db != NULL)
|
dns_db_closeversion(db, &dbversion, false);
|
||||||
|
}
|
||||||
|
if (db != NULL) {
|
||||||
dns_db_detach(&db);
|
dns_db_detach(&db);
|
||||||
|
}
|
||||||
for (i = 0; rdatalists[i] != NULL; i++) {
|
for (i = 0; rdatalists[i] != NULL; i++) {
|
||||||
while ((rdata = ISC_LIST_HEAD(rdatalists[i]->rdata)) != NULL) {
|
while ((rdata = ISC_LIST_HEAD(rdatalists[i]->rdata)) != NULL) {
|
||||||
ISC_LIST_UNLINK(rdatalists[i]->rdata, rdata, link);
|
ISC_LIST_UNLINK(rdatalists[i]->rdata, rdata, link);
|
||||||
@@ -906,6 +902,8 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
|||||||
const dns_master_style_t *masterstyle = &dns_master_style_default;
|
const dns_master_style_t *masterstyle = &dns_master_style_default;
|
||||||
isc_stats_t *zoneqrystats;
|
isc_stats_t *zoneqrystats;
|
||||||
dns_stats_t *rcvquerystats;
|
dns_stats_t *rcvquerystats;
|
||||||
|
dns_stats_t *dnssecsignstats;
|
||||||
|
dns_stats_t *dnssecrefreshstats;
|
||||||
dns_zonestat_level_t statlevel = dns_zonestat_none;
|
dns_zonestat_level_t statlevel = dns_zonestat_none;
|
||||||
int seconds;
|
int seconds;
|
||||||
dns_zone_t *mayberaw = (raw != NULL) ? raw : zone;
|
dns_zone_t *mayberaw = (raw != NULL) ? raw : zone;
|
||||||
@@ -1190,14 +1188,19 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
|||||||
|
|
||||||
zoneqrystats = NULL;
|
zoneqrystats = NULL;
|
||||||
rcvquerystats = NULL;
|
rcvquerystats = NULL;
|
||||||
|
dnssecsignstats = NULL;
|
||||||
|
dnssecrefreshstats = NULL;
|
||||||
if (statlevel == dns_zonestat_full) {
|
if (statlevel == dns_zonestat_full) {
|
||||||
RETERR(isc_stats_create(mctx, &zoneqrystats,
|
RETERR(isc_stats_create(mctx, &zoneqrystats,
|
||||||
ns_statscounter_max));
|
ns_statscounter_max));
|
||||||
RETERR(dns_rdatatypestats_create(mctx,
|
RETERR(dns_rdatatypestats_create(mctx, &rcvquerystats));
|
||||||
&rcvquerystats));
|
RETERR(dns_dnssecsignstats_create(mctx, &dnssecsignstats));
|
||||||
|
RETERR(dns_dnssecsignstats_create(mctx, &dnssecrefreshstats));
|
||||||
}
|
}
|
||||||
dns_zone_setrequeststats(zone, zoneqrystats);
|
dns_zone_setrequeststats(zone, zoneqrystats);
|
||||||
dns_zone_setrcvquerystats(zone, rcvquerystats);
|
dns_zone_setrcvquerystats(zone, rcvquerystats);
|
||||||
|
dns_zone_setdnssecsignstats(zone, dnssecsignstats);
|
||||||
|
dns_zone_setdnssecrefreshstats(zone, dnssecrefreshstats);
|
||||||
|
|
||||||
if (zoneqrystats != NULL)
|
if (zoneqrystats != NULL)
|
||||||
isc_stats_detach(&zoneqrystats);
|
isc_stats_detach(&zoneqrystats);
|
||||||
@@ -1205,6 +1208,14 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
|||||||
if(rcvquerystats != NULL)
|
if(rcvquerystats != NULL)
|
||||||
dns_stats_detach(&rcvquerystats);
|
dns_stats_detach(&rcvquerystats);
|
||||||
|
|
||||||
|
if(dnssecsignstats != NULL) {
|
||||||
|
dns_stats_detach(&dnssecsignstats);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(dnssecrefreshstats != NULL) {
|
||||||
|
dns_stats_detach(&dnssecrefreshstats);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Configure master functionality. This applies
|
* Configure master functionality. This applies
|
||||||
* to primary masters (type "master") and slaves
|
* to primary masters (type "master") and slaves
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ CINCLUDES = ${DNS_INCLUDES} ${BIND9_INCLUDES} ${ISC_INCLUDES} \
|
|||||||
CDEFINES = -DVERSION=\"${VERSION}\" @USE_GSSAPI@
|
CDEFINES = -DVERSION=\"${VERSION}\" @USE_GSSAPI@
|
||||||
CWARNINGS =
|
CWARNINGS =
|
||||||
|
|
||||||
DNSLIBS = ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
|
DNSLIBS = ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
|
||||||
BIND9LIBS = ../../lib/bind9/libbind9.@A@
|
BIND9LIBS = ../../lib/bind9/libbind9.@A@
|
||||||
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
||||||
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
#include <isc/mem.h>
|
#include <isc/mem.h>
|
||||||
#include <isc/nonce.h>
|
#include <isc/nonce.h>
|
||||||
#include <isc/parseint.h>
|
#include <isc/parseint.h>
|
||||||
|
#include <isc/portset.h>
|
||||||
#include <isc/print.h>
|
#include <isc/print.h>
|
||||||
#include <isc/platform.h>
|
#include <isc/platform.h>
|
||||||
#include <isc/random.h>
|
#include <isc/random.h>
|
||||||
@@ -748,6 +749,34 @@ shutdown_program(isc_task_t *task, isc_event_t *event) {
|
|||||||
maybeshutdown();
|
maybeshutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Try honoring the operating system's preferred ephemeral port range.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
set_source_ports(dns_dispatchmgr_t *manager) {
|
||||||
|
isc_portset_t *v4portset = NULL, *v6portset = NULL;
|
||||||
|
in_port_t udpport_low, udpport_high;
|
||||||
|
isc_result_t result;
|
||||||
|
|
||||||
|
result = isc_portset_create(gmctx, &v4portset);
|
||||||
|
check_result(result, "isc_portset_create (v4)");
|
||||||
|
result = isc_net_getudpportrange(AF_INET, &udpport_low, &udpport_high);
|
||||||
|
check_result(result, "isc_net_getudpportrange (v4)");
|
||||||
|
isc_portset_addrange(v4portset, udpport_low, udpport_high);
|
||||||
|
|
||||||
|
result = isc_portset_create(gmctx, &v6portset);
|
||||||
|
check_result(result, "isc_portset_create (v6)");
|
||||||
|
result = isc_net_getudpportrange(AF_INET6, &udpport_low, &udpport_high);
|
||||||
|
check_result(result, "isc_net_getudpportrange (v6)");
|
||||||
|
isc_portset_addrange(v6portset, udpport_low, udpport_high);
|
||||||
|
|
||||||
|
result = dns_dispatchmgr_setavailports(manager, v4portset, v6portset);
|
||||||
|
check_result(result, "dns_dispatchmgr_setavailports");
|
||||||
|
|
||||||
|
isc_portset_destroy(gmctx, &v4portset);
|
||||||
|
isc_portset_destroy(gmctx, &v6portset);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
setup_system(void) {
|
setup_system(void) {
|
||||||
isc_result_t result;
|
isc_result_t result;
|
||||||
@@ -898,6 +927,8 @@ setup_system(void) {
|
|||||||
check_result(result, "dst_lib_init");
|
check_result(result, "dst_lib_init");
|
||||||
is_dst_up = true;
|
is_dst_up = true;
|
||||||
|
|
||||||
|
set_source_ports(dispatchmgr);
|
||||||
|
|
||||||
attrmask = DNS_DISPATCHATTR_UDP | DNS_DISPATCHATTR_TCP;
|
attrmask = DNS_DISPATCHATTR_UDP | DNS_DISPATCHATTR_TCP;
|
||||||
attrmask |= DNS_DISPATCHATTR_IPV4 | DNS_DISPATCHATTR_IPV6;
|
attrmask |= DNS_DISPATCHATTR_IPV4 | DNS_DISPATCHATTR_IPV6;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{C41266C7-E27E-4D60-9815-82D3B32BF82F}</ProjectGuid>
|
<ProjectGuid>{C41266C7-E27E-4D60-9815-82D3B32BF82F}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>nsupdate</RootNamespace>
|
<RootNamespace>nsupdate</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -187,13 +187,13 @@ main(int argc, char *argv[]) {
|
|||||||
isc_result_t result;
|
isc_result_t result;
|
||||||
CK_RV rv;
|
CK_RV rv;
|
||||||
CK_SLOT_ID slot = 0;
|
CK_SLOT_ID slot = 0;
|
||||||
CK_MECHANISM mech, dpmech;
|
CK_MECHANISM mech;
|
||||||
CK_SESSION_HANDLE hSession;
|
CK_SESSION_HANDLE hSession;
|
||||||
char *lib_name = NULL;
|
char *lib_name = NULL;
|
||||||
char *pin = NULL;
|
char *pin = NULL;
|
||||||
CK_ULONG bits = 0;
|
CK_ULONG bits = 0;
|
||||||
CK_CHAR *label = NULL;
|
CK_CHAR *label = NULL;
|
||||||
CK_OBJECT_HANDLE privatekey, publickey, domainparams;
|
CK_OBJECT_HANDLE privatekey, publickey;
|
||||||
CK_BYTE exponent[5];
|
CK_BYTE exponent[5];
|
||||||
CK_ULONG expsize = 0;
|
CK_ULONG expsize = 0;
|
||||||
pk11_context_t pctx;
|
pk11_context_t pctx;
|
||||||
@@ -201,7 +201,6 @@ main(int argc, char *argv[]) {
|
|||||||
int c, errflg = 0;
|
int c, errflg = 0;
|
||||||
int hide = 1, quiet = 0;
|
int hide = 1, quiet = 0;
|
||||||
int idlen = 0, id_offset = 0;
|
int idlen = 0, id_offset = 0;
|
||||||
unsigned int i;
|
|
||||||
unsigned long id = 0;
|
unsigned long id = 0;
|
||||||
CK_BYTE idbuf[4];
|
CK_BYTE idbuf[4];
|
||||||
CK_ULONG ulObjectCount;
|
CK_ULONG ulObjectCount;
|
||||||
@@ -209,10 +208,7 @@ main(int argc, char *argv[]) {
|
|||||||
{CKA_LABEL, NULL_PTR, 0}
|
{CKA_LABEL, NULL_PTR, 0}
|
||||||
};
|
};
|
||||||
CK_ATTRIBUTE *public_template = NULL;
|
CK_ATTRIBUTE *public_template = NULL;
|
||||||
CK_ATTRIBUTE *domain_template = NULL;
|
|
||||||
CK_ATTRIBUTE *param_template = NULL;
|
|
||||||
CK_ULONG public_attrcnt = 0, private_attrcnt = PRIVATE_ATTRS;
|
CK_ULONG public_attrcnt = 0, private_attrcnt = PRIVATE_ATTRS;
|
||||||
CK_ULONG domain_attrcnt = 0, param_attrcnt = 0;
|
|
||||||
key_class_t keyclass = key_rsa;
|
key_class_t keyclass = key_rsa;
|
||||||
pk11_optype_t op_type = OP_ANY;
|
pk11_optype_t op_type = OP_ANY;
|
||||||
|
|
||||||
@@ -457,46 +453,6 @@ main(int argc, char *argv[]) {
|
|||||||
private_template[5].pValue = &truevalue;
|
private_template[5].pValue = &truevalue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (keyclass == key_rsa || keyclass == key_ecc || keyclass == key_ecx)
|
|
||||||
goto generate_keys;
|
|
||||||
|
|
||||||
/* Generate Domain parameters */
|
|
||||||
rv = pkcs_C_GenerateKey(hSession, &dpmech, domain_template,
|
|
||||||
domain_attrcnt, &domainparams);
|
|
||||||
|
|
||||||
if (rv != CKR_OK) {
|
|
||||||
fprintf(stderr,
|
|
||||||
"C_GenerateKey: Error = 0x%.8lX\n", rv);
|
|
||||||
error = 1;
|
|
||||||
goto exit_search;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Get Domain parameters */
|
|
||||||
rv = pkcs_C_GetAttributeValue(hSession, domainparams,
|
|
||||||
param_template, param_attrcnt);
|
|
||||||
|
|
||||||
if (rv != CKR_OK) {
|
|
||||||
fprintf(stderr,
|
|
||||||
"C_GetAttributeValue0: Error = 0x%.8lX\n", rv);
|
|
||||||
error = 1;
|
|
||||||
goto exit_search;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Allocate space for parameter attributes */
|
|
||||||
for (i = 0; i < param_attrcnt; i++) {
|
|
||||||
param_template[i].pValue = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < param_attrcnt; i++) {
|
|
||||||
param_template[i].pValue = malloc(param_template[i].ulValueLen);
|
|
||||||
if (param_template[i].pValue == NULL) {
|
|
||||||
fprintf(stderr, "malloc failed\n");
|
|
||||||
error = 1;
|
|
||||||
goto exit_search;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
generate_keys:
|
|
||||||
/* Generate Key pair for signing/verifying */
|
/* Generate Key pair for signing/verifying */
|
||||||
rv = pkcs_C_GenerateKeyPair(hSession, &mech,
|
rv = pkcs_C_GenerateKeyPair(hSession, &mech,
|
||||||
public_template, public_attrcnt,
|
public_template, public_attrcnt,
|
||||||
@@ -506,8 +462,9 @@ main(int argc, char *argv[]) {
|
|||||||
if (rv != CKR_OK) {
|
if (rv != CKR_OK) {
|
||||||
fprintf(stderr, "C_GenerateKeyPair: Error = 0x%.8lX\n", rv);
|
fprintf(stderr, "C_GenerateKeyPair: Error = 0x%.8lX\n", rv);
|
||||||
error = 1;
|
error = 1;
|
||||||
} else if (!quiet)
|
} else if (!quiet) {
|
||||||
printf("Key pair generation complete.\n");
|
printf("Key pair generation complete.\n");
|
||||||
|
}
|
||||||
|
|
||||||
exit_search:
|
exit_search:
|
||||||
rv = pkcs_C_FindObjectsFinal(hSession);
|
rv = pkcs_C_FindObjectsFinal(hSession);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{5B3137E5-7E1F-49AA-8810-A09AA417D326}</ProjectGuid>
|
<ProjectGuid>{5B3137E5-7E1F-49AA-8810-A09AA417D326}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>pk11destroy</RootNamespace>
|
<RootNamespace>pk11destroy</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{5042D371-0402-4FA3-A52A-769708694422}</ProjectGuid>
|
<ProjectGuid>{5042D371-0402-4FA3-A52A-769708694422}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>pk11keygen</RootNamespace>
|
<RootNamespace>pk11keygen</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{C663B088-F7BC-4C8C-8D06-A76636EED651}</ProjectGuid>
|
<ProjectGuid>{C663B088-F7BC-4C8C-8D06-A76636EED651}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>pk11list</RootNamespace>
|
<RootNamespace>pk11list</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{403FD4B1-A4F9-4159-9013-5860E3A4417D}</ProjectGuid>
|
<ProjectGuid>{403FD4B1-A4F9-4159-9013-5860E3A4417D}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>pk11tokens</RootNamespace>
|
<RootNamespace>pk11tokens</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
+13
-6
@@ -17,7 +17,7 @@ CINCLUDES = -I${srcdir}/include -I${srcdir}/unix/include -I. \
|
|||||||
${NS_INCLUDES} ${DNS_INCLUDES} \
|
${NS_INCLUDES} ${DNS_INCLUDES} \
|
||||||
${ISCCFG_INCLUDES} ${ISC_INCLUDES}
|
${ISCCFG_INCLUDES} ${ISC_INCLUDES}
|
||||||
|
|
||||||
DNSLIBS = ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
|
DNSLIBS = ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
|
||||||
ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
|
ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
|
||||||
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
||||||
NSLIBS = ../../lib/ns/libns.@A@
|
NSLIBS = ../../lib/ns/libns.@A@
|
||||||
@@ -25,6 +25,7 @@ NSLIBS = ../../lib/ns/libns.@A@
|
|||||||
LIBS =
|
LIBS =
|
||||||
|
|
||||||
SO_TARGETS = lib/filter-aaaa.@SO@
|
SO_TARGETS = lib/filter-aaaa.@SO@
|
||||||
|
SO_INSTALL = filter-aaaa.@SO@
|
||||||
TARGETS = @SO_TARGETS@
|
TARGETS = @SO_TARGETS@
|
||||||
|
|
||||||
SO_OBJS = filter-aaaa.@O@
|
SO_OBJS = filter-aaaa.@O@
|
||||||
@@ -59,14 +60,20 @@ clean distclean::
|
|||||||
rm -f ${TARGETS} ${OBJS}
|
rm -f ${TARGETS} ${OBJS}
|
||||||
|
|
||||||
installdirs:
|
installdirs:
|
||||||
$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${libdir}
|
$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${plugindir}
|
||||||
$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${mandir}/man8
|
$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${mandir}/man8
|
||||||
|
|
||||||
install:: filter-aaaa.@SO@ installdirs
|
install:: @SO_TARGETS@ installdirs
|
||||||
${LIBTOOL_MODE_INSTALL} ${INSTALL_LIBRARY} filter-aaaa.@SO@ \
|
for i in ${SO_INSTALL} ; \
|
||||||
${DESTDIR}${libdir}
|
do \
|
||||||
|
if test -f $$i ; \
|
||||||
|
then \
|
||||||
|
${LIBTOOL_MODE_INSTALL} ${INSTALL_LIBRARY} $$i \
|
||||||
|
${DESTDIR}${plugindir}; \
|
||||||
|
fi \
|
||||||
|
done
|
||||||
${INSTALL_DATA} ${srcdir}/filter-aaaa.8 ${DESTDIR}${mandir}/man8
|
${INSTALL_DATA} ${srcdir}/filter-aaaa.8 ${DESTDIR}${mandir}/man8
|
||||||
|
|
||||||
uninstall::
|
uninstall::
|
||||||
${LIBTOOL_MODE_UNINSTALL} rm -f ${DESTDIR}${libdir}/filter-aaaa.@SO@
|
${LIBTOOL_MODE_UNINSTALL} rm -f ${DESTDIR}${plugindir}/filter-aaaa.@SO@
|
||||||
rm -f ${DESTDIR}${mandir}/man8/filter-aaaa.8
|
rm -f ${DESTDIR}${mandir}/man8/filter-aaaa.8
|
||||||
|
|||||||
@@ -85,11 +85,13 @@ typedef struct filter_instance {
|
|||||||
* Memory pool for use with persistent data.
|
* Memory pool for use with persistent data.
|
||||||
*/
|
*/
|
||||||
isc_mempool_t *datapool;
|
isc_mempool_t *datapool;
|
||||||
|
isc_mutex_t plock;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Hash table associating a client object with its persistent data.
|
* Hash table associating a client object with its persistent data.
|
||||||
*/
|
*/
|
||||||
isc_ht_t *ht;
|
isc_ht_t *ht;
|
||||||
|
isc_mutex_t hlock;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Values configured when the module is loaded.
|
* Values configured when the module is loaded.
|
||||||
@@ -377,6 +379,7 @@ plugin_register(const char *parameters,
|
|||||||
CHECK(isc_mempool_create(mctx, sizeof(filter_data_t),
|
CHECK(isc_mempool_create(mctx, sizeof(filter_data_t),
|
||||||
&inst->datapool));
|
&inst->datapool));
|
||||||
CHECK(isc_ht_init(&inst->ht, mctx, 16));
|
CHECK(isc_ht_init(&inst->ht, mctx, 16));
|
||||||
|
isc_mutex_init(&inst->hlock);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fill the mempool with 1K filter_aaaa state objects at
|
* Fill the mempool with 1K filter_aaaa state objects at
|
||||||
@@ -390,6 +393,8 @@ plugin_register(const char *parameters,
|
|||||||
*/
|
*/
|
||||||
isc_mempool_setfillcount(inst->datapool, 1024);
|
isc_mempool_setfillcount(inst->datapool, 1024);
|
||||||
isc_mempool_setfreemax(inst->datapool, UINT_MAX);
|
isc_mempool_setfreemax(inst->datapool, UINT_MAX);
|
||||||
|
isc_mutex_init(&inst->plock);
|
||||||
|
isc_mempool_associatelock(inst->datapool, &inst->plock);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set hook points in the view's hooktable.
|
* Set hook points in the view's hooktable.
|
||||||
@@ -445,9 +450,11 @@ plugin_destroy(void **instp) {
|
|||||||
|
|
||||||
if (inst->ht != NULL) {
|
if (inst->ht != NULL) {
|
||||||
isc_ht_destroy(&inst->ht);
|
isc_ht_destroy(&inst->ht);
|
||||||
|
isc_mutex_destroy(&inst->hlock);
|
||||||
}
|
}
|
||||||
if (inst->datapool != NULL) {
|
if (inst->datapool != NULL) {
|
||||||
isc_mempool_destroy(&inst->datapool);
|
isc_mempool_destroy(&inst->datapool);
|
||||||
|
isc_mutex_destroy(&inst->plock);
|
||||||
}
|
}
|
||||||
if (inst->aaaa_acl != NULL) {
|
if (inst->aaaa_acl != NULL) {
|
||||||
dns_acl_detach(&inst->aaaa_acl);
|
dns_acl_detach(&inst->aaaa_acl);
|
||||||
@@ -517,8 +524,10 @@ client_state_get(const query_ctx_t *qctx, filter_instance_t *inst) {
|
|||||||
filter_data_t *client_state = NULL;
|
filter_data_t *client_state = NULL;
|
||||||
isc_result_t result;
|
isc_result_t result;
|
||||||
|
|
||||||
|
LOCK(&inst->hlock);
|
||||||
result = isc_ht_find(inst->ht, (const unsigned char *)&qctx->client,
|
result = isc_ht_find(inst->ht, (const unsigned char *)&qctx->client,
|
||||||
sizeof(qctx->client), (void **)&client_state);
|
sizeof(qctx->client), (void **)&client_state);
|
||||||
|
UNLOCK(&inst->hlock);
|
||||||
|
|
||||||
return (result == ISC_R_SUCCESS ? client_state : NULL);
|
return (result == ISC_R_SUCCESS ? client_state : NULL);
|
||||||
}
|
}
|
||||||
@@ -536,8 +545,10 @@ client_state_create(const query_ctx_t *qctx, filter_instance_t *inst) {
|
|||||||
client_state->mode = NONE;
|
client_state->mode = NONE;
|
||||||
client_state->flags = 0;
|
client_state->flags = 0;
|
||||||
|
|
||||||
|
LOCK(&inst->hlock);
|
||||||
result = isc_ht_add(inst->ht, (const unsigned char *)&qctx->client,
|
result = isc_ht_add(inst->ht, (const unsigned char *)&qctx->client,
|
||||||
sizeof(qctx->client), client_state);
|
sizeof(qctx->client), client_state);
|
||||||
|
UNLOCK(&inst->hlock);
|
||||||
RUNTIME_CHECK(result == ISC_R_SUCCESS);
|
RUNTIME_CHECK(result == ISC_R_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -550,8 +561,10 @@ client_state_destroy(const query_ctx_t *qctx, filter_instance_t *inst) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LOCK(&inst->hlock);
|
||||||
result = isc_ht_delete(inst->ht, (const unsigned char *)&qctx->client,
|
result = isc_ht_delete(inst->ht, (const unsigned char *)&qctx->client,
|
||||||
sizeof(qctx->client));
|
sizeof(qctx->client));
|
||||||
|
UNLOCK(&inst->hlock);
|
||||||
RUNTIME_CHECK(result == ISC_R_SUCCESS);
|
RUNTIME_CHECK(result == ISC_R_SUCCESS);
|
||||||
|
|
||||||
isc_mempool_put(inst->datapool, client_state);
|
isc_mempool_put(inst->datapool, client_state);
|
||||||
|
|||||||
+19
-17
@@ -49,7 +49,7 @@ and
|
|||||||
\fBdnssec\-settime\fR\&.
|
\fBdnssec\-settime\fR\&.
|
||||||
.PP
|
.PP
|
||||||
DNSSEC policy can be read from a configuration file (default
|
DNSSEC policy can be read from a configuration file (default
|
||||||
/etc/dnssec\-policy\&.conf), from which the key parameters, publication and rollover schedule, and desired coverage duration for any given zone can be determined\&. This file may be used to define individual DNSSEC policies on a per\-zone basis, or to set a default policy used for all zones\&.
|
/etc/dnssec\-policy\&.conf), from which the key parameters, publication and rollover schedule, and desired coverage duration for any given zone can be determined\&. This file may be used to define individual DNSSEC policies on a per\-zone basis, or to set a "default" policy used for all zones\&.
|
||||||
.PP
|
.PP
|
||||||
When
|
When
|
||||||
\fBdnssec\-keymgr\fR
|
\fBdnssec\-keymgr\fR
|
||||||
@@ -181,7 +181,8 @@ would be used for zones that had unusually high security needs\&.
|
|||||||
.sp -1
|
.sp -1
|
||||||
.IP \(bu 2.3
|
.IP \(bu 2.3
|
||||||
.\}
|
.\}
|
||||||
Algorithm policies: (\fBalgorithm\-policy \fR\fB\fIalgorithm\fR\fR\fB { \&.\&.\&. };\fR
|
\fIAlgorithm policies:\fR
|
||||||
|
(\fBalgorithm\-policy \fR\fB\fIalgorithm\fR\fR\fB { \&.\&.\&. };\fR
|
||||||
) override default per\-algorithm settings\&. For example, by default, RSASHA256 keys use 2048\-bit key sizes for both KSK and ZSK\&. This can be modified using
|
) override default per\-algorithm settings\&. For example, by default, RSASHA256 keys use 2048\-bit key sizes for both KSK and ZSK\&. This can be modified using
|
||||||
\fBalgorithm\-policy\fR, and the new key sizes would then be used for any key of type RSASHA256\&.
|
\fBalgorithm\-policy\fR, and the new key sizes would then be used for any key of type RSASHA256\&.
|
||||||
.RE
|
.RE
|
||||||
@@ -194,59 +195,60 @@ Algorithm policies: (\fBalgorithm\-policy \fR\fB\fIalgorithm\fR\fR\fB { \&.\&.\&
|
|||||||
.sp -1
|
.sp -1
|
||||||
.IP \(bu 2.3
|
.IP \(bu 2.3
|
||||||
.\}
|
.\}
|
||||||
Zone policies: (\fBzone \fR\fB\fIname\fR\fR\fB { \&.\&.\&. };\fR
|
\fIZone policies:\fR
|
||||||
|
(\fBzone \fR\fB\fIname\fR\fR\fB { \&.\&.\&. };\fR
|
||||||
) set policy for a single zone by name\&. A zone policy can inherit a policy class by including a
|
) set policy for a single zone by name\&. A zone policy can inherit a policy class by including a
|
||||||
\fBpolicy\fR
|
\fBpolicy\fR
|
||||||
option\&. Zone names beginning with digits (i\&.e\&., 0\-9) must be quoted\&.
|
option\&. Zone names beginning with digits (i\&.e\&., 0\-9) must be quoted\&. If a zone does not have its own policy then the "default" policy applies\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
Options that can be specified in policies:
|
Options that can be specified in policies:
|
||||||
.PP
|
.PP
|
||||||
\fBalgorithm\fR
|
\fBalgorithm\fR \fIname\fR;
|
||||||
.RS 4
|
.RS 4
|
||||||
The key algorithm\&. If no policy is defined, the default is RSASHA256\&.
|
The key algorithm\&. If no policy is defined, the default is RSASHA256\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\fBcoverage\fR
|
\fBcoverage\fR \fIduration\fR;
|
||||||
.RS 4
|
.RS 4
|
||||||
The length of time to ensure that keys will be correct; no action will be taken to create new keys to be activated after this time\&. This can be represented as a number of seconds, or as a duration using human\-readable units (examples: "1y" or "6 months")\&. 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 six months\&.
|
The length of time to ensure that keys will be correct; no action will be taken to create new keys to be activated after this time\&. This can be represented as a number of seconds, or as a duration using human\-readable units (examples: "1y" or "6 months")\&. 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 six months\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\fBdirectory\fR
|
\fBdirectory\fR \fIpath\fR;
|
||||||
.RS 4
|
.RS 4
|
||||||
Specifies the directory in which keys should be stored\&.
|
Specifies the directory in which keys should be stored\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\fBkey\-size\fR
|
\fBkey\-size\fR \fIkeytype\fR \fIsize\fR;
|
||||||
.RS 4
|
.RS 4
|
||||||
Specifies the number of bits to use in creating keys\&. 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 2048 bits for RSA keys\&.
|
Specifies the number of bits to use in creating keys\&. The keytype is either "zsk" or "ksk"\&. 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 2048 bits for RSA keys\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\fBkeyttl\fR
|
\fBkeyttl\fR \fIduration\fR;
|
||||||
.RS 4
|
.RS 4
|
||||||
The key TTL\&. If no policy is defined, the default is one hour\&.
|
The key TTL\&. If no policy is defined, the default is one hour\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\fBpost\-publish\fR
|
\fBpost\-publish\fR \fIkeytype\fR \fIduration\fR;
|
||||||
.RS 4
|
.RS 4
|
||||||
How long after inactivation a key should be deleted from the zone\&. Note: If
|
How long after inactivation a key should be deleted from the zone\&. Note: If
|
||||||
\fBroll\-period\fR
|
\fBroll\-period\fR
|
||||||
is not set, this value is ignored\&. Takes two arguments: keytype (eihter "zsk" or "ksk") and a duration\&. A default value for this option can be set in algorithm policies as well as in policy classes or zone policies\&. The default is one month\&.
|
is not set, this value is ignored\&. The keytype is either "zsk" or "ksk"\&. A default duration for this option can be set in algorithm policies as well as in policy classes or zone policies\&. The default is one month\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\fBpre\-publish\fR
|
\fBpre\-publish\fR \fIkeytype\fR \fIduration\fR;
|
||||||
.RS 4
|
.RS 4
|
||||||
How long before activation a key should be published\&. Note: If
|
How long before activation a key should be published\&. Note: If
|
||||||
\fBroll\-period\fR
|
\fBroll\-period\fR
|
||||||
is not set, this value is ignored\&. Takes two arguments: keytype (either "zsk" or "ksk") and a duration\&. A default value for this option can be set in algorithm policies as well as in policy classes or zone policies\&. The default is one month\&.
|
is not set, this value is ignored\&. The keytype is either "zsk" or "ksk"\&. A default duration for this option can be set in algorithm policies as well as in policy classes or zone policies\&. The default is one month\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\fBroll\-period\fR
|
\fBroll\-period\fR \fIkeytype\fR \fIduration\fR;
|
||||||
.RS 4
|
.RS 4
|
||||||
How frequently keys should be rolled over\&. Takes two arguments: keytype (eihter "zsk" or "ksk") and a duration\&. 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 one year for ZSK\*(Aqs\&. KSK\*(Aqs do not roll over by default\&.
|
How frequently keys should be rolled over\&. The keytype is either "zsk" or "ksk"\&. A default duration 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 one year for ZSKs\&. KSKs do not roll over by default\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\fBstandby\fR
|
\fBstandby\fR \fIkeytype\fR \fInumber\fR;
|
||||||
.RS 4
|
.RS 4
|
||||||
Not yet implemented\&.
|
Not yet implemented\&.
|
||||||
.RE
|
.RE
|
||||||
|
|||||||
@@ -57,11 +57,12 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
DNSSEC policy can be read from a configuration file (default
|
DNSSEC policy can be read from a configuration file (default
|
||||||
<code class="filename">/etc/dnssec-policy.conf</code>), from which the key
|
<code class="filename">/etc/dnssec-policy.conf</code>), from which the
|
||||||
parameters, publication and rollover schedule, and desired
|
key parameters, publication and rollover schedule, and desired
|
||||||
coverage duration for any given zone can be determined. This
|
coverage duration for any given zone can be determined. This
|
||||||
file may be used to define individual DNSSEC policies on a
|
file may be used to define individual DNSSEC policies on a
|
||||||
per-zone basis, or to set a default policy used for all zones.
|
per-zone basis, or to set a "<code class="literal">default</code>" policy
|
||||||
|
used for all zones.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
When <span class="command"><strong>dnssec-keymgr</strong></span> runs, it examines the DNSSEC
|
When <span class="command"><strong>dnssec-keymgr</strong></span> runs, it examines the DNSSEC
|
||||||
@@ -210,7 +211,7 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="listitem">
|
<li class="listitem">
|
||||||
<p>
|
<p>
|
||||||
Algorithm policies:
|
<span class="emphasis"><em>Algorithm policies:</em></span>
|
||||||
(<code class="option">algorithm-policy <em class="replaceable"><code>algorithm</code></em> { ... };</code> )
|
(<code class="option">algorithm-policy <em class="replaceable"><code>algorithm</code></em> { ... };</code> )
|
||||||
override default per-algorithm settings. For example, by default,
|
override default per-algorithm settings. For example, by default,
|
||||||
RSASHA256 keys use 2048-bit key sizes for both KSK and ZSK. This
|
RSASHA256 keys use 2048-bit key sizes for both KSK and ZSK. This
|
||||||
@@ -220,11 +221,13 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="listitem">
|
<li class="listitem">
|
||||||
<p>
|
<p>
|
||||||
Zone policies:
|
<span class="emphasis"><em>Zone policies:</em></span>
|
||||||
(<code class="option">zone <em class="replaceable"><code>name</code></em> { ... };</code> )
|
(<code class="option">zone <em class="replaceable"><code>name</code></em> { ... };</code> )
|
||||||
set policy for a single zone by name. A zone policy can inherit
|
set policy for a single zone by name. A zone policy can inherit
|
||||||
a policy class by including a <code class="option">policy</code> option.
|
a policy class by including a <code class="option">policy</code> option.
|
||||||
Zone names beginning with digits (i.e., 0-9) must be quoted.
|
Zone names beginning with digits (i.e., 0-9) must be quoted.
|
||||||
|
If a zone does not have its own policy then the
|
||||||
|
"<code class="literal">default</code>" policy applies.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
</ul></div>
|
</ul></div>
|
||||||
@@ -232,81 +235,90 @@
|
|||||||
Options that can be specified in policies:
|
Options that can be specified in policies:
|
||||||
</p>
|
</p>
|
||||||
<div class="variablelist"><dl class="variablelist">
|
<div class="variablelist"><dl class="variablelist">
|
||||||
<dt><span class="term"><span class="command"><strong>algorithm</strong></span></span></dt>
|
<dt><span class="term"><span class="command"><strong>algorithm</strong></span>
|
||||||
|
<em class="replaceable"><code>name</code></em><code class="literal">;</code></span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
The key algorithm. If no policy is defined, the default is
|
The key algorithm. If no policy is defined, the default is
|
||||||
RSASHA256.
|
RSASHA256.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term"><span class="command"><strong>coverage</strong></span></span></dt>
|
<dt><span class="term"><span class="command"><strong>coverage</strong></span>
|
||||||
|
<em class="replaceable"><code>duration</code></em><code class="literal">;</code></span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
The length of time to ensure that keys will be correct; no action
|
The length of time to ensure that keys will be correct; no action
|
||||||
will be taken to create new keys to be activated after this time.
|
will be taken to create new keys to be activated after this time.
|
||||||
This can be represented as a number of seconds, or as a duration using
|
This can be represented as a number of seconds, or as a duration
|
||||||
human-readable units (examples: "1y" or "6 months").
|
using human-readable units (examples: "1y" or "6 months").
|
||||||
A default value for this option can be set in algorithm policies
|
A default value for this option can be set in algorithm policies
|
||||||
as well as in policy classes or zone policies.
|
as well as in policy classes or zone policies.
|
||||||
If no policy is configured, the default is six months.
|
If no policy is configured, the default is six months.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term"><span class="command"><strong>directory</strong></span></span></dt>
|
<dt><span class="term"><span class="command"><strong>directory</strong></span>
|
||||||
|
<em class="replaceable"><code>path</code></em><code class="literal">;</code></span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Specifies the directory in which keys should be stored.
|
Specifies the directory in which keys should be stored.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term"><span class="command"><strong>key-size</strong></span></span></dt>
|
<dt><span class="term"><span class="command"><strong>key-size</strong></span> <em class="replaceable"><code>keytype</code></em>
|
||||||
|
<em class="replaceable"><code>size</code></em><code class="literal">;</code></span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Specifies the number of bits to use in creating keys.
|
Specifies the number of bits to use in creating keys.
|
||||||
Takes two arguments: keytype (eihter "zsk" or "ksk") and size.
|
The keytype is either "zsk" or "ksk".
|
||||||
A default value for this option can be set in algorithm policies
|
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
|
as well as in policy classes or zone policies. If no policy is
|
||||||
configured, the default is 2048 bits for RSA keys.
|
configured, the default is 2048 bits for RSA keys.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term"><span class="command"><strong>keyttl</strong></span></span></dt>
|
<dt><span class="term"><span class="command"><strong>keyttl</strong></span>
|
||||||
|
<em class="replaceable"><code>duration</code></em><code class="literal">;</code></span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
The key TTL. If no policy is defined, the default is one hour.
|
The key TTL. If no policy is defined, the default is one hour.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term"><span class="command"><strong>post-publish</strong></span></span></dt>
|
<dt><span class="term"><span class="command"><strong>post-publish</strong></span> <em class="replaceable"><code>keytype</code></em>
|
||||||
|
<em class="replaceable"><code>duration</code></em><code class="literal">;</code></span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
How long after inactivation a key should be deleted from the zone.
|
How long after inactivation a key should be deleted from the zone.
|
||||||
Note: If <code class="option">roll-period</code> is not set, this value is
|
Note: If <code class="option">roll-period</code> is not set, this value is
|
||||||
ignored. Takes two arguments: keytype (eihter "zsk" or "ksk") and a
|
ignored. The keytype is either "zsk" or "ksk".
|
||||||
duration. A default value for this option can be set in algorithm
|
A default duration for this option can be set in algorithm
|
||||||
policies as well as in policy classes or zone policies. The default
|
policies as well as in policy classes or zone policies. The default
|
||||||
is one month.
|
is one month.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term"><span class="command"><strong>pre-publish</strong></span></span></dt>
|
<dt><span class="term"><span class="command"><strong>pre-publish</strong></span> <em class="replaceable"><code>keytype</code></em>
|
||||||
|
<em class="replaceable"><code>duration</code></em><code class="literal">;</code></span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
How long before activation a key should be published. Note: If
|
How long before activation a key should be published. Note: If
|
||||||
<code class="option">roll-period</code> is not set, this value is ignored.
|
<code class="option">roll-period</code> is not set, this value is ignored.
|
||||||
Takes two arguments: keytype (either "zsk" or "ksk") and a duration.
|
The keytype is either "zsk" or "ksk".
|
||||||
A default value for this option can be set in algorithm policies
|
A default duration for this option can be set in algorithm policies
|
||||||
as well as in policy classes or zone policies. The default is
|
as well as in policy classes or zone policies. The default is
|
||||||
one month.
|
one month.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term"><span class="command"><strong>roll-period</strong></span></span></dt>
|
<dt><span class="term"><span class="command"><strong>roll-period</strong></span> <em class="replaceable"><code>keytype</code></em>
|
||||||
|
<em class="replaceable"><code>duration</code></em><code class="literal">;</code></span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
How frequently keys should be rolled over.
|
How frequently keys should be rolled over.
|
||||||
Takes two arguments: keytype (eihter "zsk" or "ksk") and a duration.
|
The keytype is either "zsk" or "ksk".
|
||||||
A default value for this option can be set in algorithm policies
|
A default duration for this option can be set in algorithm policies
|
||||||
as well as in policy classes or zone policies. If no policy is
|
as well as in policy classes or zone policies. If no policy is
|
||||||
configured, the default is one year for ZSK's. KSK's do not
|
configured, the default is one year for ZSKs. KSKs do not
|
||||||
roll over by default.
|
roll over by default.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><span class="term"><span class="command"><strong>standby</strong></span></span></dt>
|
<dt><span class="term"><span class="command"><strong>standby</strong></span> <em class="replaceable"><code>keytype</code></em>
|
||||||
|
<em class="replaceable"><code>number</code></em><code class="literal">;</code></span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Not yet implemented.
|
Not yet implemented.
|
||||||
|
|||||||
@@ -107,6 +107,8 @@ def check(zone, args):
|
|||||||
fp, _ = Popen(cmd, stdout=PIPE).communicate()
|
fp, _ = Popen(cmd, stdout=PIPE).communicate()
|
||||||
|
|
||||||
for line in fp.splitlines():
|
for line in fp.splitlines():
|
||||||
|
if type(line) is not str:
|
||||||
|
line = line.decode('ascii')
|
||||||
rrlist.append(SECRR(line, args.lookaside))
|
rrlist.append(SECRR(line, args.lookaside))
|
||||||
rrlist = sorted(rrlist, key=lambda rr: (rr.keyid, rr.keyalg, rr.hashalg))
|
rrlist = sorted(rrlist, key=lambda rr: (rr.keyid, rr.keyalg, rr.hashalg))
|
||||||
|
|
||||||
@@ -128,6 +130,8 @@ def check(zone, args):
|
|||||||
fp, _ = Popen(cmd, stdin=PIPE, stdout=PIPE).communicate(intods)
|
fp, _ = Popen(cmd, stdin=PIPE, stdout=PIPE).communicate(intods)
|
||||||
|
|
||||||
for line in fp.splitlines():
|
for line in fp.splitlines():
|
||||||
|
if type(line) is not str:
|
||||||
|
line = line.decode('ascii')
|
||||||
klist.append(SECRR(line, args.lookaside))
|
klist.append(SECRR(line, args.lookaside))
|
||||||
|
|
||||||
if len(klist) < 1:
|
if len(klist) < 1:
|
||||||
|
|||||||
@@ -43,6 +43,8 @@ class keyzone:
|
|||||||
fp, _ = Popen([czpath, "-o", "-", name, filename],
|
fp, _ = Popen([czpath, "-o", "-", name, filename],
|
||||||
stdout=PIPE, stderr=PIPE).communicate()
|
stdout=PIPE, stderr=PIPE).communicate()
|
||||||
for line in fp.splitlines():
|
for line in fp.splitlines():
|
||||||
|
if type(line) is not str:
|
||||||
|
line = line.decode('ascii')
|
||||||
if re.search('^[:space:]*;', line):
|
if re.search('^[:space:]*;', line):
|
||||||
continue
|
continue
|
||||||
fields = line.split()
|
fields = line.split()
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
|
|||||||
ISCCCLIBS = ../../lib/isccc/libisccc.@A@
|
ISCCCLIBS = ../../lib/isccc/libisccc.@A@
|
||||||
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
||||||
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
||||||
DNSLIBS = ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
|
DNSLIBS = ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
|
||||||
BIND9LIBS = ../../lib/bind9/libbind9.@A@
|
BIND9LIBS = ../../lib/bind9/libbind9.@A@
|
||||||
|
|
||||||
ISCCFGDEPLIBS = ../../lib/isccfg/libisccfg.@A@
|
ISCCFGDEPLIBS = ../../lib/isccfg/libisccfg.@A@
|
||||||
|
|||||||
+1
-1
@@ -697,7 +697,7 @@ Delete a given TKEY\-negotiated key from the server\&. (This does not apply to s
|
|||||||
.RS 4
|
.RS 4
|
||||||
List the names of all TSIG keys currently configured for use by
|
List the names of all TSIG keys currently configured for use by
|
||||||
\fBnamed\fR
|
\fBnamed\fR
|
||||||
in each view\&. The list both statically configured keys and dynamic TKEY\-negotiated keys\&.
|
in each view\&. The list includes both statically configured keys and dynamic TKEY\-negotiated keys\&.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
\fBvalidation ( on | off | status ) \fR\fB[\fIview \&.\&.\&.\fR]\fR\fB \fR
|
\fBvalidation ( on | off | status ) \fR\fB[\fIview \&.\&.\&.\fR]\fR\fB \fR
|
||||||
|
|||||||
@@ -1066,7 +1066,7 @@
|
|||||||
<para>
|
<para>
|
||||||
List the names of all TSIG keys currently configured
|
List the names of all TSIG keys currently configured
|
||||||
for use by <command>named</command> in each view. The
|
for use by <command>named</command> in each view. The
|
||||||
list both statically configured keys and dynamic
|
list includes both statically configured keys and dynamic
|
||||||
TKEY-negotiated keys.
|
TKEY-negotiated keys.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|||||||
+1
-1
@@ -905,7 +905,7 @@
|
|||||||
<p>
|
<p>
|
||||||
List the names of all TSIG keys currently configured
|
List the names of all TSIG keys currently configured
|
||||||
for use by <span class="command"><strong>named</strong></span> in each view. The
|
for use by <span class="command"><strong>named</strong></span> in each view. The
|
||||||
list both statically configured keys and dynamic
|
list includes both statically configured keys and dynamic
|
||||||
TKEY-negotiated keys.
|
TKEY-negotiated keys.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{39721F26-8B80-4AA9-9826-2AEF7322C3D5}</ProjectGuid>
|
<ProjectGuid>{39721F26-8B80-4AA9-9826-2AEF7322C3D5}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>rndc</RootNamespace>
|
<RootNamespace>rndc</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
<ProjectConfiguration Include="Debug|@PLATFORM@">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -14,18 +14,21 @@
|
|||||||
<ProjectGuid>{7C8681A1-E3A8-470E-9EEF-16054D111A19}</ProjectGuid>
|
<ProjectGuid>{7C8681A1-E3A8-470E-9EEF-16054D111A19}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>rndcutil</RootNamespace>
|
<RootNamespace>rndcutil</RootNamespace>
|
||||||
|
@WINDOWS_TARGET_PLATFORM_VERSION@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
@PLATFORM_TOOLSET@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ CDEFINES =
|
|||||||
CWARNINGS =
|
CWARNINGS =
|
||||||
BACKTRACECFLAGS = @BACKTRACECFLAGS@
|
BACKTRACECFLAGS = @BACKTRACECFLAGS@
|
||||||
|
|
||||||
DNSLIBS = ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
|
DNSLIBS = ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
|
||||||
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
ISCLIBS = ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
||||||
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
||||||
ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
|
ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ CWARNINGS =
|
|||||||
BACKTRACECFLAGS = @BACKTRACECFLAGS@
|
BACKTRACECFLAGS = @BACKTRACECFLAGS@
|
||||||
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
||||||
|
|
||||||
DNSLIBS = ../../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
|
DNSLIBS = ../../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
|
||||||
ISCLIBS = ../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
ISCLIBS = ../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
|
||||||
ISCNOSYMLIBS = ../../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
ISCNOSYMLIBS = ../../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
|
||||||
ISCCFGLIBS = ../../../lib/isccfg/libisccfg.@A@
|
ISCCFGLIBS = ../../../lib/isccfg/libisccfg.@A@
|
||||||
|
|||||||
@@ -28,6 +28,9 @@
|
|||||||
|
|
||||||
static isc_mem_t *mctx = NULL;
|
static isc_mem_t *mctx = NULL;
|
||||||
|
|
||||||
|
ISC_PLATFORM_NORETURN_PRE static inline void
|
||||||
|
fatal(const char *message) ISC_PLATFORM_NORETURN_POST;
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
fatal(const char *message) {
|
fatal(const char *message) {
|
||||||
fprintf(stderr, "%s\n", message);
|
fprintf(stderr, "%s\n", message);
|
||||||
|
|||||||
@@ -75,10 +75,10 @@ clock_gettime(int32_t id, struct timespec *tp)
|
|||||||
UNUSED(id);
|
UNUSED(id);
|
||||||
|
|
||||||
result = gettimeofday(&tv, NULL);
|
result = gettimeofday(&tv, NULL);
|
||||||
if (result)
|
if (result == 0) {
|
||||||
return (result);
|
tp->tv_sec = tv.tv_sec;
|
||||||
tp->tv_sec = tv.tv_sec;
|
tp->tv_nsec = (long) tv.tv_usec * 1000;
|
||||||
tp->tv_nsec = (long) tv.tv_usec * 1000;
|
}
|
||||||
return (result);
|
return (result);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -74,10 +74,10 @@ clock_gettime(int32_t id, struct timespec *tp)
|
|||||||
UNUSED(id);
|
UNUSED(id);
|
||||||
|
|
||||||
result = gettimeofday(&tv, NULL);
|
result = gettimeofday(&tv, NULL);
|
||||||
if (result)
|
if (result == 0) {
|
||||||
return (result);
|
tp->tv_sec = tv.tv_sec;
|
||||||
tp->tv_sec = tv.tv_sec;
|
tp->tv_nsec = (long) tv.tv_usec * 1000;
|
||||||
tp->tv_nsec = (long) tv.tv_usec * 1000;
|
}
|
||||||
return (result);
|
return (result);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -75,10 +75,10 @@ clock_gettime(int32_t id, struct timespec *tp)
|
|||||||
UNUSED(id);
|
UNUSED(id);
|
||||||
|
|
||||||
result = gettimeofday(&tv, NULL);
|
result = gettimeofday(&tv, NULL);
|
||||||
if (result)
|
if (result == 0) {
|
||||||
return (result);
|
tp->tv_sec = tv.tv_sec;
|
||||||
tp->tv_sec = tv.tv_sec;
|
tp->tv_nsec = (long) tv.tv_usec * 1000;
|
||||||
tp->tv_nsec = (long) tv.tv_usec * 1000;
|
}
|
||||||
return (result);
|
return (result);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -75,10 +75,10 @@ clock_gettime(int32_t id, struct timespec *tp)
|
|||||||
UNUSED(id);
|
UNUSED(id);
|
||||||
|
|
||||||
result = gettimeofday(&tv, NULL);
|
result = gettimeofday(&tv, NULL);
|
||||||
if (result)
|
if (result == 0) {
|
||||||
return (result);
|
tp->tv_sec = tv.tv_sec;
|
||||||
tp->tv_sec = tv.tv_sec;
|
tp->tv_nsec = (long) tv.tv_usec * 1000;
|
||||||
tp->tv_nsec = (long) tv.tv_usec * 1000;
|
}
|
||||||
return (result);
|
return (result);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -75,10 +75,10 @@ clock_gettime(int32_t id, struct timespec *tp)
|
|||||||
UNUSED(id);
|
UNUSED(id);
|
||||||
|
|
||||||
result = gettimeofday(&tv, NULL);
|
result = gettimeofday(&tv, NULL);
|
||||||
if (result)
|
if (result == 0) {
|
||||||
return (result);
|
tp->tv_sec = tv.tv_sec;
|
||||||
tp->tv_sec = tv.tv_sec;
|
tp->tv_nsec = (long) tv.tv_usec * 1000;
|
||||||
tp->tv_nsec = (long) tv.tv_usec * 1000;
|
}
|
||||||
return (result);
|
return (result);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -75,10 +75,10 @@ clock_gettime(int32_t id, struct timespec *tp)
|
|||||||
UNUSED(id);
|
UNUSED(id);
|
||||||
|
|
||||||
result = gettimeofday(&tv, NULL);
|
result = gettimeofday(&tv, NULL);
|
||||||
if (result)
|
if (result == 0) {
|
||||||
return (result);
|
tp->tv_sec = tv.tv_sec;
|
||||||
tp->tv_sec = tv.tv_sec;
|
tp->tv_nsec = (long) tv.tv_usec * 1000;
|
||||||
tp->tv_nsec = (long) tv.tv_usec * 1000;
|
}
|
||||||
return (result);
|
return (result);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user