Compare commits
840
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
46054b10cc | ||
|
|
2fc748be4d | ||
|
|
311ba6bc1a | ||
|
|
6039a662c1 | ||
|
|
7963e11c7c | ||
|
|
25d78ece28 | ||
|
|
5cab9cc0ce | ||
|
|
0c5ca02bc2 | ||
|
|
6cd296b7ad | ||
|
|
c44bb94bc8 | ||
|
|
8ec9ce2987 | ||
|
|
5d718a2f9c | ||
|
|
c3ffc2e55d | ||
|
|
302cb51bc4 | ||
|
|
9927c641ae | ||
|
|
30a8ca5010 | ||
|
|
780fee45a7 | ||
|
|
a464d01f68 | ||
|
|
40bf7963ac | ||
|
|
adf892c713 | ||
|
|
cdb5f33baf | ||
|
|
e0d80dbc1d | ||
|
|
a022b5a817 | ||
|
|
62e8ffff0a | ||
|
|
7a2f2d9ba0 | ||
|
|
4e1806d320 | ||
|
|
b1f903cfe7 | ||
|
|
d0e0f26753 | ||
|
|
08237a3187 | ||
|
|
52f4e01df1 | ||
|
|
e8bfdebfad | ||
|
|
ddb93d31dc | ||
|
|
f18a54a190 | ||
|
|
43a3530e26 | ||
|
|
90de0c8201 | ||
|
|
12e219aeb7 | ||
|
|
b24553b060 | ||
|
|
3541849eb2 | ||
|
|
b2549fe190 | ||
|
|
cccda7f37e | ||
|
|
be1190b4bd | ||
|
|
fc41c577a3 | ||
|
|
1fc35fe236 | ||
|
|
48d417b283 | ||
|
|
2ee75dd6b6 | ||
|
|
04b69f0fbf | ||
|
|
efa452778d | ||
|
|
dbb6ecaca6 | ||
|
|
859dc25b2a | ||
|
|
67fd4c2705 | ||
|
|
1077d5d5d7 | ||
|
|
eb17eddf9c | ||
|
|
643d0b9816 | ||
|
|
dca9b1cb49 | ||
|
|
9b41e3e190 | ||
|
|
ced43743a8 | ||
|
|
e635e8b30c | ||
|
|
a273274614 | ||
|
|
905105682c | ||
|
|
16717de692 | ||
|
|
cd2a48b5cf | ||
|
|
1863e20b1b | ||
|
|
5f633b1203 | ||
|
|
da3d7fea6c | ||
|
|
54b41a6348 | ||
|
|
e6786ca109 | ||
|
|
428a7f9d79 | ||
|
|
c4dc5084ee | ||
|
|
c225d853f7 | ||
|
|
61c065a82c | ||
|
|
f640a4947f | ||
|
|
19a0f2cc15 | ||
|
|
cd6a9eea35 | ||
|
|
383868ee66 | ||
|
|
fc11dd9ebe | ||
|
|
928f535b8a | ||
|
|
2f925c1025 | ||
|
|
da2dfa2925 | ||
|
|
015ab04856 | ||
|
|
1282a7b132 | ||
|
|
5ffbae904d | ||
|
|
75f62d93df | ||
|
|
305971d1d3 | ||
|
|
29020d67b7 | ||
|
|
6d436a8ece | ||
|
|
2c6713049e | ||
|
|
ed3e5b9f24 | ||
|
|
d173a5fc50 | ||
|
|
394ff0403f | ||
|
|
fff5255c49 | ||
|
|
45852a37a4 | ||
|
|
36a7377ade | ||
|
|
7eefeb32a7 | ||
|
|
3b75fb5c0f | ||
|
|
9cba56a343 | ||
|
|
abac3cc346 | ||
|
|
f2fe866427 | ||
|
|
48141f48b1 | ||
|
|
54dbf48b44 | ||
|
|
08f36cf4fb | ||
|
|
ad69ef9d09 | ||
|
|
40d8785310 | ||
|
|
df800d27d8 | ||
|
|
e163b0fe68 | ||
|
|
fb8c4a6bc9 | ||
|
|
7b36ad9795 | ||
|
|
5641d615c8 | ||
|
|
c0a7296576 | ||
|
|
6157180370 | ||
|
|
8dc44fde9b | ||
|
|
abe57cc913 | ||
|
|
954941b121 | ||
|
|
5994a39c80 | ||
|
|
0c69af9b70 | ||
|
|
12d2470191 | ||
|
|
760e3de10c | ||
|
|
65d3d73195 | ||
|
|
8a932cc59f | ||
|
|
6e9dd32ded | ||
|
|
87850966d0 | ||
|
|
fe349528eb | ||
|
|
9860bf7736 | ||
|
|
f8f74c4133 | ||
|
|
5b976ced07 | ||
|
|
d6143438c3 | ||
|
|
875245e3c4 | ||
|
|
6d07a89f6c | ||
|
|
ab273fe3ac | ||
|
|
39131fff99 | ||
|
|
2d7ef7fdb7 | ||
|
|
bd598c1756 | ||
|
|
10ed862c72 | ||
|
|
b605bbbb0f | ||
|
|
b52da87328 | ||
|
|
4e32ae26b8 | ||
|
|
ba97097eaf | ||
|
|
2176cc236d | ||
|
|
09609ba50d | ||
|
|
b0ccf52763 | ||
|
|
a79df62abf | ||
|
|
80f5acb51e | ||
|
|
68a9007749 | ||
|
|
8d87bd79e5 | ||
|
|
12d91a5519 | ||
|
|
a3398dba83 | ||
|
|
bf10569154 | ||
|
|
b041f0ecb7 | ||
|
|
44dc7cb1d0 | ||
|
|
2e77a957cb | ||
|
|
aee54439cc | ||
|
|
c0f0bbda1e | ||
|
|
e6418829d0 | ||
|
|
877507e813 | ||
|
|
86bccbee3e | ||
|
|
e16fa96712 | ||
|
|
01ffac6927 | ||
|
|
372ce32e19 | ||
|
|
94ca1cb4cb | ||
|
|
e046429e05 | ||
|
|
e2e93dfa7b | ||
|
|
5eee3743e2 | ||
|
|
c717c61ab0 | ||
|
|
0810b14604 | ||
|
|
fc69c74e60 | ||
|
|
f521a47af7 | ||
|
|
bd29cbe6aa | ||
|
|
b67c0e9a49 | ||
|
|
61d91562b1 | ||
|
|
8b071e63b0 | ||
|
|
b8c2fd6c72 | ||
|
|
bff3b1df40 | ||
|
|
ff50f1db55 | ||
|
|
ea30ea795d | ||
|
|
f3a565668f | ||
|
|
455d347569 | ||
|
|
96ce7f6526 | ||
|
|
a46344cd6d | ||
|
|
855cb68fb7 | ||
|
|
5563138dca | ||
|
|
5026340d9f | ||
|
|
bf8c55b56c | ||
|
|
ff25a712f7 | ||
|
|
5fb1530285 | ||
|
|
6d9f4392f9 | ||
|
|
f44c7e71a6 | ||
|
|
151e614c36 | ||
|
|
ca2a1e9eb5 | ||
|
|
0aa5b8c2d8 | ||
|
|
ae06702ca9 | ||
|
|
dbd13430ce | ||
|
|
c6110f2298 | ||
|
|
aedf9eab89 | ||
|
|
9c8d239e5f | ||
|
|
88eb4fca9d | ||
|
|
1d4f3e75f8 | ||
|
|
9f168992da | ||
|
|
5eb1c53ca2 | ||
|
|
79ee58d29d | ||
|
|
16c19e5477 | ||
|
|
550042e162 | ||
|
|
d03e7dd277 | ||
|
|
51fc19f726 | ||
|
|
01347cce29 | ||
|
|
f36db31f96 | ||
|
|
1b50f0d68e | ||
|
|
dc517fde01 | ||
|
|
350f415b02 | ||
|
|
b4d6057cf0 | ||
|
|
366694ad6a | ||
|
|
297f40731e | ||
|
|
b2b5dd559d | ||
|
|
624e141817 | ||
|
|
5f25e73ff9 | ||
|
|
8695fa7a14 | ||
|
|
0fae33c4d5 | ||
|
|
ec955e008d | ||
|
|
bcc65417d7 | ||
|
|
db3543452c | ||
|
|
153ec122b2 | ||
|
|
19e1280ee7 | ||
|
|
1077e73992 | ||
|
|
ac9cc645a2 | ||
|
|
ad544a5ef3 | ||
|
|
3a13626ed1 | ||
|
|
86e79deccd | ||
|
|
2bc8ae2486 | ||
|
|
925392a19f | ||
|
|
c5a50f19df | ||
|
|
279e3f68cc | ||
|
|
68bde02f3e | ||
|
|
247c4bffc3 | ||
|
|
95f8f3ebd1 | ||
|
|
979691b8b5 | ||
|
|
d81f97c523 | ||
|
|
592d281377 | ||
|
|
7aca55cd83 | ||
|
|
5d9f318a8f | ||
|
|
9feb8eda57 | ||
|
|
b20c383c6b | ||
|
|
c71ada9e6e | ||
|
|
905c946de0 | ||
|
|
6ce89d1db6 | ||
|
|
cab45cd588 | ||
|
|
b17ec45352 | ||
|
|
3b956daecf | ||
|
|
9b72b0258e | ||
|
|
1963c1c54a | ||
|
|
763250ea4e | ||
|
|
e5e815d21a | ||
|
|
3f39cbcc76 | ||
|
|
b0f0bbd6bc | ||
|
|
d889e9701a | ||
|
|
41089d26e2 | ||
|
|
9251d20f2a | ||
|
|
6720b9fe94 | ||
|
|
e9c3fd20d6 | ||
|
|
2f2319de0d | ||
|
|
f218fe643a | ||
|
|
c91b60a119 | ||
|
|
7d259433d2 | ||
|
|
27f8686a3b | ||
|
|
0f83518a99 | ||
|
|
8fd7205f18 | ||
|
|
ae53c8c073 | ||
|
|
ef413fafe5 | ||
|
|
67145ee7da | ||
|
|
89b448b506 | ||
|
|
450c3bb498 | ||
|
|
9b4b69eac1 | ||
|
|
f5331a5045 | ||
|
|
c7c6605eb0 | ||
|
|
b4ed36acde | ||
|
|
e02ccd485e | ||
|
|
dfcebf4703 | ||
|
|
ae787010e1 | ||
|
|
a5003acddf | ||
|
|
65bbefae47 | ||
|
|
bd851f3490 | ||
|
|
c7a3571cf6 | ||
|
|
b8f874d1b3 | ||
|
|
10e08bdd6e | ||
|
|
669b1ee4d8 | ||
|
|
b5e566fa4d | ||
|
|
1c22fb9bdc | ||
|
|
dc508331b4 | ||
|
|
e4de496a5d | ||
|
|
b1c2fed160 | ||
|
|
8bd81db458 | ||
|
|
e60977ec32 | ||
|
|
6b2d0a74ac | ||
|
|
f1ff7b7b8b | ||
|
|
b695e0159a | ||
|
|
0bbfdc2806 | ||
|
|
e086d0e6cc | ||
|
|
675944370a | ||
|
|
fce41660df | ||
|
|
3da71a0572 | ||
|
|
50331a1a93 | ||
|
|
f8376838e7 | ||
|
|
a8bb437cbd | ||
|
|
34b8a84928 | ||
|
|
15ab3696b0 | ||
|
|
6fe6eff8de | ||
|
|
cac64d5bd8 | ||
|
|
fcf06578df | ||
|
|
3638fe4f9a | ||
|
|
a3862bb60b | ||
|
|
38917972ea | ||
|
|
985137ff66 | ||
|
|
2eff17e423 | ||
|
|
e331fe245d | ||
|
|
8b7fa47bf2 | ||
|
|
667e5aaded | ||
|
|
ce0d2caf1b | ||
|
|
7362201ff0 | ||
|
|
9573525eaf | ||
|
|
fc9d2a1449 | ||
|
|
a3511da52b | ||
|
|
820251a036 | ||
|
|
862572d505 | ||
|
|
1beb3ce612 | ||
|
|
64ab7727e9 | ||
|
|
f37e34be9d | ||
|
|
34862bb497 | ||
|
|
432b145c6e | ||
|
|
7579191f73 | ||
|
|
bda68146b0 | ||
|
|
1ce9ab3e3b | ||
|
|
0a9fcb1124 | ||
|
|
7025ee2652 | ||
|
|
702ca0b0a8 | ||
|
|
78b3284647 | ||
|
|
cc7f86f702 | ||
|
|
e1fc4161d1 | ||
|
|
71110063f1 | ||
|
|
c8ae58f9f8 | ||
|
|
6519b2ccad | ||
|
|
eb5f89b06e | ||
|
|
f4d18d665f | ||
|
|
0794f78e65 | ||
|
|
93e0978d98 | ||
|
|
91cbc837ff | ||
|
|
375962bc49 | ||
|
|
eb60656b9b | ||
|
|
32967e6895 | ||
|
|
e3e4650e2f | ||
|
|
cdf3ea38b5 | ||
|
|
7860facc0a | ||
|
|
5302b44251 | ||
|
|
7d7346d623 | ||
|
|
ea882c9959 | ||
|
|
36f3facb1a | ||
|
|
01a10cbd81 | ||
|
|
f0d57bc9ad | ||
|
|
40adc17544 | ||
|
|
81fd55a535 | ||
|
|
3c18ba3aba | ||
|
|
5d09fe745e | ||
|
|
cf0516fab3 | ||
|
|
46977c5f31 | ||
|
|
6f0ed96f5f | ||
|
|
eb550d94ea | ||
|
|
f781d497d1 | ||
|
|
76a1507769 | ||
|
|
6cdfe5a4bb | ||
|
|
04b1b38fdb | ||
|
|
04813aa271 | ||
|
|
b0414d02f5 | ||
|
|
514f544c08 | ||
|
|
dbebb4a6cd | ||
|
|
895a62b0be | ||
|
|
e55297ee1e | ||
|
|
79df5c5196 | ||
|
|
d9fdcc5131 | ||
|
|
6d12fcbb39 | ||
|
|
cc3a3a3077 | ||
|
|
ce053ae713 | ||
|
|
8076b157b1 | ||
|
|
63f763baa9 | ||
|
|
e939393c1c | ||
|
|
3d7ca1bba2 | ||
|
|
ba9cececca | ||
|
|
8b39e41b24 | ||
|
|
dee8a42282 | ||
|
|
595db826f7 | ||
|
|
41b324b22a | ||
|
|
e7f4d4e09d | ||
|
|
38637a6e1d | ||
|
|
a9bc1daf4f | ||
|
|
7dc66d649a | ||
|
|
19e91f021d | ||
|
|
0a2ff2f893 | ||
|
|
eeef28e6d0 | ||
|
|
a65d6dc605 | ||
|
|
9afe470beb | ||
|
|
127820c20f | ||
|
|
2ac5c5415c | ||
|
|
fa8f5570bc | ||
|
|
6d4ad45aee | ||
|
|
13de8b7015 | ||
|
|
9b6701361e | ||
|
|
b514948e9d | ||
|
|
f0af708359 | ||
|
|
f75c7e218c | ||
|
|
76d66c8e52 | ||
|
|
a1b08748d8 | ||
|
|
450d4ae030 | ||
|
|
fb76b4340c | ||
|
|
1d08fbdc2d | ||
|
|
5211674cef | ||
|
|
ef2dfb76b9 | ||
|
|
e844d1f3a8 | ||
|
|
5f5bb6cba2 | ||
|
|
961ff176c2 | ||
|
|
ef55474f25 | ||
|
|
ad120f93e4 | ||
|
|
368e6fb1e7 | ||
|
|
64282ffd6d | ||
|
|
c44709c516 | ||
|
|
4d9b982abf | ||
|
|
de9b26db37 | ||
|
|
afdc7dee62 | ||
|
|
eac1bcca33 | ||
|
|
8371f50c6e | ||
|
|
c363a13c50 | ||
|
|
6833e6ba4c | ||
|
|
cd4d18cfee | ||
|
|
520a24ee91 | ||
|
|
0ddedb1781 | ||
|
|
2a2e4dbefb | ||
|
|
27f8258b13 | ||
|
|
ab23f14a30 | ||
|
|
fff31a08a9 | ||
|
|
e5ad562a79 | ||
|
|
83271977c3 | ||
|
|
799a4ab7d7 | ||
|
|
7cbcbb2938 | ||
|
|
ece0a1d2c8 | ||
|
|
64ebbbcbb1 | ||
|
|
77d2bb78af | ||
|
|
bbf5334896 | ||
|
|
54d1801f14 | ||
|
|
f10e82ecfb | ||
|
|
7115862967 | ||
|
|
a9785879cb | ||
|
|
587355bb62 | ||
|
|
e101c2937c | ||
|
|
a9775fe88d | ||
|
|
b42ba4cace | ||
|
|
b91b3c4f09 | ||
|
|
c459aec591 | ||
|
|
27015815a5 | ||
|
|
e4aad620d2 | ||
|
|
8324731a56 | ||
|
|
02a7cfcc8a | ||
|
|
38a32e22c4 | ||
|
|
5c60871fd9 | ||
|
|
1de271fbae | ||
|
|
001447b3ef | ||
|
|
9f6f43d291 | ||
|
|
895c88905b | ||
|
|
a471195d58 | ||
|
|
10d76890e4 | ||
|
|
7de6178969 | ||
|
|
3a8f5eff97 | ||
|
|
eec72f05ea | ||
|
|
fff59bfeb3 | ||
|
|
d738f55bbf | ||
|
|
f22b76502b | ||
|
|
d6c1bb232c | ||
|
|
7648521c39 | ||
|
|
fe22ed4862 | ||
|
|
ca31221f5b | ||
|
|
fa9ae9dad2 | ||
|
|
55c437ae71 | ||
|
|
b7f5909933 | ||
|
|
6b62b02a83 | ||
|
|
ee73600181 | ||
|
|
f2445757f1 | ||
|
|
2226e9ec25 | ||
|
|
199726face | ||
|
|
3894fcbaad | ||
|
|
194d3c5a10 | ||
|
|
69f73c967e | ||
|
|
a73c49b952 | ||
|
|
dbd66db23f | ||
|
|
6bfa073b71 | ||
|
|
c33527c0d2 | ||
|
|
3a6abd091b | ||
|
|
42e5782189 | ||
|
|
2df4d8d3dd | ||
|
|
00d47e05ae | ||
|
|
4f175dc980 | ||
|
|
6e8045d087 | ||
|
|
e1488ac684 | ||
|
|
e28c0fcdfa | ||
|
|
9178588ed0 | ||
|
|
276ae4fe5c | ||
|
|
1c210d73bd | ||
|
|
04f7e40618 | ||
|
|
e08ab67c41 | ||
|
|
af0159c4ee | ||
|
|
3f52bb9498 | ||
|
|
99c0705417 | ||
|
|
e851b0cf9c | ||
|
|
c3bad668ba | ||
|
|
05eeaf4914 | ||
|
|
eaeb251254 | ||
|
|
6a1f2578fc | ||
|
|
ef42c36b22 | ||
|
|
dfc1a21b59 | ||
|
|
3bbcca9d17 | ||
|
|
6b7a9242d6 | ||
|
|
38d8198fd0 | ||
|
|
2ec35a7772 | ||
|
|
d9f13588fd | ||
|
|
644630bb3c | ||
|
|
4a8fa74137 | ||
|
|
de99148154 | ||
|
|
1166ab523b | ||
|
|
f6779c3053 | ||
|
|
a6c4d1405e | ||
|
|
fcf7d085b9 | ||
|
|
c83d2dbb2b | ||
|
|
23cb85e6e6 | ||
|
|
c5296e040b | ||
|
|
89266715e6 | ||
|
|
59b6d3ae92 | ||
|
|
6e561e503d | ||
|
|
103ebb0f6b | ||
|
|
c93399e357 | ||
|
|
3b0c34c83f | ||
|
|
a2b52a3a7c | ||
|
|
70d6c84aa6 | ||
|
|
0ea743459d | ||
|
|
785eb615e3 | ||
|
|
49c3a15727 | ||
|
|
b450054488 | ||
|
|
8cd113407a | ||
|
|
7de8e021c2 | ||
|
|
0da8837d0e | ||
|
|
94a70dc397 | ||
|
|
a416993543 | ||
|
|
76728b8bc6 | ||
|
|
9822b878e0 | ||
|
|
ccbc5af870 | ||
|
|
bdc250babc | ||
|
|
cb1356b321 | ||
|
|
e1cc7fc197 | ||
|
|
0e57851625 | ||
|
|
5c677cf208 | ||
|
|
bf06c5e25a | ||
|
|
40da04a139 | ||
|
|
81bae80881 | ||
|
|
be30c7f74e | ||
|
|
99525899e8 | ||
|
|
6500973c26 | ||
|
|
3102b936a1 | ||
|
|
5870f67ab1 | ||
|
|
d1ba1579ee | ||
|
|
6ecf117f14 | ||
|
|
7f2157c848 | ||
|
|
06820a34e3 | ||
|
|
ee93a63b2f | ||
|
|
1862010c83 | ||
|
|
7d543e7b8f | ||
|
|
8ce2b50c32 | ||
|
|
8fa3d35e1b | ||
|
|
d84b71a0a9 | ||
|
|
a1cc5e9289 | ||
|
|
f4dd23b4f4 | ||
|
|
6e67205ba7 | ||
|
|
e6be77a26c | ||
|
|
43dd26f988 | ||
|
|
fb1c018ecc | ||
|
|
7341b65d47 | ||
|
|
0d5a20cb05 | ||
|
|
8649a7a09f | ||
|
|
ed26903938 | ||
|
|
0532b01ed6 | ||
|
|
5eddd1ec39 | ||
|
|
dc653165b0 | ||
|
|
8286a91388 | ||
|
|
277cd95e91 | ||
|
|
7b4d892cb6 | ||
|
|
4acf3ecbc7 | ||
|
|
28318a2528 | ||
|
|
4c505019e1 | ||
|
|
8430d83828 | ||
|
|
3754970367 | ||
|
|
443f232a77 | ||
|
|
2a59ad3b8c | ||
|
|
0aa00c0fbe | ||
|
|
9cd3264af8 | ||
|
|
2d7fc2d5a6 | ||
|
|
4b24acd9f1 | ||
|
|
4d6469ffd8 | ||
|
|
b3def9bbf7 | ||
|
|
d9cf22cc5a | ||
|
|
b13b64028b | ||
|
|
22b2741ede | ||
|
|
a42b13d33c | ||
|
|
442d6ced85 | ||
|
|
e5e510dbab | ||
|
|
91c526913b | ||
|
|
c441671e8f | ||
|
|
ff3c8a493f | ||
|
|
cadd13e50e | ||
|
|
e81bc5977d | ||
|
|
5fa0c17a78 | ||
|
|
a75a29c672 | ||
|
|
64b01fda14 | ||
|
|
0d8b7ca851 | ||
|
|
68a6aa2d6b | ||
|
|
2c0dd6a4a0 | ||
|
|
ba58299f9f | ||
|
|
8e2a60c9be | ||
|
|
2e8bd7f1b7 | ||
|
|
a5e335d7fc | ||
|
|
cb1aa919c6 | ||
|
|
d6b57bc73c | ||
|
|
d329d5aa52 | ||
|
|
a6ddec4212 | ||
|
|
846e500945 | ||
|
|
d34be4f321 | ||
|
|
568a4d27a5 | ||
|
|
b96444c0ea | ||
|
|
b8c73bcafc | ||
|
|
0e8a52d67d | ||
|
|
a9a7328240 | ||
|
|
c5f64b7598 | ||
|
|
b6912ff3a5 | ||
|
|
999be987b8 | ||
|
|
e250e9a4cf | ||
|
|
9076806d8b | ||
|
|
e3de0d3aad | ||
|
|
b0e0a30968 | ||
|
|
be63967070 | ||
|
|
4f732afd9f | ||
|
|
9af3aa4881 | ||
|
|
f87803be34 | ||
|
|
12e4b8f53f | ||
|
|
89d64b1a47 | ||
|
|
92d603dee6 | ||
|
|
6274516032 | ||
|
|
c725b1099d | ||
|
|
f3ed132d3e | ||
|
|
3e132fc2dd | ||
|
|
e53dc99784 | ||
|
|
324ee987c2 | ||
|
|
743fcc320a | ||
|
|
6e988470c5 | ||
|
|
7f798dd711 | ||
|
|
6726b1b9ae | ||
|
|
2eb62acc96 | ||
|
|
b98552bc41 | ||
|
|
2967621174 | ||
|
|
b30361923f | ||
|
|
3143f3898a | ||
|
|
cd456aadac | ||
|
|
83a781a5cb | ||
|
|
bf02e7fc0e | ||
|
|
94b66c797a | ||
|
|
906e5d9a44 | ||
|
|
3586ef316a | ||
|
|
06ae29048d | ||
|
|
c0bb9cf185 | ||
|
|
ebf8257047 | ||
|
|
caf3ffe905 | ||
|
|
7c409af694 | ||
|
|
52bf46a127 | ||
|
|
50b107e596 | ||
|
|
436100336e | ||
|
|
874d2a93ca | ||
|
|
780bc6eec5 | ||
|
|
71255518a1 | ||
|
|
209e3656f4 | ||
|
|
7808280b34 | ||
|
|
97fa54f9ce | ||
|
|
d36d62e4bd | ||
|
|
3cb679d7eb | ||
|
|
88d24b4a1f | ||
|
|
247ec13dca | ||
|
|
d76a60502e | ||
|
|
190bfdeebf | ||
|
|
0accbaef11 | ||
|
|
279b38bba7 | ||
|
|
c5daf291bc | ||
|
|
fa49fa674f | ||
|
|
f9bb7d0c54 | ||
|
|
82494242f6 | ||
|
|
b7e19163d0 | ||
|
|
c4e5249157 | ||
|
|
76ff26a403 | ||
|
|
8e7dd3dc3b | ||
|
|
29066a4d86 | ||
|
|
1d88d93a9f | ||
|
|
09b12d15aa | ||
|
|
5176eed72b | ||
|
|
af9b016643 | ||
|
|
143b2be8af | ||
|
|
337bd0b9a6 | ||
|
|
8a632dc62e | ||
|
|
2eafec42b4 | ||
|
|
8f2f39c7de | ||
|
|
202cfcbd68 | ||
|
|
4e94f97dc3 | ||
|
|
3ce45a6410 | ||
|
|
f0071326b6 | ||
|
|
a69894ef8d | ||
|
|
fd6e014c51 | ||
|
|
9c19f7fb52 | ||
|
|
e48608e085 | ||
|
|
3b14986bdf | ||
|
|
b996c77e49 | ||
|
|
28258cb820 | ||
|
|
f52d07f49d | ||
|
|
6c3042c1c1 | ||
|
|
5c4a9f33ca | ||
|
|
19f6ed9078 | ||
|
|
1f67b99159 | ||
|
|
4225f61923 | ||
|
|
54917c2337 | ||
|
|
d68222d82d | ||
|
|
76da0b0d88 | ||
|
|
5afab04e30 | ||
|
|
b783a1581b | ||
|
|
158f643b1b | ||
|
|
73f5b98c6a | ||
|
|
42bbd88053 | ||
|
|
e3dba335d6 | ||
|
|
869d896a81 | ||
|
|
eeebfdd21a | ||
|
|
ff176a9e4f | ||
|
|
d64c82f27f | ||
|
|
b20d2886be | ||
|
|
6c12ffeaea | ||
|
|
2c72343b44 | ||
|
|
49d33b4bc7 | ||
|
|
3915248ed4 | ||
|
|
13b0ed0b27 | ||
|
|
5f164676bf | ||
|
|
8c76e41fde | ||
|
|
2e8e9ee1c6 | ||
|
|
b7e3a3f29f | ||
|
|
924fdffe5e | ||
|
|
7a9d9a7ba7 | ||
|
|
b28493b383 | ||
|
|
d784df90b6 | ||
|
|
0b1ac9b978 | ||
|
|
cfe4fac9dd | ||
|
|
d715750881 | ||
|
|
91cf1000ac | ||
|
|
4f65b92f3e | ||
|
|
c95fad6e63 | ||
|
|
a6aa7dd5b9 | ||
|
|
23b633ec92 | ||
|
|
46d48a2f5c | ||
|
|
44f2aedc24 | ||
|
|
4d8d8cde8e | ||
|
|
eba7320df5 | ||
|
|
bad4b4d751 | ||
|
|
4e9f851074 | ||
|
|
809350646f | ||
|
|
957babcb24 | ||
|
|
8c55d10d43 | ||
|
|
063a4dc0ca | ||
|
|
2a238ee552 | ||
|
|
31848f6338 | ||
|
|
fe45df681a | ||
|
|
35c4a601b6 | ||
|
|
71da3b1939 | ||
|
|
9bfde0aa2f | ||
|
|
d838cbc2b6 | ||
|
|
99772d76b0 | ||
|
|
7cf5baf22e | ||
|
|
b9ff1fe73f | ||
|
|
5418be142c | ||
|
|
029d4e2e96 | ||
|
|
3e712d3702 | ||
|
|
0f06d0d648 | ||
|
|
254b0113c3 | ||
|
|
99b63ca8e5 | ||
|
|
41b0f3c45e | ||
|
|
d7900926bf | ||
|
|
55c63a0a2a | ||
|
|
69a03ffca0 | ||
|
|
8425487239 | ||
|
|
27c469af58 | ||
|
|
f0abe76652 | ||
|
|
fc2991c7ef | ||
|
|
651daefa44 | ||
|
|
cce4e4dfd1 | ||
|
|
c41d48e594 | ||
|
|
45821672b8 | ||
|
|
0d394c0384 | ||
|
|
f2a67f7a06 | ||
|
|
eb38c046c2 | ||
|
|
a99459476b | ||
|
|
8bdbeeb578 | ||
|
|
c0ea6ba330 | ||
|
|
37f6a3aa4a | ||
|
|
24857eb4d7 | ||
|
|
55a6083be3 | ||
|
|
0f5bed2b20 | ||
|
|
738f50a3ea | ||
|
|
fada3ef8b4 | ||
|
|
1ff98661fd | ||
|
|
aa581ebea2 | ||
|
|
3dd871586f | ||
|
|
66ca4808dc | ||
|
|
4b5c0b2f7f | ||
|
|
77ba4437d2 | ||
|
|
7170458302 | ||
|
|
a944881a26 | ||
|
|
e7e864a4f7 | ||
|
|
5b66b31816 | ||
|
|
e8fea68e5e | ||
|
|
82a9f3af05 | ||
|
|
8b07cdbf50 | ||
|
|
a48b15f7b5 | ||
|
|
edc82c63e0 | ||
|
|
d28b2fe160 | ||
|
|
b1faf7c293 | ||
|
|
2040cb5d03 | ||
|
|
5c55176815 | ||
|
|
22c656d70e | ||
|
|
c7006f0e70 | ||
|
|
8f7c2b2005 | ||
|
|
733dea75ad | ||
|
|
a4f1719ff3 | ||
|
|
575f111831 | ||
|
|
e07e0b2f56 | ||
|
|
5f0be5b5cd | ||
|
|
c636f4796b | ||
|
|
8c9921ab10 | ||
|
|
772e290caa | ||
|
|
baf58aadc7 | ||
|
|
e8b033871d | ||
|
|
6f6d3c23f4 |
@@ -1,4 +1,4 @@
|
||||
Copyright (C) 2004-2011 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright (C) 2004-2010 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,15 +13,9 @@ 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.9.18.9 2011/02/22 06:45:07 marka Exp $
|
||||
$Id: COPYRIGHT,v 1.14.176.2 2010/01/07 23:47:36 tbox Exp $
|
||||
|
||||
Portions of this code release fall under one or more of the
|
||||
following Copyright notices. Please see individual source
|
||||
files for details.
|
||||
|
||||
For binary releases also see: OpenSSL-LICENSE.
|
||||
|
||||
Copyright (C) 1996-2001 Nominum, Inc.
|
||||
Portions Copyright (C) 1996-2001 Nominum, Inc.
|
||||
|
||||
Permission to use, copy, modify, and distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -34,485 +28,3 @@ 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.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1995-2000 by Network Associates, Inc.
|
||||
|
||||
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 AND NETWORK ASSOCIATES 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.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 2002 Stichting NLnet, Netherlands, stichting@nlnet.nl.
|
||||
|
||||
Permission to use, copy, modify, and 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 STICHTING NLNET
|
||||
DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
STICHTING NLNET 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.
|
||||
|
||||
The development of Dynamically Loadable Zones (DLZ) for Bind 9 was
|
||||
conceived and contributed by Rob Butler.
|
||||
|
||||
Permission to use, copy, modify, and 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 ROB BUTLER
|
||||
DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
ROB BUTLER 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.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Copyright (c) 1987, 1990, 1993, 1994
|
||||
The Regents of the University of California. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. All advertising materials mentioning features or use of this software
|
||||
must display the following acknowledgement:
|
||||
This product includes software developed by the University of
|
||||
California, Berkeley and its contributors.
|
||||
4. Neither the name of the University nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) The Internet Society 2005. This version of
|
||||
this module is part of RFC 4178; see the RFC itself for
|
||||
full legal notices.
|
||||
|
||||
(The above copyright notice is per RFC 3978 5.6 (a), q.v.)
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Copyright (c) 2004 Masarykova universita
|
||||
(Masaryk University, Brno, Czech Republic)
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the University nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Copyright (c) 1997 - 2003 Kungliga Tekniska Högskolan
|
||||
(Royal Institute of Technology, Stockholm, Sweden).
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the Institute nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Copyright (c) 1998 Doug Rabson
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Copyright ((c)) 2002, Rice University
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
|
||||
* Neither the name of Rice University (RICE) nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
|
||||
This software is provided by RICE and the contributors on an "as is"
|
||||
basis, without any representations or warranties of any kind, express
|
||||
or implied including, but not limited to, representations or
|
||||
warranties of non-infringement, merchantability or fitness for a
|
||||
particular purpose. In no event shall RICE or contributors be liable
|
||||
for any direct, indirect, incidental, special, exemplary, or
|
||||
consequential damages (including, but not limited to, procurement of
|
||||
substitute goods or services; loss of use, data, or profits; or
|
||||
business interruption) however caused and on any theory of liability,
|
||||
whether in contract, strict liability, or tort (including negligence
|
||||
or otherwise) arising in any way out of the use of this software, even
|
||||
if advised of the possibility of such damage.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Copyright (c) 1993 by Digital Equipment Corporation.
|
||||
|
||||
Permission to use, copy, modify, and 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, and that
|
||||
the name of Digital Equipment Corporation not be used in advertising or
|
||||
publicity pertaining to distribution of the document or software without
|
||||
specific, written prior permission.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
|
||||
WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
|
||||
CORPORATION 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.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Copyright 2000 Aaron D. Gifford. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. Neither the name of the copyright holder nor the names of contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) AND CONTRIBUTOR(S) ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) OR CONTRIBUTOR(S) BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Copyright (c) 1998 Doug Rabson.
|
||||
Copyright (c) 2001 Jake Burkholder.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. Neither the name of the project nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Copyright (c) 1999-2000 by Nortel Networks Corporation
|
||||
|
||||
Permission to use, copy, modify, and 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 NORTEL NETWORKS DISCLAIMS
|
||||
ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NORTEL NETWORKS
|
||||
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.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved.
|
||||
|
||||
By using this file, you agree to the terms and conditions set forth bellow.
|
||||
|
||||
LICENSE TERMS AND CONDITIONS
|
||||
|
||||
The following License Terms and Conditions apply, unless a different
|
||||
license is obtained from Japan Network Information Center ("JPNIC"),
|
||||
a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
|
||||
Chiyoda-ku, Tokyo 101-0047, Japan.
|
||||
|
||||
1. Use, Modification and Redistribution (including distribution of any
|
||||
modified or derived work) in source and/or binary forms is permitted
|
||||
under this License Terms and Conditions.
|
||||
|
||||
2. Redistribution of source code must retain the copyright notices as they
|
||||
appear in each source code file, this License Terms and Conditions.
|
||||
|
||||
3. Redistribution in binary form must reproduce the Copyright Notice,
|
||||
this License Terms and Conditions, in the documentation and/or other
|
||||
materials provided with the distribution. For the purposes of binary
|
||||
distribution the "Copyright Notice" refers to the following language:
|
||||
"Copyright (c) 2000-2002 Japan Network Information Center. All rights
|
||||
reserved."
|
||||
|
||||
4. The name of JPNIC may not be used to endorse or promote products
|
||||
derived from this Software without specific prior written approval of
|
||||
JPNIC.
|
||||
|
||||
5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 2004 Nominet, Ltd.
|
||||
|
||||
Permission to use, copy, modify, and 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 NOMINET 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.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Portions Copyright RSA Security Inc.
|
||||
|
||||
License to copy and use this software is granted provided that it is
|
||||
identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface
|
||||
(Cryptoki)" in all material mentioning or referencing this software.
|
||||
|
||||
License is also granted to make and use derivative works provided that
|
||||
such works are identified as "derived from the RSA Security Inc. PKCS #11
|
||||
Cryptographic Token Interface (Cryptoki)" in all material mentioning or
|
||||
referencing the derived work.
|
||||
|
||||
RSA Security Inc. makes no representations concerning either the
|
||||
merchantability of this software or the suitability of this software for
|
||||
any particular purpose. It is provided "as is" without express or implied
|
||||
warranty of any kind.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Copyright (c) 1996, David Mazieres <dm@uun.org>
|
||||
Copyright (c) 2008, Damien Miller <djm@openbsd.org>
|
||||
|
||||
Permission to use, copy, modify, and 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 THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR 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.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Copyright (c) 2000-2001 The OpenSSL Project. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
3. All advertising materials mentioning features or use of this
|
||||
software must display the following acknowledgment:
|
||||
"This product includes software developed by the OpenSSL Project
|
||||
for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
|
||||
|
||||
4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
endorse or promote products derived from this software without
|
||||
prior written permission. For written permission, please contact
|
||||
licensing@OpenSSL.org.
|
||||
|
||||
5. Products derived from this software may not be called "OpenSSL"
|
||||
nor may "OpenSSL" appear in their names without prior written
|
||||
permission of the OpenSSL Project.
|
||||
|
||||
6. Redistributions of any form whatsoever must retain the following
|
||||
acknowledgment:
|
||||
"This product includes software developed by the OpenSSL Project
|
||||
for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
@@ -0,0 +1,204 @@
|
||||
2796. [bug] Missing dns_rdataset_disassociate() call in
|
||||
dns_nsec3_delnsec3sx(). [RT #20681]
|
||||
|
||||
2795. [cleanup] Add text to differentiate "update with no effect"
|
||||
log messages. [RT #18889]
|
||||
|
||||
2794. [bug] Install <isc/namespace.h>. [RT #20677]
|
||||
|
||||
2791. [bug] The installation of isc-config.sh was broken.
|
||||
[RT #20667]
|
||||
|
||||
2788. [bug] dnssec-signzone could sign with keys that were
|
||||
not requested [RT #20625]
|
||||
|
||||
2787. [bug] Spurious log message when zone keys were
|
||||
dynamically reconfigured. [RT #20659]
|
||||
|
||||
2785. [bug] Revoked keys could fail to self-sign [RT #20652]
|
||||
|
||||
2781. [bug] Inactive keys could be used for signing. [RT #20649]
|
||||
|
||||
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]
|
||||
|
||||
2778. [bug] dnssec-signzone could fail when a key was revoked
|
||||
without deleting the unrevoked version. [RT #20638]
|
||||
|
||||
2763. [bug] "rndc sign" didn't create an NSEC chain. [RT #20591]
|
||||
|
||||
2761. [cleanup] Enable internal symbol table for backtrace only for
|
||||
systems that are known to work. Currently, BSD
|
||||
variants, Linux and Solaris are supported. [RT# 20202]
|
||||
|
||||
2775. [bug] Accept RSASHA256 and RSASHA512 as NSEC3 compatible
|
||||
in dnssec-keyfromlabel. [RT #20643]
|
||||
|
||||
2773. [bug] In autosigned zones, the SOA could be signed
|
||||
with the KSK. [RT #20628]
|
||||
|
||||
2771. [bug] dnssec-signzone: DNSKEY records could be
|
||||
corrupted when importing from key files [RT #20624]
|
||||
|
||||
2770. [cleanup] Add log messages to resolver.c to indicate events
|
||||
causing FORMERR responses. [RT #20526]
|
||||
|
||||
2769. [cleanup] Change #2742 was incomplete. [RT #19589]
|
||||
|
||||
2768. [bug] dnssec-signzone: -S no longer implies -g [RT #20568]
|
||||
|
||||
2767. [bug] named could crash on startup if a zone was
|
||||
configured with auto-dnssec and there was no
|
||||
key-directory. [RT #20615]
|
||||
|
||||
2766. [bug] isc_socket_fdwatchpoke() should only update the
|
||||
socketmgr state if the socket is not pending on a
|
||||
read or write. [RT #20603]
|
||||
|
||||
2764. [bug] "rndc-confgen -a" could trigger a REQUIRE. [RT #20610]
|
||||
|
||||
2756. [bug] Fixed corrupt logfile message in update.c. [RT# 20597]
|
||||
|
||||
2753. [bug] Removed an unnecessary warning that could appear when
|
||||
building an NSEC chain. [RT #20589]
|
||||
|
||||
2752. [bug] Locking violation. [RT #20587]
|
||||
|
||||
2751. [bug] Fixed a memory leak in dnssec-keyfromlabel. [RT #20588]
|
||||
|
||||
2746. [port] hpux: address signed/unsigned expansion mismatch of
|
||||
dns_rbtnode_t.nsec. [RT #20542]
|
||||
|
||||
2745. [bug] configure script didn't probe the return type of
|
||||
gai_strerror(3) correctly. [RT #20573]
|
||||
|
||||
2774. [bug] Existing cache DB wasn't being reused after
|
||||
reconfiguration. [RT #20629]
|
||||
|
||||
2742. [cleanup] Clarify some DNSSEC-related log messages in
|
||||
validator.c. [RT #19589]
|
||||
|
||||
2739. [cleanup] Clean up API for initializing and clearing trust
|
||||
anchors for a view. [RT #20211]
|
||||
|
||||
2735. [bug] dnssec-signzone could fail to read keys
|
||||
that were specified on the command line with
|
||||
full paths, but weren't in the current
|
||||
directory. [RT #20421]
|
||||
|
||||
2734. [port] cygwin: arpaname did not compile. [RT #20473]
|
||||
|
||||
2733. [cleanup] Clean up coding style in pkcs11-* tools. [RT #20355]
|
||||
|
||||
2728. [bug] dssec-keygen, dnssec-keyfromlabel and
|
||||
dnssec-signzone now warn immediately if asked to
|
||||
write into a nonexistent directory. [RT #20278]
|
||||
|
||||
2725. [doc] Added information about the file "managed-keys.bind"
|
||||
to the ARM. [RT #20235]
|
||||
|
||||
2724. [bug] Updates to a existing node in secure zone using NSEC
|
||||
were failing. [RT #20448]
|
||||
|
||||
2720. [bug] RFC 5011 trust anchor updates could trigger an
|
||||
assert if the DNSKEY record was unsigned. [RT #20406]
|
||||
|
||||
2717. [bug] named failed to update the NSEC/NSEC3 record when
|
||||
the last private type record was removed as a result
|
||||
of completing the signing the zone with a key.
|
||||
[RT #20399]
|
||||
|
||||
2711. [port] win32: Add the bin/pkcs11 tools into the full
|
||||
build. [RT #20372]
|
||||
|
||||
2694. [bug] Reduce default NSEC3 iterations from 100 to 10.
|
||||
[RT #19970]
|
||||
|
||||
2693. [port] Add some noreturn attributes. [RT #20257]
|
||||
|
||||
2687. [bug] Fixed dnssec-signzone -S handling of revoked keys.
|
||||
Also, added warnings when revoking a ZSK, as this is
|
||||
not defined by protocol (but is legal). [RT #19943]
|
||||
|
||||
2684. [cleanup] dig: formalize +ad and +cd as synonyms for
|
||||
+adflag and +cdflag. [RT #19305]
|
||||
|
||||
2682. [bug] "configure --enable-symtable=all" failed to
|
||||
build. [RT #20282]
|
||||
|
||||
2676. [bug] --with-export-installdir should have been
|
||||
--with-export-includedir. [RT #20252]
|
||||
|
||||
2675. [bug] dnssec-signzone could crash if the key directory
|
||||
did not exist. [RT #20232]
|
||||
|
||||
2674. [bug] "dnssec-lookaside auto;" crashed if named was built
|
||||
without openssl. [RT #20231]
|
||||
|
||||
2673. [bug] The managed-keys.bind zone file could fail to
|
||||
load due to a spurious result from sync_keyzone()
|
||||
[RT #20045]
|
||||
|
||||
2671. [bug] Add support for PKCS#11 providers not returning
|
||||
the public exponent in RSA private keys
|
||||
(OpenCryptoki for instance) in
|
||||
dnssec-keyfromlabel. [RT #19294]
|
||||
|
||||
2664. [bug] create_keydata() and minimal_update() in zone.c
|
||||
didn't properly check return values for some
|
||||
functions. [RT #19956]
|
||||
|
||||
2658. [bug] dnssec-settime and dnssec-revoke didn't process
|
||||
key file paths correctly. [RT #20078]
|
||||
|
||||
2657. [cleanup] Lower "journal file <path> does not exist, creating it"
|
||||
log level to debug 1. [RT #20058]
|
||||
|
||||
2654. [bug] Improve error reporting on duplicated names for
|
||||
deny-answer-xxx. [RT #20164]
|
||||
|
||||
2651. [bug] Dates could print incorrectly in K*.key files on
|
||||
64-bit systems. [RT #20076]
|
||||
|
||||
2650. [bug] Assertion failure in dnssec-signzone when trying
|
||||
to read keyset-* files. [RT #20075]
|
||||
|
||||
2644. [bug] Change #2628 caused a regression on some systems;
|
||||
named was unable to write the PID file and would
|
||||
fail on startup. [RT #20001]
|
||||
|
||||
2641. [bug] Fixed an error in parsing update-policy syntax,
|
||||
added a regression test to check it. [RT #20007]
|
||||
|
||||
2638. [bug] Install arpaname. [RT #19957]
|
||||
|
||||
2634. [port] win32: Add support for libxml2, enable
|
||||
statschannel. [RT #19773]
|
||||
|
||||
2631. [bug] Handle "//", "/./" and "/../" in mkdirpath().
|
||||
[RT #19926 ]
|
||||
|
||||
2629. [port] Check for seteuid()/setegid(), use setresuid()/
|
||||
setresgid() if not present. [RT #19932]
|
||||
|
||||
2628. [port] linux: Allow /var/run/named/named.pid to be opened
|
||||
at startup with reduced capabilities in operation.
|
||||
[RT #19884]
|
||||
|
||||
2627. [bug] Named aborted if the same key was included in
|
||||
trusted-keys more than once. [RT #19918]
|
||||
|
||||
2626. [bug] Multiple trusted-keys could trigger an assertion
|
||||
failure. [RT #19914]
|
||||
|
||||
2622. [bug] Printing of named.conf grammar was broken. [RT #19919]
|
||||
|
||||
2600. [doc] ARM: miscellaneous reformatting for different
|
||||
page widths. [RT #19574]
|
||||
|
||||
2566. [cleanup] Clarify logged message when an insecure DNSSEC
|
||||
response arrives from a zone thought to be secure:
|
||||
"insecurity proof failed" instead of "not
|
||||
insecure". [RT #19400]
|
||||
@@ -1,6 +1,6 @@
|
||||
Frequently Asked Questions about BIND 9
|
||||
|
||||
Copyright © 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright © 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
|
||||
Copyright © 2000-2003 Internet Software Consortium.
|
||||
|
||||
@@ -244,7 +244,7 @@ A: You choose one view to be master and the second a slave and transfer
|
||||
type master;
|
||||
file "internal/example.db";
|
||||
allow-update { key mykey; };
|
||||
notify-also { 10.0.1.1; };
|
||||
also-notify { 10.0.1.1; };
|
||||
};
|
||||
};
|
||||
|
||||
@@ -254,7 +254,7 @@ A: You choose one view to be master and the second a slave and transfer
|
||||
type slave;
|
||||
file "external/example.db";
|
||||
masters { 10.0.1.1; };
|
||||
transfer-source { 10.0.1.1; };
|
||||
transfer-source 10.0.1.1;
|
||||
// allow-update-forwarding { any; };
|
||||
// allow-notify { ... };
|
||||
};
|
||||
@@ -784,6 +784,22 @@ A: Red Hat Security Enhanced Linux (SELinux) policy security protections :
|
||||
See these man-pages for more information : selinux(8), named_selinux
|
||||
(8), chcon(1), setsebool(8)
|
||||
|
||||
Q: I'm running BIND on Ubuntu -
|
||||
|
||||
Why can't named update slave zone database files?
|
||||
|
||||
Why can't named create DDNS journal files or update the master zones
|
||||
from journals?
|
||||
|
||||
Why can't named create custom log files?
|
||||
|
||||
A: Ubuntu uses AppArmor <http://en.wikipedia.org/wiki/AppArmor> in
|
||||
addition to normal file system permissions to protect the system.
|
||||
|
||||
Adjust the paths to use those specified in /etc/apparmor.d/
|
||||
usr.sbin.named or adjust /etc/apparmor.d/usr.sbin.named to allow named
|
||||
to write at the location specified in named.conf.
|
||||
|
||||
Q: Listening on individual IPv6 interfaces does not work.
|
||||
|
||||
A: This is usually due to "/proc/net/if_inet6" not being available in the
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" []>
|
||||
<!--
|
||||
- Copyright (C) 2004-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
|
||||
@@ -17,7 +17,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: FAQ.xml,v 1.4.4.29 2009/10/06 01:33:54 tbox Exp $ -->
|
||||
<!-- $Id: FAQ.xml,v 1.46.56.9 2010/01/20 23:47:43 tbox Exp $ -->
|
||||
|
||||
<article class="faq">
|
||||
<title>Frequently Asked Questions about BIND 9</title>
|
||||
@@ -29,6 +29,7 @@
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<year>2009</year>
|
||||
<year>2010</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -448,7 +449,7 @@ Master 10.0.1.1:
|
||||
type master;
|
||||
file "internal/example.db";
|
||||
allow-update { key mykey; };
|
||||
notify-also { 10.0.1.1; };
|
||||
also-notify { 10.0.1.1; };
|
||||
};
|
||||
};
|
||||
|
||||
@@ -458,7 +459,7 @@ Master 10.0.1.1:
|
||||
type slave;
|
||||
file "external/example.db";
|
||||
masters { 10.0.1.1; };
|
||||
transfer-source { 10.0.1.1; };
|
||||
transfer-source 10.0.1.1;
|
||||
// allow-update-forwarding { any; };
|
||||
// allow-notify { ... };
|
||||
};
|
||||
@@ -1382,6 +1383,36 @@ named_cache_t: for files modifiable by named - $ROOTDIR/var/{tmp,named/{slaves,d
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>
|
||||
I'm running BIND on Ubuntu -
|
||||
</para>
|
||||
<para>
|
||||
Why can't named update slave zone database files?
|
||||
</para>
|
||||
<para>
|
||||
Why can't named create DDNS journal files or update
|
||||
the master zones from journals?
|
||||
</para>
|
||||
<para>
|
||||
Why can't named create custom log files?
|
||||
</para>
|
||||
</question>
|
||||
<answer>
|
||||
<para>
|
||||
Ubuntu uses AppArmor <ulink url="http://en.wikipedia.org/wiki/AppArmor">
|
||||
<http://en.wikipedia.org/wiki/AppArmor></ulink> in
|
||||
addition to normal file system permissions to protect the system.
|
||||
</para>
|
||||
<para>
|
||||
Adjust the paths to use those specified in /etc/apparmor.d/usr.sbin.named
|
||||
or adjust /etc/apparmor.d/usr.sbin.named to allow named to write at the
|
||||
location specified in named.conf.
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
dnssec-signzone was designed so that it could sign a zone partially, using
|
||||
only a subset of the DNSSEC keys needed to produce a fully-signed zone.
|
||||
This permits a zone administrator, for example, to sign a zone with one
|
||||
key on one machine, move the resulting partially-signed zone to a second
|
||||
machine, and sign it again with a second key.
|
||||
|
||||
An unfortunate side-effect of this flexibility is that dnssec-signzone
|
||||
does not check to make sure it's signing a zone with any valid keys at
|
||||
all. An attempt to sign a zone without any keys will appear to succeed,
|
||||
producing a "signed" zone with no signatures. There is no warning issued
|
||||
when a zone is not signed.
|
||||
|
||||
This will be corrected in a future release. In the meantime, ISC
|
||||
recommends examining the output of dnssec-signzone to confirm that
|
||||
the zone is properly signed by all keys before using it.
|
||||
+3
-10
@@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004-2009 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.43.18.8 2009/02/20 23:46:01 tbox Exp $
|
||||
# $Id: Makefile.in,v 1.52.48.2 2009/02/20 23:47:23 tbox Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
@@ -21,7 +21,7 @@ top_srcdir = @top_srcdir@
|
||||
|
||||
@BIND9_VERSION@
|
||||
|
||||
SUBDIRS = make lib bin doc @LIBBIND@
|
||||
SUBDIRS = make lib bin doc
|
||||
TARGETS =
|
||||
|
||||
MANPAGES = isc-config.sh.1
|
||||
@@ -32,13 +32,6 @@ MANOBJS = ${MANPAGES} ${HTMLPAGES}
|
||||
|
||||
@BIND9_MAKE_RULES@
|
||||
|
||||
distclean::
|
||||
@if [ "X@LIBBIND@" = "X" ] ; then \
|
||||
i=lib/bind; \
|
||||
echo "making $@ in `pwd`/$$i"; \
|
||||
(cd $$i; ${MAKE} ${MAKEDEFS} $@) || exit 1; \
|
||||
fi
|
||||
|
||||
distclean::
|
||||
rm -f config.cache config.h config.log config.status TAGS
|
||||
rm -f libtool isc-config.sh configure.lineno
|
||||
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
|
||||
DNSSEC and UPDATE
|
||||
|
||||
Converting from insecure to secure
|
||||
|
||||
As of BIND 9.6.0 it is possible to move a zone between being insecure
|
||||
to secure and back again. A secure zone can be using NSEC or NSEC3.
|
||||
|
||||
To move a zone from insecure to secure you need to configure named
|
||||
so that it can see the K* files which contain the public and private
|
||||
parts of the keys that will be used to sign the zone. These files
|
||||
will have been generated by dnssec-keygen. You can do this by
|
||||
placing them in the key-directory as specified in named.conf.
|
||||
|
||||
zone example.net {
|
||||
type master;
|
||||
allow-update { .... };
|
||||
file "dynamic/example.net/example.net";
|
||||
key-directory "dynamic/example.net";
|
||||
};
|
||||
|
||||
Assuming one KSK and one ZSK DNSKEY key have been generated. Then
|
||||
this will cause the zone to be signed with the ZSK and the DNSKEY
|
||||
RRset to be signed with the KSK DNSKEY. A NSEC chain will also be
|
||||
generated as part of the initial signing process.
|
||||
|
||||
% nsupdate
|
||||
> ttl 3600
|
||||
> update add example.net DNSKEY 256 3 7 AwEAAZn17pUF0KpbPA2c7Gz76Vb18v0teKT3EyAGfBfL8eQ8al35zz3Y I1m/SAQBxIqMfLtIwqWPdgthsu36azGQAX8=
|
||||
> update add example.net DNSKEY 257 3 7 AwEAAd/7odU/64o2LGsifbLtQmtO8dFDtTAZXSX2+X3e/UNlq9IHq3Y0 XtC0Iuawl/qkaKVxXe2lo8Ct+dM6UehyCqk=
|
||||
> send
|
||||
|
||||
While the update request will complete almost immediately the zone
|
||||
will not be completely signed until named has had time to walk the
|
||||
zone and generate the NSEC and RRSIG records. Initially the NSEC
|
||||
record at the zone apex will have the OPT bit set. When the NSEC
|
||||
chain is complete the OPT bit will be cleared. Additionally when
|
||||
the zone is fully signed the private type (default TYPE65534) records
|
||||
will have a non zero value for the final octet.
|
||||
|
||||
The private type record has 5 octets.
|
||||
algorithm (octet 1)
|
||||
key id in network order (octet 2 and 3)
|
||||
removal flag (octet 4)
|
||||
complete flag (octet 5)
|
||||
|
||||
If you wish to go straight to a secure zone using NSEC3 you should
|
||||
also add a NSEC3PARAM record to the update request with the flags
|
||||
field set to indicate whether the NSEC3 chain will have the OPTOUT
|
||||
bit set or not.
|
||||
|
||||
% nsupdate
|
||||
> ttl 3600
|
||||
> update add example.net DNSKEY 256 3 7 AwEAAZn17pUF0KpbPA2c7Gz76Vb18v0teKT3EyAGfBfL8eQ8al35zz3Y I1m/SAQBxIqMfLtIwqWPdgthsu36azGQAX8=
|
||||
> update add example.net DNSKEY 257 3 7 AwEAAd/7odU/64o2LGsifbLtQmtO8dFDtTAZXSX2+X3e/UNlq9IHq3Y0 XtC0Iuawl/qkaKVxXe2lo8Ct+dM6UehyCqk=
|
||||
> update add example.net NSEC3PARAM 1 1 100 1234567890
|
||||
> send
|
||||
|
||||
Again the update request will complete almost immediately however the
|
||||
NSEC3PARAM record will have additional flag bits set indicating that the
|
||||
NSEC3 chain is under construction. When the NSEC3 chain is complete the
|
||||
flags field will be set to zero.
|
||||
|
||||
While the initial signing and NSEC/NSEC3 chain generation is happening
|
||||
other updates are possible.
|
||||
|
||||
DNSKEY roll overs via UPDATE
|
||||
|
||||
It is possible to perform key rollovers via update. You need to
|
||||
add the K* files for the new keys so that named can find them. You
|
||||
can then add the new DNSKEY RRs via update. Named will then cause
|
||||
the zone to be signed with the new keys. When the signing is
|
||||
complete the private type records will be updated so that the last
|
||||
octet is non zero.
|
||||
|
||||
If this is for a KSK you need to inform the parent and any trust
|
||||
anchor repositories of the new KSK.
|
||||
|
||||
You should then wait for the maximum TLL in the zone before removing the
|
||||
old DNSKEY. If it is a KSK that is being updated you also need to wait
|
||||
for the DS RRset in the parent to be updated and its TTL to expire.
|
||||
This ensures that all clients will be able to verify at least a signature
|
||||
when you remove the old DNSKEY.
|
||||
|
||||
The old DNSKEY can be removed via UPDATE. Take care to specify
|
||||
the correct key. Named will clean out any signatures generated by
|
||||
the old key after the update completes.
|
||||
|
||||
NSEC3PARAM rollovers via UPDATE.
|
||||
|
||||
Add the new NSEC3PARAM record via update. When the new NSEC3 chain
|
||||
has been generated the NSEC3PARAM flag field will be zero. At this
|
||||
point you can remove the old NSEC3PARAM record. The old chain will
|
||||
be removed after the update request completes.
|
||||
|
||||
Converting from NSEC to NSEC3
|
||||
|
||||
To do this you just need to add a NSEC3PARAM record. When the
|
||||
conversion is complete the NSEC chain will have been removed and
|
||||
the NSEC3PARAM record will have a zero flag field. The NSEC3 chain
|
||||
will be generated before the NSEC chain is destroyed.
|
||||
|
||||
Converting from NSEC3 to NSEC
|
||||
|
||||
To do this remove all NSEC3PARAM records with a zero flag field. The
|
||||
NSEC chain will be generated before the NSEC3 chain is removed.
|
||||
|
||||
Converting from secure to insecure
|
||||
|
||||
To do this remove all the DNSKEY records. Any NSEC or NSEC3 chains
|
||||
will be removed as well as associated NSEC3PARAM records. This will
|
||||
take place after the update requests completes.
|
||||
|
||||
Periodic re-signing.
|
||||
|
||||
Named will periodically re-sign RRsets which have not been re-signed
|
||||
as a result of some update action. The signature lifetimes will
|
||||
be adjusted so as to spread the re-sign load over time rather than
|
||||
all at once.
|
||||
|
||||
NSEC3 and OPTOUT
|
||||
|
||||
Named only supports creating new NSEC3 chains where all the NSEC3
|
||||
records in the zone have the same OPTOUT state. Named supports
|
||||
UPDATES to zones where the NSEC3 records in the chain have mixed
|
||||
OPTOUT state. Named does not support changing the OPTOUT state of
|
||||
an individual NSEC3 record, the entire chain needs to be changed if
|
||||
the OPTOUT state of an individual NSEC3 needs to be changed.
|
||||
@@ -27,8 +27,8 @@ BIND 9
|
||||
- Improved Portability Architecture
|
||||
|
||||
|
||||
BIND version 9 development has been under written by the following
|
||||
organisations:
|
||||
BIND version 9 development has been underwritten by the following
|
||||
organizations:
|
||||
|
||||
Sun Microsystems, Inc.
|
||||
Hewlett Packard
|
||||
@@ -42,46 +42,82 @@ BIND 9
|
||||
Stichting NLnet - NLnet Foundation
|
||||
Nominum, Inc.
|
||||
|
||||
BIND 9.4-ESV-R5 (Extended Support Version)
|
||||
BIND 9.6-ESV (Extended Support Version)
|
||||
|
||||
BIND 9.4-ESV-R5 is expected to be the last release in the 9.4
|
||||
series.
|
||||
BIND 9.6-ESV will be supported until March 31, 2013, at
|
||||
which time you will need to upgrade to the current release
|
||||
of BIND.
|
||||
|
||||
BIND 9.4-ESV (Extended Support Version)
|
||||
BIND 9.6.2
|
||||
|
||||
BIND 9.4-ESV is the Extended Support Version of BIND 9.4
|
||||
and incorporates the final maintenance release fixing bugs
|
||||
in BIND 9.4.3.
|
||||
BIND 9.6.2 is a maintenance release, fixing bugs in 9.6.1.
|
||||
It also introduces support for the SHA-2 DNSSEC algorithms,
|
||||
RSASHA256 and RSASHA512.
|
||||
|
||||
BIND 9.4-ESV will be supported until May 31, 2011, at which
|
||||
time you will need to upgrade to the current release of BIND.
|
||||
Known issues in this release:
|
||||
|
||||
BIND 9.4.3
|
||||
- A validating resolver that has been incorrectly configured with
|
||||
an invalid trust anchor will be unable to resolve names covered
|
||||
by that trust anchor. In all current versions of BIND 9, such a
|
||||
resolver will also generate significant unnecessary DNS traffic
|
||||
while trying to validate. The latter problem will be addressed
|
||||
in future BIND 9 releases. In the meantime, to avoid these
|
||||
problems, exercise caution when configuring "trusted-keys":
|
||||
make sure all keys are correct and current when you add them,
|
||||
and update your configuration in a timely manner when keys
|
||||
roll over.
|
||||
|
||||
BIND 9.4.3 is a maintenance release, fixing bugs in 9.4.2.
|
||||
BIND 9.6.1
|
||||
|
||||
BIND 9.4.2
|
||||
BIND 9.6.1 is a maintenance release, fixing bugs in 9.6.0.
|
||||
|
||||
BIND 9.4.2 is a maintenance release, containing fixes for
|
||||
a number of bugs in 9.4.1.
|
||||
BIND 9.6.0
|
||||
|
||||
Warning: If you installed BIND 9.4.2rc1 then any applications
|
||||
linked against this release candidate will need to be rebuilt.
|
||||
BIND 9.6.0 includes a number of changes from BIND 9.5 and earlier
|
||||
releases, including:
|
||||
|
||||
BIND 9.4.1
|
||||
Full NSEC3 support
|
||||
|
||||
BIND 9.4.1 is a security release, containing a fix for
|
||||
a security bugs in 9.4.0.
|
||||
Automatic zone re-signing
|
||||
|
||||
New update-policy methods tcp-self and 6to4-self
|
||||
|
||||
The BIND 8 resolver library, libbind, has been removed from the
|
||||
BIND 9 distribution and is now available as a separate download.
|
||||
|
||||
Change the default pid file location from /var/run to
|
||||
/var/run/{named,lwresd} for improved chroot/setuid support.
|
||||
|
||||
BIND 9.5.0
|
||||
|
||||
BIND 9.5.0 has a number of new features over 9.4,
|
||||
including:
|
||||
|
||||
GSS-TSIG support (RFC 3645).
|
||||
|
||||
DHCID support.
|
||||
|
||||
Experimental http server and statistics support for named via xml.
|
||||
|
||||
More detailed statistics counters including those supported in BIND 8.
|
||||
|
||||
Faster ACL processing.
|
||||
|
||||
Use Doxygen to generate internal documentation.
|
||||
|
||||
Efficient LRU cache-cleaning mechanism.
|
||||
|
||||
NSID support.
|
||||
|
||||
BIND 9.4.0
|
||||
|
||||
BIND 9.4.0 has a number of new features over 9.3,
|
||||
including:
|
||||
|
||||
Implemented "additional section caching" (or "acache"), an
|
||||
Implemented "additional section caching (or acache)", an
|
||||
internal cache framework for additional section content to
|
||||
improve response performance. Several configuration options
|
||||
were provided to control the behaviour.
|
||||
were provided to control the behavior.
|
||||
|
||||
New notify type 'master-only'. Enable notify for master
|
||||
zones only.
|
||||
@@ -165,16 +201,17 @@ BIND 9.4.0
|
||||
options for dnssec-signzone specify the input and output
|
||||
formats.
|
||||
|
||||
dnssec-signzone can now randomise signature end times
|
||||
dnssec-signzone can now randomize signature end times
|
||||
(dnssec-signzone -j jitter).
|
||||
|
||||
Add support for CH A record.
|
||||
|
||||
Add additional zone data consistency checks. named-checkzone
|
||||
Add additional zone data constancy checks. named-checkzone
|
||||
has extended checking of NS, MX and SRV record and the hosts
|
||||
they reference. named has extended post zone load checks.
|
||||
New zone options: check-mx and integrity-check.
|
||||
|
||||
|
||||
edns-udp-size can now be overridden on a per server basis.
|
||||
|
||||
dig can now specify the EDNS version when making a query.
|
||||
@@ -187,7 +224,7 @@ BIND 9.4.0
|
||||
Detect duplicates of UDP queries we are recursing on and
|
||||
drop them. New stats category "duplicates".
|
||||
|
||||
Memory management. "USE INTERNAL MALLOC" is now runtime selectable.
|
||||
"USE INTERNAL MALLOC" is now runtime selectable.
|
||||
|
||||
The lame cache is now done on a <qname,qclass,qtype> basis
|
||||
as some servers only appear to be lame for certain query
|
||||
@@ -202,9 +239,9 @@ BIND 9.4.0
|
||||
|
||||
Support for IPSECKEY rdata type.
|
||||
|
||||
Raise the UDP receive buffer size to 32k if it is less than 32k.
|
||||
Raise the UDP recieve buffer size to 32k if it is less than 32k.
|
||||
|
||||
x86 and x86_64 now have separate atomic locking implementations.
|
||||
x86 and x86_64 now have seperate atomic locking implementations.
|
||||
|
||||
named-checkconf now validates update-policy entries.
|
||||
|
||||
@@ -232,69 +269,9 @@ BIND 9.4.0
|
||||
to set 'RA' when 'RD' is set unless a server is explicitly
|
||||
set.
|
||||
|
||||
Integrate contributed DLZ code into named.
|
||||
Integrate contibuted DLZ code into named.
|
||||
|
||||
Integrate contributed IDN code from JPNIC.
|
||||
|
||||
Validate pending NS RRsets, in the authority section, prior
|
||||
to returning them if it can be done without requiring DNSKEYs
|
||||
to be fetched.
|
||||
|
||||
It is now possible to configure named to accept expired
|
||||
RRSIGs. Default "dnssec-accept-expired no;". Setting
|
||||
"dnssec-accept-expired yes;" leaves named vulnerable to
|
||||
replay attacks.
|
||||
|
||||
Additional memory leakage checks.
|
||||
|
||||
The maximum EDNS UDP response named will send can now be
|
||||
set in named.conf (max-udp-size). This is independent of
|
||||
the advertised receive buffer (edns-udp-size).
|
||||
|
||||
Named now falls back to advertising EDNS with a 512 byte
|
||||
receive buffer if the initial EDNS queries fail.
|
||||
|
||||
Control the zeroing of the negative response TTL to a soa
|
||||
query. Defaults "zero-no-soa-ttl yes;" and
|
||||
"zero-no-soa-ttl-cache no;".
|
||||
|
||||
Separate out MX and SRV to CNAME checks.
|
||||
|
||||
dig/nslookup/host: warn about missing "QR".
|
||||
|
||||
TSIG HMACSHA1, HMACSHA224, HMACSHA256, HMACSHA384 and
|
||||
HMACSHA512 support.
|
||||
|
||||
dnssec-signzone: output the SOA record as the first record
|
||||
in the signed zone.
|
||||
|
||||
Two new update policies. "selfsub" and "selfwild".
|
||||
|
||||
dig, nslookup and host now advertise a 4096 byte EDNS UDP
|
||||
buffer size by default.
|
||||
|
||||
Report when a zone is removed.
|
||||
|
||||
DS/DLV SHA256 digest algorithm support.
|
||||
|
||||
Implement "rrset-order fixed".
|
||||
|
||||
Check the KSK flag when updating a secure dynamic zone.
|
||||
New zone option "update-check-ksk yes;".
|
||||
|
||||
It is now possible to explicitly enable DNSSEC validation.
|
||||
default dnssec-validation no; to be changed to yes in 9.5.0.
|
||||
|
||||
It is now possible to enable/disable DNSSEC validation
|
||||
from rndc. This is useful for the mobile hosts where the
|
||||
current connection point breaks DNSSEC (firewall/proxy).
|
||||
|
||||
rndc validation newstate [view]
|
||||
|
||||
dnssec-signzone can now update the SOA record of the signed
|
||||
zone, either as an increment or as the system time().
|
||||
|
||||
Statistics about acache now recorded and sent to log.
|
||||
Integrate contibuted IDN code from JPNIC.
|
||||
|
||||
libbind: corresponds to that from BIND 8.4.7.
|
||||
|
||||
@@ -438,31 +415,35 @@ Building
|
||||
We've had successful builds and tests on the following systems:
|
||||
|
||||
COMPAQ Tru64 UNIX 5.1B
|
||||
Fedora Core 6
|
||||
FreeBSD 4.10, 5.2.1, 6.2
|
||||
HP-UX 11.11
|
||||
NetBSD 1.5
|
||||
Slackware Linux 8.1
|
||||
Solaris 8, 9, 9 (x86)
|
||||
Mac OS X 10.5
|
||||
NetBSD 3.x and 4.0-beta
|
||||
OpenBSD 3.3 and up
|
||||
Solaris 8, 9, 9 (x86), 10
|
||||
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.
|
||||
|
||||
Additionally, we have unverified reports of success building
|
||||
previous versions of BIND 9 from users of the following systems:
|
||||
We have recent reports from the user community that a supported
|
||||
version of BIND will build and run on the following systems:
|
||||
|
||||
AIX 5L
|
||||
SuSE Linux 7.0
|
||||
Slackware Linux 7.x, 8.0
|
||||
Red Hat Linux 7.1
|
||||
Debian GNU/Linux 2.2 and 3.0
|
||||
Mandrake 8.1
|
||||
OpenBSD 2.6, 2.8, 2.9, 3.1, 3.6, 3.8
|
||||
UnixWare 7.1.1
|
||||
HP-UX 10.20
|
||||
BSD/OS 4.2
|
||||
Mac OS X 10.1, 10.3.8
|
||||
AIX 4.3, 5L
|
||||
CentOS 4, 4.5, 5
|
||||
Darwin 9.0.0d1/ARM
|
||||
Debian 4
|
||||
Fedora Core 5, 7
|
||||
FreeBSD 6.1
|
||||
HP-UX 11.23 PA
|
||||
MacOS X 10.4, 10.5
|
||||
Red Hat Enterprise Linux 4, 5
|
||||
SCO OpenServer 5.0.6
|
||||
Slackware 9, 10
|
||||
SuSE 9, 10
|
||||
|
||||
To build, just
|
||||
|
||||
@@ -499,12 +480,13 @@ Building
|
||||
-DDIG_SIGCHASE_BU=1)
|
||||
Disable dropping queries from particular well known ports.
|
||||
-DNS_CLIENT_DROPPORT=0
|
||||
Disable support for "rrset-order fixed".
|
||||
-DDNS_RDATASET_FIXED=0
|
||||
Sibling glue checking in named-checkzone is enabled by default.
|
||||
Sibling glue checking in named-checkzone is enabled by default.
|
||||
To disable the default check set. -DCHECK_SIBLING=0
|
||||
named-checkzone checks out-of-zone addresses by default.
|
||||
To disable this default set. -DCHECK_LOCAL=0
|
||||
To create the default pid files in ${localstatedir}/run rather
|
||||
than ${localstatedir}/run/{named,lwresd}/ set.
|
||||
-DNS_RUN_PID_DIR=0
|
||||
Enable workaround for Solaris kernel bug about /dev/poll
|
||||
-DISC_SOCKET_USE_POLLWATCH=1
|
||||
The watch timeout is also configurable, e.g.,
|
||||
@@ -534,9 +516,6 @@ Building
|
||||
a nonstandard prefix, you can tell configure where to
|
||||
look for it using "--with-openssl=/prefix".
|
||||
|
||||
To build libbind (the BIND 8 resolver library), specify
|
||||
"--enable-libbind" on the configure command line.
|
||||
|
||||
On some platforms it is necessary to explictly request large
|
||||
file support to handle files bigger than 2GB. This can be
|
||||
done by "--enable-largefile" on the configure command line.
|
||||
@@ -548,6 +527,11 @@ 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.
|
||||
|
||||
If your operating system has integrated support for IPv6, it
|
||||
will be used automatically. If you have installed KAME IPv6
|
||||
separately, use "--with-kame[=PATH]" to specify its location.
|
||||
@@ -628,8 +612,9 @@ Bug Reports and Mailing Lists
|
||||
http://www.isc.org/ops/lists/
|
||||
|
||||
If you're planning on making changes to the BIND 9 source
|
||||
code, you might want to join the BIND Forum as a Worker.
|
||||
This gives you access to the bind-workers@isc.org mailing
|
||||
list and pre-release access to the code.
|
||||
code, you might want to join the BIND Workers mailing list.
|
||||
Send mail to
|
||||
|
||||
bind-workers-request@isc.org
|
||||
|
||||
|
||||
http://www.isc.org/sw/guild/bf/
|
||||
|
||||
+1
-1
@@ -109,4 +109,4 @@ about idnkit and this patch.
|
||||
Bug reports and comments on this kit should be sent to
|
||||
mdnkit-bugs@nic.ad.jp and idn-cmt@nic.ad.jp, respectively.
|
||||
|
||||
; $Id: README.idnkit,v 1.2.2.3 2009/01/19 00:36:25 marka Exp $
|
||||
; $Id: README.idnkit,v 1.2.762.1 2009/01/18 23:25:14 marka Exp $
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
|
||||
BIND-9 PKCS#11 support
|
||||
|
||||
Prerequisite
|
||||
|
||||
The PKCS#11 support needs a PKCS#11 OpenSSL engine based on the Solaris one,
|
||||
released the 2007-11-21 for OpenSSL 0.9.8g, with a bug fix (call to free)
|
||||
and some improvements, including user friendly PIN management.
|
||||
|
||||
Compilation
|
||||
|
||||
"configure --with-pkcs11 ..."
|
||||
|
||||
PKCS#11 Libraries
|
||||
|
||||
Tested with Solaris one with a SCA board and with openCryptoki with the
|
||||
software token.
|
||||
|
||||
OpenSSL Engines
|
||||
|
||||
With PKCS#11 support the PKCS#11 engine is statically loaded but at its
|
||||
initialization it dynamically loads the PKCS#11 objects.
|
||||
Even the pre commands are therefore unused they are defined with:
|
||||
SO_PATH:
|
||||
define: PKCS11_SO_PATH
|
||||
default: /usr/local/lib/engines/engine_pkcs11.so
|
||||
MODULE_PATH:
|
||||
define: PKCS11_MODULE_PATH
|
||||
default: /usr/lib/libpkcs11.so
|
||||
Without PKCS#11 support, a specific OpenSSL engine can be still used
|
||||
by defining ENGINE_ID at compile time.
|
||||
|
||||
PKCS#11 tools
|
||||
|
||||
The contrib/pkcs11-keygen directory contains a set of experimental tools
|
||||
to handle keys stored in a Hardware Security Module at the benefit of BIND.
|
||||
|
||||
The patch for OpenSSL 0.9.8g is in this directory. Read its README.pkcs11
|
||||
for the way to use it (these are the original notes so with the original
|
||||
path, etc. Define OPENCRYPTOKI to use it with openCryptoki.)
|
||||
|
||||
PIN management
|
||||
|
||||
With the just fixed PKCS#11 OpenSSL engine, the PIN should be entered
|
||||
each time it is required. With the improved engine, the PIN should be
|
||||
entered the first time it is required or can be configured in the
|
||||
OpenSSL configuration file (aka. openssl.cnf) by adding in it:
|
||||
- at the beginning:
|
||||
openssl_conf = openssl_def
|
||||
- at any place these sections:
|
||||
[ openssl_def ]
|
||||
engines = engine_section
|
||||
[ engine_section ]
|
||||
pkcs11 = pkcs11_section
|
||||
[ pkcs11_section ]
|
||||
PIN = put__your__pin__value__here
|
||||
|
||||
Note
|
||||
|
||||
Some names here are registered trademarks, at least Solaris is a trademark
|
||||
of Sun Microsystems Inc...
|
||||
@@ -1,203 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<!--
|
||||
- Copyright (C) 2010, 2011 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: RELEASE-NOTES-BIND-9.4-ESV.html,v 1.1.2.12 2011/07/24 08:05:11 tbox Exp $ -->
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><link rel="stylesheet" href="release-notes.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.71.1" /></head><body><div class="article" lang="en" xml:lang="en"><div class="titlepage"><hr /></div>
|
||||
|
||||
<div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id3359578"></a>Introduction</h2></div></div></div>
|
||||
|
||||
<p>
|
||||
BIND 9.4-ESV-R5 is the current production release
|
||||
of BIND 9.4.
|
||||
</p>
|
||||
<p>
|
||||
This document summarizes changes from BIND 9.4-ESV-R4 to BIND 9.4-ESV-R5.
|
||||
Please see the CHANGES file in the source code release for a
|
||||
complete list of all changes.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id3358597"></a>Download</h2></div></div></div>
|
||||
|
||||
<p>
|
||||
The latest release of BIND 9 software can always be found
|
||||
on our web site at
|
||||
<a href="http://www.isc.org/downloads/all" target="_top">http://www.isc.org/downloads/all</a>.
|
||||
There you will find additional information about each release,
|
||||
source code, and some pre-compiled versions for certain operating
|
||||
systems.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id3358630"></a>Support</h2></div></div></div>
|
||||
|
||||
<p>Product support information is available on
|
||||
<a href="http://www.isc.org/services/support" target="_top">http://www.isc.org/services/support</a>
|
||||
for paid support options. Free support is provided by our user
|
||||
community via a mailing list. Information on all public email
|
||||
lists is available at
|
||||
<a href="https://lists.isc.org/mailman/listinfo" target="_top">https://lists.isc.org/mailman/listinfo</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id3358679"></a>New Features</h2></div></div></div>
|
||||
|
||||
<div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id3358720"></a>9.4-ESV-R5</h3></div></div></div>
|
||||
|
||||
<p>None.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id3358748"></a>Feature Changes</h2></div></div></div>
|
||||
|
||||
<div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id3358768"></a>9.4-ESV-R5</h3></div></div></div>
|
||||
|
||||
<p>None.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id3358796"></a>Security Fixes</h2></div></div></div>
|
||||
|
||||
<div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id3358816"></a>9.4-ESV-R5</h3></div></div></div>
|
||||
|
||||
<div class="itemizedlist"><ul type="disc"><li>
|
||||
A bug in NetBSD and FreeBSD kernels with SO_ACCEPTFILTER enabled allows
|
||||
for a TCP DoS attack. Until there is a kernel fix, ISC is disabling
|
||||
SO_ACCEPTFILTER support in BIND. [RT #22589]
|
||||
</li><li>
|
||||
named, set up to be a caching resolver, is vulnerable to a
|
||||
user querying a domain with very large resource record sets (RRSets)
|
||||
when trying to negatively cache the response. Due to an off-by-one
|
||||
error, caching the response could cause named to crash. [RT #24650]
|
||||
[CVE-2011-1910]
|
||||
</li><li>
|
||||
Change #2912 (see CHANGES) exposed a latent bug in the DNS message
|
||||
processing code that could allow certain UPDATE requests to crash
|
||||
named. This was fixed by disambiguating internal database representation
|
||||
vs DNS wire format data. [RT #24777] [CVE-2011-2464]
|
||||
</li></ul></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id3358855"></a>Bug Fixes</h2></div></div></div>
|
||||
|
||||
<div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id3358861"></a>9.4-ESV-R5</h3></div></div></div>
|
||||
|
||||
<div class="itemizedlist"><ul type="disc"><li>
|
||||
During RFC5011 processing some journal write errors were not detected.
|
||||
This could lead to managed-keys changes being committed but not
|
||||
recorded in the journal files, causing potential inconsistencies
|
||||
during later processing. [RT #20256]
|
||||
<p>
|
||||
A potential NULL pointer deference in the DNS64 code could cause
|
||||
named to terminate unexpectedly. [RT #20256]
|
||||
</p>
|
||||
<p>
|
||||
A state variable relating to DNSSEC could fail to be set during
|
||||
some infrequently-executed code paths, allowing it to be used whilst
|
||||
in an unitialized state during cache updates, with unpredictable results.
|
||||
[RT #20256]
|
||||
</p>
|
||||
<p>
|
||||
A potential NULL pointer deference in DNSSEC signing code could
|
||||
cause named to terminate unexpectedly [RT #20256]
|
||||
</p>
|
||||
<p>
|
||||
Several cosmetic code changes were made to silence warnings
|
||||
generated by a static code analysis tool. [RT #20256]
|
||||
</p>
|
||||
</li><li>
|
||||
Cause named to terminate at startup or rndc reconfig
|
||||
reload to fail, if a log file specified in the
|
||||
conf file isn't a plain file. (RT #22771]
|
||||
</li><li>
|
||||
Prior to this fix, when named was was writing a zone to disk (as slave,
|
||||
when resigning, etc.), it might not correctly preserve the case of domain
|
||||
name labels within RDATA, if the RDATA was not compressible. The result
|
||||
is that when reloading the zone from disk would, named could serve data
|
||||
that did not match the RRSIG for that data, due to case mismatch. named
|
||||
now correctly preserves case. After upgrading to fixed code, the operator
|
||||
should either resign the data (on the master) or delete the disk file
|
||||
on the slave and reload the zone. [RT #22863]
|
||||
</li><li>
|
||||
Fix the zonechecks system test to fail on error (warning in 9.6,
|
||||
fatal in 9.7) to match behaviour for 9.4. [RT #22905]
|
||||
</li><li>
|
||||
There was a bug in how the clients-per-query code worked with some
|
||||
query patterns. This could result, in rare circumstances, in having all
|
||||
the client query slots filled with queries for the same DNS label,
|
||||
essentially ignoring the max-clients-per-query setting.
|
||||
[RT #22972]
|
||||
</li><li>
|
||||
If a slave initiates a TSIG signed AXFR from the master and the master
|
||||
fails to correctly TSIG sign the final message, the slave would be left
|
||||
with the zone in an unclean state. named detected this error too late
|
||||
and named would crash with an INSIST. The order dependancy has been
|
||||
fixed. [RT #23254]
|
||||
</li><li>
|
||||
Fixed precedence order bug with NS and DNAME records if both are present.
|
||||
(Also fixed timing of autosign test in 9.7+) [RT #23035]
|
||||
</li><li>
|
||||
Changing TTL did not cause dnssec-signzone to generate new signatures.
|
||||
[RT #23330]
|
||||
</li><li>
|
||||
If named encountered a CNAME instead of a DS record when walking
|
||||
the chain of trust down from the trust anchor, it incorrectly stopped
|
||||
validating. [RT #23338]
|
||||
</li><li>
|
||||
RRSIG records could have time stamps too far in the future.
|
||||
[RT #23356]
|
||||
</li><li>
|
||||
If running on a powerpc CPU and with atomic operations enabled,
|
||||
named could lock up. Added sync instructions to the end of atomic
|
||||
operations. [RT #23469]
|
||||
</li><li>
|
||||
ixfr-from-differences {master|slave};
|
||||
failed to select the master/slave zones, resulting in on diff/journal
|
||||
file being created.
|
||||
[RT #23580]
|
||||
</li><li>
|
||||
Remove bin/tests/system/logfileconfig/ns1/named.conf and
|
||||
add setup.sh in order to resolve changing named.conf issue. [RT #23687]
|
||||
</li><li>
|
||||
The autosign tests attempted to open ports within reserved ranges. Test
|
||||
now avoids those ports.
|
||||
[RT #23957]
|
||||
</li><li>
|
||||
Named could fail to validate zones list in a DLV that validated insecure
|
||||
without using DLV and had DS records in the parent zone. [RT #24631]
|
||||
</li><li>
|
||||
A bug in FreeBSD kernels causes IPv6 UDP responses greater than
|
||||
1280 bytes to not fragment as they should. Until there is a kernel
|
||||
fix, named will work around this by setting IPV6_USE_MIN_MTU on a
|
||||
per packet basis. [RT #24950]
|
||||
</li></ul></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id3359002"></a>Thank You</h2></div></div></div>
|
||||
|
||||
<p>
|
||||
Thank you to everyone who assisted us in making this release possible.
|
||||
If you would like to contribute to ISC to assist us in continuing to make
|
||||
quality open source software, please visit our donations page at
|
||||
<a href="http://www.isc.org/supportisc" target="_top">http://www.isc.org/supportisc</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div></body></html>
|
||||
Binary file not shown.
@@ -1,129 +0,0 @@
|
||||
__________________________________________________________________
|
||||
|
||||
Introduction
|
||||
|
||||
BIND 9.4-ESV-R5 is the current production release of BIND 9.4.
|
||||
|
||||
This document summarizes changes from BIND 9.4-ESV-R4 to BIND
|
||||
9.4-ESV-R5. Please see the CHANGES file in the source code release for
|
||||
a complete list of all changes.
|
||||
|
||||
Download
|
||||
|
||||
The latest release of BIND 9 software can always be found on our web
|
||||
site at http://www.isc.org/downloads/all. There you will find
|
||||
additional information about each release, source code, and some
|
||||
pre-compiled versions for certain operating systems.
|
||||
|
||||
Support
|
||||
|
||||
Product support information is available on
|
||||
http://www.isc.org/services/support for paid support options. Free
|
||||
support is provided by our user community via a mailing list.
|
||||
Information on all public email lists is available at
|
||||
https://lists.isc.org/mailman/listinfo.
|
||||
|
||||
New Features
|
||||
|
||||
9.4-ESV-R5
|
||||
|
||||
None.
|
||||
|
||||
Feature Changes
|
||||
|
||||
9.4-ESV-R5
|
||||
|
||||
None.
|
||||
|
||||
Security Fixes
|
||||
|
||||
9.4-ESV-R5
|
||||
|
||||
* A bug in NetBSD and FreeBSD kernels with SO_ACCEPTFILTER enabled
|
||||
allows for a TCP DoS attack. Until there is a kernel fix, ISC is
|
||||
disabling SO_ACCEPTFILTER support in BIND. [RT #22589]
|
||||
* named, set up to be a caching resolver, is vulnerable to a user
|
||||
querying a domain with very large resource record sets (RRSets)
|
||||
when trying to negatively cache the response. Due to an off-by-one
|
||||
error, caching the response could cause named to crash. [RT #24650]
|
||||
[CVE-2011-1910]
|
||||
* Change #2912 (see CHANGES) exposed a latent bug in the DNS message
|
||||
processing code that could allow certain UPDATE requests to crash
|
||||
named. This was fixed by disambiguating internal database
|
||||
representation vs DNS wire format data. [RT #24777] [CVE-2011-2464]
|
||||
|
||||
Bug Fixes
|
||||
|
||||
9.4-ESV-R5
|
||||
|
||||
* During RFC5011 processing some journal write errors were not
|
||||
detected. This could lead to managed-keys changes being committed
|
||||
but not recorded in the journal files, causing potential
|
||||
inconsistencies during later processing. [RT #20256]
|
||||
A potential NULL pointer deference in the DNS64 code could cause
|
||||
named to terminate unexpectedly. [RT #20256]
|
||||
A state variable relating to DNSSEC could fail to be set during
|
||||
some infrequently-executed code paths, allowing it to be used
|
||||
whilst in an unitialized state during cache updates, with
|
||||
unpredictable results. [RT #20256]
|
||||
A potential NULL pointer deference in DNSSEC signing code could
|
||||
cause named to terminate unexpectedly [RT #20256]
|
||||
Several cosmetic code changes were made to silence warnings
|
||||
generated by a static code analysis tool. [RT #20256]
|
||||
* Cause named to terminate at startup or rndc reconfig reload to
|
||||
fail, if a log file specified in the conf file isn't a plain file.
|
||||
(RT #22771]
|
||||
* Prior to this fix, when named was was writing a zone to disk (as
|
||||
slave, when resigning, etc.), it might not correctly preserve the
|
||||
case of domain name labels within RDATA, if the RDATA was not
|
||||
compressible. The result is that when reloading the zone from disk
|
||||
would, named could serve data that did not match the RRSIG for that
|
||||
data, due to case mismatch. named now correctly preserves case.
|
||||
After upgrading to fixed code, the operator should either resign
|
||||
the data (on the master) or delete the disk file on the slave and
|
||||
reload the zone. [RT #22863]
|
||||
* Fix the zonechecks system test to fail on error (warning in 9.6,
|
||||
fatal in 9.7) to match behaviour for 9.4. [RT #22905]
|
||||
* There was a bug in how the clients-per-query code worked with some
|
||||
query patterns. This could result, in rare circumstances, in having
|
||||
all the client query slots filled with queries for the same DNS
|
||||
label, essentially ignoring the max-clients-per-query setting. [RT
|
||||
#22972]
|
||||
* If a slave initiates a TSIG signed AXFR from the master and the
|
||||
master fails to correctly TSIG sign the final message, the slave
|
||||
would be left with the zone in an unclean state. named detected
|
||||
this error too late and named would crash with an INSIST. The order
|
||||
dependancy has been fixed. [RT #23254]
|
||||
* Fixed precedence order bug with NS and DNAME records if both are
|
||||
present. (Also fixed timing of autosign test in 9.7+) [RT #23035]
|
||||
* Changing TTL did not cause dnssec-signzone to generate new
|
||||
signatures. [RT #23330]
|
||||
* If named encountered a CNAME instead of a DS record when walking
|
||||
the chain of trust down from the trust anchor, it incorrectly
|
||||
stopped validating. [RT #23338]
|
||||
* RRSIG records could have time stamps too far in the future. [RT
|
||||
#23356]
|
||||
* If running on a powerpc CPU and with atomic operations enabled,
|
||||
named could lock up. Added sync instructions to the end of atomic
|
||||
operations. [RT #23469]
|
||||
* ixfr-from-differences {master|slave}; failed to select the
|
||||
master/slave zones, resulting in on diff/journal file being
|
||||
created. [RT #23580]
|
||||
* Remove bin/tests/system/logfileconfig/ns1/named.conf and add
|
||||
setup.sh in order to resolve changing named.conf issue. [RT #23687]
|
||||
* The autosign tests attempted to open ports within reserved ranges.
|
||||
Test now avoids those ports. [RT #23957]
|
||||
* Named could fail to validate zones list in a DLV that validated
|
||||
insecure without using DLV and had DS records in the parent zone.
|
||||
[RT #24631]
|
||||
* A bug in FreeBSD kernels causes IPv6 UDP responses greater than
|
||||
1280 bytes to not fragment as they should. Until there is a kernel
|
||||
fix, named will work around this by setting IPV6_USE_MIN_MTU on a
|
||||
per packet basis. [RT #24950]
|
||||
|
||||
Thank You
|
||||
|
||||
Thank you to everyone who assisted us in making this release possible.
|
||||
If you would like to contribute to ISC to assist us in continuing to
|
||||
make quality open source software, please visit our donations page at
|
||||
http://www.isc.org/supportisc.
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007, 2009 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: acconfig.h,v 1.44.18.7 2008/12/01 23:45:56 tbox Exp $ */
|
||||
/* $Id: acconfig.h,v 1.51.334.2 2009/02/16 23:47:15 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
# Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 1998-2001 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and distribute this software for any
|
||||
# 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.
|
||||
#
|
||||
@@ -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.23 2004/03/05 04:57:10 marka Exp $
|
||||
# $Id: Makefile.in,v 1.25 2007/06/19 23:46:59 tbox Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and distribute this software for any
|
||||
# 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.
|
||||
#
|
||||
@@ -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.24.18.6 2006/06/09 00:54:08 marka Exp $
|
||||
# $Id: Makefile.in,v 1.32 2007/06/19 23:46:59 tbox Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
+176
-73
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: check-tool.c,v 1.10.18.23 2009/09/24 21:38:50 jinmei Exp $ */
|
||||
/* $Id: check-tool.c,v 1.35.36.3 2009/01/20 02:03:18 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -24,16 +24,17 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#include "check-tool.h"
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/net.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/netdb.h>
|
||||
#include <isc/net.h>
|
||||
#include <isc/region.h>
|
||||
#include <isc/stdio.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/symtab.h>
|
||||
#include <isc/types.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/log.h>
|
||||
@@ -69,6 +70,15 @@
|
||||
goto cleanup; \
|
||||
} while (0)
|
||||
|
||||
#define ERR_IS_CNAME 1
|
||||
#define ERR_NO_ADDRESSES 2
|
||||
#define ERR_LOOKUP_FAILURE 3
|
||||
#define ERR_EXTRA_A 4
|
||||
#define ERR_EXTRA_AAAA 5
|
||||
#define ERR_MISSING_GLUE 5
|
||||
#define ERR_IS_MXCNAME 6
|
||||
#define ERR_IS_SRVCNAME 7
|
||||
|
||||
static const char *dbtype[] = { "rbt" };
|
||||
|
||||
int debug = 0;
|
||||
@@ -109,6 +119,58 @@ static isc_logcategory_t categories[] = {
|
||||
{ NULL, 0 }
|
||||
};
|
||||
|
||||
static isc_symtab_t *symtab = NULL;
|
||||
static isc_mem_t *sym_mctx;
|
||||
|
||||
static void
|
||||
freekey(char *key, unsigned int type, isc_symvalue_t value, void *userarg) {
|
||||
UNUSED(type);
|
||||
UNUSED(value);
|
||||
isc_mem_free(userarg, key);
|
||||
}
|
||||
|
||||
static void
|
||||
add(char *key, int value) {
|
||||
isc_result_t result;
|
||||
isc_symvalue_t symvalue;
|
||||
|
||||
if (sym_mctx == NULL) {
|
||||
result = isc_mem_create(0, 0, &sym_mctx);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return;
|
||||
}
|
||||
|
||||
if (symtab == NULL) {
|
||||
result = isc_symtab_create(sym_mctx, 100, freekey, sym_mctx,
|
||||
ISC_FALSE, &symtab);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return;
|
||||
}
|
||||
|
||||
key = isc_mem_strdup(sym_mctx, key);
|
||||
if (key == NULL)
|
||||
return;
|
||||
|
||||
symvalue.as_pointer = NULL;
|
||||
result = isc_symtab_define(symtab, key, value, symvalue,
|
||||
isc_symexists_reject);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
isc_mem_free(sym_mctx, key);
|
||||
}
|
||||
|
||||
static isc_boolean_t
|
||||
logged(char *key, int value) {
|
||||
isc_result_t result;
|
||||
|
||||
if (symtab == NULL)
|
||||
return (ISC_FALSE);
|
||||
|
||||
result = isc_symtab_lookup(symtab, key, value, NULL);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
return (ISC_TRUE);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
|
||||
static isc_boolean_t
|
||||
checkns(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner,
|
||||
dns_rdataset_t *a, dns_rdataset_t *aaaa)
|
||||
@@ -157,29 +219,39 @@ checkns(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner,
|
||||
cur->ai_next != NULL)
|
||||
cur = cur->ai_next;
|
||||
if (cur != NULL && cur->ai_canonname != NULL &&
|
||||
strcasecmp(cur->ai_canonname, namebuf) != 0) {
|
||||
strcasecmp(cur->ai_canonname, namebuf) != 0 &&
|
||||
!logged(namebuf, ERR_IS_CNAME)) {
|
||||
dns_zone_log(zone, ISC_LOG_ERROR,
|
||||
"%s/NS '%s' (out of zone) "
|
||||
"is a CNAME (illegal)",
|
||||
ownerbuf, namebuf);
|
||||
"is a CNAME '%s' (illegal)",
|
||||
ownerbuf, namebuf,
|
||||
cur->ai_canonname);
|
||||
/* XXX950 make fatal for 9.5.0 */
|
||||
/* answer = ISC_FALSE; */
|
||||
add(namebuf, ERR_IS_CNAME);
|
||||
}
|
||||
break;
|
||||
case EAI_NONAME:
|
||||
#if defined(EAI_NODATA) && (EAI_NODATA != EAI_NONAME)
|
||||
case EAI_NODATA:
|
||||
#endif
|
||||
dns_zone_log(zone, ISC_LOG_ERROR, "%s/NS '%s' (out of zone) "
|
||||
"has no addresses records (A or AAAA)",
|
||||
ownerbuf, namebuf);
|
||||
if (!logged(namebuf, ERR_NO_ADDRESSES)) {
|
||||
dns_zone_log(zone, ISC_LOG_ERROR,
|
||||
"%s/NS '%s' (out of zone) "
|
||||
"has no addresses records (A or AAAA)",
|
||||
ownerbuf, namebuf);
|
||||
add(namebuf, ERR_NO_ADDRESSES);
|
||||
}
|
||||
/* XXX950 make fatal for 9.5.0 */
|
||||
return (ISC_TRUE);
|
||||
|
||||
default:
|
||||
dns_zone_log(zone, ISC_LOG_WARNING,
|
||||
"getaddrinfo(%s) failed: %s",
|
||||
namebuf, gai_strerror(result));
|
||||
if (!logged(namebuf, ERR_LOOKUP_FAILURE)) {
|
||||
dns_zone_log(zone, ISC_LOG_WARNING,
|
||||
"getaddrinfo(%s) failed: %s",
|
||||
namebuf, gai_strerror(result));
|
||||
add(namebuf, ERR_LOOKUP_FAILURE);
|
||||
}
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
if (a == NULL || aaaa == NULL)
|
||||
@@ -202,12 +274,13 @@ checkns(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner,
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!match) {
|
||||
if (!match && !logged(namebuf, ERR_EXTRA_A)) {
|
||||
dns_zone_log(zone, ISC_LOG_ERROR, "%s/NS '%s' "
|
||||
"extra GLUE A record (%s)",
|
||||
ownerbuf, namebuf,
|
||||
inet_ntop(AF_INET, rdata.data,
|
||||
addrbuf, sizeof(addrbuf)));
|
||||
add(namebuf, ERR_EXTRA_A);
|
||||
/* XXX950 make fatal for 9.5.0 */
|
||||
/* answer = ISC_FALSE; */
|
||||
}
|
||||
@@ -231,12 +304,13 @@ checkns(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner,
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!match) {
|
||||
if (!match && !logged(namebuf, ERR_EXTRA_AAAA)) {
|
||||
dns_zone_log(zone, ISC_LOG_ERROR, "%s/NS '%s' "
|
||||
"extra GLUE AAAA record (%s)",
|
||||
ownerbuf, namebuf,
|
||||
inet_ntop(AF_INET6, rdata.data,
|
||||
addrbuf, sizeof(addrbuf)));
|
||||
add(namebuf, ERR_EXTRA_AAAA);
|
||||
/* XXX950 make fatal for 9.5.0. */
|
||||
/* answer = ISC_FALSE; */
|
||||
}
|
||||
@@ -248,42 +322,48 @@ checkns(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner,
|
||||
/*
|
||||
* Check that all addresses appear in the glue.
|
||||
*/
|
||||
for (cur = ai; cur != NULL; cur = cur->ai_next) {
|
||||
switch (cur->ai_family) {
|
||||
case AF_INET:
|
||||
rdataset = a;
|
||||
ptr = &((struct sockaddr_in *)(cur->ai_addr))->sin_addr;
|
||||
type = "A";
|
||||
break;
|
||||
case AF_INET6:
|
||||
rdataset = aaaa;
|
||||
ptr = &((struct sockaddr_in6 *)(cur->ai_addr))->sin6_addr;
|
||||
type = "AAAA";
|
||||
break;
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
match = ISC_FALSE;
|
||||
if (dns_rdataset_isassociated(rdataset))
|
||||
result = dns_rdataset_first(rdataset);
|
||||
else
|
||||
result = ISC_R_FAILURE;
|
||||
while (result == ISC_R_SUCCESS && !match) {
|
||||
dns_rdataset_current(rdataset, &rdata);
|
||||
if (memcmp(ptr, rdata.data, rdata.length) == 0)
|
||||
match = ISC_TRUE;
|
||||
dns_rdata_reset(&rdata);
|
||||
result = dns_rdataset_next(rdataset);
|
||||
}
|
||||
if (!match) {
|
||||
dns_zone_log(zone, ISC_LOG_ERROR, "%s/NS '%s' "
|
||||
"missing GLUE %s record (%s)",
|
||||
ownerbuf, namebuf, type,
|
||||
inet_ntop(cur->ai_family, ptr,
|
||||
addrbuf, sizeof(addrbuf)));
|
||||
/* XXX950 make fatal for 9.5.0. */
|
||||
/* answer = ISC_FALSE; */
|
||||
if (!logged(namebuf, ERR_MISSING_GLUE)) {
|
||||
isc_boolean_t missing_glue = ISC_FALSE;
|
||||
for (cur = ai; cur != NULL; cur = cur->ai_next) {
|
||||
switch (cur->ai_family) {
|
||||
case AF_INET:
|
||||
rdataset = a;
|
||||
ptr = &((struct sockaddr_in *)(cur->ai_addr))->sin_addr;
|
||||
type = "A";
|
||||
break;
|
||||
case AF_INET6:
|
||||
rdataset = aaaa;
|
||||
ptr = &((struct sockaddr_in6 *)(cur->ai_addr))->sin6_addr;
|
||||
type = "AAAA";
|
||||
break;
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
match = ISC_FALSE;
|
||||
if (dns_rdataset_isassociated(rdataset))
|
||||
result = dns_rdataset_first(rdataset);
|
||||
else
|
||||
result = ISC_R_FAILURE;
|
||||
while (result == ISC_R_SUCCESS && !match) {
|
||||
dns_rdataset_current(rdataset, &rdata);
|
||||
if (memcmp(ptr, rdata.data, rdata.length) == 0)
|
||||
match = ISC_TRUE;
|
||||
dns_rdata_reset(&rdata);
|
||||
result = dns_rdataset_next(rdataset);
|
||||
}
|
||||
if (!match) {
|
||||
dns_zone_log(zone, ISC_LOG_ERROR, "%s/NS '%s' "
|
||||
"missing GLUE %s record (%s)",
|
||||
ownerbuf, namebuf, type,
|
||||
inet_ntop(cur->ai_family, ptr,
|
||||
addrbuf, sizeof(addrbuf)));
|
||||
/* XXX950 make fatal for 9.5.0. */
|
||||
/* answer = ISC_FALSE; */
|
||||
missing_glue = ISC_TRUE;
|
||||
}
|
||||
}
|
||||
if (missing_glue)
|
||||
add(namebuf, ERR_MISSING_GLUE);
|
||||
}
|
||||
freeaddrinfo(ai);
|
||||
return (answer);
|
||||
@@ -333,10 +413,15 @@ checkmx(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner) {
|
||||
if ((zone_options & DNS_ZONEOPT_WARNMXCNAME) != 0)
|
||||
level = ISC_LOG_WARNING;
|
||||
if ((zone_options & DNS_ZONEOPT_IGNOREMXCNAME) == 0) {
|
||||
dns_zone_log(zone, ISC_LOG_WARNING,
|
||||
"%s/MX '%s' (out of zone) "
|
||||
"is a CNAME (illegal)",
|
||||
ownerbuf, namebuf);
|
||||
if (!logged(namebuf, ERR_IS_MXCNAME)) {
|
||||
dns_zone_log(zone, level,
|
||||
"%s/MX '%s' (out of zone)"
|
||||
" is a CNAME '%s' "
|
||||
"(illegal)",
|
||||
ownerbuf, namebuf,
|
||||
cur->ai_canonname);
|
||||
add(namebuf, ERR_IS_MXCNAME);
|
||||
}
|
||||
if (level == ISC_LOG_ERROR)
|
||||
answer = ISC_FALSE;
|
||||
}
|
||||
@@ -348,16 +433,23 @@ checkmx(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner) {
|
||||
#if defined(EAI_NODATA) && (EAI_NODATA != EAI_NONAME)
|
||||
case EAI_NODATA:
|
||||
#endif
|
||||
dns_zone_log(zone, ISC_LOG_ERROR, "%s/MX '%s' (out of zone) "
|
||||
"has no addresses records (A or AAAA)",
|
||||
ownerbuf, namebuf);
|
||||
if (!logged(namebuf, ERR_NO_ADDRESSES)) {
|
||||
dns_zone_log(zone, ISC_LOG_ERROR,
|
||||
"%s/MX '%s' (out of zone) "
|
||||
"has no addresses records (A or AAAA)",
|
||||
ownerbuf, namebuf);
|
||||
add(namebuf, ERR_NO_ADDRESSES);
|
||||
}
|
||||
/* XXX950 make fatal for 9.5.0. */
|
||||
return (ISC_TRUE);
|
||||
|
||||
default:
|
||||
dns_zone_log(zone, ISC_LOG_WARNING,
|
||||
if (!logged(namebuf, ERR_LOOKUP_FAILURE)) {
|
||||
dns_zone_log(zone, ISC_LOG_WARNING,
|
||||
"getaddrinfo(%s) failed: %s",
|
||||
namebuf, gai_strerror(result));
|
||||
add(namebuf, ERR_LOOKUP_FAILURE);
|
||||
}
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
#else
|
||||
@@ -406,10 +498,14 @@ checksrv(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner) {
|
||||
if ((zone_options & DNS_ZONEOPT_WARNSRVCNAME) != 0)
|
||||
level = ISC_LOG_WARNING;
|
||||
if ((zone_options & DNS_ZONEOPT_IGNORESRVCNAME) == 0) {
|
||||
dns_zone_log(zone, level,
|
||||
"%s/SRV '%s' (out of zone) "
|
||||
"is a CNAME (illegal)",
|
||||
ownerbuf, namebuf);
|
||||
if (!logged(namebuf, ERR_IS_SRVCNAME)) {
|
||||
dns_zone_log(zone, level, "%s/SRV '%s'"
|
||||
" (out of zone) is a "
|
||||
"CNAME '%s' (illegal)",
|
||||
ownerbuf, namebuf,
|
||||
cur->ai_canonname);
|
||||
add(namebuf, ERR_IS_SRVCNAME);
|
||||
}
|
||||
if (level == ISC_LOG_ERROR)
|
||||
answer = ISC_FALSE;
|
||||
}
|
||||
@@ -421,16 +517,23 @@ checksrv(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner) {
|
||||
#if defined(EAI_NODATA) && (EAI_NODATA != EAI_NONAME)
|
||||
case EAI_NODATA:
|
||||
#endif
|
||||
dns_zone_log(zone, ISC_LOG_ERROR, "%s/SRV '%s' (out of zone) "
|
||||
"has no addresses records (A or AAAA)",
|
||||
ownerbuf, namebuf);
|
||||
if (!logged(namebuf, ERR_NO_ADDRESSES)) {
|
||||
dns_zone_log(zone, ISC_LOG_ERROR,
|
||||
"%s/SRV '%s' (out of zone) "
|
||||
"has no addresses records (A or AAAA)",
|
||||
ownerbuf, namebuf);
|
||||
add(namebuf, ERR_NO_ADDRESSES);
|
||||
}
|
||||
/* XXX950 make fatal for 9.5.0. */
|
||||
return (ISC_TRUE);
|
||||
|
||||
default:
|
||||
dns_zone_log(zone, ISC_LOG_WARNING,
|
||||
"getaddrinfo(%s) failed: %s",
|
||||
namebuf, gai_strerror(result));
|
||||
if (!logged(namebuf, ERR_LOOKUP_FAILURE)) {
|
||||
dns_zone_log(zone, ISC_LOG_WARNING,
|
||||
"getaddrinfo(%s) failed: %s",
|
||||
namebuf, gai_strerror(result));
|
||||
add(namebuf, ERR_LOOKUP_FAILURE);
|
||||
}
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
#else
|
||||
@@ -439,7 +542,7 @@ checksrv(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner) {
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
setup_logging(isc_mem_t *mctx, isc_log_t **logp) {
|
||||
setup_logging(isc_mem_t *mctx, FILE *errout, isc_log_t **logp) {
|
||||
isc_logdestination_t destination;
|
||||
isc_logconfig_t *logconfig = NULL;
|
||||
isc_log_t *log = NULL;
|
||||
@@ -451,7 +554,7 @@ setup_logging(isc_mem_t *mctx, isc_log_t **logp) {
|
||||
dns_log_setcontext(log);
|
||||
cfg_log_init(log);
|
||||
|
||||
destination.file.stream = stdout;
|
||||
destination.file.stream = errout;
|
||||
destination.file.name = NULL;
|
||||
destination.file.versions = ISC_LOG_ROLLNEVER;
|
||||
destination.file.maximum_size = 0;
|
||||
@@ -535,14 +638,14 @@ dump_zone(const char *zonename, dns_zone_t *zone, const char *filename,
|
||||
FILE *output = stdout;
|
||||
|
||||
if (debug) {
|
||||
if (filename != NULL)
|
||||
if (filename != NULL && strcmp(filename, "-") != 0)
|
||||
fprintf(stderr, "dumping \"%s\" to \"%s\"\n",
|
||||
zonename, filename);
|
||||
else
|
||||
fprintf(stderr, "dumping \"%s\"\n", zonename);
|
||||
}
|
||||
|
||||
if (filename != NULL) {
|
||||
if (filename != NULL && strcmp(filename, "-") != 0) {
|
||||
result = isc_stdio_open(filename, "w+", &output);
|
||||
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
@@ -554,7 +657,7 @@ dump_zone(const char *zonename, dns_zone_t *zone, const char *filename,
|
||||
|
||||
result = dns_zone_dumptostream2(zone, output, fileformat, style);
|
||||
|
||||
if (filename != NULL)
|
||||
if (output != stdout)
|
||||
(void)isc_stdio_close(output);
|
||||
|
||||
return (result);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: check-tool.h,v 1.7.18.4 2005/06/20 01:19:25 marka Exp $ */
|
||||
/* $Id: check-tool.h,v 1.14 2007/06/18 23:47:17 tbox Exp $ */
|
||||
|
||||
#ifndef CHECK_TOOL_H
|
||||
#define CHECK_TOOL_H
|
||||
@@ -23,6 +23,7 @@
|
||||
/*! \file */
|
||||
|
||||
#include <isc/lang.h>
|
||||
#include <isc/stdio.h>
|
||||
#include <isc/types.h>
|
||||
|
||||
#include <dns/masterdump.h>
|
||||
@@ -31,7 +32,7 @@
|
||||
ISC_LANG_BEGINDECLS
|
||||
|
||||
isc_result_t
|
||||
setup_logging(isc_mem_t *mctx, isc_log_t **logp);
|
||||
setup_logging(isc_mem_t *mctx, FILE *errout, isc_log_t **logp);
|
||||
|
||||
isc_result_t
|
||||
load_zone(isc_mem_t *mctx, const char *zonename, const char *filename,
|
||||
|
||||
@@ -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.16.18.14 2009/07/11 01:31:43 tbox Exp $
|
||||
.\" $Id: named-checkconf.8,v 1.30.334.1 2009/07/11 01:55:20 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -33,13 +33,18 @@
|
||||
named\-checkconf \- named configuration file syntax checking tool
|
||||
.SH "SYNOPSIS"
|
||||
.HP 16
|
||||
\fBnamed\-checkconf\fR [\fB\-v\fR] [\fB\-j\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] {filename} [\fB\-z\fR]
|
||||
\fBnamed\-checkconf\fR [\fB\-h\fR] [\fB\-v\fR] [\fB\-j\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] {filename} [\fB\-z\fR]
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
\fBnamed\-checkconf\fR
|
||||
checks the syntax, but not the semantics, of a named configuration file.
|
||||
.SH "OPTIONS"
|
||||
.PP
|
||||
\-h
|
||||
.RS 4
|
||||
Print the usage summary and exit.
|
||||
.RE
|
||||
.PP
|
||||
\-t \fIdirectory\fR
|
||||
.RS 4
|
||||
Chroot to
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: named-checkconf.c,v 1.28.18.18 2009/02/16 23:46:03 tbox Exp $ */
|
||||
/* $Id: named-checkconf.c,v 1.46.222.2 2009/02/16 23:47:15 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -47,6 +47,8 @@
|
||||
|
||||
#include "check-tool.h"
|
||||
|
||||
static const char *program = "named-checkconf";
|
||||
|
||||
isc_log_t *logc = NULL;
|
||||
|
||||
#define CHECK(r)\
|
||||
@@ -59,8 +61,8 @@ isc_log_t *logc = NULL;
|
||||
/*% usage */
|
||||
static void
|
||||
usage(void) {
|
||||
fprintf(stderr, "usage: named-checkconf [-j] [-v] [-z] [-t directory] "
|
||||
"[named.conf]\n");
|
||||
fprintf(stderr, "usage: %s [-h] [-j] [-v] [-z] [-t directory] "
|
||||
"[named.conf]\n", program);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@@ -398,7 +400,9 @@ main(int argc, char **argv) {
|
||||
isc_entropy_t *ectx = NULL;
|
||||
isc_boolean_t load_zones = ISC_FALSE;
|
||||
|
||||
while ((c = isc_commandline_parse(argc, argv, "djt:vz")) != EOF) {
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
while ((c = isc_commandline_parse(argc, argv, "dhjt:vz")) != EOF) {
|
||||
switch (c) {
|
||||
case 'd':
|
||||
debug++;
|
||||
@@ -428,11 +432,22 @@ main(int argc, char **argv) {
|
||||
dochecksrv = ISC_FALSE;
|
||||
break;
|
||||
|
||||
default:
|
||||
case '?':
|
||||
if (isc_commandline_option != '?')
|
||||
fprintf(stderr, "%s: invalid argument -%c\n",
|
||||
program, isc_commandline_option);
|
||||
case 'h':
|
||||
usage();
|
||||
|
||||
default:
|
||||
fprintf(stderr, "%s: unhandled option -%c\n",
|
||||
program, isc_commandline_option);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
if (isc_commandline_index + 1 < argc)
|
||||
usage();
|
||||
if (argv[isc_commandline_index] != NULL)
|
||||
conffile = argv[isc_commandline_index];
|
||||
if (conffile == NULL || conffile[0] == '\0')
|
||||
@@ -440,7 +455,7 @@ main(int argc, char **argv) {
|
||||
|
||||
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
|
||||
|
||||
RUNTIME_CHECK(setup_logging(mctx, &logc) == ISC_R_SUCCESS);
|
||||
RUNTIME_CHECK(setup_logging(mctx, stdout, &logc) == ISC_R_SUCCESS);
|
||||
|
||||
RUNTIME_CHECK(isc_entropy_create(mctx, &ectx) == ISC_R_SUCCESS);
|
||||
RUNTIME_CHECK(isc_hash_create(mctx, ectx, DNS_NAME_MAXWIRE)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: named-checkconf.docbook,v 1.8.18.10 2007/08/28 07:19:55 tbox Exp $ -->
|
||||
<!-- $Id: named-checkconf.docbook,v 1.19 2007/06/19 06:58:03 marka Exp $ -->
|
||||
<refentry id="man.named-checkconf">
|
||||
<refentryinfo>
|
||||
<date>June 14, 2000</date>
|
||||
@@ -53,6 +53,7 @@
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>named-checkconf</command>
|
||||
<arg><option>-h</option></arg>
|
||||
<arg><option>-v</option></arg>
|
||||
<arg><option>-j</option></arg>
|
||||
<arg><option>-t <replaceable class="parameter">directory</replaceable></option></arg>
|
||||
@@ -73,6 +74,15 @@
|
||||
<title>OPTIONS</title>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>-h</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Print the usage summary and exit.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-t <replaceable class="parameter">directory</replaceable></term>
|
||||
<listitem>
|
||||
|
||||
@@ -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.9.18.21 2009/07/11 01:31:43 tbox Exp $ -->
|
||||
<!-- $Id: named-checkconf.html,v 1.30.334.1 2009/07/11 01:55:20 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -29,18 +29,22 @@
|
||||
</div>
|
||||
<div class="refsynopsisdiv">
|
||||
<h2>Synopsis</h2>
|
||||
<div class="cmdsynopsis"><p><code class="command">named-checkconf</code> [<code class="option">-v</code>] [<code class="option">-j</code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] {filename} [<code class="option">-z</code>]</p></div>
|
||||
<div class="cmdsynopsis"><p><code class="command">named-checkconf</code> [<code class="option">-h</code>] [<code class="option">-v</code>] [<code class="option">-j</code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] {filename} [<code class="option">-z</code>]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543383"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543387"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">named-checkconf</strong></span>
|
||||
checks the syntax, but not the semantics, of a named
|
||||
configuration file.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543395"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543399"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-h</span></dt>
|
||||
<dd><p>
|
||||
Print the usage summary and exit.
|
||||
</p></dd>
|
||||
<dt><span class="term">-t <em class="replaceable"><code>directory</code></em></span></dt>
|
||||
<dd><p>
|
||||
Chroot to <code class="filename">directory</code> so that
|
||||
@@ -70,21 +74,21 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543489"></a><h2>RETURN VALUES</h2>
|
||||
<a name="id2543507"></a><h2>RETURN VALUES</h2>
|
||||
<p><span><strong class="command">named-checkconf</strong></span>
|
||||
returns an exit status of 1 if
|
||||
errors were detected and 0 otherwise.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543500"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2543518"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named-checkzone</span>(8)</span>,
|
||||
<em class="citetitle">BIND 9 Administrator Reference Manual</em>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543530"></a><h2>AUTHOR</h2>
|
||||
<a name="id2543548"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -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.18.18.25 2009/07/11 01:31:43 tbox Exp $
|
||||
.\" $Id: named-checkzone.8,v 1.42.334.3 2009/11/11 01:56:22 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\-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\-s\ \fR\fB\fIstyle\fR\fR] [\fB\-S\ \fR\fB\fImode\fR\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-w\ \fR\fB\fIdirectory\fR\fR] [\fB\-D\fR] [\fB\-W\ \fR\fB\fImode\fR\fR] {zonename} {filename}
|
||||
\fBnamed\-checkzone\fR [\fB\-d\fR] [\fB\-h\fR] [\fB\-j\fR] [\fB\-q\fR] [\fB\-v\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-f\ \fR\fB\fIformat\fR\fR] [\fB\-F\ \fR\fB\fIformat\fR\fR] [\fB\-i\ \fR\fB\fImode\fR\fR] [\fB\-k\ \fR\fB\fImode\fR\fR] [\fB\-m\ \fR\fB\fImode\fR\fR] [\fB\-M\ \fR\fB\fImode\fR\fR] [\fB\-n\ \fR\fB\fImode\fR\fR] [\fB\-s\ \fR\fB\fIstyle\fR\fR] [\fB\-S\ \fR\fB\fImode\fR\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-w\ \fR\fB\fIdirectory\fR\fR] [\fB\-D\fR] [\fB\-W\ \fR\fB\fImode\fR\fR] {zonename} {filename}
|
||||
.HP 18
|
||||
\fBnamed\-compilezone\fR [\fB\-d\fR] [\fB\-j\fR] [\fB\-q\fR] [\fB\-v\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-C\ \fR\fB\fImode\fR\fR] [\fB\-f\ \fR\fB\fIformat\fR\fR] [\fB\-F\ \fR\fB\fIformat\fR\fR] [\fB\-i\ \fR\fB\fImode\fR\fR] [\fB\-k\ \fR\fB\fImode\fR\fR] [\fB\-m\ \fR\fB\fImode\fR\fR] [\fB\-n\ \fR\fB\fImode\fR\fR] [\fB\-o\ \fR\fB\fIfilename\fR\fR] [\fB\-s\ \fR\fB\fIstyle\fR\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-w\ \fR\fB\fIdirectory\fR\fR] [\fB\-D\fR] [\fB\-W\ \fR\fB\fImode\fR\fR] {zonename} {filename}
|
||||
\fBnamed\-compilezone\fR [\fB\-d\fR] [\fB\-j\fR] [\fB\-q\fR] [\fB\-v\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-C\ \fR\fB\fImode\fR\fR] [\fB\-f\ \fR\fB\fIformat\fR\fR] [\fB\-F\ \fR\fB\fIformat\fR\fR] [\fB\-i\ \fR\fB\fImode\fR\fR] [\fB\-k\ \fR\fB\fImode\fR\fR] [\fB\-m\ \fR\fB\fImode\fR\fR] [\fB\-n\ \fR\fB\fImode\fR\fR] [\fB\-o\ \fR\fB\fIfilename\fR\fR] [\fB\-s\ \fR\fB\fIstyle\fR\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-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
|
||||
@@ -58,6 +58,11 @@ configuration file.
|
||||
Enable debugging.
|
||||
.RE
|
||||
.PP
|
||||
\-h
|
||||
.RS 4
|
||||
Print the usage summary and exit.
|
||||
.RE
|
||||
.PP
|
||||
\-q
|
||||
.RS 4
|
||||
Quiet mode \- exit code only.
|
||||
@@ -188,7 +193,11 @@ Specify whether NS records should be checked to see if they are addresses. Possi
|
||||
\-o \fIfilename\fR
|
||||
.RS 4
|
||||
Write zone output to
|
||||
\fIfilename\fR. This is mandatory for
|
||||
\fIfilename\fR. If
|
||||
\fIfilename\fR
|
||||
is
|
||||
\fI\-\fR
|
||||
then write to standard out. This is mandatory for
|
||||
\fBnamed\-compilezone\fR.
|
||||
.RE
|
||||
.PP
|
||||
|
||||
+48
-19
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: named-checkzone.c,v 1.29.18.24 2009/05/29 02:19:20 marka Exp $ */
|
||||
/* $Id: named-checkzone.c,v 1.51.34.4 2009/11/10 20:01:41 each Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -73,14 +73,16 @@ static enum { progmode_check, progmode_compile } progmode;
|
||||
static void
|
||||
usage(void) {
|
||||
fprintf(stderr,
|
||||
"usage: %s [-djqvD] [-c class] [-o output] "
|
||||
"usage: %s [-djqvD] [-c class] "
|
||||
"[-f inputformat] [-F outputformat] "
|
||||
"[-t directory] [-w directory] [-k (ignore|warn|fail)] "
|
||||
"[-n (ignore|warn|fail)] [-m (ignore|warn|fail)] "
|
||||
"[-i (full|full-sibling|local|local-sibling|none)] "
|
||||
"[-M (ignore|warn|fail)] [-S (ignore|warn|fail)] "
|
||||
"[-W (ignore|warn)] "
|
||||
"zonename filename\n", prog_name);
|
||||
"%s zonename filename\n",
|
||||
prog_name,
|
||||
progmode == progmode_check ? "[-o filename]" : "{-o filename}");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@@ -106,6 +108,7 @@ main(int argc, char **argv) {
|
||||
const char *outputformatstr = NULL;
|
||||
dns_masterformat_t inputformat = dns_masterformat_text;
|
||||
dns_masterformat_t outputformat = dns_masterformat_text;
|
||||
FILE *errout = stdout;
|
||||
|
||||
outputstyle = &dns_master_style_full;
|
||||
|
||||
@@ -144,8 +147,10 @@ main(int argc, char **argv) {
|
||||
|
||||
#define ARGCMP(X) (strcmp(isc_commandline_argument, X) == 0)
|
||||
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
while ((c = isc_commandline_parse(argc, argv,
|
||||
"c:df:i:jk:m:n:qs:t:o:vw:DF:M:S:W:"))
|
||||
"c:df:hi:jk:m:n:qs:t:o:vw:DF:M:S:W:"))
|
||||
!= EOF) {
|
||||
switch (c) {
|
||||
case 'c':
|
||||
@@ -341,17 +346,17 @@ main(int argc, char **argv) {
|
||||
zone_options &= ~DNS_ZONEOPT_CHECKWILDCARD;
|
||||
break;
|
||||
|
||||
default:
|
||||
case '?':
|
||||
if (isc_commandline_option != '?')
|
||||
fprintf(stderr, "%s: invalid argument -%c\n",
|
||||
prog_name, isc_commandline_option);
|
||||
case 'h':
|
||||
usage();
|
||||
}
|
||||
}
|
||||
|
||||
if (progmode == progmode_compile) {
|
||||
dumpzone = 1; /* always dump */
|
||||
if (output_filename == NULL) {
|
||||
fprintf(stderr,
|
||||
"output file required, but not specified\n");
|
||||
usage();
|
||||
default:
|
||||
fprintf(stderr, "%s: unhandled option -%c\n",
|
||||
prog_name, isc_commandline_option);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -388,12 +393,36 @@ main(int argc, char **argv) {
|
||||
}
|
||||
}
|
||||
|
||||
if (isc_commandline_index + 2 > argc)
|
||||
if (progmode == progmode_compile) {
|
||||
dumpzone = 1; /* always dump */
|
||||
if (output_filename == NULL) {
|
||||
fprintf(stderr,
|
||||
"output file required, but not specified\n");
|
||||
usage();
|
||||
}
|
||||
}
|
||||
|
||||
if (output_filename != NULL)
|
||||
dumpzone = 1;
|
||||
|
||||
/*
|
||||
* If we are outputing to stdout then send the informational
|
||||
* output to stderr.
|
||||
*/
|
||||
if (dumpzone &&
|
||||
(output_filename == NULL ||
|
||||
strcmp(output_filename, "-") == 0 ||
|
||||
strcmp(output_filename, "/dev/fd/1") == 0 ||
|
||||
strcmp(output_filename, "/dev/stdout") == 0))
|
||||
errout = stderr;
|
||||
|
||||
if (isc_commandline_index + 2 != argc)
|
||||
usage();
|
||||
|
||||
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
|
||||
if (!quiet)
|
||||
RUNTIME_CHECK(setup_logging(mctx, &lctx) == ISC_R_SUCCESS);
|
||||
RUNTIME_CHECK(setup_logging(mctx, errout, &lctx)
|
||||
== ISC_R_SUCCESS);
|
||||
RUNTIME_CHECK(isc_entropy_create(mctx, &ectx) == ISC_R_SUCCESS);
|
||||
RUNTIME_CHECK(isc_hash_create(mctx, ectx, DNS_NAME_MAXWIRE)
|
||||
== ISC_R_SUCCESS);
|
||||
@@ -407,17 +436,17 @@ main(int argc, char **argv) {
|
||||
|
||||
if (result == ISC_R_SUCCESS && dumpzone) {
|
||||
if (!quiet && progmode == progmode_compile) {
|
||||
fprintf(stdout, "dump zone to %s...", output_filename);
|
||||
fflush(stdout);
|
||||
fprintf(errout, "dump zone to %s...", output_filename);
|
||||
fflush(errout);
|
||||
}
|
||||
result = dump_zone(origin, zone, output_filename,
|
||||
outputformat, outputstyle);
|
||||
if (!quiet && progmode == progmode_compile)
|
||||
fprintf(stdout, "done\n");
|
||||
fprintf(errout, "done\n");
|
||||
}
|
||||
|
||||
if (!quiet && result == ISC_R_SUCCESS)
|
||||
fprintf(stdout, "OK\n");
|
||||
fprintf(errout, "OK\n");
|
||||
destroy();
|
||||
if (lctx != NULL)
|
||||
isc_log_destroy(&lctx);
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: named-checkzone.docbook,v 1.11.18.23 2009/01/22 23:45:59 tbox Exp $ -->
|
||||
<!-- $Id: named-checkzone.docbook,v 1.34.334.3 2009/11/10 20:01:41 each Exp $ -->
|
||||
<refentry id="man.named-checkzone">
|
||||
<refentryinfo>
|
||||
<date>June 13, 2000</date>
|
||||
@@ -57,6 +57,7 @@
|
||||
<cmdsynopsis>
|
||||
<command>named-checkzone</command>
|
||||
<arg><option>-d</option></arg>
|
||||
<arg><option>-h</option></arg>
|
||||
<arg><option>-j</option></arg>
|
||||
<arg><option>-q</option></arg>
|
||||
<arg><option>-v</option></arg>
|
||||
@@ -68,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>-s <replaceable class="parameter">style</replaceable></option></arg>
|
||||
<arg><option>-S <replaceable class="parameter">mode</replaceable></option></arg>
|
||||
<arg><option>-t <replaceable class="parameter">directory</replaceable></option></arg>
|
||||
@@ -98,6 +98,7 @@
|
||||
<arg><option>-w <replaceable class="parameter">directory</replaceable></option></arg>
|
||||
<arg><option>-D</option></arg>
|
||||
<arg><option>-W <replaceable class="parameter">mode</replaceable></option></arg>
|
||||
<arg choice="req"><option>-o <replaceable class="parameter">filename</replaceable></option></arg>
|
||||
<arg choice="req">zonename</arg>
|
||||
<arg choice="req">filename</arg>
|
||||
</cmdsynopsis>
|
||||
@@ -137,6 +138,15 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-h</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Print the usage summary and exit.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-q</term>
|
||||
<listitem>
|
||||
@@ -302,6 +312,8 @@
|
||||
<listitem>
|
||||
<para>
|
||||
Write zone output to <filename>filename</filename>.
|
||||
If <filename>filename</filename> is <filename>-</filename> then
|
||||
write to standard out.
|
||||
This is mandatory for <command>named-compilezone</command>.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
@@ -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.11.18.32 2009/07/11 01:31:43 tbox Exp $ -->
|
||||
<!-- $Id: named-checkzone.html,v 1.42.334.3 2009/11/11 01:56:22 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">-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">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-S <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {zonename} {filename}</p></div>
|
||||
<div class="cmdsynopsis"><p><code class="command">named-compilezone</code> [<code class="option">-d</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-C <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-o <em class="replaceable"><code>filename</code></em></code>] [<code class="option">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {zonename} {filename}</p></div>
|
||||
<div class="cmdsynopsis"><p><code class="command">named-checkzone</code> [<code class="option">-d</code>] [<code class="option">-h</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-M <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-S <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {zonename} {filename}</p></div>
|
||||
<div class="cmdsynopsis"><p><code class="command">named-compilezone</code> [<code class="option">-d</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-C <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-o <em class="replaceable"><code>filename</code></em></code>] [<code class="option">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {<code class="option">-o <em class="replaceable"><code>filename</code></em></code>} {zonename} {filename}</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543668"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543674"></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,12 +53,16 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543703"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543709"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-d</span></dt>
|
||||
<dd><p>
|
||||
Enable debugging.
|
||||
</p></dd>
|
||||
<dt><span class="term">-h</span></dt>
|
||||
<dd><p>
|
||||
Print the usage summary and exit.
|
||||
</p></dd>
|
||||
<dt><span class="term">-q</span></dt>
|
||||
<dd><p>
|
||||
Quiet mode - exit code only.
|
||||
@@ -169,6 +173,8 @@
|
||||
<dt><span class="term">-o <em class="replaceable"><code>filename</code></em></span></dt>
|
||||
<dd><p>
|
||||
Write zone output to <code class="filename">filename</code>.
|
||||
If <code class="filename">filename</code> is <code class="filename">-</code> then
|
||||
write to standard out.
|
||||
This is mandatory for <span><strong class="command">named-compilezone</strong></span>.
|
||||
</p></dd>
|
||||
<dt><span class="term">-s <em class="replaceable"><code>style</code></em></span></dt>
|
||||
@@ -233,14 +239,14 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544302"></a><h2>RETURN VALUES</h2>
|
||||
<a name="id2544330"></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="id2544314"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2544342"></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>,
|
||||
@@ -248,7 +254,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544347"></a><h2>AUTHOR</h2>
|
||||
<a name="id2544375"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
# Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and distribute this software for any
|
||||
# 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.
|
||||
#
|
||||
@@ -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.33.18.6 2005/09/09 14:11:04 marka Exp $
|
||||
# $Id: Makefile.in,v 1.41 2007/06/19 23:46:59 tbox Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
+6
-1
@@ -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.23.18.27 2009/07/11 01:31:43 tbox Exp $
|
||||
.\" $Id: dig.1,v 1.50.44.3 2009/07/11 01:55:20 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -495,6 +495,11 @@ Requires dig be compiled with \-DDIG_SIGCHASE.
|
||||
.RS 4
|
||||
When chasing DNSSEC signature chains perform a top\-down validation. Requires dig be compiled with \-DDIG_SIGCHASE.
|
||||
.RE
|
||||
.PP
|
||||
\fB+[no]nsid\fR
|
||||
.RS 4
|
||||
Include an EDNS name server ID request when sending a query.
|
||||
.RE
|
||||
.SH "MULTIPLE QUERIES"
|
||||
.PP
|
||||
The BIND 9 implementation of
|
||||
|
||||
+34
-19
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dig.c,v 1.186.18.37 2009/05/06 10:21:00 fdupont Exp $ */
|
||||
/* $Id: dig.c,v 1.225.26.4 2009/05/06 10:18:33 fdupont Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -213,6 +213,7 @@ help(void) {
|
||||
" +[no]identify (ID responders in short answers)\n"
|
||||
" +[no]trace (Trace delegation down from root)\n"
|
||||
" +[no]dnssec (Request DNSSEC records)\n"
|
||||
" +[no]nsid (Request Name Server ID)\n"
|
||||
#ifdef DIG_SIGCHASE
|
||||
" +[no]sigchase (Chase DNSSEC signatures)\n"
|
||||
" +trusted-key=#### (Trusted Key when chasing DNSSEC sigs)\n"
|
||||
@@ -659,9 +660,9 @@ printgreeting(int argc, char **argv, dig_lookup_t *lookup) {
|
||||
}
|
||||
if (first) {
|
||||
snprintf(append, sizeof(append),
|
||||
";; global options: %s %s\n",
|
||||
short_form ? "short_form" : "",
|
||||
printcmd ? "printcmd" : "");
|
||||
";; global options:%s%s\n",
|
||||
short_form ? " +short" : "",
|
||||
printcmd ? " +cmd" : "");
|
||||
first = ISC_FALSE;
|
||||
remaining = sizeof(lookup->cmdline) -
|
||||
strlen(lookup->cmdline) - 1;
|
||||
@@ -882,21 +883,33 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
goto invalid_option;
|
||||
ndots = parse_uint(value, "ndots", MAXNDOTS);
|
||||
break;
|
||||
case 's': /* nssearch */
|
||||
FULLCHECK("nssearch");
|
||||
lookup->ns_search_only = state;
|
||||
if (state) {
|
||||
lookup->trace_root = ISC_TRUE;
|
||||
lookup->recurse = ISC_TRUE;
|
||||
lookup->identify = ISC_TRUE;
|
||||
lookup->stats = ISC_FALSE;
|
||||
lookup->comments = ISC_FALSE;
|
||||
lookup->section_additional = ISC_FALSE;
|
||||
lookup->section_authority = ISC_FALSE;
|
||||
lookup->section_question = ISC_FALSE;
|
||||
lookup->rdtype = dns_rdatatype_ns;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
short_form = ISC_TRUE;
|
||||
case 's':
|
||||
switch (cmd[2]) {
|
||||
case 'i': /* nsid */
|
||||
FULLCHECK("nsid");
|
||||
if (state && lookup->edns == -1)
|
||||
lookup->edns = 0;
|
||||
lookup->nsid = state;
|
||||
break;
|
||||
case 's': /* nssearch */
|
||||
FULLCHECK("nssearch");
|
||||
lookup->ns_search_only = state;
|
||||
if (state) {
|
||||
lookup->trace_root = ISC_TRUE;
|
||||
lookup->recurse = ISC_TRUE;
|
||||
lookup->identify = ISC_TRUE;
|
||||
lookup->stats = ISC_FALSE;
|
||||
lookup->comments = ISC_FALSE;
|
||||
lookup->section_additional = ISC_FALSE;
|
||||
lookup->section_authority = ISC_FALSE;
|
||||
lookup->section_question = ISC_FALSE;
|
||||
lookup->rdtype = dns_rdatatype_ns;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
short_form = ISC_TRUE;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
goto invalid_option;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@@ -1280,6 +1293,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
MAXSERIAL);
|
||||
(*lookup)->section_question = plusquest;
|
||||
(*lookup)->comments = pluscomm;
|
||||
(*lookup)->tcp_mode = ISC_TRUE;
|
||||
} else {
|
||||
(*lookup)->rdtype = rdtype;
|
||||
(*lookup)->rdtypeset = ISC_TRUE;
|
||||
@@ -1620,6 +1634,7 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only,
|
||||
lookup->section_question =
|
||||
plusquest;
|
||||
lookup->comments = pluscomm;
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
} else {
|
||||
lookup->rdtype = rdtype;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
|
||||
+9
-1
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dig.docbook,v 1.17.18.27 2009/02/02 04:45:22 marka Exp $ -->
|
||||
<!-- $Id: dig.docbook,v 1.42.44.3 2009/02/02 04:42:48 marka Exp $ -->
|
||||
<refentry id="man.dig">
|
||||
|
||||
<refentryinfo>
|
||||
@@ -840,6 +840,14 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>+[no]nsid</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Include an EDNS name server ID request when sending a query.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
||||
</variablelist>
|
||||
|
||||
+10
-6
@@ -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.13.18.33 2009/07/11 01:31:44 tbox Exp $ -->
|
||||
<!-- $Id: dig.html,v 1.45.44.3 2009/07/11 01:55:20 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -545,13 +545,17 @@
|
||||
validation.
|
||||
Requires dig be compiled with -DDIG_SIGCHASE.
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="option">+[no]nsid</code></span></dt>
|
||||
<dd><p>
|
||||
Include an EDNS name server ID request when sending a query.
|
||||
</p></dd>
|
||||
</dl></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545153"></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
|
||||
@@ -597,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="id2545214"></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.
|
||||
@@ -611,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="id2545237"></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="id2545322"></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>,
|
||||
@@ -626,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="id2545360"></a><h2>BUGS</h2>
|
||||
<a name="id2545373"></a><h2>BUGS</h2>
|
||||
<p>
|
||||
There are probably too many query options.
|
||||
</p>
|
||||
|
||||
+31
-17
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dighost.c,v 1.259.18.58 2009/06/24 03:44:52 marka Exp $ */
|
||||
/* $Id: dighost.c,v 1.311.70.11 2009/11/10 17:27:13 each Exp $ */
|
||||
|
||||
/*! \file
|
||||
* \note
|
||||
@@ -729,6 +729,7 @@ make_empty_lookup(void) {
|
||||
looknew->servfail_stops = ISC_TRUE;
|
||||
looknew->besteffort = ISC_TRUE;
|
||||
looknew->dnssec = ISC_FALSE;
|
||||
looknew->nsid = ISC_FALSE;
|
||||
#ifdef DIG_SIGCHASE
|
||||
looknew->sigchase = ISC_FALSE;
|
||||
#if DIG_SIGCHASE_TD
|
||||
@@ -808,6 +809,7 @@ clone_lookup(dig_lookup_t *lookold, isc_boolean_t servers) {
|
||||
looknew->servfail_stops = lookold->servfail_stops;
|
||||
looknew->besteffort = lookold->besteffort;
|
||||
looknew->dnssec = lookold->dnssec;
|
||||
looknew->nsid = lookold->nsid;
|
||||
#ifdef DIG_SIGCHASE
|
||||
looknew->sigchase = lookold->sigchase;
|
||||
#if DIG_SIGCHASE_TD
|
||||
@@ -1171,11 +1173,11 @@ setup_libs(void) {
|
||||
|
||||
/*%
|
||||
* Add EDNS0 option record to a message. Currently, the only supported
|
||||
* options are UDP buffer size and the DO bit.
|
||||
* options are UDP buffer size, the DO bit, and NSID request.
|
||||
*/
|
||||
static void
|
||||
add_opt(dns_message_t *msg, isc_uint16_t udpsize, isc_uint16_t edns,
|
||||
isc_boolean_t dnssec)
|
||||
isc_boolean_t dnssec, isc_boolean_t nsid)
|
||||
{
|
||||
dns_rdataset_t *rdataset = NULL;
|
||||
dns_rdatalist_t *rdatalist = NULL;
|
||||
@@ -1198,8 +1200,19 @@ add_opt(dns_message_t *msg, isc_uint16_t udpsize, isc_uint16_t edns,
|
||||
rdatalist->ttl = edns << 16;
|
||||
if (dnssec)
|
||||
rdatalist->ttl |= DNS_MESSAGEEXTFLAG_DO;
|
||||
rdata->data = NULL;
|
||||
rdata->length = 0;
|
||||
if (nsid) {
|
||||
unsigned char data[4];
|
||||
isc_buffer_t buf;
|
||||
|
||||
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);
|
||||
} else {
|
||||
rdata->data = NULL;
|
||||
rdata->length = 0;
|
||||
}
|
||||
ISC_LIST_INIT(rdatalist->rdata);
|
||||
ISC_LIST_APPEND(rdatalist->rdata, rdata, link);
|
||||
dns_rdatalist_tordataset(rdatalist, rdataset);
|
||||
@@ -1864,7 +1877,7 @@ setup_lookup(dig_lookup_t *lookup) {
|
||||
&lookup->name);
|
||||
dns_message_puttempname(lookup->sendmsg,
|
||||
&lookup->oname);
|
||||
fatal("Origin '%s' is not in legal name syntax (%s)",
|
||||
fatal("'%s' is not in legal name syntax (%s)",
|
||||
lookup->origin->origin,
|
||||
isc_result_totext(result));
|
||||
}
|
||||
@@ -1969,12 +1982,15 @@ setup_lookup(dig_lookup_t *lookup) {
|
||||
|
||||
if ((lookup->rdtype == dns_rdatatype_axfr) ||
|
||||
(lookup->rdtype == dns_rdatatype_ixfr)) {
|
||||
lookup->doing_xfr = ISC_TRUE;
|
||||
/*
|
||||
* Force TCP mode if we're doing an xfr.
|
||||
* XXX UDP ixfr's would be useful
|
||||
* Force TCP mode if we're doing an axfr.
|
||||
*/
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
if (lookup->rdtype == dns_rdatatype_axfr) {
|
||||
lookup->doing_xfr = ISC_TRUE;
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
} else if (lookup->tcp_mode) {
|
||||
lookup->doing_xfr = ISC_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
add_question(lookup->sendmsg, lookup->name, lookup->rdclass,
|
||||
@@ -2011,7 +2027,7 @@ setup_lookup(dig_lookup_t *lookup) {
|
||||
if (lookup->edns < 0)
|
||||
lookup->edns = 0;
|
||||
add_opt(lookup->sendmsg, lookup->udpsize,
|
||||
lookup->edns, lookup->dnssec);
|
||||
lookup->edns, lookup->dnssec, lookup->nsid);
|
||||
}
|
||||
|
||||
result = dns_message_rendersection(lookup->sendmsg,
|
||||
@@ -2383,11 +2399,9 @@ connect_timeout(isc_task_t *task, isc_event_t *event) {
|
||||
if (!l->tcp_mode)
|
||||
send_udp(ISC_LIST_NEXT(cq, link));
|
||||
else {
|
||||
isc_socket_cancel(query->sock, NULL,
|
||||
ISC_SOCKCANCEL_ALL);
|
||||
isc_socket_detach(&query->sock);
|
||||
sockcount--;
|
||||
debug("sockcount=%d", sockcount);
|
||||
if (query->sock != NULL)
|
||||
isc_socket_cancel(query->sock, NULL,
|
||||
ISC_SOCKCANCEL_ALL);
|
||||
send_tcp_connect(ISC_LIST_NEXT(cq, link));
|
||||
}
|
||||
UNLOCK_LOOKUP;
|
||||
@@ -2591,8 +2605,8 @@ connect_done(isc_task_t *task, isc_event_t *event) {
|
||||
if (sevent->result == ISC_R_CANCELED) {
|
||||
debug("in cancel handler");
|
||||
isc_socket_detach(&query->sock);
|
||||
INSIST(sockcount > 0);
|
||||
sockcount--;
|
||||
INSIST(sockcount >= 0);
|
||||
debug("sockcount=%d", sockcount);
|
||||
query->waiting_connect = ISC_FALSE;
|
||||
isc_event_free(&event);
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: host.1,v 1.14.18.18 2009/07/11 01:31:44 tbox Exp $
|
||||
.\" $Id: host.1,v 1.29.114.2 2009/07/11 01:55:20 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
||||
+2
-1
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: host.c,v 1.94.18.22 2009/09/08 23:29:03 marka Exp $ */
|
||||
/* $Id: host.c,v 1.116.216.3 2009/09/08 23:28:20 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -706,6 +706,7 @@ parse_args(isc_boolean_t is_batchfile, int argc, char **argv) {
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
} else if (rdtype == dns_rdatatype_ixfr) {
|
||||
lookup->ixfr_serial = serial;
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
list_type = rdtype;
|
||||
#ifdef WITH_IDN
|
||||
} else if (rdtype == dns_rdatatype_a ||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: host.docbook,v 1.5.18.15 2009/01/22 23:46:00 tbox Exp $ -->
|
||||
<!-- $Id: host.docbook,v 1.18.114.2 2009/01/22 23:47:05 tbox Exp $ -->
|
||||
<refentry id="man.host">
|
||||
|
||||
<refentryinfo>
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: host.html,v 1.7.18.24 2009/07/11 01:31:44 tbox Exp $ -->
|
||||
<!-- $Id: host.html,v 1.28.114.2 2009/07/11 01:55:20 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 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
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dig.h,v 1.82.18.25 2008/12/16 23:46:02 tbox Exp $ */
|
||||
/* $Id: dig.h,v 1.107.120.2 2009/01/06 23:47:26 tbox Exp $ */
|
||||
|
||||
#ifndef DIG_H
|
||||
#define DIG_H
|
||||
@@ -129,7 +129,8 @@ struct dig_lookup {
|
||||
need_search,
|
||||
done_as_is,
|
||||
besteffort,
|
||||
dnssec;
|
||||
dnssec,
|
||||
nsid; /*% Name Server ID (RFC 5001) */
|
||||
#ifdef DIG_SIGCHASE
|
||||
isc_boolean_t sigchase;
|
||||
#if DIG_SIGCHASE_TD
|
||||
|
||||
+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.1.10.15 2009/07/11 01:31:44 tbox Exp $
|
||||
.\" $Id: nslookup.1,v 1.14.354.1 2009/07/11 01:55:20 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
||||
+3
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007, 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
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: nslookup.c,v 1.101.18.20 2009/05/06 23:45:59 tbox Exp $ */
|
||||
/* $Id: nslookup.c,v 1.117.334.5 2009/10/20 01:11:22 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -373,6 +373,7 @@ detailsection(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers,
|
||||
printrdata(&rdata);
|
||||
}
|
||||
dns_rdata_reset(&rdata);
|
||||
printf("\tttl = %u\n", rdataset->ttl);
|
||||
loopresult = dns_rdataset_next(rdataset);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: nslookup.docbook,v 1.4.2.13 2007/08/28 07:19:55 tbox Exp $ -->
|
||||
<!-- $Id: nslookup.docbook,v 1.16 2007/06/18 23:47:17 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.1.10.22 2009/07/11 01:31:44 tbox Exp $ -->
|
||||
<!-- $Id: nslookup.html,v 1.21.354.1 2009/07/11 01:55:20 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
Makefile
|
||||
dnssec-dsfromkey
|
||||
dnssec-keyfromlabel
|
||||
dnssec-keygen
|
||||
dnssec-makekeyset
|
||||
dnssec-signkey
|
||||
|
||||
+19
-7
@@ -1,7 +1,7 @@
|
||||
# Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and distribute this software for any
|
||||
# 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.
|
||||
#
|
||||
@@ -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.26.18.4 2005/05/02 00:26:11 marka Exp $
|
||||
# $Id: Makefile.in,v 1.35 2008/11/07 02:28:49 marka Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
@@ -39,20 +39,32 @@ DEPLIBS = ${DNSDEPLIBS} ${ISCDEPLIBS}
|
||||
LIBS = ${DNSLIBS} ${ISCLIBS} @LIBS@
|
||||
|
||||
# Alphabetically
|
||||
TARGETS = dnssec-keygen@EXEEXT@ dnssec-signzone@EXEEXT@
|
||||
TARGETS = dnssec-keygen@EXEEXT@ dnssec-signzone@EXEEXT@ \
|
||||
dnssec-keyfromlabel@EXEEXT@ dnssec-dsfromkey@EXEEXT@
|
||||
|
||||
OBJS = dnssectool.@O@
|
||||
|
||||
SRCS = dnssec-keygen.c dnssec-signzone.c dnssectool.c
|
||||
SRCS = dnssec-dsfromkey.c dnssec-keyfromlabel.c dnssec-keygen.c \
|
||||
dnssec-signzone.c dnssectool.c
|
||||
|
||||
MANPAGES = dnssec-keygen.8 dnssec-signzone.8
|
||||
MANPAGES = dnssec-dsfromkey.8 dnssec-keyfromlabel.8 dnssec-keygen.8 \
|
||||
dnssec-signzone.8
|
||||
|
||||
HTMLPAGES = dnssec-keygen.html dnssec-signzone.html
|
||||
HTMLPAGES = dnssec-dsfromkey.html dnssec-keyfromlabel.html \
|
||||
dnssec-keygen.html dnssec-signzone.html
|
||||
|
||||
MANOBJS = ${MANPAGES} ${HTMLPAGES}
|
||||
|
||||
@BIND9_MAKE_RULES@
|
||||
|
||||
dnssec-dsfromkey@EXEEXT@: dnssec-dsfromkey.@O@ ${OBJS} ${DEPLIBS}
|
||||
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
|
||||
dnssec-dsfromkey.@O@ ${OBJS} ${LIBS}
|
||||
|
||||
dnssec-keyfromlabel@EXEEXT@: dnssec-keyfromlabel.@O@ ${OBJS} ${DEPLIBS}
|
||||
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
|
||||
dnssec-keyfromlabel.@O@ ${OBJS} ${LIBS}
|
||||
|
||||
dnssec-keygen@EXEEXT@: dnssec-keygen.@O@ ${OBJS} ${DEPLIBS}
|
||||
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
|
||||
dnssec-keygen.@O@ ${OBJS} ${LIBS}
|
||||
|
||||
@@ -0,0 +1,124 @@
|
||||
.\" Copyright (C) 2008 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: dnssec-dsfromkey.8,v 1.5 2008/11/08 01:11:47 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
.\" Title: dnssec\-dsfromkey
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets v1.71.1 <http://docbook.sf.net/>
|
||||
.\" Date: November 29, 2008
|
||||
.\" Manual: BIND9
|
||||
.\" Source: BIND9
|
||||
.\"
|
||||
.TH "DNSSEC\-DSFROMKEY" "8" "November 29, 2008" "BIND9" "BIND9"
|
||||
.\" disable hyphenation
|
||||
.nh
|
||||
.\" disable justification (adjust text to left margin only)
|
||||
.ad l
|
||||
.SH "NAME"
|
||||
dnssec\-dsfromkey \- DNSSEC DS RR generation tool
|
||||
.SH "SYNOPSIS"
|
||||
.HP 17
|
||||
\fBdnssec\-dsfromkey\fR [\fB\-v\ \fR\fB\fIlevel\fR\fR] [\fB\-1\fR] [\fB\-2\fR] [\fB\-a\ \fR\fB\fIalg\fR\fR] {keyfile}
|
||||
.HP 17
|
||||
\fBdnssec\-dsfromkey\fR {\-s} [\fB\-v\ \fR\fB\fIlevel\fR\fR] [\fB\-1\fR] [\fB\-2\fR] [\fB\-a\ \fR\fB\fIalg\fR\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-d\ \fR\fB\fIdir\fR\fR] {dnsname}
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
\fBdnssec\-dsfromkey\fR
|
||||
outputs the Delegation Signer (DS) resource record (RR), as defined in RFC 3658 and RFC 4509, for the given key(s).
|
||||
.SH "OPTIONS"
|
||||
.PP
|
||||
\-1
|
||||
.RS 4
|
||||
Use SHA\-1 as the digest algorithm (the default is to use both SHA\-1 and SHA\-256).
|
||||
.RE
|
||||
.PP
|
||||
\-2
|
||||
.RS 4
|
||||
Use SHA\-256 as the digest algorithm.
|
||||
.RE
|
||||
.PP
|
||||
\-a \fIalgorithm\fR
|
||||
.RS 4
|
||||
Select the digest algorithm. The value of
|
||||
\fBalgorithm\fR
|
||||
must be one of SHA\-1 (SHA1) or SHA\-256 (SHA256). These values are case insensitive.
|
||||
.RE
|
||||
.PP
|
||||
\-v \fIlevel\fR
|
||||
.RS 4
|
||||
Sets the debugging level.
|
||||
.RE
|
||||
.PP
|
||||
\-s
|
||||
.RS 4
|
||||
Keyset mode: in place of the keyfile name, the argument is the DNS domain name of a keyset file. Following options make sense only in this mode.
|
||||
.RE
|
||||
.PP
|
||||
\-c \fIclass\fR
|
||||
.RS 4
|
||||
Specifies the DNS class (default is IN), useful only in the keyset mode.
|
||||
.RE
|
||||
.PP
|
||||
\-d \fIdirectory\fR
|
||||
.RS 4
|
||||
Look for
|
||||
\fIkeyset\fR
|
||||
files in
|
||||
\fBdirectory\fR
|
||||
as the directory, ignored when not in the keyset mode.
|
||||
.RE
|
||||
.SH "EXAMPLE"
|
||||
.PP
|
||||
To build the SHA\-256 DS RR from the
|
||||
\fBKexample.com.+003+26160\fR
|
||||
keyfile name, the following command would be issued:
|
||||
.PP
|
||||
\fBdnssec\-dsfromkey \-2 Kexample.com.+003+26160\fR
|
||||
.PP
|
||||
The command would print something like:
|
||||
.PP
|
||||
\fBexample.com. IN DS 26160 5 2 3A1EADA7A74B8D0BA86726B0C227AA85AB8BBD2B2004F41A868A54F0 C5EA0B94\fR
|
||||
.SH "FILES"
|
||||
.PP
|
||||
The keyfile can be designed by the key identification
|
||||
\fIKnnnn.+aaa+iiiii\fR
|
||||
or the full file name
|
||||
\fIKnnnn.+aaa+iiiii.key\fR
|
||||
as generated by
|
||||
dnssec\-keygen(8).
|
||||
.PP
|
||||
The keyset file name is built from the
|
||||
\fBdirectory\fR, the string
|
||||
\fIkeyset\-\fR
|
||||
and the
|
||||
\fBdnsname\fR.
|
||||
.SH "CAVEAT"
|
||||
.PP
|
||||
A keyfile error can give a "file not found" even if the file exists.
|
||||
.SH "SEE ALSO"
|
||||
.PP
|
||||
\fBdnssec\-keygen\fR(8),
|
||||
\fBdnssec\-signzone\fR(8),
|
||||
BIND 9 Administrator Reference Manual,
|
||||
RFC 3658,
|
||||
RFC 4509.
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
Internet Systems Consortium
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
@@ -0,0 +1,404 @@
|
||||
/*
|
||||
* Copyright (C) 2008-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: dnssec-dsfromkey.c,v 1.2.14.6 2010/01/11 23:47:22 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/entropy.h>
|
||||
#include <isc/hash.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/print.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/db.h>
|
||||
#include <dns/dbiterator.h>
|
||||
#include <dns/ds.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/log.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/rdata.h>
|
||||
#include <dns/rdataclass.h>
|
||||
#include <dns/rdataset.h>
|
||||
#include <dns/rdatasetiter.h>
|
||||
#include <dns/rdatatype.h>
|
||||
#include <dns/result.h>
|
||||
|
||||
#include <dst/dst.h>
|
||||
|
||||
#include "dnssectool.h"
|
||||
|
||||
const char *program = "dnssec-dsfromkey";
|
||||
int verbose;
|
||||
|
||||
static dns_rdataclass_t rdclass;
|
||||
static dns_fixedname_t fixed;
|
||||
static dns_name_t *name = NULL;
|
||||
static dns_db_t *db = NULL;
|
||||
static dns_dbnode_t *node = NULL;
|
||||
static dns_rdataset_t keyset;
|
||||
static isc_mem_t *mctx = NULL;
|
||||
|
||||
static void
|
||||
loadkeys(char *dirname, char *setname)
|
||||
{
|
||||
isc_result_t result;
|
||||
char filename[1024];
|
||||
isc_buffer_t buf;
|
||||
|
||||
dns_rdataset_init(&keyset);
|
||||
dns_fixedname_init(&fixed);
|
||||
name = dns_fixedname_name(&fixed);
|
||||
|
||||
isc_buffer_init(&buf, setname, strlen(setname));
|
||||
isc_buffer_add(&buf, strlen(setname));
|
||||
result = dns_name_fromtext(name, &buf, dns_rootname, ISC_FALSE, NULL);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("can't convert DNS name %s", setname);
|
||||
|
||||
isc_buffer_init(&buf, filename, sizeof(filename));
|
||||
if (dirname != NULL) {
|
||||
if (isc_buffer_availablelength(&buf) < strlen(dirname))
|
||||
fatal("directory name '%s' too long", dirname);
|
||||
isc_buffer_putstr(&buf, dirname);
|
||||
if (dirname[strlen(dirname) - 1] != '/') {
|
||||
if (isc_buffer_availablelength(&buf) < 1)
|
||||
fatal("directory name '%s' too long", dirname);
|
||||
isc_buffer_putstr(&buf, "/");
|
||||
}
|
||||
}
|
||||
|
||||
if (isc_buffer_availablelength(&buf) < strlen("keyset-"))
|
||||
fatal("directory name '%s' too long", dirname);
|
||||
isc_buffer_putstr(&buf, "keyset-");
|
||||
result = dns_name_tofilenametext(name, ISC_FALSE, &buf);
|
||||
check_result(result, "dns_name_tofilenametext()");
|
||||
if (isc_buffer_availablelength(&buf) == 0)
|
||||
fatal("name %s too long", setname);
|
||||
isc_buffer_putuint8(&buf, 0);
|
||||
|
||||
result = dns_db_create(mctx, "rbt", name, dns_dbtype_zone,
|
||||
rdclass, 0, NULL, &db);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("can't create database");
|
||||
|
||||
result = dns_db_load(db, filename);
|
||||
if (result != ISC_R_SUCCESS && result != DNS_R_SEENINCLUDE)
|
||||
fatal("can't load %s: %s", filename, isc_result_totext(result));
|
||||
|
||||
result = dns_db_findnode(db, name, ISC_FALSE, &node);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("can't find %s node in %s", setname, filename);
|
||||
|
||||
result = dns_db_findrdataset(db, node, NULL, dns_rdatatype_dnskey,
|
||||
0, 0, &keyset, NULL);
|
||||
if (result == ISC_R_NOTFOUND)
|
||||
fatal("no DNSKEY RR for %s in %s", setname, filename);
|
||||
else if (result != ISC_R_SUCCESS)
|
||||
fatal("dns_db_findrdataset");
|
||||
}
|
||||
|
||||
static void
|
||||
loadkey(char *filename, unsigned char *key_buf, unsigned int key_buf_size,
|
||||
dns_rdata_t *rdata)
|
||||
{
|
||||
isc_result_t result;
|
||||
dst_key_t *key = NULL;
|
||||
isc_buffer_t keyb;
|
||||
isc_region_t r;
|
||||
|
||||
dns_rdataset_init(&keyset);
|
||||
dns_rdata_init(rdata);
|
||||
|
||||
isc_buffer_init(&keyb, key_buf, key_buf_size);
|
||||
|
||||
result = dst_key_fromnamedfile(filename, DST_TYPE_PUBLIC, mctx, &key);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("invalid keyfile name %s: %s",
|
||||
filename, isc_result_totext(result));
|
||||
|
||||
if (verbose > 2) {
|
||||
char keystr[KEY_FORMATSIZE];
|
||||
|
||||
key_format(key, keystr, sizeof(keystr));
|
||||
fprintf(stderr, "%s: %s\n", program, keystr);
|
||||
}
|
||||
|
||||
result = dst_key_todns(key, &keyb);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("can't decode key");
|
||||
|
||||
isc_buffer_usedregion(&keyb, &r);
|
||||
dns_rdata_fromregion(rdata, dst_key_class(key),
|
||||
dns_rdatatype_dnskey, &r);
|
||||
|
||||
rdclass = dst_key_class(key);
|
||||
|
||||
dns_fixedname_init(&fixed);
|
||||
name = dns_fixedname_name(&fixed);
|
||||
result = dns_name_copy(dst_key_name(key), name, NULL);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("can't copy name");
|
||||
|
||||
dst_key_free(&key);
|
||||
}
|
||||
|
||||
static void
|
||||
logkey(dns_rdata_t *rdata)
|
||||
{
|
||||
isc_result_t result;
|
||||
dst_key_t *key = NULL;
|
||||
isc_buffer_t buf;
|
||||
char keystr[KEY_FORMATSIZE];
|
||||
|
||||
isc_buffer_init(&buf, rdata->data, rdata->length);
|
||||
isc_buffer_add(&buf, rdata->length);
|
||||
result = dst_key_fromdns(name, rdclass, &buf, mctx, &key);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return;
|
||||
|
||||
key_format(key, keystr, sizeof(keystr));
|
||||
fprintf(stderr, "%s: %s\n", program, keystr);
|
||||
|
||||
dst_key_free(&key);
|
||||
}
|
||||
|
||||
static void
|
||||
emitds(unsigned int dtype, dns_rdata_t *rdata)
|
||||
{
|
||||
isc_result_t result;
|
||||
unsigned char buf[DNS_DS_BUFFERSIZE];
|
||||
char text_buf[DST_KEY_MAXTEXTSIZE];
|
||||
char class_buf[10];
|
||||
isc_buffer_t textb, classb;
|
||||
isc_region_t r;
|
||||
dns_rdata_t ds;
|
||||
|
||||
isc_buffer_init(&textb, text_buf, sizeof(text_buf));
|
||||
isc_buffer_init(&classb, class_buf, sizeof(class_buf));
|
||||
|
||||
dns_rdata_init(&ds);
|
||||
|
||||
result = dns_ds_buildrdata(name, rdata, dtype, buf, &ds);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("can't build DS");
|
||||
|
||||
result = dns_rdata_totext(&ds, (dns_name_t *) NULL, &textb);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("can't print DS rdata");
|
||||
|
||||
result = dns_rdataclass_totext(rdclass, &classb);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("can't print DS class");
|
||||
|
||||
result = dns_name_print(name, stdout);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("can't print DS name");
|
||||
|
||||
putchar(' ');
|
||||
|
||||
isc_buffer_usedregion(&classb, &r);
|
||||
isc_util_fwrite(r.base, 1, r.length, stdout);
|
||||
|
||||
printf(" DS ");
|
||||
|
||||
isc_buffer_usedregion(&textb, &r);
|
||||
isc_util_fwrite(r.base, 1, r.length, stdout);
|
||||
putchar('\n');
|
||||
}
|
||||
|
||||
static void
|
||||
usage(void) {
|
||||
fprintf(stderr, "Usage:\n");
|
||||
fprintf(stderr, " %s options keyfile\n\n", program);
|
||||
fprintf(stderr, " %s options [-c class] [-d dir] -s dnsname\n\n",
|
||||
program);
|
||||
fprintf(stderr, "Version: %s\n", VERSION);
|
||||
fprintf(stderr, "Options:\n");
|
||||
fprintf(stderr, " -v <verbose level>\n");
|
||||
fprintf(stderr, " -1: use SHA-1\n");
|
||||
fprintf(stderr, " -2: use SHA-256\n");
|
||||
fprintf(stderr, " -a algorithm: use algorithm\n");
|
||||
fprintf(stderr, "Keyset options:\n");
|
||||
fprintf(stderr, " -s: keyset mode\n");
|
||||
fprintf(stderr, " -c class\n");
|
||||
fprintf(stderr, " -d directory\n");
|
||||
fprintf(stderr, "Output: DS RRs\n");
|
||||
|
||||
exit (-1);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv) {
|
||||
char *algname = NULL, *classname = NULL, *dirname = NULL;
|
||||
char *endp;
|
||||
int ch;
|
||||
unsigned int dtype = DNS_DSDIGEST_SHA1;
|
||||
isc_boolean_t both = ISC_TRUE;
|
||||
isc_boolean_t usekeyset = ISC_FALSE;
|
||||
isc_result_t result;
|
||||
isc_log_t *log = NULL;
|
||||
isc_entropy_t *ectx = NULL;
|
||||
dns_rdata_t rdata;
|
||||
|
||||
dns_rdata_init(&rdata);
|
||||
|
||||
if (argc == 1)
|
||||
usage();
|
||||
|
||||
result = isc_mem_create(0, 0, &mctx);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("out of memory");
|
||||
|
||||
dns_result_register();
|
||||
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
while ((ch = isc_commandline_parse(argc, argv,
|
||||
"12a:c:d:sv:h")) != -1) {
|
||||
switch (ch) {
|
||||
case '1':
|
||||
dtype = DNS_DSDIGEST_SHA1;
|
||||
both = ISC_FALSE;
|
||||
break;
|
||||
case '2':
|
||||
dtype = DNS_DSDIGEST_SHA256;
|
||||
both = ISC_FALSE;
|
||||
break;
|
||||
case 'a':
|
||||
algname = isc_commandline_argument;
|
||||
both = ISC_FALSE;
|
||||
break;
|
||||
case 'c':
|
||||
classname = isc_commandline_argument;
|
||||
break;
|
||||
case 'd':
|
||||
dirname = isc_commandline_argument;
|
||||
break;
|
||||
case 's':
|
||||
usekeyset = ISC_TRUE;
|
||||
break;
|
||||
case 'v':
|
||||
verbose = strtol(isc_commandline_argument, &endp, 0);
|
||||
if (*endp != '\0')
|
||||
fatal("-v must be followed by a number");
|
||||
break;
|
||||
case '?':
|
||||
if (isc_commandline_option != '?')
|
||||
fprintf(stderr, "%s: invalid argument -%c\n",
|
||||
program, isc_commandline_option);
|
||||
/* Falls into */
|
||||
case 'h':
|
||||
usage();
|
||||
|
||||
default:
|
||||
fprintf(stderr, "%s: unhandled option -%c\n",
|
||||
program, isc_commandline_option);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
if (algname != NULL) {
|
||||
if (strcasecmp(algname, "SHA1") == 0 ||
|
||||
strcasecmp(algname, "SHA-1") == 0)
|
||||
dtype = DNS_DSDIGEST_SHA1;
|
||||
else if (strcasecmp(algname, "SHA256") == 0 ||
|
||||
strcasecmp(algname, "SHA-256") == 0)
|
||||
dtype = DNS_DSDIGEST_SHA256;
|
||||
else
|
||||
fatal("unknown algorithm %s", algname);
|
||||
}
|
||||
|
||||
rdclass = strtoclass(classname);
|
||||
|
||||
if (argc < isc_commandline_index + 1)
|
||||
fatal("the key file name was not specified");
|
||||
if (argc > isc_commandline_index + 1)
|
||||
fatal("extraneous arguments");
|
||||
|
||||
if (ectx == NULL)
|
||||
setup_entropy(mctx, NULL, &ectx);
|
||||
result = isc_hash_create(mctx, ectx, DNS_NAME_MAXWIRE);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("could not initialize hash");
|
||||
result = dst_lib_init(mctx, ectx,
|
||||
ISC_ENTROPY_BLOCKING | ISC_ENTROPY_GOODONLY);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("could not initialize dst");
|
||||
isc_entropy_stopcallbacksources(ectx);
|
||||
|
||||
setup_logging(verbose, mctx, &log);
|
||||
|
||||
if (usekeyset) {
|
||||
loadkeys(dirname, argv[isc_commandline_index]);
|
||||
|
||||
for (result = dns_rdataset_first(&keyset);
|
||||
result == ISC_R_SUCCESS;
|
||||
result = dns_rdataset_next(&keyset)) {
|
||||
dns_rdata_init(&rdata);
|
||||
dns_rdataset_current(&keyset, &rdata);
|
||||
|
||||
if (verbose > 2)
|
||||
logkey(&rdata);
|
||||
|
||||
if (both) {
|
||||
emitds(DNS_DSDIGEST_SHA1, &rdata);
|
||||
emitds(DNS_DSDIGEST_SHA256, &rdata);
|
||||
} else
|
||||
emitds(dtype, &rdata);
|
||||
}
|
||||
} else {
|
||||
unsigned char key_buf[DST_KEY_MAXSIZE];
|
||||
|
||||
loadkey(argv[isc_commandline_index], key_buf,
|
||||
DST_KEY_MAXSIZE, &rdata);
|
||||
|
||||
if (both) {
|
||||
emitds(DNS_DSDIGEST_SHA1, &rdata);
|
||||
emitds(DNS_DSDIGEST_SHA256, &rdata);
|
||||
} else
|
||||
emitds(dtype, &rdata);
|
||||
}
|
||||
|
||||
if (dns_rdataset_isassociated(&keyset))
|
||||
dns_rdataset_disassociate(&keyset);
|
||||
if (node != NULL)
|
||||
dns_db_detachnode(db, &node);
|
||||
if (db != NULL)
|
||||
dns_db_detach(&db);
|
||||
cleanup_logging(&log);
|
||||
dst_lib_destroy();
|
||||
isc_hash_destroy();
|
||||
cleanup_entropy(&ectx);
|
||||
dns_name_destroy();
|
||||
if (verbose > 10)
|
||||
isc_mem_stats(mctx, stdout);
|
||||
isc_mem_destroy(&mctx);
|
||||
|
||||
fflush(stdout);
|
||||
if (ferror(stdout)) {
|
||||
fprintf(stderr, "write error\n");
|
||||
return (1);
|
||||
} else
|
||||
return (0);
|
||||
}
|
||||
@@ -0,0 +1,214 @@
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2008 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: dnssec-dsfromkey.docbook,v 1.6 2008/11/07 13:54:11 jreed Exp $ -->
|
||||
<refentry id="man.dnssec-dsfromkey">
|
||||
<refentryinfo>
|
||||
<date>November 29, 2008</date>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle><application>dnssec-dsfromkey</application></refentrytitle>
|
||||
<manvolnum>8</manvolnum>
|
||||
<refmiscinfo>BIND9</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname><application>dnssec-dsfromkey</application></refname>
|
||||
<refpurpose>DNSSEC DS RR generation tool</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<docinfo>
|
||||
<copyright>
|
||||
<year>2008</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
</docinfo>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>dnssec-dsfromkey</command>
|
||||
<arg><option>-v <replaceable class="parameter">level</replaceable></option></arg>
|
||||
<arg><option>-1</option></arg>
|
||||
<arg><option>-2</option></arg>
|
||||
<arg><option>-a <replaceable class="parameter">alg</replaceable></option></arg>
|
||||
<arg choice="req">keyfile</arg>
|
||||
</cmdsynopsis>
|
||||
<cmdsynopsis>
|
||||
<command>dnssec-dsfromkey</command>
|
||||
<arg choice="req">-s</arg>
|
||||
<arg><option>-v <replaceable class="parameter">level</replaceable></option></arg>
|
||||
<arg><option>-1</option></arg>
|
||||
<arg><option>-2</option></arg>
|
||||
<arg><option>-a <replaceable class="parameter">alg</replaceable></option></arg>
|
||||
<arg><option>-c <replaceable class="parameter">class</replaceable></option></arg>
|
||||
<arg><option>-d <replaceable class="parameter">dir</replaceable></option></arg>
|
||||
<arg choice="req">dnsname</arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>DESCRIPTION</title>
|
||||
<para><command>dnssec-dsfromkey</command>
|
||||
outputs the Delegation Signer (DS) resource record (RR), as defined in
|
||||
RFC 3658 and RFC 4509, for the given key(s).
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>OPTIONS</title>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>-1</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Use SHA-1 as the digest algorithm (the default is to use
|
||||
both SHA-1 and SHA-256).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-2</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Use SHA-256 as the digest algorithm.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-a <replaceable class="parameter">algorithm</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Select the digest algorithm. The value of
|
||||
<option>algorithm</option> must be one of SHA-1 (SHA1) or
|
||||
SHA-256 (SHA256). These values are case insensitive.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-v <replaceable class="parameter">level</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Sets the debugging level.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-s</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Keyset mode: in place of the keyfile name, the argument is
|
||||
the DNS domain name of a keyset file. Following options make sense
|
||||
only in this mode.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-c <replaceable class="parameter">class</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies the DNS class (default is IN), useful only
|
||||
in the keyset mode.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-d <replaceable class="parameter">directory</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Look for <filename>keyset</filename> files in
|
||||
<option>directory</option> as the directory, ignored when
|
||||
not in the keyset mode.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>EXAMPLE</title>
|
||||
<para>
|
||||
To build the SHA-256 DS RR from the
|
||||
<userinput>Kexample.com.+003+26160</userinput>
|
||||
keyfile name, the following command would be issued:
|
||||
</para>
|
||||
<para><userinput>dnssec-dsfromkey -2 Kexample.com.+003+26160</userinput>
|
||||
</para>
|
||||
<para>
|
||||
The command would print something like:
|
||||
</para>
|
||||
<para><userinput>example.com. IN DS 26160 5 2 3A1EADA7A74B8D0BA86726B0C227AA85AB8BBD2B2004F41A868A54F0 C5EA0B94</userinput>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>FILES</title>
|
||||
<para>
|
||||
The keyfile can be designed by the key identification
|
||||
<filename>Knnnn.+aaa+iiiii</filename> or the full file name
|
||||
<filename>Knnnn.+aaa+iiiii.key</filename> as generated by
|
||||
<refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum>.
|
||||
</para>
|
||||
<para>
|
||||
The keyset file name is built from the <option>directory</option>,
|
||||
the string <filename>keyset-</filename> and the
|
||||
<option>dnsname</option>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>CAVEAT</title>
|
||||
<para>
|
||||
A keyfile error can give a "file not found" even if the file exists.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>SEE ALSO</title>
|
||||
<para><citerefentry>
|
||||
<refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum>
|
||||
</citerefentry>,
|
||||
<citerefentry>
|
||||
<refentrytitle>dnssec-signzone</refentrytitle><manvolnum>8</manvolnum>
|
||||
</citerefentry>,
|
||||
<citetitle>BIND 9 Administrator Reference Manual</citetitle>,
|
||||
<citetitle>RFC 3658</citetitle>,
|
||||
<citetitle>RFC 4509</citetitle>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>AUTHOR</title>
|
||||
<para><corpauthor>Internet Systems Consortium</corpauthor>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
</refentry><!--
|
||||
- Local variables:
|
||||
- mode: sgml
|
||||
- End:
|
||||
-->
|
||||
@@ -0,0 +1,133 @@
|
||||
<!--
|
||||
- Copyright (C) 2008, 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: dnssec-dsfromkey.html,v 1.5.110.2 2010/03/03 23:32:17 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>dnssec-dsfromkey</title>
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
|
||||
<a name="man.dnssec-dsfromkey"></a><div class="titlepage"></div>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p><span class="application">dnssec-dsfromkey</span> — DNSSEC DS RR generation tool</p>
|
||||
</div>
|
||||
<div class="refsynopsisdiv">
|
||||
<h2>Synopsis</h2>
|
||||
<div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-1</code>] [<code class="option">-2</code>] [<code class="option">-a <em class="replaceable"><code>alg</code></em></code>] {keyfile}</p></div>
|
||||
<div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> {-s} [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-1</code>] [<code class="option">-2</code>] [<code class="option">-a <em class="replaceable"><code>alg</code></em></code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-d <em class="replaceable"><code>dir</code></em></code>] {dnsname}</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543421"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">dnssec-dsfromkey</strong></span>
|
||||
outputs the Delegation Signer (DS) resource record (RR), as defined in
|
||||
RFC 3658 and RFC 4509, for the given key(s).
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543433"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-1</span></dt>
|
||||
<dd><p>
|
||||
Use SHA-1 as the digest algorithm (the default is to use
|
||||
both SHA-1 and SHA-256).
|
||||
</p></dd>
|
||||
<dt><span class="term">-2</span></dt>
|
||||
<dd><p>
|
||||
Use SHA-256 as the digest algorithm.
|
||||
</p></dd>
|
||||
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
|
||||
<dd><p>
|
||||
Select the digest algorithm. The value of
|
||||
<code class="option">algorithm</code> must be one of SHA-1 (SHA1) or
|
||||
SHA-256 (SHA256). These values are case insensitive.
|
||||
</p></dd>
|
||||
<dt><span class="term">-v <em class="replaceable"><code>level</code></em></span></dt>
|
||||
<dd><p>
|
||||
Sets the debugging level.
|
||||
</p></dd>
|
||||
<dt><span class="term">-s</span></dt>
|
||||
<dd><p>
|
||||
Keyset mode: in place of the keyfile name, the argument is
|
||||
the DNS domain name of a keyset file. Following options make sense
|
||||
only in this mode.
|
||||
</p></dd>
|
||||
<dt><span class="term">-c <em class="replaceable"><code>class</code></em></span></dt>
|
||||
<dd><p>
|
||||
Specifies the DNS class (default is IN), useful only
|
||||
in the keyset mode.
|
||||
</p></dd>
|
||||
<dt><span class="term">-d <em class="replaceable"><code>directory</code></em></span></dt>
|
||||
<dd><p>
|
||||
Look for <code class="filename">keyset</code> files in
|
||||
<code class="option">directory</code> as the directory, ignored when
|
||||
not in the keyset mode.
|
||||
</p></dd>
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543561"></a><h2>EXAMPLE</h2>
|
||||
<p>
|
||||
To build the SHA-256 DS RR from the
|
||||
<strong class="userinput"><code>Kexample.com.+003+26160</code></strong>
|
||||
keyfile name, the following command would be issued:
|
||||
</p>
|
||||
<p><strong class="userinput"><code>dnssec-dsfromkey -2 Kexample.com.+003+26160</code></strong>
|
||||
</p>
|
||||
<p>
|
||||
The command would print something like:
|
||||
</p>
|
||||
<p><strong class="userinput"><code>example.com. IN DS 26160 5 2 3A1EADA7A74B8D0BA86726B0C227AA85AB8BBD2B2004F41A868A54F0 C5EA0B94</code></strong>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543591"></a><h2>FILES</h2>
|
||||
<p>
|
||||
The keyfile can be designed by the key identification
|
||||
<code class="filename">Knnnn.+aaa+iiiii</code> or the full file name
|
||||
<code class="filename">Knnnn.+aaa+iiiii.key</code> as generated by
|
||||
<span class="refentrytitle">dnssec-keygen</span>(8).
|
||||
</p>
|
||||
<p>
|
||||
The keyset file name is built from the <code class="option">directory</code>,
|
||||
the string <code class="filename">keyset-</code> and the
|
||||
<code class="option">dnsname</code>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543626"></a><h2>CAVEAT</h2>
|
||||
<p>
|
||||
A keyfile error can give a "file not found" even if the file exists.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543636"></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>,
|
||||
<em class="citetitle">RFC 3658</em>,
|
||||
<em class="citetitle">RFC 4509</em>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543672"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
</div></body>
|
||||
</html>
|
||||
@@ -0,0 +1,153 @@
|
||||
.\" Copyright (C) 2008, 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: dnssec-keyfromlabel.8,v 1.6.14.3 2010/01/16 01:55:32 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
.\" Title: dnssec\-keyfromlabel
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets v1.71.1 <http://docbook.sf.net/>
|
||||
.\" Date: February 8, 2008
|
||||
.\" Manual: BIND9
|
||||
.\" Source: BIND9
|
||||
.\"
|
||||
.TH "DNSSEC\-KEYFROMLABEL" "8" "February 8, 2008" "BIND9" "BIND9"
|
||||
.\" disable hyphenation
|
||||
.nh
|
||||
.\" disable justification (adjust text to left margin only)
|
||||
.ad l
|
||||
.SH "NAME"
|
||||
dnssec\-keyfromlabel \- DNSSEC key generation tool
|
||||
.SH "SYNOPSIS"
|
||||
.HP 20
|
||||
\fBdnssec\-keyfromlabel\fR {\-a\ \fIalgorithm\fR} {\-l\ \fIlabel\fR} [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-f\ \fR\fB\fIflag\fR\fR] [\fB\-k\fR] [\fB\-n\ \fR\fB\fInametype\fR\fR] [\fB\-p\ \fR\fB\fIprotocol\fR\fR] [\fB\-t\ \fR\fB\fItype\fR\fR] [\fB\-v\ \fR\fB\fIlevel\fR\fR] {name}
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
\fBdnssec\-keyfromlabel\fR
|
||||
gets keys with the given label from a crypto hardware and builds key files for DNSSEC (Secure DNS), as defined in RFC 2535 and RFC 4034.
|
||||
.SH "OPTIONS"
|
||||
.PP
|
||||
\-a \fIalgorithm\fR
|
||||
.RS 4
|
||||
Selects the cryptographic algorithm. The value of
|
||||
\fBalgorithm\fR
|
||||
must be one of RSAMD5, RSASHA1, DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256, RSASHA512 or DH (Diffie Hellman). These values are case insensitive.
|
||||
.sp
|
||||
If no algorithm is specified, then RSASHA1 will be used by default, unless the
|
||||
\fB\-3\fR
|
||||
option is specified, in which case NSEC3RSASHA1 will be used instead. (If
|
||||
\fB\-3\fR
|
||||
is used and an algorithm is specified, that algorithm will be checked for compatibility with NSEC3.)
|
||||
.sp
|
||||
Note 1: that for DNSSEC, RSASHA1 is a mandatory to implement algorithm, and DSA is recommended.
|
||||
.sp
|
||||
Note 2: DH automatically sets the \-k flag.
|
||||
.RE
|
||||
.PP
|
||||
\-l \fIlabel\fR
|
||||
.RS 4
|
||||
Specifies the label of keys in the crypto hardware (PKCS#11 device).
|
||||
.RE
|
||||
.PP
|
||||
\-n \fInametype\fR
|
||||
.RS 4
|
||||
Specifies the owner type of the key. The value of
|
||||
\fBnametype\fR
|
||||
must either be ZONE (for a DNSSEC zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated with a host (KEY)), USER (for a key associated with a user(KEY)) or OTHER (DNSKEY). These values are case insensitive.
|
||||
.RE
|
||||
.PP
|
||||
\-c \fIclass\fR
|
||||
.RS 4
|
||||
Indicates that the DNS record containing the key should have the specified class. If not specified, class IN is used.
|
||||
.RE
|
||||
.PP
|
||||
\-f \fIflag\fR
|
||||
.RS 4
|
||||
Set the specified flag in the flag field of the KEY/DNSKEY record. The only recognized flag is KSK (Key Signing Key) DNSKEY.
|
||||
.RE
|
||||
.PP
|
||||
\-h
|
||||
.RS 4
|
||||
Prints a short summary of the options and arguments to
|
||||
\fBdnssec\-keygen\fR.
|
||||
.RE
|
||||
.PP
|
||||
\-k
|
||||
.RS 4
|
||||
Generate KEY records rather than DNSKEY records.
|
||||
.RE
|
||||
.PP
|
||||
\-p \fIprotocol\fR
|
||||
.RS 4
|
||||
Sets the protocol value for the generated key. The protocol is a number between 0 and 255. The default is 3 (DNSSEC). Other possible values for this argument are listed in RFC 2535 and its successors.
|
||||
.RE
|
||||
.PP
|
||||
\-t \fItype\fR
|
||||
.RS 4
|
||||
Indicates the use of the key.
|
||||
\fBtype\fR
|
||||
must be one of AUTHCONF, NOAUTHCONF, NOAUTH, or NOCONF. The default is AUTHCONF. AUTH refers to the ability to authenticate data, and CONF the ability to encrypt data.
|
||||
.RE
|
||||
.PP
|
||||
\-v \fIlevel\fR
|
||||
.RS 4
|
||||
Sets the debugging level.
|
||||
.RE
|
||||
.SH "GENERATED KEY FILES"
|
||||
.PP
|
||||
When
|
||||
\fBdnssec\-keyfromlabel\fR
|
||||
completes successfully, it prints a string of the form
|
||||
\fIKnnnn.+aaa+iiiii\fR
|
||||
to the standard output. This is an identification string for the key files it has generated.
|
||||
.TP 4
|
||||
\(bu
|
||||
\fInnnn\fR
|
||||
is the key name.
|
||||
.TP 4
|
||||
\(bu
|
||||
\fIaaa\fR
|
||||
is the numeric representation of the algorithm.
|
||||
.TP 4
|
||||
\(bu
|
||||
\fIiiiii\fR
|
||||
is the key identifier (or footprint).
|
||||
.PP
|
||||
\fBdnssec\-keyfromlabel\fR
|
||||
creates two files, with names based on the printed string.
|
||||
\fIKnnnn.+aaa+iiiii.key\fR
|
||||
contains the public key, and
|
||||
\fIKnnnn.+aaa+iiiii.private\fR
|
||||
contains the private key.
|
||||
.PP
|
||||
The
|
||||
\fI.key\fR
|
||||
file contains a DNS KEY record that can be inserted into a zone file (directly or with a $INCLUDE statement).
|
||||
.PP
|
||||
The
|
||||
\fI.private\fR
|
||||
file contains algorithm specific fields. For obvious security reasons, this file does not have general read permission.
|
||||
.SH "SEE ALSO"
|
||||
.PP
|
||||
\fBdnssec\-keygen\fR(8),
|
||||
\fBdnssec\-signzone\fR(8),
|
||||
BIND 9 Administrator Reference Manual,
|
||||
RFC 4034.
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
Internet Systems Consortium
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2008, 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
@@ -0,0 +1,328 @@
|
||||
/*
|
||||
* Copyright (C) 2007, 2008, 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: dnssec-keyfromlabel.c,v 1.4.50.2 2010/01/15 23:47:31 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/entropy.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/region.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/keyvalues.h>
|
||||
#include <dns/log.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/rdataclass.h>
|
||||
#include <dns/result.h>
|
||||
#include <dns/secalg.h>
|
||||
|
||||
#include <dst/dst.h>
|
||||
|
||||
#include "dnssectool.h"
|
||||
|
||||
#define MAX_RSA 4096 /* should be long enough... */
|
||||
|
||||
const char *program = "dnssec-keyfromlabel";
|
||||
int verbose;
|
||||
|
||||
static const char *algs = "RSA | RSAMD5 | DH | DSA | RSASHA1 |"
|
||||
" NSEC3DSA | NSEC3RSASHA1 |"
|
||||
" RSASHA256 | RSASHA512";
|
||||
|
||||
static void
|
||||
usage(void) {
|
||||
fprintf(stderr, "Usage:\n");
|
||||
fprintf(stderr, " %s -a alg -l label [options] name\n\n",
|
||||
program);
|
||||
fprintf(stderr, "Version: %s\n", VERSION);
|
||||
fprintf(stderr, "Required options:\n");
|
||||
fprintf(stderr, " -a algorithm: %s\n", algs);
|
||||
fprintf(stderr, " -l label: label of the key\n");
|
||||
fprintf(stderr, " name: owner of the key\n");
|
||||
fprintf(stderr, "Other options:\n");
|
||||
fprintf(stderr, " -n nametype: ZONE | HOST | ENTITY | USER | OTHER\n");
|
||||
fprintf(stderr, " (DNSKEY generation defaults to ZONE\n");
|
||||
fprintf(stderr, " -c <class> (default: IN)\n");
|
||||
fprintf(stderr, " -f keyflag: KSK\n");
|
||||
fprintf(stderr, " -t <type>: "
|
||||
"AUTHCONF | NOAUTHCONF | NOAUTH | NOCONF "
|
||||
"(default: AUTHCONF)\n");
|
||||
fprintf(stderr, " -p <protocol>: "
|
||||
"default: 3 [dnssec]\n");
|
||||
fprintf(stderr, " -v <verbose level>\n");
|
||||
fprintf(stderr, " -k : generate a TYPE=KEY key\n");
|
||||
fprintf(stderr, "Output:\n");
|
||||
fprintf(stderr, " K<name>+<alg>+<id>.key, "
|
||||
"K<name>+<alg>+<id>.private\n");
|
||||
|
||||
exit (-1);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv) {
|
||||
char *algname = NULL, *nametype = NULL, *type = NULL;
|
||||
char *classname = NULL;
|
||||
char *endp;
|
||||
dst_key_t *key = NULL, *oldkey;
|
||||
dns_fixedname_t fname;
|
||||
dns_name_t *name;
|
||||
isc_uint16_t flags = 0, ksk = 0;
|
||||
dns_secalg_t alg;
|
||||
isc_boolean_t null_key = ISC_FALSE;
|
||||
isc_mem_t *mctx = NULL;
|
||||
int ch;
|
||||
int protocol = -1, signatory = 0;
|
||||
isc_result_t ret;
|
||||
isc_textregion_t r;
|
||||
char filename[255];
|
||||
isc_buffer_t buf;
|
||||
isc_log_t *log = NULL;
|
||||
isc_entropy_t *ectx = NULL;
|
||||
dns_rdataclass_t rdclass;
|
||||
int options = DST_TYPE_PRIVATE | DST_TYPE_PUBLIC;
|
||||
char *label = NULL;
|
||||
|
||||
if (argc == 1)
|
||||
usage();
|
||||
|
||||
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
|
||||
|
||||
dns_result_register();
|
||||
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
while ((ch = isc_commandline_parse(argc, argv,
|
||||
"a:c:f:kl:n:p:t:v:h")) != -1)
|
||||
{
|
||||
switch (ch) {
|
||||
case 'a':
|
||||
algname = isc_commandline_argument;
|
||||
break;
|
||||
case 'c':
|
||||
classname = isc_commandline_argument;
|
||||
break;
|
||||
case 'f':
|
||||
if (strcasecmp(isc_commandline_argument, "KSK") == 0)
|
||||
ksk = DNS_KEYFLAG_KSK;
|
||||
else
|
||||
fatal("unknown flag '%s'",
|
||||
isc_commandline_argument);
|
||||
break;
|
||||
case 'k':
|
||||
options |= DST_TYPE_KEY;
|
||||
break;
|
||||
case 'l':
|
||||
label = isc_commandline_argument;
|
||||
break;
|
||||
case 'n':
|
||||
nametype = isc_commandline_argument;
|
||||
break;
|
||||
case 'p':
|
||||
protocol = strtol(isc_commandline_argument, &endp, 10);
|
||||
if (*endp != '\0' || protocol < 0 || protocol > 255)
|
||||
fatal("-p must be followed by a number "
|
||||
"[0..255]");
|
||||
break;
|
||||
case 't':
|
||||
type = isc_commandline_argument;
|
||||
break;
|
||||
case 'v':
|
||||
verbose = strtol(isc_commandline_argument, &endp, 0);
|
||||
if (*endp != '\0')
|
||||
fatal("-v must be followed by a number");
|
||||
break;
|
||||
|
||||
case '?':
|
||||
if (isc_commandline_option != '?')
|
||||
fprintf(stderr, "%s: invalid argument -%c\n",
|
||||
program, isc_commandline_option);
|
||||
case 'h':
|
||||
usage();
|
||||
|
||||
default:
|
||||
fprintf(stderr, "%s: unhandled option -%c\n",
|
||||
program, isc_commandline_option);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
if (ectx == NULL)
|
||||
setup_entropy(mctx, NULL, &ectx);
|
||||
ret = dst_lib_init(mctx, ectx,
|
||||
ISC_ENTROPY_BLOCKING | ISC_ENTROPY_GOODONLY);
|
||||
if (ret != ISC_R_SUCCESS)
|
||||
fatal("could not initialize dst");
|
||||
|
||||
setup_logging(verbose, mctx, &log);
|
||||
|
||||
if (label == NULL)
|
||||
fatal("the key label was not specified");
|
||||
if (argc < isc_commandline_index + 1)
|
||||
fatal("the key name was not specified");
|
||||
if (argc > isc_commandline_index + 1)
|
||||
fatal("extraneous arguments");
|
||||
|
||||
if (algname == NULL)
|
||||
fatal("no algorithm was specified");
|
||||
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 {
|
||||
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 (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);
|
||||
}
|
||||
else if (strcasecmp(type, "AUTHCONF") == 0)
|
||||
/* nothing */;
|
||||
else
|
||||
fatal("invalid type %s", type);
|
||||
}
|
||||
|
||||
if (nametype == NULL) {
|
||||
if ((options & DST_TYPE_KEY) != 0) /* KEY */
|
||||
fatal("no nametype specified");
|
||||
flags |= DNS_KEYOWNER_ZONE; /* DNSKEY */
|
||||
} else if (strcasecmp(nametype, "zone") == 0)
|
||||
flags |= DNS_KEYOWNER_ZONE;
|
||||
else if ((options & DST_TYPE_KEY) != 0) { /* KEY */
|
||||
if (strcasecmp(nametype, "host") == 0 ||
|
||||
strcasecmp(nametype, "entity") == 0)
|
||||
flags |= DNS_KEYOWNER_ENTITY;
|
||||
else if (strcasecmp(nametype, "user") == 0)
|
||||
flags |= DNS_KEYOWNER_USER;
|
||||
else
|
||||
fatal("invalid KEY nametype %s", nametype);
|
||||
} else if (strcasecmp(nametype, "other") != 0) /* DNSKEY */
|
||||
fatal("invalid DNSKEY nametype %s", nametype);
|
||||
|
||||
rdclass = strtoclass(classname);
|
||||
|
||||
if ((options & DST_TYPE_KEY) != 0) /* KEY */
|
||||
flags |= signatory;
|
||||
else if ((flags & DNS_KEYOWNER_ZONE) != 0) /* DNSKEY */
|
||||
flags |= ksk;
|
||||
|
||||
if (protocol == -1)
|
||||
protocol = DNS_KEYPROTO_DNSSEC;
|
||||
else if ((options & DST_TYPE_KEY) == 0 &&
|
||||
protocol != DNS_KEYPROTO_DNSSEC)
|
||||
fatal("invalid DNSKEY protocol: %d", protocol);
|
||||
|
||||
if ((flags & DNS_KEYFLAG_TYPEMASK) == DNS_KEYTYPE_NOKEY) {
|
||||
if ((flags & DNS_KEYFLAG_SIGNATORYMASK) != 0)
|
||||
fatal("specified null key with signing authority");
|
||||
}
|
||||
|
||||
if ((flags & DNS_KEYFLAG_OWNERMASK) == DNS_KEYOWNER_ZONE &&
|
||||
alg == DNS_KEYALG_DH)
|
||||
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, ISC_FALSE, NULL);
|
||||
if (ret != ISC_R_SUCCESS)
|
||||
fatal("invalid key name %s: %s", argv[isc_commandline_index],
|
||||
isc_result_totext(ret));
|
||||
|
||||
if ((flags & DNS_KEYFLAG_TYPEMASK) == DNS_KEYTYPE_NOKEY)
|
||||
null_key = ISC_TRUE;
|
||||
|
||||
isc_buffer_init(&buf, filename, sizeof(filename) - 1);
|
||||
|
||||
/* associate the key */
|
||||
ret = dst_key_fromlabel(name, alg, flags, protocol,
|
||||
rdclass, "", label, NULL, mctx, &key);
|
||||
isc_entropy_stopcallbacksources(ectx);
|
||||
|
||||
if (ret != ISC_R_SUCCESS) {
|
||||
char namestr[DNS_NAME_FORMATSIZE];
|
||||
char algstr[ALG_FORMATSIZE];
|
||||
dns_name_format(name, namestr, sizeof(namestr));
|
||||
alg_format(alg, algstr, sizeof(algstr));
|
||||
fatal("failed to generate key %s/%s: %s\n",
|
||||
namestr, algstr, isc_result_totext(ret));
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Try to read a key with the same name, alg and id from disk.
|
||||
* If there is one we must continue generating a new one
|
||||
* unless we were asked to generate a null key, in which
|
||||
* case we return failure.
|
||||
*/
|
||||
ret = dst_key_fromfile(name, dst_key_id(key), alg,
|
||||
DST_TYPE_PRIVATE, NULL, mctx, &oldkey);
|
||||
/* do not overwrite an existing key */
|
||||
if (ret == ISC_R_SUCCESS) {
|
||||
isc_buffer_clear(&buf);
|
||||
ret = dst_key_buildfilename(key, 0, NULL, &buf);
|
||||
fprintf(stderr, "%s: %s already exists\n",
|
||||
program, filename);
|
||||
dst_key_free(&key);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
ret = dst_key_tofile(key, options, NULL);
|
||||
if (ret != ISC_R_SUCCESS) {
|
||||
char keystr[KEY_FORMATSIZE];
|
||||
key_format(key, keystr, sizeof(keystr));
|
||||
fatal("failed to write key %s: %s\n", keystr,
|
||||
isc_result_totext(ret));
|
||||
}
|
||||
|
||||
isc_buffer_clear(&buf);
|
||||
ret = dst_key_buildfilename(key, 0, NULL, &buf);
|
||||
printf("%s\n", filename);
|
||||
dst_key_free(&key);
|
||||
|
||||
cleanup_logging(&log);
|
||||
cleanup_entropy(&ectx);
|
||||
dst_lib_destroy();
|
||||
dns_name_destroy();
|
||||
if (verbose > 10)
|
||||
isc_mem_stats(mctx, stdout);
|
||||
isc_mem_destroy(&mctx);
|
||||
|
||||
return (0);
|
||||
}
|
||||
@@ -0,0 +1,272 @@
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2008, 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: dnssec-keyfromlabel.docbook,v 1.6.14.2 2010/01/15 23:47:31 tbox Exp $ -->
|
||||
<refentry id="man.dnssec-keyfromlabel">
|
||||
<refentryinfo>
|
||||
<date>February 8, 2008</date>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle><application>dnssec-keyfromlabel</application></refentrytitle>
|
||||
<manvolnum>8</manvolnum>
|
||||
<refmiscinfo>BIND9</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname><application>dnssec-keyfromlabel</application></refname>
|
||||
<refpurpose>DNSSEC key generation tool</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<docinfo>
|
||||
<copyright>
|
||||
<year>2008</year>
|
||||
<year>2010</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
</docinfo>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>dnssec-keyfromlabel</command>
|
||||
<arg choice="req">-a <replaceable class="parameter">algorithm</replaceable></arg>
|
||||
<arg choice="req">-l <replaceable class="parameter">label</replaceable></arg>
|
||||
<arg><option>-c <replaceable class="parameter">class</replaceable></option></arg>
|
||||
<arg><option>-f <replaceable class="parameter">flag</replaceable></option></arg>
|
||||
<arg><option>-k</option></arg>
|
||||
<arg><option>-n <replaceable class="parameter">nametype</replaceable></option></arg>
|
||||
<arg><option>-p <replaceable class="parameter">protocol</replaceable></option></arg>
|
||||
<arg><option>-t <replaceable class="parameter">type</replaceable></option></arg>
|
||||
<arg><option>-v <replaceable class="parameter">level</replaceable></option></arg>
|
||||
<arg choice="req">name</arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>DESCRIPTION</title>
|
||||
<para><command>dnssec-keyfromlabel</command>
|
||||
gets keys with the given label from a crypto hardware and builds
|
||||
key files for DNSSEC (Secure DNS), as defined in RFC 2535
|
||||
and RFC 4034.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>OPTIONS</title>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>-a <replaceable class="parameter">algorithm</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Selects the cryptographic algorithm. The value of
|
||||
<option>algorithm</option> must be one of RSAMD5,
|
||||
RSASHA1, DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256,
|
||||
RSASHA512 or DH (Diffie Hellman).
|
||||
These values are case insensitive.
|
||||
</para>
|
||||
<para>
|
||||
If no algorithm is specified, then RSASHA1 will be used by
|
||||
default, unless the <option>-3</option> option is specified,
|
||||
in which case NSEC3RSASHA1 will be used instead. (If
|
||||
<option>-3</option> is used and an algorithm is specified,
|
||||
that algorithm will be checked for compatibility with NSEC3.)
|
||||
</para>
|
||||
<para>
|
||||
Note 1: that for DNSSEC, RSASHA1 is a mandatory to implement
|
||||
algorithm, and DSA is recommended.
|
||||
</para>
|
||||
<para>
|
||||
Note 2: DH automatically sets the -k flag.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-l <replaceable class="parameter">label</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies the label of keys in the crypto hardware
|
||||
(PKCS#11 device).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-n <replaceable class="parameter">nametype</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies the owner type of the key. The value of
|
||||
<option>nametype</option> must either be ZONE (for a DNSSEC
|
||||
zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated with
|
||||
a host (KEY)),
|
||||
USER (for a key associated with a user(KEY)) or OTHER (DNSKEY).
|
||||
These values are
|
||||
case insensitive.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-c <replaceable class="parameter">class</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Indicates that the DNS record containing the key should have
|
||||
the specified class. If not specified, class IN is used.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-f <replaceable class="parameter">flag</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Set the specified flag in the flag field of the KEY/DNSKEY record.
|
||||
The only recognized flag is KSK (Key Signing Key) DNSKEY.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-h</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Prints a short summary of the options and arguments to
|
||||
<command>dnssec-keygen</command>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-k</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Generate KEY records rather than DNSKEY records.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-p <replaceable class="parameter">protocol</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Sets the protocol value for the generated key. The protocol
|
||||
is a number between 0 and 255. The default is 3 (DNSSEC).
|
||||
Other possible values for this argument are listed in
|
||||
RFC 2535 and its successors.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-t <replaceable class="parameter">type</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Indicates the use of the key. <option>type</option> must be
|
||||
one of AUTHCONF, NOAUTHCONF, NOAUTH, or NOCONF. The default
|
||||
is AUTHCONF. AUTH refers to the ability to authenticate
|
||||
data, and CONF the ability to encrypt data.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-v <replaceable class="parameter">level</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Sets the debugging level.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>GENERATED KEY FILES</title>
|
||||
<para>
|
||||
When <command>dnssec-keyfromlabel</command> completes
|
||||
successfully,
|
||||
it prints a string of the form <filename>Knnnn.+aaa+iiiii</filename>
|
||||
to the standard output. This is an identification string for
|
||||
the key files it has generated.
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><filename>nnnn</filename> is the key name.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><filename>aaa</filename> is the numeric representation
|
||||
of the
|
||||
algorithm.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><filename>iiiii</filename> is the key identifier (or
|
||||
footprint).
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para><command>dnssec-keyfromlabel</command>
|
||||
creates two files, with names based
|
||||
on the printed string. <filename>Knnnn.+aaa+iiiii.key</filename>
|
||||
contains the public key, and
|
||||
<filename>Knnnn.+aaa+iiiii.private</filename> contains the
|
||||
private
|
||||
key.
|
||||
</para>
|
||||
<para>
|
||||
The <filename>.key</filename> file contains a DNS KEY record
|
||||
that
|
||||
can be inserted into a zone file (directly or with a $INCLUDE
|
||||
statement).
|
||||
</para>
|
||||
<para>
|
||||
The <filename>.private</filename> file contains algorithm
|
||||
specific
|
||||
fields. For obvious security reasons, this file does not have
|
||||
general read permission.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>SEE ALSO</title>
|
||||
<para><citerefentry>
|
||||
<refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum>
|
||||
</citerefentry>,
|
||||
<citerefentry>
|
||||
<refentrytitle>dnssec-signzone</refentrytitle><manvolnum>8</manvolnum>
|
||||
</citerefentry>,
|
||||
<citetitle>BIND 9 Administrator Reference Manual</citetitle>,
|
||||
<citetitle>RFC 4034</citetitle>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>AUTHOR</title>
|
||||
<para><corpauthor>Internet Systems Consortium</corpauthor>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
</refentry><!--
|
||||
- Local variables:
|
||||
- mode: sgml
|
||||
- End:
|
||||
-->
|
||||
@@ -0,0 +1,177 @@
|
||||
<!--
|
||||
- Copyright (C) 2008, 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: dnssec-keyfromlabel.html,v 1.5.44.3.4.1 2010/03/03 22:19:19 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>dnssec-keyfromlabel</title>
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
|
||||
<a name="man.dnssec-keyfromlabel"></a><div class="titlepage"></div>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p><span class="application">dnssec-keyfromlabel</span> — DNSSEC key generation tool</p>
|
||||
</div>
|
||||
<div class="refsynopsisdiv">
|
||||
<h2>Synopsis</h2>
|
||||
<div class="cmdsynopsis"><p><code class="command">dnssec-keyfromlabel</code> {-a <em class="replaceable"><code>algorithm</code></em>} {-l <em class="replaceable"><code>label</code></em>} [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-f <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-k</code>] [<code class="option">-n <em class="replaceable"><code>nametype</code></em></code>] [<code class="option">-p <em class="replaceable"><code>protocol</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>] {name}</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543414"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">dnssec-keyfromlabel</strong></span>
|
||||
gets keys with the given label from a crypto hardware and builds
|
||||
key files for DNSSEC (Secure DNS), as defined in RFC 2535
|
||||
and RFC 4034.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543426"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
|
||||
<dd>
|
||||
<p>
|
||||
Selects the cryptographic algorithm. The value of
|
||||
<code class="option">algorithm</code> must be one of RSAMD5,
|
||||
RSASHA1, DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256,
|
||||
RSASHA512 or DH (Diffie Hellman).
|
||||
These values are case insensitive.
|
||||
</p>
|
||||
<p>
|
||||
If no algorithm is specified, then RSASHA1 will be used by
|
||||
default, unless the <code class="option">-3</code> option is specified,
|
||||
in which case NSEC3RSASHA1 will be used instead. (If
|
||||
<code class="option">-3</code> is used and an algorithm is specified,
|
||||
that algorithm will be checked for compatibility with NSEC3.)
|
||||
</p>
|
||||
<p>
|
||||
Note 1: that for DNSSEC, RSASHA1 is a mandatory to implement
|
||||
algorithm, and DSA is recommended.
|
||||
</p>
|
||||
<p>
|
||||
Note 2: DH automatically sets the -k flag.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><span class="term">-l <em class="replaceable"><code>label</code></em></span></dt>
|
||||
<dd><p>
|
||||
Specifies the label of keys in the crypto hardware
|
||||
(PKCS#11 device).
|
||||
</p></dd>
|
||||
<dt><span class="term">-n <em class="replaceable"><code>nametype</code></em></span></dt>
|
||||
<dd><p>
|
||||
Specifies the owner type of the key. The value of
|
||||
<code class="option">nametype</code> must either be ZONE (for a DNSSEC
|
||||
zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated with
|
||||
a host (KEY)),
|
||||
USER (for a key associated with a user(KEY)) or OTHER (DNSKEY).
|
||||
These values are
|
||||
case insensitive.
|
||||
</p></dd>
|
||||
<dt><span class="term">-c <em class="replaceable"><code>class</code></em></span></dt>
|
||||
<dd><p>
|
||||
Indicates that the DNS record containing the key should have
|
||||
the specified class. If not specified, class IN is used.
|
||||
</p></dd>
|
||||
<dt><span class="term">-f <em class="replaceable"><code>flag</code></em></span></dt>
|
||||
<dd><p>
|
||||
Set the specified flag in the flag field of the KEY/DNSKEY record.
|
||||
The only recognized flag is KSK (Key Signing Key) DNSKEY.
|
||||
</p></dd>
|
||||
<dt><span class="term">-h</span></dt>
|
||||
<dd><p>
|
||||
Prints a short summary of the options and arguments to
|
||||
<span><strong class="command">dnssec-keygen</strong></span>.
|
||||
</p></dd>
|
||||
<dt><span class="term">-k</span></dt>
|
||||
<dd><p>
|
||||
Generate KEY records rather than DNSKEY records.
|
||||
</p></dd>
|
||||
<dt><span class="term">-p <em class="replaceable"><code>protocol</code></em></span></dt>
|
||||
<dd><p>
|
||||
Sets the protocol value for the generated key. The protocol
|
||||
is a number between 0 and 255. The default is 3 (DNSSEC).
|
||||
Other possible values for this argument are listed in
|
||||
RFC 2535 and its successors.
|
||||
</p></dd>
|
||||
<dt><span class="term">-t <em class="replaceable"><code>type</code></em></span></dt>
|
||||
<dd><p>
|
||||
Indicates the use of the key. <code class="option">type</code> must be
|
||||
one of AUTHCONF, NOAUTHCONF, NOAUTH, or NOCONF. The default
|
||||
is AUTHCONF. AUTH refers to the ability to authenticate
|
||||
data, and CONF the ability to encrypt data.
|
||||
</p></dd>
|
||||
<dt><span class="term">-v <em class="replaceable"><code>level</code></em></span></dt>
|
||||
<dd><p>
|
||||
Sets the debugging level.
|
||||
</p></dd>
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543629"></a><h2>GENERATED KEY FILES</h2>
|
||||
<p>
|
||||
When <span><strong class="command">dnssec-keyfromlabel</strong></span> completes
|
||||
successfully,
|
||||
it prints a string of the form <code class="filename">Knnnn.+aaa+iiiii</code>
|
||||
to the standard output. This is an identification string for
|
||||
the key files it has generated.
|
||||
</p>
|
||||
<div class="itemizedlist"><ul type="disc">
|
||||
<li><p><code class="filename">nnnn</code> is the key name.
|
||||
</p></li>
|
||||
<li><p><code class="filename">aaa</code> is the numeric representation
|
||||
of the
|
||||
algorithm.
|
||||
</p></li>
|
||||
<li><p><code class="filename">iiiii</code> is the key identifier (or
|
||||
footprint).
|
||||
</p></li>
|
||||
</ul></div>
|
||||
<p><span><strong class="command">dnssec-keyfromlabel</strong></span>
|
||||
creates two files, with names based
|
||||
on the printed string. <code class="filename">Knnnn.+aaa+iiiii.key</code>
|
||||
contains the public key, and
|
||||
<code class="filename">Knnnn.+aaa+iiiii.private</code> contains the
|
||||
private
|
||||
key.
|
||||
</p>
|
||||
<p>
|
||||
The <code class="filename">.key</code> file contains a DNS KEY record
|
||||
that
|
||||
can be inserted into a zone file (directly or with a $INCLUDE
|
||||
statement).
|
||||
</p>
|
||||
<p>
|
||||
The <code class="filename">.private</code> file contains algorithm
|
||||
specific
|
||||
fields. For obvious security reasons, this file does not have
|
||||
general read permission.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543702"></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>,
|
||||
<em class="citetitle">RFC 4034</em>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543735"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
</div></body>
|
||||
</html>
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2004, 2005, 2007, 2008 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.23.18.17 2009/07/11 01:31:44 tbox Exp $
|
||||
.\" $Id: dnssec-keygen.8,v 1.40.44.4 2010/01/16 01:55:32 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -38,13 +38,17 @@ dnssec\-keygen \- DNSSEC key generation tool
|
||||
.PP
|
||||
\fBdnssec\-keygen\fR
|
||||
generates keys for DNSSEC (Secure DNS), as defined in RFC 2535 and RFC 4034. It can also generate keys for use with TSIG (Transaction Signatures), as defined in RFC 2845.
|
||||
.PP
|
||||
The
|
||||
\fBname\fR
|
||||
of the key is specified on the command line. For DNSSEC keys, this must match the name of the zone for which the key is being generated.
|
||||
.SH "OPTIONS"
|
||||
.PP
|
||||
\-a \fIalgorithm\fR
|
||||
.RS 4
|
||||
Selects the cryptographic algorithm. The value of
|
||||
Selects the cryptographic algorithm. For DNSSEC keys, the value of
|
||||
\fBalgorithm\fR
|
||||
must be one of RSAMD5 (RSA) or RSASHA1, DSA, DH (Diffie Hellman), or HMAC\-MD5. These values are case insensitive.
|
||||
must be one of RSAMD5, RSASHA1, DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256 or RSASHA512. For TSIG/TKEY, the value must be DH (Diffie Hellman), HMAC\-MD5, HMAC\-SHA1, HMAC\-SHA224, HMAC\-SHA256, HMAC\-SHA384, or HMAC\-SHA512. These values are case insensitive.
|
||||
.sp
|
||||
Note 1: that for DNSSEC, RSASHA1 is a mandatory to implement algorithm, and DSA is recommended. For TSIG, HMAC\-MD5 is mandatory.
|
||||
.sp
|
||||
@@ -53,14 +57,14 @@ Note 2: HMAC\-MD5 and DH automatically set the \-k flag.
|
||||
.PP
|
||||
\-b \fIkeysize\fR
|
||||
.RS 4
|
||||
Specifies the number of bits in the key. The choice of key size depends on the algorithm used. RSAMD5 / RSASHA1 keys must be between 512 and 2048 bits. Diffie Hellman keys must be between 128 and 4096 bits. DSA keys must be between 512 and 1024 bits and an exact multiple of 64. HMAC\-MD5 keys must be between 1 and 512 bits.
|
||||
Specifies the number of bits in the key. The choice of key size depends on the algorithm used. RSA keys must be between 512 and 2048 bits. Diffie Hellman keys must be between 128 and 4096 bits. DSA keys must be between 512 and 1024 bits and an exact multiple of 64. HMAC keys must be between 1 and 512 bits.
|
||||
.RE
|
||||
.PP
|
||||
\-n \fInametype\fR
|
||||
.RS 4
|
||||
Specifies the owner type of the key. The value of
|
||||
\fBnametype\fR
|
||||
must either be ZONE (for a DNSSEC zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated with a host (KEY)), USER (for a key associated with a user(KEY)) or OTHER (DNSKEY). These values are case insensitive.
|
||||
must either be ZONE (for a DNSSEC zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated with a host (KEY)), USER (for a key associated with a user(KEY)) or OTHER (DNSKEY). These values are case insensitive. Defaults to ZONE for DNSKEY generation.
|
||||
.RE
|
||||
.PP
|
||||
\-c \fIclass\fR
|
||||
@@ -189,12 +193,12 @@ and
|
||||
BIND 9 Administrator Reference Manual,
|
||||
RFC 2539,
|
||||
RFC 2845,
|
||||
RFC 4033.
|
||||
RFC 4034.
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
Internet Systems Consortium
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004, 2005, 2007, 2008 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
|
||||
|
||||
+56
-16
@@ -1,6 +1,19 @@
|
||||
/*
|
||||
* Portions Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Portions Copyright (C) 2004-2008, 2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Portions Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* 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 AND NETWORK ASSOCIATES 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.
|
||||
*
|
||||
* Portions Copyright (C) 1995-2000 by Network Associates, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -16,7 +29,7 @@
|
||||
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssec-keygen.c,v 1.66.18.10 2007/08/28 07:19:55 tbox Exp $ */
|
||||
/* $Id: dnssec-keygen.c,v 1.81.48.2 2010/01/15 23:47:31 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -49,8 +62,9 @@
|
||||
const char *program = "dnssec-keygen";
|
||||
int verbose;
|
||||
|
||||
static const char *algs = "RSA | RSAMD5 | DH | DSA | RSASHA1 | HMAC-MD5 |"
|
||||
" HMAC-SHA1 | HMAC-SHA224 | HMAC-SHA256 | "
|
||||
static const char *algs = "RSA | RSAMD5 | DH | DSA | RSASHA1 | RSASHA256 |"
|
||||
" RSASHA512 | NSEC3DSA | NSEC3RSASHA1 | HMAC-MD5 |"
|
||||
" HMAC-SHA1 | HMAC-SHA224 | HMAC-SHA256 |"
|
||||
" HMAC-SHA384 | HMAC-SHA512";
|
||||
|
||||
static isc_boolean_t
|
||||
@@ -61,7 +75,7 @@ dsa_size_ok(int size) {
|
||||
static void
|
||||
usage(void) {
|
||||
fprintf(stderr, "Usage:\n");
|
||||
fprintf(stderr, " %s -a alg -b bits -n type [options] name\n\n",
|
||||
fprintf(stderr, " %s -a alg -b bits [-n type] [options] name\n\n",
|
||||
program);
|
||||
fprintf(stderr, "Version: %s\n", VERSION);
|
||||
fprintf(stderr, "Required options:\n");
|
||||
@@ -69,8 +83,12 @@ usage(void) {
|
||||
fprintf(stderr, " -b key size, in bits:\n");
|
||||
fprintf(stderr, " RSAMD5:\t\t[512..%d]\n", MAX_RSA);
|
||||
fprintf(stderr, " RSASHA1:\t\t[512..%d]\n", MAX_RSA);
|
||||
fprintf(stderr, " NSEC3RSASHA1:\t\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\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");
|
||||
@@ -78,6 +96,7 @@ usage(void) {
|
||||
fprintf(stderr, " HMAC-SHA384:\t[1..384]\n");
|
||||
fprintf(stderr, " HMAC-SHA512:\t[1..512]\n");
|
||||
fprintf(stderr, " -n nametype: ZONE | HOST | ENTITY | USER | OTHER\n");
|
||||
fprintf(stderr, " (DNSKEY generation defaults to ZONE\n");
|
||||
fprintf(stderr, " name: owner of the key\n");
|
||||
fprintf(stderr, "Other options:\n");
|
||||
fprintf(stderr, " -c <class> (default: IN)\n");
|
||||
@@ -134,8 +153,10 @@ main(int argc, char **argv) {
|
||||
|
||||
dns_result_register();
|
||||
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
while ((ch = isc_commandline_parse(argc, argv,
|
||||
"a:b:c:d:ef:g:kn:t:p:s:r:v:h")) != -1)
|
||||
"a:b:c:d:ef:g:kn:t:p:s:r:v:h")) != -1)
|
||||
{
|
||||
switch (ch) {
|
||||
case 'a':
|
||||
@@ -202,12 +223,17 @@ main(int argc, char **argv) {
|
||||
fatal("-v must be followed by a number");
|
||||
break;
|
||||
|
||||
case '?':
|
||||
if (isc_commandline_option != '?')
|
||||
fprintf(stderr, "%s: invalid argument -%c\n",
|
||||
program, isc_commandline_option);
|
||||
case 'h':
|
||||
usage();
|
||||
|
||||
default:
|
||||
fprintf(stderr, "%s: invalid argument -%c\n",
|
||||
program, ch);
|
||||
usage();
|
||||
fprintf(stderr, "%s: unhandled option -%c\n",
|
||||
program, isc_commandline_option);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -282,14 +308,21 @@ main(int argc, char **argv) {
|
||||
switch (alg) {
|
||||
case DNS_KEYALG_RSAMD5:
|
||||
case DNS_KEYALG_RSASHA1:
|
||||
case DNS_KEYALG_NSEC3RSASHA1:
|
||||
case DNS_KEYALG_RSASHA256:
|
||||
if (size != 0 && (size < 512 || size > MAX_RSA))
|
||||
fatal("RSA key size %d out of range", size);
|
||||
break;
|
||||
case DNS_KEYALG_RSASHA512:
|
||||
if (size != 0 && (size < 1024 || size > MAX_RSA))
|
||||
fatal("RSA key size %d out of range", size);
|
||||
break;
|
||||
case DNS_KEYALG_DH:
|
||||
if (size != 0 && (size < 128 || size > 4096))
|
||||
fatal("DH key size %d out of range", size);
|
||||
break;
|
||||
case DNS_KEYALG_DSA:
|
||||
case DNS_KEYALG_NSEC3DSA:
|
||||
if (size != 0 && !dsa_size_ok(size))
|
||||
fatal("invalid DSS key size: %d", size);
|
||||
break;
|
||||
@@ -349,18 +382,21 @@ main(int argc, char **argv) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (!(alg == DNS_KEYALG_RSAMD5 || alg == DNS_KEYALG_RSASHA1) &&
|
||||
rsa_exp != 0)
|
||||
if (!(alg == DNS_KEYALG_RSAMD5 || alg == DNS_KEYALG_RSASHA1 ||
|
||||
alg == DNS_KEYALG_NSEC3RSASHA1 || alg == DNS_KEYALG_RSASHA256 ||
|
||||
alg == DNS_KEYALG_RSASHA512) && rsa_exp != 0)
|
||||
fatal("specified RSA exponent for a non-RSA key");
|
||||
|
||||
if (alg != DNS_KEYALG_DH && generator != 0)
|
||||
fatal("specified DH generator for a non-DH key");
|
||||
|
||||
if (nametype == NULL)
|
||||
fatal("no nametype specified");
|
||||
if (strcasecmp(nametype, "zone") == 0)
|
||||
if (nametype == NULL) {
|
||||
if ((options & DST_TYPE_KEY) != 0) /* KEY / HMAC */
|
||||
fatal("no nametype specified");
|
||||
flags |= DNS_KEYOWNER_ZONE; /* DNSKEY */
|
||||
} else if (strcasecmp(nametype, "zone") == 0)
|
||||
flags |= DNS_KEYOWNER_ZONE;
|
||||
else if ((options & DST_TYPE_KEY) != 0) { /* KEY */
|
||||
else if ((options & DST_TYPE_KEY) != 0) { /* KEY / HMAC */
|
||||
if (strcasecmp(nametype, "host") == 0 ||
|
||||
strcasecmp(nametype, "entity") == 0)
|
||||
flags |= DNS_KEYOWNER_ENTITY;
|
||||
@@ -373,7 +409,7 @@ main(int argc, char **argv) {
|
||||
|
||||
rdclass = strtoclass(classname);
|
||||
|
||||
if ((options & DST_TYPE_KEY) != 0) /* KEY */
|
||||
if ((options & DST_TYPE_KEY) != 0) /* KEY / HMAC */
|
||||
flags |= signatory;
|
||||
else if ((flags & DNS_KEYOWNER_ZONE) != 0) /* DNSKEY */
|
||||
flags |= ksk;
|
||||
@@ -412,12 +448,16 @@ main(int argc, char **argv) {
|
||||
switch(alg) {
|
||||
case DNS_KEYALG_RSAMD5:
|
||||
case DNS_KEYALG_RSASHA1:
|
||||
case DNS_KEYALG_NSEC3RSASHA1:
|
||||
case DNS_KEYALG_RSASHA256:
|
||||
case DNS_KEYALG_RSASHA512:
|
||||
param = rsa_exp;
|
||||
break;
|
||||
case DNS_KEYALG_DH:
|
||||
param = generator;
|
||||
break;
|
||||
case DNS_KEYALG_DSA:
|
||||
case DNS_KEYALG_NSEC3DSA:
|
||||
case DST_ALG_HMACMD5:
|
||||
case DST_ALG_HMACSHA1:
|
||||
case DST_ALG_HMACSHA224:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2004, 2005, 2007, 2008 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.7.18.13 2008/10/15 23:46:06 tbox Exp $ -->
|
||||
<!-- $Id: dnssec-keygen.docbook,v 1.22.44.4 2010/01/15 23:47:33 tbox Exp $ -->
|
||||
<refentry id="man.dnssec-keygen">
|
||||
<refentryinfo>
|
||||
<date>June 30, 2000</date>
|
||||
@@ -41,6 +41,8 @@
|
||||
<year>2005</year>
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<year>2009</year>
|
||||
<year>2010</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -80,6 +82,11 @@
|
||||
and RFC 4034. It can also generate keys for use with
|
||||
TSIG (Transaction Signatures), as defined in RFC 2845.
|
||||
</para>
|
||||
<para>
|
||||
The <option>name</option> of the key is specified on the command
|
||||
line. For DNSSEC keys, this must match the name of the zone for
|
||||
which the key is being generated.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
@@ -90,15 +97,18 @@
|
||||
<term>-a <replaceable class="parameter">algorithm</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Selects the cryptographic algorithm. The value of
|
||||
<option>algorithm</option> must be one of RSAMD5 (RSA) or RSASHA1,
|
||||
DSA, DH (Diffie Hellman), or HMAC-MD5. These values
|
||||
are case insensitive.
|
||||
Selects the cryptographic algorithm. For DNSSEC keys, the value
|
||||
of <option>algorithm</option> must be one of RSAMD5, RSASHA1,
|
||||
DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256 or RSASHA512.
|
||||
For TSIG/TKEY, the value must
|
||||
be DH (Diffie Hellman), HMAC-MD5, HMAC-SHA1, HMAC-SHA224,
|
||||
HMAC-SHA256, HMAC-SHA384, or HMAC-SHA512. These values are
|
||||
case insensitive.
|
||||
</para>
|
||||
<para>
|
||||
Note 1: that for DNSSEC, RSASHA1 is a mandatory to implement
|
||||
algorithm,
|
||||
and DSA is recommended. For TSIG, HMAC-MD5 is mandatory.
|
||||
algorithm, and DSA is recommended. For TSIG, HMAC-MD5 is
|
||||
mandatory.
|
||||
</para>
|
||||
<para>
|
||||
Note 2: HMAC-MD5 and DH automatically set the -k flag.
|
||||
@@ -111,11 +121,10 @@
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies the number of bits in the key. The choice of key
|
||||
size depends on the algorithm used. RSAMD5 / RSASHA1 keys must be
|
||||
between
|
||||
512 and 2048 bits. Diffie Hellman keys must be between
|
||||
size depends on the algorithm used. RSA keys must be
|
||||
between 512 and 2048 bits. Diffie Hellman keys must be between
|
||||
128 and 4096 bits. DSA keys must be between 512 and 1024
|
||||
bits and an exact multiple of 64. HMAC-MD5 keys must be
|
||||
bits and an exact multiple of 64. HMAC keys must be
|
||||
between 1 and 512 bits.
|
||||
</para>
|
||||
</listitem>
|
||||
@@ -130,8 +139,8 @@
|
||||
zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated with
|
||||
a host (KEY)),
|
||||
USER (for a key associated with a user(KEY)) or OTHER (DNSKEY).
|
||||
These values are
|
||||
case insensitive.
|
||||
These values are case insensitive. Defaults to ZONE for DNSKEY
|
||||
generation.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -343,7 +352,7 @@
|
||||
<citetitle>BIND 9 Administrator Reference Manual</citetitle>,
|
||||
<citetitle>RFC 2539</citetitle>,
|
||||
<citetitle>RFC 2845</citetitle>,
|
||||
<citetitle>RFC 4033</citetitle>.
|
||||
<citetitle>RFC 4034</citetitle>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004, 2005, 2007, 2008 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.9.18.23 2009/07/11 01:31:44 tbox Exp $ -->
|
||||
<!-- $Id: dnssec-keygen.html,v 1.32.44.4.4.1 2010/03/03 22:19:19 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -32,28 +32,36 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">dnssec-keygen</code> {-a <em class="replaceable"><code>algorithm</code></em>} {-b <em class="replaceable"><code>keysize</code></em>} {-n <em class="replaceable"><code>nametype</code></em>} [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-e</code>] [<code class="option">-f <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-g <em class="replaceable"><code>generator</code></em></code>] [<code class="option">-h</code>] [<code class="option">-k</code>] [<code class="option">-p <em class="replaceable"><code>protocol</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>] {name}</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543477"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543481"></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
|
||||
TSIG (Transaction Signatures), as defined in RFC 2845.
|
||||
</p>
|
||||
<p>
|
||||
The <code class="option">name</code> of the key is specified on the command
|
||||
line. For DNSSEC keys, this must match the name of the zone for
|
||||
which the key is being generated.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543489"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543499"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
|
||||
<dd>
|
||||
<p>
|
||||
Selects the cryptographic algorithm. The value of
|
||||
<code class="option">algorithm</code> must be one of RSAMD5 (RSA) or RSASHA1,
|
||||
DSA, DH (Diffie Hellman), or HMAC-MD5. These values
|
||||
are case insensitive.
|
||||
Selects the cryptographic algorithm. For DNSSEC keys, the value
|
||||
of <code class="option">algorithm</code> must be one of RSAMD5, RSASHA1,
|
||||
DSA, NSEC3RSASHA1, NSEC3DSA, RSASHA256 or RSASHA512.
|
||||
For TSIG/TKEY, the value must
|
||||
be DH (Diffie Hellman), HMAC-MD5, HMAC-SHA1, HMAC-SHA224,
|
||||
HMAC-SHA256, HMAC-SHA384, or HMAC-SHA512. These values are
|
||||
case insensitive.
|
||||
</p>
|
||||
<p>
|
||||
Note 1: that for DNSSEC, RSASHA1 is a mandatory to implement
|
||||
algorithm,
|
||||
and DSA is recommended. For TSIG, HMAC-MD5 is mandatory.
|
||||
algorithm, and DSA is recommended. For TSIG, HMAC-MD5 is
|
||||
mandatory.
|
||||
</p>
|
||||
<p>
|
||||
Note 2: HMAC-MD5 and DH automatically set the -k flag.
|
||||
@@ -62,11 +70,10 @@
|
||||
<dt><span class="term">-b <em class="replaceable"><code>keysize</code></em></span></dt>
|
||||
<dd><p>
|
||||
Specifies the number of bits in the key. The choice of key
|
||||
size depends on the algorithm used. RSAMD5 / RSASHA1 keys must be
|
||||
between
|
||||
512 and 2048 bits. Diffie Hellman keys must be between
|
||||
size depends on the algorithm used. RSA keys must be
|
||||
between 512 and 2048 bits. Diffie Hellman keys must be between
|
||||
128 and 4096 bits. DSA keys must be between 512 and 1024
|
||||
bits and an exact multiple of 64. HMAC-MD5 keys must be
|
||||
bits and an exact multiple of 64. HMAC keys must be
|
||||
between 1 and 512 bits.
|
||||
</p></dd>
|
||||
<dt><span class="term">-n <em class="replaceable"><code>nametype</code></em></span></dt>
|
||||
@@ -76,8 +83,8 @@
|
||||
zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated with
|
||||
a host (KEY)),
|
||||
USER (for a key associated with a user(KEY)) or OTHER (DNSKEY).
|
||||
These values are
|
||||
case insensitive.
|
||||
These values are case insensitive. Defaults to ZONE for DNSKEY
|
||||
generation.
|
||||
</p></dd>
|
||||
<dt><span class="term">-c <em class="replaceable"><code>class</code></em></span></dt>
|
||||
<dd><p>
|
||||
@@ -148,7 +155,7 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543824"></a><h2>GENERATED KEYS</h2>
|
||||
<a name="id2543834"></a><h2>GENERATED KEYS</h2>
|
||||
<p>
|
||||
When <span><strong class="command">dnssec-keygen</strong></span> completes
|
||||
successfully,
|
||||
@@ -194,7 +201,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543906"></a><h2>EXAMPLE</h2>
|
||||
<a name="id2543916"></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
|
||||
@@ -215,16 +222,16 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543949"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2544028"></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>,
|
||||
<em class="citetitle">RFC 2845</em>,
|
||||
<em class="citetitle">RFC 4033</em>.
|
||||
<em class="citetitle">RFC 4034</em>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544049"></a><h2>AUTHOR</h2>
|
||||
<a name="id2544059"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2004-2008 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,18 +13,18 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: dnssec-signzone.8,v 1.28.18.20 2009/07/11 01:31:44 tbox Exp $
|
||||
.\" $Id: dnssec-signzone.8,v 1.47.44.8 2009/11/07 01:56:11 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
.\" Title: dnssec\-signzone
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets v1.71.1 <http://docbook.sf.net/>
|
||||
.\" Date: June 30, 2000
|
||||
.\" Date: June 08, 2009
|
||||
.\" Manual: BIND9
|
||||
.\" Source: BIND9
|
||||
.\"
|
||||
.TH "DNSSEC\-SIGNZONE" "8" "June 30, 2000" "BIND9" "BIND9"
|
||||
.TH "DNSSEC\-SIGNZONE" "8" "June 08, 2009" "BIND9" "BIND9"
|
||||
.\" disable hyphenation
|
||||
.nh
|
||||
.\" disable justification (adjust text to left margin only)
|
||||
@@ -33,13 +33,15 @@
|
||||
dnssec\-signzone \- DNSSEC zone signing tool
|
||||
.SH "SYNOPSIS"
|
||||
.HP 16
|
||||
\fBdnssec\-signzone\fR [\fB\-a\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-d\ \fR\fB\fIdirectory\fR\fR] [\fB\-e\ \fR\fB\fIend\-time\fR\fR] [\fB\-f\ \fR\fB\fIoutput\-file\fR\fR] [\fB\-g\fR] [\fB\-h\fR] [\fB\-k\ \fR\fB\fIkey\fR\fR] [\fB\-l\ \fR\fB\fIdomain\fR\fR] [\fB\-i\ \fR\fB\fIinterval\fR\fR] [\fB\-I\ \fR\fB\fIinput\-format\fR\fR] [\fB\-j\ \fR\fB\fIjitter\fR\fR] [\fB\-N\ \fR\fB\fIsoa\-serial\-format\fR\fR] [\fB\-o\ \fR\fB\fIorigin\fR\fR] [\fB\-O\ \fR\fB\fIoutput\-format\fR\fR] [\fB\-p\fR] [\fB\-r\ \fR\fB\fIrandomdev\fR\fR] [\fB\-s\ \fR\fB\fIstart\-time\fR\fR] [\fB\-t\fR] [\fB\-v\ \fR\fB\fIlevel\fR\fR] [\fB\-z\fR] {zonefile} [key...]
|
||||
\fBdnssec\-signzone\fR [\fB\-a\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-d\ \fR\fB\fIdirectory\fR\fR] [\fB\-e\ \fR\fB\fIend\-time\fR\fR] [\fB\-f\ \fR\fB\fIoutput\-file\fR\fR] [\fB\-g\fR] [\fB\-h\fR] [\fB\-k\ \fR\fB\fIkey\fR\fR] [\fB\-l\ \fR\fB\fIdomain\fR\fR] [\fB\-i\ \fR\fB\fIinterval\fR\fR] [\fB\-I\ \fR\fB\fIinput\-format\fR\fR] [\fB\-j\ \fR\fB\fIjitter\fR\fR] [\fB\-N\ \fR\fB\fIsoa\-serial\-format\fR\fR] [\fB\-o\ \fR\fB\fIorigin\fR\fR] [\fB\-O\ \fR\fB\fIoutput\-format\fR\fR] [\fB\-p\fR] [\fB\-P\fR] [\fB\-r\ \fR\fB\fIrandomdev\fR\fR] [\fB\-s\ \fR\fB\fIstart\-time\fR\fR] [\fB\-t\fR] [\fB\-v\ \fR\fB\fIlevel\fR\fR] [\fB\-z\fR] [\fB\-3\ \fR\fB\fIsalt\fR\fR] [\fB\-H\ \fR\fB\fIiterations\fR\fR] [\fB\-A\fR] {zonefile} [key...]
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
\fBdnssec\-signzone\fR
|
||||
signs a zone. It generates NSEC and RRSIG records and produces a signed version of the zone. The security status of delegations from the signed zone (that is, whether the child zones are secure or not) is determined by the presence or absence of a
|
||||
\fIkeyset\fR
|
||||
file for each child zone.
|
||||
signs a zone. It generates NSEC and RRSIG records and produces a signed version of the zone. It also generates a
|
||||
\fIkeyset\-\fR
|
||||
file containing the key\-signing keys for the zone, and if signing a zone which contains delegations, it can optionally generate DS records for the child zones from their
|
||||
\fIkeyset\-\fR
|
||||
files.
|
||||
.SH "OPTIONS"
|
||||
.PP
|
||||
\-a
|
||||
@@ -73,7 +75,9 @@ as the directory
|
||||
.PP
|
||||
\-g
|
||||
.RS 4
|
||||
Generate DS records for child zones from keyset files. Existing DS records will be removed.
|
||||
If the zone contains any delegations, and there are
|
||||
\fIkeyset\-\fR
|
||||
files for any of the child zones, then DS records for the child zones will be generated from the keys in those files. Existing DS records will be removed.
|
||||
.RE
|
||||
.PP
|
||||
\-s \fIstart\-time\fR
|
||||
@@ -186,6 +190,13 @@ The format of the output file containing the signed zone. Possible formats are
|
||||
Use pseudo\-random data when signing the zone. This is faster, but less secure, than using real random data. This option may be useful when signing large zones or when the entropy source is limited.
|
||||
.RE
|
||||
.PP
|
||||
\-P
|
||||
.RS 4
|
||||
Disable post sign verification tests.
|
||||
.sp
|
||||
The post sign verification test ensures that for each algorithm in use there is at least one non revoked self signed KSK key, that all revoked KSK keys are self signed, and that all records in the zone are signed by the algorithm. This option skips these tests.
|
||||
.RE
|
||||
.PP
|
||||
\-r \fIrandomdev\fR
|
||||
.RS 4
|
||||
Specifies the source of randomness. If the operating system does not provide a
|
||||
@@ -212,6 +223,21 @@ Sets the debugging level.
|
||||
Ignore KSK flag on key when determining what to sign.
|
||||
.RE
|
||||
.PP
|
||||
\-3 \fIsalt\fR
|
||||
.RS 4
|
||||
Generate a NSEC3 chain with the given hex encoded salt. A dash (\fIsalt\fR) can be used to indicate that no salt is to be used when generating the NSEC3 chain.
|
||||
.RE
|
||||
.PP
|
||||
\-H \fIiterations\fR
|
||||
.RS 4
|
||||
When generating a NSEC3 chain use this many interations. The default is 100.
|
||||
.RE
|
||||
.PP
|
||||
\-A
|
||||
.RS 4
|
||||
When generating a NSEC3 chain set the OPTOUT flag on all NSEC3 records and do not generate NSEC3 records for insecure delegations.
|
||||
.RE
|
||||
.PP
|
||||
zonefile
|
||||
.RS 4
|
||||
The file containing the zone to be signed.
|
||||
@@ -257,6 +283,18 @@ db.example.com.signed
|
||||
%
|
||||
.fi
|
||||
.RE
|
||||
.SH "KNOWN BUGS"
|
||||
.PP
|
||||
\fBdnssec\-signzone\fR
|
||||
was designed so that it could sign a zone partially, using only a subset of the DNSSEC keys needed to produce a fully\-signed zone. This permits a zone administrator, for example, to sign a zone with one key on one machine, move the resulting partially\-signed zone to a second machine, and sign it again with a second key.
|
||||
.PP
|
||||
An unfortunate side\-effect of this flexibility is that
|
||||
\fBdnssec\-signzone\fR
|
||||
does not check to make sure it's signing a zone with any valid keys at all. An attempt to sign a zone without any keys will appear to succeed, producing a "signed" zone with no signatures. There is no warning issued when a zone is not fully signed.
|
||||
.PP
|
||||
This will be corrected in a future release. In the meantime, ISC recommends examining the output of
|
||||
\fBdnssec\-signzone\fR
|
||||
to confirm that the zone is properly signed by all keys before using it.
|
||||
.SH "SEE ALSO"
|
||||
.PP
|
||||
\fBdnssec\-keygen\fR(8),
|
||||
@@ -266,7 +304,7 @@ RFC 4033.
|
||||
.PP
|
||||
Internet Systems Consortium
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004\-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004\-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
Copyright \(co 2000\-2003 Internet Software Consortium.
|
||||
.br
|
||||
|
||||
+1502
-247
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 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,10 +18,10 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dnssec-signzone.docbook,v 1.10.18.19 2008/10/15 23:46:06 tbox Exp $ -->
|
||||
<!-- $Id: dnssec-signzone.docbook,v 1.31.44.8 2009/11/06 21:36:22 each Exp $ -->
|
||||
<refentry id="man.dnssec-signzone">
|
||||
<refentryinfo>
|
||||
<date>June 30, 2000</date>
|
||||
<date>June 08, 2009</date>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
@@ -42,6 +42,7 @@
|
||||
<year>2006</year>
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<year>2009</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -72,11 +73,15 @@
|
||||
<arg><option>-o <replaceable class="parameter">origin</replaceable></option></arg>
|
||||
<arg><option>-O <replaceable class="parameter">output-format</replaceable></option></arg>
|
||||
<arg><option>-p</option></arg>
|
||||
<arg><option>-P</option></arg>
|
||||
<arg><option>-r <replaceable class="parameter">randomdev</replaceable></option></arg>
|
||||
<arg><option>-s <replaceable class="parameter">start-time</replaceable></option></arg>
|
||||
<arg><option>-t</option></arg>
|
||||
<arg><option>-v <replaceable class="parameter">level</replaceable></option></arg>
|
||||
<arg><option>-z</option></arg>
|
||||
<arg><option>-3 <replaceable class="parameter">salt</replaceable></option></arg>
|
||||
<arg><option>-H <replaceable class="parameter">iterations</replaceable></option></arg>
|
||||
<arg><option>-A</option></arg>
|
||||
<arg choice="req">zonefile</arg>
|
||||
<arg rep="repeat">key</arg>
|
||||
</cmdsynopsis>
|
||||
@@ -87,10 +92,10 @@
|
||||
<para><command>dnssec-signzone</command>
|
||||
signs a zone. It generates
|
||||
NSEC and RRSIG records and produces a signed version of the
|
||||
zone. The security status of delegations from the signed zone
|
||||
(that is, whether the child zones are secure or not) is
|
||||
determined by the presence or absence of a
|
||||
<filename>keyset</filename> file for each child zone.
|
||||
zone. It also generates a <filename>keyset-</filename> file containing
|
||||
the key-signing keys for the zone, and if signing a zone which
|
||||
contains delegations, it can optionally generate DS records for
|
||||
the child zones from their <filename>keyset-</filename> files.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
@@ -150,8 +155,10 @@
|
||||
<term>-g</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Generate DS records for child zones from keyset files.
|
||||
Existing DS records will be removed.
|
||||
If the zone contains any delegations, and there are
|
||||
<filename>keyset-</filename> files for any of the child zones,
|
||||
then DS records for the child zones will be generated from the
|
||||
keys in those files. Existing DS records will be removed.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -355,6 +362,22 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-P</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Disable post sign verification tests.
|
||||
</para>
|
||||
<para>
|
||||
The post sign verification test ensures that for each algorithm
|
||||
in use there is at least one non revoked self signed KSK key,
|
||||
that all revoked KSK keys are self signed, and that all records
|
||||
in the zone are signed by the algorithm.
|
||||
This option skips these tests.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-r <replaceable class="parameter">randomdev</replaceable></term>
|
||||
<listitem>
|
||||
@@ -399,6 +422,38 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-3 <replaceable class="parameter">salt</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Generate a NSEC3 chain with the given hex encoded salt.
|
||||
A dash (<replaceable class="parameter">salt</replaceable>) can
|
||||
be used to indicate that no salt is to be used when generating the NSEC3 chain.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-H <replaceable class="parameter">iterations</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
When generating a NSEC3 chain use this many interations. The
|
||||
default is 100.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-A</term>
|
||||
<listitem>
|
||||
<para>
|
||||
When generating a NSEC3 chain set the OPTOUT flag on all
|
||||
NSEC3 records and do not generate NSEC3 records for insecure
|
||||
delegations.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>zonefile</term>
|
||||
<listitem>
|
||||
@@ -454,6 +509,33 @@ db.example.com.signed
|
||||
%</programlisting>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>KNOWN BUGS</title>
|
||||
<para>
|
||||
<command>dnssec-signzone</command> was designed so that it could
|
||||
sign a zone partially, using only a subset of the DNSSEC keys
|
||||
needed to produce a fully-signed zone. This permits a zone
|
||||
administrator, for example, to sign a zone with one key on one
|
||||
machine, move the resulting partially-signed zone to a second
|
||||
machine, and sign it again with a second key.
|
||||
</para>
|
||||
<para>
|
||||
An unfortunate side-effect of this flexibility is that
|
||||
<command>dnssec-signzone</command> does not check to make sure
|
||||
it's signing a zone with any valid keys at all. An attempt to
|
||||
sign a zone without any keys will appear to succeed, producing
|
||||
a "signed" zone with no signatures. There is no warning issued
|
||||
when a zone is not fully signed.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This will be corrected in a future release. In the meantime, ISC
|
||||
recommends examining the output of <command>dnssec-signzone</command>
|
||||
to confirm that the zone is properly signed by all keys before
|
||||
using it.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>SEE ALSO</title>
|
||||
<para><citerefentry>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 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: dnssec-signzone.html,v 1.8.18.26 2009/07/11 01:31:44 tbox Exp $ -->
|
||||
<!-- $Id: dnssec-signzone.html,v 1.33.44.8.10.1 2010/03/03 22:19:19 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -29,21 +29,21 @@
|
||||
</div>
|
||||
<div class="refsynopsisdiv">
|
||||
<h2>Synopsis</h2>
|
||||
<div class="cmdsynopsis"><p><code class="command">dnssec-signzone</code> [<code class="option">-a</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-d <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-e <em class="replaceable"><code>end-time</code></em></code>] [<code class="option">-f <em class="replaceable"><code>output-file</code></em></code>] [<code class="option">-g</code>] [<code class="option">-h</code>] [<code class="option">-k <em class="replaceable"><code>key</code></em></code>] [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-i <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-I <em class="replaceable"><code>input-format</code></em></code>] [<code class="option">-j <em class="replaceable"><code>jitter</code></em></code>] [<code class="option">-N <em class="replaceable"><code>soa-serial-format</code></em></code>] [<code class="option">-o <em class="replaceable"><code>origin</code></em></code>] [<code class="option">-O <em class="replaceable"><code>output-format</code></em></code>] [<code class="option">-p</code>] [<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-s <em class="replaceable"><code>start-time</code></em></code>] [<code class="option">-t</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-z</code>] {zonefile} [key...]</p></div>
|
||||
<div class="cmdsynopsis"><p><code class="command">dnssec-signzone</code> [<code class="option">-a</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-d <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-e <em class="replaceable"><code>end-time</code></em></code>] [<code class="option">-f <em class="replaceable"><code>output-file</code></em></code>] [<code class="option">-g</code>] [<code class="option">-h</code>] [<code class="option">-k <em class="replaceable"><code>key</code></em></code>] [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-i <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-I <em class="replaceable"><code>input-format</code></em></code>] [<code class="option">-j <em class="replaceable"><code>jitter</code></em></code>] [<code class="option">-N <em class="replaceable"><code>soa-serial-format</code></em></code>] [<code class="option">-o <em class="replaceable"><code>origin</code></em></code>] [<code class="option">-O <em class="replaceable"><code>output-format</code></em></code>] [<code class="option">-p</code>] [<code class="option">-P</code>] [<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-s <em class="replaceable"><code>start-time</code></em></code>] [<code class="option">-t</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-z</code>] [<code class="option">-3 <em class="replaceable"><code>salt</code></em></code>] [<code class="option">-H <em class="replaceable"><code>iterations</code></em></code>] [<code class="option">-A</code>] {zonefile} [key...]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543529"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543556"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">dnssec-signzone</strong></span>
|
||||
signs a zone. It generates
|
||||
NSEC and RRSIG records and produces a signed version of the
|
||||
zone. The security status of delegations from the signed zone
|
||||
(that is, whether the child zones are secure or not) is
|
||||
determined by the presence or absence of a
|
||||
<code class="filename">keyset</code> file for each child zone.
|
||||
zone. It also generates a <code class="filename">keyset-</code> file containing
|
||||
the key-signing keys for the zone, and if signing a zone which
|
||||
contains delegations, it can optionally generate DS records for
|
||||
the child zones from their <code class="filename">keyset-</code> files.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543544"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543574"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-a</span></dt>
|
||||
<dd><p>
|
||||
@@ -70,8 +70,10 @@
|
||||
</p></dd>
|
||||
<dt><span class="term">-g</span></dt>
|
||||
<dd><p>
|
||||
Generate DS records for child zones from keyset files.
|
||||
Existing DS records will be removed.
|
||||
If the zone contains any delegations, and there are
|
||||
<code class="filename">keyset-</code> files for any of the child zones,
|
||||
then DS records for the child zones will be generated from the
|
||||
keys in those files. Existing DS records will be removed.
|
||||
</p></dd>
|
||||
<dt><span class="term">-s <em class="replaceable"><code>start-time</code></em></span></dt>
|
||||
<dd><p>
|
||||
@@ -202,6 +204,19 @@
|
||||
may be useful when signing large zones or when the entropy
|
||||
source is limited.
|
||||
</p></dd>
|
||||
<dt><span class="term">-P</span></dt>
|
||||
<dd>
|
||||
<p>
|
||||
Disable post sign verification tests.
|
||||
</p>
|
||||
<p>
|
||||
The post sign verification test ensures that for each algorithm
|
||||
in use there is at least one non revoked self signed KSK key,
|
||||
that all revoked KSK keys are self signed, and that all records
|
||||
in the zone are signed by the algorithm.
|
||||
This option skips these tests.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><span class="term">-r <em class="replaceable"><code>randomdev</code></em></span></dt>
|
||||
<dd><p>
|
||||
Specifies the source of randomness. If the operating
|
||||
@@ -226,6 +241,23 @@
|
||||
<dd><p>
|
||||
Ignore KSK flag on key when determining what to sign.
|
||||
</p></dd>
|
||||
<dt><span class="term">-3 <em class="replaceable"><code>salt</code></em></span></dt>
|
||||
<dd><p>
|
||||
Generate a NSEC3 chain with the given hex encoded salt.
|
||||
A dash (<em class="replaceable"><code>salt</code></em>) can
|
||||
be used to indicate that no salt is to be used when generating the NSEC3 chain.
|
||||
</p></dd>
|
||||
<dt><span class="term">-H <em class="replaceable"><code>iterations</code></em></span></dt>
|
||||
<dd><p>
|
||||
When generating a NSEC3 chain use this many interations. The
|
||||
default is 100.
|
||||
</p></dd>
|
||||
<dt><span class="term">-A</span></dt>
|
||||
<dd><p>
|
||||
When generating a NSEC3 chain set the OPTOUT flag on all
|
||||
NSEC3 records and do not generate NSEC3 records for insecure
|
||||
delegations.
|
||||
</p></dd>
|
||||
<dt><span class="term">zonefile</span></dt>
|
||||
<dd><p>
|
||||
The file containing the zone to be signed.
|
||||
@@ -241,7 +273,7 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544330"></a><h2>EXAMPLE</h2>
|
||||
<a name="id2544433"></a><h2>EXAMPLE</h2>
|
||||
<p>
|
||||
The following command signs the <strong class="userinput"><code>example.com</code></strong>
|
||||
zone with the DSA key generated by <span><strong class="command">dnssec-keygen</strong></span>
|
||||
@@ -270,14 +302,39 @@ db.example.com.signed
|
||||
%</pre>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544381"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2544552"></a><h2>KNOWN BUGS</h2>
|
||||
<p>
|
||||
<span><strong class="command">dnssec-signzone</strong></span> was designed so that it could
|
||||
sign a zone partially, using only a subset of the DNSSEC keys
|
||||
needed to produce a fully-signed zone. This permits a zone
|
||||
administrator, for example, to sign a zone with one key on one
|
||||
machine, move the resulting partially-signed zone to a second
|
||||
machine, and sign it again with a second key.
|
||||
</p>
|
||||
<p>
|
||||
An unfortunate side-effect of this flexibility is that
|
||||
<span><strong class="command">dnssec-signzone</strong></span> does not check to make sure
|
||||
it's signing a zone with any valid keys at all. An attempt to
|
||||
sign a zone without any keys will appear to succeed, producing
|
||||
a "signed" zone with no signatures. There is no warning issued
|
||||
when a zone is not fully signed.
|
||||
</p>
|
||||
<p>
|
||||
This will be corrected in a future release. In the meantime, ISC
|
||||
recommends examining the output of <span><strong class="command">dnssec-signzone</strong></span>
|
||||
to confirm that the zone is properly signed by all keys before
|
||||
using it.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544714"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
|
||||
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
|
||||
<em class="citetitle">RFC 4033</em>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544406"></a><h2>AUTHOR</h2>
|
||||
<a name="id2544739"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssectool.c,v 1.40.18.3 2005/07/01 03:55:28 marka Exp $ */
|
||||
/* $Id: dnssectool.c,v 1.45.334.5 2009/06/22 05:05:00 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -65,7 +65,7 @@ void
|
||||
fatal(const char *format, ...) {
|
||||
va_list args;
|
||||
|
||||
fprintf(stderr, "%s: ", program);
|
||||
fprintf(stderr, "%s: fatal: ", program);
|
||||
va_start(args, format);
|
||||
vfprintf(stderr, format, args);
|
||||
va_end(args);
|
||||
@@ -222,7 +222,7 @@ setup_entropy(isc_mem_t *mctx, const char *randomfile, isc_entropy_t **ectx) {
|
||||
int usekeyboard = ISC_ENTROPY_KEYBOARDMAYBE;
|
||||
|
||||
REQUIRE(ectx != NULL);
|
||||
|
||||
|
||||
if (*ectx == NULL) {
|
||||
result = isc_entropy_create(mctx, ectx);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2007-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssectool.h,v 1.18 2004/03/05 04:57:41 marka Exp $ */
|
||||
/* $Id: dnssectool.h,v 1.22.48.2 2009/09/04 23:46:58 tbox Exp $ */
|
||||
|
||||
#ifndef DNSSECTOOL_H
|
||||
#define DNSSECTOOL_H 1
|
||||
@@ -41,11 +41,11 @@ vbprintf(int level, const char *fmt, ...) ISC_FORMAT_PRINTF(2, 3);
|
||||
|
||||
void
|
||||
type_format(const dns_rdatatype_t type, char *cp, unsigned int size);
|
||||
#define TYPE_FORMATSIZE 10
|
||||
#define TYPE_FORMATSIZE 20
|
||||
|
||||
void
|
||||
alg_format(const dns_secalg_t alg, char *cp, unsigned int size);
|
||||
#define ALG_FORMATSIZE 10
|
||||
#define ALG_FORMATSIZE 20
|
||||
|
||||
void
|
||||
sig_format(dns_rdata_rrsig_t *sig, char *cp, unsigned int size);
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
# Microsoft Developer Studio Project File - Name="dsfromkey" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=dsfromkey - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "dsfromkey.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "dsfromkey.mak" CFG="dsfromkey - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "dsfromkey - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "dsfromkey - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "dsfromkey - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MD /W3 /GX /O2 /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/isc/noatomic/include" /I "../../../lib/dns/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 user32.lib advapi32.lib Release/dnssectool.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /machine:I386 /out:"../../../Build/Release/dnssec-dsfromkey.exe"
|
||||
|
||||
!ELSEIF "$(CFG)" == "dsfromkey - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/isc/noatomic/include" /I "../../../lib/dns/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
|
||||
# SUBTRACT CPP /X /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 user32.lib advapi32.lib Debug/dnssectool.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../../Build/Debug/dnssec-dsfromkey.exe" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "dsfromkey - Win32 Release"
|
||||
# Name "dsfromkey - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE="..\dnssec-dsfromkey.c"
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "dsfromkey"=".\dsfromkey.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -0,0 +1,324 @@
|
||||
# Microsoft Developer Studio Generated NMAKE File, Based on dsfromkey.dsp
|
||||
!IF "$(CFG)" == ""
|
||||
CFG=dsfromkey - Win32 Debug
|
||||
!MESSAGE No configuration specified. Defaulting to dsfromkey - Win32 Debug.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" != "dsfromkey - Win32 Release" && "$(CFG)" != "dsfromkey - Win32 Debug"
|
||||
!MESSAGE Invalid configuration "$(CFG)" specified.
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "dsfromkey.mak" CFG="dsfromkey - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "dsfromkey - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "dsfromkey - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
!ERROR An invalid configuration is specified.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(OS)" == "Windows_NT"
|
||||
NULL=
|
||||
!ELSE
|
||||
NULL=nul
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" == "dsfromkey - Win32 Release"
|
||||
_VC_MANIFEST_INC=0
|
||||
_VC_MANIFEST_BASENAME=__VC80
|
||||
!ELSE
|
||||
_VC_MANIFEST_INC=1
|
||||
_VC_MANIFEST_BASENAME=__VC80.Debug
|
||||
!ENDIF
|
||||
|
||||
####################################################
|
||||
# Specifying name of temporary resource file used only in incremental builds:
|
||||
|
||||
!if "$(_VC_MANIFEST_INC)" == "1"
|
||||
_VC_MANIFEST_AUTO_RES=$(_VC_MANIFEST_BASENAME).auto.res
|
||||
!else
|
||||
_VC_MANIFEST_AUTO_RES=
|
||||
!endif
|
||||
|
||||
####################################################
|
||||
# _VC_MANIFEST_EMBED_EXE - command to embed manifest in EXE:
|
||||
|
||||
!if "$(_VC_MANIFEST_INC)" == "1"
|
||||
|
||||
#MT_SPECIAL_RETURN=1090650113
|
||||
#MT_SPECIAL_SWITCH=-notify_resource_update
|
||||
MT_SPECIAL_RETURN=0
|
||||
MT_SPECIAL_SWITCH=
|
||||
_VC_MANIFEST_EMBED_EXE= \
|
||||
if exist $@.manifest mt.exe -manifest $@.manifest -out:$(_VC_MANIFEST_BASENAME).auto.manifest $(MT_SPECIAL_SWITCH) & \
|
||||
if "%ERRORLEVEL%" == "$(MT_SPECIAL_RETURN)" \
|
||||
rc /r $(_VC_MANIFEST_BASENAME).auto.rc & \
|
||||
link $** /out:$@ $(LFLAGS)
|
||||
|
||||
!else
|
||||
|
||||
_VC_MANIFEST_EMBED_EXE= \
|
||||
if exist $@.manifest mt.exe -manifest $@.manifest -outputresource:$@;1
|
||||
|
||||
!endif
|
||||
|
||||
####################################################
|
||||
# _VC_MANIFEST_EMBED_DLL - command to embed manifest in DLL:
|
||||
|
||||
!if "$(_VC_MANIFEST_INC)" == "1"
|
||||
|
||||
#MT_SPECIAL_RETURN=1090650113
|
||||
#MT_SPECIAL_SWITCH=-notify_resource_update
|
||||
MT_SPECIAL_RETURN=0
|
||||
MT_SPECIAL_SWITCH=
|
||||
_VC_MANIFEST_EMBED_EXE= \
|
||||
if exist $@.manifest mt.exe -manifest $@.manifest -out:$(_VC_MANIFEST_BASENAME).auto.manifest $(MT_SPECIAL_SWITCH) & \
|
||||
if "%ERRORLEVEL%" == "$(MT_SPECIAL_RETURN)" \
|
||||
rc /r $(_VC_MANIFEST_BASENAME).auto.rc & \
|
||||
link $** /out:$@ $(LFLAGS)
|
||||
|
||||
!else
|
||||
|
||||
_VC_MANIFEST_EMBED_EXE= \
|
||||
if exist $@.manifest mt.exe -manifest $@.manifest -outputresource:$@;2
|
||||
|
||||
!endif
|
||||
####################################################
|
||||
# _VC_MANIFEST_CLEAN - command to clean resources files generated temporarily:
|
||||
|
||||
!if "$(_VC_MANIFEST_INC)" == "1"
|
||||
|
||||
_VC_MANIFEST_CLEAN=-del $(_VC_MANIFEST_BASENAME).auto.res \
|
||||
$(_VC_MANIFEST_BASENAME).auto.rc \
|
||||
$(_VC_MANIFEST_BASENAME).auto.manifest
|
||||
|
||||
!else
|
||||
|
||||
_VC_MANIFEST_CLEAN=
|
||||
|
||||
!endif
|
||||
|
||||
!IF "$(CFG)" == "dsfromkey - Win32 Release"
|
||||
|
||||
OUTDIR=.\Release
|
||||
INTDIR=.\Release
|
||||
|
||||
ALL : "..\..\..\Build\Release\dnssec-dsfromkey.exe"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dnssec-dsfromkey.obj"
|
||||
-@erase "$(INTDIR)\dnssectool.obj"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "..\..\..\Build\Release\dnssec-dsfromkey.exe"
|
||||
-@$(_VC_MANIFEST_CLEAN)
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/isc/noatomic/include" /I "../../../lib/dns/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\dsfromkey.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\dsfromkey.bsc"
|
||||
BSC32_SBRS= \
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\dnssec-dsfromkey.pdb" /machine:I386 /out:"../../../Build/Release/dnssec-dsfromkey.exe"
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dnssec-dsfromkey.obj" \
|
||||
"$(INTDIR)\dnssectool.obj"
|
||||
|
||||
"..\..\..\Build\Release\dnssec-dsfromkey.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
$(_VC_MANIFEST_EMBED_EXE)
|
||||
|
||||
!ELSEIF "$(CFG)" == "dsfromkey - Win32 Debug"
|
||||
|
||||
OUTDIR=.\Debug
|
||||
INTDIR=.\Debug
|
||||
# Begin Custom Macros
|
||||
OutDir=.\Debug
|
||||
# End Custom Macros
|
||||
|
||||
ALL : "..\..\..\Build\Debug\dnssec-dsfromkey.exe" "$(OUTDIR)\dsfromkey.bsc"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dnssec-dsfromkey.obj"
|
||||
-@erase "$(INTDIR)\dnssec-dsfromkey.sbr"
|
||||
-@erase "$(INTDIR)\dnssectool.obj"
|
||||
-@erase "$(INTDIR)\dnssectool.sbr"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "$(INTDIR)\vc60.pdb"
|
||||
-@erase "$(OUTDIR)\dnssec-dsfromkey.pdb"
|
||||
-@erase "$(OUTDIR)\dsfromkey.bsc"
|
||||
-@erase "..\..\..\Build\Debug\dnssec-dsfromkey.exe"
|
||||
-@erase "..\..\..\Build\Debug\dnssec-dsfromkey.ilk"
|
||||
-@$(_VC_MANIFEST_CLEAN)
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/isc/noatomic/include" /I "../../../lib/dns/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\dsfromkey.bsc"
|
||||
BSC32_SBRS= \
|
||||
"$(INTDIR)\dnssec-dsfromkey.sbr" \
|
||||
"$(INTDIR)\dnssectool.sbr"
|
||||
|
||||
"$(OUTDIR)\dsfromkey.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
|
||||
$(BSC32) @<<
|
||||
$(BSC32_FLAGS) $(BSC32_SBRS)
|
||||
<<
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\dnssec-dsfromkey.pdb" /debug /machine:I386 /out:"../../../Build/Debug/dnssec-dsfromkey.exe" /pdbtype:sept
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dnssec-dsfromkey.obj" \
|
||||
"$(INTDIR)\dnssectool.obj"
|
||||
|
||||
"..\..\..\Build\Debug\dnssec-dsfromkey.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
$(_VC_MANIFEST_EMBED_EXE)
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(NO_EXTERNAL_DEPS)" != "1"
|
||||
!IF EXISTS("dsfromkey.dep")
|
||||
!INCLUDE "dsfromkey.dep"
|
||||
!ELSE
|
||||
!MESSAGE Warning: cannot find "dsfromkey.dep"
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(CFG)" == "dsfromkey - Win32 Release" || "$(CFG)" == "dsfromkey - Win32 Debug"
|
||||
SOURCE="..\dnssec-dsfromkey.c"
|
||||
|
||||
!IF "$(CFG)" == "dsfromkey - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssec-dsfromkey.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "dsfromkey - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssec-dsfromkey.obj" "$(INTDIR)\dnssec-dsfromkey.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
SOURCE=..\dnssectool.c
|
||||
|
||||
!IF "$(CFG)" == "dsfromkey - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssectool.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "dsfromkey - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssectool.obj" "$(INTDIR)\dnssectool.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
####################################################
|
||||
# Commands to generate initial empty manifest file and the RC file
|
||||
# that references it, and for generating the .res file:
|
||||
|
||||
$(_VC_MANIFEST_BASENAME).auto.res : $(_VC_MANIFEST_BASENAME).auto.rc
|
||||
|
||||
$(_VC_MANIFEST_BASENAME).auto.rc : $(_VC_MANIFEST_BASENAME).auto.manifest
|
||||
type <<$@
|
||||
#include <winuser.h>
|
||||
1RT_MANIFEST"$(_VC_MANIFEST_BASENAME).auto.manifest"
|
||||
<< KEEP
|
||||
|
||||
$(_VC_MANIFEST_BASENAME).auto.manifest :
|
||||
type <<$@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
|
||||
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
|
||||
</assembly>
|
||||
<< KEEP
|
||||
@@ -0,0 +1,103 @@
|
||||
# Microsoft Developer Studio Project File - Name="keyfromlabel" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=keyfromlabel - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "keyfromlabel.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "keyfromlabel.mak" CFG="keyfromlabel - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "keyfromlabel - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "keyfromlabel - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "keyfromlabel - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MD /W3 /GX /O2 /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/isc/noatomic/include" /I "../../../lib/dns/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 user32.lib advapi32.lib Release/dnssectool.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /machine:I386 /out:"../../../Build/Release/dnssec-keyfromlabel.exe"
|
||||
|
||||
!ELSEIF "$(CFG)" == "keyfromlabel - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/isc/noatomic/include" /I "../../../lib/dns/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
|
||||
# SUBTRACT CPP /X /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 user32.lib advapi32.lib Debug/dnssectool.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../../Build/Debug/dnssec-keyfromlabel.exe" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "keyfromlabel - Win32 Release"
|
||||
# Name "keyfromlabel - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE="..\dnssec-keyfromlabel.c"
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "keyfromlabel"=".\keyfromlabel.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -0,0 +1,324 @@
|
||||
# Microsoft Developer Studio Generated NMAKE File, Based on keyfromlabel.dsp
|
||||
!IF "$(CFG)" == ""
|
||||
CFG=keyfromlabel - Win32 Debug
|
||||
!MESSAGE No configuration specified. Defaulting to keyfromlabel - Win32 Debug.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" != "keyfromlabel - Win32 Release" && "$(CFG)" != "keyfromlabel - Win32 Debug"
|
||||
!MESSAGE Invalid configuration "$(CFG)" specified.
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "keyfromlabel.mak" CFG="keyfromlabel - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "keyfromlabel - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "keyfromlabel - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
!ERROR An invalid configuration is specified.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(OS)" == "Windows_NT"
|
||||
NULL=
|
||||
!ELSE
|
||||
NULL=nul
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" == "keyfromlabel - Win32 Release"
|
||||
_VC_MANIFEST_INC=0
|
||||
_VC_MANIFEST_BASENAME=__VC80
|
||||
!ELSE
|
||||
_VC_MANIFEST_INC=1
|
||||
_VC_MANIFEST_BASENAME=__VC80.Debug
|
||||
!ENDIF
|
||||
|
||||
####################################################
|
||||
# Specifying name of temporary resource file used only in incremental builds:
|
||||
|
||||
!if "$(_VC_MANIFEST_INC)" == "1"
|
||||
_VC_MANIFEST_AUTO_RES=$(_VC_MANIFEST_BASENAME).auto.res
|
||||
!else
|
||||
_VC_MANIFEST_AUTO_RES=
|
||||
!endif
|
||||
|
||||
####################################################
|
||||
# _VC_MANIFEST_EMBED_EXE - command to embed manifest in EXE:
|
||||
|
||||
!if "$(_VC_MANIFEST_INC)" == "1"
|
||||
|
||||
#MT_SPECIAL_RETURN=1090650113
|
||||
#MT_SPECIAL_SWITCH=-notify_resource_update
|
||||
MT_SPECIAL_RETURN=0
|
||||
MT_SPECIAL_SWITCH=
|
||||
_VC_MANIFEST_EMBED_EXE= \
|
||||
if exist $@.manifest mt.exe -manifest $@.manifest -out:$(_VC_MANIFEST_BASENAME).auto.manifest $(MT_SPECIAL_SWITCH) & \
|
||||
if "%ERRORLEVEL%" == "$(MT_SPECIAL_RETURN)" \
|
||||
rc /r $(_VC_MANIFEST_BASENAME).auto.rc & \
|
||||
link $** /out:$@ $(LFLAGS)
|
||||
|
||||
!else
|
||||
|
||||
_VC_MANIFEST_EMBED_EXE= \
|
||||
if exist $@.manifest mt.exe -manifest $@.manifest -outputresource:$@;1
|
||||
|
||||
!endif
|
||||
|
||||
####################################################
|
||||
# _VC_MANIFEST_EMBED_DLL - command to embed manifest in DLL:
|
||||
|
||||
!if "$(_VC_MANIFEST_INC)" == "1"
|
||||
|
||||
#MT_SPECIAL_RETURN=1090650113
|
||||
#MT_SPECIAL_SWITCH=-notify_resource_update
|
||||
MT_SPECIAL_RETURN=0
|
||||
MT_SPECIAL_SWITCH=
|
||||
_VC_MANIFEST_EMBED_EXE= \
|
||||
if exist $@.manifest mt.exe -manifest $@.manifest -out:$(_VC_MANIFEST_BASENAME).auto.manifest $(MT_SPECIAL_SWITCH) & \
|
||||
if "%ERRORLEVEL%" == "$(MT_SPECIAL_RETURN)" \
|
||||
rc /r $(_VC_MANIFEST_BASENAME).auto.rc & \
|
||||
link $** /out:$@ $(LFLAGS)
|
||||
|
||||
!else
|
||||
|
||||
_VC_MANIFEST_EMBED_EXE= \
|
||||
if exist $@.manifest mt.exe -manifest $@.manifest -outputresource:$@;2
|
||||
|
||||
!endif
|
||||
####################################################
|
||||
# _VC_MANIFEST_CLEAN - command to clean resources files generated temporarily:
|
||||
|
||||
!if "$(_VC_MANIFEST_INC)" == "1"
|
||||
|
||||
_VC_MANIFEST_CLEAN=-del $(_VC_MANIFEST_BASENAME).auto.res \
|
||||
$(_VC_MANIFEST_BASENAME).auto.rc \
|
||||
$(_VC_MANIFEST_BASENAME).auto.manifest
|
||||
|
||||
!else
|
||||
|
||||
_VC_MANIFEST_CLEAN=
|
||||
|
||||
!endif
|
||||
|
||||
!IF "$(CFG)" == "keyfromlabel - Win32 Release"
|
||||
|
||||
OUTDIR=.\Release
|
||||
INTDIR=.\Release
|
||||
|
||||
ALL : "..\..\..\Build\Release\dnssec-keyfromlabel.exe"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dnssec-keyfromlabel.obj"
|
||||
-@erase "$(INTDIR)\dnssectool.obj"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "..\..\..\Build\Release\dnssec-keyfromlabel.exe"
|
||||
-@$(_VC_MANIFEST_CLEAN)
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/isc/noatomic/include" /I "../../../lib/dns/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\keyfromlabel.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\keyfromlabel.bsc"
|
||||
BSC32_SBRS= \
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\dnssec-keyfromlabel.pdb" /machine:I386 /out:"../../../Build/Release/dnssec-keyfromlabel.exe"
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dnssec-keyfromlabel.obj" \
|
||||
"$(INTDIR)\dnssectool.obj"
|
||||
|
||||
"..\..\..\Build\Release\dnssec-keyfromlabel.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
$(_VC_MANIFEST_EMBED_EXE)
|
||||
|
||||
!ELSEIF "$(CFG)" == "keyfromlabel - Win32 Debug"
|
||||
|
||||
OUTDIR=.\Debug
|
||||
INTDIR=.\Debug
|
||||
# Begin Custom Macros
|
||||
OutDir=.\Debug
|
||||
# End Custom Macros
|
||||
|
||||
ALL : "..\..\..\Build\Debug\dnssec-keyfromlabel.exe" "$(OUTDIR)\keyfromlabel.bsc"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dnssec-keyfromlabel.obj"
|
||||
-@erase "$(INTDIR)\dnssec-keyfromlabel.sbr"
|
||||
-@erase "$(INTDIR)\dnssectool.obj"
|
||||
-@erase "$(INTDIR)\dnssectool.sbr"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "$(INTDIR)\vc60.pdb"
|
||||
-@erase "$(OUTDIR)\dnssec-keyfromlabel.pdb"
|
||||
-@erase "$(OUTDIR)\keyfromlabel.bsc"
|
||||
-@erase "..\..\..\Build\Debug\dnssec-keyfromlabel.exe"
|
||||
-@erase "..\..\..\Build\Debug\dnssec-keyfromlabel.ilk"
|
||||
-@$(_VC_MANIFEST_CLEAN)
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/isc/noatomic/include" /I "../../../lib/dns/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\keyfromlabel.bsc"
|
||||
BSC32_SBRS= \
|
||||
"$(INTDIR)\dnssec-keyfromlabel.sbr" \
|
||||
"$(INTDIR)\dnssectool.sbr"
|
||||
|
||||
"$(OUTDIR)\keyfromlabel.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
|
||||
$(BSC32) @<<
|
||||
$(BSC32_FLAGS) $(BSC32_SBRS)
|
||||
<<
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\dnssec-keyfromlabel.pdb" /debug /machine:I386 /out:"../../../Build/Debug/dnssec-keyfromlabel.exe" /pdbtype:sept
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dnssec-keyfromlabel.obj" \
|
||||
"$(INTDIR)\dnssectool.obj"
|
||||
|
||||
"..\..\..\Build\Debug\dnssec-keyfromlabel.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
$(_VC_MANIFEST_EMBED_EXE)
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(NO_EXTERNAL_DEPS)" != "1"
|
||||
!IF EXISTS("keyfromlabel.dep")
|
||||
!INCLUDE "keyfromlabel.dep"
|
||||
!ELSE
|
||||
!MESSAGE Warning: cannot find "keyfromlabel.dep"
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(CFG)" == "keyfromlabel - Win32 Release" || "$(CFG)" == "keyfromlabel - Win32 Debug"
|
||||
SOURCE="..\dnssec-keyfromlabel.c"
|
||||
|
||||
!IF "$(CFG)" == "keyfromlabel - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssec-keyfromlabel.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "keyfromlabel - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssec-keyfromlabel.obj" "$(INTDIR)\dnssec-keyfromlabel.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
SOURCE=..\dnssectool.c
|
||||
|
||||
!IF "$(CFG)" == "keyfromlabel - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssectool.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "keyfromlabel - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssectool.obj" "$(INTDIR)\dnssectool.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
####################################################
|
||||
# Commands to generate initial empty manifest file and the RC file
|
||||
# that references it, and for generating the .res file:
|
||||
|
||||
$(_VC_MANIFEST_BASENAME).auto.res : $(_VC_MANIFEST_BASENAME).auto.rc
|
||||
|
||||
$(_VC_MANIFEST_BASENAME).auto.rc : $(_VC_MANIFEST_BASENAME).auto.manifest
|
||||
type <<$@
|
||||
#include <winuser.h>
|
||||
1RT_MANIFEST"$(_VC_MANIFEST_BASENAME).auto.manifest"
|
||||
<< KEEP
|
||||
|
||||
$(_VC_MANIFEST_BASENAME).auto.manifest :
|
||||
type <<$@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
|
||||
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
|
||||
</assembly>
|
||||
<< KEEP
|
||||
+15
-6
@@ -1,7 +1,7 @@
|
||||
# Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 1998-2002 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and distribute this software for any
|
||||
# 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.
|
||||
#
|
||||
@@ -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.80.18.7 2005/09/05 00:18:10 marka Exp $
|
||||
# $Id: Makefile.in,v 1.101 2008/09/23 17:25:47 jinmei Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
@@ -21,6 +21,8 @@ top_srcdir = @top_srcdir@
|
||||
|
||||
@BIND9_VERSION@
|
||||
|
||||
@BIND9_CONFIGARGS@
|
||||
|
||||
@BIND9_MAKE_INCLUDES@
|
||||
|
||||
#
|
||||
@@ -38,7 +40,7 @@ DLZDRIVER_SRCS = @DLZ_DRIVER_SRCS@
|
||||
DLZDRIVER_INCLUDES = @DLZ_DRIVER_INCLUDES@
|
||||
DLZDRIVER_LIBS = @DLZ_DRIVER_LIBS@
|
||||
|
||||
CINCLUDES = -I${srcdir}/include -I${srcdir}/unix/include \
|
||||
CINCLUDES = -I${srcdir}/include -I${srcdir}/unix/include -I. \
|
||||
${LWRES_INCLUDES} ${DNS_INCLUDES} ${BIND9_INCLUDES} \
|
||||
${ISCCFG_INCLUDES} ${ISCCC_INCLUDES} ${ISC_INCLUDES} \
|
||||
${DLZDRIVER_INCLUDES} ${DBDRIVER_INCLUDES}
|
||||
@@ -75,7 +77,7 @@ TARGETS = named@EXEEXT@ lwresd@EXEEXT@
|
||||
OBJS = builtin.@O@ client.@O@ config.@O@ control.@O@ \
|
||||
controlconf.@O@ interfacemgr.@O@ \
|
||||
listenlist.@O@ log.@O@ logconf.@O@ main.@O@ notify.@O@ \
|
||||
query.@O@ server.@O@ sortlist.@O@ \
|
||||
query.@O@ server.@O@ sortlist.@O@ statschannel.@O@ \
|
||||
tkeyconf.@O@ tsigconf.@O@ update.@O@ xfrout.@O@ \
|
||||
zoneconf.@O@ \
|
||||
lwaddr.@O@ lwresd.@O@ lwdclient.@O@ lwderror.@O@ lwdgabn.@O@ \
|
||||
@@ -87,7 +89,7 @@ UOBJS = unix/os.@O@
|
||||
SRCS = builtin.c client.c config.c control.c \
|
||||
controlconf.c interfacemgr.c \
|
||||
listenlist.c log.c logconf.c main.c notify.c \
|
||||
query.c server.c sortlist.c \
|
||||
query.c server.c sortlist.c statschannel.c \
|
||||
tkeyconf.c tsigconf.c update.c xfrout.c \
|
||||
zoneconf.c \
|
||||
lwaddr.c lwresd.c lwdclient.c lwderror.c lwdgabn.c \
|
||||
@@ -105,6 +107,7 @@ MANOBJS = ${MANPAGES} ${HTMLPAGES}
|
||||
main.@O@: main.c
|
||||
${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
|
||||
-DVERSION=\"${VERSION}\" \
|
||||
-DCONFIGARGS="\"${CONFIGARGS}\"" \
|
||||
-DNS_LOCALSTATEDIR=\"${localstatedir}\" \
|
||||
-DNS_SYSCONFDIR=\"${sysconfdir}\" -c ${srcdir}/main.c
|
||||
|
||||
@@ -130,6 +133,12 @@ docclean manclean maintainer-clean::
|
||||
clean distclean maintainer-clean::
|
||||
rm -f ${TARGETS} ${OBJS}
|
||||
|
||||
bind9.xsl.h: bind9.xsl convertxsl.pl
|
||||
${PERL} ${srcdir}/convertxsl.pl < ${srcdir}/bind9.xsl > bind9.xsl.h
|
||||
|
||||
depend: bind9.xsl.h
|
||||
statschannel.@O@: bind9.xsl.h
|
||||
|
||||
installdirs:
|
||||
$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${sbindir}
|
||||
$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${mandir}/man5
|
||||
|
||||
@@ -0,0 +1,492 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
- Copyright (C) 2006-2009 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: bind9.xsl,v 1.19.82.2 2009/01/29 23:47:43 tbox Exp $ -->
|
||||
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<xsl:template match="isc/bind/statistics">
|
||||
<html>
|
||||
<head>
|
||||
<style type="text/css">
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
tr.rowh {
|
||||
text-align: center;
|
||||
border: 1px solid #000000;
|
||||
background-color: #8080ff;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
tr.row {
|
||||
text-align: right;
|
||||
border: 1px solid #000000;
|
||||
background-color: teal;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
tr.lrow {
|
||||
text-align: left;
|
||||
border: 1px solid #000000;
|
||||
background-color: teal;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
td, th {
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
.header h1 {
|
||||
background-color: teal;
|
||||
color: #ffffff;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.content {
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.item {
|
||||
padding: 4px;
|
||||
align: right;
|
||||
}
|
||||
|
||||
.value {
|
||||
padding: 4px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.statcounter h2 {
|
||||
text-align: center;
|
||||
font-size: large;
|
||||
border: 1px solid #000000;
|
||||
background-color: #8080ff;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
div.statcounter dl {
|
||||
float: left;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
div.statcounter dt {
|
||||
width: 200px;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
border: 0.5px solid #000000;
|
||||
background-color: #8080ff;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
div.statcounter dd {
|
||||
width: 200px;
|
||||
text-align: right;
|
||||
border: 0.5px solid #000000;
|
||||
background-color: teal;
|
||||
color: #ffffff;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
div.statcounter br {
|
||||
clear: left;
|
||||
}
|
||||
</style>
|
||||
<title>BIND 9 Statistics</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<h1>Bind 9 Configuration and Statistics</h1>
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
|
||||
<table>
|
||||
<tr class="rowh"><th colspan="2">Times</th></tr>
|
||||
<tr class="lrow">
|
||||
<td>boot-time</td>
|
||||
<td><xsl:value-of select="server/boot-time"/></td>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td>current-time</td>
|
||||
<td><xsl:value-of select="server/current-time"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
|
||||
<table>
|
||||
<tr class="rowh"><th colspan="2">Incoming Requests</th></tr>
|
||||
<xsl:for-each select="server/requests/opcode">
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="name"/></td>
|
||||
<td><xsl:value-of select="counter"/></td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
|
||||
<table>
|
||||
<tr class="rowh"><th colspan="2">Incoming Queries</th></tr>
|
||||
<xsl:for-each select="server/queries-in/rdtype">
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="name"/></td>
|
||||
<td><xsl:value-of select="counter"/></td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
|
||||
<xsl:for-each select="views/view">
|
||||
<table>
|
||||
<tr class="rowh">
|
||||
<th colspan="2">Outgoing Queries from View <xsl:value-of select="name"/></th>
|
||||
</tr>
|
||||
<xsl:for-each select="rdtype">
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="name"/></td>
|
||||
<td><xsl:value-of select="counter"/></td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
<br/>
|
||||
</xsl:for-each>
|
||||
|
||||
<br/>
|
||||
|
||||
<div class="statcounter">
|
||||
<h2>Server Statistics</h2>
|
||||
<xsl:for-each select="server/nsstat">
|
||||
<dl>
|
||||
<dt><xsl:value-of select="name"/></dt>
|
||||
<dd><xsl:value-of select="counter"/></dd>
|
||||
</dl>
|
||||
</xsl:for-each>
|
||||
<br/>
|
||||
</div>
|
||||
|
||||
<div class="statcounter">
|
||||
<h2>Zone Maintenance Statistics</h2>
|
||||
<xsl:for-each select="server/zonestat">
|
||||
<dl>
|
||||
<dt><xsl:value-of select="name"/></dt>
|
||||
<dd><xsl:value-of select="counter"/></dd>
|
||||
</dl>
|
||||
</xsl:for-each>
|
||||
<br />
|
||||
</div>
|
||||
|
||||
<div class="statcounter">
|
||||
<h2>Resolver Statistics (Common)</h2>
|
||||
<xsl:for-each select="server/resstat">
|
||||
<dl>
|
||||
<dt><xsl:value-of select="name"/></dt>
|
||||
<dd><xsl:value-of select="counter"/></dd>
|
||||
</dl>
|
||||
</xsl:for-each>
|
||||
<br />
|
||||
</div>
|
||||
|
||||
<xsl:for-each select="views/view">
|
||||
<div class="statcounter">
|
||||
<h2>Resolver Statistics for View <xsl:value-of select="name"/></h2>
|
||||
<xsl:for-each select="resstat">
|
||||
<dl>
|
||||
<dt><xsl:value-of select="name"/></dt>
|
||||
<dd><xsl:value-of select="counter"/></dd>
|
||||
</dl>
|
||||
</xsl:for-each>
|
||||
<br />
|
||||
</div>
|
||||
</xsl:for-each>
|
||||
|
||||
<br />
|
||||
|
||||
<xsl:for-each select="views/view">
|
||||
<table>
|
||||
<tr class="rowh">
|
||||
<th colspan="2">Cache DB RRsets for View <xsl:value-of select="name"/></th>
|
||||
</tr>
|
||||
<xsl:for-each select="cache/rrset">
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="name"/></td>
|
||||
<td><xsl:value-of select="counter"/></td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
<br/>
|
||||
</xsl:for-each>
|
||||
|
||||
<div class="statcounter">
|
||||
<h2>Socket I/O Statistics</h2>
|
||||
<xsl:for-each select="server/sockstat">
|
||||
<dl>
|
||||
<dt><xsl:value-of select="name"/></dt>
|
||||
<dd><xsl:value-of select="counter"/></dd>
|
||||
</dl>
|
||||
</xsl:for-each>
|
||||
<br/>
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
|
||||
<xsl:for-each select="views/view">
|
||||
<table>
|
||||
<tr class="rowh">
|
||||
<th colspan="10">Zones for View <xsl:value-of select="name"/></th>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<th>Name</th>
|
||||
<th>Class</th>
|
||||
<th>Serial</th>
|
||||
<th>Success</th>
|
||||
<th>Referral</th>
|
||||
<th>NXRRSET</th>
|
||||
<th>NXDOMAIN</th>
|
||||
<th>Failure</th>
|
||||
<th>XfrReqDone</th>
|
||||
<th>XfrRej</th>
|
||||
</tr>
|
||||
<xsl:for-each select="zones/zone">
|
||||
<tr class="lrow">
|
||||
<td>
|
||||
<xsl:value-of select="name"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="rdataclass"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="serial"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="counters/QrySuccess"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="counters/QryReferral"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="counters/QryNxrrset"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="counters/QryNXDOMAIN"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="counters/QryFailure"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="counters/XfrReqDone"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="counters/XfrRej"/>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
<br/>
|
||||
</xsl:for-each>
|
||||
|
||||
<br/>
|
||||
|
||||
<table>
|
||||
<tr class="rowh">
|
||||
<th colspan="7">Network Status</th>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<th>ID</th>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>References</th>
|
||||
<th>LocalAddress</th>
|
||||
<th>PeerAddress</th>
|
||||
<th>State</th>
|
||||
</tr>
|
||||
<xsl:for-each select="socketmgr/sockets/socket">
|
||||
<tr class="lrow">
|
||||
<td>
|
||||
<xsl:value-of select="id"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="name"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="type"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="references"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="local-address"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="peer-address"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:for-each select="states">
|
||||
<xsl:value-of select="."/>
|
||||
</xsl:for-each>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
<br/>
|
||||
<table>
|
||||
<tr class="rowh">
|
||||
<th colspan="2">Task Manager Configuration</th>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td>Thread-Model</td>
|
||||
<td>
|
||||
<xsl:value-of select="taskmgr/thread-model/type"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td>Worker Threads</td>
|
||||
<td>
|
||||
<xsl:value-of select="taskmgr/thread-model/worker-threads"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td>Default Quantum</td>
|
||||
<td>
|
||||
<xsl:value-of select="taskmgr/thread-model/default-quantum"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td>Tasks Running</td>
|
||||
<td>
|
||||
<xsl:value-of select="taskmgr/thread-model/tasks-running"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br/>
|
||||
<table>
|
||||
<tr class="rowh">
|
||||
<th colspan="5">Tasks</th>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<th>ID</th>
|
||||
<th>Name</th>
|
||||
<th>References</th>
|
||||
<th>State</th>
|
||||
<th>Quantum</th>
|
||||
</tr>
|
||||
<xsl:for-each select="taskmgr/tasks/task">
|
||||
<tr class="lrow">
|
||||
<td>
|
||||
<xsl:value-of select="id"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="name"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="references"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="state"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="quantum"/>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
<br />
|
||||
<table>
|
||||
<tr class="rowh">
|
||||
<th colspan="4">Memory Usage Summary</th>
|
||||
</tr>
|
||||
<xsl:for-each select="memory/summary/*">
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="name()"/></td>
|
||||
<td><xsl:value-of select="."/></td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
<br />
|
||||
<table>
|
||||
<tr class="rowh">
|
||||
<th colspan="10">Memory Contexts</th>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<th>ID</th>
|
||||
<th>Name</th>
|
||||
<th>References</th>
|
||||
<th>TotalUse</th>
|
||||
<th>InUse</th>
|
||||
<th>MaxUse</th>
|
||||
<th>BlockSize</th>
|
||||
<th>Pools</th>
|
||||
<th>HiWater</th>
|
||||
<th>LoWater</th>
|
||||
</tr>
|
||||
<xsl:for-each select="memory/contexts/context">
|
||||
<tr class="lrow">
|
||||
<td>
|
||||
<xsl:value-of select="id"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="name"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="references"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="total"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="inuse"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="maxinuse"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="blocksize"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="pools"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="hiwater"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="lowater"/>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
@@ -0,0 +1,497 @@
|
||||
/*
|
||||
* Generated by convertxsl.pl 1.14 2008/07/17 23:43:26 jinmei Exp
|
||||
* From bind9.xsl 1.19.82.2 2009/01/29 23:47:43 tbox Exp
|
||||
*/
|
||||
static char xslmsg[] =
|
||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||
"<!--\n"
|
||||
" - Copyright (C) 2006-2009 Internet Systems Consortium, Inc. (\"ISC\")\n"
|
||||
" -\n"
|
||||
" - Permission to use, copy, modify, and/or distribute this software for any\n"
|
||||
" - purpose with or without fee is hereby granted, provided that the above\n"
|
||||
" - copyright notice and this permission notice appear in all copies.\n"
|
||||
" -\n"
|
||||
" - THE SOFTWARE IS PROVIDED \"AS IS\" AND ISC DISCLAIMS ALL WARRANTIES WITH\n"
|
||||
" - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n"
|
||||
" - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,\n"
|
||||
" - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n"
|
||||
" - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE\n"
|
||||
" - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n"
|
||||
" - PERFORMANCE OF THIS SOFTWARE.\n"
|
||||
"-->\n"
|
||||
"\n"
|
||||
"<!-- \045Id: bind9.xsl,v 1.19.82.2 2009/01/29 23:47:43 tbox Exp \045 -->\n"
|
||||
"\n"
|
||||
"<xsl:stylesheet version=\"1.0\"\n"
|
||||
" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"\n"
|
||||
" xmlns=\"http://www.w3.org/1999/xhtml\">\n"
|
||||
" <xsl:template match=\"isc/bind/statistics\">\n"
|
||||
" <html>\n"
|
||||
" <head>\n"
|
||||
" <style type=\"text/css\">\n"
|
||||
"body {\n"
|
||||
" font-family: sans-serif;\n"
|
||||
" background-color: #ffffff;\n"
|
||||
" color: #000000;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"table {\n"
|
||||
" border-collapse: collapse;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"tr.rowh {\n"
|
||||
" text-align: center;\n"
|
||||
" border: 1px solid #000000;\n"
|
||||
" background-color: #8080ff;\n"
|
||||
" color: #ffffff;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"tr.row {\n"
|
||||
" text-align: right;\n"
|
||||
" border: 1px solid #000000;\n"
|
||||
" background-color: teal;\n"
|
||||
" color: #ffffff;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"tr.lrow {\n"
|
||||
" text-align: left;\n"
|
||||
" border: 1px solid #000000;\n"
|
||||
" background-color: teal;\n"
|
||||
" color: #ffffff;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"td, th {\n"
|
||||
" padding-right: 5px;\n"
|
||||
" padding-left: 5px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
".header h1 {\n"
|
||||
" background-color: teal;\n"
|
||||
" color: #ffffff;\n"
|
||||
" padding: 4px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
".content {\n"
|
||||
" background-color: #ffffff;\n"
|
||||
" color: #000000;\n"
|
||||
" padding: 4px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
".item {\n"
|
||||
" padding: 4px;\n"
|
||||
" align: right;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
".value {\n"
|
||||
" padding: 4px;\n"
|
||||
" font-weight: bold;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"div.statcounter h2 {\n"
|
||||
" text-align: center;\n"
|
||||
" font-size: large;\n"
|
||||
" border: 1px solid #000000;\n"
|
||||
" background-color: #8080ff;\n"
|
||||
" color: #ffffff;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"div.statcounter dl {\n"
|
||||
" float: left;\n"
|
||||
" margin-top: 0;\n"
|
||||
" margin-bottom: 0;\n"
|
||||
" margin-left: 0;\n"
|
||||
" margin-right: 0;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"div.statcounter dt {\n"
|
||||
" width: 200px;\n"
|
||||
" text-align: center;\n"
|
||||
" font-weight: bold;\n"
|
||||
" border: 0.5px solid #000000;\n"
|
||||
" background-color: #8080ff;\n"
|
||||
" color: #ffffff;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"div.statcounter dd {\n"
|
||||
" width: 200px;\n"
|
||||
" text-align: right;\n"
|
||||
" border: 0.5px solid #000000;\n"
|
||||
" background-color: teal;\n"
|
||||
" color: #ffffff;\n"
|
||||
" margin-left: 0;\n"
|
||||
" margin-right: 0;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"div.statcounter br {\n"
|
||||
" clear: left;\n"
|
||||
"}\n"
|
||||
" </style>\n"
|
||||
" <title>BIND 9 Statistics</title>\n"
|
||||
" </head>\n"
|
||||
" <body>\n"
|
||||
" <div class=\"header\">\n"
|
||||
" <h1>Bind 9 Configuration and Statistics</h1>\n"
|
||||
" </div>\n"
|
||||
"\n"
|
||||
" <br/>\n"
|
||||
"\n"
|
||||
" <table>\n"
|
||||
" <tr class=\"rowh\"><th colspan=\"2\">Times</th></tr>\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td>boot-time</td>\n"
|
||||
" <td><xsl:value-of select=\"server/boot-time\"/></td>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td>current-time</td>\n"
|
||||
" <td><xsl:value-of select=\"server/current-time\"/></td>\n"
|
||||
" </tr>\n"
|
||||
" </table>\n"
|
||||
"\n"
|
||||
" <br/>\n"
|
||||
"\n"
|
||||
" <table>\n"
|
||||
" <tr class=\"rowh\"><th colspan=\"2\">Incoming Requests</th></tr>\n"
|
||||
" <xsl:for-each select=\"server/requests/opcode\">\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td><xsl:value-of select=\"name\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"counter\"/></td>\n"
|
||||
" </tr>\n"
|
||||
" </xsl:for-each>\n"
|
||||
" </table>\n"
|
||||
"\n"
|
||||
" <br/>\n"
|
||||
"\n"
|
||||
" <table>\n"
|
||||
" <tr class=\"rowh\"><th colspan=\"2\">Incoming Queries</th></tr>\n"
|
||||
" <xsl:for-each select=\"server/queries-in/rdtype\">\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td><xsl:value-of select=\"name\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"counter\"/></td>\n"
|
||||
" </tr>\n"
|
||||
" </xsl:for-each>\n"
|
||||
" </table>\n"
|
||||
"\n"
|
||||
" <br/>\n"
|
||||
"\n"
|
||||
" <xsl:for-each select=\"views/view\">\n"
|
||||
" <table>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th colspan=\"2\">Outgoing Queries from View <xsl:value-of select=\"name\"/></th>\n"
|
||||
" </tr>\n"
|
||||
" <xsl:for-each select=\"rdtype\">\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td><xsl:value-of select=\"name\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"counter\"/></td>\n"
|
||||
" </tr>\n"
|
||||
" </xsl:for-each>\n"
|
||||
" </table>\n"
|
||||
" <br/>\n"
|
||||
" </xsl:for-each>\n"
|
||||
"\n"
|
||||
" <br/>\n"
|
||||
"\n"
|
||||
" <div class=\"statcounter\">\n"
|
||||
" <h2>Server Statistics</h2>\n"
|
||||
" <xsl:for-each select=\"server/nsstat\">\n"
|
||||
" <dl>\n"
|
||||
" <dt><xsl:value-of select=\"name\"/></dt>\n"
|
||||
" <dd><xsl:value-of select=\"counter\"/></dd>\n"
|
||||
" </dl>\n"
|
||||
" </xsl:for-each>\n"
|
||||
" <br/>\n"
|
||||
" </div>\n"
|
||||
"\n"
|
||||
" <div class=\"statcounter\">\n"
|
||||
" <h2>Zone Maintenance Statistics</h2>\n"
|
||||
" <xsl:for-each select=\"server/zonestat\">\n"
|
||||
" <dl>\n"
|
||||
" <dt><xsl:value-of select=\"name\"/></dt>\n"
|
||||
" <dd><xsl:value-of select=\"counter\"/></dd>\n"
|
||||
" </dl>\n"
|
||||
" </xsl:for-each>\n"
|
||||
" <br />\n"
|
||||
" </div>\n"
|
||||
"\n"
|
||||
" <div class=\"statcounter\">\n"
|
||||
" <h2>Resolver Statistics (Common)</h2>\n"
|
||||
" <xsl:for-each select=\"server/resstat\">\n"
|
||||
" <dl>\n"
|
||||
" <dt><xsl:value-of select=\"name\"/></dt>\n"
|
||||
" <dd><xsl:value-of select=\"counter\"/></dd>\n"
|
||||
" </dl>\n"
|
||||
" </xsl:for-each>\n"
|
||||
" <br />\n"
|
||||
" </div>\n"
|
||||
"\n"
|
||||
" <xsl:for-each select=\"views/view\">\n"
|
||||
" <div class=\"statcounter\">\n"
|
||||
" <h2>Resolver Statistics for View <xsl:value-of select=\"name\"/></h2>\n"
|
||||
" <xsl:for-each select=\"resstat\">\n"
|
||||
" <dl>\n"
|
||||
" <dt><xsl:value-of select=\"name\"/></dt>\n"
|
||||
" <dd><xsl:value-of select=\"counter\"/></dd>\n"
|
||||
" </dl>\n"
|
||||
" </xsl:for-each>\n"
|
||||
" <br />\n"
|
||||
" </div>\n"
|
||||
" </xsl:for-each>\n"
|
||||
"\n"
|
||||
" <br />\n"
|
||||
"\n"
|
||||
" <xsl:for-each select=\"views/view\">\n"
|
||||
" <table>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th colspan=\"2\">Cache DB RRsets for View <xsl:value-of select=\"name\"/></th>\n"
|
||||
" </tr>\n"
|
||||
" <xsl:for-each select=\"cache/rrset\">\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td><xsl:value-of select=\"name\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"counter\"/></td>\n"
|
||||
" </tr>\n"
|
||||
" </xsl:for-each>\n"
|
||||
" </table>\n"
|
||||
" <br/>\n"
|
||||
" </xsl:for-each>\n"
|
||||
"\n"
|
||||
" <div class=\"statcounter\">\n"
|
||||
" <h2>Socket I/O Statistics</h2>\n"
|
||||
" <xsl:for-each select=\"server/sockstat\">\n"
|
||||
" <dl>\n"
|
||||
" <dt><xsl:value-of select=\"name\"/></dt>\n"
|
||||
" <dd><xsl:value-of select=\"counter\"/></dd>\n"
|
||||
" </dl>\n"
|
||||
" </xsl:for-each>\n"
|
||||
" <br/>\n"
|
||||
" </div>\n"
|
||||
"\n"
|
||||
" <br/>\n"
|
||||
"\n"
|
||||
" <xsl:for-each select=\"views/view\">\n"
|
||||
" <table>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th colspan=\"10\">Zones for View <xsl:value-of select=\"name\"/></th>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th>Name</th>\n"
|
||||
" <th>Class</th>\n"
|
||||
" <th>Serial</th>\n"
|
||||
" <th>Success</th>\n"
|
||||
" <th>Referral</th>\n"
|
||||
" <th>NXRRSET</th>\n"
|
||||
" <th>NXDOMAIN</th>\n"
|
||||
" <th>Failure</th>\n"
|
||||
" <th>XfrReqDone</th>\n"
|
||||
" <th>XfrRej</th>\n"
|
||||
" </tr>\n"
|
||||
" <xsl:for-each select=\"zones/zone\">\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"name\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"rdataclass\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"serial\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"counters/QrySuccess\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"counters/QryReferral\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"counters/QryNxrrset\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"counters/QryNXDOMAIN\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"counters/QryFailure\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"counters/XfrReqDone\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"counters/XfrRej\"/>\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" </xsl:for-each>\n"
|
||||
" </table>\n"
|
||||
" <br/>\n"
|
||||
" </xsl:for-each>\n"
|
||||
"\n"
|
||||
" <br/>\n"
|
||||
"\n"
|
||||
" <table>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th colspan=\"7\">Network Status</th>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th>ID</th>\n"
|
||||
" <th>Name</th>\n"
|
||||
" <th>Type</th>\n"
|
||||
" <th>References</th>\n"
|
||||
" <th>LocalAddress</th>\n"
|
||||
" <th>PeerAddress</th>\n"
|
||||
" <th>State</th>\n"
|
||||
" </tr>\n"
|
||||
" <xsl:for-each select=\"socketmgr/sockets/socket\">\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"id\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"name\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"type\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"references\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"local-address\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"peer-address\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:for-each select=\"states\">\n"
|
||||
" <xsl:value-of select=\".\"/>\n"
|
||||
" </xsl:for-each>\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" </xsl:for-each>\n"
|
||||
" </table>\n"
|
||||
" <br/>\n"
|
||||
" <table>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th colspan=\"2\">Task Manager Configuration</th>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td>Thread-Model</td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"taskmgr/thread-model/type\"/>\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td>Worker Threads</td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"taskmgr/thread-model/worker-threads\"/>\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td>Default Quantum</td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"taskmgr/thread-model/default-quantum\"/>\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td>Tasks Running</td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"taskmgr/thread-model/tasks-running\"/>\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" </table>\n"
|
||||
" <br/>\n"
|
||||
" <table>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th colspan=\"5\">Tasks</th>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th>ID</th>\n"
|
||||
" <th>Name</th>\n"
|
||||
" <th>References</th>\n"
|
||||
" <th>State</th>\n"
|
||||
" <th>Quantum</th>\n"
|
||||
" </tr>\n"
|
||||
" <xsl:for-each select=\"taskmgr/tasks/task\">\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"id\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"name\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"references\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"state\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"quantum\"/>\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" </xsl:for-each>\n"
|
||||
" </table>\n"
|
||||
" <br />\n"
|
||||
" <table>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th colspan=\"4\">Memory Usage Summary</th>\n"
|
||||
" </tr>\n"
|
||||
" <xsl:for-each select=\"memory/summary/*\">\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td><xsl:value-of select=\"name()\"/></td>\n"
|
||||
" <td><xsl:value-of select=\".\"/></td>\n"
|
||||
" </tr>\n"
|
||||
" </xsl:for-each>\n"
|
||||
" </table>\n"
|
||||
" <br />\n"
|
||||
" <table>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th colspan=\"10\">Memory Contexts</th>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th>ID</th>\n"
|
||||
" <th>Name</th>\n"
|
||||
" <th>References</th>\n"
|
||||
" <th>TotalUse</th>\n"
|
||||
" <th>InUse</th>\n"
|
||||
" <th>MaxUse</th>\n"
|
||||
" <th>BlockSize</th>\n"
|
||||
" <th>Pools</th>\n"
|
||||
" <th>HiWater</th>\n"
|
||||
" <th>LoWater</th>\n"
|
||||
" </tr>\n"
|
||||
" <xsl:for-each select=\"memory/contexts/context\">\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"id\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"name\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"references\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"total\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"inuse\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"maxinuse\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"blocksize\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"pools\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"hiwater\"/>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
" <xsl:value-of select=\"lowater\"/>\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" </xsl:for-each>\n"
|
||||
" </table>\n"
|
||||
"\n"
|
||||
" </body>\n"
|
||||
" </html>\n"
|
||||
" </xsl:template>\n"
|
||||
"</xsl:stylesheet>\n";
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2001-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: builtin.c,v 1.5.18.5 2005/08/23 04:12:38 marka Exp $ */
|
||||
/* $Id: builtin.c,v 1.12 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
/*! \file
|
||||
* \brief
|
||||
|
||||
+203
-42
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2009, 2011 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2009 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.219.18.35 2011/05/06 23:45:18 tbox Exp $ */
|
||||
/* $Id: client.c,v 1.259.12.3 2009/01/29 22:40:33 jinmei Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <isc/once.h>
|
||||
#include <isc/platform.h>
|
||||
#include <isc/print.h>
|
||||
#include <isc/stats.h>
|
||||
#include <isc/stdio.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/task.h>
|
||||
@@ -41,6 +42,7 @@
|
||||
#include <dns/rdatalist.h>
|
||||
#include <dns/rdataset.h>
|
||||
#include <dns/resolver.h>
|
||||
#include <dns/stats.h>
|
||||
#include <dns/tsig.h>
|
||||
#include <dns/view.h>
|
||||
#include <dns/zone.h>
|
||||
@@ -48,6 +50,7 @@
|
||||
#include <named/interfacemgr.h>
|
||||
#include <named/log.h>
|
||||
#include <named/notify.h>
|
||||
#include <named/os.h>
|
||||
#include <named/server.h>
|
||||
#include <named/update.h>
|
||||
|
||||
@@ -119,9 +122,9 @@ struct ns_clientmgr {
|
||||
isc_mutex_t lock;
|
||||
/* Locked by lock. */
|
||||
isc_boolean_t exiting;
|
||||
client_list_t active; /*%< Active clients */
|
||||
client_list_t recursing; /*%< Recursing clients */
|
||||
client_list_t inactive; /*%< To be recycled */
|
||||
client_list_t active; /*%< Active clients */
|
||||
client_list_t recursing; /*%< Recursing clients */
|
||||
client_list_t inactive; /*%< To be recycled */
|
||||
#if NMCTXS > 0
|
||||
/*%< mctx pool for clients. */
|
||||
unsigned int nextmctx;
|
||||
@@ -463,6 +466,8 @@ exit_check(ns_client_t *client) {
|
||||
|
||||
if (client->state == client->newstate) {
|
||||
client->newstate = NS_CLIENTSTATE_MAX;
|
||||
if (client->needshutdown)
|
||||
isc_task_shutdown(client->task);
|
||||
goto unlock;
|
||||
}
|
||||
}
|
||||
@@ -519,6 +524,14 @@ exit_check(ns_client_t *client) {
|
||||
|
||||
CTRACE("free");
|
||||
client->magic = 0;
|
||||
/*
|
||||
* Check that there are no other external references to
|
||||
* the memory context.
|
||||
*/
|
||||
if (ns_g_clienttest && isc_mem_references(client->mctx) != 1) {
|
||||
isc_mem_stats(client->mctx, stderr);
|
||||
INSIST(0);
|
||||
}
|
||||
isc_mem_putanddetach(&client->mctx, client, sizeof(*client));
|
||||
|
||||
goto unlock;
|
||||
@@ -592,6 +605,7 @@ client_shutdown(isc_task_t *task, isc_event_t *event) {
|
||||
}
|
||||
|
||||
client->newstate = NS_CLIENTSTATE_FREED;
|
||||
client->needshutdown = ISC_FALSE;
|
||||
(void)exit_check(client);
|
||||
}
|
||||
|
||||
@@ -619,7 +633,6 @@ ns_client_endrequest(ns_client_t *client) {
|
||||
dns_message_puttemprdataset(client->message, &client->opt);
|
||||
}
|
||||
|
||||
client->signer = NULL;
|
||||
client->udpsize = 512;
|
||||
client->extflags = 0;
|
||||
client->ednsversion = -1;
|
||||
@@ -641,11 +654,11 @@ ns_client_checkactive(ns_client_t *client) {
|
||||
/*
|
||||
* This client object should normally go inactive
|
||||
* at this point, but if we have fewer active client
|
||||
* objects than desired due to earlier quota exhaustion,
|
||||
* objects than desired due to earlier quota exhaustion,
|
||||
* keep it active to make up for the shortage.
|
||||
*/
|
||||
isc_boolean_t need_another_client = ISC_FALSE;
|
||||
if (TCP_CLIENT(client)) {
|
||||
if (TCP_CLIENT(client) && !ns_g_clienttest) {
|
||||
LOCK(&client->interface->lock);
|
||||
if (client->interface->ntcpcurrent <
|
||||
client->interface->ntcptarget)
|
||||
@@ -907,6 +920,7 @@ ns_client_send(ns_client_t *client) {
|
||||
unsigned char sendbuf[SEND_BUFFER_SIZE];
|
||||
unsigned int dnssec_opts;
|
||||
unsigned int preferred_glue;
|
||||
isc_boolean_t opt_included = ISC_FALSE;
|
||||
|
||||
REQUIRE(NS_CLIENT_VALID(client));
|
||||
|
||||
@@ -944,11 +958,10 @@ ns_client_send(ns_client_t *client) {
|
||||
result = dns_message_renderbegin(client->message, &cctx, &buffer);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto done;
|
||||
|
||||
if (client->opt != NULL) {
|
||||
result = dns_message_setopt(client->message, client->opt);
|
||||
/*
|
||||
* XXXRTH dns_message_setopt() should probably do this...
|
||||
*/
|
||||
opt_included = ISC_TRUE;
|
||||
client->opt = NULL;
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto done;
|
||||
@@ -1004,6 +1017,25 @@ ns_client_send(ns_client_t *client) {
|
||||
result = client_sendpkg(client, &tcpbuffer);
|
||||
} else
|
||||
result = client_sendpkg(client, &buffer);
|
||||
|
||||
/* update statistics (XXXJT: is it okay to access message->xxxkey?) */
|
||||
isc_stats_increment(ns_g_server->nsstats, dns_nsstatscounter_response);
|
||||
if (opt_included) {
|
||||
isc_stats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_edns0out);
|
||||
}
|
||||
if (client->message->tsigkey != NULL) {
|
||||
isc_stats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_tsigout);
|
||||
}
|
||||
if (client->message->sig0key != NULL) {
|
||||
isc_stats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_sig0out);
|
||||
}
|
||||
if ((client->message->flags & DNS_MESSAGEFLAG_TC) != 0)
|
||||
isc_stats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_truncatedresp);
|
||||
|
||||
if (result == ISC_R_SUCCESS)
|
||||
return;
|
||||
|
||||
@@ -1180,11 +1212,46 @@ client_addopt(ns_client_t *client) {
|
||||
*/
|
||||
rdatalist->ttl = (client->extflags & DNS_MESSAGEEXTFLAG_REPLYPRESERVE);
|
||||
|
||||
/*
|
||||
* No EDNS options in the default case.
|
||||
*/
|
||||
rdata->data = NULL;
|
||||
rdata->length = 0;
|
||||
/* Set EDNS options if applicable */
|
||||
if (client->attributes & NS_CLIENTATTR_WANTNSID &&
|
||||
(ns_g_server->server_id != NULL ||
|
||||
ns_g_server->server_usehostname)) {
|
||||
/*
|
||||
* Space required for NSID data:
|
||||
* 2 bytes for opt code
|
||||
* + 2 bytes for NSID length
|
||||
* + NSID itself
|
||||
*/
|
||||
char nsid[BUFSIZ], *nsidp;
|
||||
isc_buffer_t *buffer = NULL;
|
||||
|
||||
if (ns_g_server->server_usehostname) {
|
||||
isc_result_t result;
|
||||
result = ns_os_gethostname(nsid, sizeof(nsid));
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto no_nsid;
|
||||
}
|
||||
nsidp = nsid;
|
||||
} else
|
||||
nsidp = ns_g_server->server_id;
|
||||
|
||||
rdata->length = strlen(nsidp) + 4;
|
||||
result = isc_buffer_allocate(client->mctx, &buffer,
|
||||
rdata->length);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto no_nsid;
|
||||
|
||||
isc_buffer_putuint16(buffer, DNS_OPT_NSID);
|
||||
isc_buffer_putuint16(buffer, strlen(nsidp));
|
||||
isc_buffer_putstr(buffer, nsidp);
|
||||
rdata->data = buffer->base;
|
||||
dns_message_takebuffer(client->message, &buffer);
|
||||
} else {
|
||||
no_nsid:
|
||||
rdata->data = NULL;
|
||||
rdata->length = 0;
|
||||
}
|
||||
|
||||
rdata->rdclass = rdatalist->rdclass;
|
||||
rdata->type = rdatalist->type;
|
||||
rdata->flags = 0;
|
||||
@@ -1254,14 +1321,14 @@ ns_client_isself(dns_view_t *myview, dns_tsigkey_t *mykey,
|
||||
isc_boolean_t match;
|
||||
isc_result_t result;
|
||||
|
||||
tsig = &mykey->name;
|
||||
result = dns_view_gettsig(view, tsig, &key);
|
||||
result = dns_view_gettsig(view, &mykey->name, &key);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
continue;
|
||||
match = dst_key_compare(mykey->key, key->key);
|
||||
dns_tsigkey_detach(&key);
|
||||
if (!match)
|
||||
continue;
|
||||
tsig = dns_tsigkey_identity(mykey);
|
||||
}
|
||||
|
||||
if (allowed(&netsrc, tsig, view->matchclients) &&
|
||||
@@ -1285,13 +1352,16 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
isc_buffer_t tbuffer;
|
||||
dns_view_t *view;
|
||||
dns_rdataset_t *opt;
|
||||
isc_boolean_t ra; /* Recursion available. */
|
||||
dns_name_t *signame;
|
||||
isc_boolean_t ra; /* Recursion available. */
|
||||
isc_netaddr_t netaddr;
|
||||
isc_netaddr_t destaddr;
|
||||
int match;
|
||||
dns_messageid_t id;
|
||||
unsigned int flags;
|
||||
isc_boolean_t notimp;
|
||||
dns_rdata_t rdata;
|
||||
isc_uint16_t optcode;
|
||||
|
||||
REQUIRE(event != NULL);
|
||||
client = event->ev_arg;
|
||||
@@ -1440,6 +1510,20 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Update some statistics counters. Don't count responses.
|
||||
*/
|
||||
if (isc_sockaddr_pf(&client->peeraddr) == PF_INET) {
|
||||
isc_stats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_requestv4);
|
||||
} else {
|
||||
isc_stats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_requestv6);
|
||||
}
|
||||
if (TCP_CLIENT(client))
|
||||
isc_stats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_tcp);
|
||||
|
||||
/*
|
||||
* It's a request. Parse it.
|
||||
*/
|
||||
@@ -1453,6 +1537,8 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
dns_opcodestats_increment(ns_g_server->opcodestats,
|
||||
client->message->opcode);
|
||||
switch (client->message->opcode) {
|
||||
case dns_opcode_query:
|
||||
case dns_opcode_update:
|
||||
@@ -1500,12 +1586,35 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
*/
|
||||
client->ednsversion = (opt->ttl & 0x00FF0000) >> 16;
|
||||
if (client->ednsversion > 0) {
|
||||
isc_stats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_badednsver);
|
||||
result = client_addopt(client);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
result = DNS_R_BADVERS;
|
||||
ns_client_error(client, result);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/* Check for NSID request */
|
||||
result = dns_rdataset_first(opt);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
dns_rdata_init(&rdata);
|
||||
dns_rdataset_current(opt, &rdata);
|
||||
if (rdata.length >= 2) {
|
||||
isc_buffer_t nsidbuf;
|
||||
isc_buffer_init(&nsidbuf,
|
||||
rdata.data, rdata.length);
|
||||
isc_buffer_add(&nsidbuf, rdata.length);
|
||||
optcode = isc_buffer_getuint16(&nsidbuf);
|
||||
if (optcode == DNS_OPT_NSID)
|
||||
client->attributes |=
|
||||
NS_CLIENTATTR_WANTNSID;
|
||||
}
|
||||
}
|
||||
|
||||
isc_stats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_edns0in);
|
||||
|
||||
/*
|
||||
* Create an OPT for our reply.
|
||||
*/
|
||||
@@ -1592,10 +1701,11 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
client->message->rdclass == dns_rdataclass_any)
|
||||
{
|
||||
dns_name_t *tsig = NULL;
|
||||
|
||||
sigresult = dns_message_rechecksig(client->message,
|
||||
view);
|
||||
if (sigresult == ISC_R_SUCCESS)
|
||||
tsig = client->message->tsigname;
|
||||
tsig = dns_tsigkey_identity(client->message->tsigkey);
|
||||
|
||||
if (allowed(&netaddr, tsig, view->matchclients) &&
|
||||
allowed(&destaddr, tsig, view->matchdestinations) &&
|
||||
@@ -1649,6 +1759,17 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
client->signer = NULL;
|
||||
dns_name_init(&client->signername, NULL);
|
||||
result = dns_message_signer(client->message, &client->signername);
|
||||
if (result != ISC_R_NOTFOUND) {
|
||||
signame = NULL;
|
||||
if (dns_message_gettsig(client->message, &signame) != NULL) {
|
||||
isc_stats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_tsigin);
|
||||
} else {
|
||||
isc_stats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_sig0in);
|
||||
}
|
||||
|
||||
}
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
|
||||
NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3),
|
||||
@@ -1665,24 +1786,42 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
} else {
|
||||
char tsigrcode[64];
|
||||
isc_buffer_t b;
|
||||
dns_name_t *name = NULL;
|
||||
dns_rcode_t status;
|
||||
isc_result_t tresult;
|
||||
|
||||
/* There is a signature, but it is bad. */
|
||||
if (dns_message_gettsig(client->message, &name) != NULL) {
|
||||
isc_stats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_invalidsig);
|
||||
signame = NULL;
|
||||
if (dns_message_gettsig(client->message, &signame) != NULL) {
|
||||
char namebuf[DNS_NAME_FORMATSIZE];
|
||||
dns_name_format(name, namebuf, sizeof(namebuf));
|
||||
char cnamebuf[DNS_NAME_FORMATSIZE];
|
||||
dns_name_format(signame, namebuf, sizeof(namebuf));
|
||||
status = client->message->tsigstatus;
|
||||
isc_buffer_init(&b, tsigrcode, sizeof(tsigrcode) - 1);
|
||||
tresult = dns_tsigrcode_totext(status, &b);
|
||||
INSIST(tresult == ISC_R_SUCCESS);
|
||||
tsigrcode[isc_buffer_usedlength(&b)] = '\0';
|
||||
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
|
||||
NS_LOGMODULE_CLIENT, ISC_LOG_ERROR,
|
||||
"request has invalid signature: "
|
||||
"TSIG %s: %s (%s)", namebuf,
|
||||
isc_result_totext(result), tsigrcode);
|
||||
if (client->message->tsigkey->generated) {
|
||||
dns_name_format(client->message->tsigkey->creator,
|
||||
cnamebuf, sizeof(cnamebuf));
|
||||
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
|
||||
NS_LOGMODULE_CLIENT,
|
||||
ISC_LOG_ERROR,
|
||||
"request has invalid signature: "
|
||||
"TSIG %s (%s): %s (%s)", namebuf,
|
||||
cnamebuf,
|
||||
isc_result_totext(result),
|
||||
tsigrcode);
|
||||
} else {
|
||||
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
|
||||
NS_LOGMODULE_CLIENT,
|
||||
ISC_LOG_ERROR,
|
||||
"request has invalid signature: "
|
||||
"TSIG %s: %s (%s)", namebuf,
|
||||
isc_result_totext(result),
|
||||
tsigrcode);
|
||||
}
|
||||
} else {
|
||||
status = client->message->sig0status;
|
||||
isc_buffer_init(&b, tsigrcode, sizeof(tsigrcode) - 1);
|
||||
@@ -1716,9 +1855,17 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
ra = ISC_FALSE;
|
||||
if (client->view->resolver != NULL &&
|
||||
client->view->recursion == ISC_TRUE &&
|
||||
ns_client_checkaclsilent(client, client->view->recursionacl,
|
||||
ns_client_checkaclsilent(client, NULL,
|
||||
client->view->recursionacl,
|
||||
ISC_TRUE) == ISC_R_SUCCESS &&
|
||||
ns_client_checkaclsilent(client, client->view->queryacl,
|
||||
ns_client_checkaclsilent(client, NULL,
|
||||
client->view->queryacl,
|
||||
ISC_TRUE) == ISC_R_SUCCESS &&
|
||||
ns_client_checkaclsilent(client, &client->interface->addr,
|
||||
client->view->recursiononacl,
|
||||
ISC_TRUE) == ISC_R_SUCCESS &&
|
||||
ns_client_checkaclsilent(client, &client->interface->addr,
|
||||
client->view->queryonacl,
|
||||
ISC_TRUE) == ISC_R_SUCCESS)
|
||||
ra = ISC_TRUE;
|
||||
|
||||
@@ -1805,13 +1952,17 @@ client_timeout(isc_task_t *task, isc_event_t *event) {
|
||||
static isc_result_t
|
||||
get_clientmctx(ns_clientmgr_t *manager, isc_mem_t **mctxp) {
|
||||
isc_mem_t *clientmctx;
|
||||
#if NMCTXS > 0
|
||||
isc_result_t result;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Caller must be holding the manager lock.
|
||||
*/
|
||||
if (ns_g_clienttest) {
|
||||
result = isc_mem_create(0, 0, mctxp);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
isc_mem_setname(*mctxp, "client", NULL);
|
||||
return (result);
|
||||
}
|
||||
#if NMCTXS > 0
|
||||
INSIST(manager->nextmctx < NMCTXS);
|
||||
clientmctx = manager->mctxpool[manager->nextmctx];
|
||||
@@ -1819,6 +1970,7 @@ get_clientmctx(ns_clientmgr_t *manager, isc_mem_t **mctxp) {
|
||||
result = isc_mem_create(0, 0, &clientmctx);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
isc_mem_setname(clientmctx, "client", NULL);
|
||||
|
||||
manager->mctxpool[manager->nextmctx] = clientmctx;
|
||||
}
|
||||
@@ -1935,7 +2087,6 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp) {
|
||||
client->next = NULL;
|
||||
client->shutdown = NULL;
|
||||
client->shutdown_arg = NULL;
|
||||
client->signer = NULL;
|
||||
dns_name_init(&client->signername, NULL);
|
||||
client->mortal = ISC_FALSE;
|
||||
client->tcpquota = NULL;
|
||||
@@ -1968,6 +2119,8 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp) {
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup_query;
|
||||
|
||||
client->needshutdown = ns_g_clienttest;
|
||||
|
||||
CTRACE("create");
|
||||
|
||||
*clientp = client;
|
||||
@@ -2058,6 +2211,7 @@ client_newconn(isc_task_t *task, isc_event_t *event) {
|
||||
*/
|
||||
if (nevent->result == ISC_R_SUCCESS) {
|
||||
client->tcpsocket = nevent->newsocket;
|
||||
isc_socket_setname(client->tcpsocket, "client-tcp", NULL);
|
||||
client->state = NS_CLIENTSTATE_READING;
|
||||
INSIST(client->recursionquota == NULL);
|
||||
|
||||
@@ -2070,7 +2224,7 @@ client_newconn(isc_task_t *task, isc_event_t *event) {
|
||||
} else {
|
||||
/*
|
||||
* XXXRTH What should we do? We're trying to accept but
|
||||
* it didn't work. If we just give up, then TCP
|
||||
* it didn't work. If we just give up, then TCP
|
||||
* service may eventually stop.
|
||||
*
|
||||
* For now, we just go idle.
|
||||
@@ -2151,7 +2305,7 @@ client_accept(ns_client_t *client) {
|
||||
isc_result_totext(result));
|
||||
/*
|
||||
* XXXRTH What should we do? We're trying to accept but
|
||||
* it didn't work. If we just give up, then TCP
|
||||
* it didn't work. If we just give up, then TCP
|
||||
* service may eventually stop.
|
||||
*
|
||||
* For now, we just go idle.
|
||||
@@ -2388,7 +2542,9 @@ ns_clientmgr_createclients(ns_clientmgr_t *manager, unsigned int n,
|
||||
* Allocate a client. First try to get a recycled one;
|
||||
* if that fails, make a new one.
|
||||
*/
|
||||
client = ISC_LIST_HEAD(manager->inactive);
|
||||
client = NULL;
|
||||
if (!ns_g_clienttest)
|
||||
client = ISC_LIST_HEAD(manager->inactive);
|
||||
if (client != NULL) {
|
||||
MTRACE("recycle");
|
||||
ISC_LIST_UNLINK(manager->inactive, client, link);
|
||||
@@ -2444,8 +2600,8 @@ ns_client_getsockaddr(ns_client_t *client) {
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
ns_client_checkaclsilent(ns_client_t *client, dns_acl_t *acl,
|
||||
isc_boolean_t default_allow)
|
||||
ns_client_checkaclsilent(ns_client_t *client, isc_sockaddr_t *sockaddr,
|
||||
dns_acl_t *acl, isc_boolean_t default_allow)
|
||||
{
|
||||
isc_result_t result;
|
||||
int match;
|
||||
@@ -2458,11 +2614,16 @@ ns_client_checkaclsilent(ns_client_t *client, dns_acl_t *acl,
|
||||
goto deny;
|
||||
}
|
||||
|
||||
isc_netaddr_fromsockaddr(&netaddr, &client->peeraddr);
|
||||
|
||||
if (sockaddr == NULL)
|
||||
isc_netaddr_fromsockaddr(&netaddr, &client->peeraddr);
|
||||
else
|
||||
isc_netaddr_fromsockaddr(&netaddr, sockaddr);
|
||||
|
||||
result = dns_acl_match(&netaddr, client->signer, acl,
|
||||
&ns_g_server->aclenv,
|
||||
&match, NULL);
|
||||
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto deny; /* Internal error, already logged. */
|
||||
if (match > 0)
|
||||
@@ -2477,12 +2638,12 @@ ns_client_checkaclsilent(ns_client_t *client, dns_acl_t *acl,
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
ns_client_checkacl(ns_client_t *client,
|
||||
ns_client_checkacl(ns_client_t *client, isc_sockaddr_t *sockaddr,
|
||||
const char *opname, dns_acl_t *acl,
|
||||
isc_boolean_t default_allow, int log_level)
|
||||
{
|
||||
isc_result_t result =
|
||||
ns_client_checkaclsilent(client, acl, default_allow);
|
||||
ns_client_checkaclsilent(client, sockaddr, acl, default_allow);
|
||||
|
||||
if (result == ISC_R_SUCCESS)
|
||||
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
|
||||
@@ -2505,7 +2666,7 @@ ns_client_name(ns_client_t *client, char *peerbuf, size_t len) {
|
||||
|
||||
void
|
||||
ns_client_logv(ns_client_t *client, isc_logcategory_t *category,
|
||||
isc_logmodule_t *module, int level, const char *fmt, va_list ap)
|
||||
isc_logmodule_t *module, int level, const char *fmt, va_list ap)
|
||||
{
|
||||
char msgbuf[2048];
|
||||
char peerbuf[ISC_SOCKADDR_FORMATSIZE];
|
||||
|
||||
+16
-6
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2009 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: config.c,v 1.47.18.35 2008/09/04 08:03:07 marka Exp $ */
|
||||
/* $Id: config.c,v 1.93.14.2 2009/03/17 23:47:28 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -69,7 +69,7 @@ options {\n\
|
||||
memstatistics-file \"named.memstats\";\n\
|
||||
multiple-cnames no;\n\
|
||||
# named-xfer <obsolete>;\n\
|
||||
# pid-file \"" NS_LOCALSTATEDIR "/named.pid\"; /* or /lwresd.pid */\n\
|
||||
# pid-file \"" NS_LOCALSTATEDIR "/run/named/named.pid\"; /* or /lwresd.pid */\n\
|
||||
port 53;\n\
|
||||
recursing-file \"named.recursing\";\n\
|
||||
"
|
||||
@@ -99,13 +99,16 @@ options {\n\
|
||||
use-ixfr true;\n\
|
||||
edns-udp-size 4096;\n\
|
||||
max-udp-size 4096;\n\
|
||||
request-nsid false;\n\
|
||||
reserved-sockets 512;\n\
|
||||
\n\
|
||||
/* view */\n\
|
||||
allow-notify {none;};\n\
|
||||
allow-update-forwarding {none;};\n\
|
||||
allow-query-cache { localnets; localhost; };\n\
|
||||
allow-query-cache-on { any; };\n\
|
||||
allow-recursion { localnets; localhost; };\n\
|
||||
allow-recursion-on { any; };\n\
|
||||
# allow-v6-synthesis <obsolete>;\n\
|
||||
# sortlist <none>\n\
|
||||
# topology <none>\n\
|
||||
@@ -122,7 +125,7 @@ options {\n\
|
||||
query-source-v6 address *;\n\
|
||||
notify-source *;\n\
|
||||
notify-source-v6 *;\n\
|
||||
cleaning-interval 60;\n\
|
||||
cleaning-interval 0; /* now meaningless */\n\
|
||||
min-roots 2;\n\
|
||||
lame-ttl 600;\n\
|
||||
max-ncache-ttl 10800; /* 3 hours */\n\
|
||||
@@ -135,21 +138,24 @@ options {\n\
|
||||
check-mx warn;\n\
|
||||
acache-enable no;\n\
|
||||
acache-cleaning-interval 60;\n\
|
||||
max-acache-size 0;\n\
|
||||
max-acache-size 16M;\n\
|
||||
dnssec-enable yes;\n\
|
||||
dnssec-validation no; /* Make yes for 9.5. */ \n\
|
||||
dnssec-validation yes; \n\
|
||||
dnssec-accept-expired no;\n\
|
||||
clients-per-query 10;\n\
|
||||
max-clients-per-query 100;\n\
|
||||
zero-no-soa-ttl-cache no;\n\
|
||||
nsec3-test-zone no;\n\
|
||||
"
|
||||
|
||||
" /* zone */\n\
|
||||
allow-query {any;};\n\
|
||||
allow-query-on {any;};\n\
|
||||
allow-transfer {any;};\n\
|
||||
notify yes;\n\
|
||||
# also-notify <none>\n\
|
||||
notify-delay 5;\n\
|
||||
notify-to-soa no;\n\
|
||||
dialup no;\n\
|
||||
# forward <none>\n\
|
||||
# forwarders <none>\n\
|
||||
@@ -169,6 +175,9 @@ options {\n\
|
||||
min-refresh-time 300;\n\
|
||||
multi-master no;\n\
|
||||
sig-validity-interval 30; /* days */\n\
|
||||
sig-signing-nodes 100;\n\
|
||||
sig-signing-signatures 10;\n\
|
||||
sig-signing-type 65534;\n\
|
||||
zone-statistics false;\n\
|
||||
max-journal-size unlimited;\n\
|
||||
ixfr-from-differences false;\n\
|
||||
@@ -179,6 +188,7 @@ options {\n\
|
||||
check-srv-cname warn;\n\
|
||||
zero-no-soa-ttl yes;\n\
|
||||
update-check-ksk yes;\n\
|
||||
try-tcp-refresh yes; /* BIND 8 compat */\n\
|
||||
};\n\
|
||||
"
|
||||
|
||||
|
||||
+17
-6
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: control.c,v 1.20.10.12 2009/07/11 23:46:06 tbox Exp $ */
|
||||
/* $Id: control.c,v 1.33.266.2 2009/07/11 23:47:17 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -63,6 +63,7 @@ ns_control_docommand(isccc_sexpr_t *message, isc_buffer_t *text) {
|
||||
isccc_sexpr_t *data;
|
||||
char *command;
|
||||
isc_result_t result;
|
||||
int log_level;
|
||||
#ifdef HAVE_LIBSCF
|
||||
ns_smf_want_disable = 0;
|
||||
#endif
|
||||
@@ -83,14 +84,20 @@ ns_control_docommand(isccc_sexpr_t *message, isc_buffer_t *text) {
|
||||
return (result);
|
||||
}
|
||||
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_CONTROL, ISC_LOG_DEBUG(1),
|
||||
"received control channel command '%s'",
|
||||
command);
|
||||
|
||||
/*
|
||||
* Compare the 'command' parameter against all known control commands.
|
||||
*/
|
||||
if (command_compare(command, NS_COMMAND_NULL) ||
|
||||
command_compare(command, NS_COMMAND_STATUS)) {
|
||||
log_level = ISC_LOG_DEBUG(1);
|
||||
} else {
|
||||
log_level = ISC_LOG_INFO;
|
||||
}
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_CONTROL, log_level,
|
||||
"received control channel command '%s'",
|
||||
command);
|
||||
|
||||
if (command_compare(command, NS_COMMAND_RELOAD)) {
|
||||
result = ns_server_reloadcommand(ns_g_server, command, text);
|
||||
} else if (command_compare(command, NS_COMMAND_RECONFIG)) {
|
||||
@@ -158,6 +165,10 @@ ns_control_docommand(isccc_sexpr_t *message, isc_buffer_t *text) {
|
||||
result = ns_server_flushname(ns_g_server, command);
|
||||
} else if (command_compare(command, NS_COMMAND_STATUS)) {
|
||||
result = ns_server_status(ns_g_server, text);
|
||||
} else if (command_compare(command, NS_COMMAND_TSIGLIST)) {
|
||||
result = ns_server_tsiglist(ns_g_server, text);
|
||||
} else if (command_compare(command, NS_COMMAND_TSIGDELETE)) {
|
||||
result = ns_server_tsigdelete(ns_g_server, command, text);
|
||||
} else if (command_compare(command, NS_COMMAND_FREEZE)) {
|
||||
result = ns_server_freeze(ns_g_server, ISC_TRUE, command,
|
||||
text);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2008 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: controlconf.c,v 1.40.18.14 2008/07/23 23:33:02 marka Exp $ */
|
||||
/* $Id: controlconf.c,v 1.60 2008/07/23 23:27:54 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -597,6 +597,7 @@ control_newconn(isc_task_t *task, isc_event_t *event) {
|
||||
}
|
||||
|
||||
sock = nevent->newsocket;
|
||||
isc_socket_setname(sock, "control", NULL);
|
||||
(void)isc_socket_getpeername(sock, &peeraddr);
|
||||
if (listener->type == isc_sockettype_tcp &&
|
||||
!address_ok(&peeraddr, listener->acl)) {
|
||||
@@ -1007,7 +1008,7 @@ update_listener(ns_controls_t *cp, controllistener_t **listenerp,
|
||||
if (control != NULL && type == isc_sockettype_tcp) {
|
||||
allow = cfg_tuple_get(control, "allow");
|
||||
result = cfg_acl_fromconfig(allow, config, ns_g_lctx,
|
||||
aclconfctx, listener->mctx,
|
||||
aclconfctx, listener->mctx, 0,
|
||||
&new_acl);
|
||||
} else {
|
||||
result = dns_acl_any(listener->mctx, &new_acl);
|
||||
@@ -1094,7 +1095,8 @@ add_listener(ns_controls_t *cp, controllistener_t **listenerp,
|
||||
if (control != NULL && type == isc_sockettype_tcp) {
|
||||
allow = cfg_tuple_get(control, "allow");
|
||||
result = cfg_acl_fromconfig(allow, config, ns_g_lctx,
|
||||
aclconfctx, mctx, &new_acl);
|
||||
aclconfctx, mctx, 0,
|
||||
&new_acl);
|
||||
} else {
|
||||
result = dns_acl_any(mctx, &new_acl);
|
||||
}
|
||||
@@ -1143,6 +1145,8 @@ add_listener(ns_controls_t *cp, controllistener_t **listenerp,
|
||||
result = isc_socket_create(ns_g_socketmgr,
|
||||
isc_sockaddr_pf(&listener->address),
|
||||
type, &listener->sock);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
isc_socket_setname(listener->sock, "control", NULL);
|
||||
|
||||
if (result == ISC_R_SUCCESS)
|
||||
result = isc_socket_bind(listener->sock, &listener->address,
|
||||
|
||||
Executable
+57
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env perl
|
||||
#
|
||||
# Copyright (C) 2006-2008 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: convertxsl.pl,v 1.14 2008/07/17 23:43:26 jinmei Exp $
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my $rev = '$Id: convertxsl.pl,v 1.14 2008/07/17 23:43:26 jinmei Exp $';
|
||||
$rev =~ s/\$//g;
|
||||
$rev =~ s/,v//g;
|
||||
$rev =~ s/Id: //;
|
||||
|
||||
my $xsl = "unknown";
|
||||
my $lines = '';
|
||||
|
||||
while (<>) {
|
||||
chomp;
|
||||
# pickout the id for comment.
|
||||
$xsl = $_ if (/<!-- .Id:.* -->/);
|
||||
# convert Id string to a form not recognisable by cvs.
|
||||
$_ =~ s/<!-- .Id:(.*). -->/<!-- \\045Id: $1\\045 -->/;
|
||||
s/[\ \t]+/ /g;
|
||||
s/\>\ \</\>\</g;
|
||||
s/\"/\\\"/g;
|
||||
s/^/\t\"/;
|
||||
s/$/\\n\"/;
|
||||
if ($lines eq "") {
|
||||
$lines .= $_;
|
||||
} else {
|
||||
$lines .= "\n" . $_;
|
||||
}
|
||||
}
|
||||
|
||||
$xsl =~ s/\$//g;
|
||||
$xsl =~ s/<!-- Id: //;
|
||||
$xsl =~ s/ -->.*//;
|
||||
$xsl =~ s/,v//;
|
||||
|
||||
print "/*\n * Generated by $rev \n * From $xsl\n */\n";
|
||||
print 'static char xslmsg[] =',"\n";
|
||||
print $lines;
|
||||
|
||||
print ';', "\n";
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: builtin.h,v 1.2.18.2 2005/04/29 00:15:34 marka Exp $ */
|
||||
/* $Id: builtin.h,v 1.6 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_BUILTIN_H
|
||||
#define NAMED_BUILTIN_H 1
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2009 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.h,v 1.69.18.11 2009/01/19 23:46:14 tbox Exp $ */
|
||||
/* $Id: client.h,v 1.86.120.2 2009/01/18 23:47:34 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_CLIENT_H
|
||||
#define NAMED_CLIENT_H 1
|
||||
@@ -97,6 +97,13 @@ struct ns_client {
|
||||
int nupdates;
|
||||
int nctls;
|
||||
int references;
|
||||
isc_boolean_t needshutdown; /*
|
||||
* Used by clienttest to get
|
||||
* the client to go from
|
||||
* inactive to free state
|
||||
* by shutting down the
|
||||
* client's task.
|
||||
*/
|
||||
unsigned int attributes;
|
||||
isc_task_t * task;
|
||||
dns_view_t * view;
|
||||
@@ -159,6 +166,7 @@ struct ns_client {
|
||||
#define NS_CLIENTATTR_PKTINFO 0x04 /*%< pktinfo is valid */
|
||||
#define NS_CLIENTATTR_MULTICAST 0x08 /*%< recv'd from multicast */
|
||||
#define NS_CLIENTATTR_WANTDNSSEC 0x10 /*%< include dnssec records */
|
||||
#define NS_CLIENTATTR_WANTNSID 0x20 /*%< include nameserver ID */
|
||||
|
||||
extern unsigned int ns_client_requests;
|
||||
|
||||
@@ -266,7 +274,9 @@ ns_client_getsockaddr(ns_client_t *client);
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
ns_client_checkaclsilent(ns_client_t *client,dns_acl_t *acl,
|
||||
ns_client_checkaclsilent(ns_client_t *client,
|
||||
isc_sockaddr_t *sockaddr,
|
||||
dns_acl_t *acl,
|
||||
isc_boolean_t default_allow);
|
||||
|
||||
/*%
|
||||
@@ -274,6 +284,8 @@ ns_client_checkaclsilent(ns_client_t *client,dns_acl_t *acl,
|
||||
*
|
||||
* Check the current client request against 'acl'. If 'acl'
|
||||
* is NULL, allow the request iff 'default_allow' is ISC_TRUE.
|
||||
* If netaddr is NULL, check the ACL against client->peeraddr;
|
||||
* otherwise check it against netaddr.
|
||||
*
|
||||
* Notes:
|
||||
*\li This is appropriate for checking allow-update,
|
||||
@@ -284,6 +296,7 @@ ns_client_checkaclsilent(ns_client_t *client,dns_acl_t *acl,
|
||||
*
|
||||
* Requires:
|
||||
*\li 'client' points to a valid client.
|
||||
*\li 'sockaddr' points to a valid address, or is NULL.
|
||||
*\li 'acl' points to a valid ACL, or is NULL.
|
||||
*
|
||||
* Returns:
|
||||
@@ -294,18 +307,19 @@ ns_client_checkaclsilent(ns_client_t *client,dns_acl_t *acl,
|
||||
|
||||
isc_result_t
|
||||
ns_client_checkacl(ns_client_t *client,
|
||||
isc_sockaddr_t *sockaddr,
|
||||
const char *opname, dns_acl_t *acl,
|
||||
isc_boolean_t default_allow,
|
||||
int log_level);
|
||||
/*%
|
||||
* Like ns_client_checkacl, but also logs the outcome of the
|
||||
* check at log level 'log_level' if denied, and at debug 3
|
||||
* if approved. Log messages will refer to the request as
|
||||
* an 'opname' request.
|
||||
* Like ns_client_checkaclsilent, except the outcome of the check is
|
||||
* logged at log level 'log_level' if denied, and at debug 3 if approved.
|
||||
* Log messages will refer to the request as an 'opname' request.
|
||||
*
|
||||
* Requires:
|
||||
*\li Those of ns_client_checkaclsilent(), and:
|
||||
*
|
||||
*\li 'client' points to a valid client.
|
||||
*\li 'sockaddr' points to a valid address, or is NULL.
|
||||
*\li 'acl' points to a valid ACL, or is NULL.
|
||||
*\li 'opname' points to a null-terminated string.
|
||||
*/
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2001, 2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: config.h,v 1.6.18.6 2006/02/28 03:10:47 marka Exp $ */
|
||||
/* $Id: config.h,v 1.14 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_CONFIG_H
|
||||
#define NAMED_CONFIG_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2001-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: control.h,v 1.14.18.8 2006/03/09 23:46:20 marka Exp $ */
|
||||
/* $Id: control.h,v 1.25 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_CONTROL_H
|
||||
#define NAMED_CONTROL_H 1
|
||||
@@ -47,6 +47,8 @@
|
||||
#define NS_COMMAND_FLUSH "flush"
|
||||
#define NS_COMMAND_FLUSHNAME "flushname"
|
||||
#define NS_COMMAND_STATUS "status"
|
||||
#define NS_COMMAND_TSIGLIST "tsig-list"
|
||||
#define NS_COMMAND_TSIGDELETE "tsig-delete"
|
||||
#define NS_COMMAND_FREEZE "freeze"
|
||||
#define NS_COMMAND_UNFREEZE "unfreeze"
|
||||
#define NS_COMMAND_THAW "thaw"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2008, 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.64.18.6 2008/10/24 01:43:17 tbox Exp $ */
|
||||
/* $Id: globals.h,v 1.80.84.2 2010/06/26 23:46:15 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_GLOBALS_H
|
||||
#define NAMED_GLOBALS_H 1
|
||||
@@ -42,6 +42,10 @@
|
||||
#define INIT(v)
|
||||
#endif
|
||||
|
||||
#ifndef NS_RUN_PID_DIR
|
||||
#define NS_RUN_PID_DIR 1
|
||||
#endif
|
||||
|
||||
EXTERN isc_mem_t * ns_g_mctx INIT(NULL);
|
||||
EXTERN unsigned int ns_g_cpus INIT(0);
|
||||
EXTERN isc_taskmgr_t * ns_g_taskmgr INIT(NULL);
|
||||
@@ -59,6 +63,7 @@ EXTERN isc_timermgr_t * ns_g_timermgr INIT(NULL);
|
||||
EXTERN isc_socketmgr_t * ns_g_socketmgr INIT(NULL);
|
||||
EXTERN cfg_parser_t * ns_g_parser INIT(NULL);
|
||||
EXTERN const char * ns_g_version INIT(VERSION);
|
||||
EXTERN const char * ns_g_configargs INIT(CONFIGARGS);
|
||||
EXTERN in_port_t ns_g_port INIT(0);
|
||||
EXTERN in_port_t lwresd_g_listenport INIT(0);
|
||||
|
||||
@@ -107,13 +112,27 @@ EXTERN const char * ns_g_chrootdir INIT(NULL);
|
||||
EXTERN isc_boolean_t ns_g_foreground INIT(ISC_FALSE);
|
||||
EXTERN isc_boolean_t ns_g_logstderr INIT(ISC_FALSE);
|
||||
|
||||
#if NS_RUN_PID_DIR
|
||||
EXTERN const char * ns_g_defaultpidfile INIT(NS_LOCALSTATEDIR
|
||||
"/run/named/"
|
||||
"named.pid");
|
||||
EXTERN const char * lwresd_g_defaultpidfile INIT(NS_LOCALSTATEDIR
|
||||
"/run/lwresd/"
|
||||
"lwresd.pid");
|
||||
#else
|
||||
EXTERN const char * ns_g_defaultpidfile INIT(NS_LOCALSTATEDIR
|
||||
"/run/named.pid");
|
||||
EXTERN const char * lwresd_g_defaultpidfile INIT(NS_LOCALSTATEDIR
|
||||
"/run/lwresd.pid");
|
||||
"/run/lwresd.pid");
|
||||
#endif
|
||||
|
||||
EXTERN const char * ns_g_username INIT(NULL);
|
||||
|
||||
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);
|
||||
|
||||
#undef EXTERN
|
||||
#undef INIT
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: interfacemgr.h,v 1.26.18.4 2005/04/27 05:00:35 sra Exp $ */
|
||||
/* $Id: interfacemgr.h,v 1.33 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_INTERFACEMGR_H
|
||||
#define NAMED_INTERFACEMGR_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: listenlist.h,v 1.11.18.2 2005/04/29 00:15:34 marka Exp $ */
|
||||
/* $Id: listenlist.h,v 1.15 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_LISTENLIST_H
|
||||
#define NAMED_LISTENLIST_H 1
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007, 2009 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: log.h,v 1.21.18.4 2009/09/24 23:46:06 tbox Exp $ */
|
||||
/* $Id: log.h,v 1.25.332.2 2009/01/07 23:47:16 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_LOG_H
|
||||
#define NAMED_LOG_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: logconf.h,v 1.11.18.4 2006/03/02 00:37:21 marka Exp $ */
|
||||
/* $Id: logconf.h,v 1.17 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_LOGCONF_H
|
||||
#define NAMED_LOGCONF_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwaddr.h,v 1.4.18.2 2005/04/29 00:15:35 marka Exp $ */
|
||||
/* $Id: lwaddr.h,v 1.8 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 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: lwdclient.h,v 1.14.18.4 2009/01/19 23:46:14 tbox Exp $ */
|
||||
/* $Id: lwdclient.h,v 1.18.332.2 2009/01/18 23:47:34 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_LWDCLIENT_H
|
||||
#define NAMED_LWDCLIENT_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwresd.h,v 1.13.18.4 2006/03/02 00:37:21 marka Exp $ */
|
||||
/* $Id: lwresd.h,v 1.19 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_LWRESD_H
|
||||
#define NAMED_LWRESD_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwsearch.h,v 1.5.18.2 2005/04/29 00:15:36 marka Exp $ */
|
||||
/* $Id: lwsearch.h,v 1.9 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_LWSEARCH_H
|
||||
#define NAMED_LWSEARCH_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: main.h,v 1.11.18.2 2005/04/29 00:15:37 marka Exp $ */
|
||||
/* $Id: main.h,v 1.15 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_MAIN_H
|
||||
#define NAMED_MAIN_H 1
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007, 2009 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: notify.h,v 1.10.18.4 2009/01/19 23:46:14 tbox Exp $ */
|
||||
/* $Id: notify.h,v 1.14.332.2 2009/01/18 23:47:34 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_NOTIFY_H
|
||||
#define NAMED_NOTIFY_H 1
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Copyright (C) 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -14,7 +14,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: ns_smf_globals.h,v 1.2.2.4 2005/05/13 01:32:46 marka Exp $ */
|
||||
/* $Id: ns_smf_globals.h,v 1.7 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NS_SMF_GLOBALS_H
|
||||
#define NS_SMF_GLOBALS_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: query.h,v 1.36.18.2 2005/04/29 00:15:37 marka Exp $ */
|
||||
/* $Id: query.h,v 1.40 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_QUERY_H
|
||||
#define NAMED_QUERY_H 1
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2009 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.h,v 1.73.18.10 2009/07/11 23:46:06 tbox Exp $ */
|
||||
/* $Id: server.h,v 1.93.120.3 2009/07/11 04:23:53 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_SERVER_H
|
||||
#define NAMED_SERVER_H 1
|
||||
@@ -23,13 +23,14 @@
|
||||
/*! \file */
|
||||
|
||||
#include <isc/log.h>
|
||||
#include <isc/sockaddr.h>
|
||||
#include <isc/magic.h>
|
||||
#include <isc/types.h>
|
||||
#include <isc/quota.h>
|
||||
#include <isc/sockaddr.h>
|
||||
#include <isc/types.h>
|
||||
#include <isc/xml.h>
|
||||
|
||||
#include <dns/types.h>
|
||||
#include <dns/acl.h>
|
||||
#include <dns/types.h>
|
||||
|
||||
#include <named/types.h>
|
||||
|
||||
@@ -90,18 +91,74 @@ struct ns_server {
|
||||
isc_boolean_t flushonshutdown;
|
||||
isc_boolean_t log_queries; /*%< For BIND 8 compatibility */
|
||||
|
||||
isc_uint64_t * querystats; /*%< Query statistics counters */
|
||||
isc_stats_t * nsstats; /*%< Server statistics */
|
||||
dns_stats_t * rcvquerystats; /*% Incoming query statistics */
|
||||
dns_stats_t * opcodestats; /*%< Incoming message statistics */
|
||||
isc_stats_t * zonestats; /*% Zone management statistics */
|
||||
isc_stats_t * resolverstats; /*% Resolver statistics */
|
||||
|
||||
isc_stats_t * sockstats; /*%< Socket statistics */
|
||||
ns_controls_t * controls; /*%< Control channels */
|
||||
unsigned int dispatchgen;
|
||||
ns_dispatchlist_t dispatches;
|
||||
|
||||
dns_acache_t *acache;
|
||||
|
||||
ns_statschannellist_t statschannels;
|
||||
};
|
||||
|
||||
#define NS_SERVER_MAGIC ISC_MAGIC('S','V','E','R')
|
||||
#define NS_SERVER_VALID(s) ISC_MAGIC_VALID(s, NS_SERVER_MAGIC)
|
||||
|
||||
/*%
|
||||
* Server statistics counters. Used as isc_statscounter_t values.
|
||||
*/
|
||||
enum {
|
||||
dns_nsstatscounter_requestv4 = 0,
|
||||
dns_nsstatscounter_requestv6 = 1,
|
||||
dns_nsstatscounter_edns0in = 2,
|
||||
dns_nsstatscounter_badednsver = 3,
|
||||
dns_nsstatscounter_tsigin = 4,
|
||||
dns_nsstatscounter_sig0in = 5,
|
||||
dns_nsstatscounter_invalidsig = 6,
|
||||
dns_nsstatscounter_tcp = 7,
|
||||
|
||||
dns_nsstatscounter_authrej = 8,
|
||||
dns_nsstatscounter_recurserej = 9,
|
||||
dns_nsstatscounter_xfrrej = 10,
|
||||
dns_nsstatscounter_updaterej = 11,
|
||||
|
||||
dns_nsstatscounter_response = 12,
|
||||
dns_nsstatscounter_truncatedresp = 13,
|
||||
dns_nsstatscounter_edns0out = 14,
|
||||
dns_nsstatscounter_tsigout = 15,
|
||||
dns_nsstatscounter_sig0out = 16,
|
||||
|
||||
dns_nsstatscounter_success = 17,
|
||||
dns_nsstatscounter_authans = 18,
|
||||
dns_nsstatscounter_nonauthans = 19,
|
||||
dns_nsstatscounter_referral = 20,
|
||||
dns_nsstatscounter_nxrrset = 21,
|
||||
dns_nsstatscounter_servfail = 22,
|
||||
dns_nsstatscounter_formerr = 23,
|
||||
dns_nsstatscounter_nxdomain = 24,
|
||||
dns_nsstatscounter_recursion = 25,
|
||||
dns_nsstatscounter_duplicate = 26,
|
||||
dns_nsstatscounter_dropped = 27,
|
||||
dns_nsstatscounter_failure = 28,
|
||||
|
||||
dns_nsstatscounter_xfrdone = 29,
|
||||
|
||||
dns_nsstatscounter_updatereqfwd = 30,
|
||||
dns_nsstatscounter_updaterespfwd = 31,
|
||||
dns_nsstatscounter_updatefwdfail = 32,
|
||||
dns_nsstatscounter_updatedone = 33,
|
||||
dns_nsstatscounter_updatefail = 34,
|
||||
dns_nsstatscounter_updatebadprereq = 35,
|
||||
|
||||
dns_nsstatscounter_max = 36
|
||||
};
|
||||
|
||||
void
|
||||
ns_server_create(isc_mem_t *mctx, ns_server_t **serverp);
|
||||
/*%<
|
||||
@@ -203,6 +260,18 @@ ns_server_flushname(ns_server_t *server, char *args);
|
||||
isc_result_t
|
||||
ns_server_status(ns_server_t *server, isc_buffer_t *text);
|
||||
|
||||
/*%
|
||||
* Report a list of dynamic and static tsig keys, per view.
|
||||
*/
|
||||
isc_result_t
|
||||
ns_server_tsiglist(ns_server_t *server, isc_buffer_t *text);
|
||||
|
||||
/*%
|
||||
* Delete a specific key (with optional view).
|
||||
*/
|
||||
isc_result_t
|
||||
ns_server_tsigdelete(ns_server_t *server, char *command, isc_buffer_t *text);
|
||||
|
||||
/*%
|
||||
* Enable or disable updates for a zone.
|
||||
*/
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: sortlist.h,v 1.5.18.4 2006/03/02 00:37:21 marka Exp $ */
|
||||
/* $Id: sortlist.h,v 1.11 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_SORTLIST_H
|
||||
#define NAMED_SORTLIST_H 1
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright (C) 2008 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: statschannel.h,v 1.3 2008/04/03 05:55:51 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_STATSCHANNEL_H
|
||||
#define NAMED_STATSCHANNEL_H 1
|
||||
|
||||
/*! \file
|
||||
* \brief
|
||||
* The statistics channels built-in the name server.
|
||||
*/
|
||||
|
||||
#include <isccc/types.h>
|
||||
|
||||
#include <isccfg/aclconf.h>
|
||||
|
||||
#include <named/types.h>
|
||||
|
||||
#define NS_STATSCHANNEL_HTTPPORT 80
|
||||
|
||||
isc_result_t
|
||||
ns_statschannels_configure(ns_server_t *server, const cfg_obj_t *config,
|
||||
cfg_aclconfctx_t *aclconfctx);
|
||||
/*%<
|
||||
* [Re]configure the statistics channels.
|
||||
*
|
||||
* If it is no longer there but was previously configured, destroy
|
||||
* it here.
|
||||
*
|
||||
* If the IP address or port has changed, destroy the old server
|
||||
* and create a new one.
|
||||
*/
|
||||
|
||||
|
||||
void
|
||||
ns_statschannels_shutdown(ns_server_t *server);
|
||||
/*%<
|
||||
* Initiate shutdown of all the statistics channel listeners.
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
ns_stats_dump(ns_server_t *server, FILE *fp);
|
||||
/*%<
|
||||
* Dump statistics counters managed by the server to the file fp.
|
||||
*/
|
||||
|
||||
#endif /* NAMED_STATSCHANNEL_H */
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: tkeyconf.h,v 1.10.18.4 2006/03/02 00:37:21 marka Exp $ */
|
||||
/* $Id: tkeyconf.h,v 1.16 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NS_TKEYCONF_H
|
||||
#define NS_TKEYCONF_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: tsigconf.h,v 1.10.18.4 2006/03/02 00:37:21 marka Exp $ */
|
||||
/* $Id: tsigconf.h,v 1.16 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NS_TSIGCONF_H
|
||||
#define NS_TSIGCONF_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: types.h,v 1.21.18.2 2005/04/29 00:15:38 marka Exp $ */
|
||||
/* $Id: types.h,v 1.29 2008/01/17 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_TYPES_H
|
||||
#define NAMED_TYPES_H 1
|
||||
@@ -28,6 +28,8 @@ typedef struct ns_client ns_client_t;
|
||||
typedef struct ns_clientmgr ns_clientmgr_t;
|
||||
typedef struct ns_query ns_query_t;
|
||||
typedef struct ns_server ns_server_t;
|
||||
typedef struct ns_xmld ns_xmld_t;
|
||||
typedef struct ns_xmldmgr ns_xmldmgr_t;
|
||||
typedef struct ns_interface ns_interface_t;
|
||||
typedef struct ns_interfacemgr ns_interfacemgr_t;
|
||||
typedef struct ns_lwresd ns_lwresd_t;
|
||||
@@ -39,5 +41,6 @@ typedef struct ns_lwsearchctx ns_lwsearchctx_t;
|
||||
typedef struct ns_controls ns_controls_t;
|
||||
typedef struct ns_dispatch ns_dispatch_t;
|
||||
typedef ISC_LIST(ns_dispatch_t) ns_dispatchlist_t;
|
||||
|
||||
typedef struct ns_statschannel ns_statschannel_t;
|
||||
typedef ISC_LIST(ns_statschannel_t) ns_statschannellist_t;
|
||||
#endif /* NAMED_TYPES_H */
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user