Compare commits
957
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7bc44cccc1 | ||
|
|
bdea0ea015 | ||
|
|
2109456871 | ||
|
|
03fbf41ea8 | ||
|
|
f76bf38ff6 | ||
|
|
8f89bb0c54 | ||
|
|
0fc328e58e | ||
|
|
d97a30ec77 | ||
|
|
f0cd6e4f2c | ||
|
|
ba91cab8d2 | ||
|
|
a14975ce0c | ||
|
|
54a51ed666 | ||
|
|
1e6579f325 | ||
|
|
c74524f856 | ||
|
|
db90edaeaa | ||
|
|
1eacb4b9e4 | ||
|
|
3c2e0ad5b3 | ||
|
|
00e2b9d750 | ||
|
|
032bed7f96 | ||
|
|
9c2f4c2fdc | ||
|
|
6d12a64fe5 | ||
|
|
76be4e69ee | ||
|
|
3f4f076701 | ||
|
|
74d29b18ad | ||
|
|
303fd2fb85 | ||
|
|
b656ab5ead | ||
|
|
3207a16d0d | ||
|
|
c097e59568 | ||
|
|
29e5061922 | ||
|
|
71155af8fc | ||
|
|
a0ad3116d2 | ||
|
|
60774ae636 | ||
|
|
7ee7aa860b | ||
|
|
a94f717d71 | ||
|
|
2bf23735a3 | ||
|
|
b11c4861bb | ||
|
|
3918f862a0 | ||
|
|
ecc25fbd15 | ||
|
|
28f47481cc | ||
|
|
ecb78c1a40 | ||
|
|
7d2b1dfede | ||
|
|
310390c8b8 | ||
|
|
54b0110b75 | ||
|
|
6de9bf2601 | ||
|
|
0f8ca600f1 | ||
|
|
c151a9588b | ||
|
|
4a83846ddd | ||
|
|
83c70e073b | ||
|
|
92f198ef9d | ||
|
|
07b49d7453 | ||
|
|
a8c55a41d5 | ||
|
|
38c6c10ac9 | ||
|
|
23ae36911c | ||
|
|
b7055d7988 | ||
|
|
48e7dcf0d2 | ||
|
|
f4a29a0750 | ||
|
|
6d6a3a820a | ||
|
|
5c82ca42b3 | ||
|
|
465d41bd1c | ||
|
|
7ea5188c2d | ||
|
|
8ab0fa49c7 | ||
|
|
59dbcb0b0a | ||
|
|
774cbd433a | ||
|
|
5addd0b6cd | ||
|
|
87ebc102ad | ||
|
|
093dc899d3 | ||
|
|
b5b9469b27 | ||
|
|
390213c7e4 | ||
|
|
23f81e6d93 | ||
|
|
7035aa0ee2 | ||
|
|
b27e8b331c | ||
|
|
9164ae2297 | ||
|
|
b972f8e3a2 | ||
|
|
388eb181d6 | ||
|
|
93b433d299 | ||
|
|
8f541851f4 | ||
|
|
39ba8c7737 | ||
|
|
3892831333 | ||
|
|
4409333f34 | ||
|
|
e69bed0b94 | ||
|
|
a1c04a4f16 | ||
|
|
4dc228da3d | ||
|
|
f3e8fd8e4a | ||
|
|
4bcdedcf07 | ||
|
|
8a5c01f19e | ||
|
|
e6aee23f88 | ||
|
|
ac84e86dd8 | ||
|
|
e652cd7642 | ||
|
|
b1627aebb8 | ||
|
|
c35cd8f3a0 | ||
|
|
2cb64871bb | ||
|
|
d41b478b81 | ||
|
|
00eb58ff9c | ||
|
|
a783af3e86 | ||
|
|
a4aef00d65 | ||
|
|
6db4de888e | ||
|
|
5480ae18d3 | ||
|
|
853a83725f | ||
|
|
1517558cd3 | ||
|
|
d6b3b3507f | ||
|
|
ffb4d9e0ba | ||
|
|
e7ca8c91ec | ||
|
|
da92bed4d5 | ||
|
|
7f2d8ae5da | ||
|
|
13a08d776f | ||
|
|
14f8d8220c | ||
|
|
3aa81ceb1c | ||
|
|
7a86f936b8 | ||
|
|
f72883c6ae | ||
|
|
e9c45e3dbf | ||
|
|
0c97e821ee | ||
|
|
d27cd59a97 | ||
|
|
9eea2d2964 | ||
|
|
1f897c49f1 | ||
|
|
0676d1377a | ||
|
|
c1a94681f2 | ||
|
|
6539c8dd1b | ||
|
|
2dbcb34643 | ||
|
|
e013e99c1c | ||
|
|
46f6e09b51 | ||
|
|
97c708294d | ||
|
|
d77da4225c | ||
|
|
3e612906f4 | ||
|
|
636785e7eb | ||
|
|
7afdd95114 | ||
|
|
a53c04f050 | ||
|
|
5165085bfb | ||
|
|
2d77ffe6bb | ||
|
|
8f110ca521 | ||
|
|
944f9271ac | ||
|
|
75636f9b01 | ||
|
|
8bdc865433 | ||
|
|
383ca63dee | ||
|
|
5465641352 | ||
|
|
2464e106df | ||
|
|
e8bff09ffb | ||
|
|
ae1a01ff3d | ||
|
|
bc2014dbbe | ||
|
|
feb6270d6f | ||
|
|
c209a20108 | ||
|
|
913562f0d3 | ||
|
|
ebfeba4f78 | ||
|
|
a9a62db641 | ||
|
|
4161a9a0e5 | ||
|
|
795b23217b | ||
|
|
49f7dba060 | ||
|
|
93f3b0ddba | ||
|
|
9822caa29b | ||
|
|
47edbd3c53 | ||
|
|
fd56caffe6 | ||
|
|
76365d5f86 | ||
|
|
409886d852 | ||
|
|
f225d11b53 | ||
|
|
553a2acba8 | ||
|
|
affc5a912e | ||
|
|
309173748f | ||
|
|
a78ef43fe3 | ||
|
|
dc856c0bcf | ||
|
|
b74a3907a5 | ||
|
|
0a2897853b | ||
|
|
444d3d9f97 | ||
|
|
177931360d | ||
|
|
d356572dda | ||
|
|
ce5fc01c92 | ||
|
|
daf3551b86 | ||
|
|
9960be0a54 | ||
|
|
5a16eacf6f | ||
|
|
b1a6907e81 | ||
|
|
9f5cecf887 | ||
|
|
6d7a4c30a2 | ||
|
|
fdf81716b4 | ||
|
|
e69b2928cf | ||
|
|
1872751420 | ||
|
|
355ac59256 | ||
|
|
3f9371b30c | ||
|
|
5557ac8a6f | ||
|
|
311f97e2d4 | ||
|
|
fea199b0ce | ||
|
|
623d40c98e | ||
|
|
d3b9504e44 | ||
|
|
910ceb6004 | ||
|
|
e5052c8526 | ||
|
|
81537dce5b | ||
|
|
933b976829 | ||
|
|
d46865e1e9 | ||
|
|
91f92550dc | ||
|
|
da68f57b1c | ||
|
|
68d2587454 | ||
|
|
738c82a017 | ||
|
|
ff1a145792 | ||
|
|
ad8fd9b034 | ||
|
|
76d886a4e3 | ||
|
|
26c738828f | ||
|
|
6f15e1a200 | ||
|
|
1cbe92ed8c | ||
|
|
430cc35151 | ||
|
|
6ee56d59da | ||
|
|
ed09ec058a | ||
|
|
6b524e41e5 | ||
|
|
dc797e5833 | ||
|
|
dafa96c13e | ||
|
|
448b6882f6 | ||
|
|
14d41c9db7 | ||
|
|
2ba7551844 | ||
|
|
36e7d4808c | ||
|
|
4ebc7953b1 | ||
|
|
5a51c60f58 | ||
|
|
0cdec93645 | ||
|
|
14dfb38385 | ||
|
|
06201ee79d | ||
|
|
67a781e65c | ||
|
|
696be5b2ee | ||
|
|
2ca6b13626 | ||
|
|
845eb1f0ed | ||
|
|
8c19a64364 | ||
|
|
a2f7b8a534 | ||
|
|
63b93f0682 | ||
|
|
cd7d1b6d68 | ||
|
|
bea9285506 | ||
|
|
82580033db | ||
|
|
20990845d8 | ||
|
|
704e4daff8 | ||
|
|
98a3748577 | ||
|
|
4e5d7e4fff | ||
|
|
5db09e69de | ||
|
|
b45ded3b33 | ||
|
|
93472ba538 | ||
|
|
0a583f82eb | ||
|
|
5d98af56f2 | ||
|
|
65f2bd61ae | ||
|
|
91a8c60f0e | ||
|
|
4facc02671 | ||
|
|
05ceebcb1b | ||
|
|
30579c29be | ||
|
|
d7c212118e | ||
|
|
4d5ef757af | ||
|
|
42783352fc | ||
|
|
ff2047b685 | ||
|
|
b16a1e6c07 | ||
|
|
770279e013 | ||
|
|
1ab0c02604 | ||
|
|
61ed35e09c | ||
|
|
fe359f7a21 | ||
|
|
f2080c6915 | ||
|
|
71e5c19636 | ||
|
|
188bd721a5 | ||
|
|
50874e9ec7 | ||
|
|
4eef79de8a | ||
|
|
38113dbdb1 | ||
|
|
db77363f8c | ||
|
|
085c5a5d9b | ||
|
|
97e69e38a6 | ||
|
|
95787a5532 | ||
|
|
289fd68776 | ||
|
|
b1b6267a8a | ||
|
|
50b789e229 | ||
|
|
c0c9f5afd6 | ||
|
|
ed4eee1e51 | ||
|
|
1f802e5618 | ||
|
|
a64888719c | ||
|
|
971a043b47 | ||
|
|
8c3613e29f | ||
|
|
879dcb926c | ||
|
|
797af0ae2d | ||
|
|
0658d99891 | ||
|
|
31d7f00538 | ||
|
|
444deec2a0 | ||
|
|
36345eaba4 | ||
|
|
867b6769fe | ||
|
|
c4cd50192d | ||
|
|
7a6894cb7f | ||
|
|
a3fb29404e | ||
|
|
e05fe79dd3 | ||
|
|
a10c0cd87c | ||
|
|
76e6cf505e | ||
|
|
5ac5be4ca9 | ||
|
|
ead09b5724 | ||
|
|
58ec718890 | ||
|
|
0154c3b77b | ||
|
|
6fbb344271 | ||
|
|
22076c62a1 | ||
|
|
fdc65eb9ec | ||
|
|
03db30d50e | ||
|
|
74373ce898 | ||
|
|
11f8ef90da | ||
|
|
dfcaadf673 | ||
|
|
01d404c4ad | ||
|
|
9b681678ee | ||
|
|
e5c3961bf6 | ||
|
|
494617bce2 | ||
|
|
d647b53008 | ||
|
|
ae61729064 | ||
|
|
9891a60571 | ||
|
|
589cf29b85 | ||
|
|
832c2e6b68 | ||
|
|
569a2c2b5f | ||
|
|
4b186490dd | ||
|
|
d0c7cc3abe | ||
|
|
ae7644fbdc | ||
|
|
8756f35d48 | ||
|
|
6a009a5e2c | ||
|
|
cb39d9525b | ||
|
|
7c80f7895f | ||
|
|
cc738d9655 | ||
|
|
8bc0b080dc | ||
|
|
d4fb9a4b93 | ||
|
|
b7e31c54f2 | ||
|
|
bb11721d68 | ||
|
|
2b19800425 | ||
|
|
046bc782ab | ||
|
|
99b2fa2479 | ||
|
|
f5a2086f1f | ||
|
|
542d079eb1 | ||
|
|
31eb153edb | ||
|
|
92f39ccb5b | ||
|
|
e2f3912e14 | ||
|
|
523d1871dc | ||
|
|
29ef7aeb04 | ||
|
|
98afc1a6dd | ||
|
|
1bb3dd1911 | ||
|
|
a7f6945b12 | ||
|
|
59c9c71f36 | ||
|
|
c41e161d06 | ||
|
|
0b04e719ae | ||
|
|
7bcbe0f387 | ||
|
|
de6d4c73d2 | ||
|
|
f562d83ce6 | ||
|
|
3f56f26766 | ||
|
|
139c403ce5 | ||
|
|
956206dda4 | ||
|
|
ece11c796a | ||
|
|
8bce19c1ea | ||
|
|
bc8f6178e7 | ||
|
|
356005f612 | ||
|
|
5a21c108fe | ||
|
|
ca5b25ad68 | ||
|
|
88b6cb8b8b | ||
|
|
63118d1444 | ||
|
|
4fe6e5b494 | ||
|
|
d49cd04515 | ||
|
|
0128b3dcd6 | ||
|
|
f0eda70e86 | ||
|
|
b07c1edbba | ||
|
|
677b20a94c | ||
|
|
f7540a5483 | ||
|
|
2c38bd4799 | ||
|
|
a386cb22a0 | ||
|
|
80ba794a42 | ||
|
|
5a7f05ee3c | ||
|
|
c65ab74d31 | ||
|
|
c2dde474aa | ||
|
|
1cca07d601 | ||
|
|
653b008950 | ||
|
|
1386155331 | ||
|
|
9777316c64 | ||
|
|
5f57c9f71c | ||
|
|
9b8836481d | ||
|
|
fe012b4db4 | ||
|
|
12eb4bc93c | ||
|
|
5b17e46285 | ||
|
|
f8d7bb61a8 | ||
|
|
65cc2ab6a5 | ||
|
|
728ee05d45 | ||
|
|
b9e3320bf4 | ||
|
|
3ebd394165 | ||
|
|
128b7183fd | ||
|
|
aaa0b7a55e | ||
|
|
0ab62f7ab9 | ||
|
|
773efb00d2 | ||
|
|
f4440dd30a | ||
|
|
275c562ce7 | ||
|
|
d845cb6745 | ||
|
|
28b4db7239 | ||
|
|
a86f1249ee | ||
|
|
6a51d9b6de | ||
|
|
a797df31d7 | ||
|
|
13ce1be5d3 | ||
|
|
d5400f7e7d | ||
|
|
2eb5511c39 | ||
|
|
2ce9908f2d | ||
|
|
5a74ff52c2 | ||
|
|
3022504c0b | ||
|
|
262ed7420f | ||
|
|
fc77335828 | ||
|
|
c0e2300901 | ||
|
|
19dd51b6ab | ||
|
|
92a43c0ead | ||
|
|
b7ba53e732 | ||
|
|
a7b7c601a5 | ||
|
|
6cac6ea83b | ||
|
|
9c6a6f9134 | ||
|
|
37cb6b93fd | ||
|
|
72b349b75c | ||
|
|
f276cf10c8 | ||
|
|
5040108c31 | ||
|
|
55d21ef131 | ||
|
|
e035fcc62a | ||
|
|
21879ffd57 | ||
|
|
bf1eb3b85d | ||
|
|
b2cc42052f | ||
|
|
aa4d04e680 | ||
|
|
2b48d4ec91 | ||
|
|
e2edd40cb4 | ||
|
|
b5fb6892fe | ||
|
|
1365b51c71 | ||
|
|
399e2fd233 | ||
|
|
17560312bb | ||
|
|
b7b65b35b6 | ||
|
|
86bdb760d7 | ||
|
|
f3a548988c | ||
|
|
ec5fcd0136 | ||
|
|
a6cde7c0f6 | ||
|
|
fe3bf8f43e | ||
|
|
5f8a100d65 | ||
|
|
a3d418e155 | ||
|
|
08d50931b6 | ||
|
|
d12037b665 | ||
|
|
24b4cd45a2 | ||
|
|
7c5699736b | ||
|
|
3fa4e557e0 | ||
|
|
5c24ec251e | ||
|
|
3999dda5a5 | ||
|
|
1c75aa99a1 | ||
|
|
02bd4cd4b4 | ||
|
|
07510d963a | ||
|
|
8b99611ece | ||
|
|
3703129570 | ||
|
|
a5840f0a32 | ||
|
|
3ca4e5d7e1 | ||
|
|
4cff55249c | ||
|
|
e23b840d9e | ||
|
|
c733ede7c7 | ||
|
|
d80c2f805e | ||
|
|
0036997ea6 | ||
|
|
55fe737bf7 | ||
|
|
11d477b0ce | ||
|
|
94e718f9cb | ||
|
|
1cc4291e10 | ||
|
|
98886b12f1 | ||
|
|
5b13795dbe | ||
|
|
db8dce00b0 | ||
|
|
23df967ec2 | ||
|
|
eb19109585 | ||
|
|
2b631b5d6f | ||
|
|
784332dee8 | ||
|
|
4a885f26a0 | ||
|
|
3056f9d0d5 | ||
|
|
2ef4d30f72 | ||
|
|
6894f7e981 | ||
|
|
d018916728 | ||
|
|
02d7775718 | ||
|
|
be0f31ad9f | ||
|
|
61ccf5b46b | ||
|
|
44cab72e7e | ||
|
|
07b05ade91 | ||
|
|
3b239c7b3b | ||
|
|
0c1a5f0a1a | ||
|
|
bd2b0c9ae5 | ||
|
|
b42093b971 | ||
|
|
6146308cc3 | ||
|
|
838ae5b351 | ||
|
|
6404ecd08d | ||
|
|
82404f5aef | ||
|
|
cf6c9f9005 | ||
|
|
8302431386 | ||
|
|
a4003c3c4b | ||
|
|
a2cb929b48 | ||
|
|
a2c8607929 | ||
|
|
8e187acb28 | ||
|
|
db3ae6b658 | ||
|
|
9db86b94c3 | ||
|
|
789515c1d0 | ||
|
|
7a01ff0136 | ||
|
|
5b02faec3c | ||
|
|
68d79f2a0f | ||
|
|
e68aa47d4c | ||
|
|
269a35ff01 | ||
|
|
0329504246 | ||
|
|
0f82d123cf | ||
|
|
6875da69bb | ||
|
|
5cb766e596 | ||
|
|
e5d6b3ba09 | ||
|
|
b8612502e2 | ||
|
|
6420e53c12 | ||
|
|
810048c754 | ||
|
|
57cb4281fa | ||
|
|
491d1d3463 | ||
|
|
d544482827 | ||
|
|
00f7383ab0 | ||
|
|
2d0accdb56 | ||
|
|
637427aed9 | ||
|
|
3fea8ab161 | ||
|
|
43641877ac | ||
|
|
0d013d4f2e | ||
|
|
d2761fe281 | ||
|
|
3cbd3a3f36 | ||
|
|
c4700949e7 | ||
|
|
8b96e18c96 | ||
|
|
0dc9c323d2 | ||
|
|
2aec4cb735 | ||
|
|
2e023d9a29 | ||
|
|
63fe01ab22 | ||
|
|
37eeb883b6 | ||
|
|
40be22dada | ||
|
|
756f9eb63a | ||
|
|
3bb935c499 | ||
|
|
3b56f0f090 | ||
|
|
da00b95e55 | ||
|
|
bf80fd4841 | ||
|
|
facf31bace | ||
|
|
e9d613fa9d | ||
|
|
8438d8e0b4 | ||
|
|
eaf0bd1fd7 | ||
|
|
1d32fae40d | ||
|
|
3f12adb3f0 | ||
|
|
400b8856c9 | ||
|
|
7fad6b61d2 | ||
|
|
a64f7707cc | ||
|
|
1edd0adfcc | ||
|
|
37db859ba3 | ||
|
|
1bf082f6da | ||
|
|
1af8f0c951 | ||
|
|
e08a20aa98 | ||
|
|
0f51e50b08 | ||
|
|
6be22e19ef | ||
|
|
11bbddd195 | ||
|
|
c687d21e23 | ||
|
|
721c4a65f3 | ||
|
|
0517d21ebd | ||
|
|
507aef0c77 | ||
|
|
78f9a0a2b8 | ||
|
|
777d3c3963 | ||
|
|
9abc3592ad | ||
|
|
ee980f5002 | ||
|
|
53835b8fd8 | ||
|
|
6285ade4fb | ||
|
|
c385687ce6 | ||
|
|
6e3cd11729 | ||
|
|
e6bc9ed3b0 | ||
|
|
a1bfc38679 | ||
|
|
fa3174b8f1 | ||
|
|
b4159c080b | ||
|
|
71324ae046 | ||
|
|
4d4be2e895 | ||
|
|
9f91506fed | ||
|
|
61215a0d76 | ||
|
|
8fe68ee01c | ||
|
|
812b6d8d11 | ||
|
|
d133eb632a | ||
|
|
286bbb3ca4 | ||
|
|
b756b7d22f | ||
|
|
db2113fd6b | ||
|
|
e6e37613eb | ||
|
|
78f8d31dc6 | ||
|
|
4deef8a463 | ||
|
|
0463ffd804 | ||
|
|
5a77c5e18e | ||
|
|
928ec8b49a | ||
|
|
06da8b9b9a | ||
|
|
84108b14a2 | ||
|
|
bd72d2c9fc | ||
|
|
8d5279c34e | ||
|
|
2dbcecfaaa | ||
|
|
f93222ee85 | ||
|
|
064dac4abe | ||
|
|
92a7fc7c7c | ||
|
|
7625198d01 | ||
|
|
c466590f32 | ||
|
|
3fc5a9f930 | ||
|
|
711d4218c4 | ||
|
|
6c0e2269be | ||
|
|
fe3db97ee9 | ||
|
|
30165893f7 | ||
|
|
8f295da232 | ||
|
|
d9025d3f48 | ||
|
|
a6d76b4886 | ||
|
|
0391c5c44f | ||
|
|
bb828e2c51 | ||
|
|
2cb4e94838 | ||
|
|
efc6a99370 | ||
|
|
d3d4428652 | ||
|
|
056f9c917a | ||
|
|
d779f5e15d | ||
|
|
8ba4364153 | ||
|
|
435add4fdd | ||
|
|
6b2090a39f | ||
|
|
5faf500982 | ||
|
|
a3eae83762 | ||
|
|
3fd5ddfd6a | ||
|
|
1c21efedfe | ||
|
|
09eff142e8 | ||
|
|
ea069464d5 | ||
|
|
2b76d22baf | ||
|
|
a5796bf961 | ||
|
|
b780afe5f7 | ||
|
|
70e94a99a6 | ||
|
|
5d43557478 | ||
|
|
01206bd597 | ||
|
|
0958becf7e | ||
|
|
ed840b1045 | ||
|
|
9100c2db3b | ||
|
|
63412b419b | ||
|
|
3f95fa336e | ||
|
|
ebc813c9cf | ||
|
|
05addc4e62 | ||
|
|
cf4f3cbdaa | ||
|
|
7005c5aa84 | ||
|
|
70c8087f2d | ||
|
|
428539b1c9 | ||
|
|
7b63825d03 | ||
|
|
414302b95c | ||
|
|
421abc0d01 | ||
|
|
03d50bfec1 | ||
|
|
3b1372a22b | ||
|
|
e104ca4071 | ||
|
|
58394f5b6f | ||
|
|
bc4ffe7eaf | ||
|
|
16fb327e1b | ||
|
|
4bb846d522 | ||
|
|
253087fcaa | ||
|
|
247488ff07 | ||
|
|
ef4f584745 | ||
|
|
80ef7645ff | ||
|
|
fadff54087 | ||
|
|
aff1c988a4 | ||
|
|
6d30079412 | ||
|
|
c6704835aa | ||
|
|
55b4b92b8f | ||
|
|
1b4ca70d35 | ||
|
|
4a9cce26cd | ||
|
|
3e0c546e3b | ||
|
|
85465e7616 | ||
|
|
1b47e4478f | ||
|
|
8b0294d5fe | ||
|
|
c449fbf343 | ||
|
|
c89c2619cb | ||
|
|
f952eb45cc | ||
|
|
ee034830da | ||
|
|
91bcd9e3a0 | ||
|
|
1b9ebde1c3 | ||
|
|
e9e30a8196 | ||
|
|
666abd5c09 | ||
|
|
cf582b8729 | ||
|
|
54d78b4325 | ||
|
|
2e790f9762 | ||
|
|
314b6614cb | ||
|
|
54bfb51dd8 | ||
|
|
51ed1b13d3 | ||
|
|
efc9a1d6db | ||
|
|
d5c454aff6 | ||
|
|
c2014ab592 | ||
|
|
bde4e0e663 | ||
|
|
62e9bef633 | ||
|
|
2e908bf62a | ||
|
|
b0f519e7a8 | ||
|
|
106ff8cce0 | ||
|
|
80db127967 | ||
|
|
f666841997 | ||
|
|
533d473b7d | ||
|
|
0e52c6229b | ||
|
|
2ec7565474 | ||
|
|
5f17ed0d9b | ||
|
|
b2f0fad78f | ||
|
|
3fe2c091cc | ||
|
|
acdcd2b694 | ||
|
|
3e48ba0dbc | ||
|
|
7f3d57dda8 | ||
|
|
c08a0ebc07 | ||
|
|
0ee3a9dadd | ||
|
|
4be2f76938 | ||
|
|
02d3754d1e | ||
|
|
659826ba3e | ||
|
|
e6ab0dd2ca | ||
|
|
f6e4558074 | ||
|
|
7b2366db70 | ||
|
|
9c511a0dc7 | ||
|
|
f383f03df7 | ||
|
|
239618e700 | ||
|
|
2f884b27c2 | ||
|
|
247daab1a7 | ||
|
|
d938014328 | ||
|
|
261995c57e | ||
|
|
7bf3739b88 | ||
|
|
f4d60f891f | ||
|
|
b0e6be3355 | ||
|
|
99da34a4bf | ||
|
|
ba4f254aa9 | ||
|
|
cec94b0eeb | ||
|
|
da32ac49ce | ||
|
|
3942243c5d | ||
|
|
44012dd60d | ||
|
|
f51de9fb15 | ||
|
|
2351787aa6 | ||
|
|
8d90748586 | ||
|
|
40b08512c4 | ||
|
|
71d4ae3fd0 | ||
|
|
bc12bc0a1f | ||
|
|
850e3057ed | ||
|
|
a3c95f281a | ||
|
|
bf54a8b514 | ||
|
|
2473968416 | ||
|
|
f7033a3346 | ||
|
|
41094cee0b | ||
|
|
0f2d3b866b | ||
|
|
2b7197054f | ||
|
|
ad0a222ec0 | ||
|
|
6e08e9d982 | ||
|
|
02e9bb7bf8 | ||
|
|
69c3b7fd9d | ||
|
|
d7f6bf262e | ||
|
|
bea427cebd | ||
|
|
9e057920ce | ||
|
|
7a671773f2 | ||
|
|
87d4ee6113 | ||
|
|
e474b9e989 | ||
|
|
01ded85842 | ||
|
|
b1416abab6 | ||
|
|
a179df7937 | ||
|
|
71b0add384 | ||
|
|
db8b916444 | ||
|
|
46ef4ef03a | ||
|
|
d1f2b629d4 | ||
|
|
330d764d3b | ||
|
|
2cd05e5976 | ||
|
|
3cea95052a | ||
|
|
ac7ef3ec32 | ||
|
|
e1bd9f2ed3 | ||
|
|
2fad51aae1 | ||
|
|
9745e31cb8 | ||
|
|
8ce46dbe07 | ||
|
|
8a98023414 | ||
|
|
507806f969 | ||
|
|
8f79637669 | ||
|
|
026483186a | ||
|
|
906effb54f | ||
|
|
9544bc192d | ||
|
|
23beef88a9 | ||
|
|
1c5db966aa | ||
|
|
6ad40b3a85 | ||
|
|
b469d5cc62 | ||
|
|
aef8f792fb | ||
|
|
e8474de3ea | ||
|
|
53ff7d91a8 | ||
|
|
77c3728447 | ||
|
|
aa356e53b8 | ||
|
|
d956434b59 | ||
|
|
9a27cf1e9d | ||
|
|
b846bbd819 | ||
|
|
f7eb6b70fb | ||
|
|
4c54be504c | ||
|
|
b1f36f06ca | ||
|
|
e49bcccfb1 | ||
|
|
d7097d666b | ||
|
|
975f01067b | ||
|
|
92d0305964 | ||
|
|
7da62bfb79 | ||
|
|
e5bc7669fd | ||
|
|
df7774663c | ||
|
|
e83e8d39d7 | ||
|
|
ea5cfc962a | ||
|
|
e4d9adbd71 | ||
|
|
72f771ef45 | ||
|
|
a4b427d4c3 | ||
|
|
627987d8ff | ||
|
|
08d64f0387 | ||
|
|
13e2c6d8e1 | ||
|
|
55690c7b8d | ||
|
|
d90a737187 | ||
|
|
701f97890a | ||
|
|
89600e8dd6 | ||
|
|
e690855bc3 | ||
|
|
fecec879a7 | ||
|
|
8a29ed59df | ||
|
|
da45568ba3 | ||
|
|
fc819d0bd9 | ||
|
|
63f9161f72 | ||
|
|
734033a05f | ||
|
|
157ef67688 | ||
|
|
6a2827695a | ||
|
|
9ade382800 | ||
|
|
7d47e3d387 | ||
|
|
8b061d7ed2 | ||
|
|
91bb55c45d | ||
|
|
aa52ab8208 | ||
|
|
f4e0a6b968 | ||
|
|
85166e0140 | ||
|
|
02973df5f2 | ||
|
|
17b58ef7ea | ||
|
|
d0fd036e37 | ||
|
|
46b40010ae | ||
|
|
63328d4091 | ||
|
|
36f7ffd0c9 | ||
|
|
36b044f81e | ||
|
|
5968779f4b | ||
|
|
41866eed87 | ||
|
|
63171ebb07 | ||
|
|
a56df93f31 | ||
|
|
875be659a1 | ||
|
|
6c2b739c53 | ||
|
|
5201210bae | ||
|
|
6467699ca4 | ||
|
|
6fb11c619a | ||
|
|
133d92da58 | ||
|
|
285891821e | ||
|
|
78b50680bf | ||
|
|
26fdab9f62 | ||
|
|
555cb2023e | ||
|
|
2c359c823a | ||
|
|
03204fe981 | ||
|
|
06d6d609e9 | ||
|
|
fd27016277 | ||
|
|
3bb5ec2ec4 | ||
|
|
70a4034545 | ||
|
|
6f6ce3e15e | ||
|
|
9461949887 | ||
|
|
a2abfeec45 | ||
|
|
b0bff0ec59 | ||
|
|
e741e91a38 | ||
|
|
857e0c56a1 | ||
|
|
f4128a2bc4 | ||
|
|
898d4a8c50 | ||
|
|
fb50cc51e2 | ||
|
|
f309806149 | ||
|
|
b5a1dfc657 | ||
|
|
113b6fd437 | ||
|
|
0b42f0597f | ||
|
|
d8cad7eb9c | ||
|
|
ba2ed45376 | ||
|
|
4b1444ac27 | ||
|
|
c46039e461 | ||
|
|
451cd3395a | ||
|
|
c8baa76ab6 | ||
|
|
375cb82aa0 | ||
|
|
3c7ee580d8 | ||
|
|
85048189fc | ||
|
|
64bd53e675 | ||
|
|
5cd5eceba0 | ||
|
|
cf4e5a73a5 | ||
|
|
76c48ffb86 | ||
|
|
00e6819f3a | ||
|
|
b54b7ef659 | ||
|
|
d1a69b8e99 | ||
|
|
79070290f1 | ||
|
|
9a5123bdfe | ||
|
|
7c6fa1d589 | ||
|
|
c57721f304 | ||
|
|
e2366995bf | ||
|
|
469cc67d39 | ||
|
|
74f601e769 | ||
|
|
cb3485b672 | ||
|
|
82e967e5e6 | ||
|
|
29ea3caf10 | ||
|
|
f4693db3a3 | ||
|
|
96c51eadc9 | ||
|
|
7a3c23d482 | ||
|
|
2462656853 | ||
|
|
afc0c883e0 | ||
|
|
6454378247 | ||
|
|
5a51487062 | ||
|
|
9457b2ef4e | ||
|
|
3f818a717b | ||
|
|
68f56798c5 | ||
|
|
d71c9f3056 | ||
|
|
5373ea378a | ||
|
|
1088aae3c3 | ||
|
|
d01d2952a0 | ||
|
|
64f0e92b83 | ||
|
|
1773c53c87 | ||
|
|
c520aae568 | ||
|
|
ed0fd28aff | ||
|
|
9d870f3900 | ||
|
|
f9a4707b26 | ||
|
|
592adf7dc2 | ||
|
|
946191fb80 | ||
|
|
c8f7f7feee | ||
|
|
b916fd3d7f | ||
|
|
a02373df1a | ||
|
|
49dd142346 | ||
|
|
e50d57f3b7 | ||
|
|
cf00dcb23a | ||
|
|
51833b980c | ||
|
|
57ab797a83 | ||
|
|
f9d193397a | ||
|
|
aaf6b0ef6c | ||
|
|
f98cc67e50 | ||
|
|
5337c00cbb | ||
|
|
8f329840b8 | ||
|
|
0d12fdeb7c | ||
|
|
54b5e3f7de | ||
|
|
8efd3e6a29 | ||
|
|
bd41f944d4 | ||
|
|
b705006b6b | ||
|
|
cd389dbb98 | ||
|
|
7af9efa0b0 | ||
|
|
b42eb96ae6 | ||
|
|
e1585bf0f0 | ||
|
|
0b06e0cc38 | ||
|
|
d77cb489ba | ||
|
|
8bd217efdb | ||
|
|
3a075f9426 | ||
|
|
14227f1a02 | ||
|
|
6ca6cc975f | ||
|
|
dc978e394a | ||
|
|
36c5366045 | ||
|
|
a2ba550880 | ||
|
|
533ac81c01 | ||
|
|
831bfda9d2 | ||
|
|
ab70e4fd6d | ||
|
|
4d82d73a06 | ||
|
|
724411ac1c | ||
|
|
2d27aa1355 | ||
|
|
2b662f27f6 | ||
|
|
f2e78f2bb5 | ||
|
|
9301f52243 | ||
|
|
f87bcba303 | ||
|
|
c99979af3d | ||
|
|
96b762793c | ||
|
|
8bcd348638 | ||
|
|
7db461dccb | ||
|
|
3bccb39bb9 | ||
|
|
95b0994713 | ||
|
|
5f7159f897 | ||
|
|
244386a257 | ||
|
|
b4df2f48c7 | ||
|
|
84c9c592f8 | ||
|
|
4f3cf2cfb8 | ||
|
|
5a33ab5d65 | ||
|
|
920f5e254d | ||
|
|
50c4837d55 | ||
|
|
0f6cf9cc29 | ||
|
|
929667cf18 | ||
|
|
47ad87ecbf | ||
|
|
5db6b77754 | ||
|
|
483417a75b | ||
|
|
5470afd66b | ||
|
|
3da9b962c3 | ||
|
|
26d9f26bd8 | ||
|
|
7290687619 | ||
|
|
ad7b27283d | ||
|
|
8d002e0930 | ||
|
|
b1bc808468 | ||
|
|
d1ebdb2de9 | ||
|
|
4ff617cd85 | ||
|
|
7994d42e88 | ||
|
|
867c6d55e0 | ||
|
|
42f75ef047 | ||
|
|
e7bd87c468 | ||
|
|
c33415db62 | ||
|
|
559c387477 | ||
|
|
5f7cebc478 | ||
|
|
c6e8d40905 | ||
|
|
2b32144429 | ||
|
|
a13f708bb6 | ||
|
|
2049d24199 | ||
|
|
c2f923f320 | ||
|
|
1528f83532 | ||
|
|
e8074841e9 |
@@ -1,3 +1,290 @@
|
||||
|
||||
--- 9.7.3rc1 released ---
|
||||
|
||||
3007. [bug] Named failed to preserve the case of domain names in
|
||||
rdata which is not compressible when writing master
|
||||
files. [RT #22863]
|
||||
|
||||
3002. [bug] isc_mutex_init_errcheck() failed to destroy attr.
|
||||
[RT #22766]
|
||||
|
||||
2996. [security] Temporarily disable SO_ACCEPTFILTER support.
|
||||
[RT #22589]
|
||||
|
||||
2995. [bug] The Kerberos realm was not being correctly extracted
|
||||
from the signer's identity. [RT #22770]
|
||||
|
||||
2994. [port] NetBSD: use pthreads by default on NetBSD >= 5.0, and
|
||||
do not use threads on earlier versions. Also kill
|
||||
the unproven-pthreads, mit-pthreads, and ptl2 support.
|
||||
|
||||
2990. [bug] 'dnssec-settime -S' no longer tests prepublication
|
||||
interval validity when the interval is set to 0.
|
||||
[RT #22761]
|
||||
|
||||
2985. [bug] Add a regression test for change #2896. [RT #21324]
|
||||
|
||||
2984. [bug] Don't run MX checks when the target of the MX record
|
||||
is ".". [RT #22645]
|
||||
|
||||
2983. [bug] Include "loadkeys" in rndc help output. [RT #22493]
|
||||
|
||||
--- 9.7.3b1 released ---
|
||||
|
||||
2982. [bug] Reference count dst keys. dst_key_attach() can be used
|
||||
increment the reference count.
|
||||
|
||||
Note: dns_tsigkey_createfromkey() callers should now
|
||||
always call dst_key_free() rather than setting it
|
||||
to NULL on success. [RT #22672]
|
||||
|
||||
2980. [bug] named didn't properly handle UPDATES that changed the
|
||||
TTL of the NSEC3PARAM RRset. [RT #22363]
|
||||
|
||||
2979. [bug] named could deadlock during shutdown if two
|
||||
"rndc stop" commands were issued at the same
|
||||
time. [RT #22108]
|
||||
|
||||
2978. [port] hpux: look for <devpoll.h> [RT #21919]
|
||||
|
||||
2977. [bug] 'nsupdate -l' report if the session key is missing.
|
||||
[RT #21670]
|
||||
|
||||
2976. [bug] named could die on exit after negotiating a GSS-TSIG
|
||||
key. [RT #22573]
|
||||
|
||||
2975. [bug] rbtdb.c:cleanup_dead_nodes_callback() aquired the
|
||||
wrong lock which could lead to server deadlock.
|
||||
[RT #22614]
|
||||
|
||||
2974. [bug] Some vaild UPDATE requests could fail due to a
|
||||
consistency check examining the existing version
|
||||
of the zone rather than the new version resulting
|
||||
from the UPDATE. [RT #22413]
|
||||
|
||||
2973. [bug] bind.keys.h was being removed by the "make clean"
|
||||
at the end of configure resulting in build failures
|
||||
where there is very old version of perl installed.
|
||||
Move it to "make maintainer-clean". [RT #22230]
|
||||
|
||||
2972. [bug] win32: address windows socket errors. [RT #21906]
|
||||
|
||||
2971. [bug] Fixed a bug that caused journal files not to be
|
||||
compacted on Windows systems as a result of
|
||||
non-POSIX-compliant rename() semantics. [RT #22434]
|
||||
|
||||
2970. [security] Adding a NO DATA negative cache entry failed to clear
|
||||
any matching RRSIG records. A subsequent lookup of
|
||||
of NO DATA cache entry could trigger a INSIST when the
|
||||
unexpected RRSIG was also returned with the NO DATA
|
||||
cache entry.
|
||||
|
||||
CVE-2010-3613, VU#706148. [RT #22288]
|
||||
|
||||
2969. [security] Fix acl type processing so that allow-query works
|
||||
in options and view statements. Also add a new
|
||||
set of tests to verify proper functioning.
|
||||
|
||||
CVE-2010-3615, VU#510208. [RT #22418]
|
||||
|
||||
2968. [security] Named could fail to prove a data set was insecure
|
||||
before marking it as insecure. One set of conditions
|
||||
that can trigger this occurs naturally when rolling
|
||||
DNSKEY algorithms.
|
||||
|
||||
CVE-2010-3614, VU#837744. [RT #22309]
|
||||
|
||||
2967. [bug] 'host -D' now turns on debugging messages earlier.
|
||||
[RT #22361]
|
||||
|
||||
2966. [bug] isc_print_vsnprintf() failed to check if there was
|
||||
space available in the buffer when adding a left
|
||||
justified character with a non zero width,
|
||||
(e.g. "%-1c"). [RT #22270]
|
||||
|
||||
2965. [func] Test HMAC functions using test data from RFC 2104 and
|
||||
RFC 4634. [RT #21702]
|
||||
|
||||
2963. [security] The allow-query acl was being applied instead of the
|
||||
allow-query-cache acl to cache lookups. [RT #22114]
|
||||
|
||||
2962. [port] win32: add more dependencies to BINDBuild.dsw.
|
||||
[RT #22062]
|
||||
|
||||
2961. [bug] Be still more selective about the non-authoritative
|
||||
answers we apply change 2748 to. [RT #22074]
|
||||
|
||||
2960. [func] Check that named accepts non-authoritative answers.
|
||||
[RT #21594]
|
||||
|
||||
2959. [func] Check that named starts with a missing masterfile.
|
||||
[RT #22076]
|
||||
|
||||
2958. [bug] named failed to start with a missing master file.
|
||||
[RT #22076]
|
||||
|
||||
2957. [bug] entropy_get() and entropy_getpseudo() failed to match
|
||||
the API for RAND_bytes() and RAND_pseudo_bytes()
|
||||
respectively. [RT #21962]
|
||||
|
||||
2956. [port] Enable atomic operations on the PowerPC64. [RT #21899]
|
||||
|
||||
2954. [bug] contrib: dlz_mysql_driver.c bad error handling on
|
||||
build_sqldbinstance failure. [RT #21623]
|
||||
|
||||
2953. [bug] Silence spurious "expected covering NSEC3, got an
|
||||
exact match" message when returning a wildcard
|
||||
no data response. [RT #21744]
|
||||
|
||||
2952. [port] win32: named-checkzone and named-checkconf failed
|
||||
to initialise winsock. [RT #21932]
|
||||
|
||||
2951. [bug] named failed to generate a correct signed response
|
||||
in a optout, delegation only zone with no secure
|
||||
delegations. [RT #22007]
|
||||
|
||||
2950. [bug] named failed to perform a SOA up to date check when
|
||||
falling back to TCP on UDP timeouts when
|
||||
ixfr-from-differences was set. [RT #21595]
|
||||
|
||||
2949. [bug] dns_view_setnewzones() contained a memory leak if
|
||||
it was called multiple times. [RT #21942]
|
||||
|
||||
2928. [bug] Be more selective about the non-authoritative
|
||||
answer we apply change 2748 to. [RT #21594]
|
||||
|
||||
--- 9.7.2 released ---
|
||||
|
||||
2946. [doc] Document the default values for the minimum and maximum
|
||||
zone refresh and retry values in the ARM. [RT #21886]
|
||||
|
||||
2945. [doc] Update empty-zones list in ARM. [RT #21772]
|
||||
|
||||
2944. [maint] Remove ORCHID prefix from built in empty zones.
|
||||
[RT #21772]
|
||||
|
||||
--- 9.7.2rc1 released ---
|
||||
|
||||
2943. [func] Add support to load new keys into managed zones
|
||||
without signing immediately with "rndc loadkeys".
|
||||
Add support to link keys with "dnssec-keygen -S"
|
||||
and "dnssec-settime -S". [RT #21351]
|
||||
|
||||
2942. [contrib] zone2sqlite failed to setup the entropy sources.
|
||||
[RT #21610]
|
||||
|
||||
2941. [bug] sdb and sdlz (dlz's zone database) failed to support
|
||||
DNAME at the zone apex. [RT #21610]
|
||||
|
||||
2940. [port] Remove connection aborted error message on
|
||||
Windows. [RT #21549]
|
||||
|
||||
2939. [func] Check that named successfully skips NSEC3 records
|
||||
that fail to match the NSEC3PARAM record currently
|
||||
in use. [RT# 21868]
|
||||
|
||||
2938. [bug] When generating signed responses, from a signed zone
|
||||
that uses NSEC3, named would use a uninitialised
|
||||
pointer if it needed to skip a NSEC3 record because
|
||||
it didn't match the selected NSEC3PARAM record for
|
||||
zone. [RT# 21868]
|
||||
|
||||
2937. [bug] Worked around an apparent race condition in over
|
||||
memory conditions. Without this fix a DNS cache DB or
|
||||
ADB could incorrectly stay in an over memory state,
|
||||
effectively refusing further caching, which
|
||||
subsequently made a BIND 9 caching server unworkable.
|
||||
This fix prevents this problem from happening by
|
||||
polling the state of the memory context, rather than
|
||||
making a copy of the state, which appeared to cause
|
||||
a race. This is a "workaround" in that it doesn't
|
||||
solve the possible race per se, but several experiments
|
||||
proved this change solves the symptom. Also, the
|
||||
polling overhead hasn't been reported to be an issue.
|
||||
This bug should only affect a caching server that
|
||||
specifies a finite max-cache-size. It's also quite
|
||||
likely that the bug happens only when enabling threads,
|
||||
but it's not confirmed yet. [RT #21818]
|
||||
|
||||
2936. [func] Improved configuration syntax and multiple-view
|
||||
support for addzone/delzone feature (see change
|
||||
#2930). Removed "new-zone-file" option, replaced
|
||||
with "allow-new-zones (yes|no)". The new-zone-file
|
||||
for each view is now created automatically, with
|
||||
a filename generated from a hash of the view name.
|
||||
It is no longer necessary to "include" the
|
||||
new-zone-file in named.conf; this happens
|
||||
automatically. Zones that were not added via
|
||||
"rndc addzone" can no longer be removed with
|
||||
"rndc delzone". [RT #19447]
|
||||
|
||||
2935. [bug] nsupdate: improve 'file not found' error message.
|
||||
[RT #21871]
|
||||
|
||||
2934. [bug] Use ANSI C compliant shift range in lib/isc/entropy.c.
|
||||
[RT #21871]
|
||||
|
||||
2933. [bug] 'dig +nsid' used stack memory after it went out of
|
||||
scope. This could potentially result in a unknown,
|
||||
potentially malformed, EDNS option being sent instead
|
||||
of the desired NSID option. [RT #21781]
|
||||
|
||||
2932. [cleanup] Corrected a numbering error in the "dnssec" test.
|
||||
[RT #21597]
|
||||
|
||||
--- 9.7.2b1 released ---
|
||||
|
||||
2931. [bug] Temporarily and partially disable change 2864
|
||||
because it would cause infinite attempts of RRSIG
|
||||
queries. This is an urgent care fix; we'll
|
||||
revisit the issue and complete the fix later.
|
||||
[RT #21710]
|
||||
|
||||
2930. [experimental] New "rndc addzone" and "rndc delzone" commads
|
||||
allow dynamic addition and deletion of zones.
|
||||
To enable this feature, specify a "new-zone-file"
|
||||
option at the view or options level in named.conf.
|
||||
Zone configuration information for the new zones
|
||||
will be written into that file. To make the new
|
||||
zones persist after a restart, "include" the file
|
||||
into named.conf in the appropriate view. (Note:
|
||||
This feature is not yet documented, and its syntax
|
||||
is expected to change.) [RT #19447]
|
||||
|
||||
2929. [bug] Improved handling of GSS security contexts:
|
||||
- added LRU expiration for generated TSIGs
|
||||
- added the ability to use a non-default realm
|
||||
- added new "realm" keyword in nsupdate
|
||||
- limited lifetime of generated keys to 1 hour
|
||||
or the lifetime of the context (whichever is
|
||||
smaller)
|
||||
[RT #19737]
|
||||
|
||||
2925. [bug] Named failed to accept uncachable negative responses
|
||||
from insecure zones. [RT# 21555]
|
||||
|
||||
2924. [func] 'rndc secroots' dump a combined summary of the
|
||||
current managed keys combined with trusted keys.
|
||||
[RT #20904]
|
||||
|
||||
2923. [bug] 'dig +trace' could drop core after "connection
|
||||
timeout". [RT #21514]
|
||||
|
||||
2922. [contrib] Update zkt to version 1.0.
|
||||
|
||||
2921. [bug] The resolver could attempt to destroy a fetch context
|
||||
too soon. [RT #19878]
|
||||
|
||||
2920. [func] Allow 'filter-aaaa-on-v4' to be applied selectively
|
||||
to IPv4 clients. New acl 'filter-aaaa' (default any).
|
||||
|
||||
2919. [func] Add autosign-ksk and autosign-zsk virtual time tests.
|
||||
[RT #20840]
|
||||
|
||||
2918. [maint] Add AAAA address for I.ROOT-SERVERS.NET.
|
||||
|
||||
2917. [func] Virtual time test framework. [RT #20801]
|
||||
|
||||
2916. [func] Add framework to use IPv6 in tests.
|
||||
fd92:7065:b8e:ffff::1 ... fd92:7065:b8e:ffff::7
|
||||
|
||||
@@ -17,6 +304,10 @@
|
||||
|
||||
2910. [func] Sanity check Kerberos credentials. [RT #20986]
|
||||
|
||||
--- 9.7.1 released ---
|
||||
|
||||
--- 9.7.1rc1 released ---
|
||||
|
||||
2909. [bug] named-checkconf -p could die if "update-policy local;"
|
||||
was specified in named.conf. [RT #21416]
|
||||
|
||||
@@ -39,6 +330,8 @@
|
||||
2903. [bug] managed-keys-directory missing from namedconf.c.
|
||||
[RT #21370]
|
||||
|
||||
--- 9.7.1b1 released ---
|
||||
|
||||
2902. [func] Add regression test for change 2897. [RT #21040]
|
||||
|
||||
2901. [port] Use AC_C_FLEXIBLE_ARRAY_MEMBER. [RT #21316]
|
||||
@@ -88,7 +381,7 @@
|
||||
2885. [bug] Improve -fno-strict-aliasing support probing in
|
||||
configure. [RT #21080]
|
||||
|
||||
2884. [bug] Insufficient valadation in dns_name_getlabelsequence().
|
||||
2884. [bug] Insufficient validation in dns_name_getlabelsequence().
|
||||
[RT #21283]
|
||||
|
||||
2883. [bug] 'dig +short' failed to handle really large datasets.
|
||||
@@ -122,7 +415,7 @@
|
||||
successfully responds to the query using plain DNS.
|
||||
[RT #20930]
|
||||
|
||||
2873. [bug] Canceling a dynamic update via the dns/client module
|
||||
2873. [bug] Cancelling a dynamic update via the dns/client module
|
||||
could trigger an assertion failure. [RT #21133]
|
||||
|
||||
2872. [bug] Modify dns/client.c:dns_client_createx() to only
|
||||
@@ -176,12 +469,6 @@
|
||||
2856. [bug] The size of a memory allocation was not always properly
|
||||
recorded. [RT #20927]
|
||||
|
||||
2855. [func] nsupdate will now preserve the entered case of domain
|
||||
names in update requests it sends. [RT #20928]
|
||||
|
||||
2854. [func] dig: allow the final soa record in a axfr response to
|
||||
be suppressed, dig +onesoa. [RT #20929]
|
||||
|
||||
2853. [bug] add_sigs() could run out of scratch space. [RT #21015]
|
||||
|
||||
2852. [bug] Handle broken DNSSEC trust chains better. [RT #15619]
|
||||
@@ -192,6 +479,8 @@
|
||||
2850. [bug] If isc_heap_insert() failed due to memory shortage
|
||||
the heap would have corrupted entries. [RT #20951]
|
||||
|
||||
--- 9.7.0 released ---
|
||||
|
||||
2849. [bug] Don't treat errors from the xml2 library as fatal.
|
||||
[RT #20945]
|
||||
|
||||
@@ -208,6 +497,8 @@
|
||||
2844. [doc] notify-delay default in ARM was wrong. It should have
|
||||
been five (5) seconds.
|
||||
|
||||
--- 9.7.0rc2 released ---
|
||||
|
||||
2843. [func] Prevent dnssec-keygen and dnssec-keyfromlabel from
|
||||
creating key files if there is a chance that the new
|
||||
key ID will collide with an existing one after
|
||||
@@ -257,7 +548,7 @@
|
||||
[RT #20851]
|
||||
|
||||
2832. [bug] Modify "struct stat" in lib/export/samples/nsprobe.c
|
||||
to avoid redefinition in some OSes [RT 20831]
|
||||
to avoid redefinition in some OSs [RT 20831]
|
||||
|
||||
2831. [security] Do not attempt to validate or cache
|
||||
out-of-bailiwick data returned with a secure
|
||||
@@ -293,10 +584,6 @@
|
||||
2821. [doc] Add note that named-checkconf doesn't automatically
|
||||
read rndc.key and bind.keys [RT #20758]
|
||||
|
||||
2820. [func] Handle read access failure of OpenSSL configuration
|
||||
file more user friendly (PKCS#11 engine patch).
|
||||
[RT #20668]
|
||||
|
||||
2819. [cleanup] Removed unnecessary DNS_POINTER_MAXHOPS define.
|
||||
[RT #20771]
|
||||
|
||||
@@ -355,7 +642,7 @@
|
||||
2802. [cleanup] Rename journalprint to named-journalprint. [RT #20670]
|
||||
|
||||
2801. [func] Detect and report records that are different according
|
||||
to DNSSEC but are sematically equal according to plain
|
||||
to DNSSEC but are semantically equal according to plain
|
||||
DNS. Apply plain DNS comparisons rather than DNSSEC
|
||||
comparisons when processing UPDATE requests.
|
||||
dnssec-signzone now removes such semantically duplicate
|
||||
@@ -428,7 +715,7 @@
|
||||
2780. [bug] dnssec-keygen -A none didn't properly unset the
|
||||
activation date in all cases. [RT #20648]
|
||||
|
||||
2779. [bug] Dynamic key revokation could fail. [RT #20644]
|
||||
2779. [bug] Dynamic key revocation could fail. [RT #20644]
|
||||
|
||||
2778. [bug] dnssec-signzone could fail when a key was revoked
|
||||
without deleting the unrevoked version. [RT #20638]
|
||||
@@ -549,7 +836,7 @@
|
||||
2738. [func] Add RSASHA256 and RSASHA512 tests to the dnssec system
|
||||
test. [RT #20453]
|
||||
|
||||
2737. [func] UPDATE requests can leak existance information.
|
||||
2737. [func] UPDATE requests can leak existence information.
|
||||
[RT #17261]
|
||||
|
||||
2736. [func] Improve the performance of NSEC signed zones with
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright (C) 2004-2011 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright (C) 1996-2003 Internet Software Consortium.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -13,7 +13,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
$Id: COPYRIGHT,v 1.16 2010/01/04 23:48:51 tbox Exp $
|
||||
$Id: COPYRIGHT,v 1.15.188.2 2011/01/04 23:46:30 tbox Exp $
|
||||
|
||||
Portions Copyright (C) 1996-2001 Nominum, Inc.
|
||||
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
2988. [experimental] Added a "dlopen" DLZ driver, allowing the creation
|
||||
of external DLZ drivers that can be loaded as
|
||||
shared objects at runtime rather than linked with
|
||||
named. Currently this is switched on via a
|
||||
compile-time option, "configure --with-dlz-dlopen".
|
||||
Note: the syntax for configuring DLZ zones
|
||||
is likely to be refined in future releases.
|
||||
(Contributed by Andrew Tridgell of the Samba
|
||||
project.) [RT #22629]
|
||||
|
||||
3000. [bug] More TKEY/GSS fixes:
|
||||
- nsupdate can now get the default realm from
|
||||
the user's Kerberos principal
|
||||
- corrected gsstest compilation flags
|
||||
- improved documentation
|
||||
- fixed some NULL dereferences
|
||||
[RT #22795]
|
||||
|
||||
3003. [experimental] Added update-policy match type "external",
|
||||
enabling named to defer the decision of whether to
|
||||
allow a dynamic update to an external daemon.
|
||||
(Contributed by Andrew Tridgell.) [RT #22758]
|
||||
|
||||
|
||||
2991. [contrib] contrib/zone-edit.sh: A simple zone editing tool for
|
||||
dynamic zones. [RT #22365]
|
||||
|
||||
2992. [contrib] contrib/check-secure-delegation.pl: A simple tool
|
||||
for looking at a secure delegation. [RT #22059]
|
||||
|
||||
3005. [port] Solaris: Work around the lack of
|
||||
gsskrb5_register_acceptor_identity() by setting
|
||||
the KRB5_KTNAME environment variable to the
|
||||
contents of tkey-gssapi-keytab. Also fixed
|
||||
test errors on MacOSX. [RT #22853]
|
||||
|
||||
2948. [port] MacOS: provide a mechanism to configure the test
|
||||
interfaces at reboot. See bin/tests/system/README
|
||||
for details.
|
||||
@@ -17,7 +17,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: FAQ.xml,v 1.54 2010/01/19 23:48:55 tbox Exp $ -->
|
||||
<!-- $Id: FAQ.xml,v 1.52.24.2 2010/01/20 23:48:18 tbox Exp $ -->
|
||||
|
||||
<article class="faq">
|
||||
<title>Frequently Asked Questions about BIND 9</title>
|
||||
|
||||
@@ -48,6 +48,37 @@ BIND 9
|
||||
For a detailed list of user-visible changes from
|
||||
previous releases, see the CHANGES file.
|
||||
|
||||
BIND 9.7.3
|
||||
|
||||
BIND 9.7.3 is a maintenance release, fixing bugs in 9.7.2.
|
||||
|
||||
BIND 9.7.2
|
||||
|
||||
BIND 9.7.2 will address bugs in 9.7.1, and also introduces
|
||||
some new functionality:
|
||||
|
||||
- "rndc loadkeys" to allow new keys to be added to a managed
|
||||
zone without having them sign the content immediately.
|
||||
- "rndc addzone" and "rndc delzone" allow adding and deleting
|
||||
zones at runtime. This requires the view to have the
|
||||
"new-zone-file" option set to a filename. Zone configuration
|
||||
information for new zones is specified in the 'rndc addzone'
|
||||
command line, and is stored in that file. To make new
|
||||
zones persist after a restart, "include" the file
|
||||
into named.conf in the appropriate view. (Note:
|
||||
This feature is not yet documented, and its syntax
|
||||
is expected to change.)
|
||||
- "rndc secroots" dumps a list of the current trusted and
|
||||
managed DNSSEC keys for each view.
|
||||
- "filter-aaaa-on-v4" can now be applied selectively to
|
||||
some IPv4 clients but not others, using the "filter-aaaa"
|
||||
ACL. (This feature requires BIND 9 to be built with
|
||||
the --enable-filter-aaaa configure option.)
|
||||
|
||||
BIND 9.7.1
|
||||
|
||||
BIND 9.7.1 is a maintenance release, fixing bugs in 9.7.0.
|
||||
|
||||
BIND 9.7.0
|
||||
|
||||
BIND 9.7.0 includes a number of changes from BIND 9.6 and earlier
|
||||
@@ -79,6 +110,17 @@ BIND 9.7.0
|
||||
|
||||
Known issues in this release:
|
||||
|
||||
- A validating resolver that has been incorrectly configured with
|
||||
an invalid trust anchor will be unable to resolve names covered
|
||||
by that trust anchor. In all current versions of BIND 9, such a
|
||||
resolver will also generate significant unnecessary DNS traffic
|
||||
while trying to validate. The latter problem will be addressed
|
||||
in future BIND 9 releases. In the meantime, to avoid these
|
||||
problems, exercise caution when configuring "trusted-keys":
|
||||
make sure all keys are correct and current when you add them,
|
||||
and update your configuration in a timely manner when keys
|
||||
roll over.
|
||||
|
||||
- In rare cases, DNSSEC validation can leak memory. When this
|
||||
happens, it will cause an assertion failure when named exits,
|
||||
but is otherwise harmless. A fix exists, but was too late for
|
||||
@@ -132,9 +174,9 @@ Building
|
||||
Ubuntu 7.04, 7.10
|
||||
Windows XP/2003/2008
|
||||
|
||||
NOTE: As of BIND 9.5.1, 9.4.3, and 9.3.6, older versions of
|
||||
Windows, including Windows NT and Windows 2000, are no longer
|
||||
supported.
|
||||
NOTE: As of BIND 9.5.1, 9.4.3, and 9.3.6, older versions of
|
||||
Windows, including Windows NT and Windows 2000, are no longer
|
||||
supported.
|
||||
|
||||
We have recent reports from the user community that a supported
|
||||
version of BIND will build and run on the following systems:
|
||||
@@ -234,10 +276,10 @@ Building
|
||||
on the configure command line. The default is operating
|
||||
system dependent.
|
||||
|
||||
Support for the "fixed" rrset-order option can be enabled
|
||||
or disabled by specifying "--enable-fixed-rrset" or
|
||||
"--disable-fixed-rrset" on the configure command line.
|
||||
The default is "disabled", to reduce memory footprint.
|
||||
Support for the "fixed" rrset-order option can be enabled
|
||||
or disabled by specifying "--enable-fixed-rrset" or
|
||||
"--disable-fixed-rrset" on the configure command line.
|
||||
The default is "disabled", to reduce memory footprint.
|
||||
|
||||
If your operating system has integrated support for IPv6, it
|
||||
will be used automatically. If you have installed KAME IPv6
|
||||
@@ -303,8 +345,8 @@ Documentation
|
||||
Frequently asked questions and their answers can be found in
|
||||
FAQ.
|
||||
|
||||
Additional information on various subjects can be found
|
||||
in the other README files.
|
||||
Additional information on various subjects can be found
|
||||
in the other README files.
|
||||
|
||||
|
||||
Bug Reports and Mailing Lists
|
||||
|
||||
+29
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: check-tool.c,v 1.39 2009/09/01 00:22:24 jinmei Exp $ */
|
||||
/* $Id: check-tool.c,v 1.39.104.2 2010/09/07 23:46:37 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -23,6 +23,10 @@
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <Winsock2.h>
|
||||
#endif
|
||||
|
||||
#include "check-tool.h"
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/log.h>
|
||||
@@ -661,3 +665,26 @@ dump_zone(const char *zonename, dns_zone_t *zone, const char *filename,
|
||||
|
||||
return (result);
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
void
|
||||
InitSockets(void) {
|
||||
WORD wVersionRequested;
|
||||
WSADATA wsaData;
|
||||
int err;
|
||||
|
||||
wVersionRequested = MAKEWORD(2, 0);
|
||||
|
||||
err = WSAStartup( wVersionRequested, &wsaData );
|
||||
if (err != 0) {
|
||||
fprintf(stderr, "WSAStartup() failed: %d\n", err);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
DestroySockets(void) {
|
||||
WSACleanup();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007, 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: check-tool.h,v 1.14 2007/06/18 23:47:17 tbox Exp $ */
|
||||
/* $Id: check-tool.h,v 1.14.560.2 2010/09/07 23:46:37 tbox Exp $ */
|
||||
|
||||
#ifndef CHECK_TOOL_H
|
||||
#define CHECK_TOOL_H
|
||||
@@ -43,6 +43,11 @@ isc_result_t
|
||||
dump_zone(const char *zonename, dns_zone_t *zone, const char *filename,
|
||||
dns_masterformat_t fileformat, const dns_master_style_t *style);
|
||||
|
||||
#ifdef _WIN32
|
||||
void InitSockets(void);
|
||||
void DestroySockets(void);
|
||||
#endif
|
||||
|
||||
extern int debug;
|
||||
extern isc_boolean_t nomerge;
|
||||
extern isc_boolean_t docheckmx;
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: named-checkconf.8,v 1.33 2009/12/29 01:14:03 tbox Exp $
|
||||
.\" $Id: named-checkconf.8,v 1.32.126.1 2009/12/29 02:09:32 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: named-checkconf.c,v 1.53 2010/03/09 23:51:06 tbox Exp $ */
|
||||
/* $Id: named-checkconf.c,v 1.51.4.3 2010/09/07 01:52:22 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -488,6 +488,10 @@ main(int argc, char **argv) {
|
||||
if (conffile == NULL || conffile[0] == '\0')
|
||||
conffile = NAMED_CONFFILE;
|
||||
|
||||
#ifdef _WIN32
|
||||
InitSockets();
|
||||
#endif
|
||||
|
||||
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
|
||||
|
||||
RUNTIME_CHECK(setup_logging(mctx, stdout, &logc) == ISC_R_SUCCESS);
|
||||
@@ -531,5 +535,9 @@ main(int argc, char **argv) {
|
||||
|
||||
isc_mem_destroy(&mctx);
|
||||
|
||||
#ifdef _WIN32
|
||||
DestroySockets();
|
||||
#endif
|
||||
|
||||
return (exit_status);
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: named-checkconf.docbook,v 1.22 2009/12/28 23:21:16 each Exp $ -->
|
||||
<!-- $Id: named-checkconf.docbook,v 1.21.126.1 2009/12/28 23:21:44 each Exp $ -->
|
||||
<refentry id="man.named-checkconf">
|
||||
<refentryinfo>
|
||||
<date>June 14, 2000</date>
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: named-checkconf.html,v 1.33 2009/12/29 01:14:03 tbox Exp $ -->
|
||||
<!-- $Id: named-checkconf.html,v 1.32.126.1 2009/12/29 02:09:33 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2004-2007, 2009, 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: named-checkzone.8,v 1.47 2010/01/17 01:14:02 tbox Exp $
|
||||
.\" $Id: named-checkzone.8,v 1.46 2009/12/04 22:22:25 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -33,9 +33,9 @@
|
||||
named\-checkzone, named\-compilezone \- zone file validity checking or converting tool
|
||||
.SH "SYNOPSIS"
|
||||
.HP 16
|
||||
\fBnamed\-checkzone\fR [\fB\-d\fR] [\fB\-h\fR] [\fB\-j\fR] [\fB\-q\fR] [\fB\-v\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-f\ \fR\fB\fIformat\fR\fR] [\fB\-F\ \fR\fB\fIformat\fR\fR] [\fB\-i\ \fR\fB\fImode\fR\fR] [\fB\-k\ \fR\fB\fImode\fR\fR] [\fB\-m\ \fR\fB\fImode\fR\fR] [\fB\-M\ \fR\fB\fImode\fR\fR] [\fB\-n\ \fR\fB\fImode\fR\fR] [\fB\-o\ \fR\fB\fIfilename\fR\fR] [\fB\-r\ \fR\fB\fImode\fR\fR] [\fB\-s\ \fR\fB\fIstyle\fR\fR] [\fB\-S\ \fR\fB\fImode\fR\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-w\ \fR\fB\fIdirectory\fR\fR] [\fB\-D\fR] [\fB\-W\ \fR\fB\fImode\fR\fR] {zonename} {filename}
|
||||
\fBnamed\-checkzone\fR [\fB\-d\fR] [\fB\-h\fR] [\fB\-j\fR] [\fB\-q\fR] [\fB\-v\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-f\ \fR\fB\fIformat\fR\fR] [\fB\-F\ \fR\fB\fIformat\fR\fR] [\fB\-i\ \fR\fB\fImode\fR\fR] [\fB\-k\ \fR\fB\fImode\fR\fR] [\fB\-m\ \fR\fB\fImode\fR\fR] [\fB\-M\ \fR\fB\fImode\fR\fR] [\fB\-n\ \fR\fB\fImode\fR\fR] [\fB\-r\ \fR\fB\fImode\fR\fR] [\fB\-s\ \fR\fB\fIstyle\fR\fR] [\fB\-S\ \fR\fB\fImode\fR\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-w\ \fR\fB\fIdirectory\fR\fR] [\fB\-D\fR] [\fB\-W\ \fR\fB\fImode\fR\fR] {zonename} {filename}
|
||||
.HP 18
|
||||
\fBnamed\-compilezone\fR [\fB\-d\fR] [\fB\-j\fR] [\fB\-q\fR] [\fB\-v\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-C\ \fR\fB\fImode\fR\fR] [\fB\-f\ \fR\fB\fIformat\fR\fR] [\fB\-F\ \fR\fB\fIformat\fR\fR] [\fB\-i\ \fR\fB\fImode\fR\fR] [\fB\-k\ \fR\fB\fImode\fR\fR] [\fB\-m\ \fR\fB\fImode\fR\fR] [\fB\-n\ \fR\fB\fImode\fR\fR] [\fB\-r\ \fR\fB\fImode\fR\fR] [\fB\-s\ \fR\fB\fIstyle\fR\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-w\ \fR\fB\fIdirectory\fR\fR] [\fB\-D\fR] [\fB\-W\ \fR\fB\fImode\fR\fR] {\fB\-o\ \fR\fB\fIfilename\fR\fR} {zonename} {filename}
|
||||
\fBnamed\-compilezone\fR [\fB\-d\fR] [\fB\-j\fR] [\fB\-q\fR] [\fB\-v\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-C\ \fR\fB\fImode\fR\fR] [\fB\-f\ \fR\fB\fIformat\fR\fR] [\fB\-F\ \fR\fB\fIformat\fR\fR] [\fB\-i\ \fR\fB\fImode\fR\fR] [\fB\-k\ \fR\fB\fImode\fR\fR] [\fB\-m\ \fR\fB\fImode\fR\fR] [\fB\-n\ \fR\fB\fImode\fR\fR] [\fB\-o\ \fR\fB\fIfilename\fR\fR] [\fB\-r\ \fR\fB\fImode\fR\fR] [\fB\-s\ \fR\fB\fIstyle\fR\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-w\ \fR\fB\fIdirectory\fR\fR] [\fB\-D\fR] [\fB\-W\ \fR\fB\fImode\fR\fR] {\fB\-o\ \fR\fB\fIfilename\fR\fR} {zonename} {filename}
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
\fBnamed\-checkzone\fR
|
||||
@@ -281,7 +281,7 @@ BIND 9 Administrator Reference Manual.
|
||||
.PP
|
||||
Internet Systems Consortium
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004\-2007, 2009, 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004\-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
Copyright \(co 2000\-2002 Internet Software Consortium.
|
||||
.br
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: named-checkzone.c,v 1.59 2009/12/04 22:06:37 tbox Exp $ */
|
||||
/* $Id: named-checkzone.c,v 1.59.4.2 2010/09/07 23:46:37 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -442,6 +442,10 @@ main(int argc, char **argv) {
|
||||
if (isc_commandline_index + 2 != argc)
|
||||
usage();
|
||||
|
||||
#ifdef _WIN32
|
||||
InitSockets();
|
||||
#endif
|
||||
|
||||
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
|
||||
if (!quiet)
|
||||
RUNTIME_CHECK(setup_logging(mctx, errout, &lctx)
|
||||
@@ -476,5 +480,8 @@ main(int argc, char **argv) {
|
||||
isc_hash_destroy();
|
||||
isc_entropy_detach(&ectx);
|
||||
isc_mem_destroy(&mctx);
|
||||
#ifdef _WIN32
|
||||
DestroySockets();
|
||||
#endif
|
||||
return ((result == ISC_R_SUCCESS) ? 0 : 1);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2004-2007, 2009, 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: named-checkzone.docbook,v 1.40 2010/01/16 23:48:15 tbox Exp $ -->
|
||||
<!-- $Id: named-checkzone.docbook,v 1.38 2009/12/04 21:09:32 marka Exp $ -->
|
||||
<refentry id="man.named-checkzone">
|
||||
<refentryinfo>
|
||||
<date>June 13, 2000</date>
|
||||
@@ -37,7 +37,6 @@
|
||||
<year>2006</year>
|
||||
<year>2007</year>
|
||||
<year>2009</year>
|
||||
<year>2010</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -70,7 +69,6 @@
|
||||
<arg><option>-m <replaceable class="parameter">mode</replaceable></option></arg>
|
||||
<arg><option>-M <replaceable class="parameter">mode</replaceable></option></arg>
|
||||
<arg><option>-n <replaceable class="parameter">mode</replaceable></option></arg>
|
||||
<arg><option>-o <replaceable class="parameter">filename</replaceable></option></arg>
|
||||
<arg><option>-r <replaceable class="parameter">mode</replaceable></option></arg>
|
||||
<arg><option>-s <replaceable class="parameter">style</replaceable></option></arg>
|
||||
<arg><option>-S <replaceable class="parameter">mode</replaceable></option></arg>
|
||||
@@ -95,6 +93,7 @@
|
||||
<arg><option>-k <replaceable class="parameter">mode</replaceable></option></arg>
|
||||
<arg><option>-m <replaceable class="parameter">mode</replaceable></option></arg>
|
||||
<arg><option>-n <replaceable class="parameter">mode</replaceable></option></arg>
|
||||
<arg><option>-o <replaceable class="parameter">filename</replaceable></option></arg>
|
||||
<arg><option>-r <replaceable class="parameter">mode</replaceable></option></arg>
|
||||
<arg><option>-s <replaceable class="parameter">style</replaceable></option></arg>
|
||||
<arg><option>-t <replaceable class="parameter">directory</replaceable></option></arg>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2007, 2009, 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: named-checkzone.html,v 1.47 2010/01/17 01:14:02 tbox Exp $ -->
|
||||
<!-- $Id: named-checkzone.html,v 1.46 2009/12/04 22:22:25 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -29,11 +29,11 @@
|
||||
</div>
|
||||
<div class="refsynopsisdiv">
|
||||
<h2>Synopsis</h2>
|
||||
<div class="cmdsynopsis"><p><code class="command">named-checkzone</code> [<code class="option">-d</code>] [<code class="option">-h</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-M <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-o <em class="replaceable"><code>filename</code></em></code>] [<code class="option">-r <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-S <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {zonename} {filename}</p></div>
|
||||
<div class="cmdsynopsis"><p><code class="command">named-compilezone</code> [<code class="option">-d</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-C <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-r <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {<code class="option">-o <em class="replaceable"><code>filename</code></em></code>} {zonename} {filename}</p></div>
|
||||
<div class="cmdsynopsis"><p><code class="command">named-checkzone</code> [<code class="option">-d</code>] [<code class="option">-h</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-M <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-r <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-S <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {zonename} {filename}</p></div>
|
||||
<div class="cmdsynopsis"><p><code class="command">named-compilezone</code> [<code class="option">-d</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-C <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-o <em class="replaceable"><code>filename</code></em></code>] [<code class="option">-r <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {<code class="option">-o <em class="replaceable"><code>filename</code></em></code>} {zonename} {filename}</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543694"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543691"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">named-checkzone</strong></span>
|
||||
checks the syntax and integrity of a zone file. It performs the
|
||||
same checks as <span><strong class="command">named</strong></span> does when loading a
|
||||
@@ -53,7 +53,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543730"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543726"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-d</span></dt>
|
||||
<dd><p>
|
||||
@@ -247,14 +247,14 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544377"></a><h2>RETURN VALUES</h2>
|
||||
<a name="id2544374"></a><h2>RETURN VALUES</h2>
|
||||
<p><span><strong class="command">named-checkzone</strong></span>
|
||||
returns an exit status of 1 if
|
||||
errors were detected and 0 otherwise.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544389"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2544386"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named-checkconf</span>(8)</span>,
|
||||
<em class="citetitle">RFC 1035</em>,
|
||||
@@ -262,7 +262,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544422"></a><h2>AUTHOR</h2>
|
||||
<a name="id2544419"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
+3
-8
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: dig.1,v 1.54 2010/03/05 01:14:15 tbox Exp $
|
||||
.\" $Id: dig.1,v 1.53 2009/07/11 01:12:45 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -455,11 +455,6 @@ Print records like the SOA records in a verbose multi\-line format with human\-r
|
||||
output.
|
||||
.RE
|
||||
.PP
|
||||
\fB+[no]onesoa\fR
|
||||
.RS 4
|
||||
Print only one (starting) SOA record when performing an AXFR. The default is to print both the starting and ending SOA records.
|
||||
.RE
|
||||
.PP
|
||||
\fB+[no]fail\fR
|
||||
.RS 4
|
||||
Do not try the next server if you receive a SERVFAIL. The default is to not try the next server which is the reverse of normal stub resolver behavior.
|
||||
@@ -567,7 +562,7 @@ RFC1035.
|
||||
.PP
|
||||
There are probably too many query options.
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004\-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004\-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
Copyright \(co 2000\-2003 Internet Software Consortium.
|
||||
.br
|
||||
|
||||
+2
-11
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dig.c,v 1.237 2010/05/13 00:40:46 marka Exp $ */
|
||||
/* $Id: dig.c,v 1.233.62.3 2010/05/13 00:42:26 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -68,8 +68,7 @@ static char domainopt[DNS_NAME_MAXTEXT];
|
||||
|
||||
static isc_boolean_t short_form = ISC_FALSE, printcmd = ISC_TRUE,
|
||||
ip6_int = ISC_FALSE, plusquest = ISC_FALSE, pluscomm = ISC_FALSE,
|
||||
multiline = ISC_FALSE, nottl = ISC_FALSE, noclass = ISC_FALSE,
|
||||
onesoa = ISC_FALSE;
|
||||
multiline = ISC_FALSE, nottl = ISC_FALSE, noclass = ISC_FALSE;
|
||||
|
||||
/*% opcode text */
|
||||
static const char * const opcodetext[] = {
|
||||
@@ -226,7 +225,6 @@ help(void) {
|
||||
#endif
|
||||
#endif
|
||||
" +[no]multiline (Print records in an expanded format)\n"
|
||||
" +[no]onesoa (AXFR prints only one soa record)\n"
|
||||
" global d-opts and servers (before host name) affect all queries.\n"
|
||||
" local d-opts and servers (after host name) affect only that lookup.\n"
|
||||
" -h (print help and exit)\n"
|
||||
@@ -473,9 +471,6 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
|
||||
flags |= DNS_MESSAGETEXTFLAG_NOHEADERS;
|
||||
flags |= DNS_MESSAGETEXTFLAG_NOCOMMENTS;
|
||||
}
|
||||
if (onesoa && query->lookup->rdtype == dns_rdatatype_axfr)
|
||||
flags |= (query->msg_count == 0) ? DNS_MESSAGETEXTFLAG_ONESOA :
|
||||
DNS_MESSAGETEXTFLAG_OMITSOA;
|
||||
if (!query->lookup->comments)
|
||||
flags |= DNS_MESSAGETEXTFLAG_NOCOMMENTS;
|
||||
|
||||
@@ -932,10 +927,6 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
goto invalid_option;
|
||||
}
|
||||
break;
|
||||
case 'o':
|
||||
FULLCHECK("onesoa");
|
||||
onesoa = state;
|
||||
break;
|
||||
case 'q':
|
||||
switch (cmd[1]) {
|
||||
case 'r': /* qr */
|
||||
|
||||
+2
-14
@@ -2,7 +2,7 @@
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dig.docbook,v 1.47 2010/03/04 23:50:34 tbox Exp $ -->
|
||||
<!-- $Id: dig.docbook,v 1.45 2009/02/02 04:41:28 marka Exp $ -->
|
||||
<refentry id="man.dig">
|
||||
|
||||
<refentryinfo>
|
||||
@@ -44,7 +44,6 @@
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<year>2009</year>
|
||||
<year>2010</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -767,17 +766,6 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>+[no]onesoa</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Print only one (starting) SOA record when performing
|
||||
an AXFR. The default is to print both the starting and
|
||||
ending SOA records.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>+[no]fail</option></term>
|
||||
<listitem>
|
||||
|
||||
+11
-17
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: dig.html,v 1.49 2010/03/05 01:14:15 tbox Exp $ -->
|
||||
<!-- $Id: dig.html,v 1.48 2009/07/11 01:12:45 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -34,7 +34,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">dig</code> [global-queryopt...] [query...]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543522"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543518"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">dig</strong></span>
|
||||
(domain information groper) is a flexible tool
|
||||
for interrogating DNS name servers. It performs DNS lookups and
|
||||
@@ -80,7 +80,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543595"></a><h2>SIMPLE USAGE</h2>
|
||||
<a name="id2543592"></a><h2>SIMPLE USAGE</h2>
|
||||
<p>
|
||||
A typical invocation of <span><strong class="command">dig</strong></span> looks like:
|
||||
</p>
|
||||
@@ -126,7 +126,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543686"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543683"></a><h2>OPTIONS</h2>
|
||||
<p>
|
||||
The <code class="option">-b</code> option sets the source IP address of the query
|
||||
to <em class="parameter"><code>address</code></em>. This must be a valid
|
||||
@@ -230,7 +230,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544035"></a><h2>QUERY OPTIONS</h2>
|
||||
<a name="id2544032"></a><h2>QUERY OPTIONS</h2>
|
||||
<p><span><strong class="command">dig</strong></span>
|
||||
provides a number of query options which affect
|
||||
the way in which lookups are made and the results displayed. Some of
|
||||
@@ -499,12 +499,6 @@
|
||||
each record on a single line, to facilitate machine parsing
|
||||
of the <span><strong class="command">dig</strong></span> output.
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="option">+[no]onesoa</code></span></dt>
|
||||
<dd><p>
|
||||
Print only one (starting) SOA record when performing
|
||||
an AXFR. The default is to print both the starting and
|
||||
ending SOA records.
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="option">+[no]fail</code></span></dt>
|
||||
<dd><p>
|
||||
Do not try the next server if you receive a SERVFAIL. The
|
||||
@@ -561,7 +555,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545184"></a><h2>MULTIPLE QUERIES</h2>
|
||||
<a name="id2545166"></a><h2>MULTIPLE QUERIES</h2>
|
||||
<p>
|
||||
The BIND 9 implementation of <span><strong class="command">dig </strong></span>
|
||||
supports
|
||||
@@ -607,7 +601,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545245"></a><h2>IDN SUPPORT</h2>
|
||||
<a name="id2545228"></a><h2>IDN SUPPORT</h2>
|
||||
<p>
|
||||
If <span><strong class="command">dig</strong></span> has been built with IDN (internationalized
|
||||
domain name) support, it can accept and display non-ASCII domain names.
|
||||
@@ -621,14 +615,14 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545336"></a><h2>FILES</h2>
|
||||
<a name="id2545251"></a><h2>FILES</h2>
|
||||
<p><code class="filename">/etc/resolv.conf</code>
|
||||
</p>
|
||||
<p><code class="filename">${HOME}/.digrc</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545353"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2545336"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">host</span>(1)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
|
||||
@@ -636,7 +630,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545390"></a><h2>BUGS</h2>
|
||||
<a name="id2545373"></a><h2>BUGS</h2>
|
||||
<p>
|
||||
There are probably too many query options.
|
||||
</p>
|
||||
|
||||
+28
-17
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dighost.c,v 1.330 2010/05/18 02:38:10 tbox Exp $ */
|
||||
/* $Id: dighost.c,v 1.328.22.6 2010/12/09 01:05:27 marka Exp $ */
|
||||
|
||||
/*! \file
|
||||
* \note
|
||||
@@ -252,7 +252,7 @@ isc_result_t opentmpkey(isc_mem_t *mctx, const char *file,
|
||||
char **tempp, FILE **fp);
|
||||
isc_result_t removetmpkey(isc_mem_t *mctx, const char *file);
|
||||
void clean_trustedkey(void);
|
||||
void insert_trustedkey(dst_key_t * key);
|
||||
void insert_trustedkey(dst_key_t **key);
|
||||
#if DIG_SIGCHASE_BU
|
||||
isc_result_t getneededrr(dns_message_t *msg);
|
||||
void sigchase_bottom_up(dns_message_t *msg);
|
||||
@@ -1142,7 +1142,6 @@ setup_file_key(void) {
|
||||
keynametext, isc_result_totext(result));
|
||||
goto failure;
|
||||
}
|
||||
dstkey = NULL;
|
||||
failure:
|
||||
if (dstkey != NULL)
|
||||
dst_key_free(&dstkey);
|
||||
@@ -1386,14 +1385,15 @@ add_opt(dns_message_t *msg, isc_uint16_t udpsize, isc_uint16_t edns,
|
||||
if (dnssec)
|
||||
rdatalist->ttl |= DNS_MESSAGEEXTFLAG_DO;
|
||||
if (nsid) {
|
||||
unsigned char data[4];
|
||||
isc_buffer_t buf;
|
||||
isc_buffer_t *b = NULL;
|
||||
|
||||
isc_buffer_init(&buf, data, sizeof(data));
|
||||
isc_buffer_putuint16(&buf, DNS_OPT_NSID);
|
||||
isc_buffer_putuint16(&buf, 0);
|
||||
rdata->data = data;
|
||||
rdata->length = sizeof(data);
|
||||
result = isc_buffer_allocate(mctx, &b, 4);
|
||||
check_result(result, "isc_buffer_allocate");
|
||||
isc_buffer_putuint16(b, DNS_OPT_NSID);
|
||||
isc_buffer_putuint16(b, 0);
|
||||
rdata->data = isc_buffer_base(b);
|
||||
rdata->length = isc_buffer_usedlength(b);
|
||||
dns_message_takebuffer(msg, &b);
|
||||
} else {
|
||||
rdata->data = NULL;
|
||||
rdata->length = 0;
|
||||
@@ -2401,6 +2401,15 @@ force_timeout(dig_lookup_t *l, dig_query_t *query) {
|
||||
isc_result_totext(ISC_R_NOMEMORY));
|
||||
}
|
||||
isc_task_send(global_task, &event);
|
||||
|
||||
/*
|
||||
* The timer may have expired if, for example, get_address() takes
|
||||
* long time and the timer was running on a different thread.
|
||||
* We need to cancel the possible timeout event not to confuse
|
||||
* ourselves due to the duplicate events.
|
||||
*/
|
||||
if (l->timer != NULL)
|
||||
isc_timer_detach(&l->timer);
|
||||
}
|
||||
|
||||
|
||||
@@ -2424,7 +2433,7 @@ send_tcp_connect(dig_query_t *query) {
|
||||
query->waiting_connect = ISC_TRUE;
|
||||
query->lookup->current_query = query;
|
||||
result = get_address(query->servname, port, &query->sockaddr);
|
||||
if (result == ISC_R_NOTFOUND) {
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
/*
|
||||
* This servname doesn't have an address. Try the next server
|
||||
* by triggering an immediate 'timeout' (we lie, but the effect
|
||||
@@ -2506,7 +2515,7 @@ send_udp(dig_query_t *query) {
|
||||
/* XXX Check the sense of this, need assertion? */
|
||||
query->waiting_connect = ISC_FALSE;
|
||||
result = get_address(query->servname, port, &query->sockaddr);
|
||||
if (result == ISC_R_NOTFOUND) {
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
/* This servname doesn't have an address. */
|
||||
force_timeout(l, query);
|
||||
return;
|
||||
@@ -4043,14 +4052,15 @@ sigchase_scanname(dns_rdatatype_t type, dns_rdatatype_t covers,
|
||||
}
|
||||
|
||||
void
|
||||
insert_trustedkey(dst_key_t * key)
|
||||
insert_trustedkey(dst_key_t **keyp)
|
||||
{
|
||||
if (key == NULL)
|
||||
if (*keyp == NULL)
|
||||
return;
|
||||
if (tk_list.nb_tk >= MAX_TRUSTED_KEY)
|
||||
return;
|
||||
|
||||
tk_list.key[tk_list.nb_tk++] = key;
|
||||
tk_list.key[tk_list.nb_tk++] = *keyp;
|
||||
*keyp = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4224,11 +4234,12 @@ get_trusted_key(isc_mem_t *mctx)
|
||||
fclose(fp);
|
||||
return (ISC_R_FAILURE);
|
||||
}
|
||||
insert_trustedkey(key);
|
||||
#if 0
|
||||
dst_key_tofile(key, DST_TYPE_PUBLIC,"/tmp");
|
||||
#endif
|
||||
key = NULL;
|
||||
insert_trustedkey(&key);
|
||||
if (key != NULL)
|
||||
dst_key_free(&key);
|
||||
}
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
+6
-4
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007, 2009, 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: host.c,v 1.120 2009/09/29 15:06:05 fdupont Exp $ */
|
||||
/* $Id: host.c,v 1.120.66.2 2010/10/19 23:46:47 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -628,7 +628,9 @@ pre_parse_args(int argc, char **argv) {
|
||||
case 'v': break;
|
||||
case 'w': break;
|
||||
case 'C': break;
|
||||
case 'D': break;
|
||||
case 'D':
|
||||
debugging = ISC_TRUE;
|
||||
break;
|
||||
case 'N': break;
|
||||
case 'R': break;
|
||||
case 'T': break;
|
||||
@@ -795,7 +797,7 @@ parse_args(isc_boolean_t is_batchfile, int argc, char **argv) {
|
||||
ndots = atoi(isc_commandline_argument);
|
||||
break;
|
||||
case 'D':
|
||||
debugging = ISC_TRUE;
|
||||
/* Handled by pre_parse_args(). */
|
||||
break;
|
||||
case '4':
|
||||
if (have_ipv4) {
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: nslookup.1,v 1.16 2010/02/23 01:14:31 tbox Exp $
|
||||
.\" $Id: nslookup.1,v 1.15.126.1 2010/02/23 02:09:20 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: nslookup.docbook,v 1.18 2010/02/22 23:49:11 tbox Exp $ -->
|
||||
<!-- $Id: nslookup.docbook,v 1.16.560.2 2010/02/22 23:48:29 tbox Exp $ -->
|
||||
<!--
|
||||
- Copyright (c) 1985, 1989
|
||||
- The Regents of the University of California. All rights reserved.
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: nslookup.html,v 1.23 2010/02/23 01:14:31 tbox Exp $ -->
|
||||
<!-- $Id: nslookup.html,v 1.22.126.1 2010/02/23 02:09:20 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: dnssec-dsfromkey.8,v 1.12 2010/05/19 01:14:14 tbox Exp $
|
||||
.\" $Id: dnssec-dsfromkey.8,v 1.11.106.1 2010/05/18 04:04:36 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssec-dsfromkey.c,v 1.18 2010/01/11 23:48:37 tbox Exp $ */
|
||||
/* $Id: dnssec-dsfromkey.c,v 1.16.50.1 2010/01/13 19:31:51 each Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: dnssec-dsfromkey.html,v 1.12 2010/05/19 01:14:14 tbox Exp $ -->
|
||||
<!-- $Id: dnssec-dsfromkey.html,v 1.11.106.1 2010/05/18 04:04:36 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: dnssec-keyfromlabel.8,v 1.17 2010/01/20 01:14:19 tbox Exp $
|
||||
.\" $Id: dnssec-keyfromlabel.8,v 1.16.24.1 2010/01/20 02:08:51 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssec-keyfromlabel.c,v 1.31 2010/01/19 23:48:55 tbox Exp $ */
|
||||
/* $Id: dnssec-keyfromlabel.c,v 1.29.8.2 2010/01/19 23:48:12 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dnssec-keyfromlabel.docbook,v 1.17 2010/01/19 23:48:55 tbox Exp $ -->
|
||||
<!-- $Id: dnssec-keyfromlabel.docbook,v 1.15.24.2 2010/01/19 23:48:12 tbox Exp $ -->
|
||||
<refentry id="man.dnssec-keyfromlabel">
|
||||
<refentryinfo>
|
||||
<date>February 8, 2008</date>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: dnssec-keyfromlabel.html,v 1.16 2010/01/20 01:14:19 tbox Exp $ -->
|
||||
<!-- $Id: dnssec-keyfromlabel.html,v 1.15.24.1 2010/01/20 02:08:51 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2004, 2005, 2007-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2004, 2005, 2007-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: dnssec-keygen.8,v 1.53 2009/11/03 21:58:30 tbox Exp $
|
||||
.\" $Id: dnssec-keygen.8,v 1.53.24.1 2010/08/17 00:08:22 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -33,7 +33,7 @@
|
||||
dnssec\-keygen \- DNSSEC key generation tool
|
||||
.SH "SYNOPSIS"
|
||||
.HP 14
|
||||
\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\-E\ \fR\fB\fIengine\fR\fR] [\fB\-e\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\-K\ \fR\fB\fIdirectory\fR\fR] [\fB\-k\fR] [\fB\-P\ \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\-r\ \fR\fB\fIrandomdev\fR\fR] [\fB\-s\ \fR\fB\fIstrength\fR\fR] [\fB\-t\ \fR\fB\fItype\fR\fR] [\fB\-v\ \fR\fB\fIlevel\fR\fR] [\fB\-z\fR] {name}
|
||||
\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\-E\ \fR\fB\fIengine\fR\fR] [\fB\-e\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\-P\ \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\-r\ \fR\fB\fIrandomdev\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\fIlevel\fR\fR] [\fB\-z\fR] {name}
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
\fBdnssec\-keygen\fR
|
||||
@@ -164,6 +164,11 @@ specifies the name of a character device or file containing random data to be us
|
||||
indicates that keyboard input should be used.
|
||||
.RE
|
||||
.PP
|
||||
\-S \fIkey\fR
|
||||
.RS 4
|
||||
Create a new key which is an explicit successor to an existing key. The name, algorithm, size, and type of the key will be set to match the existing key. The activation date of the new key will be set to the inactivation date of the existing one. The publication date will be set to the activation date minus the prepublication interval, which defaults to 30 days.
|
||||
.RE
|
||||
.PP
|
||||
\-s \fIstrength\fR
|
||||
.RS 4
|
||||
Specifies the strength value of the key. The strength is a number between 0 and 15, and currently has no defined purpose in DNSSEC.
|
||||
@@ -216,6 +221,15 @@ Sets the date on which the key is to be retired. After that date, the key will s
|
||||
.RS 4
|
||||
Sets the date on which the key is to be deleted. After that date, the key will no longer be included in the zone. (It may remain in the key repository, however.)
|
||||
.RE
|
||||
.PP
|
||||
\-i \fIinterval\fR
|
||||
.RS 4
|
||||
Sets the prepublication interval for a key. If set, then the publication and activation dates must be separated by at least this much time. If the activation date is specified but the publication date isn't, then the publication date will default to this much time before the activation date; conversely, if the publication date is specified but activation date isn't, then activation will be set to this much time after publication.
|
||||
.sp
|
||||
If the key is being created as an explicit successor to another key, then the default prepublication interval is 30 days; otherwise it is zero.
|
||||
.sp
|
||||
As with date offsets, if the argument is followed by one of the suffixes 'y', 'mo', 'w', 'd', 'h', or 'mi', then the interval is measured in years, months, weeks, days, hours, or minutes, respectively. Without a suffix, the interval is measured in seconds.
|
||||
.RE
|
||||
.SH "GENERATED KEYS"
|
||||
.PP
|
||||
When
|
||||
@@ -284,7 +298,7 @@ RFC 4034.
|
||||
.PP
|
||||
Internet Systems Consortium
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004, 2005, 2007\-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004, 2005, 2007\-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
Copyright \(co 2000\-2003 Internet Software Consortium.
|
||||
.br
|
||||
|
||||
+246
-107
@@ -29,7 +29,7 @@
|
||||
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssec-keygen.c,v 1.112 2010/01/19 23:48:55 tbox Exp $ */
|
||||
/* $Id: dnssec-keygen.c,v 1.108.8.6 2010/08/16 23:46:30 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -92,27 +92,27 @@ usage(void) {
|
||||
"NSEC3RSASHA1 if using -3)\n");
|
||||
fprintf(stderr, " -3: use NSEC3-capable algorithm\n");
|
||||
fprintf(stderr, " -b <key size in bits>:\n");
|
||||
fprintf(stderr, " RSAMD5:\t[512..%d]\n", MAX_RSA);
|
||||
fprintf(stderr, " RSASHA1:\t[512..%d]\n", MAX_RSA);
|
||||
fprintf(stderr, " NSEC3RSASHA1:\t[512..%d]\n", MAX_RSA);
|
||||
fprintf(stderr, " RSASHA256:\t[512..%d]\n", MAX_RSA);
|
||||
fprintf(stderr, " RSASHA512:\t[1024..%d]\n", MAX_RSA);
|
||||
fprintf(stderr, " DH:\t\t[128..4096]\n");
|
||||
fprintf(stderr, " DSA:\t\t[512..1024] and divisible by 64\n");
|
||||
fprintf(stderr, " NSEC3DSA:\t[512..1024] and divisible "
|
||||
fprintf(stderr, " RSAMD5:\t[512..%d]\n", MAX_RSA);
|
||||
fprintf(stderr, " RSASHA1:\t[512..%d]\n", MAX_RSA);
|
||||
fprintf(stderr, " NSEC3RSASHA1:\t[512..%d]\n", MAX_RSA);
|
||||
fprintf(stderr, " RSASHA256:\t[512..%d]\n", MAX_RSA);
|
||||
fprintf(stderr, " RSASHA512:\t[1024..%d]\n", MAX_RSA);
|
||||
fprintf(stderr, " DH:\t\t[128..4096]\n");
|
||||
fprintf(stderr, " DSA:\t\t[512..1024] and divisible by 64\n");
|
||||
fprintf(stderr, " NSEC3DSA:\t[512..1024] and divisible "
|
||||
"by 64\n");
|
||||
fprintf(stderr, " HMAC-MD5:\t[1..512]\n");
|
||||
fprintf(stderr, " HMAC-SHA1:\t[1..160]\n");
|
||||
fprintf(stderr, " HMAC-SHA224:\t[1..224]\n");
|
||||
fprintf(stderr, " HMAC-SHA256:\t[1..256]\n");
|
||||
fprintf(stderr, " HMAC-SHA384:\t[1..384]\n");
|
||||
fprintf(stderr, " HMAC-SHA512:\t[1..512]\n");
|
||||
fprintf(stderr, " HMAC-MD5:\t[1..512]\n");
|
||||
fprintf(stderr, " HMAC-SHA1:\t[1..160]\n");
|
||||
fprintf(stderr, " HMAC-SHA224:\t[1..224]\n");
|
||||
fprintf(stderr, " HMAC-SHA256:\t[1..256]\n");
|
||||
fprintf(stderr, " HMAC-SHA384:\t[1..384]\n");
|
||||
fprintf(stderr, " HMAC-SHA512:\t[1..512]\n");
|
||||
fprintf(stderr, " (if using the default algorithm, key size\n"
|
||||
" defaults to 2048 for KSK, or 1024 for all "
|
||||
"others)\n");
|
||||
fprintf(stderr, " -n <nametype>: ZONE | HOST | ENTITY | "
|
||||
"USER | OTHER\n");
|
||||
fprintf(stderr, " (DNSKEY generation defaults to ZONE)\n");
|
||||
fprintf(stderr, " (DNSKEY generation defaults to ZONE)\n");
|
||||
fprintf(stderr, " -c <class>: (default: IN)\n");
|
||||
fprintf(stderr, " -d <digest bits> (0 => max, default)\n");
|
||||
#ifdef USE_PKCS11
|
||||
@@ -136,7 +136,7 @@ usage(void) {
|
||||
|
||||
fprintf(stderr, " -h: print usage and exit\n");
|
||||
fprintf(stderr, " -m <memory debugging mode>:\n");
|
||||
fprintf(stderr, " usage | trace | record | size | mctx\n");
|
||||
fprintf(stderr, " usage | trace | record | size | mctx\n");
|
||||
fprintf(stderr, " -v <level>: set verbosity level (0 - 10)\n");
|
||||
fprintf(stderr, "Timing options:\n");
|
||||
fprintf(stderr, " -P date/[+-]offset/none: set key publication date "
|
||||
@@ -151,6 +151,11 @@ usage(void) {
|
||||
fprintf(stderr, " -G: generate key only; do not set -P or -A\n");
|
||||
fprintf(stderr, " -C: generate a backward-compatible key, omitting "
|
||||
"all dates\n");
|
||||
fprintf(stderr, " -S <key>: generate a successor to an existing "
|
||||
"key\n");
|
||||
fprintf(stderr, " -i <interval>: prepublication interval for "
|
||||
"successor key "
|
||||
"(default: 30 days)\n");
|
||||
fprintf(stderr, "Output:\n");
|
||||
fprintf(stderr, " K<name>+<alg>+<id>.key, "
|
||||
"K<name>+<alg>+<id>.private\n");
|
||||
@@ -190,7 +195,7 @@ progress(int p)
|
||||
|
||||
int
|
||||
main(int argc, char **argv) {
|
||||
char *algname = NULL, *nametype = NULL, *type = NULL;
|
||||
char *algname = NULL, *nametype = NULL, *type = NULL;
|
||||
char *classname = NULL;
|
||||
char *endp;
|
||||
dst_key_t *key = NULL;
|
||||
@@ -207,6 +212,8 @@ main(int argc, char **argv) {
|
||||
isc_textregion_t r;
|
||||
char filename[255];
|
||||
const char *directory = NULL;
|
||||
const char *predecessor = NULL;
|
||||
dst_key_t *prevkey = NULL;
|
||||
isc_buffer_t buf;
|
||||
isc_log_t *log = NULL;
|
||||
isc_entropy_t *ectx = NULL;
|
||||
@@ -222,6 +229,7 @@ main(int argc, char **argv) {
|
||||
isc_stdtime_t publish = 0, activate = 0, revoke = 0;
|
||||
isc_stdtime_t inactive = 0, delete = 0;
|
||||
isc_stdtime_t now;
|
||||
int prepub = -1;
|
||||
isc_boolean_t setpub = ISC_FALSE, setact = ISC_FALSE;
|
||||
isc_boolean_t setrev = ISC_FALSE, setinact = ISC_FALSE;
|
||||
isc_boolean_t setdel = ISC_FALSE;
|
||||
@@ -243,7 +251,7 @@ main(int argc, char **argv) {
|
||||
/*
|
||||
* Process memory debugging argument first.
|
||||
*/
|
||||
#define CMDLINE_FLAGS "3a:b:Cc:d:E:eFf:g:K:km:n:p:qr:s:T:t:v:hGP:A:R:I:D:"
|
||||
#define CMDLINE_FLAGS "3A:a:b:Cc:D:d:E:eFf:Gg:hI:i:K:km:n:P:p:qR:r:S:s:T:t:v:"
|
||||
while ((ch = isc_commandline_parse(argc, argv, CMDLINE_FLAGS)) != -1) {
|
||||
switch (ch) {
|
||||
case 'm':
|
||||
@@ -436,6 +444,12 @@ main(int argc, char **argv) {
|
||||
unsetdel = ISC_TRUE;
|
||||
}
|
||||
break;
|
||||
case 'S':
|
||||
predecessor = isc_commandline_argument;
|
||||
break;
|
||||
case 'i':
|
||||
prepub = strtottl(isc_commandline_argument);
|
||||
break;
|
||||
case 'F':
|
||||
/* Reserved for FIPS mode */
|
||||
/* FALLTHROUGH */
|
||||
@@ -467,87 +481,205 @@ main(int argc, char **argv) {
|
||||
|
||||
setup_logging(verbose, mctx, &log);
|
||||
|
||||
if (argc < isc_commandline_index + 1)
|
||||
fatal("the key name was not specified");
|
||||
if (argc > isc_commandline_index + 1)
|
||||
fatal("extraneous arguments");
|
||||
if (predecessor == NULL) {
|
||||
if (prepub == -1)
|
||||
prepub = 0;
|
||||
|
||||
if (algname == NULL) {
|
||||
use_default = ISC_TRUE;
|
||||
if (use_nsec3)
|
||||
algname = strdup(DEFAULT_NSEC3_ALGORITHM);
|
||||
else
|
||||
algname = strdup(DEFAULT_ALGORITHM);
|
||||
if (verbose > 0)
|
||||
fprintf(stderr, "no algorithm specified; "
|
||||
"defaulting to %s\n", algname);
|
||||
}
|
||||
if (argc < isc_commandline_index + 1)
|
||||
fatal("the key name was not specified");
|
||||
if (argc > isc_commandline_index + 1)
|
||||
fatal("extraneous arguments");
|
||||
|
||||
if (strcasecmp(algname, "RSA") == 0) {
|
||||
fprintf(stderr, "The use of RSA (RSAMD5) is not recommended.\n"
|
||||
"If you still wish to use RSA (RSAMD5) please "
|
||||
"specify \"-a RSAMD5\"\n");
|
||||
return (1);
|
||||
} else if (strcasecmp(algname, "HMAC-MD5") == 0) {
|
||||
options |= DST_TYPE_KEY;
|
||||
alg = DST_ALG_HMACMD5;
|
||||
} else if (strcasecmp(algname, "HMAC-SHA1") == 0) {
|
||||
options |= DST_TYPE_KEY;
|
||||
alg = DST_ALG_HMACSHA1;
|
||||
} else if (strcasecmp(algname, "HMAC-SHA224") == 0) {
|
||||
options |= DST_TYPE_KEY;
|
||||
alg = DST_ALG_HMACSHA224;
|
||||
} else if (strcasecmp(algname, "HMAC-SHA256") == 0) {
|
||||
options |= DST_TYPE_KEY;
|
||||
alg = DST_ALG_HMACSHA256;
|
||||
} else if (strcasecmp(algname, "HMAC-SHA384") == 0) {
|
||||
options |= DST_TYPE_KEY;
|
||||
alg = DST_ALG_HMACSHA384;
|
||||
} else if (strcasecmp(algname, "HMAC-SHA512") == 0) {
|
||||
options |= DST_TYPE_KEY;
|
||||
alg = DST_ALG_HMACSHA512;
|
||||
} else {
|
||||
r.base = algname;
|
||||
r.length = strlen(algname);
|
||||
ret = dns_secalg_fromtext(&alg, &r);
|
||||
dns_fixedname_init(&fname);
|
||||
name = dns_fixedname_name(&fname);
|
||||
isc_buffer_init(&buf, argv[isc_commandline_index],
|
||||
strlen(argv[isc_commandline_index]));
|
||||
isc_buffer_add(&buf, strlen(argv[isc_commandline_index]));
|
||||
ret = dns_name_fromtext(name, &buf, dns_rootname, 0, NULL);
|
||||
if (ret != ISC_R_SUCCESS)
|
||||
fatal("unknown algorithm %s", algname);
|
||||
if (alg == DST_ALG_DH)
|
||||
options |= DST_TYPE_KEY;
|
||||
}
|
||||
fatal("invalid key name %s: %s",
|
||||
argv[isc_commandline_index],
|
||||
isc_result_totext(ret));
|
||||
|
||||
if (use_nsec3 &&
|
||||
alg != DST_ALG_NSEC3DSA && alg != DST_ALG_NSEC3RSASHA1 &&
|
||||
alg != DST_ALG_RSASHA256 && alg!= DST_ALG_RSASHA512) {
|
||||
fatal("%s is incompatible with NSEC3; "
|
||||
"do not use the -3 option", algname);
|
||||
}
|
||||
|
||||
if (type != NULL && (options & DST_TYPE_KEY) != 0) {
|
||||
if (strcasecmp(type, "NOAUTH") == 0)
|
||||
flags |= DNS_KEYTYPE_NOAUTH;
|
||||
else if (strcasecmp(type, "NOCONF") == 0)
|
||||
flags |= DNS_KEYTYPE_NOCONF;
|
||||
else if (strcasecmp(type, "NOAUTHCONF") == 0) {
|
||||
flags |= (DNS_KEYTYPE_NOAUTH | DNS_KEYTYPE_NOCONF);
|
||||
if (size < 0)
|
||||
size = 0;
|
||||
}
|
||||
else if (strcasecmp(type, "AUTHCONF") == 0)
|
||||
/* nothing */;
|
||||
else
|
||||
fatal("invalid type %s", type);
|
||||
}
|
||||
|
||||
if (size < 0) {
|
||||
if (use_default) {
|
||||
size = ((kskflag & DNS_KEYFLAG_KSK) != 0) ? 2048 : 1024;
|
||||
if (algname == NULL) {
|
||||
use_default = ISC_TRUE;
|
||||
if (use_nsec3)
|
||||
algname = strdup(DEFAULT_NSEC3_ALGORITHM);
|
||||
else
|
||||
algname = strdup(DEFAULT_ALGORITHM);
|
||||
if (verbose > 0)
|
||||
fprintf(stderr, "key size not specified; "
|
||||
"defaulting to %d\n", size);
|
||||
} else {
|
||||
fatal("key size not specified (-b option)");
|
||||
fprintf(stderr, "no algorithm specified; "
|
||||
"defaulting to %s\n", algname);
|
||||
}
|
||||
|
||||
if (strcasecmp(algname, "RSA") == 0) {
|
||||
fprintf(stderr, "The use of RSA (RSAMD5) is not "
|
||||
"recommended.\nIf you still wish to "
|
||||
"use RSA (RSAMD5) please specify "
|
||||
"\"-a RSAMD5\"\n");
|
||||
return (1);
|
||||
} else if (strcasecmp(algname, "HMAC-MD5") == 0)
|
||||
alg = DST_ALG_HMACMD5;
|
||||
else if (strcasecmp(algname, "HMAC-SHA1") == 0)
|
||||
alg = DST_ALG_HMACSHA1;
|
||||
else if (strcasecmp(algname, "HMAC-SHA224") == 0)
|
||||
alg = DST_ALG_HMACSHA224;
|
||||
else if (strcasecmp(algname, "HMAC-SHA256") == 0)
|
||||
alg = DST_ALG_HMACSHA256;
|
||||
else if (strcasecmp(algname, "HMAC-SHA384") == 0)
|
||||
alg = DST_ALG_HMACSHA384;
|
||||
else if (strcasecmp(algname, "HMAC-SHA512") == 0)
|
||||
alg = DST_ALG_HMACSHA512;
|
||||
else {
|
||||
r.base = algname;
|
||||
r.length = strlen(algname);
|
||||
ret = dns_secalg_fromtext(&alg, &r);
|
||||
if (ret != ISC_R_SUCCESS)
|
||||
fatal("unknown algorithm %s", algname);
|
||||
if (alg == DST_ALG_DH)
|
||||
options |= DST_TYPE_KEY;
|
||||
}
|
||||
|
||||
if (use_nsec3 &&
|
||||
alg != DST_ALG_NSEC3DSA && alg != DST_ALG_NSEC3RSASHA1 &&
|
||||
alg != DST_ALG_RSASHA256 && alg!= DST_ALG_RSASHA512) {
|
||||
fatal("%s is incompatible with NSEC3; "
|
||||
"do not use the -3 option", algname);
|
||||
}
|
||||
|
||||
if (type != NULL && (options & DST_TYPE_KEY) != 0) {
|
||||
if (strcasecmp(type, "NOAUTH") == 0)
|
||||
flags |= DNS_KEYTYPE_NOAUTH;
|
||||
else if (strcasecmp(type, "NOCONF") == 0)
|
||||
flags |= DNS_KEYTYPE_NOCONF;
|
||||
else if (strcasecmp(type, "NOAUTHCONF") == 0) {
|
||||
flags |= (DNS_KEYTYPE_NOAUTH |
|
||||
DNS_KEYTYPE_NOCONF);
|
||||
if (size < 0)
|
||||
size = 0;
|
||||
}
|
||||
else if (strcasecmp(type, "AUTHCONF") == 0)
|
||||
/* nothing */;
|
||||
else
|
||||
fatal("invalid type %s", type);
|
||||
}
|
||||
|
||||
if (size < 0) {
|
||||
if (use_default) {
|
||||
if ((kskflag & DNS_KEYFLAG_KSK) != 0)
|
||||
size = 2048;
|
||||
else
|
||||
size = 1024;
|
||||
if (verbose > 0)
|
||||
fprintf(stderr, "key size not "
|
||||
"specified; defaulting "
|
||||
"to %d\n", size);
|
||||
} else {
|
||||
fatal("key size not specified (-b option)");
|
||||
}
|
||||
}
|
||||
|
||||
if (!oldstyle && prepub > 0) {
|
||||
if (setpub && setact && (activate - prepub) < publish)
|
||||
fatal("Activation and publication dates "
|
||||
"are closer together than the\n\t"
|
||||
"prepublication interval.");
|
||||
|
||||
if (!setpub && !setact) {
|
||||
setpub = setact = ISC_TRUE;
|
||||
publish = now;
|
||||
activate = now + prepub;
|
||||
} else if (setpub && !setact) {
|
||||
setact = ISC_TRUE;
|
||||
activate = publish + prepub;
|
||||
} else if (setact && !setpub) {
|
||||
setpub = ISC_TRUE;
|
||||
publish = activate - prepub;
|
||||
}
|
||||
|
||||
if ((activate - prepub) < now)
|
||||
fatal("Time until activation is shorter "
|
||||
"than the\n\tprepublication interval.");
|
||||
}
|
||||
} else {
|
||||
char keystr[DST_KEY_FORMATSIZE];
|
||||
isc_stdtime_t when;
|
||||
int major, minor;
|
||||
|
||||
if (prepub == -1)
|
||||
prepub = (30 * 86400);
|
||||
|
||||
if (algname != NULL)
|
||||
fatal("-S and -a cannot be used together");
|
||||
if (size >= 0)
|
||||
fatal("-S and -b cannot be used together");
|
||||
if (nametype != NULL)
|
||||
fatal("-S and -n cannot be used together");
|
||||
if (type != NULL)
|
||||
fatal("-S and -t cannot be used together");
|
||||
if (setpub || unsetpub)
|
||||
fatal("-S and -P cannot be used together");
|
||||
if (setact || unsetact)
|
||||
fatal("-S and -A cannot be used together");
|
||||
if (use_nsec3)
|
||||
fatal("-S and -3 cannot be used together");
|
||||
if (oldstyle)
|
||||
fatal("-S and -C cannot be used together");
|
||||
if (genonly)
|
||||
fatal("-S and -G cannot be used together");
|
||||
|
||||
ret = dst_key_fromnamedfile(predecessor, directory,
|
||||
DST_TYPE_PUBLIC | DST_TYPE_PRIVATE,
|
||||
mctx, &prevkey);
|
||||
if (ret != ISC_R_SUCCESS)
|
||||
fatal("Invalid keyfile %s: %s",
|
||||
filename, isc_result_totext(ret));
|
||||
if (!dst_key_isprivate(prevkey))
|
||||
fatal("%s is not a private key", filename);
|
||||
|
||||
name = dst_key_name(prevkey);
|
||||
alg = dst_key_alg(prevkey);
|
||||
size = dst_key_size(prevkey);
|
||||
flags = dst_key_flags(prevkey);
|
||||
|
||||
dst_key_format(prevkey, keystr, sizeof(keystr));
|
||||
dst_key_getprivateformat(prevkey, &major, &minor);
|
||||
if (major != DST_MAJOR_VERSION || minor < DST_MINOR_VERSION)
|
||||
fatal("Key %s has incompatible format version %d.%d\n\t"
|
||||
"It is not possible to generate a successor key.",
|
||||
keystr, major, minor);
|
||||
|
||||
ret = dst_key_gettime(prevkey, DST_TIME_ACTIVATE, &when);
|
||||
if (ret != ISC_R_SUCCESS)
|
||||
fatal("Key %s has no activation date.\n\t"
|
||||
"You must use dnssec-settime -A to set one "
|
||||
"before generating a successor.", keystr);
|
||||
|
||||
ret = dst_key_gettime(prevkey, DST_TIME_INACTIVE, &activate);
|
||||
if (ret != ISC_R_SUCCESS)
|
||||
fatal("Key %s has no inactivation date.\n\t"
|
||||
"You must use dnssec-settime -I to set one "
|
||||
"before generating a successor.", keystr);
|
||||
|
||||
publish = activate - prepub;
|
||||
if (publish < now)
|
||||
fatal("Key %s becomes inactive\n\t"
|
||||
"sooner than the prepublication period "
|
||||
"for the new key ends.\n\t"
|
||||
"Either change the inactivation date with "
|
||||
"dnssec-settime -I,\n\t"
|
||||
"or use the -i option to set a shorter "
|
||||
"prepublication interval.", keystr);
|
||||
|
||||
ret = dst_key_gettime(prevkey, DST_TIME_DELETE, &when);
|
||||
if (ret != ISC_R_SUCCESS)
|
||||
fprintf(stderr, "%s: WARNING: Key %s has no removal "
|
||||
"date;\n\t it will remain in the zone "
|
||||
"indefinitely after rollover.\n\t "
|
||||
"You can use dnssec-settime -D to "
|
||||
"change this.\n", program, keystr);
|
||||
|
||||
setpub = setact = ISC_TRUE;
|
||||
}
|
||||
|
||||
switch (alg) {
|
||||
@@ -572,6 +704,7 @@ main(int argc, char **argv) {
|
||||
fatal("invalid DSS key size: %d", size);
|
||||
break;
|
||||
case DST_ALG_HMACMD5:
|
||||
options |= DST_TYPE_KEY;
|
||||
if (size < 1 || size > 512)
|
||||
fatal("HMAC-MD5 key size %d out of range", size);
|
||||
if (dbits != 0 && (dbits < 80 || dbits > 128))
|
||||
@@ -581,6 +714,7 @@ main(int argc, char **argv) {
|
||||
dbits);
|
||||
break;
|
||||
case DST_ALG_HMACSHA1:
|
||||
options |= DST_TYPE_KEY;
|
||||
if (size < 1 || size > 160)
|
||||
fatal("HMAC-SHA1 key size %d out of range", size);
|
||||
if (dbits != 0 && (dbits < 80 || dbits > 160))
|
||||
@@ -590,6 +724,7 @@ main(int argc, char **argv) {
|
||||
dbits);
|
||||
break;
|
||||
case DST_ALG_HMACSHA224:
|
||||
options |= DST_TYPE_KEY;
|
||||
if (size < 1 || size > 224)
|
||||
fatal("HMAC-SHA224 key size %d out of range", size);
|
||||
if (dbits != 0 && (dbits < 112 || dbits > 224))
|
||||
@@ -599,6 +734,7 @@ main(int argc, char **argv) {
|
||||
dbits);
|
||||
break;
|
||||
case DST_ALG_HMACSHA256:
|
||||
options |= DST_TYPE_KEY;
|
||||
if (size < 1 || size > 256)
|
||||
fatal("HMAC-SHA256 key size %d out of range", size);
|
||||
if (dbits != 0 && (dbits < 128 || dbits > 256))
|
||||
@@ -608,6 +744,7 @@ main(int argc, char **argv) {
|
||||
dbits);
|
||||
break;
|
||||
case DST_ALG_HMACSHA384:
|
||||
options |= DST_TYPE_KEY;
|
||||
if (size < 1 || size > 384)
|
||||
fatal("HMAC-384 key size %d out of range", size);
|
||||
if (dbits != 0 && (dbits < 192 || dbits > 384))
|
||||
@@ -617,6 +754,7 @@ main(int argc, char **argv) {
|
||||
dbits);
|
||||
break;
|
||||
case DST_ALG_HMACSHA512:
|
||||
options |= DST_TYPE_KEY;
|
||||
if (size < 1 || size > 512)
|
||||
fatal("HMAC-SHA512 key size %d out of range", size);
|
||||
if (dbits != 0 && (dbits < 256 || dbits > 512))
|
||||
@@ -685,16 +823,6 @@ main(int argc, char **argv) {
|
||||
fatal("a key with algorithm '%s' cannot be a zone key",
|
||||
algname);
|
||||
|
||||
dns_fixedname_init(&fname);
|
||||
name = dns_fixedname_name(&fname);
|
||||
isc_buffer_init(&buf, argv[isc_commandline_index],
|
||||
strlen(argv[isc_commandline_index]));
|
||||
isc_buffer_add(&buf, strlen(argv[isc_commandline_index]));
|
||||
ret = dns_name_fromtext(name, &buf, dns_rootname, 0, NULL);
|
||||
if (ret != ISC_R_SUCCESS)
|
||||
fatal("invalid key name %s: %s", argv[isc_commandline_index],
|
||||
isc_result_totext(ret));
|
||||
|
||||
switch(alg) {
|
||||
case DNS_KEYALG_RSAMD5:
|
||||
case DNS_KEYALG_RSASHA1:
|
||||
@@ -763,9 +891,18 @@ main(int argc, char **argv) {
|
||||
/*
|
||||
* Set key timing metadata (unless using -C)
|
||||
*
|
||||
* Publish and activation dates are set to "now" by default,
|
||||
* but can be overridden. Creation date is always set to
|
||||
* "now".
|
||||
* Creation date is always set to "now".
|
||||
*
|
||||
* For a new key without an explicit predecessor, publish
|
||||
* and activation dates are set to "now" by default, but
|
||||
* can both be overridden.
|
||||
*
|
||||
* For a successor key, activation is set to match the
|
||||
* predecessor's inactivation date. Publish is set to 30
|
||||
* days earlier than that (XXX: this should be configurable).
|
||||
* If either of the resulting dates are in the past, that's
|
||||
* an error; the inactivation date of the predecessor key
|
||||
* must be updated before a successor key can be created.
|
||||
*/
|
||||
if (!oldstyle) {
|
||||
dst_key_settime(key, DST_TIME_CREATED, now);
|
||||
@@ -860,6 +997,8 @@ main(int argc, char **argv) {
|
||||
ret = dst_key_buildfilename(key, 0, NULL, &buf);
|
||||
printf("%s\n", filename);
|
||||
dst_key_free(&key);
|
||||
if (prevkey != NULL)
|
||||
dst_key_free(&prevkey);
|
||||
|
||||
cleanup_logging(&log);
|
||||
cleanup_entropy(&ectx);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2004, 2005, 2007-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004, 2005, 2007-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dnssec-keygen.docbook,v 1.33 2009/11/03 21:44:46 each Exp $ -->
|
||||
<!-- $Id: dnssec-keygen.docbook,v 1.33.24.2 2010/08/16 23:46:30 tbox Exp $ -->
|
||||
<refentry id="man.dnssec-keygen">
|
||||
<refentryinfo>
|
||||
<date>June 30, 2000</date>
|
||||
@@ -42,6 +42,7 @@
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<year>2009</year>
|
||||
<year>2010</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -71,6 +72,7 @@
|
||||
<arg><option>-g <replaceable class="parameter">generator</replaceable></option></arg>
|
||||
<arg><option>-h</option></arg>
|
||||
<arg><option>-I <replaceable class="parameter">date/offset</replaceable></option></arg>
|
||||
<arg><option>-i <replaceable class="parameter">interval</replaceable></option></arg>
|
||||
<arg><option>-K <replaceable class="parameter">directory</replaceable></option></arg>
|
||||
<arg><option>-k</option></arg>
|
||||
<arg><option>-P <replaceable class="parameter">date/offset</replaceable></option></arg>
|
||||
@@ -78,6 +80,7 @@
|
||||
<arg><option>-q</option></arg>
|
||||
<arg><option>-R <replaceable class="parameter">date/offset</replaceable></option></arg>
|
||||
<arg><option>-r <replaceable class="parameter">randomdev</replaceable></option></arg>
|
||||
<arg><option>-S <replaceable class="parameter">key</replaceable></option></arg>
|
||||
<arg><option>-s <replaceable class="parameter">strength</replaceable></option></arg>
|
||||
<arg><option>-t <replaceable class="parameter">type</replaceable></option></arg>
|
||||
<arg><option>-v <replaceable class="parameter">level</replaceable></option></arg>
|
||||
@@ -341,6 +344,21 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-S <replaceable class="parameter">key</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Create a new key which is an explicit successor to an
|
||||
existing key. The name, algorithm, size, and type of the
|
||||
key will be set to match the existing key. The activation
|
||||
date of the new key will be set to the inactivation date of
|
||||
the existing one. The publication date will be set to the
|
||||
activation date minus the prepublication interval, which
|
||||
defaults to 30 days.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-s <replaceable class="parameter">strength</replaceable></term>
|
||||
<listitem>
|
||||
@@ -463,6 +481,34 @@
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-i <replaceable class="parameter">interval</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Sets the prepublication interval for a key. If set, then
|
||||
the publication and activation dates must be separated by at least
|
||||
this much time. If the activation date is specified but the
|
||||
publication date isn't, then the publication date will default
|
||||
to this much time before the activation date; conversely, if
|
||||
the publication date is specified but activation date isn't,
|
||||
then activation will be set to this much time after publication.
|
||||
</para>
|
||||
<para>
|
||||
If the key is being created as an explicit successor to another
|
||||
key, then the default prepublication interval is 30 days;
|
||||
otherwise it is zero.
|
||||
</para>
|
||||
<para>
|
||||
As with date offsets, if the argument is followed by one of
|
||||
the suffixes 'y', 'mo', 'w', 'd', 'h', or 'mi', then the
|
||||
interval is measured in years, months, weeks, days, hours,
|
||||
or minutes, respectively. Without a suffix, the interval is
|
||||
measured in seconds.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004, 2005, 2007-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004, 2005, 2007-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: dnssec-keygen.html,v 1.45 2009/11/03 21:58:30 tbox Exp $ -->
|
||||
<!-- $Id: dnssec-keygen.html,v 1.45.24.1 2010/08/17 00:08:22 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -29,10 +29,10 @@
|
||||
</div>
|
||||
<div class="refsynopsisdiv">
|
||||
<h2>Synopsis</h2>
|
||||
<div class="cmdsynopsis"><p><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">-A <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-C</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">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-e</code>] [<code class="option">-f <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-G</code>] [<code class="option">-g <em class="replaceable"><code>generator</code></em></code>] [<code class="option">-h</code>] [<code class="option">-I <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-k</code>] [<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-p <em class="replaceable"><code>protocol</code></em></code>] [<code class="option">-q</code>] [<code class="option">-R <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-s <em class="replaceable"><code>strength</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-z</code>] {name}</p></div>
|
||||
<div class="cmdsynopsis"><p><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">-A <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-C</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">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-e</code>] [<code class="option">-f <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-G</code>] [<code class="option">-g <em class="replaceable"><code>generator</code></em></code>] [<code class="option">-h</code>] [<code class="option">-I <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-i <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-k</code>] [<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-p <em class="replaceable"><code>protocol</code></em></code>] [<code class="option">-q</code>] [<code class="option">-R <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-S <em class="replaceable"><code>key</code></em></code>] [<code class="option">-s <em class="replaceable"><code>strength</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-z</code>] {name}</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543558"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543578"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">dnssec-keygen</strong></span>
|
||||
generates keys for DNSSEC (Secure DNS), as defined in RFC 2535
|
||||
and RFC 4034. It can also generate keys for use with
|
||||
@@ -46,7 +46,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543576"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543596"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
|
||||
<dd>
|
||||
@@ -203,6 +203,16 @@
|
||||
<code class="filename">keyboard</code> indicates that keyboard
|
||||
input should be used.
|
||||
</p></dd>
|
||||
<dt><span class="term">-S <em class="replaceable"><code>key</code></em></span></dt>
|
||||
<dd><p>
|
||||
Create a new key which is an explicit successor to an
|
||||
existing key. The name, algorithm, size, and type of the
|
||||
key will be set to match the existing key. The activation
|
||||
date of the new key will be set to the inactivation date of
|
||||
the existing one. The publication date will be set to the
|
||||
activation date minus the prepublication interval, which
|
||||
defaults to 30 days.
|
||||
</p></dd>
|
||||
<dt><span class="term">-s <em class="replaceable"><code>strength</code></em></span></dt>
|
||||
<dd><p>
|
||||
Specifies the strength value of the key. The strength is
|
||||
@@ -238,7 +248,7 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544128"></a><h2>TIMING OPTIONS</h2>
|
||||
<a name="id2544301"></a><h2>TIMING OPTIONS</h2>
|
||||
<p>
|
||||
Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS.
|
||||
If the argument begins with a '+' or '-', it is interpreted as
|
||||
@@ -282,10 +292,34 @@
|
||||
date, the key will no longer be included in the zone. (It
|
||||
may remain in the key repository, however.)
|
||||
</p></dd>
|
||||
<dt><span class="term">-i <em class="replaceable"><code>interval</code></em></span></dt>
|
||||
<dd>
|
||||
<p>
|
||||
Sets the prepublication interval for a key. If set, then
|
||||
the publication and activation dates must be separated by at least
|
||||
this much time. If the activation date is specified but the
|
||||
publication date isn't, then the publication date will default
|
||||
to this much time before the activation date; conversely, if
|
||||
the publication date is specified but activation date isn't,
|
||||
then activation will be set to this much time after publication.
|
||||
</p>
|
||||
<p>
|
||||
If the key is being created as an explicit successor to another
|
||||
key, then the default prepublication interval is 30 days;
|
||||
otherwise it is zero.
|
||||
</p>
|
||||
<p>
|
||||
As with date offsets, if the argument is followed by one of
|
||||
the suffixes 'y', 'mo', 'w', 'd', 'h', or 'mi', then the
|
||||
interval is measured in years, months, weeks, days, hours,
|
||||
or minutes, respectively. Without a suffix, the interval is
|
||||
measured in seconds.
|
||||
</p>
|
||||
</dd>
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544226"></a><h2>GENERATED KEYS</h2>
|
||||
<a name="id2544491"></a><h2>GENERATED KEYS</h2>
|
||||
<p>
|
||||
When <span><strong class="command">dnssec-keygen</strong></span> completes
|
||||
successfully,
|
||||
@@ -331,7 +365,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544308"></a><h2>EXAMPLE</h2>
|
||||
<a name="id2544642"></a><h2>EXAMPLE</h2>
|
||||
<p>
|
||||
To generate a 768-bit DSA key for the domain
|
||||
<strong class="userinput"><code>example.com</code></strong>, the following command would be
|
||||
@@ -352,7 +386,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544352"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2544685"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
|
||||
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
|
||||
<em class="citetitle">RFC 2539</em>,
|
||||
@@ -361,7 +395,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544451"></a><h2>AUTHOR</h2>
|
||||
<a name="id2544716"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: dnssec-revoke.8,v 1.9 2010/05/19 01:14:14 tbox Exp $
|
||||
.\" $Id: dnssec-revoke.8,v 1.8.24.1 2010/05/18 04:04:36 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssec-revoke.c,v 1.22 2010/05/06 23:50:56 tbox Exp $ */
|
||||
/* $Id: dnssec-revoke.c,v 1.18.34.4 2010/05/06 23:49:37 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: dnssec-revoke.html,v 1.9 2010/05/19 01:14:14 tbox Exp $ -->
|
||||
<!-- $Id: dnssec-revoke.html,v 1.8.24.1 2010/05/18 04:04:36 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: dnssec-settime.8,v 1.13 2010/05/19 01:14:14 tbox Exp $
|
||||
.\" $Id: dnssec-settime.8,v 1.9.24.6 2010/08/17 00:08:22 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -109,6 +109,20 @@ Sets the date on which the key is to be retired. After that date, the key will s
|
||||
.RS 4
|
||||
Sets the date on which the key is to be deleted. After that date, the key will no longer be included in the zone. (It may remain in the key repository, however.)
|
||||
.RE
|
||||
.PP
|
||||
\-S \fIpredecessor key\fR
|
||||
.RS 4
|
||||
Select a key for which the key being modified will be an explicit successor. The name, algorithm, size, and type of the predecessor key must exactly match those of the key being modified. The activation date of the successor key will be set to the inactivation date of the predecessor. The publication date will be set to the activation date minus the prepublication interval, which defaults to 30 days.
|
||||
.RE
|
||||
.PP
|
||||
\-i \fIinterval\fR
|
||||
.RS 4
|
||||
Sets the prepublication interval for a key. If set, then the publication and activation dates must be separated by at least this much time. If the activation date is specified but the publication date isn't, then the publication date will default to this much time before the activation date; conversely, if the publication date is specified but activation date isn't, then activation will be set to this much time after publication.
|
||||
.sp
|
||||
If the key is being set to be an explicit successor to another key, then the default prepublication interval is 30 days; otherwise it is zero.
|
||||
.sp
|
||||
As with date offsets, if the argument is followed by one of the suffixes 'y', 'mo', 'w', 'd', 'h', or 'mi', then the interval is measured in years, months, weeks, days, hours, or minutes, respectively. Without a suffix, the interval is measured in seconds.
|
||||
.RE
|
||||
.SH "PRINTING OPTIONS"
|
||||
.PP
|
||||
\fBdnssec\-settime\fR
|
||||
|
||||
+137
-25
@@ -14,7 +14,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssec-settime.c,v 1.25 2010/02/03 01:02:37 each Exp $ */
|
||||
/* $Id: dnssec-settime.c,v 1.19.34.9 2010/12/19 07:27:23 each Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -117,20 +117,27 @@ printtime(dst_key_t *key, int type, const char *tag, isc_boolean_t epoch,
|
||||
|
||||
int
|
||||
main(int argc, char **argv) {
|
||||
isc_result_t result;
|
||||
isc_result_t result;
|
||||
#ifdef USE_PKCS11
|
||||
const char *engine = "pkcs11";
|
||||
const char *engine = "pkcs11";
|
||||
#else
|
||||
const char *engine = NULL;
|
||||
const char *engine = NULL;
|
||||
#endif
|
||||
char *filename = NULL, *directory = NULL;
|
||||
char newname[1024];
|
||||
char keystr[DST_KEY_FORMATSIZE];
|
||||
char *endp, *p;
|
||||
int ch;
|
||||
isc_entropy_t *ectx = NULL;
|
||||
dst_key_t *key = NULL;
|
||||
isc_buffer_t buf;
|
||||
char *filename = NULL, *directory = NULL;
|
||||
char newname[1024];
|
||||
char keystr[DST_KEY_FORMATSIZE];
|
||||
char *endp, *p;
|
||||
int ch;
|
||||
isc_entropy_t *ectx = NULL;
|
||||
const char *predecessor = NULL;
|
||||
dst_key_t *prevkey = NULL;
|
||||
dst_key_t *key = NULL;
|
||||
isc_buffer_t buf;
|
||||
dns_name_t *name = NULL;
|
||||
dns_secalg_t alg = 0;
|
||||
unsigned int size = 0;
|
||||
isc_uint16_t flags = 0;
|
||||
int prepub = -1;
|
||||
isc_stdtime_t now;
|
||||
isc_stdtime_t pub = 0, act = 0, rev = 0, inact = 0, del = 0;
|
||||
isc_boolean_t setpub = ISC_FALSE, setact = ISC_FALSE;
|
||||
@@ -159,8 +166,8 @@ main(int argc, char **argv) {
|
||||
|
||||
isc_stdtime_get(&now);
|
||||
|
||||
while ((ch = isc_commandline_parse(argc, argv,
|
||||
"E:fK:uhp:v:P:A:R:I:D:")) != -1) {
|
||||
#define CMDLINE_FLAGS "A:D:E:fhI:i:K:P:p:R:S:uv:"
|
||||
while ((ch = isc_commandline_parse(argc, argv, CMDLINE_FLAGS)) != -1) {
|
||||
switch (ch) {
|
||||
case 'E':
|
||||
engine = isc_commandline_argument;
|
||||
@@ -293,6 +300,12 @@ main(int argc, char **argv) {
|
||||
now, now);
|
||||
}
|
||||
break;
|
||||
case 'S':
|
||||
predecessor = isc_commandline_argument;
|
||||
break;
|
||||
case 'i':
|
||||
prepub = strtottl(isc_commandline_argument);
|
||||
break;
|
||||
case '?':
|
||||
if (isc_commandline_option != '?')
|
||||
fprintf(stderr, "%s: invalid argument -%c\n",
|
||||
@@ -314,17 +327,6 @@ main(int argc, char **argv) {
|
||||
if (argc > isc_commandline_index + 1)
|
||||
fatal("Extraneous arguments");
|
||||
|
||||
if (directory != NULL) {
|
||||
filename = argv[isc_commandline_index];
|
||||
} else {
|
||||
result = isc_file_splitpath(mctx, argv[isc_commandline_index],
|
||||
&directory, &filename);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("cannot process filename %s: %s",
|
||||
argv[isc_commandline_index],
|
||||
isc_result_totext(result));
|
||||
}
|
||||
|
||||
if (ectx == NULL)
|
||||
setup_entropy(mctx, NULL, &ectx);
|
||||
result = isc_hash_create(mctx, ectx, DNS_NAME_MAXWIRE);
|
||||
@@ -337,6 +339,105 @@ main(int argc, char **argv) {
|
||||
isc_result_totext(result));
|
||||
isc_entropy_stopcallbacksources(ectx);
|
||||
|
||||
if (predecessor != NULL) {
|
||||
char keystr[DST_KEY_FORMATSIZE];
|
||||
isc_stdtime_t when;
|
||||
int major, minor;
|
||||
|
||||
if (prepub == -1)
|
||||
prepub = (30 * 86400);
|
||||
|
||||
if (setpub || unsetpub)
|
||||
fatal("-S and -P cannot be used together");
|
||||
if (setact || unsetact)
|
||||
fatal("-S and -A cannot be used together");
|
||||
|
||||
result = dst_key_fromnamedfile(predecessor, directory,
|
||||
DST_TYPE_PUBLIC |
|
||||
DST_TYPE_PRIVATE,
|
||||
mctx, &prevkey);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("Invalid keyfile %s: %s",
|
||||
filename, isc_result_totext(result));
|
||||
if (!dst_key_isprivate(prevkey))
|
||||
fatal("%s is not a private key", filename);
|
||||
|
||||
name = dst_key_name(prevkey);
|
||||
alg = dst_key_alg(prevkey);
|
||||
size = dst_key_size(prevkey);
|
||||
flags = dst_key_flags(prevkey);
|
||||
|
||||
dst_key_format(prevkey, keystr, sizeof(keystr));
|
||||
dst_key_getprivateformat(prevkey, &major, &minor);
|
||||
if (major != DST_MAJOR_VERSION || minor < DST_MINOR_VERSION)
|
||||
fatal("Predecessor has incompatible format "
|
||||
"version %d.%d\n\t", major, minor);
|
||||
|
||||
result = dst_key_gettime(prevkey, DST_TIME_ACTIVATE, &when);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("Predecessor has no activation date. "
|
||||
"You must set one before\n\t"
|
||||
"generating a successor.");
|
||||
|
||||
result = dst_key_gettime(prevkey, DST_TIME_INACTIVE, &act);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("Predecessor has no inactivation date. "
|
||||
"You must set one before\n\t"
|
||||
"generating a successor.");
|
||||
|
||||
pub = act - prepub;
|
||||
if (pub < now && prepub != 0)
|
||||
fatal("Predecessor will become inactive before the\n\t"
|
||||
"prepublication period ends. Either change "
|
||||
"its inactivation date,\n\t"
|
||||
"or use the -i option to set a shorter "
|
||||
"prepublication interval.");
|
||||
|
||||
result = dst_key_gettime(prevkey, DST_TIME_DELETE, &when);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fprintf(stderr, "%s: WARNING: Predecessor has no "
|
||||
"removal date;\n\t"
|
||||
"it will remain in the zone "
|
||||
"indefinitely after rollover.\n",
|
||||
program);
|
||||
|
||||
changed = setpub = setact = ISC_TRUE;
|
||||
dst_key_free(&prevkey);
|
||||
} else {
|
||||
if (prepub < 0)
|
||||
prepub = 0;
|
||||
|
||||
if (prepub > 0) {
|
||||
if (setpub && setact && (act - prepub) < pub)
|
||||
fatal("Activation and publication dates "
|
||||
"are closer together than the\n\t"
|
||||
"prepublication interval.");
|
||||
|
||||
if (setpub && !setact) {
|
||||
setact = ISC_TRUE;
|
||||
act = pub + prepub;
|
||||
} else if (setact && !setpub) {
|
||||
setpub = ISC_TRUE;
|
||||
pub = act - prepub;
|
||||
}
|
||||
|
||||
if ((act - prepub) < now)
|
||||
fatal("Time until activation is shorter "
|
||||
"than the\n\tprepublication interval.");
|
||||
}
|
||||
}
|
||||
|
||||
if (directory != NULL) {
|
||||
filename = argv[isc_commandline_index];
|
||||
} else {
|
||||
result = isc_file_splitpath(mctx, argv[isc_commandline_index],
|
||||
&directory, &filename);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("cannot process filename %s: %s",
|
||||
argv[isc_commandline_index],
|
||||
isc_result_totext(result));
|
||||
}
|
||||
|
||||
result = dst_key_fromnamedfile(filename, directory,
|
||||
DST_TYPE_PUBLIC | DST_TYPE_PRIVATE,
|
||||
mctx, &key);
|
||||
@@ -349,6 +450,17 @@ main(int argc, char **argv) {
|
||||
|
||||
dst_key_format(key, keystr, sizeof(keystr));
|
||||
|
||||
if (predecessor != NULL) {
|
||||
if (!dns_name_equal(name, dst_key_name(key)))
|
||||
fatal("Key name mismatch");
|
||||
if (alg != dst_key_alg(key))
|
||||
fatal("Key algorithm mismatch");
|
||||
if (size != dst_key_size(key))
|
||||
fatal("Key size mismatch");
|
||||
if (flags != dst_key_flags(key))
|
||||
fatal("Key flags mismatch");
|
||||
}
|
||||
|
||||
if (force)
|
||||
set_keyversion(key);
|
||||
else
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dnssec-settime.docbook,v 1.10 2010/03/09 03:35:34 marka Exp $ -->
|
||||
<!-- $Id: dnssec-settime.docbook,v 1.7.24.4 2010/08/16 22:27:16 marka Exp $ -->
|
||||
<refentry id="man.dnssec-settime">
|
||||
<refentryinfo>
|
||||
<date>July 15, 2009</date>
|
||||
@@ -211,6 +211,47 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-S <replaceable class="parameter">predecessor key</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Select a key for which the key being modified will be an
|
||||
explicit successor. The name, algorithm, size, and type of the
|
||||
predecessor key must exactly match those of the key being
|
||||
modified. The activation date of the successor key will be set
|
||||
to the inactivation date of the predecessor. The publication
|
||||
date will be set to the activation date minus the prepublication
|
||||
interval, which defaults to 30 days.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-i <replaceable class="parameter">interval</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Sets the prepublication interval for a key. If set, then
|
||||
the publication and activation dates must be separated by at least
|
||||
this much time. If the activation date is specified but the
|
||||
publication date isn't, then the publication date will default
|
||||
to this much time before the activation date; conversely, if
|
||||
the publication date is specified but activation date isn't,
|
||||
then activation will be set to this much time after publication.
|
||||
</para>
|
||||
<para>
|
||||
If the key is being set to be an explicit successor to another
|
||||
key, then the default prepublication interval is 30 days;
|
||||
otherwise it is zero.
|
||||
</para>
|
||||
<para>
|
||||
As with date offsets, if the argument is followed by one of
|
||||
the suffixes 'y', 'mo', 'w', 'd', 'h', or 'mi', then the
|
||||
interval is measured in years, months, weeks, days, hours,
|
||||
or minutes, respectively. Without a suffix, the interval is
|
||||
measured in seconds.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: dnssec-settime.html,v 1.13 2010/05/19 01:14:14 tbox Exp $ -->
|
||||
<!-- $Id: dnssec-settime.html,v 1.9.24.6 2010/08/17 00:08:21 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -129,10 +129,44 @@
|
||||
date, the key will no longer be included in the zone. (It
|
||||
may remain in the key repository, however.)
|
||||
</p></dd>
|
||||
<dt><span class="term">-S <em class="replaceable"><code>predecessor key</code></em></span></dt>
|
||||
<dd><p>
|
||||
Select a key for which the key being modified will be an
|
||||
explicit successor. The name, algorithm, size, and type of the
|
||||
predecessor key must exactly match those of the key being
|
||||
modified. The activation date of the successor key will be set
|
||||
to the inactivation date of the predecessor. The publication
|
||||
date will be set to the activation date minus the prepublication
|
||||
interval, which defaults to 30 days.
|
||||
</p></dd>
|
||||
<dt><span class="term">-i <em class="replaceable"><code>interval</code></em></span></dt>
|
||||
<dd>
|
||||
<p>
|
||||
Sets the prepublication interval for a key. If set, then
|
||||
the publication and activation dates must be separated by at least
|
||||
this much time. If the activation date is specified but the
|
||||
publication date isn't, then the publication date will default
|
||||
to this much time before the activation date; conversely, if
|
||||
the publication date is specified but activation date isn't,
|
||||
then activation will be set to this much time after publication.
|
||||
</p>
|
||||
<p>
|
||||
If the key is being set to be an explicit successor to another
|
||||
key, then the default prepublication interval is 30 days;
|
||||
otherwise it is zero.
|
||||
</p>
|
||||
<p>
|
||||
As with date offsets, if the argument is followed by one of
|
||||
the suffixes 'y', 'mo', 'w', 'd', 'h', or 'mi', then the
|
||||
interval is measured in years, months, weeks, days, hours,
|
||||
or minutes, respectively. Without a suffix, the interval is
|
||||
measured in seconds.
|
||||
</p>
|
||||
</dd>
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543657"></a><h2>PRINTING OPTIONS</h2>
|
||||
<a name="id2543698"></a><h2>PRINTING OPTIONS</h2>
|
||||
<p>
|
||||
<span><strong class="command">dnssec-settime</strong></span> can also be used to print the
|
||||
timing metadata associated with a key.
|
||||
@@ -158,7 +192,7 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543735"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2543912"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
|
||||
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
|
||||
@@ -166,7 +200,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543768"></a><h2>AUTHOR</h2>
|
||||
<a name="id2543945"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssec-signzone.c,v 1.262 2010/06/03 23:51:04 tbox Exp $ */
|
||||
/* $Id: dnssec-signzone.c,v 1.258.4.4 2010/06/03 23:49:23 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssectool.c,v 1.60 2010/01/19 23:48:56 tbox Exp $ */
|
||||
/* $Id: dnssectool.c,v 1.58.36.2 2010/01/19 23:48:13 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssectool.h,v 1.31 2010/01/19 23:48:56 tbox Exp $ */
|
||||
/* $Id: dnssectool.h,v 1.29.36.2 2010/01/19 23:48:13 tbox Exp $ */
|
||||
|
||||
#ifndef DNSSECTOOL_H
|
||||
#define DNSSECTOOL_H 1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 1998-2002 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -13,7 +13,7 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.109 2009/12/05 23:31:40 each Exp $
|
||||
# $Id: Makefile.in,v 1.109.2.3 2010/11/18 23:22:45 marka Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
@@ -118,7 +118,7 @@ main.@O@: main.c
|
||||
-DNS_LOCALSTATEDIR=\"${localstatedir}\" \
|
||||
-DNS_SYSCONFDIR=\"${sysconfdir}\" -c ${srcdir}/main.c
|
||||
|
||||
bind.keys.h: ${top_srcdir}/bind.keys
|
||||
bind.keys.h: ${top_srcdir}/bind.keys ${top_srcdir}/bind.keys
|
||||
${PERL} ${srcdir}/bindkeys.pl < ${top_srcdir}/bind.keys > $@
|
||||
|
||||
config.@O@: config.c bind.keys.h
|
||||
@@ -143,7 +143,10 @@ docclean manclean maintainer-clean::
|
||||
rm -f ${MANOBJS}
|
||||
|
||||
clean distclean maintainer-clean::
|
||||
rm -f ${TARGETS} ${OBJS} bind.keys.h
|
||||
rm -f ${TARGETS} ${OBJS}
|
||||
|
||||
maintainer-clean::
|
||||
rm -f bind.keys.h
|
||||
|
||||
bind9.xsl.h: bind9.xsl ${srcdir}/convertxsl.pl
|
||||
${PERL} ${srcdir}/convertxsl.pl < ${srcdir}/bind9.xsl > bind9.xsl.h
|
||||
|
||||
+96
-8
@@ -1,17 +1,105 @@
|
||||
/*
|
||||
* Generated by bindkeys.pl 1.3.104.2 2010/06/20 23:46:24 tbox Exp
|
||||
* From bind.keys 1.5.42.2 2011/01/04 19:14:48 each Exp
|
||||
*/
|
||||
#define TRUSTED_KEYS "\
|
||||
# The bind.keys file is used to override built-in DNSSEC trust anchors\n\
|
||||
# which are included as part of BIND 9. As of the current release (BIND\n\
|
||||
# 9.7), the only trust anchor it sets is the one for the ISC DNSSEC\n\
|
||||
# Lookaside Validation zone (\"dlv.isc.org\"). Trust anchors for any other\n\
|
||||
# zones MUST be configured elsewhere; if they are configured here, they\n\
|
||||
# will not be recognized or used by named.\n\
|
||||
#\n\
|
||||
# This file also contains a copy of the trust anchor for the DNS root zone\n\
|
||||
# (\".\"). However, named does not use it; it is provided here for\n\
|
||||
# informational purposes only. To switch on DNSSEC validation at the\n\
|
||||
# root, the root key below can be copied into named.conf.\n\
|
||||
#\n\
|
||||
# The built-in DLV trust anchor in this file is used directly by named.\n\
|
||||
# However, it is not activated unless specifically switched on. To use\n\
|
||||
# the DLV key, set \"dnssec-lookaside auto;\" in the named.conf options.\n\
|
||||
# Without this option being set, the key in this file is ignored.\n\
|
||||
#\n\
|
||||
# This file is NOT expected to be user-configured.\n\
|
||||
#\n\
|
||||
# These keys are current as of January 2011. If any key fails to\n\
|
||||
# initialize correctly, it may have expired. In that event you should\n\
|
||||
# replace this file with a current version. The latest version of\n\
|
||||
# bind.keys can always be obtained from ISC at https://www.isc.org/bind-keys.\n\
|
||||
\n\
|
||||
trusted-keys {\n\
|
||||
# NOTE: This key is current as of October 2009.\n\
|
||||
# If it fails to initialize correctly, it may have expired;\n\
|
||||
# see https://www.isc.org/solutions/dlv for a replacement.\n\
|
||||
dlv.isc.org. 257 3 5 \"BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2 brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+ 1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5 ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URk Y62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboM QKtUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VSt TDN0YUuWrBNh\";\n\
|
||||
# ISC DLV: See https://www.isc.org/solutions/dlv for details.\n\
|
||||
# NOTE: This key is activated by setting \"dnssec-lookaside auto;\"\n\
|
||||
# in named.conf.\n\
|
||||
dlv.isc.org. 257 3 5 \"BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2\n\
|
||||
brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+\n\
|
||||
1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5\n\
|
||||
ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URk\n\
|
||||
Y62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboM\n\
|
||||
QKtUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VSt\n\
|
||||
TDN0YUuWrBNh\";\n\
|
||||
\n\
|
||||
# ROOT KEY: See https://data.iana.org/root-anchors/root-anchors.xml\n\
|
||||
# for current trust anchor information.\n\
|
||||
# NOTE: This key is activated by setting \"dnssec-validation auto;\"\n\
|
||||
# in named.conf.\n\
|
||||
. initial-key 257 3 8 \"AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF\n\
|
||||
FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX\n\
|
||||
bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD\n\
|
||||
X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz\n\
|
||||
W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS\n\
|
||||
Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq\n\
|
||||
QxA+Uk1ihz0=\";\n\
|
||||
};\n\
|
||||
"
|
||||
|
||||
#define MANAGED_KEYS "\
|
||||
# The bind.keys file is used to override built-in DNSSEC trust anchors\n\
|
||||
# which are included as part of BIND 9. As of the current release (BIND\n\
|
||||
# 9.7), the only trust anchor it sets is the one for the ISC DNSSEC\n\
|
||||
# Lookaside Validation zone (\"dlv.isc.org\"). Trust anchors for any other\n\
|
||||
# zones MUST be configured elsewhere; if they are configured here, they\n\
|
||||
# will not be recognized or used by named.\n\
|
||||
#\n\
|
||||
# This file also contains a copy of the trust anchor for the DNS root zone\n\
|
||||
# (\".\"). However, named does not use it; it is provided here for\n\
|
||||
# informational purposes only. To switch on DNSSEC validation at the\n\
|
||||
# root, the root key below can be copied into named.conf.\n\
|
||||
#\n\
|
||||
# The built-in DLV trust anchor in this file is used directly by named.\n\
|
||||
# However, it is not activated unless specifically switched on. To use\n\
|
||||
# the DLV key, set \"dnssec-lookaside auto;\" in the named.conf options.\n\
|
||||
# Without this option being set, the key in this file is ignored.\n\
|
||||
#\n\
|
||||
# This file is NOT expected to be user-configured.\n\
|
||||
#\n\
|
||||
# These keys are current as of January 2011. If any key fails to\n\
|
||||
# initialize correctly, it may have expired. In that event you should\n\
|
||||
# replace this file with a current version. The latest version of\n\
|
||||
# bind.keys can always be obtained from ISC at https://www.isc.org/bind-keys.\n\
|
||||
\n\
|
||||
managed-keys {\n\
|
||||
# NOTE: This key is current as of October 2009.\n\
|
||||
# If it fails to initialize correctly, it may have expired;\n\
|
||||
# see https://www.isc.org/solutions/dlv for a replacement.\n\
|
||||
dlv.isc.org. initial-key 257 3 5 \"BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2 brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+ 1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5 ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URk Y62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboM QKtUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VSt TDN0YUuWrBNh\";\n\
|
||||
# ISC DLV: See https://www.isc.org/solutions/dlv for details.\n\
|
||||
# NOTE: This key is activated by setting \"dnssec-lookaside auto;\"\n\
|
||||
# in named.conf.\n\
|
||||
dlv.isc.org. initial-key 257 3 5 \"BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2\n\
|
||||
brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+\n\
|
||||
1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5\n\
|
||||
ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URk\n\
|
||||
Y62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboM\n\
|
||||
QKtUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VSt\n\
|
||||
TDN0YUuWrBNh\";\n\
|
||||
\n\
|
||||
# ROOT KEY: See https://data.iana.org/root-anchors/root-anchors.xml\n\
|
||||
# for current trust anchor information.\n\
|
||||
# NOTE: This key is activated by setting \"dnssec-validation auto;\"\n\
|
||||
# in named.conf.\n\
|
||||
. initial-key 257 3 8 \"AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF\n\
|
||||
FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX\n\
|
||||
bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD\n\
|
||||
X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz\n\
|
||||
W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS\n\
|
||||
Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq\n\
|
||||
QxA+Uk1ihz0=\";\n\
|
||||
};\n\
|
||||
"
|
||||
|
||||
+20
-2
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env perl
|
||||
#
|
||||
# Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2009, 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -14,19 +14,37 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: bindkeys.pl,v 1.3 2009/09/01 07:14:25 each Exp $
|
||||
# $Id: bindkeys.pl,v 1.3.104.2 2010/06/20 23:46:24 tbox Exp $
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my $rev = '$Id: bindkeys.pl,v 1.3.104.2 2010/06/20 23:46:24 tbox Exp $';
|
||||
$rev =~ s/\$//g;
|
||||
$rev =~ s/,v//g;
|
||||
$rev =~ s/Id: //;
|
||||
|
||||
my $keys = "";
|
||||
|
||||
my $lines;
|
||||
while (<>) {
|
||||
chomp;
|
||||
if (/\/\* .Id:.* \*\//) {
|
||||
$keys = $_;
|
||||
next;
|
||||
}
|
||||
s/\"/\\\"/g;
|
||||
s/$/\\n\\/;
|
||||
$lines .= $_ . "\n";
|
||||
}
|
||||
|
||||
$keys =~ s/\$//g;
|
||||
$keys =~ s/\/\* Id: //;
|
||||
$keys =~ s/\*\/.*//;
|
||||
$keys =~ s/,v//;
|
||||
|
||||
print "/*\n * Generated by $rev \n * From $keys\n */\n";
|
||||
|
||||
my $mkey = '#define MANAGED_KEYS "\\' . "\n" . $lines . "\"\n";
|
||||
|
||||
$lines =~ s/managed-keys/trusted-keys/;
|
||||
|
||||
+3
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007, 2009, 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2001-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: builtin.c,v 1.15 2009/03/01 02:45:38 each Exp $ */
|
||||
/* $Id: builtin.c,v 1.15.154.2 2010/08/03 23:46:17 tbox Exp $ */
|
||||
|
||||
/*! \file
|
||||
* \brief
|
||||
@@ -133,6 +133,7 @@ do_authors_lookup(dns_sdblookup_t *lookup) {
|
||||
"Andreas Gustafsson",
|
||||
"Bob Halley",
|
||||
"Evan Hunt",
|
||||
"JINMEI Tatuya",
|
||||
"David Lawrence",
|
||||
"Danny Mayer",
|
||||
"Damien Neil",
|
||||
|
||||
+4
-4
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: client.c,v 1.266 2009/10/26 23:14:53 each Exp $ */
|
||||
/* $Id: client.c,v 1.266.36.2 2010/09/24 08:30:58 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -1865,13 +1865,13 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
client->view->recursionacl,
|
||||
ISC_TRUE) == ISC_R_SUCCESS &&
|
||||
ns_client_checkaclsilent(client, NULL,
|
||||
client->view->queryacl,
|
||||
client->view->cacheacl,
|
||||
ISC_TRUE) == ISC_R_SUCCESS &&
|
||||
ns_client_checkaclsilent(client, &client->destaddr,
|
||||
client->view->recursiononacl,
|
||||
ISC_TRUE) == ISC_R_SUCCESS &&
|
||||
ns_client_checkaclsilent(client, &client->destaddr,
|
||||
client->view->queryonacl,
|
||||
client->view->cacheonacl,
|
||||
ISC_TRUE) == ISC_R_SUCCESS)
|
||||
ra = ISC_TRUE;
|
||||
|
||||
|
||||
+5
-1
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: config.c,v 1.108 2010/05/14 23:50:38 tbox Exp $ */
|
||||
/* $Id: config.c,v 1.106.4.6 2010/08/11 18:19:54 each Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -80,6 +80,7 @@ options {\n\
|
||||
bindkeys-file \"" NS_SYSCONFDIR "/bind.keys\";\n\
|
||||
port 53;\n\
|
||||
recursing-file \"named.recursing\";\n\
|
||||
secroots-file \"named.secroots\";\n\
|
||||
"
|
||||
#ifdef PATH_RANDOMDEV
|
||||
"\
|
||||
@@ -158,9 +159,11 @@ options {\n\
|
||||
max-clients-per-query 100;\n\
|
||||
zero-no-soa-ttl-cache no;\n\
|
||||
nsec3-test-zone no;\n\
|
||||
allow-new-zones no;\n\
|
||||
"
|
||||
#ifdef ALLOW_FILTER_AAAA_ON_V4
|
||||
" filter-aaaa-on-v4 no;\n\
|
||||
filter-aaaa { any; };\n\
|
||||
"
|
||||
#endif
|
||||
|
||||
@@ -216,6 +219,7 @@ options {\n\
|
||||
view \"_bind\" chaos {\n\
|
||||
recursion no;\n\
|
||||
notify no;\n\
|
||||
allow-new-zones no;\n\
|
||||
\n\
|
||||
zone \"version.bind\" chaos {\n\
|
||||
type master;\n\
|
||||
|
||||
+16
-4
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007, 2009, 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2001-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: control.c,v 1.36 2009/10/12 20:48:11 each Exp $ */
|
||||
/* $Id: control.c,v 1.36.50.5 2010/12/03 22:04:49 each Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -129,11 +129,16 @@ ns_control_docommand(isccc_sexpr_t *message, isc_buffer_t *text) {
|
||||
* isc_app_shutdown below.
|
||||
*/
|
||||
#endif
|
||||
/* Do not flush master files */
|
||||
ns_server_flushonshutdown(ns_g_server, ISC_FALSE);
|
||||
ns_os_shutdownmsg(command, text);
|
||||
isc_app_shutdown();
|
||||
result = ISC_R_SUCCESS;
|
||||
} else if (command_compare(command, NS_COMMAND_STOP)) {
|
||||
/*
|
||||
* "stop" is the same as "halt" except it does
|
||||
* flush master files.
|
||||
*/
|
||||
#ifdef HAVE_LIBSCF
|
||||
if (ns_smf_got_instance == 1 && ns_smf_chroot == 1) {
|
||||
result = ns_smf_add_message(text);
|
||||
@@ -153,6 +158,8 @@ ns_control_docommand(isccc_sexpr_t *message, isc_buffer_t *text) {
|
||||
} else if (command_compare(command, NS_COMMAND_DUMPDB)) {
|
||||
ns_server_dumpdb(ns_g_server, command);
|
||||
result = ISC_R_SUCCESS;
|
||||
} else if (command_compare(command, NS_COMMAND_SECROOTS)) {
|
||||
result = ns_server_dumpsecroots(ns_g_server, command);
|
||||
} else if (command_compare(command, NS_COMMAND_TRACE)) {
|
||||
result = ns_server_setdebuglevel(ns_g_server, command);
|
||||
} else if (command_compare(command, NS_COMMAND_NOTRACE)) {
|
||||
@@ -187,8 +194,13 @@ ns_control_docommand(isccc_sexpr_t *message, isc_buffer_t *text) {
|
||||
result = ns_server_notifycommand(ns_g_server, command, text);
|
||||
} else if (command_compare(command, NS_COMMAND_VALIDATION)) {
|
||||
result = ns_server_validation(ns_g_server, command);
|
||||
} else if (command_compare(command, NS_COMMAND_SIGN)) {
|
||||
result = ns_server_sign(ns_g_server, command);
|
||||
} else if (command_compare(command, NS_COMMAND_SIGN) ||
|
||||
command_compare(command, NS_COMMAND_LOADKEYS)) {
|
||||
result = ns_server_rekey(ns_g_server, command);
|
||||
} else if (command_compare(command, NS_COMMAND_ADDZONE)) {
|
||||
result = ns_server_add_zone(ns_g_server, command);
|
||||
} else if (command_compare(command, NS_COMMAND_DELZONE)) {
|
||||
result = ns_server_del_zone(ns_g_server, command);
|
||||
} else {
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_CONTROL, ISC_LOG_WARNING,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007, 2009, 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2001-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: control.h,v 1.27 2009/10/12 23:48:01 tbox Exp $ */
|
||||
/* $Id: control.h,v 1.27.50.4 2010/08/16 22:27:16 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_CONTROL_H
|
||||
#define NAMED_CONTROL_H 1
|
||||
@@ -42,6 +42,7 @@
|
||||
#define NS_COMMAND_DUMPSTATS "stats"
|
||||
#define NS_COMMAND_QUERYLOG "querylog"
|
||||
#define NS_COMMAND_DUMPDB "dumpdb"
|
||||
#define NS_COMMAND_SECROOTS "secroots"
|
||||
#define NS_COMMAND_TRACE "trace"
|
||||
#define NS_COMMAND_NOTRACE "notrace"
|
||||
#define NS_COMMAND_FLUSH "flush"
|
||||
@@ -58,6 +59,9 @@
|
||||
#define NS_COMMAND_NOTIFY "notify"
|
||||
#define NS_COMMAND_VALIDATION "validation"
|
||||
#define NS_COMMAND_SIGN "sign"
|
||||
#define NS_COMMAND_LOADKEYS "loadkeys"
|
||||
#define NS_COMMAND_ADDZONE "addzone"
|
||||
#define NS_COMMAND_DELZONE "delzone"
|
||||
|
||||
isc_result_t
|
||||
ns_controls_create(ns_server_t *server, ns_controls_t **ctrlsp);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: globals.h,v 1.86 2009/10/05 17:30:49 fdupont Exp $ */
|
||||
/* $Id: globals.h,v 1.86.60.3 2010/09/15 12:10:53 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_GLOBALS_H
|
||||
#define NAMED_GLOBALS_H 1
|
||||
@@ -149,6 +149,8 @@ EXTERN int ns_g_listen INIT(3);
|
||||
EXTERN isc_time_t ns_g_boottime;
|
||||
EXTERN isc_boolean_t ns_g_memstatistics INIT(ISC_FALSE);
|
||||
EXTERN isc_boolean_t ns_g_clienttest INIT(ISC_FALSE);
|
||||
EXTERN isc_boolean_t ns_g_nosoa INIT(ISC_FALSE);
|
||||
EXTERN isc_boolean_t ns_g_noaa INIT(ISC_FALSE);
|
||||
|
||||
#undef EXTERN
|
||||
#undef INIT
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007, 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: query.h,v 1.40 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: query.h,v 1.40.558.2 2010/09/24 08:30:58 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_QUERY_H
|
||||
#define NAMED_QUERY_H 1
|
||||
@@ -71,6 +71,8 @@ struct ns_query {
|
||||
#define NS_QUERYATTR_SECURE 0x0200
|
||||
#define NS_QUERYATTR_NOAUTHORITY 0x0400
|
||||
#define NS_QUERYATTR_NOADDITIONAL 0x0800
|
||||
#define NS_QUERYATTR_CACHEACLOKVALID 0x1000
|
||||
#define NS_QUERYATTR_CACHEACLOK 0x2000
|
||||
|
||||
isc_result_t
|
||||
ns_query_init(ns_client_t *client);
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: server.h,v 1.106 2010/05/14 23:50:39 tbox Exp $ */
|
||||
/* $Id: server.h,v 1.104.8.6 2010/08/16 23:46:30 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_SERVER_H
|
||||
#define NAMED_SERVER_H 1
|
||||
@@ -54,6 +54,7 @@ struct ns_server {
|
||||
dns_acl_t *blackholeacl;
|
||||
char * statsfile; /*%< Statistics file name */
|
||||
char * dumpfile; /*%< Dump file name */
|
||||
char * secrootsfile; /*%< Secroots file name */
|
||||
char * bindkeysfile; /*%< bind.keys file name */
|
||||
char * recfile; /*%< Recursive file name */
|
||||
isc_boolean_t version_set; /*%< User has set version */
|
||||
@@ -244,6 +245,12 @@ ns_server_dumpstats(ns_server_t *server);
|
||||
isc_result_t
|
||||
ns_server_dumpdb(ns_server_t *server, char *args);
|
||||
|
||||
/*%
|
||||
* Dump the current security roots to the secroots file.
|
||||
*/
|
||||
isc_result_t
|
||||
ns_server_dumpsecroots(ns_server_t *server, char *args);
|
||||
|
||||
/*%
|
||||
* Change or increment the server debug level.
|
||||
*/
|
||||
@@ -288,11 +295,14 @@ ns_server_freeze(ns_server_t *server, isc_boolean_t freeze, char *args,
|
||||
isc_buffer_t *text);
|
||||
|
||||
/*%
|
||||
* Update a zone's DNSKEY set from the key repository, and re-sign the
|
||||
* zone if there were any changes.
|
||||
* Update a zone's DNSKEY set from the key repository. If
|
||||
* the command that triggered the call to this function was "sign",
|
||||
* then force a full signing of the zone. If it was "loadkeys",
|
||||
* then don't sign the zone; any needed changes to signatures can
|
||||
* take place incrementally.
|
||||
*/
|
||||
isc_result_t
|
||||
ns_server_sign(ns_server_t *server, char *args);
|
||||
ns_server_rekey(ns_server_t *server, char *args);
|
||||
|
||||
/*%
|
||||
* Dump the current recursive queries.
|
||||
@@ -312,4 +322,16 @@ ns_add_reserved_dispatch(ns_server_t *server, const isc_sockaddr_t *addr);
|
||||
isc_result_t
|
||||
ns_server_validation(ns_server_t *server, char *args);
|
||||
|
||||
/*%
|
||||
* Add a zone to a running process
|
||||
*/
|
||||
isc_result_t
|
||||
ns_server_add_zone(ns_server_t *server, char *args);
|
||||
|
||||
/*%
|
||||
* Deletes a zone from a running process
|
||||
*/
|
||||
isc_result_t
|
||||
ns_server_del_zone(ns_server_t *server, char *args);
|
||||
|
||||
#endif /* NAMED_SERVER_H */
|
||||
|
||||
+7
-3
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: main.c,v 1.175 2009/10/05 17:30:49 fdupont Exp $ */
|
||||
/* $Id: main.c,v 1.175.60.4 2010/09/15 12:10:53 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -500,13 +500,17 @@ parse_command_line(int argc, char *argv[]) {
|
||||
/* XXXJAB should we make a copy? */
|
||||
ns_g_chrootdir = isc_commandline_argument;
|
||||
break;
|
||||
case 'T':
|
||||
case 'T': /* NOT DOCUMENTED */
|
||||
/*
|
||||
* clienttest: make clients single shot with their
|
||||
* own memory context.
|
||||
*/
|
||||
if (!strcmp(isc_commandline_argument, "clienttest"))
|
||||
ns_g_clienttest = ISC_TRUE;
|
||||
else if (!strcmp(isc_commandline_argument, "nosoa"))
|
||||
ns_g_nosoa = ISC_TRUE;
|
||||
else if (!strcmp(isc_commandline_argument, "noaa"))
|
||||
ns_g_noaa = ISC_TRUE;
|
||||
else if (!strcmp(isc_commandline_argument, "maxudp512"))
|
||||
maxudp = 512;
|
||||
else if (!strcmp(isc_commandline_argument, "maxudp1460"))
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: named.conf.5,v 1.42 2010/05/15 01:14:24 tbox Exp $
|
||||
.\" $Id: named.conf.5,v 1.41.4.1 2010/05/15 02:41:59 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: named.conf.docbook,v 1.46 2010/05/14 23:50:39 tbox Exp $ -->
|
||||
<!-- $Id: named.conf.docbook,v 1.44.4.2 2010/05/14 23:49:18 tbox Exp $ -->
|
||||
<refentry>
|
||||
<refentryinfo>
|
||||
<date>Aug 13, 2004</date>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: named.conf.html,v 1.51 2010/05/15 01:14:24 tbox Exp $ -->
|
||||
<!-- $Id: named.conf.html,v 1.50.4.1 2010/05/15 02:41:59 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
|
||||
+78
-34
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: query.c,v 1.338 2010/03/12 23:51:07 tbox Exp $ */
|
||||
/* $Id: query.c,v 1.335.8.11 2010/09/24 05:54:05 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -56,6 +56,7 @@
|
||||
#include <dns/zt.h>
|
||||
|
||||
#include <named/client.h>
|
||||
#include <named/globals.h>
|
||||
#include <named/log.h>
|
||||
#include <named/server.h>
|
||||
#include <named/sortlist.h>
|
||||
@@ -819,17 +820,15 @@ query_getcachedb(ns_client_t *client, dns_name_t *name, dns_rdatatype_t qtype,
|
||||
return (DNS_R_REFUSED);
|
||||
dns_db_attach(client->view->cachedb, &db);
|
||||
|
||||
if ((client->query.attributes &
|
||||
NS_QUERYATTR_QUERYOKVALID) != 0) {
|
||||
if ((client->query.attributes & NS_QUERYATTR_CACHEACLOKVALID) != 0) {
|
||||
/*
|
||||
* We've evaluated the view's queryacl already. If
|
||||
* NS_QUERYATTR_QUERYOK is set, then the client is
|
||||
* We've evaluated the view's cacheacl already. If
|
||||
* NS_QUERYATTR_CACHEACLOK is set, then the client is
|
||||
* allowed to make queries, otherwise the query should
|
||||
* be refused.
|
||||
*/
|
||||
check_acl = ISC_FALSE;
|
||||
if ((client->query.attributes &
|
||||
NS_QUERYATTR_QUERYOK) == 0)
|
||||
if ((client->query.attributes & NS_QUERYATTR_CACHEACLOK) == 0)
|
||||
goto refuse;
|
||||
} else {
|
||||
/*
|
||||
@@ -843,16 +842,15 @@ query_getcachedb(ns_client_t *client, dns_name_t *name, dns_rdatatype_t qtype,
|
||||
char msg[NS_CLIENT_ACLMSGSIZE("query (cache)")];
|
||||
|
||||
result = ns_client_checkaclsilent(client, NULL,
|
||||
client->view->queryacl,
|
||||
client->view->cacheacl,
|
||||
ISC_TRUE);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
/*
|
||||
* We were allowed by the default
|
||||
* "allow-query" ACL. Remember this so we
|
||||
* don't have to check again.
|
||||
* We were allowed by the "allow-query-cache" ACL.
|
||||
* Remember this so we don't have to check again.
|
||||
*/
|
||||
client->query.attributes |=
|
||||
NS_QUERYATTR_QUERYOK;
|
||||
NS_QUERYATTR_CACHEACLOK;
|
||||
if (log && isc_log_wouldlog(ns_g_lctx,
|
||||
ISC_LOG_DEBUG(3)))
|
||||
{
|
||||
@@ -875,9 +873,9 @@ query_getcachedb(ns_client_t *client, dns_name_t *name, dns_rdatatype_t qtype,
|
||||
}
|
||||
/*
|
||||
* We've now evaluated the view's query ACL, and
|
||||
* the NS_QUERYATTR_QUERYOK attribute is now valid.
|
||||
* the NS_QUERYATTR_CACHEACLOKVALID attribute is now valid.
|
||||
*/
|
||||
client->query.attributes |= NS_QUERYATTR_QUERYOKVALID;
|
||||
client->query.attributes |= NS_QUERYATTR_CACHEACLOKVALID;
|
||||
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto refuse;
|
||||
@@ -2038,7 +2036,7 @@ query_addrrset(ns_client_t *client, dns_name_t **namep,
|
||||
|
||||
static inline isc_result_t
|
||||
query_addsoa(ns_client_t *client, dns_db_t *db, dns_dbversion_t *version,
|
||||
isc_boolean_t zero_ttl)
|
||||
isc_boolean_t zero_ttl, isc_boolean_t isassociated)
|
||||
{
|
||||
dns_name_t *name;
|
||||
dns_dbnode_t *node;
|
||||
@@ -2055,6 +2053,12 @@ query_addsoa(ns_client_t *client, dns_db_t *db, dns_dbversion_t *version,
|
||||
rdataset = NULL;
|
||||
node = NULL;
|
||||
|
||||
/*
|
||||
* Don't add the SOA record for test which set "-T nosoa".
|
||||
*/
|
||||
if (ns_g_nosoa && (!WANTDNSSEC(client) || !isassociated))
|
||||
return (ISC_R_SUCCESS);
|
||||
|
||||
/*
|
||||
* Get resources and make 'name' be the database origin.
|
||||
*/
|
||||
@@ -2792,7 +2796,7 @@ query_addds(ns_client_t *client, dns_db_t *db, dns_dbnode_t *node,
|
||||
static void
|
||||
query_addwildcardproof(ns_client_t *client, dns_db_t *db,
|
||||
dns_dbversion_t *version, dns_name_t *name,
|
||||
isc_boolean_t ispositive)
|
||||
isc_boolean_t ispositive, isc_boolean_t nodata)
|
||||
{
|
||||
isc_buffer_t *dbuf, b;
|
||||
dns_name_t *fname;
|
||||
@@ -2980,7 +2984,7 @@ query_addwildcardproof(ns_client_t *client, dns_db_t *db,
|
||||
goto cleanup;
|
||||
|
||||
query_findclosestnsec3(wname, db, NULL, client, rdataset,
|
||||
sigrdataset, fname, ISC_FALSE, NULL);
|
||||
sigrdataset, fname, nodata, NULL);
|
||||
if (!dns_rdataset_isassociated(rdataset))
|
||||
goto cleanup;
|
||||
query_addrrset(client, &fname, &rdataset, &sigrdataset,
|
||||
@@ -3083,7 +3087,7 @@ query_addnxrrsetnsec(ns_client_t *client, dns_db_t *db,
|
||||
|
||||
/* XXX */
|
||||
query_addwildcardproof(client, db, version, client->query.qname,
|
||||
ISC_TRUE);
|
||||
ISC_TRUE, ISC_FALSE);
|
||||
|
||||
/*
|
||||
* We'll need some resources...
|
||||
@@ -3702,6 +3706,18 @@ query_findclosestnsec3(dns_name_t *qname, dns_db_t *db,
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef ALLOW_FILTER_AAAA_ON_V4
|
||||
static isc_boolean_t
|
||||
is_v4_client(ns_client_t *client) {
|
||||
if (isc_sockaddr_pf(&client->peeraddr) == AF_INET)
|
||||
return (ISC_TRUE);
|
||||
if (isc_sockaddr_pf(&client->peeraddr) == AF_INET6 &&
|
||||
IN6_IS_ADDR_V4MAPPED(&client->peeraddr.type.sin6.sin6_addr))
|
||||
return (ISC_TRUE);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Do the bulk of query processing for the current query of 'client'.
|
||||
* If 'event' is non-NULL, we are returning from recursion and 'qtype'
|
||||
@@ -4311,7 +4327,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
query_releasename(client, &fname);
|
||||
query_addwildcardproof(client, db, version,
|
||||
client->query.qname,
|
||||
ISC_FALSE);
|
||||
ISC_FALSE, ISC_TRUE);
|
||||
}
|
||||
}
|
||||
if (dns_rdataset_isassociated(rdataset)) {
|
||||
@@ -4332,7 +4348,8 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
/*
|
||||
* Add SOA.
|
||||
*/
|
||||
result = query_addsoa(client, db, version, ISC_FALSE);
|
||||
result = query_addsoa(client, db, version, ISC_FALSE,
|
||||
dns_rdataset_isassociated(rdataset));
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
QUERY_ERROR(result);
|
||||
goto cleanup;
|
||||
@@ -4380,9 +4397,11 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
zone != NULL &&
|
||||
#endif
|
||||
dns_zone_getzeronosoattl(zone))
|
||||
result = query_addsoa(client, db, version, ISC_TRUE);
|
||||
result = query_addsoa(client, db, version, ISC_TRUE,
|
||||
dns_rdataset_isassociated(rdataset));
|
||||
else
|
||||
result = query_addsoa(client, db, version, ISC_FALSE);
|
||||
result = query_addsoa(client, db, version, ISC_FALSE,
|
||||
dns_rdataset_isassociated(rdataset));
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
QUERY_ERROR(result);
|
||||
goto cleanup;
|
||||
@@ -4397,7 +4416,8 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
&sigrdataset,
|
||||
NULL, DNS_SECTION_AUTHORITY);
|
||||
query_addwildcardproof(client, db, version,
|
||||
client->query.qname, ISC_FALSE);
|
||||
client->query.qname, ISC_FALSE,
|
||||
ISC_FALSE);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -4642,7 +4662,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
|
||||
if (type == dns_rdatatype_any) {
|
||||
#ifdef ALLOW_FILTER_AAAA_ON_V4
|
||||
isc_boolean_t have_aaaa, have_a, have_sig;
|
||||
isc_boolean_t have_aaaa, have_a, have_sig, filter_aaaa;
|
||||
|
||||
/*
|
||||
* The filter-aaaa-on-v4 option should
|
||||
@@ -4654,6 +4674,14 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
have_aaaa = ISC_FALSE;
|
||||
have_a = !authoritative;
|
||||
have_sig = ISC_FALSE;
|
||||
if (client->view->v4_aaaa != dns_v4_aaaa_ok &&
|
||||
is_v4_client(client) &&
|
||||
ns_client_checkaclsilent(client, NULL,
|
||||
client->view->v4_aaaa_acl,
|
||||
ISC_TRUE) == ISC_R_SUCCESS)
|
||||
filter_aaaa = ISC_TRUE;
|
||||
else
|
||||
filter_aaaa = ISC_FALSE;
|
||||
#endif
|
||||
/*
|
||||
* XXXRTH Need to handle zonecuts with special case
|
||||
@@ -4687,9 +4715,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
* Notice the presence of A and AAAAs so
|
||||
* that AAAAs can be hidden from IPv4 clients.
|
||||
*/
|
||||
if (client->view->v4_aaaa != dns_v4_aaaa_ok &&
|
||||
client->peeraddr_valid &&
|
||||
client->peeraddr.type.sa.sa_family == AF_INET) {
|
||||
if (filter_aaaa) {
|
||||
if (rdataset->type == dns_rdatatype_aaaa)
|
||||
have_aaaa = ISC_TRUE;
|
||||
else if (rdataset->type == dns_rdatatype_a)
|
||||
@@ -4746,7 +4772,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
* Filter AAAAs if there is an A and there is no signature
|
||||
* or we are supposed to break DNSSEC.
|
||||
*/
|
||||
if (have_aaaa && have_a &&
|
||||
if (filter_aaaa && have_aaaa && have_a &&
|
||||
(!have_sig || !WANTDNSSEC(client) ||
|
||||
client->view->v4_aaaa == dns_v4_aaaa_break_dnssec))
|
||||
client->attributes |= NS_CLIENTATTR_FILTER_AAAA;
|
||||
@@ -4754,7 +4780,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
if (fname != NULL)
|
||||
dns_message_puttempname(client->message, &fname);
|
||||
|
||||
if (n == 0) {
|
||||
if (n == 0 && is_zone) {
|
||||
/*
|
||||
* We didn't match any rdatasets.
|
||||
*/
|
||||
@@ -4768,6 +4794,18 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
* glue. Ugh.
|
||||
*/
|
||||
if (!is_zone) {
|
||||
/*
|
||||
* Note: this is dead code because
|
||||
* is_zone is always true due to the
|
||||
* condition above. But naive
|
||||
* recursion would cause infinite
|
||||
* attempts of recursion because
|
||||
* the answer to (RR)SIG queries
|
||||
* won't be cached. Until we figure
|
||||
* out what we should do and implement
|
||||
* it we intentionally keep this code
|
||||
* dead.
|
||||
*/
|
||||
authoritative = ISC_FALSE;
|
||||
dns_rdatasetiter_destroy(&rdsiter);
|
||||
if (RECURSIONOK(client)) {
|
||||
@@ -4793,7 +4831,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
* Add SOA.
|
||||
*/
|
||||
result = query_addsoa(client, db, version,
|
||||
ISC_FALSE);
|
||||
ISC_FALSE, ISC_FALSE);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
result = ISC_R_NOMORE;
|
||||
} else {
|
||||
@@ -4823,8 +4861,10 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
* unneeded that it is best to keep it as short as possible.
|
||||
*/
|
||||
if (client->view->v4_aaaa != dns_v4_aaaa_ok &&
|
||||
client->peeraddr_valid &&
|
||||
client->peeraddr.type.sa.sa_family == AF_INET &&
|
||||
is_v4_client(client) &&
|
||||
ns_client_checkaclsilent(client, NULL,
|
||||
client->view->v4_aaaa_acl,
|
||||
ISC_TRUE) == ISC_R_SUCCESS &&
|
||||
(!WANTDNSSEC(client) ||
|
||||
sigrdataset == NULL ||
|
||||
!dns_rdataset_isassociated(sigrdataset) ||
|
||||
@@ -4950,7 +4990,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
if (need_wildcardproof && dns_db_issecure(db))
|
||||
query_addwildcardproof(client, db, version,
|
||||
dns_fixedname_name(&wildcardname),
|
||||
ISC_TRUE);
|
||||
ISC_TRUE, ISC_FALSE);
|
||||
cleanup:
|
||||
CTRACE("query_find: cleanup");
|
||||
/*
|
||||
@@ -5322,8 +5362,12 @@ ns_query_start(ns_client_t *client) {
|
||||
/*
|
||||
* Assume authoritative response until it is known to be
|
||||
* otherwise.
|
||||
*
|
||||
* If "-T noaa" has been set on the command line don't set
|
||||
* AA on authoritative answers.
|
||||
*/
|
||||
message->flags |= DNS_MESSAGEFLAG_AA;
|
||||
if (!ns_g_noaa)
|
||||
message->flags |= DNS_MESSAGEFLAG_AA;
|
||||
|
||||
/*
|
||||
* Set AD. We must clear it if we add non-validated data to a
|
||||
|
||||
+607
-49
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2011 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: server.c,v 1.568 2010/05/18 00:28:40 marka Exp $ */
|
||||
/* $Id: server.c,v 1.556.8.34 2011/01/07 23:46:36 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -24,6 +24,9 @@
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <limits.h>
|
||||
#include <ctype.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <isc/app.h>
|
||||
#include <isc/base64.h>
|
||||
@@ -200,6 +203,17 @@ struct zonelistentry {
|
||||
ISC_LINK(struct zonelistentry) link;
|
||||
};
|
||||
|
||||
/*%
|
||||
* Configuration context to retain for each view that allows
|
||||
* new zones to be added at runtime
|
||||
*/
|
||||
struct cfg_context {
|
||||
isc_mem_t * mctx;
|
||||
cfg_obj_t * config;
|
||||
cfg_parser_t * parser;
|
||||
cfg_aclconfctx_t actx;
|
||||
};
|
||||
|
||||
/*
|
||||
* These zones should not leak onto the Internet.
|
||||
*/
|
||||
@@ -251,9 +265,6 @@ static const struct {
|
||||
/* Example Prefix, RFC 3849. */
|
||||
{ "8.B.D.0.1.0.0.2.IP6.ARPA", ISC_FALSE },
|
||||
|
||||
/* ORCHID Prefix, RFC 4843. */
|
||||
{ "0.1.1.0.0.2.IP6.ARPA", ISC_FALSE },
|
||||
|
||||
{ NULL, ISC_FALSE }
|
||||
};
|
||||
|
||||
@@ -283,7 +294,7 @@ configure_alternates(const cfg_obj_t *config, dns_view_t *view,
|
||||
static isc_result_t
|
||||
configure_zone(const cfg_obj_t *config, const cfg_obj_t *zconfig,
|
||||
const cfg_obj_t *vconfig, isc_mem_t *mctx, dns_view_t *view,
|
||||
cfg_aclconfctx_t *aclconf);
|
||||
cfg_aclconfctx_t *aclconf, isc_boolean_t added);
|
||||
|
||||
static isc_result_t
|
||||
add_keydata_zone(dns_view_t *view, const char *directory, isc_mem_t *mctx);
|
||||
@@ -291,6 +302,9 @@ add_keydata_zone(dns_view_t *view, const char *directory, isc_mem_t *mctx);
|
||||
static void
|
||||
end_reserved_dispatches(ns_server_t *server, isc_boolean_t all);
|
||||
|
||||
static void
|
||||
cfgctx_destroy(void **cfgp);
|
||||
|
||||
/*%
|
||||
* Configure a single view ACL at '*aclp'. Get its configuration from
|
||||
* 'vconfig' (for per-view configuration) and maybe from 'config'
|
||||
@@ -620,6 +634,8 @@ load_view_keys(const cfg_obj_t *keys, const cfg_obj_t *vconfig,
|
||||
}
|
||||
|
||||
cleanup:
|
||||
if (dstkey != NULL)
|
||||
dst_key_free(&dstkey);
|
||||
if (secroots != NULL)
|
||||
dns_keytable_detach(&secroots);
|
||||
if (result == DST_R_NOCRYPTO)
|
||||
@@ -1281,10 +1297,11 @@ cache_sharable(dns_view_t *originview, dns_view_t *view,
|
||||
* global defaults in 'config' used exclusively.
|
||||
*/
|
||||
static isc_result_t
|
||||
configure_view(dns_view_t *view, const cfg_obj_t *config,
|
||||
const cfg_obj_t *vconfig, ns_cachelist_t *cachelist,
|
||||
const cfg_obj_t *bindkeys, isc_mem_t *mctx,
|
||||
cfg_aclconfctx_t *actx, isc_boolean_t need_hints)
|
||||
configure_view(dns_view_t *view, cfg_parser_t* parser,
|
||||
cfg_obj_t *config, cfg_obj_t *vconfig,
|
||||
ns_cachelist_t *cachelist, const cfg_obj_t *bindkeys,
|
||||
isc_mem_t *mctx, cfg_aclconfctx_t *actx,
|
||||
isc_boolean_t need_hints)
|
||||
{
|
||||
const cfg_obj_t *maps[4];
|
||||
const cfg_obj_t *cfgmaps[3];
|
||||
@@ -1337,6 +1354,8 @@ configure_view(dns_view_t *view, const cfg_obj_t *config,
|
||||
isc_boolean_t auto_dlv = ISC_FALSE;
|
||||
ns_cache_t *nsc;
|
||||
isc_boolean_t zero_no_soattl;
|
||||
cfg_parser_t *newzones_parser = NULL;
|
||||
cfg_obj_t *nzfconf = NULL;
|
||||
|
||||
REQUIRE(DNS_VIEW_VALID(view));
|
||||
|
||||
@@ -1427,6 +1446,14 @@ configure_view(dns_view_t *view, const cfg_obj_t *config,
|
||||
dns_acache_setcachesize(view->acache, max_acache_size);
|
||||
}
|
||||
|
||||
CHECK(configure_view_acl(vconfig, config, "allow-query", NULL, actx,
|
||||
ns_g_mctx, &view->queryacl));
|
||||
if (view->queryacl == NULL) {
|
||||
CHECK(configure_view_acl(NULL, ns_g_config, "allow-query",
|
||||
NULL, actx, ns_g_mctx,
|
||||
&view->queryacl));
|
||||
}
|
||||
|
||||
/*
|
||||
* Configure the zones.
|
||||
*/
|
||||
@@ -1441,7 +1468,62 @@ configure_view(dns_view_t *view, const cfg_obj_t *config,
|
||||
{
|
||||
const cfg_obj_t *zconfig = cfg_listelt_value(element);
|
||||
CHECK(configure_zone(config, zconfig, vconfig, mctx, view,
|
||||
actx));
|
||||
actx, ISC_FALSE));
|
||||
}
|
||||
|
||||
/*
|
||||
* Are we allowing zones to be added and deleted dynamically?
|
||||
*/
|
||||
obj = NULL;
|
||||
result = ns_config_get(maps, "allow-new-zones", &obj);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
isc_boolean_t allow = cfg_obj_asboolean(obj);
|
||||
struct cfg_context *cfg = NULL;
|
||||
if (allow) {
|
||||
cfg = isc_mem_get(view->mctx, sizeof(*cfg));
|
||||
if (cfg == NULL) {
|
||||
result = ISC_R_NOMEMORY;
|
||||
goto cleanup;
|
||||
}
|
||||
memset(cfg, 0, sizeof(*cfg));
|
||||
isc_mem_attach(view->mctx, &cfg->mctx);
|
||||
if (config != NULL)
|
||||
cfg_obj_attach(config, &cfg->config);
|
||||
cfg_parser_attach(parser, &cfg->parser);
|
||||
cfg_aclconfctx_clone(actx, &cfg->actx);
|
||||
}
|
||||
dns_view_setnewzones(view, allow, cfg, cfgctx_destroy);
|
||||
}
|
||||
|
||||
/*
|
||||
* If we're allowing added zones, then load zone configuration
|
||||
* from the newzone file for zones that were added during previous
|
||||
* runs.
|
||||
*/
|
||||
if (view->new_zone_file != NULL) {
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_SERVER, ISC_LOG_INFO,
|
||||
"loading additional zones for view '%s'",
|
||||
view->name);
|
||||
|
||||
CHECK(cfg_parser_create(view->mctx, ns_g_lctx,
|
||||
&newzones_parser));
|
||||
result = cfg_parse_file(newzones_parser, view->new_zone_file,
|
||||
&cfg_type_newzones, &nzfconf);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
zonelist = NULL;
|
||||
cfg_map_get(nzfconf, "zone", &zonelist);
|
||||
for (element = cfg_list_first(zonelist);
|
||||
element != NULL;
|
||||
element = cfg_list_next(element))
|
||||
{
|
||||
const cfg_obj_t *zconfig =
|
||||
cfg_listelt_value(element);
|
||||
CHECK(configure_zone(config, zconfig, vconfig,
|
||||
mctx, view, actx,
|
||||
ISC_TRUE));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef DLZ
|
||||
@@ -1980,13 +2062,13 @@ configure_view(dns_view_t *view, const cfg_obj_t *config,
|
||||
* configured in named.conf.
|
||||
*/
|
||||
CHECK(configure_view_acl(vconfig, config, "allow-query-cache", NULL,
|
||||
actx, ns_g_mctx, &view->queryacl));
|
||||
actx, ns_g_mctx, &view->cacheacl));
|
||||
CHECK(configure_view_acl(vconfig, config, "allow-query-cache-on", NULL,
|
||||
actx, ns_g_mctx, &view->queryonacl));
|
||||
if (view->queryonacl == NULL)
|
||||
actx, ns_g_mctx, &view->cacheonacl));
|
||||
if (view->cacheonacl == NULL)
|
||||
CHECK(configure_view_acl(NULL, ns_g_config,
|
||||
"allow-query-cache-on", NULL, actx,
|
||||
ns_g_mctx, &view->queryonacl));
|
||||
ns_g_mctx, &view->cacheonacl));
|
||||
if (strcmp(view->name, "_bind") != 0) {
|
||||
CHECK(configure_view_acl(vconfig, config, "allow-recursion",
|
||||
NULL, actx, ns_g_mctx,
|
||||
@@ -2002,14 +2084,20 @@ configure_view(dns_view_t *view, const cfg_obj_t *config,
|
||||
* "allow-recursion" inherits from "allow-query-cache" if set,
|
||||
* otherwise from "allow-query" if set.
|
||||
*/
|
||||
if (view->queryacl == NULL && view->recursionacl != NULL)
|
||||
dns_acl_attach(view->recursionacl, &view->queryacl);
|
||||
if (view->queryacl == NULL && view->recursion)
|
||||
if (view->cacheacl == NULL && view->recursionacl != NULL)
|
||||
dns_acl_attach(view->recursionacl, &view->cacheacl);
|
||||
/*
|
||||
* XXXEACH: This call to configure_view_acl() is redundant. We
|
||||
* are leaving it as it is because we are making a minimal change
|
||||
* for a patch release. In the future this should be changed to
|
||||
* dns_acl_attach(view->queryacl, &view->cacheacl).
|
||||
*/
|
||||
if (view->cacheacl == NULL && view->recursion)
|
||||
CHECK(configure_view_acl(vconfig, config, "allow-query", NULL,
|
||||
actx, ns_g_mctx, &view->queryacl));
|
||||
actx, ns_g_mctx, &view->cacheacl));
|
||||
if (view->recursion &&
|
||||
view->recursionacl == NULL && view->queryacl != NULL)
|
||||
dns_acl_attach(view->queryacl, &view->recursionacl);
|
||||
view->recursionacl == NULL && view->cacheacl != NULL)
|
||||
dns_acl_attach(view->cacheacl, &view->recursionacl);
|
||||
|
||||
/*
|
||||
* Set default "allow-recursion", "allow-recursion-on" and
|
||||
@@ -2025,17 +2113,14 @@ configure_view(dns_view_t *view, const cfg_obj_t *config,
|
||||
"allow-recursion-on", NULL,
|
||||
actx, ns_g_mctx,
|
||||
&view->recursiononacl));
|
||||
if (view->queryacl == NULL) {
|
||||
if (view->cacheacl == NULL) {
|
||||
if (view->recursion)
|
||||
CHECK(configure_view_acl(NULL, ns_g_config,
|
||||
"allow-query-cache", NULL,
|
||||
actx, ns_g_mctx,
|
||||
&view->queryacl));
|
||||
else {
|
||||
if (view->queryacl != NULL)
|
||||
dns_acl_detach(&view->queryacl);
|
||||
CHECK(dns_acl_none(ns_g_mctx, &view->queryacl));
|
||||
}
|
||||
&view->cacheacl));
|
||||
else
|
||||
CHECK(dns_acl_none(mctx, &view->cacheacl));
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2128,8 +2213,10 @@ configure_view(dns_view_t *view, const cfg_obj_t *config,
|
||||
else
|
||||
INSIST(0);
|
||||
}
|
||||
|
||||
CHECK(configure_view_acl(vconfig, config, "filter-aaaa", NULL,
|
||||
actx, ns_g_mctx, &view->v4_aaaa_acl));
|
||||
#endif
|
||||
|
||||
obj = NULL;
|
||||
result = ns_config_get(maps, "dnssec-enable", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
@@ -2451,6 +2538,12 @@ configure_view(dns_view_t *view, const cfg_obj_t *config,
|
||||
if (cache != NULL)
|
||||
dns_cache_detach(&cache);
|
||||
|
||||
if (newzones_parser != NULL) {
|
||||
if (nzfconf != NULL)
|
||||
cfg_obj_destroy(newzones_parser, &nzfconf);
|
||||
cfg_parser_destroy(&newzones_parser);
|
||||
}
|
||||
|
||||
return (result);
|
||||
}
|
||||
|
||||
@@ -2704,7 +2797,7 @@ create_view(const cfg_obj_t *vconfig, dns_viewlist_t *viewlist,
|
||||
static isc_result_t
|
||||
configure_zone(const cfg_obj_t *config, const cfg_obj_t *zconfig,
|
||||
const cfg_obj_t *vconfig, isc_mem_t *mctx, dns_view_t *view,
|
||||
cfg_aclconfctx_t *aclconf)
|
||||
cfg_aclconfctx_t *aclconf, isc_boolean_t added)
|
||||
{
|
||||
dns_view_t *pview = NULL; /* Production view */
|
||||
dns_zone_t *zone = NULL; /* New or reused zone */
|
||||
@@ -2917,6 +3010,11 @@ configure_zone(const cfg_obj_t *config, const cfg_obj_t *zconfig,
|
||||
CHECK(dns_view_adddelegationonly(view, origin));
|
||||
}
|
||||
|
||||
/*
|
||||
* Mark whether the zone was originally added at runtime or not
|
||||
*/
|
||||
dns_zone_setadded(zone, added);
|
||||
|
||||
/*
|
||||
* Configure the zone.
|
||||
*/
|
||||
@@ -3472,7 +3570,6 @@ generate_session_key(const char *filename, const char *keynamestr,
|
||||
CHECK(dns_tsigkey_createfromkey(dst_key_name(key), algname, key,
|
||||
ISC_FALSE, NULL, now, now, mctx, NULL,
|
||||
&tsigkey));
|
||||
key = NULL; /* ownership of key has been transferred */
|
||||
|
||||
/* Dump the key to the key file. */
|
||||
fp = ns_os_openfile(filename, S_IRUSR|S_IWUSR, ISC_TRUE);
|
||||
@@ -3493,6 +3590,8 @@ generate_session_key(const char *filename, const char *keynamestr,
|
||||
RUNTIME_CHECK(isc_stdio_flush(fp) == ISC_R_SUCCESS);
|
||||
RUNTIME_CHECK(isc_stdio_close(fp) == ISC_R_SUCCESS);
|
||||
|
||||
dst_key_free(&key);
|
||||
|
||||
*tsigkeyp = tsigkey;
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
@@ -4084,12 +4183,12 @@ load_configuration(const char *filename, ns_server_t *server,
|
||||
element != NULL;
|
||||
element = cfg_list_next(element))
|
||||
{
|
||||
const cfg_obj_t *vconfig = cfg_listelt_value(element);
|
||||
cfg_obj_t *vconfig = cfg_listelt_value(element);
|
||||
view = NULL;
|
||||
|
||||
CHECK(create_view(vconfig, &viewlist, &view));
|
||||
INSIST(view != NULL);
|
||||
CHECK(configure_view(view, config, vconfig,
|
||||
CHECK(configure_view(view, conf_parser, config, vconfig,
|
||||
&cachelist, bindkeys,
|
||||
ns_g_mctx, &aclconfctx, ISC_TRUE));
|
||||
dns_view_freeze(view);
|
||||
@@ -4108,7 +4207,7 @@ load_configuration(const char *filename, ns_server_t *server,
|
||||
* In either case, we need to configure and freeze it.
|
||||
*/
|
||||
CHECK(create_view(NULL, &viewlist, &view));
|
||||
CHECK(configure_view(view, config, NULL,
|
||||
CHECK(configure_view(view, conf_parser, config, NULL,
|
||||
&cachelist, bindkeys,
|
||||
ns_g_mctx, &aclconfctx, ISC_TRUE));
|
||||
dns_view_freeze(view);
|
||||
@@ -4125,10 +4224,10 @@ load_configuration(const char *filename, ns_server_t *server,
|
||||
element != NULL;
|
||||
element = cfg_list_next(element))
|
||||
{
|
||||
const cfg_obj_t *vconfig = cfg_listelt_value(element);
|
||||
cfg_obj_t *vconfig = cfg_listelt_value(element);
|
||||
|
||||
CHECK(create_view(vconfig, &builtin_viewlist, &view));
|
||||
CHECK(configure_view(view, config, vconfig,
|
||||
CHECK(configure_view(view, conf_parser, config, vconfig,
|
||||
&cachelist, bindkeys,
|
||||
ns_g_mctx, &aclconfctx, ISC_FALSE));
|
||||
dns_view_freeze(view);
|
||||
@@ -4350,6 +4449,12 @@ load_configuration(const char *filename, ns_server_t *server,
|
||||
CHECKM(setstring(server, &server->dumpfile, cfg_obj_asstring(obj)),
|
||||
"strdup");
|
||||
|
||||
obj = NULL;
|
||||
result = ns_config_get(maps, "secroots-file", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
CHECKM(setstring(server, &server->secrootsfile, cfg_obj_asstring(obj)),
|
||||
"strdup");
|
||||
|
||||
obj = NULL;
|
||||
result = ns_config_get(maps, "recursing-file", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
@@ -4407,7 +4512,7 @@ load_configuration(const char *filename, ns_server_t *server,
|
||||
if (v6portset != NULL)
|
||||
isc_portset_destroy(ns_g_mctx, &v6portset);
|
||||
|
||||
cfg_aclconfctx_destroy(&aclconfctx);
|
||||
cfg_aclconfctx_clear(&aclconfctx);
|
||||
|
||||
if (conf_parser != NULL) {
|
||||
if (config != NULL)
|
||||
@@ -4761,6 +4866,11 @@ ns_server_create(isc_mem_t *mctx, ns_server_t **serverp) {
|
||||
CHECKFATAL(server->dumpfile == NULL ? ISC_R_NOMEMORY : ISC_R_SUCCESS,
|
||||
"isc_mem_strdup");
|
||||
|
||||
server->secrootsfile = isc_mem_strdup(server->mctx, "named.secroots");
|
||||
CHECKFATAL(server->secrootsfile == NULL ? ISC_R_NOMEMORY :
|
||||
ISC_R_SUCCESS,
|
||||
"isc_mem_strdup");
|
||||
|
||||
server->recfile = isc_mem_strdup(server->mctx, "named.recursing");
|
||||
CHECKFATAL(server->recfile == NULL ? ISC_R_NOMEMORY : ISC_R_SUCCESS,
|
||||
"isc_mem_strdup");
|
||||
@@ -4831,6 +4941,7 @@ ns_server_destroy(ns_server_t **serverp) {
|
||||
isc_mem_free(server->mctx, server->statsfile);
|
||||
isc_mem_free(server->mctx, server->bindkeysfile);
|
||||
isc_mem_free(server->mctx, server->dumpfile);
|
||||
isc_mem_free(server->mctx, server->secrootsfile);
|
||||
isc_mem_free(server->mctx, server->recfile);
|
||||
|
||||
if (server->version != NULL)
|
||||
@@ -5082,7 +5193,9 @@ next_token(char **stringp, const char *delim) {
|
||||
* set '*zonep' to NULL.
|
||||
*/
|
||||
static isc_result_t
|
||||
zone_from_args(ns_server_t *server, char *args, dns_zone_t **zonep) {
|
||||
zone_from_args(ns_server_t *server, char *args, dns_zone_t **zonep,
|
||||
const char **zonename)
|
||||
{
|
||||
char *input, *ptr;
|
||||
const char *zonetxt;
|
||||
char *classtxt;
|
||||
@@ -5106,6 +5219,8 @@ zone_from_args(ns_server_t *server, char *args, dns_zone_t **zonep) {
|
||||
zonetxt = next_token(&input, " \t");
|
||||
if (zonetxt == NULL)
|
||||
return (ISC_R_SUCCESS);
|
||||
if (zonename)
|
||||
*zonename = zonetxt;
|
||||
|
||||
/* Look for the optional class name. */
|
||||
classtxt = next_token(&input, " \t");
|
||||
@@ -5166,7 +5281,7 @@ ns_server_retransfercommand(ns_server_t *server, char *args) {
|
||||
dns_zone_t *zone = NULL;
|
||||
dns_zonetype_t type;
|
||||
|
||||
result = zone_from_args(server, args, &zone);
|
||||
result = zone_from_args(server, args, &zone, NULL);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
if (zone == NULL)
|
||||
@@ -5190,7 +5305,7 @@ ns_server_reloadcommand(ns_server_t *server, char *args, isc_buffer_t *text) {
|
||||
dns_zonetype_t type;
|
||||
const char *msg = NULL;
|
||||
|
||||
result = zone_from_args(server, args, &zone);
|
||||
result = zone_from_args(server, args, &zone, NULL);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
if (zone == NULL) {
|
||||
@@ -5250,7 +5365,7 @@ ns_server_notifycommand(ns_server_t *server, char *args, isc_buffer_t *text) {
|
||||
dns_zone_t *zone = NULL;
|
||||
const unsigned char msg[] = "zone notify queued";
|
||||
|
||||
result = zone_from_args(server, args, &zone);
|
||||
result = zone_from_args(server, args, &zone, NULL);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
if (zone == NULL)
|
||||
@@ -5275,7 +5390,7 @@ ns_server_refreshcommand(ns_server_t *server, char *args, isc_buffer_t *text) {
|
||||
const unsigned char msg2[] = "not a slave or stub zone";
|
||||
dns_zonetype_t type;
|
||||
|
||||
result = zone_from_args(server, args, &zone);
|
||||
result = zone_from_args(server, args, &zone, NULL);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
if (zone == NULL)
|
||||
@@ -5691,6 +5806,68 @@ ns_server_dumpdb(ns_server_t *server, char *args) {
|
||||
return (result);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
ns_server_dumpsecroots(ns_server_t *server, char *args) {
|
||||
dns_view_t *view;
|
||||
dns_keytable_t *secroots = NULL;
|
||||
isc_result_t result;
|
||||
char *ptr;
|
||||
FILE *fp = NULL;
|
||||
isc_time_t now;
|
||||
char tbuf[64];
|
||||
|
||||
/* Skip the command name. */
|
||||
ptr = next_token(&args, " \t");
|
||||
if (ptr == NULL)
|
||||
return (ISC_R_UNEXPECTEDEND);
|
||||
ptr = next_token(&args, " \t");
|
||||
|
||||
CHECKMF(isc_stdio_open(server->secrootsfile, "w", &fp),
|
||||
"could not open secroots dump file", server->secrootsfile);
|
||||
TIME_NOW(&now);
|
||||
isc_time_formattimestamp(&now, tbuf, sizeof(tbuf));
|
||||
fprintf(fp, "%s\n", tbuf);
|
||||
|
||||
nextview:
|
||||
for (view = ISC_LIST_HEAD(server->viewlist);
|
||||
view != NULL;
|
||||
view = ISC_LIST_NEXT(view, link))
|
||||
{
|
||||
if (ptr != NULL && strcmp(view->name, ptr) != 0)
|
||||
continue;
|
||||
if (secroots != NULL)
|
||||
dns_keytable_detach(&secroots);
|
||||
result = dns_view_getsecroots(view, &secroots);
|
||||
if (result == ISC_R_NOTFOUND) {
|
||||
result = ISC_R_SUCCESS;
|
||||
continue;
|
||||
}
|
||||
fprintf(fp, "\n Start view %s\n\n", view->name);
|
||||
CHECK(dns_keytable_dump(secroots, fp));
|
||||
}
|
||||
if (ptr != NULL) {
|
||||
ptr = next_token(&args, " \t");
|
||||
if (ptr != NULL)
|
||||
goto nextview;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
if (secroots != NULL)
|
||||
dns_keytable_detach(&secroots);
|
||||
if (fp != NULL)
|
||||
(void)isc_stdio_close(fp);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_SERVER, ISC_LOG_INFO,
|
||||
"dumpsecroots complete");
|
||||
else
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_SERVER, ISC_LOG_ERROR,
|
||||
"dumpsecroots failed: %s",
|
||||
dns_result_totext(result));
|
||||
return (result);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
ns_server_dumprecursing(ns_server_t *server) {
|
||||
FILE *fp = NULL;
|
||||
@@ -6300,16 +6477,20 @@ ns_server_tsiglist(ns_server_t *server, isc_buffer_t *text) {
|
||||
}
|
||||
|
||||
/*
|
||||
* Act on a "sign" command from the command channel.
|
||||
* Act on a "sign" or "loadkeys" command from the command channel.
|
||||
*/
|
||||
isc_result_t
|
||||
ns_server_sign(ns_server_t *server, char *args) {
|
||||
ns_server_rekey(ns_server_t *server, char *args) {
|
||||
isc_result_t result;
|
||||
dns_zone_t *zone = NULL;
|
||||
dns_zonetype_t type;
|
||||
isc_uint16_t keyopts;
|
||||
isc_boolean_t fullsign = ISC_FALSE;
|
||||
|
||||
result = zone_from_args(server, args, &zone);
|
||||
if (strncasecmp(args, NS_COMMAND_SIGN, strlen(NS_COMMAND_SIGN)) == 0)
|
||||
fullsign = ISC_TRUE;
|
||||
|
||||
result = zone_from_args(server, args, &zone, NULL);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
if (zone == NULL)
|
||||
@@ -6322,10 +6503,14 @@ ns_server_sign(ns_server_t *server, char *args) {
|
||||
}
|
||||
|
||||
keyopts = dns_zone_getkeyopts(zone);
|
||||
if ((keyopts & DNS_ZONEKEY_ALLOW) != 0)
|
||||
dns_zone_rekey(zone);
|
||||
else
|
||||
|
||||
/* "rndc loadkeys" requires "auto-dnssec maintain". */
|
||||
if ((keyopts & DNS_ZONEKEY_ALLOW) == 0)
|
||||
result = ISC_R_NOPERM;
|
||||
else if ((keyopts & DNS_ZONEKEY_MAINTAIN) == 0 && !fullsign)
|
||||
result = ISC_R_NOPERM;
|
||||
else
|
||||
dns_zone_rekey(zone, fullsign);
|
||||
|
||||
dns_zone_detach(&zone);
|
||||
return (result);
|
||||
@@ -6349,7 +6534,7 @@ ns_server_freeze(ns_server_t *server, isc_boolean_t freeze, char *args,
|
||||
isc_boolean_t frozen;
|
||||
const char *msg = NULL;
|
||||
|
||||
result = zone_from_args(server, args, &zone);
|
||||
result = zone_from_args(server, args, &zone, NULL);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
if (zone == NULL) {
|
||||
@@ -6467,3 +6652,376 @@ ns_smf_add_message(isc_buffer_t *text) {
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
#endif /* HAVE_LIBSCF */
|
||||
|
||||
/*
|
||||
* Act on an "addzone" command from the command channel.
|
||||
*/
|
||||
isc_result_t
|
||||
ns_server_add_zone(ns_server_t *server, char *args) {
|
||||
isc_result_t result;
|
||||
isc_buffer_t argbuf;
|
||||
size_t arglen;
|
||||
cfg_parser_t *parser = NULL;
|
||||
cfg_obj_t *config = NULL;
|
||||
const cfg_obj_t *vconfig = NULL;
|
||||
const cfg_obj_t *views = NULL;
|
||||
const cfg_obj_t *parms = NULL;
|
||||
const cfg_obj_t *obj = NULL;
|
||||
const cfg_listelt_t *element;
|
||||
const char *zonename;
|
||||
const char *classname = NULL;
|
||||
const char *argp;
|
||||
const char *viewname = NULL;
|
||||
dns_rdataclass_t rdclass;
|
||||
dns_view_t *view = 0;
|
||||
isc_buffer_t buf, *nbuf = NULL;
|
||||
dns_name_t dnsname;
|
||||
dns_zone_t *zone = NULL;
|
||||
FILE *fp = NULL;
|
||||
struct cfg_context *cfg = NULL;
|
||||
|
||||
/* Try to parse the argument string */
|
||||
arglen = strlen(args);
|
||||
isc_buffer_init(&argbuf, args, arglen);
|
||||
isc_buffer_add(&argbuf, strlen(args));
|
||||
CHECK(cfg_parser_create(server->mctx, ns_g_lctx, &parser));
|
||||
CHECK(cfg_parse_buffer(parser, &argbuf, &cfg_type_addzoneconf,
|
||||
&config));
|
||||
CHECK(cfg_map_get(config, "addzone", &parms));
|
||||
|
||||
zonename = cfg_obj_asstring(cfg_tuple_get(parms, "name"));
|
||||
isc_buffer_init(&buf, zonename, strlen(zonename));
|
||||
isc_buffer_add(&buf, strlen(zonename));
|
||||
dns_name_init(&dnsname, NULL);
|
||||
isc_buffer_allocate(server->mctx, &nbuf, 256);
|
||||
dns_name_setbuffer(&dnsname, nbuf);
|
||||
CHECK(dns_name_fromtext(&dnsname, &buf, dns_rootname, ISC_FALSE, NULL));
|
||||
|
||||
/* Make sense of optional class argument */
|
||||
obj = cfg_tuple_get(parms, "class");
|
||||
CHECK(ns_config_getclass(obj, dns_rdataclass_in, &rdclass));
|
||||
if (rdclass != dns_rdataclass_in && obj)
|
||||
classname = cfg_obj_asstring(obj);
|
||||
|
||||
/* Make sense of optional view argument */
|
||||
obj = cfg_tuple_get(parms, "view");
|
||||
if (obj && cfg_obj_isstring(obj))
|
||||
viewname = cfg_obj_asstring(obj);
|
||||
if (viewname == NULL || *viewname == '\0')
|
||||
viewname = "_default";
|
||||
CHECK(dns_viewlist_find(&server->viewlist, viewname, rdclass, &view));
|
||||
|
||||
/* Are we accepting new zones? */
|
||||
if (view->new_zone_file == NULL) {
|
||||
result = ISC_R_NOPERM;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
cfg = (struct cfg_context *) view->new_zone_config;
|
||||
if (cfg == NULL) {
|
||||
result = ISC_R_FAILURE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/* Zone shouldn't already exist */
|
||||
result = dns_zt_find(view->zonetable, &dnsname, 0, NULL, &zone);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
result = ISC_R_EXISTS;
|
||||
goto cleanup;
|
||||
} else if (result == DNS_R_PARTIALMATCH) {
|
||||
/* Create our sub-zone anyway */
|
||||
dns_zone_detach(&zone);
|
||||
zone = NULL;
|
||||
}
|
||||
else if (result != ISC_R_NOTFOUND)
|
||||
goto cleanup;
|
||||
|
||||
/* Find the view statement */
|
||||
cfg_map_get(cfg->config, "view", &views);
|
||||
for (element = cfg_list_first(views);
|
||||
element != NULL;
|
||||
element = cfg_list_next(element))
|
||||
{
|
||||
const char *vname;
|
||||
vconfig = cfg_listelt_value(element);
|
||||
vname = cfg_obj_asstring(cfg_tuple_get(vconfig, "name"));
|
||||
if (vname && !strcasecmp(vname, viewname))
|
||||
break;
|
||||
vconfig = NULL;
|
||||
}
|
||||
|
||||
/* Open save file for write configuration */
|
||||
CHECK(isc_stdio_open(view->new_zone_file, "a", &fp));
|
||||
|
||||
/* Mark view unfrozen so that zone can be added */
|
||||
dns_view_thaw(view);
|
||||
result = configure_zone(cfg->config, parms, vconfig,
|
||||
server->mctx, view, &cfg->actx, ISC_FALSE);
|
||||
dns_view_freeze(view);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/* Is it there yet? */
|
||||
CHECK(dns_zt_find(view->zonetable, &dnsname, 0, NULL, &zone));
|
||||
|
||||
/*
|
||||
* Load the zone from the master file. If this fails, we'll
|
||||
* need to undo the configuration we've done already.
|
||||
*/
|
||||
result = dns_zone_loadnew(zone);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
dns_db_t *dbp = NULL;
|
||||
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_SERVER, ISC_LOG_INFO,
|
||||
"addzone failed; reverting.");
|
||||
|
||||
/* If the zone loaded partially, unload it */
|
||||
if (dns_zone_getdb(zone, &dbp) == ISC_R_SUCCESS) {
|
||||
dns_db_detach(&dbp);
|
||||
dns_zone_unload(zone);
|
||||
}
|
||||
|
||||
/* Remove the zone from the zone table */
|
||||
dns_zt_unmount(view->zonetable, zone);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/* Flag the zone as having been added at runtime */
|
||||
dns_zone_setadded(zone, ISC_TRUE);
|
||||
|
||||
/* Emit just the zone name from args */
|
||||
CHECK(isc_stdio_write("zone ", 5, 1, fp, NULL));
|
||||
CHECK(isc_stdio_write(zonename, strlen(zonename), 1, fp, NULL));
|
||||
CHECK(isc_stdio_write(" ", 1, 1, fp, NULL));
|
||||
|
||||
/* Classname, if not default */
|
||||
if (classname != NULL && *classname != '\0') {
|
||||
CHECK(isc_stdio_write(classname, strlen(classname), 1, fp,
|
||||
NULL));
|
||||
CHECK(isc_stdio_write(" ", 1, 1, fp, NULL));
|
||||
}
|
||||
|
||||
/* Find beginning of option block from args */
|
||||
for (argp = args; *argp; argp++, arglen--) {
|
||||
if (*argp == '{') { /* Assume matching '}' */
|
||||
/* Add that to our file */
|
||||
CHECK(isc_stdio_write(argp, arglen, 1, fp, NULL));
|
||||
|
||||
/* Make sure we end with a LF */
|
||||
if (argp[arglen-1] != '\n') {
|
||||
CHECK(isc_stdio_write("\n", 1, 1, fp, NULL));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
CHECK(isc_stdio_close(fp));
|
||||
fp = NULL;
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_SERVER, ISC_LOG_INFO,
|
||||
"zone %s added to view %s via addzone",
|
||||
zonename, viewname);
|
||||
|
||||
result = ISC_R_SUCCESS;
|
||||
|
||||
cleanup:
|
||||
if (fp != NULL)
|
||||
isc_stdio_close(fp);
|
||||
if (parser != NULL) {
|
||||
if (config != NULL)
|
||||
cfg_obj_destroy(parser, &config);
|
||||
cfg_parser_destroy(&parser);
|
||||
}
|
||||
if (zone != NULL)
|
||||
dns_zone_detach(&zone);
|
||||
if (view != NULL)
|
||||
dns_view_detach(&view);
|
||||
if (nbuf != NULL)
|
||||
isc_buffer_free(&nbuf);
|
||||
|
||||
return (result);
|
||||
}
|
||||
|
||||
/*
|
||||
* Act on a "delzone" command from the command channel.
|
||||
*/
|
||||
isc_result_t
|
||||
ns_server_del_zone(ns_server_t *server, char *args) {
|
||||
isc_result_t result;
|
||||
dns_zone_t *zone = NULL;
|
||||
dns_view_t *view = NULL;
|
||||
dns_db_t *dbp = NULL;
|
||||
const char *filename = NULL;
|
||||
char *tmpname = NULL;
|
||||
char buf[1024];
|
||||
const char *zonename = NULL;
|
||||
size_t znamelen = 0;
|
||||
FILE *ifp = NULL, *ofp = NULL;
|
||||
|
||||
/* Parse parameters */
|
||||
CHECK(zone_from_args(server, args, &zone, &zonename));
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
if (zone == NULL) {
|
||||
result = ISC_R_UNEXPECTEDEND;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/*
|
||||
* Was this zone originally added at runtime?
|
||||
* If not, we can't delete it now.
|
||||
*/
|
||||
if (!dns_zone_getadded(zone)) {
|
||||
result = ISC_R_NOPERM;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (zonename != NULL)
|
||||
znamelen = strlen(zonename);
|
||||
|
||||
/* Dig out configuration for this zone */
|
||||
view = dns_zone_getview(zone);
|
||||
filename = view->new_zone_file;
|
||||
if (filename == NULL) {
|
||||
/* No adding zones in this view */
|
||||
result = ISC_R_FAILURE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/* Rewrite zone list */
|
||||
result = isc_stdio_open(filename, "r", &ifp);
|
||||
if (ifp != NULL && result == ISC_R_SUCCESS) {
|
||||
char *found = NULL, *p = NULL;
|
||||
size_t n;
|
||||
|
||||
/* Create a temporary file */
|
||||
CHECK(isc_string_printf(buf, 1023, "%s.%ld", filename,
|
||||
(long)getpid()));
|
||||
if (!(tmpname = isc_mem_strdup(server->mctx, buf))) {
|
||||
result = ISC_R_NOMEMORY;
|
||||
goto cleanup;
|
||||
}
|
||||
CHECK(isc_stdio_open(tmpname, "w", &ofp));
|
||||
|
||||
/* Look for the entry for that zone */
|
||||
while (fgets(buf, 1024, ifp)) {
|
||||
/* A 'zone' line */
|
||||
if (strncasecmp(buf, "zone", 4)) {
|
||||
fputs(buf, ofp);
|
||||
continue;
|
||||
}
|
||||
p = buf+4;
|
||||
|
||||
/* Locate a name */
|
||||
while (*p &&
|
||||
((*p == '"') || isspace((unsigned char)*p)))
|
||||
p++;
|
||||
|
||||
/* Is that the zone we're looking for */
|
||||
if (strncasecmp(p, zonename, znamelen)) {
|
||||
fputs(buf, ofp);
|
||||
continue;
|
||||
}
|
||||
|
||||
/* And nothing else? */
|
||||
p += znamelen;
|
||||
if (isspace((unsigned char)*p) ||
|
||||
*p == '"' || *p == '{') {
|
||||
/* This must be the entry */
|
||||
found = p;
|
||||
break;
|
||||
}
|
||||
|
||||
/* Spit it out, keep looking */
|
||||
fputs(buf, ofp);
|
||||
}
|
||||
|
||||
/* Skip over an option block (matching # of braces) */
|
||||
if (found) {
|
||||
int obrace = 0, cbrace = 0;
|
||||
for (;;) {
|
||||
while (*p) {
|
||||
if (*p == '{') obrace++;
|
||||
if (*p == '}') cbrace++;
|
||||
p++;
|
||||
}
|
||||
if (obrace && (obrace == cbrace))
|
||||
break;
|
||||
if (!fgets(buf, 1024, ifp))
|
||||
break;
|
||||
p = buf;
|
||||
}
|
||||
|
||||
/* Just spool the remainder of the file out */
|
||||
result = isc_stdio_read(buf, 1, 1024, ifp, &n);
|
||||
while (n > 0U) {
|
||||
if (result == ISC_R_EOF)
|
||||
result = ISC_R_SUCCESS;
|
||||
CHECK(result);
|
||||
isc_stdio_write(buf, 1, n, ofp, NULL);
|
||||
result = isc_stdio_read(buf, 1, 1024, ifp, &n);
|
||||
}
|
||||
|
||||
/* Move temporary into place */
|
||||
CHECK(isc_file_rename(tmpname, view->new_zone_file));
|
||||
} else {
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_SERVER, ISC_LOG_WARNING,
|
||||
"deleted zone %s was missing from "
|
||||
"new zone file", zonename);
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
/* Stop answering for this zone */
|
||||
if (dns_zone_getdb(zone, &dbp) == ISC_R_SUCCESS) {
|
||||
dns_db_detach(&dbp);
|
||||
dns_zone_unload(zone);
|
||||
}
|
||||
|
||||
CHECK(dns_zt_unmount(view->zonetable, zone));
|
||||
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_SERVER, ISC_LOG_INFO,
|
||||
"zone %s removed via delzone", zonename);
|
||||
|
||||
result = ISC_R_SUCCESS;
|
||||
|
||||
cleanup:
|
||||
if (ifp != NULL)
|
||||
isc_stdio_close(ifp);
|
||||
if (ofp != NULL) {
|
||||
isc_stdio_close(ofp);
|
||||
isc_file_remove(tmpname);
|
||||
}
|
||||
if (tmpname != NULL)
|
||||
isc_mem_free(server->mctx, tmpname);
|
||||
if (zone != NULL)
|
||||
dns_zone_detach(&zone);
|
||||
|
||||
return (result);
|
||||
}
|
||||
|
||||
static void
|
||||
cfgctx_destroy(void **cfgp) {
|
||||
struct cfg_context *cfg;
|
||||
isc_mem_t *mctx;
|
||||
|
||||
REQUIRE(cfgp != NULL && *cfgp != NULL);
|
||||
cfg = *cfgp;
|
||||
mctx = cfg->mctx;
|
||||
cfg->mctx = NULL;
|
||||
|
||||
if (cfg->parser != NULL) {
|
||||
if (cfg->config != NULL)
|
||||
cfg_obj_destroy(cfg->parser, &cfg->config);
|
||||
cfg_parser_destroy(&cfg->parser);
|
||||
}
|
||||
cfg_aclconfctx_clear(&cfg->actx);
|
||||
|
||||
isc_mem_put(mctx, cfg, sizeof(*cfg));
|
||||
isc_mem_detach(&mctx);
|
||||
*cfgp = NULL;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: statschannel.c,v 1.26 2010/02/04 23:49:13 tbox Exp $ */
|
||||
/* $Id: statschannel.c,v 1.24.40.2 2010/02/04 23:48:30 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
+138
-76
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: update.c,v 1.182 2010/05/18 01:39:41 marka Exp $ */
|
||||
/* $Id: update.c,v 1.176.4.9 2010/12/10 04:47:48 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -1250,11 +1250,10 @@ replaces_p(dns_rdata_t *update_rr, dns_rdata_t *db_rr) {
|
||||
return (ISC_FALSE);
|
||||
INSIST(db_rr->length >= 4 && update_rr->length >= 4);
|
||||
/*
|
||||
* Replace records added in this UPDATE request.
|
||||
* Replace NSEC3PARAM records that only differ by the
|
||||
* flags field.
|
||||
*/
|
||||
if (db_rr->data[0] == update_rr->data[0] &&
|
||||
(db_rr->data[1] & DNS_NSEC3FLAG_UPDATE) != 0 &&
|
||||
(update_rr->data[1] & DNS_NSEC3FLAG_UPDATE) != 0 &&
|
||||
memcmp(db_rr->data+2, update_rr->data+2,
|
||||
update_rr->length - 2) == 0)
|
||||
return (ISC_TRUE);
|
||||
@@ -3109,7 +3108,9 @@ add_nsec3param_records(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
dns_diffop_t op;
|
||||
isc_boolean_t flag;
|
||||
dns_name_t *name = dns_zone_getorigin(zone);
|
||||
dns_rdatatype_t privatetype = dns_zone_getprivatetype(zone);;
|
||||
dns_rdatatype_t privatetype = dns_zone_getprivatetype(zone);
|
||||
isc_uint32_t ttl = 0;
|
||||
isc_boolean_t ttl_good = ISC_FALSE;
|
||||
|
||||
update_log(client, zone, ISC_LOG_DEBUG(3),
|
||||
"checking for NSEC3PARAM changes");
|
||||
@@ -3132,53 +3133,143 @@ add_nsec3param_records(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
ISC_LIST_APPEND(temp_diff.tuples, tuple, link);
|
||||
}
|
||||
|
||||
/*
|
||||
* Extract TTL changes pairs, we don't need to convert these to
|
||||
* delayed changes.
|
||||
*/
|
||||
for (tuple = ISC_LIST_HEAD(temp_diff.tuples);
|
||||
tuple != NULL; tuple = next) {
|
||||
|
||||
if (tuple->op == DNS_DIFFOP_ADD) {
|
||||
next = ISC_LIST_NEXT(tuple, link);
|
||||
if (!ttl_good) {
|
||||
/*
|
||||
* Any adds here will contain the final
|
||||
* NSEC3PARAM RRset TTL.
|
||||
*/
|
||||
ttl = tuple->ttl;
|
||||
ttl_good = ISC_TRUE;
|
||||
}
|
||||
/*
|
||||
* Walk the temp_diff list looking for the
|
||||
* corresponding delete.
|
||||
*/
|
||||
next = ISC_LIST_HEAD(temp_diff.tuples);
|
||||
while (next != NULL) {
|
||||
unsigned char *next_data = next->rdata.data;
|
||||
unsigned char *tuple_data = tuple->rdata.data;
|
||||
if (next_data[0] != tuple_data[0] ||
|
||||
/* Ignore flags. */
|
||||
if (next->op == DNS_DIFFOP_DEL &&
|
||||
next->rdata.length == tuple->rdata.length &&
|
||||
!memcmp(next_data, tuple_data,
|
||||
next->rdata.length)) {
|
||||
ISC_LIST_UNLINK(temp_diff.tuples, next,
|
||||
link);
|
||||
ISC_LIST_APPEND(diff->tuples, next,
|
||||
link);
|
||||
break;
|
||||
}
|
||||
next = ISC_LIST_NEXT(next, link);
|
||||
}
|
||||
/*
|
||||
* If we have not found a pair move onto the next
|
||||
* tuple.
|
||||
*/
|
||||
if (next == NULL) {
|
||||
next = ISC_LIST_NEXT(tuple, link);
|
||||
continue;
|
||||
}
|
||||
/*
|
||||
* Find the next tuple to be processed before
|
||||
* unlinking then complete moving the pair to 'diff'.
|
||||
*/
|
||||
next = ISC_LIST_NEXT(tuple, link);
|
||||
ISC_LIST_UNLINK(temp_diff.tuples, tuple, link);
|
||||
ISC_LIST_APPEND(diff->tuples, tuple, link);
|
||||
} else
|
||||
next = ISC_LIST_NEXT(tuple, link);
|
||||
}
|
||||
|
||||
/*
|
||||
* Preserve any ongoing changes from a BIND 9.6.x upgrade.
|
||||
*
|
||||
* Any NSEC3PARAM records with flags other than OPTOUT named
|
||||
* in managing and should not be touched so revert such changes
|
||||
* taking into account any TTL change of the NSEC3PARAM RRset.
|
||||
*/
|
||||
for (tuple = ISC_LIST_HEAD(temp_diff.tuples);
|
||||
tuple != NULL; tuple = next) {
|
||||
next = ISC_LIST_NEXT(tuple, link);
|
||||
if ((tuple->rdata.data[1] & ~DNS_NSEC3FLAG_OPTOUT) != 0) {
|
||||
/*
|
||||
* If we havn't had any adds then the tuple->ttl must
|
||||
* be the original ttl and should be used for any
|
||||
* future changes.
|
||||
*/
|
||||
if (!ttl_good) {
|
||||
ttl = tuple->ttl;
|
||||
ttl_good = ISC_TRUE;
|
||||
}
|
||||
op = (tuple->op == DNS_DIFFOP_DEL) ?
|
||||
DNS_DIFFOP_ADD : DNS_DIFFOP_DEL;
|
||||
CHECK(dns_difftuple_create(diff->mctx, op, name,
|
||||
ttl, &tuple->rdata,
|
||||
&newtuple));
|
||||
CHECK(do_one_tuple(&newtuple, db, ver, diff));
|
||||
ISC_LIST_UNLINK(temp_diff.tuples, tuple, link);
|
||||
dns_diff_appendminimal(diff, &tuple);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* We now have just the actual changes to the NSEC3PARAM RRset.
|
||||
* Convert the adds to delayed adds and the deletions into delayed
|
||||
* deletions.
|
||||
*/
|
||||
for (tuple = ISC_LIST_HEAD(temp_diff.tuples);
|
||||
tuple != NULL; tuple = next) {
|
||||
/*
|
||||
* If we havn't had any adds then the tuple->ttl must be the
|
||||
* original ttl and should be used for any future changes.
|
||||
*/
|
||||
if (!ttl_good) {
|
||||
ttl = tuple->ttl;
|
||||
ttl_good = ISC_TRUE;
|
||||
}
|
||||
if (tuple->op == DNS_DIFFOP_ADD) {
|
||||
/*
|
||||
* Look for any deletes which match this ADD ignoring
|
||||
* OPTOUT. We don't need to explictly remove them as
|
||||
* they will be removed a side effect of processing
|
||||
* the add.
|
||||
*/
|
||||
next = ISC_LIST_HEAD(temp_diff.tuples);
|
||||
while (next != NULL) {
|
||||
unsigned char *next_data = next->rdata.data;
|
||||
unsigned char *tuple_data = tuple->rdata.data;
|
||||
if (next->op != DNS_DIFFOP_DEL ||
|
||||
next->rdata.length != tuple->rdata.length ||
|
||||
next_data[0] != tuple_data[0] ||
|
||||
next_data[2] != tuple_data[2] ||
|
||||
next_data[3] != tuple_data[3] ||
|
||||
next_data[4] != tuple_data[4] ||
|
||||
!memcmp(&next_data[5], &tuple_data[5],
|
||||
tuple_data[4])) {
|
||||
memcmp(next_data + 4, tuple_data + 4,
|
||||
tuple->rdata.length - 4)) {
|
||||
next = ISC_LIST_NEXT(next, link);
|
||||
continue;
|
||||
}
|
||||
op = (next->op == DNS_DIFFOP_DEL) ?
|
||||
DNS_DIFFOP_ADD : DNS_DIFFOP_DEL;
|
||||
CHECK(dns_difftuple_create(diff->mctx, op,
|
||||
name, next->ttl,
|
||||
&next->rdata,
|
||||
&newtuple));
|
||||
CHECK(do_one_tuple(&newtuple, db, ver, diff));
|
||||
ISC_LIST_UNLINK(temp_diff.tuples, next, link);
|
||||
dns_diff_appendminimal(diff, &next);
|
||||
next = ISC_LIST_NEXT(tuple, link);
|
||||
ISC_LIST_APPEND(diff->tuples, next, link);
|
||||
next = ISC_LIST_HEAD(temp_diff.tuples);
|
||||
}
|
||||
|
||||
INSIST(tuple->rdata.data[1] & DNS_NSEC3FLAG_UPDATE);
|
||||
|
||||
/*
|
||||
* See if we already have a CREATE request in progress.
|
||||
*/
|
||||
dns_nsec3param_toprivate(&tuple->rdata, &rdata,
|
||||
privatetype, buf, sizeof(buf));
|
||||
buf[2] |= DNS_NSEC3FLAG_CREATE;
|
||||
buf[2] &= ~DNS_NSEC3FLAG_UPDATE;
|
||||
|
||||
CHECK(rr_exists(db, ver, name, &rdata, &flag));
|
||||
|
||||
if (!flag) {
|
||||
CHECK(dns_difftuple_create(diff->mctx,
|
||||
DNS_DIFFOP_ADD,
|
||||
name, tuple->ttl,
|
||||
&rdata,
|
||||
name, 0, &rdata,
|
||||
&newtuple));
|
||||
CHECK(do_one_tuple(&newtuple, db, ver, diff));
|
||||
}
|
||||
@@ -3194,20 +3285,20 @@ add_nsec3param_records(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
if (flag) {
|
||||
CHECK(dns_difftuple_create(diff->mctx,
|
||||
DNS_DIFFOP_DEL,
|
||||
name, tuple->ttl,
|
||||
&rdata,
|
||||
name, 0, &rdata,
|
||||
&newtuple));
|
||||
CHECK(do_one_tuple(&newtuple, db, ver, diff));
|
||||
}
|
||||
|
||||
/*
|
||||
* Remove the temporary add record.
|
||||
* Find the next tuple to be processed and remove the
|
||||
* temporary add record.
|
||||
*/
|
||||
CHECK(dns_difftuple_create(diff->mctx, DNS_DIFFOP_DEL,
|
||||
name, tuple->ttl,
|
||||
&tuple->rdata, &newtuple));
|
||||
CHECK(do_one_tuple(&newtuple, db, ver, diff));
|
||||
next = ISC_LIST_NEXT(tuple, link);
|
||||
CHECK(dns_difftuple_create(diff->mctx, DNS_DIFFOP_DEL,
|
||||
name, ttl, &tuple->rdata,
|
||||
&newtuple));
|
||||
CHECK(do_one_tuple(&newtuple, db, ver, diff));
|
||||
ISC_LIST_UNLINK(temp_diff.tuples, tuple, link);
|
||||
dns_diff_appendminimal(diff, &tuple);
|
||||
dns_rdata_reset(&rdata);
|
||||
@@ -3215,48 +3306,33 @@ add_nsec3param_records(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
next = ISC_LIST_NEXT(tuple, link);
|
||||
}
|
||||
|
||||
/*
|
||||
* Reverse any pending changes.
|
||||
*/
|
||||
for (tuple = ISC_LIST_HEAD(temp_diff.tuples);
|
||||
tuple != NULL; tuple = next) {
|
||||
next = ISC_LIST_NEXT(tuple, link);
|
||||
if ((tuple->rdata.data[1] & ~DNS_NSEC3FLAG_OPTOUT) != 0) {
|
||||
op = (tuple->op == DNS_DIFFOP_DEL) ?
|
||||
DNS_DIFFOP_ADD : DNS_DIFFOP_DEL;
|
||||
CHECK(dns_difftuple_create(diff->mctx, op, name,
|
||||
tuple->ttl, &tuple->rdata,
|
||||
&newtuple));
|
||||
CHECK(do_one_tuple(&newtuple, db, ver, diff));
|
||||
ISC_LIST_UNLINK(temp_diff.tuples, tuple, link);
|
||||
dns_diff_appendminimal(diff, &tuple);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert deletions into delayed deletions.
|
||||
*/
|
||||
for (tuple = ISC_LIST_HEAD(temp_diff.tuples);
|
||||
tuple != NULL; tuple = next) {
|
||||
INSIST(ttl_good);
|
||||
|
||||
next = ISC_LIST_NEXT(tuple, link);
|
||||
/*
|
||||
* See if we already have a REMOVE request in progress.
|
||||
*/
|
||||
dns_nsec3param_toprivate(&tuple->rdata, &rdata,
|
||||
privatetype, buf, sizeof(buf));
|
||||
buf[2] |= DNS_NSEC3FLAG_REMOVE;
|
||||
dns_nsec3param_toprivate(&tuple->rdata, &rdata, privatetype,
|
||||
buf, sizeof(buf));
|
||||
|
||||
buf[2] |= DNS_NSEC3FLAG_REMOVE | DNS_NSEC3FLAG_NONSEC;
|
||||
|
||||
CHECK(rr_exists(db, ver, name, &rdata, &flag));
|
||||
if (!flag) {
|
||||
buf[2] &= ~DNS_NSEC3FLAG_NONSEC;
|
||||
CHECK(rr_exists(db, ver, name, &rdata, &flag));
|
||||
}
|
||||
|
||||
if (!flag) {
|
||||
CHECK(dns_difftuple_create(diff->mctx, DNS_DIFFOP_ADD,
|
||||
name, tuple->ttl, &rdata,
|
||||
&newtuple));
|
||||
name, 0, &rdata, &newtuple));
|
||||
CHECK(do_one_tuple(&newtuple, db, ver, diff));
|
||||
}
|
||||
CHECK(dns_difftuple_create(diff->mctx, DNS_DIFFOP_ADD, name,
|
||||
tuple->ttl, &tuple->rdata,
|
||||
&newtuple));
|
||||
ttl, &tuple->rdata, &newtuple));
|
||||
CHECK(do_one_tuple(&newtuple, db, ver, diff));
|
||||
ISC_LIST_UNLINK(temp_diff.tuples, tuple, link);
|
||||
dns_diff_appendminimal(diff, &tuple);
|
||||
@@ -3435,7 +3511,6 @@ update_action(isc_task_t *task, isc_event_t *event) {
|
||||
unsigned int options;
|
||||
dns_difftuple_t *tuple;
|
||||
dns_rdata_dnskey_t dnskey;
|
||||
unsigned char buf[DNS_NSEC3PARAM_BUFFERSIZE];
|
||||
isc_boolean_t had_dnskey;
|
||||
dns_rdatatype_t privatetype = dns_zone_getprivatetype(zone);
|
||||
|
||||
@@ -3820,19 +3895,6 @@ update_action(isc_task_t *task, isc_event_t *event) {
|
||||
"flag");
|
||||
continue;
|
||||
}
|
||||
|
||||
/*
|
||||
* NSEC3CHAIN creation flag.
|
||||
*/
|
||||
INSIST(rdata.length <= sizeof(buf));
|
||||
memcpy(buf, rdata.data, rdata.length);
|
||||
buf[1] |= DNS_NSEC3FLAG_UPDATE;
|
||||
rdata.data = buf;
|
||||
|
||||
/*
|
||||
* Force the TTL to zero for NSEC3PARAM records.
|
||||
*/
|
||||
ttl = 0;
|
||||
}
|
||||
|
||||
if ((options & DNS_ZONEOPT_CHECKWILDCARD) != 0 &&
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2006, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2006, 2007, 2009, 2011 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: ntservice.c,v 1.14 2009/06/23 23:47:44 tbox Exp $ */
|
||||
/* $Id: ntservice.c,v 1.14.132.2 2011/01/13 22:30:17 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
#include <stdio.h>
|
||||
@@ -70,7 +70,8 @@ int bindmain()
|
||||
while (argv[i]) {
|
||||
if (!strcmp(argv[i], "-f") ||
|
||||
!strcmp(argv[i], "-g") ||
|
||||
!strcmp(argv[i], "-v")) {
|
||||
!strcmp(argv[i], "-v") ||
|
||||
!strcmp(argv[i], "-V")) {
|
||||
foreground = TRUE;
|
||||
break;
|
||||
}
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: xfrout.c,v 1.138 2010/05/27 23:51:08 tbox Exp $ */
|
||||
/* $Id: xfrout.c,v 1.136.132.2 2010/05/27 23:49:54 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
|
||||
+20
-4
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: zoneconf.c,v 1.161 2009/12/04 21:09:32 marka Exp $ */
|
||||
/* $Id: zoneconf.c,v 1.161.4.4 2010/09/15 03:36:41 marka Exp $ */
|
||||
|
||||
/*% */
|
||||
|
||||
@@ -135,8 +135,11 @@ configure_zone_acl(const cfg_obj_t *zconfig, const cfg_obj_t *vconfig,
|
||||
}
|
||||
|
||||
/* Check for default ACLs that haven't been parsed yet */
|
||||
if (vconfig != NULL)
|
||||
maps[i++] = cfg_tuple_get(vconfig, "options");
|
||||
if (vconfig != NULL) {
|
||||
const cfg_obj_t *options = cfg_tuple_get(vconfig, "options");
|
||||
if (options != NULL)
|
||||
maps[i++] = options;
|
||||
}
|
||||
if (config != NULL) {
|
||||
const cfg_obj_t *options = NULL;
|
||||
(void)cfg_map_get(config, "options", &options);
|
||||
@@ -558,6 +561,19 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
if (result == ISC_R_SUCCESS)
|
||||
filename = cfg_obj_asstring(obj);
|
||||
|
||||
/*
|
||||
* Unless we're using some alternative database, a master zone
|
||||
* will be needing a master file.
|
||||
*/
|
||||
if (ztype == dns_zone_master && cpval == default_dbtype &&
|
||||
filename == NULL) {
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_SERVER, ISC_LOG_ERROR,
|
||||
"zone '%s': 'file' not specified",
|
||||
zname);
|
||||
return (ISC_R_FAILURE);
|
||||
}
|
||||
|
||||
masterformat = dns_masterformat_text;
|
||||
obj = NULL;
|
||||
result= ns_config_get(maps, "masterfile-format", &obj);
|
||||
|
||||
+25
-3
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: nsupdate.1,v 1.12 2009/12/17 01:13:46 tbox Exp $
|
||||
.\" $Id: nsupdate.1,v 1.11.42.2 2010/07/10 02:41:30 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -241,6 +241,28 @@ or
|
||||
\fB\-k\fR.
|
||||
.RE
|
||||
.PP
|
||||
\fBgsstsig\fR
|
||||
.RS 4
|
||||
Use GSS\-TSIG to sign the updated. This is equivalent to specifying
|
||||
\fB\-g\fR
|
||||
on the commandline.
|
||||
.RE
|
||||
.PP
|
||||
\fBoldgsstsig\fR
|
||||
.RS 4
|
||||
Use the Windows 2000 version of GSS\-TSIG to sign the updated. This is equivalent to specifying
|
||||
\fB\-o\fR
|
||||
on the commandline.
|
||||
.RE
|
||||
.PP
|
||||
\fBrealm\fR {[realm_name]}
|
||||
.RS 4
|
||||
When using GSS\-TSIG use
|
||||
\fIrealm_name\fR
|
||||
rather than the default realm in
|
||||
\fIkrb5.conf\fR. If no realm is specified the saved realm is cleared.
|
||||
.RE
|
||||
.PP
|
||||
\fBprereq nxdomain\fR {domain\-name}
|
||||
.RS 4
|
||||
Requires that no resource record of any type exists with name
|
||||
@@ -413,7 +435,7 @@ RFC 2931,
|
||||
.PP
|
||||
The TSIG key is redundantly stored in two separate files. This is a consequence of nsupdate using the DST library for its cryptographic operations, and may change in future releases.
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004\-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004\-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
Copyright \(co 2000\-2003 Internet Software Consortium.
|
||||
.br
|
||||
|
||||
+65
-13
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: nsupdate.c,v 1.178 2010/05/18 06:18:23 marka Exp $ */
|
||||
/* $Id: nsupdate.c,v 1.173.66.12 2010/12/09 04:31:30 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -195,6 +195,7 @@ ddebug(const char *format, ...) ISC_FORMAT_PRINTF(1, 2);
|
||||
#ifdef GSSAPI
|
||||
static dns_fixedname_t fkname;
|
||||
static isc_sockaddr_t *kserver = NULL;
|
||||
static char *realm = NULL;
|
||||
static char servicename[DNS_NAME_FORMATSIZE];
|
||||
static dns_name_t *keyname;
|
||||
typedef struct nsu_gssinfo {
|
||||
@@ -487,6 +488,19 @@ parse_hmac(dns_name_t **hmac, const char *hmacstr, size_t len) {
|
||||
return (digestbits);
|
||||
}
|
||||
|
||||
static int
|
||||
basenamelen(const char *file) {
|
||||
int len = strlen(file);
|
||||
|
||||
if (len > 1 && file[len - 1] == '.')
|
||||
len -= 1;
|
||||
else if (len > 8 && strcmp(file + len - 8, ".private") == 0)
|
||||
len -= 8;
|
||||
else if (len > 4 && strcmp(file + len - 4, ".key") == 0)
|
||||
len -= 4;
|
||||
return (len);
|
||||
}
|
||||
|
||||
static void
|
||||
setup_keystr(void) {
|
||||
unsigned char *secret = NULL;
|
||||
@@ -548,7 +562,8 @@ setup_keystr(void) {
|
||||
|
||||
debug("keycreate");
|
||||
result = dns_tsigkey_create(keyname, hmacname, secret, secretlen,
|
||||
ISC_TRUE, NULL, 0, 0, mctx, NULL, &tsigkey);
|
||||
ISC_FALSE, NULL, 0, 0, mctx, NULL,
|
||||
&tsigkey);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fprintf(stderr, "could not create key from %s: %s\n",
|
||||
keystr, dns_result_totext(result));
|
||||
@@ -626,6 +641,9 @@ setup_keyfile(isc_mem_t *mctx, isc_log_t *lctx) {
|
||||
|
||||
debug("Creating key...");
|
||||
|
||||
if (sig0key != NULL)
|
||||
dst_key_free(&sig0key);
|
||||
|
||||
/* Try reading the key from a K* pair */
|
||||
result = dst_key_fromnamedfile(keyfile, NULL,
|
||||
DST_TYPE_PRIVATE | DST_TYPE_KEY, mctx,
|
||||
@@ -639,8 +657,9 @@ setup_keyfile(isc_mem_t *mctx, isc_log_t *lctx) {
|
||||
}
|
||||
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
fprintf(stderr, "could not read key from %s: %s\n",
|
||||
keyfile, isc_result_totext(result));
|
||||
fprintf(stderr, "could not read key from %.*s.{private,key}: "
|
||||
"%s\n", basenamelen(keyfile), keyfile,
|
||||
isc_result_totext(result));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -669,14 +688,14 @@ setup_keyfile(isc_mem_t *mctx, isc_log_t *lctx) {
|
||||
hmacname, dstkey, ISC_FALSE,
|
||||
NULL, 0, 0, mctx, NULL,
|
||||
&tsigkey);
|
||||
dst_key_free(&dstkey);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
fprintf(stderr, "could not create key from %s: %s\n",
|
||||
keyfile, isc_result_totext(result));
|
||||
dst_key_free(&dstkey);
|
||||
return;
|
||||
}
|
||||
} else
|
||||
sig0key = dstkey;
|
||||
dst_key_attach(dstkey, &sig0key);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -885,9 +904,12 @@ setup_system(void) {
|
||||
|
||||
if (keystr != NULL)
|
||||
setup_keystr();
|
||||
else if (local_only)
|
||||
read_sessionkey(mctx, lctx);
|
||||
else if (keyfile != NULL)
|
||||
else if (local_only) {
|
||||
result = read_sessionkey(mctx, lctx);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("can't read key from %s: %s\n",
|
||||
keyfile, isc_result_totext(result));
|
||||
} else if (keyfile != NULL)
|
||||
setup_keyfile(mctx, lctx);
|
||||
}
|
||||
|
||||
@@ -1462,7 +1484,7 @@ evaluate_key(char *cmdline) {
|
||||
if (tsigkey != NULL)
|
||||
dns_tsigkey_detach(&tsigkey);
|
||||
result = dns_tsigkey_create(keyname, hmacname, secret, secretlen,
|
||||
ISC_TRUE, NULL, 0, 0, mctx, NULL,
|
||||
ISC_FALSE, NULL, 0, 0, mctx, NULL,
|
||||
&tsigkey);
|
||||
isc_mem_free(mctx, secret);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
@@ -1500,6 +1522,31 @@ evaluate_zone(char *cmdline) {
|
||||
return (STATUS_MORE);
|
||||
}
|
||||
|
||||
static isc_uint16_t
|
||||
evaluate_realm(char *cmdline) {
|
||||
#ifdef GSSAPI
|
||||
char *word;
|
||||
char buf[1024];
|
||||
|
||||
word = nsu_strsep(&cmdline, " \t\r\n");
|
||||
if (*word == 0) {
|
||||
if (realm != NULL)
|
||||
isc_mem_free(mctx, realm);
|
||||
realm = NULL;
|
||||
return (STATUS_MORE);
|
||||
}
|
||||
|
||||
snprintf(buf, sizeof(buf), "@%s", word);
|
||||
realm = isc_mem_strdup(mctx, buf);
|
||||
if (realm == NULL)
|
||||
fatal("out of memory");
|
||||
return (STATUS_MORE);
|
||||
#else
|
||||
UNUSED(cmdline);
|
||||
return (STATUS_SYNTAX);
|
||||
#endif
|
||||
}
|
||||
|
||||
static isc_uint16_t
|
||||
evaluate_ttl(char *cmdline) {
|
||||
char *word;
|
||||
@@ -1891,6 +1938,8 @@ get_next_command(void) {
|
||||
usegsstsig = ISC_FALSE;
|
||||
return (evaluate_key(cmdline));
|
||||
}
|
||||
if (strcasecmp(word, "realm") == 0)
|
||||
return (evaluate_realm(cmdline));
|
||||
if (strcasecmp(word, "gsstsig") == 0) {
|
||||
#ifdef GSSAPI
|
||||
usegsstsig = ISC_TRUE;
|
||||
@@ -2078,7 +2127,7 @@ send_update(dns_name_t *zonename, isc_sockaddr_t *master,
|
||||
{
|
||||
isc_result_t result;
|
||||
dns_request_t *request = NULL;
|
||||
unsigned int options = DNS_REQUESTOPT_CASE;
|
||||
unsigned int options = 0;
|
||||
|
||||
ddebug("send_update()");
|
||||
|
||||
@@ -2423,7 +2472,7 @@ start_gssrequest(dns_name_t *master)
|
||||
servname = dns_fixedname_name(&fname);
|
||||
|
||||
result = isc_string_printf(servicename, sizeof(servicename),
|
||||
"DNS/%s", namestr);
|
||||
"DNS/%s%s", namestr, realm ? realm : "");
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("isc_string_printf(servicename) failed: %s",
|
||||
isc_result_totext(result));
|
||||
@@ -2461,7 +2510,6 @@ start_gssrequest(dns_name_t *master)
|
||||
isc_result_totext(result));
|
||||
|
||||
/* Build first request. */
|
||||
|
||||
context = GSS_C_NO_CONTEXT;
|
||||
result = dns_tkey_buildgssquery(rmsg, keyname, servname, NULL, 0,
|
||||
&context, use_win2k_gsstsig);
|
||||
@@ -2763,6 +2811,10 @@ cleanup(void) {
|
||||
isc_mem_put(mctx, kserver, sizeof(isc_sockaddr_t));
|
||||
kserver = NULL;
|
||||
}
|
||||
if (realm != NULL) {
|
||||
isc_mem_free(mctx, realm);
|
||||
realm = NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
ddebug("Shutting down task manager");
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: nsupdate.docbook,v 1.42 2009/12/16 07:13:02 each Exp $ -->
|
||||
<!-- $Id: nsupdate.docbook,v 1.41.42.3 2010/07/09 23:46:27 tbox Exp $ -->
|
||||
<refentry id="man.nsupdate">
|
||||
<refentryinfo>
|
||||
<date>Aug 25, 2009</date>
|
||||
@@ -41,6 +41,7 @@
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<year>2009</year>
|
||||
<year>2010</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -382,6 +383,45 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>gsstsig</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Use GSS-TSIG to sign the updated. This is equivalent to
|
||||
specifying <option>-g</option> on the commandline.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>oldgsstsig</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Use the Windows 2000 version of GSS-TSIG to sign the updated.
|
||||
This is equivalent to specifying <option>-o</option> on the
|
||||
commandline.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>realm</command>
|
||||
<arg choice="req"><optional>realm_name</optional></arg>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
When using GSS-TSIG use <parameter>realm_name</parameter> rather
|
||||
than the default realm in <filename>krb5.conf</filename>. If no
|
||||
realm is specified the saved realm is cleared.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>prereq nxdomain</command>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: nsupdate.html,v 1.49 2009/12/17 01:13:46 tbox Exp $ -->
|
||||
<!-- $Id: nsupdate.html,v 1.48.42.2 2010/07/10 02:41:30 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -32,7 +32,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">nsupdate</code> [<code class="option">-d</code>] [<code class="option">-D</code>] [[<code class="option">-g</code>] | [<code class="option">-o</code>] | [<code class="option">-l</code>] | [<code class="option">-y <em class="replaceable"><code>[<span class="optional">hmac:</span>]keyname:secret</code></em></code>] | [<code class="option">-k <em class="replaceable"><code>keyfile</code></em></code>]] [<code class="option">-t <em class="replaceable"><code>timeout</code></em></code>] [<code class="option">-u <em class="replaceable"><code>udptimeout</code></em></code>] [<code class="option">-r <em class="replaceable"><code>udpretries</code></em></code>] [<code class="option">-R <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-v</code>] [filename]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543453"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543457"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">nsupdate</strong></span>
|
||||
is used to submit Dynamic DNS Update requests as defined in RFC 2136
|
||||
to a name server.
|
||||
@@ -192,7 +192,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543785"></a><h2>INPUT FORMAT</h2>
|
||||
<a name="id2543788"></a><h2>INPUT FORMAT</h2>
|
||||
<p><span><strong class="command">nsupdate</strong></span>
|
||||
reads input from
|
||||
<em class="parameter"><code>filename</code></em>
|
||||
@@ -306,6 +306,30 @@
|
||||
overrides any key specified on the command line via
|
||||
<code class="option">-y</code> or <code class="option">-k</code>.
|
||||
</p></dd>
|
||||
<dt><span class="term">
|
||||
<span><strong class="command">gsstsig</strong></span>
|
||||
</span></dt>
|
||||
<dd><p>
|
||||
Use GSS-TSIG to sign the updated. This is equivalent to
|
||||
specifying <code class="option">-g</code> on the commandline.
|
||||
</p></dd>
|
||||
<dt><span class="term">
|
||||
<span><strong class="command">oldgsstsig</strong></span>
|
||||
</span></dt>
|
||||
<dd><p>
|
||||
Use the Windows 2000 version of GSS-TSIG to sign the updated.
|
||||
This is equivalent to specifying <code class="option">-o</code> on the
|
||||
commandline.
|
||||
</p></dd>
|
||||
<dt><span class="term">
|
||||
<span><strong class="command">realm</strong></span>
|
||||
{[<span class="optional">realm_name</span>]}
|
||||
</span></dt>
|
||||
<dd><p>
|
||||
When using GSS-TSIG use <em class="parameter"><code>realm_name</code></em> rather
|
||||
than the default realm in <code class="filename">krb5.conf</code>. If no
|
||||
realm is specified the saved realm is cleared.
|
||||
</p></dd>
|
||||
<dt><span class="term">
|
||||
<span><strong class="command">prereq nxdomain</strong></span>
|
||||
{domain-name}
|
||||
@@ -456,7 +480,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544626"></a><h2>EXAMPLES</h2>
|
||||
<a name="id2544700"></a><h2>EXAMPLES</h2>
|
||||
<p>
|
||||
The examples below show how
|
||||
<span><strong class="command">nsupdate</strong></span>
|
||||
@@ -510,7 +534,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544669"></a><h2>FILES</h2>
|
||||
<a name="id2544744"></a><h2>FILES</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term"><code class="constant">/etc/resolv.conf</code></span></dt>
|
||||
<dd><p>
|
||||
@@ -533,7 +557,7 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544753"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2544827"></a><h2>SEE ALSO</h2>
|
||||
<p>
|
||||
<em class="citetitle">RFC 2136</em>,
|
||||
<em class="citetitle">RFC 3007</em>,
|
||||
@@ -548,7 +572,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2542148"></a><h2>BUGS</h2>
|
||||
<a name="id2542154"></a><h2>BUGS</h2>
|
||||
<p>
|
||||
The TSIG key is redundantly stored in two separate files.
|
||||
This is a consequence of nsupdate using the DST library
|
||||
|
||||
@@ -150,7 +150,7 @@ diff -u openssl/Makefile.org:1.1.3.1 openssl/Makefile.org:1.3
|
||||
|
||||
Index: openssl/README.pkcs11
|
||||
diff -u /dev/null openssl/README.pkcs11:1.6
|
||||
--- /dev/null Thu Dec 24 13:00:42 2009
|
||||
--- /dev/null Mon Oct 5 13:17:23 2009
|
||||
+++ openssl/README.pkcs11 Mon Oct 5 13:16:50 2009
|
||||
@@ -0,0 +1,247 @@
|
||||
+ISC modified
|
||||
@@ -471,19 +471,6 @@ diff -u openssl/crypto/opensslconf.h:1.1.3.1 openssl/crypto/opensslconf.h:1.5
|
||||
#endif
|
||||
|
||||
/* These default values were supplied by
|
||||
Index: openssl/crypto/bio/bss_file.c
|
||||
diff -u openssl/crypto/bio/bss_file.c:1.1.3.1 openssl/crypto/bio/bss_file.c:1.4
|
||||
--- openssl/crypto/bio/bss_file.c:1.1.3.1 Tue Dec 30 13:30:55 2008
|
||||
+++ openssl/crypto/bio/bss_file.c Fri Nov 27 12:32:32 2009
|
||||
@@ -125,7 +125,7 @@
|
||||
{
|
||||
SYSerr(SYS_F_FOPEN,get_last_sys_error());
|
||||
ERR_add_error_data(5,"fopen('",filename,"','",mode,"')");
|
||||
- if (errno == ENOENT)
|
||||
+ if ((errno == ENOENT) || ((*mode == 'r') && (errno == EACCES)))
|
||||
BIOerr(BIO_F_BIO_NEW_FILE,BIO_R_NO_SUCH_FILE);
|
||||
else
|
||||
BIOerr(BIO_F_BIO_NEW_FILE,ERR_R_SYS_LIB);
|
||||
Index: openssl/crypto/engine/Makefile
|
||||
diff -u openssl/crypto/engine/Makefile:1.1.3.1 openssl/crypto/engine/Makefile:1.5
|
||||
--- openssl/crypto/engine/Makefile:1.1.3.1 Wed Sep 17 17:10:59 2008
|
||||
@@ -610,7 +597,7 @@ diff -u openssl/crypto/engine/Makefile:1.1.3.1 openssl/crypto/engine/Makefile:1.
|
||||
tb_cipher.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
Index: openssl/crypto/engine/cryptoki.h
|
||||
diff -u /dev/null openssl/crypto/engine/cryptoki.h:1.4
|
||||
--- /dev/null Thu Dec 24 13:00:45 2009
|
||||
--- /dev/null Mon Oct 5 13:17:24 2009
|
||||
+++ openssl/crypto/engine/cryptoki.h Thu Dec 18 00:14:12 2008
|
||||
@@ -0,0 +1,103 @@
|
||||
+/*
|
||||
@@ -770,7 +757,7 @@ diff -u openssl/crypto/engine/engine.h:1.1.3.1 openssl/crypto/engine/engine.h:1.
|
||||
#ifndef OPENSSL_NO_CAPIENG
|
||||
Index: openssl/crypto/engine/hw_pk11.c
|
||||
diff -u /dev/null openssl/crypto/engine/hw_pk11.c:1.26
|
||||
--- /dev/null Thu Dec 24 13:00:45 2009
|
||||
--- /dev/null Mon Oct 5 13:17:24 2009
|
||||
+++ openssl/crypto/engine/hw_pk11.c Mon Oct 5 13:16:50 2009
|
||||
@@ -0,0 +1,3927 @@
|
||||
+/*
|
||||
@@ -4702,7 +4689,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11.c:1.26
|
||||
+#endif /* OPENSSL_NO_HW */
|
||||
Index: openssl/crypto/engine/hw_pk11_err.c
|
||||
diff -u /dev/null openssl/crypto/engine/hw_pk11_err.c:1.4
|
||||
--- /dev/null Thu Dec 24 13:00:45 2009
|
||||
--- /dev/null Mon Oct 5 13:17:24 2009
|
||||
+++ openssl/crypto/engine/hw_pk11_err.c Wed Dec 17 16:14:26 2008
|
||||
@@ -0,0 +1,259 @@
|
||||
+/*
|
||||
@@ -4966,7 +4953,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11_err.c:1.4
|
||||
+}
|
||||
Index: openssl/crypto/engine/hw_pk11_err.h
|
||||
diff -u /dev/null openssl/crypto/engine/hw_pk11_err.h:1.9
|
||||
--- /dev/null Thu Dec 24 13:00:45 2009
|
||||
--- /dev/null Mon Oct 5 13:17:24 2009
|
||||
+++ openssl/crypto/engine/hw_pk11_err.h Wed Dec 17 15:01:45 2008
|
||||
@@ -0,0 +1,402 @@
|
||||
+/*
|
||||
@@ -5373,7 +5360,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11_err.h:1.9
|
||||
+#endif /* HW_PK11_ERR_H */
|
||||
Index: openssl/crypto/engine/hw_pk11_pub.c
|
||||
diff -u /dev/null openssl/crypto/engine/hw_pk11_pub.c:1.32
|
||||
--- /dev/null Thu Dec 24 13:00:45 2009
|
||||
--- /dev/null Mon Oct 5 13:17:24 2009
|
||||
+++ openssl/crypto/engine/hw_pk11_pub.c Mon Oct 5 13:16:55 2009
|
||||
@@ -0,0 +1,3140 @@
|
||||
+/*
|
||||
@@ -8518,7 +8505,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11_pub.c:1.32
|
||||
+#endif /* OPENSSL_NO_HW */
|
||||
Index: openssl/crypto/engine/hw_pk11ca.h
|
||||
diff -u /dev/null openssl/crypto/engine/hw_pk11ca.h:1.2
|
||||
--- /dev/null Thu Dec 24 13:00:45 2009
|
||||
--- /dev/null Mon Oct 5 13:17:24 2009
|
||||
+++ openssl/crypto/engine/hw_pk11ca.h Mon Oct 5 13:17:03 2009
|
||||
@@ -0,0 +1,28 @@
|
||||
+/* Redefine all pk11/PK11 external symbols to pk11ca/PK11CA */
|
||||
@@ -8551,7 +8538,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11ca.h:1.2
|
||||
+#define ENGINE_load_pk11 ENGINE_load_pk11ca
|
||||
Index: openssl/crypto/engine/hw_pk11so.c
|
||||
diff -u /dev/null openssl/crypto/engine/hw_pk11so.c:1.2
|
||||
--- /dev/null Thu Dec 24 13:00:46 2009
|
||||
--- /dev/null Mon Oct 5 13:17:24 2009
|
||||
+++ openssl/crypto/engine/hw_pk11so.c Mon Oct 5 13:17:03 2009
|
||||
@@ -0,0 +1,1618 @@
|
||||
+/*
|
||||
@@ -10174,7 +10161,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11so.c:1.2
|
||||
+#endif /* OPENSSL_NO_HW */
|
||||
Index: openssl/crypto/engine/hw_pk11so.h
|
||||
diff -u /dev/null openssl/crypto/engine/hw_pk11so.h:1.2
|
||||
--- /dev/null Thu Dec 24 13:00:46 2009
|
||||
--- /dev/null Mon Oct 5 13:17:24 2009
|
||||
+++ openssl/crypto/engine/hw_pk11so.h Mon Oct 5 13:17:03 2009
|
||||
@@ -0,0 +1,28 @@
|
||||
+/* Redefine all pk11/PK11 external symbols to pk11so/PK11SO */
|
||||
@@ -10207,7 +10194,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11so.h:1.2
|
||||
+#define ENGINE_load_pk11 ENGINE_load_pk11so
|
||||
Index: openssl/crypto/engine/hw_pk11so_pub.c
|
||||
diff -u /dev/null openssl/crypto/engine/hw_pk11so_pub.c:1.2
|
||||
--- /dev/null Thu Dec 24 13:00:46 2009
|
||||
--- /dev/null Mon Oct 5 13:17:24 2009
|
||||
+++ openssl/crypto/engine/hw_pk11so_pub.c Mon Oct 5 13:17:03 2009
|
||||
@@ -0,0 +1,899 @@
|
||||
+/*
|
||||
@@ -11111,11 +11098,11 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11so_pub.c:1.2
|
||||
+#endif /* OPENSSL_NO_HW */
|
||||
Index: openssl/crypto/engine/pkcs11.h
|
||||
diff -u /dev/null openssl/crypto/engine/pkcs11.h:1.1.1.1
|
||||
--- /dev/null Thu Dec 24 13:00:46 2009
|
||||
--- /dev/null Mon Oct 5 13:17:24 2009
|
||||
+++ openssl/crypto/engine/pkcs11.h Wed Oct 24 23:27:09 2007
|
||||
@@ -0,0 +1,299 @@
|
||||
+/* pkcs11.h include file for PKCS #11. */
|
||||
+/* $Revision: 1.2 $ */
|
||||
+/* $Revision: 1.1 $ */
|
||||
+
|
||||
+/* License to copy and use this software is granted provided that it is
|
||||
+ * identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface
|
||||
@@ -11415,11 +11402,11 @@ diff -u /dev/null openssl/crypto/engine/pkcs11.h:1.1.1.1
|
||||
+#endif
|
||||
Index: openssl/crypto/engine/pkcs11f.h
|
||||
diff -u /dev/null openssl/crypto/engine/pkcs11f.h:1.1.1.1
|
||||
--- /dev/null Thu Dec 24 13:00:46 2009
|
||||
--- /dev/null Mon Oct 5 13:17:24 2009
|
||||
+++ openssl/crypto/engine/pkcs11f.h Wed Oct 24 23:27:09 2007
|
||||
@@ -0,0 +1,912 @@
|
||||
+/* pkcs11f.h include file for PKCS #11. */
|
||||
+/* $Revision: 1.2 $ */
|
||||
+/* $Revision: 1.1 $ */
|
||||
+
|
||||
+/* License to copy and use this software is granted provided that it is
|
||||
+ * identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface
|
||||
@@ -12332,11 +12319,11 @@ diff -u /dev/null openssl/crypto/engine/pkcs11f.h:1.1.1.1
|
||||
+#endif
|
||||
Index: openssl/crypto/engine/pkcs11t.h
|
||||
diff -u /dev/null openssl/crypto/engine/pkcs11t.h:1.2
|
||||
--- /dev/null Thu Dec 24 13:00:46 2009
|
||||
--- /dev/null Mon Oct 5 13:17:24 2009
|
||||
+++ openssl/crypto/engine/pkcs11t.h Sat Aug 30 11:58:07 2008
|
||||
@@ -0,0 +1,1885 @@
|
||||
+/* pkcs11t.h include file for PKCS #11. */
|
||||
+/* $Revision: 1.2 $ */
|
||||
+/* $Revision: 1.1 $ */
|
||||
+
|
||||
+/* License to copy and use this software is granted provided that it is
|
||||
+ * identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/* $Id: pkcs11-destroy.c,v 1.8 2010/01/13 21:19:52 fdupont Exp $ */
|
||||
/* $Id: pkcs11-destroy.c,v 1.7.36.1 2010/01/13 21:21:33 fdupont Exp $ */
|
||||
|
||||
/* pkcs11-destroy [-m module] [-s $slot] [-i $id | -l $label] [-p $pin] */
|
||||
|
||||
|
||||
+10
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: rndc.c,v 1.127 2009/12/18 07:59:43 each Exp $ */
|
||||
/* $Id: rndc.c,v 1.126.66.5 2010/12/10 20:08:07 johnd Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -119,10 +119,14 @@ command is one of the following:\n\
|
||||
reconfig Reload configuration file and new zones only.\n\
|
||||
sign zone [class [view]]\n\
|
||||
Update zone keys, and sign as needed.\n\
|
||||
loadkeys zone [class [view]]\n\
|
||||
Update keys without signing immediately.\n\
|
||||
stats Write server statistics to the statistics file.\n\
|
||||
querylog Toggle query logging.\n\
|
||||
dumpdb [-all|-cache|-zones] [view ...]\n\
|
||||
Dump cache(s) to the dump file (named_dump.db).\n\
|
||||
secroots [view ...]\n\
|
||||
Write security roots to the secroots file.\n\
|
||||
stop Save pending updates to master files and stop the server.\n\
|
||||
stop -p Save pending updates to master files and stop the server\n\
|
||||
reporting process id.\n\
|
||||
@@ -141,6 +145,10 @@ command is one of the following:\n\
|
||||
validation newstate [view]\n\
|
||||
Enable / disable DNSSEC validation.\n\
|
||||
*restart Restart the server.\n\
|
||||
addzone [\"file\"] zone [class [view]] { zone-options }\n\
|
||||
Add zone to given view. Requires new-zone-file option.\n\
|
||||
delzone [\"file\"] zone [class [view]]\n\
|
||||
Removes zone from given view. Requires new-zone-file option.\n\
|
||||
\n\
|
||||
* == not yet implemented\n\
|
||||
Version: %s\n",
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.141 2010/01/13 23:48:59 tbox Exp $
|
||||
# $Id: Makefile.in,v 1.138.2.2 2010/09/29 23:46:41 tbox Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
@@ -41,7 +41,7 @@ LWRESDEPLIBS = ../../lib/lwres/liblwres.@A@
|
||||
|
||||
LIBS = @LIBS@
|
||||
|
||||
SUBDIRS = db dst master mem names net rbt sockaddr tasks timers system
|
||||
SUBDIRS = db dst master mem hashes names net rbt sockaddr tasks timers system
|
||||
|
||||
# Test programs that are built by default:
|
||||
# cfg_test is needed for regenerating doc/misc/options
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: cfg_test.c,v 1.23 2010/01/11 23:48:37 tbox Exp $ */
|
||||
/* $Id: cfg_test.c,v 1.21.154.1 2010/01/13 19:31:52 each Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004, 2007, 2009, 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -13,7 +13,7 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.32 2009/12/05 23:31:40 each Exp $
|
||||
# $Id: Makefile.in,v 1.32.2.2 2010/08/13 23:46:27 tbox Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
@@ -28,13 +28,15 @@ CWARNINGS =
|
||||
|
||||
DNSLIBS = ../../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
|
||||
ISCLIBS = ../../../lib/isc/libisc.@A@
|
||||
ISCCFGLIBS = ../../../lib/isccfg/libisccfg.@A@
|
||||
|
||||
DNSDEPLIBS = ../../../lib/dns/libdns.@A@
|
||||
ISCDEPLIBS = ../../../lib/isc/libisc.@A@
|
||||
ISCCFGDEPLIBS = ../../../lib/isccfg/libisccfg.@A@
|
||||
|
||||
DEPLIBS = ${DNSDEPLIBS} ${ISCDEPLIBS}
|
||||
DEPLIBS = ${DNSDEPLIBS} ${ISCCFGDEPLIBS} ${ISCDEPLIBS}
|
||||
|
||||
LIBS = ${DNSLIBS} ${ISCLIBS} @LIBS@
|
||||
LIBS = ${DNSLIBS} ${ISCCFGLIBS} ${ISCLIBS} @LIBS@
|
||||
|
||||
TLIB = ../../../lib/tests/libt_api.@A@
|
||||
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
# Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
# copyright notice and this permission notice appear in all copies.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.2.2.3 2010/09/29 23:46:44 tbox Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
@BIND9_MAKE_INCLUDES@
|
||||
|
||||
CINCLUDES = ${TEST_INCLUDES} ${ISC_INCLUDES}
|
||||
|
||||
CDEFINES =
|
||||
CWARNINGS =
|
||||
|
||||
ISCLIBS = ../../../lib/isc/libisc.@A@ @DNS_CRYPTO_LIBS@
|
||||
|
||||
ISCDEPLIBS = ../../../lib/isc/libisc.@A@
|
||||
|
||||
DEPLIBS = ${ISCDEPLIBS}
|
||||
|
||||
LIBS = ${ISCLIBS} @LIBS@
|
||||
|
||||
TLIB = ../../../lib/tests/libt_api.@A@
|
||||
|
||||
TARGETS = t_hashes@EXEEXT@
|
||||
|
||||
SRCS = t_hashes.c
|
||||
|
||||
@BIND9_MAKE_RULES@
|
||||
|
||||
t_hashes@EXEEXT@: t_hashes.@O@ ${DEPLIBS} ${TLIB}
|
||||
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ t_hashes.@O@ ${TLIB} ${LIBS}
|
||||
|
||||
test: t_hashes@EXEEXT@
|
||||
-@./t_hashes@EXEEXT@ -c @top_srcdir@/t_config -b @srcdir@ -q 60 -a
|
||||
|
||||
testhelp:
|
||||
@./t_hashes@EXEEXT@ -h
|
||||
|
||||
clean distclean::
|
||||
rm -f ${TARGETS}
|
||||
@@ -0,0 +1,467 @@
|
||||
/*
|
||||
* Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: t_hashes.c,v 1.2.2.5 2010/10/04 22:25:25 marka Exp $ */
|
||||
|
||||
/*
|
||||
* -d1 or larger shows hash or HMAC result even if correct
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isc/hmacmd5.h>
|
||||
#include <isc/hmacsha.h>
|
||||
#include <isc/md5.h>
|
||||
#include <isc/print.h>
|
||||
#include <isc/sha1.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <tests/t_api.h>
|
||||
|
||||
|
||||
static int nprobs;
|
||||
|
||||
typedef void(*HASH_INIT)(void *);
|
||||
typedef void(*HMAC_INIT)(void *, const unsigned char *, unsigned int);
|
||||
typedef void(*UPDATE)(void *, const unsigned char *, unsigned int);
|
||||
typedef void(*FINAL)(void *, const unsigned char *);
|
||||
typedef void(*SIGN)(void *, const unsigned char *, unsigned int);
|
||||
|
||||
typedef struct {
|
||||
const char *name;
|
||||
const unsigned char *key;
|
||||
const unsigned int key_len;
|
||||
const unsigned char *str;
|
||||
const unsigned int str_len;
|
||||
} IN;
|
||||
#define STR_INIT(s) (const unsigned char *)(s), sizeof(s)-1
|
||||
|
||||
|
||||
union {
|
||||
unsigned char b[1024];
|
||||
unsigned char md5[16];
|
||||
unsigned char sha1[ISC_SHA1_DIGESTLENGTH];
|
||||
unsigned char sha224[ISC_SHA224_DIGESTLENGTH];
|
||||
unsigned char sha256[ISC_SHA256_DIGESTLENGTH];
|
||||
unsigned char sha384[ISC_SHA384_DIGESTLENGTH];
|
||||
unsigned char sha512[ISC_SHA512_DIGESTLENGTH];
|
||||
} dbuf;
|
||||
#define DIGEST_FILL 0xdf
|
||||
|
||||
typedef struct {
|
||||
const char *str;
|
||||
const unsigned int digest_len;
|
||||
} OUT;
|
||||
|
||||
|
||||
/*
|
||||
* two ad hoc hash examples
|
||||
*/
|
||||
static IN abc = { "\"abc\"", NULL, 0, STR_INIT("abc")};
|
||||
static OUT abc_sha1 = {
|
||||
"a9993e364706816aba3e25717850c26c9cd0d89d",
|
||||
ISC_SHA1_DIGESTLENGTH};
|
||||
static OUT abc_sha224 = {
|
||||
"23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7",
|
||||
ISC_SHA224_DIGESTLENGTH};
|
||||
static OUT abc_md5 = {
|
||||
"900150983cd24fb0d6963f7d28e17f72",
|
||||
16};
|
||||
|
||||
static IN abc_blah = { "\"abcdbc...\"", NULL, 0,
|
||||
STR_INIT("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq")};
|
||||
static OUT abc_blah_sha1 = {
|
||||
"84983e441c3bd26ebaae4aa1f95129e5e54670f1",
|
||||
ISC_SHA1_DIGESTLENGTH};
|
||||
static OUT abc_blah_sha224 = {
|
||||
"75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525",
|
||||
ISC_SHA224_DIGESTLENGTH};
|
||||
static OUT abc_blah_md5 = {
|
||||
"8215ef0796a20bcaaae116d3876c664a",
|
||||
16};
|
||||
|
||||
/*
|
||||
* three HMAC-md5 examples from RFC 2104
|
||||
*/
|
||||
static const unsigned char rfc2104_1_key[16] = {
|
||||
0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
|
||||
0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b};
|
||||
static IN rfc2104_1 = {"RFC 2104 #1", rfc2104_1_key, sizeof(rfc2104_1_key),
|
||||
STR_INIT("Hi There")};
|
||||
static OUT rfc2104_1_hmac = {
|
||||
"9294727a3638bb1c13f48ef8158bfc9d",
|
||||
16};
|
||||
|
||||
static IN rfc2104_2 = {"RFC 2104 #2", STR_INIT("Jefe"),
|
||||
STR_INIT("what do ya want for nothing?")};
|
||||
static OUT rfc2104_2_hmac = {
|
||||
"750c783e6ab0b503eaa86e310a5db738",
|
||||
16};
|
||||
|
||||
static const unsigned char rfc2104_3_key[16] = {
|
||||
0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
|
||||
0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA};
|
||||
static const unsigned char rfc2104_3_s[50] = {
|
||||
0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
|
||||
0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
|
||||
0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
|
||||
0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
|
||||
0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
|
||||
0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
|
||||
0xDD, 0xDD};
|
||||
static IN rfc2104_3 = {"RFC 2104 #3", rfc2104_3_key, sizeof(rfc2104_3_key),
|
||||
rfc2104_3_s, sizeof(rfc2104_3_s)};
|
||||
static OUT rfc2104_3_hmac = {
|
||||
"56be34521d144c88dbb8c733f0e8b3f6",
|
||||
16};
|
||||
|
||||
/*
|
||||
* four three HMAC-SHA tests cut-and-pasted from RFC 4634 starting on page 86
|
||||
*/
|
||||
static const unsigned char rfc4634_1_key[20] = {
|
||||
0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
|
||||
0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b
|
||||
};
|
||||
static IN rfc4634_1 = {"RFC 4634 #1", rfc4634_1_key, sizeof(rfc4634_1_key),
|
||||
STR_INIT("Hi There")};
|
||||
static OUT rfc4634_1_sha1 = {
|
||||
"B617318655057264E28BC0B6FB378C8EF146BE00",
|
||||
ISC_SHA1_DIGESTLENGTH};
|
||||
static OUT rfc4634_1_sha224 = {
|
||||
"896FB1128ABBDF196832107CD49DF33F47B4B1169912BA4F53684B22",
|
||||
ISC_SHA224_DIGESTLENGTH};
|
||||
static OUT rfc4634_1_sha256 = {
|
||||
"B0344C61D8DB38535CA8AFCEAF0BF12B881DC200C9833DA726E9376C2E32"
|
||||
"CFF7",
|
||||
ISC_SHA256_DIGESTLENGTH};
|
||||
static OUT rfc4634_1_sha384 = {
|
||||
"AFD03944D84895626B0825F4AB46907F15F9DADBE4101EC682AA034C7CEB"
|
||||
"C59CFAEA9EA9076EDE7F4AF152E8B2FA9CB6",
|
||||
ISC_SHA384_DIGESTLENGTH};
|
||||
static OUT rfc4634_1_sha512 = {
|
||||
"87AA7CDEA5EF619D4FF0B4241A1D6CB02379F4E2CE4EC2787AD0B30545E1"
|
||||
"7CDEDAA833B7D6B8A702038B274EAEA3F4E4BE9D914EEB61F1702E696C20"
|
||||
"3A126854",
|
||||
ISC_SHA512_DIGESTLENGTH};
|
||||
|
||||
static IN rfc4634_2 = {"RFC 4634 #2", STR_INIT("Jefe"),
|
||||
STR_INIT("what do ya want for nothing?")};
|
||||
static OUT rfc4634_2_sha1 = {
|
||||
"EFFCDF6AE5EB2FA2D27416D5F184DF9C259A7C79",
|
||||
ISC_SHA1_DIGESTLENGTH};
|
||||
static OUT rfc4634_2_sha224 = {
|
||||
"A30E01098BC6DBBF45690F3A7E9E6D0F8BBEA2A39E6148008FD05E44",
|
||||
ISC_SHA224_DIGESTLENGTH};
|
||||
static OUT rfc4634_2_sha256 = {
|
||||
"5BDCC146BF60754E6A042426089575C75A003F089D2739839DEC58B964EC"
|
||||
"3843",
|
||||
ISC_SHA256_DIGESTLENGTH};
|
||||
static OUT rfc4634_2_sha384 = {
|
||||
"AF45D2E376484031617F78D2B58A6B1B9C7EF464F5A01B47E42EC3736322"
|
||||
"445E8E2240CA5E69E2C78B3239ECFAB21649",
|
||||
ISC_SHA384_DIGESTLENGTH};
|
||||
static OUT rfc4634_2_sha512 = {
|
||||
"164B7A7BFCF819E2E395FBE73B56E0A387BD64222E831FD610270CD7EA25"
|
||||
"05549758BF75C05A994A6D034F65F8F0E6FDCAEAB1A34D4A6B4B636E070A"
|
||||
"38BCE737",
|
||||
ISC_SHA512_DIGESTLENGTH};
|
||||
|
||||
static const unsigned char rfc4634_3_key[20] = {
|
||||
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa
|
||||
};
|
||||
static const unsigned char rfc4634_3_s[50] = {
|
||||
0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
|
||||
0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
|
||||
0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
|
||||
0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
|
||||
0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd
|
||||
};
|
||||
static IN rfc4634_3 = {"RFC 4634 #3", rfc4634_3_key, sizeof(rfc4634_3_key),
|
||||
rfc4634_3_s, sizeof(rfc4634_3_s)};
|
||||
static OUT rfc4634_3_sha1 = {
|
||||
"125D7342B9AC11CD91A39AF48AA17B4F63F175D3",
|
||||
ISC_SHA1_DIGESTLENGTH};
|
||||
static OUT rfc4634_3_sha224 = {
|
||||
"7FB3CB3588C6C1F6FFA9694D7D6AD2649365B0C1F65D69D1EC8333EA",
|
||||
ISC_SHA224_DIGESTLENGTH};
|
||||
static OUT rfc4634_3_sha256 = {
|
||||
"773EA91E36800E46854DB8EBD09181A72959098B3EF8C122D9635514CED5"
|
||||
"65FE",
|
||||
ISC_SHA256_DIGESTLENGTH};
|
||||
static OUT rfc4634_3_sha384 = {
|
||||
"88062608D3E6AD8A0AA2ACE014C8A86F0AA635D947AC9FEBE83EF4E55966"
|
||||
"144B2A5AB39DC13814B94E3AB6E101A34F27",
|
||||
ISC_SHA384_DIGESTLENGTH};
|
||||
static OUT rfc4634_3_sha512 = {
|
||||
"FA73B0089D56A284EFB0F0756C890BE9B1B5DBDD8EE81A3655F83E33B227"
|
||||
"9D39BF3E848279A722C806B485A47E67C807B946A337BEE8942674278859"
|
||||
"E13292FB",
|
||||
ISC_SHA512_DIGESTLENGTH};
|
||||
|
||||
static const unsigned char rfc4634_4_key[25] = {
|
||||
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a,
|
||||
0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14,
|
||||
0x15, 0x16, 0x17, 0x18, 0x19
|
||||
};
|
||||
static const unsigned char rfc4634_4_s[50] = {
|
||||
0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
|
||||
0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
|
||||
0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
|
||||
0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
|
||||
0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd
|
||||
};
|
||||
static IN rfc4634_4 = {"RFC 4634 #3", rfc4634_4_key, sizeof(rfc4634_4_key),
|
||||
rfc4634_4_s, sizeof(rfc4634_4_s)};
|
||||
static OUT rfc4634_4_sha1 = {
|
||||
"4C9007F4026250C6BC8414F9BF50C86C2D7235DA",
|
||||
ISC_SHA1_DIGESTLENGTH};
|
||||
static OUT rfc4634_4_sha224 = {
|
||||
"6C11506874013CAC6A2ABC1BB382627CEC6A90D86EFC012DE7AFEC5A",
|
||||
ISC_SHA224_DIGESTLENGTH};
|
||||
static OUT rfc4634_4_sha256 = {
|
||||
"82558A389A443C0EA4CC819899F2083A85F0FAA3E578F8077A2E3FF46729"
|
||||
"665B",
|
||||
ISC_SHA256_DIGESTLENGTH};
|
||||
static OUT rfc4634_4_sha384 = {
|
||||
"3E8A69B7783C25851933AB6290AF6CA77A9981480850009CC5577C6E1F57"
|
||||
"3B4E6801DD23C4A7D679CCF8A386C674CFFB",
|
||||
ISC_SHA384_DIGESTLENGTH};
|
||||
static OUT rfc4634_4_sha512 = {
|
||||
"B0BA465637458C6990E5A8C5F61D4AF7E576D97FF94B872DE76F8050361E"
|
||||
"E3DBA91CA5C11AA25EB4D679275CC5788063A5F19741120C4F2DE2ADEBEB"
|
||||
"10A298DD",
|
||||
ISC_SHA512_DIGESTLENGTH};
|
||||
|
||||
|
||||
|
||||
static const char *
|
||||
d2str(char *buf, unsigned int buf_len,
|
||||
const unsigned char *d, unsigned int d_len)
|
||||
{
|
||||
unsigned int i, l;
|
||||
|
||||
l = 0;
|
||||
for (i = 0; i < d_len && l < buf_len-4; ++i) {
|
||||
l += snprintf(&buf[l], buf_len-l, "%02x", d[i]);
|
||||
}
|
||||
if (l >= buf_len-3) {
|
||||
REQUIRE(buf_len > sizeof("..."));
|
||||
strcpy(&buf[l-sizeof(" ...")], " ...");
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Compare binary digest or HMAC to string of hex digits from an RFC
|
||||
*/
|
||||
static void
|
||||
ck(const char *name, const IN *in, const OUT *out)
|
||||
{
|
||||
char buf[sizeof(dbuf)*2+1];
|
||||
const char *str_name;
|
||||
unsigned int l;
|
||||
|
||||
d2str(buf, sizeof(buf), dbuf.b, out->digest_len);
|
||||
str_name = in->name != NULL ? in->name : (const char *)in->str;
|
||||
|
||||
if (T_debug != 0)
|
||||
t_info("%s(%s) = %s\n", name, str_name, buf);
|
||||
|
||||
if (strcasecmp(buf, out->str)) {
|
||||
t_info("%s(%s)\n%9s %s\n%9s %s\n",
|
||||
name, str_name,
|
||||
"is", buf,
|
||||
"should be", out->str);
|
||||
++nprobs;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* check that the hash or HMAC is no longer than we think it is
|
||||
*/
|
||||
for (l = out->digest_len; l < sizeof(dbuf); ++l) {
|
||||
if (dbuf.b[l] != DIGEST_FILL) {
|
||||
t_info("byte #%d after end of %s(%s) changed to %02x\n",
|
||||
l-out->digest_len, name, str_name, dbuf.b[l]);
|
||||
++nprobs;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
t_hash(const char *hname, HASH_INIT init, UPDATE update, FINAL final,
|
||||
IN *in, OUT *out)
|
||||
{
|
||||
union {
|
||||
unsigned char b[1024];
|
||||
isc_sha1_t sha1;
|
||||
isc_md5_t md5;
|
||||
} ctx;
|
||||
|
||||
init(&ctx);
|
||||
update(&ctx, in->str, in->str_len);
|
||||
memset(dbuf.b, DIGEST_FILL, sizeof(dbuf));
|
||||
final(&ctx, dbuf.b);
|
||||
ck(hname, in, out);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* isc_sha224_final has a different calling sequence
|
||||
*/
|
||||
static void
|
||||
t_sha224(IN *in, OUT *out)
|
||||
{
|
||||
isc_sha224_t ctx;
|
||||
|
||||
memset(dbuf.b, DIGEST_FILL, sizeof(dbuf));
|
||||
isc_sha224_init(&ctx);
|
||||
isc_sha224_update(&ctx, in->str, in->str_len);
|
||||
memset(dbuf.b, DIGEST_FILL, sizeof(dbuf));
|
||||
isc_sha224_final(dbuf.b, &ctx);
|
||||
ck("SHA224", in, out);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
t_hashes(IN *in, OUT *out_sha1, OUT *out_sha224, OUT *out_md5)
|
||||
{
|
||||
t_hash("SHA1", (HASH_INIT)isc_sha1_init, (UPDATE)isc_sha1_update,
|
||||
(FINAL)isc_sha1_final, in, out_sha1);
|
||||
t_sha224(in, out_sha224);
|
||||
t_hash("md5", (HASH_INIT)isc_md5_init, (UPDATE)isc_md5_update,
|
||||
(FINAL)isc_md5_final, in, out_md5);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* isc_hmacmd5_sign has a different calling sequence
|
||||
*/
|
||||
static void
|
||||
t_md5hmac(IN *in, OUT *out)
|
||||
{
|
||||
isc_hmacmd5_t ctx;
|
||||
|
||||
isc_hmacmd5_init(&ctx, in->key, in->key_len);
|
||||
isc_hmacmd5_update(&ctx, in->str, in->str_len);
|
||||
memset(dbuf.b, DIGEST_FILL, sizeof(dbuf));
|
||||
isc_hmacmd5_sign(&ctx, dbuf.b);
|
||||
ck("HMAC-md5", in, out);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
t_hmac(const char *hname, HMAC_INIT init, UPDATE update, SIGN sign,
|
||||
IN *in, OUT *out)
|
||||
{
|
||||
union {
|
||||
unsigned char b[1024];
|
||||
isc_hmacmd5_t hmacmd5;
|
||||
isc_hmacsha1_t hmacsha1;
|
||||
isc_hmacsha224_t hmacsha224;
|
||||
isc_hmacsha256_t hmacsha256;
|
||||
isc_hmacsha384_t hmacsha384;
|
||||
isc_hmacsha512_t hmacsha512;
|
||||
} ctx;
|
||||
|
||||
init(&ctx, in->key, in->key_len);
|
||||
update(&ctx, in->str, in->str_len);
|
||||
memset(dbuf.b, DIGEST_FILL, sizeof(dbuf));
|
||||
sign(&ctx, dbuf.b, out->digest_len);
|
||||
ck(hname, in, out);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
t_hmacs(IN *in, OUT *out_sha1, OUT *out_sha224, OUT *out_sha256,
|
||||
OUT *out_sha384, OUT *out_sha512)
|
||||
{
|
||||
t_hmac("HMAC-SHA1", (HMAC_INIT)isc_hmacsha1_init,
|
||||
(UPDATE)isc_hmacsha1_update, (SIGN)isc_hmacsha1_sign,
|
||||
in, out_sha1);
|
||||
t_hmac("HMAC-SHA224", (HMAC_INIT)isc_hmacsha224_init,
|
||||
(UPDATE)isc_hmacsha224_update, (SIGN)isc_hmacsha224_sign,
|
||||
in, out_sha224);
|
||||
t_hmac("HMAC-SHA256", (HMAC_INIT)isc_hmacsha256_init,
|
||||
(UPDATE)isc_hmacsha256_update, (SIGN)isc_hmacsha256_sign,
|
||||
in, out_sha256);
|
||||
t_hmac("HMAC-SHA384", (HMAC_INIT)isc_hmacsha384_init,
|
||||
(UPDATE)isc_hmacsha384_update, (SIGN)isc_hmacsha384_sign,
|
||||
in, out_sha384);
|
||||
t_hmac("HMAC-SHA512", (HMAC_INIT)isc_hmacsha512_init,
|
||||
(UPDATE)isc_hmacsha512_update, (SIGN)isc_hmacsha512_sign,
|
||||
in, out_sha512);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* This will almost never fail, and so there is no need for the extra noise
|
||||
* that would come from breaking it into several tests.
|
||||
*/
|
||||
static void
|
||||
t1(void)
|
||||
{
|
||||
/*
|
||||
* two ad hoc hash examples
|
||||
*/
|
||||
t_hashes(&abc, &abc_sha1, &abc_sha224, &abc_md5);
|
||||
t_hashes(&abc_blah, &abc_blah_sha1, &abc_blah_sha224, &abc_blah_md5);
|
||||
|
||||
/*
|
||||
* three HMAC-md5 examples from RFC 2104
|
||||
*/
|
||||
t_md5hmac(&rfc2104_1, &rfc2104_1_hmac);
|
||||
t_md5hmac(&rfc2104_2, &rfc2104_2_hmac);
|
||||
t_md5hmac(&rfc2104_3, &rfc2104_3_hmac);
|
||||
|
||||
/*
|
||||
* four HMAC-SHA tests from RFC 4634 starting on page 86
|
||||
*/
|
||||
t_hmacs(&rfc4634_1, &rfc4634_1_sha1, &rfc4634_1_sha224,
|
||||
&rfc4634_1_sha256, &rfc4634_1_sha384, &rfc4634_1_sha512);
|
||||
t_hmacs(&rfc4634_2, &rfc4634_2_sha1, &rfc4634_2_sha224,
|
||||
&rfc4634_2_sha256, &rfc4634_2_sha384, &rfc4634_2_sha512);
|
||||
t_hmacs(&rfc4634_3, &rfc4634_3_sha1, &rfc4634_3_sha224,
|
||||
&rfc4634_3_sha256, &rfc4634_3_sha384, &rfc4634_3_sha512);
|
||||
t_hmacs(&rfc4634_4, &rfc4634_4_sha1, &rfc4634_4_sha224,
|
||||
&rfc4634_4_sha256, &rfc4634_4_sha384, &rfc4634_4_sha512);
|
||||
|
||||
if (nprobs != 0)
|
||||
t_result(T_FAIL);
|
||||
else
|
||||
t_result(T_PASS);
|
||||
}
|
||||
|
||||
|
||||
testspec_t T_testlist[] = {
|
||||
{ t1, "hashes" },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2007, 2011 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: log_test.c,v 1.26 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: log_test.c,v 1.26.558.2 2011/01/14 00:51:07 tbox Exp $ */
|
||||
|
||||
/* Principal Authors: DCL */
|
||||
|
||||
@@ -306,16 +306,16 @@ main(int argc, char **argv) {
|
||||
isc_log_write1(lctx, DNS_LOGCATEGORY_GENERAL, DNS_LOGMODULE_RBTDB,
|
||||
ISC_LOG_CRITICAL, "%s", message);
|
||||
isc_log_write1(lctx, DNS_LOGCATEGORY_GENERAL, DNS_LOGMODULE_RBTDB,
|
||||
ISC_LOG_CRITICAL, message);
|
||||
ISC_LOG_CRITICAL, "%s", message);
|
||||
|
||||
isc_log_setduplicateinterval(lcfg, 1);
|
||||
message = "This message should appear twice on stderr";
|
||||
|
||||
isc_log_write1(lctx, DNS_LOGCATEGORY_GENERAL, DNS_LOGMODULE_RBTDB,
|
||||
ISC_LOG_CRITICAL, message);
|
||||
ISC_LOG_CRITICAL, "%s", message);
|
||||
sleep(2);
|
||||
isc_log_write1(lctx, DNS_LOGCATEGORY_GENERAL, DNS_LOGMODULE_RBTDB,
|
||||
ISC_LOG_CRITICAL, message);
|
||||
ISC_LOG_CRITICAL, "%s", message);
|
||||
|
||||
/*
|
||||
* Review where everything went.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2004, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004, 2007, 2008, 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -13,7 +13,7 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.31 2008/09/25 04:02:38 tbox Exp $
|
||||
# $Id: Makefile.in,v 1.31.268.2 2010/06/23 23:46:35 tbox Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
@@ -21,7 +21,7 @@ top_srcdir = @top_srcdir@
|
||||
|
||||
@BIND9_MAKE_INCLUDES@
|
||||
|
||||
SUBDIRS = lwresd tkey
|
||||
SUBDIRS = filter-aaaa lwresd tkey
|
||||
TARGETS =
|
||||
|
||||
@BIND9_MAKE_RULES@
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
# copyright notice and this permission notice appear in all copies.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: clean.sh,v 1.2.2.3 2010/09/15 03:36:41 marka Exp $
|
||||
|
||||
rm -f dig.out.*
|
||||
rm -f rndc.out.*
|
||||
rm -f ns2/named.conf
|
||||
rm -f */named.memstats
|
||||
rm -f ns2/*.nzf
|
||||
rm -f ns2/core*
|
||||
@@ -0,0 +1,31 @@
|
||||
; Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; Permission to use, copy, modify, and/or distribute this software for any
|
||||
; purpose with or without fee is hereby granted, provided that the above
|
||||
; copyright notice and this permission notice appear in all copies.
|
||||
;
|
||||
; THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
; REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
; AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
; INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
; LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
; PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
; $Id: added.db,v 1.2.2.2 2010/08/11 18:19:56 each Exp $
|
||||
|
||||
$ORIGIN added.example.
|
||||
$TTL 300 ; 5 minutes
|
||||
@ IN SOA mname1. . (
|
||||
1 ; serial
|
||||
20 ; refresh (20 seconds)
|
||||
20 ; retry (20 seconds)
|
||||
1814400 ; expire (3 weeks)
|
||||
3600 ; minimum (1 hour)
|
||||
)
|
||||
NS ns2
|
||||
ns2 A 10.53.0.2
|
||||
MX 10 mail
|
||||
|
||||
a A 10.0.0.1
|
||||
mail A 10.0.0.2
|
||||
@@ -0,0 +1 @@
|
||||
zone previous.example { type master; file "previous.db"; };
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: named1.conf,v 1.2.2.2 2010/08/11 18:19:56 each Exp $ */
|
||||
|
||||
controls { /* empty */ };
|
||||
|
||||
options {
|
||||
port 5300;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.2; };
|
||||
listen-on-v6 { none; };
|
||||
allow-query { any; };
|
||||
recursion no;
|
||||
allow-new-zones yes;
|
||||
};
|
||||
|
||||
include "../../common/controls.conf";
|
||||
|
||||
zone "." {
|
||||
type hint;
|
||||
file "../../common/root.hint";
|
||||
};
|
||||
|
||||
zone "normal.example" {
|
||||
type master;
|
||||
file "normal.db";
|
||||
};
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: named2.conf,v 1.2.2.3 2010/09/24 05:54:06 marka Exp $ */
|
||||
|
||||
controls { /* empty */ };
|
||||
|
||||
include "../../common/controls.conf";
|
||||
|
||||
options {
|
||||
port 5300;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.2; 10.53.0.4; };
|
||||
listen-on-v6 { none; };
|
||||
recursion no;
|
||||
};
|
||||
|
||||
view internal {
|
||||
match-clients { 10.53.0.2; };
|
||||
allow-new-zones no;
|
||||
recursion yes;
|
||||
|
||||
zone "." {
|
||||
type hint;
|
||||
file "../../common/root.hint";
|
||||
};
|
||||
};
|
||||
|
||||
view external {
|
||||
match-clients { any; };
|
||||
allow-new-zones yes;
|
||||
|
||||
zone "." {
|
||||
type hint;
|
||||
file "../../common/root.hint";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,31 @@
|
||||
; Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; Permission to use, copy, modify, and/or distribute this software for any
|
||||
; purpose with or without fee is hereby granted, provided that the above
|
||||
; copyright notice and this permission notice appear in all copies.
|
||||
;
|
||||
; THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
; REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
; AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
; INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
; LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
; PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
; $Id: normal.db,v 1.2.2.2 2010/08/11 18:19:56 each Exp $
|
||||
|
||||
$ORIGIN normal.example.
|
||||
$TTL 300 ; 5 minutes
|
||||
@ IN SOA mname1. . (
|
||||
1 ; serial
|
||||
20 ; refresh (20 seconds)
|
||||
20 ; retry (20 seconds)
|
||||
1814400 ; expire (3 weeks)
|
||||
3600 ; minimum (1 hour)
|
||||
)
|
||||
NS ns2
|
||||
ns2 A 10.53.0.2
|
||||
MX 10 mail
|
||||
|
||||
a A 10.0.0.1
|
||||
mail A 10.0.0.2
|
||||
@@ -0,0 +1,31 @@
|
||||
; Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; Permission to use, copy, modify, and/or distribute this software for any
|
||||
; purpose with or without fee is hereby granted, provided that the above
|
||||
; copyright notice and this permission notice appear in all copies.
|
||||
;
|
||||
; THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
; REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
; AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
; INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
; LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
; PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
; $Id: previous.db,v 1.2.2.2 2010/08/11 18:19:57 each Exp $
|
||||
|
||||
$ORIGIN previous.example.
|
||||
$TTL 300 ; 5 minutes
|
||||
@ IN SOA mname1. . (
|
||||
1 ; serial
|
||||
20 ; refresh (20 seconds)
|
||||
20 ; retry (20 seconds)
|
||||
1814400 ; expire (3 weeks)
|
||||
3600 ; minimum (1 hour)
|
||||
)
|
||||
NS ns2
|
||||
ns2 A 10.53.0.2
|
||||
MX 10 mail
|
||||
|
||||
a A 10.0.0.1
|
||||
mail A 10.0.0.2
|
||||
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
# copyright notice and this permission notice appear in all copies.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: setup.sh,v 1.2.2.3 2010/08/12 01:32:46 marka Exp $
|
||||
|
||||
cp -f ns2/named1.conf ns2/named.conf
|
||||
cp -f ns2/default.nzf.in ns2/3bf305731dd26307.nzf
|
||||
@@ -0,0 +1,151 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
# copyright notice and this permission notice appear in all copies.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: tests.sh,v 1.2.2.4 2010/09/24 05:54:05 marka Exp $
|
||||
|
||||
SYSTEMTESTTOP=..
|
||||
. $SYSTEMTESTTOP/conf.sh
|
||||
|
||||
DIGOPTS="+tcp +nosea +nostat +nocmd +norec +noques +noauth +noadd +nostats +dnssec -p 5300"
|
||||
status=0
|
||||
n=0
|
||||
|
||||
echo "I:checking normally loaded zone ($n)"
|
||||
ret=0
|
||||
$DIG $DIGOPTS @10.53.0.2 a.normal.example a > dig.out.ns2.$n || ret=1
|
||||
grep 'status: NOERROR' dig.out.ns2.$n > /dev/null || ret=1
|
||||
grep '^a.normal.example' dig.out.ns2.$n > /dev/null || ret=1
|
||||
n=`expr $n + 1`
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
echo "I:checking previously added zone ($n)"
|
||||
ret=0
|
||||
$DIG $DIGOPTS @10.53.0.2 a.previous.example a > dig.out.ns2.$n || ret=1
|
||||
grep 'status: NOERROR' dig.out.ns2.$n > /dev/null || ret=1
|
||||
grep '^a.previous.example' dig.out.ns2.$n > /dev/null || ret=1
|
||||
n=`expr $n + 1`
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
echo "I:adding new zone ($n)"
|
||||
ret=0
|
||||
$RNDC -c ../common/rndc.conf -s 10.53.0.2 -p 9953 addzone 'added.example { type master; file "added.db"; };' 2>&1 | sed 's/^/I:ns2 /'
|
||||
$DIG $DIGOPTS @10.53.0.2 a.added.example a > dig.out.ns2.$n || ret=1
|
||||
grep 'status: NOERROR' dig.out.ns2.$n > /dev/null || ret=1
|
||||
grep '^a.added.example' dig.out.ns2.$n > /dev/null || ret=1
|
||||
n=`expr $n + 1`
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
echo "I:adding new zone with missing master file ($n)"
|
||||
ret=0
|
||||
$DIG $DIGOPTS +all @10.53.0.2 a.missing.example a > dig.out.ns2.pre.$n || ret=1
|
||||
grep "status: REFUSED" dig.out.ns2.pre.$n > /dev/null || ret=1
|
||||
$RNDC -c ../common/rndc.conf -s 10.53.0.2 -p 9953 addzone 'missing.example { type master; file "missing.db"; };' 2> rndc.out.ns2.$n
|
||||
grep "file not found" rndc.out.ns2.$n > /dev/null || ret=1
|
||||
$DIG $DIGOPTS +all @10.53.0.2 a.missing.example a > dig.out.ns2.post.$n || ret=1
|
||||
grep "status: REFUSED" dig.out.ns2.post.$n > /dev/null || ret=1
|
||||
$PERL ../digcomp.pl dig.out.ns2.pre.$n dig.out.ns2.post.$n || ret=1
|
||||
n=`expr $n + 1`
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
echo "I:deleting previously added zone ($n)"
|
||||
ret=0
|
||||
$RNDC -c ../common/rndc.conf -s 10.53.0.2 -p 9953 delzone previous.example 2>&1 | sed 's/^/I:ns2 /'
|
||||
$DIG $DIGOPTS @10.53.0.2 a.previous.example a > dig.out.ns2.$n
|
||||
grep 'status: REFUSED' dig.out.ns2.$n > /dev/null || ret=1
|
||||
grep '^a.previous.example' dig.out.ns2.$n > /dev/null && ret=1
|
||||
n=`expr $n + 1`
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
echo "I:deleting newly added zone ($n)"
|
||||
ret=0
|
||||
$RNDC -c ../common/rndc.conf -s 10.53.0.2 -p 9953 delzone added.example 2>&1 | sed 's/^/I:ns2 /'
|
||||
$DIG $DIGOPTS @10.53.0.2 a.added.example a > dig.out.ns2.$n
|
||||
grep 'status: REFUSED' dig.out.ns2.$n > /dev/null || ret=1
|
||||
grep '^a.added.example' dig.out.ns2.$n > /dev/null && ret=1
|
||||
n=`expr $n + 1`
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
echo "I:attempt to delete a normally-loaded zone ($n)"
|
||||
ret=0
|
||||
$RNDC -c ../common/rndc.conf -s 10.53.0.2 -p 9953 delzone normal.example 2> rndc.out.ns2.$n
|
||||
grep "permission denied" rndc.out.ns2.$n > /dev/null || ret=1
|
||||
$DIG $DIGOPTS @10.53.0.2 a.normal.example a > dig.out.ns2.$n
|
||||
grep 'status: NOERROR' dig.out.ns2.$n > /dev/null || ret=1
|
||||
grep '^a.normal.example' dig.out.ns2.$n > /dev/null || ret=1
|
||||
n=`expr $n + 1`
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
echo "I:reconfiguring server with multiple views"
|
||||
rm -f ns2/named.conf
|
||||
cp -f ns2/named2.conf ns2/named.conf
|
||||
$RNDC -c ../common/rndc.conf -s 10.53.0.2 -p 9953 reconfig 2>&1 | sed 's/^/I:ns2 /'
|
||||
sleep 5
|
||||
|
||||
echo "I:adding new zone to external view ($n)"
|
||||
# NOTE: The internal view has "recursion yes" set, and so queries for
|
||||
# nonexistent zones should return NOERROR. The external view is
|
||||
# "recursion no", so queries for nonexistent zones should return
|
||||
# REFUSED. This behavior should be the same regardless of whether
|
||||
# the zone does not exist because a) it has not yet been loaded, b)
|
||||
# it failed to load, or c) it has been deleted.
|
||||
ret=0
|
||||
$DIG +norec $DIGOPTS @10.53.0.2 -b 10.53.0.2 a.added.example a > dig.out.ns2.intpre.$n || ret=1
|
||||
grep 'status: NOERROR' dig.out.ns2.intpre.$n > /dev/null || ret=1
|
||||
$DIG +norec $DIGOPTS @10.53.0.4 -b 10.53.0.4 a.added.example a > dig.out.ns2.extpre.$n || ret=1
|
||||
grep 'status: REFUSED' dig.out.ns2.extpre.$n > /dev/null || ret=1
|
||||
$RNDC -c ../common/rndc.conf -s 10.53.0.2 -p 9953 addzone 'added.example in external { type master; file "added.db"; };' 2>&1 | sed 's/^/I:ns2 /'
|
||||
$DIG +norec $DIGOPTS @10.53.0.2 -b 10.53.0.2 a.added.example a > dig.out.ns2.int.$n || ret=1
|
||||
grep 'status: NOERROR' dig.out.ns2.int.$n > /dev/null || ret=1
|
||||
$DIG +norec $DIGOPTS @10.53.0.4 -b 10.53.0.4 a.added.example a > dig.out.ns2.ext.$n || ret=1
|
||||
grep 'status: NOERROR' dig.out.ns2.ext.$n > /dev/null || ret=1
|
||||
grep '^a.added.example' dig.out.ns2.ext.$n > /dev/null || ret=1
|
||||
n=`expr $n + 1`
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
echo "I:deleting newly added zone ($n)"
|
||||
ret=0
|
||||
$RNDC -c ../common/rndc.conf -s 10.53.0.2 -p 9953 delzone 'added.example in external' 2>&1 | sed 's/^/I:ns2 /'
|
||||
$DIG $DIGOPTS @10.53.0.4 -b 10.53.0.4 a.added.example a > dig.out.ns2.$n || ret=1
|
||||
grep 'status: REFUSED' dig.out.ns2.$n > /dev/null || ret=1
|
||||
grep '^a.added.example' dig.out.ns2.$n > /dev/null && ret=1
|
||||
n=`expr $n + 1`
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
echo "I:attempting to add zone to internal view ($n)"
|
||||
ret=0
|
||||
$DIG +norec $DIGOPTS @10.53.0.2 -b 10.53.0.2 a.added.example a > dig.out.ns2.pre.$n || ret=1
|
||||
grep 'status: NOERROR' dig.out.ns2.pre.$n > /dev/null || ret=1
|
||||
$RNDC -c ../common/rndc.conf -s 10.53.0.2 -p 9953 addzone 'added.example in internal { type master; file "added.db"; };' 2> rndc.out.ns2.$n
|
||||
grep "permission denied" rndc.out.ns2.$n > /dev/null || ret=1
|
||||
$DIG $DIGOPTS @10.53.0.2 -b 10.53.0.2 a.added.example a > dig.out.ns2.int.$n || ret=1
|
||||
grep 'status: NOERROR' dig.out.ns2.int.$n > /dev/null || ret=1
|
||||
$DIG $DIGOPTS @10.53.0.4 -b 10.53.0.4 a.added.example a > dig.out.ns2.ext.$n || ret=1
|
||||
grep 'status: REFUSED' dig.out.ns2.ext.$n > /dev/null || ret=1
|
||||
n=`expr $n + 1`
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
echo "I:exit status: $status"
|
||||
exit $status
|
||||
@@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
# copyright notice and this permission notice appear in all copies.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: clean.sh,v 1.2.2.2 2010/11/16 02:11:47 sar Exp $
|
||||
|
||||
#
|
||||
# Clean up after allow query tests.
|
||||
#
|
||||
|
||||
rm -f dig.out.*
|
||||
rm -f ns2/named.conf
|
||||
rm -f */named.memstats
|
||||
@@ -0,0 +1,31 @@
|
||||
; Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; Permission to use, copy, modify, and/or distribute this software for any
|
||||
; purpose with or without fee is hereby granted, provided that the above
|
||||
; copyright notice and this permission notice appear in all copies.
|
||||
;
|
||||
; THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
; REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
; AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
; INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
; LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
; PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
; $Id: aclallow.db,v 1.2.2.2 2010/11/16 02:11:47 sar Exp $
|
||||
|
||||
$ORIGIN aclallow.example.
|
||||
$TTL 300 ; 5 minutes
|
||||
@ IN SOA mname1. . (
|
||||
1 ; serial
|
||||
20 ; refresh (20 seconds)
|
||||
20 ; retry (20 seconds)
|
||||
1814400 ; expire (3 weeks)
|
||||
3600 ; minimum (1 hour)
|
||||
)
|
||||
NS ns2
|
||||
ns2 A 10.53.0.2
|
||||
MX 10 mail
|
||||
|
||||
a A 10.0.7.1
|
||||
mail A 10.0.7.2
|
||||
@@ -0,0 +1,31 @@
|
||||
; Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; Permission to use, copy, modify, and/or distribute this software for any
|
||||
; purpose with or without fee is hereby granted, provided that the above
|
||||
; copyright notice and this permission notice appear in all copies.
|
||||
;
|
||||
; THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
; REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
; AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
; INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
; LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
; PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
; $Id: acldisallow.db,v 1.2.2.2 2010/11/16 02:11:47 sar Exp $
|
||||
|
||||
$ORIGIN acldisallow.example.
|
||||
$TTL 300 ; 5 minutes
|
||||
@ IN SOA mname1. . (
|
||||
1 ; serial
|
||||
20 ; refresh (20 seconds)
|
||||
20 ; retry (20 seconds)
|
||||
1814400 ; expire (3 weeks)
|
||||
3600 ; minimum (1 hour)
|
||||
)
|
||||
NS ns2
|
||||
ns2 A 10.53.0.2
|
||||
MX 10 mail
|
||||
|
||||
a A 10.0.9.1
|
||||
mail A 10.0.9.2
|
||||
@@ -0,0 +1,31 @@
|
||||
; Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; Permission to use, copy, modify, and/or distribute this software for any
|
||||
; purpose with or without fee is hereby granted, provided that the above
|
||||
; copyright notice and this permission notice appear in all copies.
|
||||
;
|
||||
; THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
; REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
; AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
; INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
; LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
; PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
; $Id: aclnotallow.db,v 1.2.2.2 2010/11/16 02:11:48 sar Exp $
|
||||
|
||||
$ORIGIN aclnotallow.example.
|
||||
$TTL 300 ; 5 minutes
|
||||
@ IN SOA mname1. . (
|
||||
1 ; serial
|
||||
20 ; refresh (20 seconds)
|
||||
20 ; retry (20 seconds)
|
||||
1814400 ; expire (3 weeks)
|
||||
3600 ; minimum (1 hour)
|
||||
)
|
||||
NS ns2
|
||||
ns2 A 10.53.0.2
|
||||
MX 10 mail
|
||||
|
||||
a A 10.0.8.1
|
||||
mail A 10.0.8.2
|
||||
@@ -0,0 +1,31 @@
|
||||
; Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; Permission to use, copy, modify, and/or distribute this software for any
|
||||
; purpose with or without fee is hereby granted, provided that the above
|
||||
; copyright notice and this permission notice appear in all copies.
|
||||
;
|
||||
; THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
; REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
; AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
; INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
; LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
; PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
; $Id: added.db,v 1.2.2.2 2010/11/16 02:11:48 sar Exp $
|
||||
|
||||
$ORIGIN added.example.
|
||||
$TTL 300 ; 5 minutes
|
||||
@ IN SOA mname1. . (
|
||||
1 ; serial
|
||||
20 ; refresh (20 seconds)
|
||||
20 ; retry (20 seconds)
|
||||
1814400 ; expire (3 weeks)
|
||||
3600 ; minimum (1 hour)
|
||||
)
|
||||
NS ns2
|
||||
ns2 A 10.53.0.2
|
||||
MX 10 mail
|
||||
|
||||
a A 10.0.0.1
|
||||
mail A 10.0.0.2
|
||||
@@ -0,0 +1,31 @@
|
||||
; Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; Permission to use, copy, modify, and/or distribute this software for any
|
||||
; purpose with or without fee is hereby granted, provided that the above
|
||||
; copyright notice and this permission notice appear in all copies.
|
||||
;
|
||||
; THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
; REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
; AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
; INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
; LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
; PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
; $Id: addrallow.db,v 1.2.2.2 2010/11/16 02:11:48 sar Exp $
|
||||
|
||||
$ORIGIN addrallow.example.
|
||||
$TTL 300 ; 5 minutes
|
||||
@ IN SOA mname1. . (
|
||||
1 ; serial
|
||||
20 ; refresh (20 seconds)
|
||||
20 ; retry (20 seconds)
|
||||
1814400 ; expire (3 weeks)
|
||||
3600 ; minimum (1 hour)
|
||||
)
|
||||
NS ns2
|
||||
ns2 A 10.53.0.2
|
||||
MX 10 mail
|
||||
|
||||
a A 10.0.4.1
|
||||
mail A 10.0.4.2
|
||||
@@ -0,0 +1,32 @@
|
||||
; Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; Permission to use, copy, modify, and/or distribute this software for any
|
||||
; purpose with or without fee is hereby granted, provided that the above
|
||||
; copyright notice and this permission notice appear in all copies.
|
||||
;
|
||||
; THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
; REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
; AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
; INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
; LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
; PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
; $Id: addrdisallow.db,v 1.2.2.2 2010/11/16 02:11:48 sar Exp $
|
||||
|
||||
$ORIGIN addrdisallow.example.
|
||||
$TTL 300 ; 5 minutes
|
||||
@ IN SOA mname1. . (
|
||||
1 ; serial
|
||||
20 ; refresh (20 seconds)
|
||||
20 ; retry (20 seconds)
|
||||
1814400 ; expire (3 weeks)
|
||||
3600 ; minimum (1 hour)
|
||||
)
|
||||
NS ns2
|
||||
ns2 A 10.53.0.2
|
||||
MX 10 mail
|
||||
|
||||
a A 10.0.6.1
|
||||
mail A 10.0.6.2
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
; Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; Permission to use, copy, modify, and/or distribute this software for any
|
||||
; purpose with or without fee is hereby granted, provided that the above
|
||||
; copyright notice and this permission notice appear in all copies.
|
||||
;
|
||||
; THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
; REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
; AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
; INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
; LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
; PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
; $Id: addrnotallow.db,v 1.2.2.2 2010/11/16 02:11:48 sar Exp $
|
||||
|
||||
$ORIGIN addrnotallow.example.
|
||||
$TTL 300 ; 5 minutes
|
||||
@ IN SOA mname1. . (
|
||||
1 ; serial
|
||||
20 ; refresh (20 seconds)
|
||||
20 ; retry (20 seconds)
|
||||
1814400 ; expire (3 weeks)
|
||||
3600 ; minimum (1 hour)
|
||||
)
|
||||
NS ns2
|
||||
ns2 A 10.53.0.2
|
||||
MX 10 mail
|
||||
|
||||
a A 10.0.5.1
|
||||
mail A 10.0.5.2
|
||||
@@ -0,0 +1,31 @@
|
||||
; Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; Permission to use, copy, modify, and/or distribute this software for any
|
||||
; purpose with or without fee is hereby granted, provided that the above
|
||||
; copyright notice and this permission notice appear in all copies.
|
||||
;
|
||||
; THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
; REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
; AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
; INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
; LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
; PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
; $Id: any.db,v 1.2.2.2 2010/11/16 02:11:48 sar Exp $
|
||||
|
||||
$ORIGIN any.example.
|
||||
$TTL 300 ; 5 minutes
|
||||
@ IN SOA mname1. . (
|
||||
1 ; serial
|
||||
20 ; refresh (20 seconds)
|
||||
20 ; retry (20 seconds)
|
||||
1814400 ; expire (3 weeks)
|
||||
3600 ; minimum (1 hour)
|
||||
)
|
||||
NS ns2
|
||||
ns2 A 10.53.0.2
|
||||
MX 10 mail
|
||||
|
||||
a A 10.0.1.1
|
||||
mail A 10.0.1.2
|
||||
@@ -0,0 +1,31 @@
|
||||
; Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; Permission to use, copy, modify, and/or distribute this software for any
|
||||
; purpose with or without fee is hereby granted, provided that the above
|
||||
; copyright notice and this permission notice appear in all copies.
|
||||
;
|
||||
; THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
; REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
; AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
; INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
; LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
; PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
; $Id: keyallow.db,v 1.2.2.2 2010/11/16 02:11:48 sar Exp $
|
||||
|
||||
$ORIGIN keyallow.example.
|
||||
$TTL 300 ; 5 minutes
|
||||
@ IN SOA mname1. . (
|
||||
1 ; serial
|
||||
20 ; refresh (20 seconds)
|
||||
20 ; retry (20 seconds)
|
||||
1814400 ; expire (3 weeks)
|
||||
3600 ; minimum (1 hour)
|
||||
)
|
||||
NS ns2
|
||||
ns2 A 10.53.0.2
|
||||
MX 10 mail
|
||||
|
||||
a A 10.0.10.1
|
||||
mail A 10.0.10.2
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user