Compare commits
1885 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0541399136 | ||
|
|
0a92490229 | ||
|
|
702217e3c7 | ||
|
|
e395d9662a | ||
|
|
09b149372c | ||
|
|
72c5b41bc3 | ||
|
|
18ad0be608 | ||
|
|
997e3043ac | ||
|
|
3e09d1d570 | ||
|
|
4e39e29c58 | ||
|
|
09186134ba | ||
|
|
6b15a77141 | ||
|
|
0527ba3ab2 | ||
|
|
629ace4fad | ||
|
|
81f3d26d18 | ||
|
|
95dc187b51 | ||
|
|
bca93e302d | ||
|
|
3b2b1d11e8 | ||
|
|
1387860b7f | ||
|
|
0b7abafe7a | ||
|
|
507b51cd25 | ||
|
|
986e08461a | ||
|
|
7adc458eb7 | ||
|
|
b32492a4e6 | ||
|
|
47a1536eb6 | ||
|
|
b3a954b6a9 | ||
|
|
246fc8e737 | ||
|
|
fd79558bbe | ||
|
|
ff73202c55 | ||
|
|
1d2966a16e | ||
|
|
d1e5bece78 | ||
|
|
014dab1f70 | ||
|
|
4f6fcbae60 | ||
|
|
f1d1a0166b | ||
|
|
5b6715ebbe | ||
|
|
a4329ee066 | ||
|
|
071b19cda5 | ||
|
|
cd241b9fe5 | ||
|
|
d4e867750d | ||
|
|
ef69841ab6 | ||
|
|
1de22fb5ea | ||
|
|
81a0ff9825 | ||
|
|
da8fd41fbf | ||
|
|
782457f8aa | ||
|
|
90d42c633a | ||
|
|
29b1ebf435 | ||
|
|
23dc195797 | ||
|
|
8e7ed44c3b | ||
|
|
2ef2b4dbcf | ||
|
|
f1e151afbb | ||
|
|
f96ae14f2e | ||
|
|
f921681dc8 | ||
|
|
a764b8dcc9 | ||
|
|
977c1ea909 | ||
|
|
e556d88e1e | ||
|
|
9a080e3db2 | ||
|
|
906685e44d | ||
|
|
a5666a460a | ||
|
|
71a6dc3e49 | ||
|
|
de291e9ffb | ||
|
|
23ea2f27cd | ||
|
|
29542405d2 | ||
|
|
2a7e80bf21 | ||
|
|
9c52f0ff94 | ||
|
|
97ae84549b | ||
|
|
91a7efa2fd | ||
|
|
60dae1ab5d | ||
|
|
e8d28c7e97 | ||
|
|
bf80cd7bef | ||
|
|
41dfc19af1 | ||
|
|
e191633041 | ||
|
|
6733e03bd1 | ||
|
|
8a07b18eeb | ||
|
|
1fcf8e160c | ||
|
|
e0487fb011 | ||
|
|
fe61b795ea | ||
|
|
0923050013 | ||
|
|
c74b69a6b1 | ||
|
|
2cda1b1cc7 | ||
|
|
9327364d48 | ||
|
|
f382db00cf | ||
|
|
ddc245c441 | ||
|
|
cdeaf5e36f | ||
|
|
6fb736f4b0 | ||
|
|
710fd09b10 | ||
|
|
d9843b83d8 | ||
|
|
8735a488ef | ||
|
|
de1f9075a1 | ||
|
|
2729ea6849 | ||
|
|
feabde6562 | ||
|
|
3eafe5ed35 | ||
|
|
a9737ba865 | ||
|
|
0e64d01cdc | ||
|
|
56afeda680 | ||
|
|
f51f736644 | ||
|
|
ffb058f5c6 | ||
|
|
7400183ab3 | ||
|
|
b72f50e7c0 | ||
|
|
f52e2cc5df | ||
|
|
b65ec3e90d | ||
|
|
dfdb6a9e9b | ||
|
|
279b1757e9 | ||
|
|
29f69a8629 | ||
|
|
1e5057fcb9 | ||
|
|
ce2736a02b | ||
|
|
bc51df6135 | ||
|
|
08c4e48efe | ||
|
|
bb271f890f | ||
|
|
48bc2a0b9f | ||
|
|
e8c49b01e4 | ||
|
|
2b251dd453 | ||
|
|
07e5ce1185 | ||
|
|
c3ced80f10 | ||
|
|
a8f7598129 | ||
|
|
9e338c377f | ||
|
|
0acb0b2cff | ||
|
|
41b9ef69ae | ||
|
|
02f1601c2c | ||
|
|
9fceeebc72 | ||
|
|
efd6462e33 | ||
|
|
1e14d03284 | ||
|
|
f224aefea3 | ||
|
|
c819d94359 | ||
|
|
56b56e1dd4 | ||
|
|
e26df4eb8b | ||
|
|
c5f88eed14 | ||
|
|
4aa807e80d | ||
|
|
43f99232a3 | ||
|
|
c4e784407c | ||
|
|
b702be914e | ||
|
|
e08cf589d1 | ||
|
|
55c3d7d70e | ||
|
|
150c5c32cd | ||
|
|
ae98afa369 | ||
|
|
420b395fa0 | ||
|
|
c54a22e64d | ||
|
|
458d1cf9a0 | ||
|
|
0b89d9e3d3 | ||
|
|
bb632f80ab | ||
|
|
979fc57500 | ||
|
|
401ad7a960 | ||
|
|
ee16a9824c | ||
|
|
4f70264d8d | ||
|
|
73f2356a90 | ||
|
|
d6f2a7d2bd | ||
|
|
b05ed73c93 | ||
|
|
999b0e7d1c | ||
|
|
8d960e2b4a | ||
|
|
3f9a46807e | ||
|
|
30454c2524 | ||
|
|
84ce142bc5 | ||
|
|
ed5ea48932 | ||
|
|
1e5170a12d | ||
|
|
73dd742501 | ||
|
|
0dc87f465d | ||
|
|
80a2e4ed06 | ||
|
|
d7f5dc5d41 | ||
|
|
73f6bd6c8c | ||
|
|
5c11233b61 | ||
|
|
08d50f361d | ||
|
|
18f81d31b8 | ||
|
|
18b31b38ae | ||
|
|
6f3644ece7 | ||
|
|
4473673e78 | ||
|
|
c9e5acf34b | ||
|
|
1c48da96a3 | ||
|
|
a6744ad04d | ||
|
|
2d4b4cab37 | ||
|
|
7510afad31 | ||
|
|
162e23c017 | ||
|
|
8d8b80389a | ||
|
|
01000c626a | ||
|
|
1f33ceb989 | ||
|
|
b4fe8b528c | ||
|
|
ecd644c312 | ||
|
|
ff949f50d4 | ||
|
|
d1291ede77 | ||
|
|
6e3c5522ae | ||
|
|
fc258391ab | ||
|
|
fcef5293d2 | ||
|
|
c47f7ded3a | ||
|
|
fb8a001d0f | ||
|
|
41bce38c25 | ||
|
|
634e8a7c99 | ||
|
|
5788284cb8 | ||
|
|
527e63231e | ||
|
|
47addc0e9c | ||
|
|
fc36e4d54b | ||
|
|
9c0798ba63 | ||
|
|
87877a464c | ||
|
|
696e426c27 | ||
|
|
59aeb87035 | ||
|
|
5a648e8bc2 | ||
|
|
adbaa771bd | ||
|
|
33288720bd | ||
|
|
9106ea68af | ||
|
|
d15b766a9b | ||
|
|
99dcc249b9 | ||
|
|
9ae09be40e | ||
|
|
854df78468 | ||
|
|
c12f226142 | ||
|
|
346275086d | ||
|
|
9b43a690b5 | ||
|
|
b01218b1bd | ||
|
|
a0f0e9c186 | ||
|
|
a4f24d6aa6 | ||
|
|
6dbfdd479b | ||
|
|
5ca13ca96c | ||
|
|
ca587379cd | ||
|
|
0dd8e92824 | ||
|
|
47289f9dc1 | ||
|
|
af40ef5d01 | ||
|
|
0a61938a98 | ||
|
|
0c2ec376cd | ||
|
|
893d7e7b21 | ||
|
|
8a805888e9 | ||
|
|
b852502b15 | ||
|
|
f84f4ba3df | ||
|
|
d9c05810b6 | ||
|
|
9a581e09eb | ||
|
|
a79de84fe1 | ||
|
|
b3eb875aad | ||
|
|
2e98c04405 | ||
|
|
01fc91e696 | ||
|
|
7cb3c5e476 | ||
|
|
f0a5941fa9 | ||
|
|
d566e3ce9b | ||
|
|
b6cb449936 | ||
|
|
14cb60c197 | ||
|
|
f9ff0578d9 | ||
|
|
152b2275aa | ||
|
|
825a111396 | ||
|
|
dd74c0b04a | ||
|
|
af767241c5 | ||
|
|
e327a10c1a | ||
|
|
79e8aee551 | ||
|
|
d63f4c5457 | ||
|
|
69a46dbced | ||
|
|
3bd000a477 | ||
|
|
1a877e71fc | ||
|
|
d5ad178122 | ||
|
|
a098c9e62a | ||
|
|
7bbb8f2ec2 | ||
|
|
1b1df14c88 | ||
|
|
80bd93ea22 | ||
|
|
32a8d3517a | ||
|
|
fa723b7c0f | ||
|
|
520ccb71a6 | ||
|
|
9a132c0777 | ||
|
|
990ecfa939 | ||
|
|
0a241539ac | ||
|
|
84fcd60d38 | ||
|
|
20e7a0cd43 | ||
|
|
e0bd646ca8 | ||
|
|
afb61d9bb8 | ||
|
|
5da432cb53 | ||
|
|
d68e56f210 | ||
|
|
45279488f6 | ||
|
|
1df1494d5c | ||
|
|
9364eb1b97 | ||
|
|
2096741a81 | ||
|
|
e8f7a6006c | ||
|
|
7fc5684787 | ||
|
|
6a4b3012c3 | ||
|
|
4748fe5529 | ||
|
|
25f65407f4 | ||
|
|
f481323e93 | ||
|
|
d6114b474c | ||
|
|
3a11a25bc0 | ||
|
|
482699b073 | ||
|
|
38f1fc2357 | ||
|
|
8283c44c5c | ||
|
|
9f82b3c68e | ||
|
|
027d33f0bc | ||
|
|
ee98a6e6e8 | ||
|
|
b6d7e10f58 | ||
|
|
47e37d8ebd | ||
|
|
03bebf4833 | ||
|
|
5c50ff5e35 | ||
|
|
388933bf08 | ||
|
|
43d7f1111c | ||
|
|
11cbece08f | ||
|
|
08e9e8a4ec | ||
|
|
5a70eb4550 | ||
|
|
aad4048c30 | ||
|
|
745b0243ff | ||
|
|
6345e57b3d | ||
|
|
ea4cf4b9b0 | ||
|
|
f64dc66601 | ||
|
|
d37b5acf56 | ||
|
|
cd14e1419e | ||
|
|
8a4538cafc | ||
|
|
2298b2bf03 | ||
|
|
01b3391d5d | ||
|
|
d4a013040c | ||
|
|
52c9b72749 | ||
|
|
f2d800e290 | ||
|
|
a7ec7a4521 | ||
|
|
5ad994e8dc | ||
|
|
3ea7e4e2db | ||
|
|
5609177316 | ||
|
|
cf1994f45f | ||
|
|
e0d747c292 | ||
|
|
6d7c6fd5df | ||
|
|
9442d3b0f2 | ||
|
|
7d9a3d30af | ||
|
|
28ef8afb0a | ||
|
|
dc3e259f44 | ||
|
|
33cf28c6c0 | ||
|
|
bf35340c75 | ||
|
|
5087e727ce | ||
|
|
213604e58e | ||
|
|
d25b101350 | ||
|
|
da8dd224d4 | ||
|
|
4cac19e52b | ||
|
|
c671fb8a2a | ||
|
|
566e5e7f71 | ||
|
|
1bec4df29e | ||
|
|
992462d958 | ||
|
|
1966f56729 | ||
|
|
c6aa085024 | ||
|
|
0a8cfca39d | ||
|
|
77a700dfcb | ||
|
|
4a14be8faf | ||
|
|
1997a63442 | ||
|
|
668918871a | ||
|
|
2b562ba346 | ||
|
|
fd810e08b2 | ||
|
|
b318fda538 | ||
|
|
beb9fabda3 | ||
|
|
b8d26157f7 | ||
|
|
1815475d20 | ||
|
|
2816e46c56 | ||
|
|
bc8b82523f | ||
|
|
e814402153 | ||
|
|
726ff3e26b | ||
|
|
b5ded8a160 | ||
|
|
ce0a17a105 | ||
|
|
8b16173f90 | ||
|
|
eec72daf02 | ||
|
|
0338565b1a | ||
|
|
45cb52156c | ||
|
|
0a7b9e4580 | ||
|
|
8c2220687c | ||
|
|
e7f12d902e | ||
|
|
15720456db | ||
|
|
6beecaf1b0 | ||
|
|
08c102235d | ||
|
|
df7ea08221 | ||
|
|
69e676d909 | ||
|
|
06c60d8cb9 | ||
|
|
a398e15467 | ||
|
|
20b683a3f1 | ||
|
|
53f757c404 | ||
|
|
20490fde31 | ||
|
|
458a12bc98 | ||
|
|
516a2ca452 | ||
|
|
b1591ea668 | ||
|
|
e550366612 | ||
|
|
efc95087e6 | ||
|
|
a637b2d293 | ||
|
|
83973e2f1a | ||
|
|
d7620ea1d9 | ||
|
|
8ef7ad017e | ||
|
|
1aa4908ae6 | ||
|
|
2859f78491 | ||
|
|
615019e180 | ||
|
|
68c6977ade | ||
|
|
c8e9c42008 | ||
|
|
7e3d6b4095 | ||
|
|
833c6d566b | ||
|
|
685397fc48 | ||
|
|
5d82e9e9d0 | ||
|
|
50090b4a8c | ||
|
|
910155133a | ||
|
|
83bfbd2ba4 | ||
|
|
e8ac0336eb | ||
|
|
121c9194c0 | ||
|
|
7b6c5dae56 | ||
|
|
d4af3982fa | ||
|
|
91c0ef1b66 | ||
|
|
05abca048c | ||
|
|
1fb1179fea | ||
|
|
d41f33d826 | ||
|
|
0ed233824b | ||
|
|
d5e092b53f | ||
|
|
61d0f80ec1 | ||
|
|
165c6c6ddc | ||
|
|
6467c03871 | ||
|
|
ee53302d04 | ||
|
|
d16fc825eb | ||
|
|
993135b07d | ||
|
|
5d128e13ea | ||
|
|
b629d1ee1c | ||
|
|
c89954d09b | ||
|
|
13027e4260 | ||
|
|
22cb63a074 | ||
|
|
74b10f7d3e | ||
|
|
0f8720aa85 | ||
|
|
cdcc39cd96 | ||
|
|
4559465f75 | ||
|
|
a53f31dfa9 | ||
|
|
ccd4cefa9a | ||
|
|
d5d44a1fed | ||
|
|
6930fabc02 | ||
|
|
4264104334 | ||
|
|
e3d261cf3b | ||
|
|
dc6337ec77 | ||
|
|
96a331d618 | ||
|
|
ba2d3a220a | ||
|
|
f24112e4cb | ||
|
|
6c22bb20b4 | ||
|
|
dcc911f06e | ||
|
|
514ba8adb0 | ||
|
|
797d405689 | ||
|
|
8478094e14 | ||
|
|
7a606ad5d4 | ||
|
|
a08f129297 | ||
|
|
db96c6c439 | ||
|
|
0563aa1fee | ||
|
|
77935d4d3c | ||
|
|
fcf8b4bfa4 | ||
|
|
953b6ce0c8 | ||
|
|
d01f775c13 | ||
|
|
d1ac992f95 | ||
|
|
730f503901 | ||
|
|
f19d04aaaa | ||
|
|
ca6110abca | ||
|
|
8baa2e593c | ||
|
|
da1308fcb7 | ||
|
|
2b14a229e5 | ||
|
|
4693d8cd04 | ||
|
|
55b2004848 | ||
|
|
2b357d50dc | ||
|
|
5e65b85301 | ||
|
|
c3ac3a7ce1 | ||
|
|
a61c46a551 | ||
|
|
f1d66c2d66 | ||
|
|
f5f9fb95c5 | ||
|
|
df49919bec | ||
|
|
7b75e1ec64 | ||
|
|
05a4504b4b | ||
|
|
ebca5ecd26 | ||
|
|
ea38cea2c1 | ||
|
|
7ba281fdf9 | ||
|
|
7fad0d90a4 | ||
|
|
59ec13b5d0 | ||
|
|
9d316833a8 | ||
|
|
737477239c | ||
|
|
c292ab408a | ||
|
|
e0d84e2aa1 | ||
|
|
7754a4eab9 | ||
|
|
81a0879a12 | ||
|
|
b2a7f737d8 | ||
|
|
9618a0da2b | ||
|
|
87a4850d93 | ||
|
|
1004204b35 | ||
|
|
d1e6389849 | ||
|
|
541ec560c4 | ||
|
|
a0b8524464 | ||
|
|
1fb753cebc | ||
|
|
9a5d339d24 | ||
|
|
b5f9044cec | ||
|
|
fe274526fd | ||
|
|
7fb4998f7f | ||
|
|
9bba2e3f7f | ||
|
|
3120e64a98 | ||
|
|
51a3b9fd2a | ||
|
|
37253fab4e | ||
|
|
dab584a7f3 | ||
|
|
fd9dc4719c | ||
|
|
9b0d6d0085 | ||
|
|
dcd79cbfd8 | ||
|
|
c176550cef | ||
|
|
4429f425e4 | ||
|
|
39cb40ad24 | ||
|
|
7851a393c5 | ||
|
|
aa8d1b48c5 | ||
|
|
c74a5ceb43 | ||
|
|
884b6ae9ae | ||
|
|
e591519a9d | ||
|
|
bf95fc2017 | ||
|
|
b7f41879c5 | ||
|
|
43af05a84f | ||
|
|
e5ce80284e | ||
|
|
e31db4fc25 | ||
|
|
154e92a9e6 | ||
|
|
c234ff7a54 | ||
|
|
48231250b6 | ||
|
|
587164daa6 | ||
|
|
7f2465fd67 | ||
|
|
1cf8e2d585 | ||
|
|
119bf45cfe | ||
|
|
1f25c1d05f | ||
|
|
d6206f5527 | ||
|
|
6c8adc79c3 | ||
|
|
d818f18227 | ||
|
|
6ed1b5d62a | ||
|
|
a4a729b991 | ||
|
|
7f30956106 | ||
|
|
8725735cbc | ||
|
|
acf69637e7 | ||
|
|
79377914a6 | ||
|
|
0daabaa972 | ||
|
|
9f404f3caf | ||
|
|
f40348003a | ||
|
|
475aa1607a | ||
|
|
d9366b9794 | ||
|
|
e21c38c0da | ||
|
|
c5e73c64c0 | ||
|
|
787d905caf | ||
|
|
46217fcd14 | ||
|
|
546212d1ed | ||
|
|
80d8ff06d7 | ||
|
|
14fb776eb8 | ||
|
|
04c3991ab5 | ||
|
|
209db472b7 | ||
|
|
a6b624a794 | ||
|
|
262fea1026 | ||
|
|
ae3a93c7a2 | ||
|
|
4772bfcb77 | ||
|
|
6b0bf57261 | ||
|
|
6491035fd9 | ||
|
|
d803bdabca | ||
|
|
c67e4952ae | ||
|
|
2c360614d8 | ||
|
|
bc71e273f0 | ||
|
|
9938ae860a | ||
|
|
0c443bf652 | ||
|
|
d24c8fb8cc | ||
|
|
c4d599194a | ||
|
|
b207ee4546 | ||
|
|
2443a71d1a | ||
|
|
939329cbbe | ||
|
|
4fd60d8270 | ||
|
|
c2ce526b07 | ||
|
|
445925017b | ||
|
|
49086c2657 | ||
|
|
5c78101c54 | ||
|
|
da982e09a6 | ||
|
|
710b8b8b88 | ||
|
|
cacd20ad10 | ||
|
|
05f7dc3e18 | ||
|
|
abd34f6da8 | ||
|
|
5dcadf1257 | ||
|
|
d61c8f6039 | ||
|
|
c41d4310ad | ||
|
|
e62fcb74ae | ||
|
|
466883adc5 | ||
|
|
ce79a07afc | ||
|
|
a3573eed2f | ||
|
|
469b30c329 | ||
|
|
f06cad2eec | ||
|
|
be544fb9f2 | ||
|
|
05d5bca50a | ||
|
|
23ab85270c | ||
|
|
4be10e4ec0 | ||
|
|
f1d7367206 | ||
|
|
438d1db069 | ||
|
|
d3da9fa37e | ||
|
|
c09445e01c | ||
|
|
d4c7210e5a | ||
|
|
a9be8dfbdf | ||
|
|
76294115b1 | ||
|
|
4eb0c6757f | ||
|
|
172a0a238a | ||
|
|
4b3d26a7d8 | ||
|
|
7d008f2fdc | ||
|
|
cdc229b5ca | ||
|
|
033d062a6f | ||
|
|
fa2efdeb11 | ||
|
|
2b9d391049 | ||
|
|
e41953eec7 | ||
|
|
a95e076bcd | ||
|
|
64d5cc809c | ||
|
|
1584c5c13f | ||
|
|
0269439f5e | ||
|
|
daa9355f0c | ||
|
|
9aefa7e508 | ||
|
|
8b2827c22c | ||
|
|
2399e06127 | ||
|
|
e993c09f76 | ||
|
|
73a711df8e | ||
|
|
4fa012e37d | ||
|
|
7767e2c443 | ||
|
|
de1f0f22b3 | ||
|
|
c2ae19ad70 | ||
|
|
3bb55ddfa9 | ||
|
|
8d246f51be | ||
|
|
13017ad7f1 | ||
|
|
9fd8fe83b7 | ||
|
|
705235ea89 | ||
|
|
48a755c757 | ||
|
|
f9cbc75127 | ||
|
|
a1396c3270 | ||
|
|
a7973f0f55 | ||
|
|
aead6d4ff4 | ||
|
|
9e9cec657f | ||
|
|
cedf1574b9 | ||
|
|
725e070355 | ||
|
|
dd2055b130 | ||
|
|
b486456a3d | ||
|
|
6b39ac73d3 | ||
|
|
c6cd59d1c6 | ||
|
|
229050d932 | ||
|
|
4590c00349 | ||
|
|
975bf17988 | ||
|
|
c6858cc1bf | ||
|
|
35bd1a5437 | ||
|
|
fedf811cc5 | ||
|
|
1b7613fe00 | ||
|
|
37ce08838c | ||
|
|
be833e751c | ||
|
|
ab8e5efd9a | ||
|
|
4445b87404 | ||
|
|
f6af77f3b5 | ||
|
|
d043930b33 | ||
|
|
1e04f45107 | ||
|
|
b3e2689783 | ||
|
|
e81de00d53 | ||
|
|
1babb044df | ||
|
|
4b43f942ca | ||
|
|
e0edb0a2ab | ||
|
|
b1de2028c6 | ||
|
|
049e1c30cc | ||
|
|
e6f9351878 | ||
|
|
1127e2f3e3 | ||
|
|
89bdb31a6e | ||
|
|
f3a7a736fc | ||
|
|
0db54382ec | ||
|
|
59e8d54189 | ||
|
|
4311ff149b | ||
|
|
76ef7b4856 | ||
|
|
cd4543de5b | ||
|
|
82da8ef8c1 | ||
|
|
011d70369e | ||
|
|
d63403047d | ||
|
|
5a1c4905ef | ||
|
|
cd6e9d2ca8 | ||
|
|
d292c84ec1 | ||
|
|
f0d1317d39 | ||
|
|
b3c3f296fd | ||
|
|
fa7ff935c1 | ||
|
|
6e86c923a8 | ||
|
|
3d6cf11de0 | ||
|
|
2603ab293b | ||
|
|
1bc4d15f7a | ||
|
|
44d3a7a5d1 | ||
|
|
cdb01ab17b | ||
|
|
cb187fc554 | ||
|
|
a6c41e234d | ||
|
|
e86bc7a029 | ||
|
|
1c28af638c | ||
|
|
e2371724a9 | ||
|
|
9440f5ff11 | ||
|
|
b21ae613bc | ||
|
|
144335d3c2 | ||
|
|
5de385c402 | ||
|
|
1f0a7896bf | ||
|
|
622d4cb4ec | ||
|
|
5209cedf01 | ||
|
|
7b19edc3ba | ||
|
|
3fea8b338d | ||
|
|
23380103e4 | ||
|
|
c576457bfa | ||
|
|
548f63c859 | ||
|
|
d159daa07d | ||
|
|
c32da1c30e | ||
|
|
1936ebe24c | ||
|
|
ad9c9eb83f | ||
|
|
861391fdd0 | ||
|
|
6ae8eff943 | ||
|
|
9f1554a852 | ||
|
|
5a540055f8 | ||
|
|
6e26988f61 | ||
|
|
0f65bd5763 | ||
|
|
1cd62e9b85 | ||
|
|
1d9ae9565a | ||
|
|
0a74367fc7 | ||
|
|
5fdd1e51a5 | ||
|
|
2ccc3c0469 | ||
|
|
7790e026cf | ||
|
|
baebf50b59 | ||
|
|
4254520595 | ||
|
|
7185e0dc18 | ||
|
|
f80a45d8fd | ||
|
|
fbac5d06f3 | ||
|
|
4cc410cd49 | ||
|
|
4a7c53b740 | ||
|
|
60d65d2868 | ||
|
|
42d97729ab | ||
|
|
a6888e9a6d | ||
|
|
ed810a7416 | ||
|
|
370671e775 | ||
|
|
e9b4fcf8b0 | ||
|
|
3f89c34b0a | ||
|
|
5ccb202517 | ||
|
|
f372bb76a0 | ||
|
|
e100eb4d72 | ||
|
|
dcb9712873 | ||
|
|
b969b94000 | ||
|
|
cfce5429f7 | ||
|
|
6922bfb2c9 | ||
|
|
91552641be | ||
|
|
4cf9e689a5 | ||
|
|
75ad0f0fd5 | ||
|
|
19c58dd220 | ||
|
|
ccb2659df7 | ||
|
|
a825fc42ad | ||
|
|
c52fc715a3 | ||
|
|
33e14d3440 | ||
|
|
17e2791acc | ||
|
|
d78ddfb01d | ||
|
|
44a5930e91 | ||
|
|
023f226b91 | ||
|
|
77c56679d8 | ||
|
|
e937c93f97 | ||
|
|
0651a6eda2 | ||
|
|
f5a79017a9 | ||
|
|
0e4f882a9c | ||
|
|
41b6189259 | ||
|
|
0c1d76c634 | ||
|
|
4a39b9ed4b | ||
|
|
a5d9b9cccf | ||
|
|
b7526ed408 | ||
|
|
722166b332 | ||
|
|
79ab60d813 | ||
|
|
487c21e0af | ||
|
|
09aa7af238 | ||
|
|
db64b3f457 | ||
|
|
64ddcea7b6 | ||
|
|
7a2c0ad40d | ||
|
|
fae5141c93 | ||
|
|
e434a56183 | ||
|
|
365c42d5bc | ||
|
|
d97313886d | ||
|
|
13104ae4e1 | ||
|
|
1a561dfd3d | ||
|
|
40d909da6d | ||
|
|
40409bfe35 | ||
|
|
fd5f5991fa | ||
|
|
41f4a6a513 | ||
|
|
00a25be929 | ||
|
|
e309bb2eee | ||
|
|
28d310d40a | ||
|
|
fbcf5c31ae | ||
|
|
68cbb891bc | ||
|
|
a335f7f0cd | ||
|
|
35396a6fa0 | ||
|
|
6370768e52 | ||
|
|
354e6fa3c7 | ||
|
|
1196b714f5 | ||
|
|
89e13cd590 | ||
|
|
f96692e626 | ||
|
|
bb4b36d014 | ||
|
|
94689ee05c | ||
|
|
a268b329e5 | ||
|
|
b3b73a7cd8 | ||
|
|
c9e1cba686 | ||
|
|
a075c5eed5 | ||
|
|
ccaba83f7f | ||
|
|
d06bf7cc26 | ||
|
|
f80921e577 | ||
|
|
40e51d721a | ||
|
|
86a6fb2068 | ||
|
|
2f0ce820e9 | ||
|
|
c8811eebb0 | ||
|
|
d7177afbc2 | ||
|
|
d123f89780 | ||
|
|
f89af13cf3 | ||
|
|
521c56458a | ||
|
|
cc99a74166 | ||
|
|
8847465cca | ||
|
|
b81aca93c1 | ||
|
|
178157615f | ||
|
|
2ae38ce976 | ||
|
|
4dcc685a16 | ||
|
|
c21a88b76c | ||
|
|
a2985107d4 | ||
|
|
f5b06d2a02 | ||
|
|
9ac23073e4 | ||
|
|
0e17d86272 | ||
|
|
d742934fd8 | ||
|
|
6b94ad1850 | ||
|
|
5db4fd3a18 | ||
|
|
1497a74d81 | ||
|
|
103c412172 | ||
|
|
d3782ad701 | ||
|
|
9607ed2edf | ||
|
|
d0afd54b34 | ||
|
|
4b0ee0ba86 | ||
|
|
9251adaf48 | ||
|
|
c34a19b63f | ||
|
|
a3f85746be | ||
|
|
01b2ff64cc | ||
|
|
65dd2b6996 | ||
|
|
9e0b69bf49 | ||
|
|
7c7ca945e9 | ||
|
|
ad9cd2df24 | ||
|
|
bc8780cbea | ||
|
|
8ae91c8651 | ||
|
|
e7e7964c74 | ||
|
|
c838b53140 | ||
|
|
64766f3c8b | ||
|
|
42ace29bba | ||
|
|
86c4403666 | ||
|
|
740051909d | ||
|
|
72a28d8eba | ||
|
|
eab272cfeb | ||
|
|
c3425b89a5 | ||
|
|
a74224ad1e | ||
|
|
c14078b211 | ||
|
|
72cec30321 | ||
|
|
82841337bb | ||
|
|
bb663a73bd | ||
|
|
6216aa9b81 | ||
|
|
3202b2fa98 | ||
|
|
a2a3e2935e | ||
|
|
b815ddd122 | ||
|
|
974ea3c6f7 | ||
|
|
bbbdc97ccf | ||
|
|
d674eb266a | ||
|
|
317363c3d7 | ||
|
|
88f1d5ffe9 | ||
|
|
dcf3e09392 | ||
|
|
82c943cfb2 | ||
|
|
36109acaf9 | ||
|
|
a5f8e650e8 | ||
|
|
b209b57067 | ||
|
|
0211c78765 | ||
|
|
69dbf23eff | ||
|
|
a80207d2a3 | ||
|
|
317964b121 | ||
|
|
ca97057dca | ||
|
|
0453bdaa60 | ||
|
|
cf999b32dd | ||
|
|
59bfe4ee90 | ||
|
|
cea64f9221 | ||
|
|
3e6da549e0 | ||
|
|
564e2a6b6a | ||
|
|
80b382ff7b | ||
|
|
02a387df62 | ||
|
|
97065c4bcd | ||
|
|
66da3a511e | ||
|
|
806f538c21 | ||
|
|
d7704efa4f | ||
|
|
a8b11b6a07 | ||
|
|
e0fd5aaec9 | ||
|
|
12ab87da04 | ||
|
|
00c089f67d | ||
|
|
4ba635bc47 | ||
|
|
5a52a2084b | ||
|
|
da1d72402a | ||
|
|
0aaeda8d70 | ||
|
|
f44f29c8d6 | ||
|
|
36d7f4bc26 | ||
|
|
af61764261 | ||
|
|
bc15fe3357 | ||
|
|
4dec833feb | ||
|
|
bf2fe05272 | ||
|
|
488e4f4e6a | ||
|
|
db8ac421d8 | ||
|
|
50c7241d69 | ||
|
|
a9c698bf3a | ||
|
|
8e6f53c1b8 | ||
|
|
a501e657d3 | ||
|
|
e9724570aa | ||
|
|
f560a1877b | ||
|
|
915c9ab0fe | ||
|
|
980c5d7b8d | ||
|
|
1ba9283d78 | ||
|
|
2d583a44d6 | ||
|
|
8a6f69ef96 | ||
|
|
b16c72bf12 | ||
|
|
9b6c85ca20 | ||
|
|
1396c84257 | ||
|
|
69036420c7 | ||
|
|
3dc062fe12 | ||
|
|
cdaad1be46 | ||
|
|
13481a92d8 | ||
|
|
cb6bc372d8 | ||
|
|
ac5fb539db | ||
|
|
69ed9fe33f | ||
|
|
a2415e0e15 | ||
|
|
b40b95a7ef | ||
|
|
3ee9b493ac | ||
|
|
7eeb45a377 | ||
|
|
bf3bbdc9b6 | ||
|
|
4798bc9e3c | ||
|
|
1adea826d0 | ||
|
|
d35adfae2c | ||
|
|
7cdc4b985e | ||
|
|
3497fc3b77 | ||
|
|
c4f3ffc491 | ||
|
|
1f8449c606 | ||
|
|
8c3babd406 | ||
|
|
8fe36fefe9 | ||
|
|
da7a930549 | ||
|
|
e73fc6bcef | ||
|
|
8e1a73851d | ||
|
|
ea407e7082 | ||
|
|
f537534a39 | ||
|
|
b84c54c850 | ||
|
|
e608c03f34 | ||
|
|
ee8c147111 | ||
|
|
7b8f402a4b | ||
|
|
7af42116ba | ||
|
|
5fcfdf8903 | ||
|
|
c81148b3c6 | ||
|
|
07f4e72711 | ||
|
|
bfca12c389 | ||
|
|
4faccdcc07 | ||
|
|
c43996849a | ||
|
|
904333546e | ||
|
|
ae3a8d847a | ||
|
|
0e92ea829a | ||
|
|
2f46120278 | ||
|
|
c017465e4a | ||
|
|
77c5b1c067 | ||
|
|
9cc63c0b9e | ||
|
|
03d9ed7779 | ||
|
|
902d68b8bf | ||
|
|
f773366d5e | ||
|
|
30a6de88f0 | ||
|
|
8fc5e43bd9 | ||
|
|
80693a5fe0 | ||
|
|
e77385c265 | ||
|
|
8cec66ed7f | ||
|
|
918db3b403 | ||
|
|
dfb3eacdfb | ||
|
|
671495dd1e | ||
|
|
0e38e7be45 | ||
|
|
e14e1988e5 | ||
|
|
bcc2d242d0 | ||
|
|
051f8a3397 | ||
|
|
26e33ad133 | ||
|
|
60579704fe | ||
|
|
2472552390 | ||
|
|
de6cb2108a | ||
|
|
4956486838 | ||
|
|
61822e71d1 | ||
|
|
d4c7754f14 | ||
|
|
ff7e8e2f5b | ||
|
|
3c8829f50a | ||
|
|
0c3fa5d938 | ||
|
|
870cf686c6 | ||
|
|
4dd7e34f48 | ||
|
|
6f93c80e8d | ||
|
|
d392fb7eb4 | ||
|
|
8b1e1a03b2 | ||
|
|
3ef5c36a94 | ||
|
|
275a1ccaf6 | ||
|
|
7d20ed76ff | ||
|
|
e9c31cd679 | ||
|
|
9ee3ecd4bf | ||
|
|
15cd70917b | ||
|
|
572e225823 | ||
|
|
5c40f431b8 | ||
|
|
c3f2d61ede | ||
|
|
17b2cc8f16 | ||
|
|
deaa25fd63 | ||
|
|
77a9b5dbf3 | ||
|
|
084e118b18 | ||
|
|
1ed167177d | ||
|
|
65fdd79a50 | ||
|
|
fbbcef65f5 | ||
|
|
691a48f8e0 | ||
|
|
0c4eb5c99e | ||
|
|
6f0b93539c | ||
|
|
4618ea5ccc | ||
|
|
e9726c25ba | ||
|
|
1d23449b0b | ||
|
|
25daac20b5 | ||
|
|
73e8579252 | ||
|
|
f84d9b582b | ||
|
|
70b15d3957 | ||
|
|
2526270652 | ||
|
|
d60e7efb55 | ||
|
|
2cb35446ae | ||
|
|
8b774c8c4e | ||
|
|
5cdce69e65 | ||
|
|
59a29a6b78 | ||
|
|
93980d685f | ||
|
|
bb091d4bbe | ||
|
|
fff0cbc65c | ||
|
|
310d10a544 | ||
|
|
df6f75f878 | ||
|
|
ec6e807f29 | ||
|
|
27428ec47a | ||
|
|
82830b197b | ||
|
|
e23d3f34e6 | ||
|
|
00e430246d | ||
|
|
76f6d0382a | ||
|
|
586f82c999 | ||
|
|
9b1351dbb2 | ||
|
|
a788a04b08 | ||
|
|
f7464d52ff | ||
|
|
ea87c36c34 | ||
|
|
dbf2a22cda | ||
|
|
7820998a39 | ||
|
|
d71329a7df | ||
|
|
ff3b707f8a | ||
|
|
84df135b2b | ||
|
|
b35878c85b | ||
|
|
1e53d23ec4 | ||
|
|
5975e2882e | ||
|
|
0befce1b74 | ||
|
|
8c5dac56cd | ||
|
|
48d9f5bdaa | ||
|
|
e770e36d60 | ||
|
|
d0d651026d | ||
|
|
4e3c349b7a | ||
|
|
821c84f2e0 | ||
|
|
e74b6c9c74 | ||
|
|
9114d9ae77 | ||
|
|
9efa0b0eaa | ||
|
|
f53e702b25 | ||
|
|
062b135630 | ||
|
|
5195cbd6a3 | ||
|
|
6201fe7298 | ||
|
|
431e2ab380 | ||
|
|
7c500c5380 | ||
|
|
7a6ae288f4 | ||
|
|
15ed0dd65a | ||
|
|
faa9dc3c7d | ||
|
|
5b6d8a55ec | ||
|
|
b730720648 | ||
|
|
07956467c6 | ||
|
|
d05c833a90 | ||
|
|
89f2e1aa4a | ||
|
|
1002410f4d | ||
|
|
e3a0c1266e | ||
|
|
cf4e1143ea | ||
|
|
bc89eff622 | ||
|
|
5bacdc2945 | ||
|
|
72adedc82e | ||
|
|
864f9d0d0a | ||
|
|
3c8367a203 | ||
|
|
e6988ed649 | ||
|
|
c96954b3fb | ||
|
|
c7d337e4ff | ||
|
|
5029beeca2 | ||
|
|
7d1a7dd02f | ||
|
|
a3f66da0c8 | ||
|
|
71152af636 | ||
|
|
a748400418 | ||
|
|
28c3edd081 | ||
|
|
ae311fc61d | ||
|
|
68cf43ce19 | ||
|
|
8178f16f24 | ||
|
|
43d25d3d13 | ||
|
|
52fa04c198 | ||
|
|
c3ce52ca59 | ||
|
|
9fd3293120 | ||
|
|
8ab00ba4d1 | ||
|
|
a748f3fd88 | ||
|
|
d69f3661aa | ||
|
|
b1439dd74c | ||
|
|
c27790ad8e | ||
|
|
9aed407b75 | ||
|
|
d7d8f38caa | ||
|
|
e6589ee119 | ||
|
|
97885e90c6 | ||
|
|
d1be0a9947 | ||
|
|
7e9dc3455a | ||
|
|
b787150c78 | ||
|
|
ab8654ad34 | ||
|
|
4e35003f01 | ||
|
|
b859060f6c | ||
|
|
60d1171ac5 | ||
|
|
454d71306d | ||
|
|
faf9916889 | ||
|
|
6d82d03ea3 | ||
|
|
22b291ad8d | ||
|
|
3a204dc120 | ||
|
|
4edafbbd51 | ||
|
|
4361c20d0f | ||
|
|
cb5c9b5c74 | ||
|
|
369f44092a | ||
|
|
5def46551b | ||
|
|
3f3027195c | ||
|
|
e0a51afdbd | ||
|
|
0f320b880f | ||
|
|
812e2c86a2 | ||
|
|
785071e3cb | ||
|
|
83e359a742 | ||
|
|
b68059cb7b | ||
|
|
bd2b832da7 | ||
|
|
503ab0f91a | ||
|
|
b9a8524f2f | ||
|
|
724b596d78 | ||
|
|
d97f99776c | ||
|
|
099193af68 | ||
|
|
4e3d865461 | ||
|
|
100bc61d16 | ||
|
|
6a87e81bf3 | ||
|
|
cfdb8ad3dc | ||
|
|
081c8387a5 | ||
|
|
df61987b00 | ||
|
|
f891ab7478 | ||
|
|
3f1eda9a80 | ||
|
|
708f60e7d4 | ||
|
|
11e1f697de | ||
|
|
c113cefb9c | ||
|
|
4b3fde9378 | ||
|
|
2f57e5ea0a | ||
|
|
876546cb4d | ||
|
|
a912e9791d | ||
|
|
b9c54202b5 | ||
|
|
6e3b22de9f | ||
|
|
861c5e2aca | ||
|
|
6230958567 | ||
|
|
ba2f7a75d9 | ||
|
|
97b35aef1d | ||
|
|
4a56cd461d | ||
|
|
d913302781 | ||
|
|
c3a209d5d9 | ||
|
|
8644971009 | ||
|
|
e11fe4011b | ||
|
|
178a00b9db | ||
|
|
3b38d915bc | ||
|
|
88259e7f02 | ||
|
|
b93f209433 | ||
|
|
76c17cf29b | ||
|
|
7e58a422a1 | ||
|
|
4b103902df | ||
|
|
abaa2493bc | ||
|
|
ec18b7d228 | ||
|
|
7d014ff9d7 | ||
|
|
1209225bcb | ||
|
|
79962012be | ||
|
|
10639b4850 | ||
|
|
63d4a2a917 | ||
|
|
d65af876f7 | ||
|
|
e7b7953b4e | ||
|
|
6afa4b61d9 | ||
|
|
e61923d692 | ||
|
|
c6749d82b4 | ||
|
|
7e662aab1a | ||
|
|
33acff0ce9 | ||
|
|
5d828d6557 | ||
|
|
a853d5dbe5 | ||
|
|
ee3bff8e4b | ||
|
|
885ccd6dfb | ||
|
|
558ed95f0c | ||
|
|
e8ca58f592 | ||
|
|
c2c3af417e | ||
|
|
f6200ca9fb | ||
|
|
c896ba3250 | ||
|
|
5d9d3e8c37 | ||
|
|
d10c398ea4 | ||
|
|
7f0e432047 | ||
|
|
847f1d06ab | ||
|
|
44c1180062 | ||
|
|
f669693e39 | ||
|
|
840aa4cfaa | ||
|
|
011a8b726a | ||
|
|
5535d908df | ||
|
|
66d240aae2 | ||
|
|
6f0722fdfd | ||
|
|
ef443ff786 | ||
|
|
8267819c42 | ||
|
|
a9e4b91098 | ||
|
|
2ca16c2f87 | ||
|
|
bab555195e | ||
|
|
0b5b8dba69 | ||
|
|
c0c29fa38f | ||
|
|
4813aa536f | ||
|
|
948b570f18 | ||
|
|
daead3cfd5 | ||
|
|
b8de382c4f | ||
|
|
4f52f8b33a | ||
|
|
30f4c7c49f | ||
|
|
e057d7fa0d | ||
|
|
373faf9e53 | ||
|
|
756c1c98e4 | ||
|
|
df2b07d6b2 | ||
|
|
368ab46f70 | ||
|
|
b0f7f1700f | ||
|
|
446217ba10 | ||
|
|
ad9e172b18 | ||
|
|
83e075783d | ||
|
|
ede113a252 | ||
|
|
06d62cdd29 | ||
|
|
5512af8aec | ||
|
|
2c7e3ac579 | ||
|
|
38c3dc6a65 | ||
|
|
a2f70ecf14 | ||
|
|
13769892d0 | ||
|
|
a02c541f06 | ||
|
|
f2da1963d2 | ||
|
|
60a7279b81 | ||
|
|
1a09e310d5 | ||
|
|
8d469c42f8 | ||
|
|
eb754bd635 | ||
|
|
7e60a1125d | ||
|
|
550b458bb5 | ||
|
|
f5ab36ad01 | ||
|
|
4ee4431103 | ||
|
|
fc732a80df | ||
|
|
1360a714c3 | ||
|
|
55ae24844a | ||
|
|
b8f09dec6c | ||
|
|
783db10c34 | ||
|
|
e6b2687c12 | ||
|
|
59606dc362 | ||
|
|
a70f7d0f9d | ||
|
|
d9f32b1a33 | ||
|
|
d179f9cb82 | ||
|
|
8f35e7e93a | ||
|
|
35dfb27614 | ||
|
|
01f355e99a | ||
|
|
1a79463418 | ||
|
|
57e6c4f902 | ||
|
|
4df834d69f | ||
|
|
be4092f04e | ||
|
|
fc45613805 | ||
|
|
86e7fbb8db | ||
|
|
bbdb4afea0 | ||
|
|
9a5919cb9b | ||
|
|
043a194979 | ||
|
|
421f1295b8 | ||
|
|
79a5a49135 | ||
|
|
4297388959 | ||
|
|
ed1cff8314 | ||
|
|
b75694711d | ||
|
|
439b006323 | ||
|
|
24cbc72f9a | ||
|
|
0c72e6c759 | ||
|
|
6dff954cda | ||
|
|
f0c0dbccc0 | ||
|
|
d35792e94e | ||
|
|
f349074a4d | ||
|
|
afac697f0d | ||
|
|
b9ee625560 | ||
|
|
29d6442fe5 | ||
|
|
bbf243f240 | ||
|
|
f6c5374202 | ||
|
|
228cd7a9bf | ||
|
|
c4c69dc13c | ||
|
|
604d2e88fe | ||
|
|
b3ed8cabc1 | ||
|
|
57a6a248d5 | ||
|
|
d1ba9ad04e | ||
|
|
6628a21310 | ||
|
|
31aeea625c | ||
|
|
f99142d9d3 | ||
|
|
19086ed551 | ||
|
|
6ffcc1b43c | ||
|
|
2e7f29dc00 | ||
|
|
43de986da3 | ||
|
|
4ba1af055e | ||
|
|
38fa252a94 | ||
|
|
56fa3e9ac0 | ||
|
|
7afad00f40 | ||
|
|
0094683a9e | ||
|
|
d33ca0baa7 | ||
|
|
714c56efba | ||
|
|
859fa27d87 | ||
|
|
36d9a67287 | ||
|
|
545fd2eaca | ||
|
|
95494c7858 | ||
|
|
7ec7de6e32 | ||
|
|
23e40d8db0 | ||
|
|
5778f2c88b | ||
|
|
d71b58a6ca | ||
|
|
da76da34cd | ||
|
|
82e2318373 | ||
|
|
2a10229517 | ||
|
|
bd6ece146e | ||
|
|
c4b9f95b01 | ||
|
|
6a2a83ab08 | ||
|
|
725e04ed4b | ||
|
|
06b4938bd0 | ||
|
|
96eba1a4a5 | ||
|
|
2e39c5a201 | ||
|
|
e6345d4d68 | ||
|
|
e2464a3d78 | ||
|
|
5ec9d08d57 | ||
|
|
0e3c727afb | ||
|
|
e26767fd7b | ||
|
|
866a0ec9f2 | ||
|
|
e031593942 | ||
|
|
72fe3ad9e1 | ||
|
|
70f901a0b8 | ||
|
|
8db2fbc719 | ||
|
|
0595eb35c0 | ||
|
|
01843b2f85 | ||
|
|
5341298957 | ||
|
|
d2debaa494 | ||
|
|
ac01dfd1f4 | ||
|
|
a5b6bcc58f | ||
|
|
df96fe1596 | ||
|
|
512addad20 | ||
|
|
d1622cd9ec | ||
|
|
4a6d442084 | ||
|
|
e021d8eff8 | ||
|
|
c46d51606b | ||
|
|
86d38ca5b6 | ||
|
|
110b2aee49 | ||
|
|
f54e89feda | ||
|
|
369eef1f71 | ||
|
|
01c9fc9f5c | ||
|
|
303901e9a0 | ||
|
|
722c04d3a2 | ||
|
|
4d1fbf8a0f | ||
|
|
fdd90d33ae | ||
|
|
02ff44e8ef | ||
|
|
a755c7e2a1 | ||
|
|
0798f8e5e3 | ||
|
|
2abe589f6b | ||
|
|
fd759209ce | ||
|
|
d6d88a0efb | ||
|
|
fd2d42320c | ||
|
|
e84be1e4c4 | ||
|
|
e930c6b822 | ||
|
|
34d26f0a33 | ||
|
|
9b233a577b | ||
|
|
110aa8d42d | ||
|
|
9ac4b79fc1 | ||
|
|
4f1662f715 | ||
|
|
3c4e7e625a | ||
|
|
ee61ed661a | ||
|
|
31be554eb7 | ||
|
|
4a2b76db35 | ||
|
|
0a26cd90ac | ||
|
|
c1555d276d | ||
|
|
006dbb4c62 | ||
|
|
89fa5b1430 | ||
|
|
cfe26b0408 | ||
|
|
0abf0a4b73 | ||
|
|
83995ba83a | ||
|
|
cb3eaf5777 | ||
|
|
3ee0dbff63 | ||
|
|
11d84597be | ||
|
|
ab74fc8218 | ||
|
|
8bf73a23f6 | ||
|
|
37495b467a | ||
|
|
b73879351c | ||
|
|
4f60122350 | ||
|
|
517edde365 | ||
|
|
468fdfbc2b | ||
|
|
740a273347 | ||
|
|
ee1c0b612a | ||
|
|
e7ac62d47d | ||
|
|
d62e40a39a | ||
|
|
483ea7fd5b | ||
|
|
c8f9d7ecfd | ||
|
|
56dc24eda7 | ||
|
|
c8317826f6 | ||
|
|
2237ce0e60 | ||
|
|
574953a0ce | ||
|
|
ad5d99f620 | ||
|
|
c4f65b18d5 | ||
|
|
841348836f | ||
|
|
cb79d4148f | ||
|
|
266e5d1666 | ||
|
|
3c5f7c7020 | ||
|
|
12d509846c | ||
|
|
1da3399320 | ||
|
|
958a8e3596 | ||
|
|
9524945d0b | ||
|
|
5717fe5ffc | ||
|
|
b538f5c027 | ||
|
|
066f566317 | ||
|
|
38d45fe1a8 | ||
|
|
3783523d04 | ||
|
|
06cc96d1fd | ||
|
|
5fe68f8a6d | ||
|
|
e250973f5d | ||
|
|
20912549a9 | ||
|
|
b73e0a5f1b | ||
|
|
50dcfb93d7 | ||
|
|
c55d4313df | ||
|
|
9e32849c47 | ||
|
|
21e1a64cc6 | ||
|
|
d49b033d27 | ||
|
|
4581d3a076 | ||
|
|
f8711ab89d | ||
|
|
3ea0b51727 | ||
|
|
5033d8a494 | ||
|
|
a78ee566af | ||
|
|
0d90ba9b18 | ||
|
|
747c7b1197 | ||
|
|
20b9b21e96 | ||
|
|
98c08ebd02 | ||
|
|
6a99134ec4 | ||
|
|
0328f86501 | ||
|
|
57e9dfad6e | ||
|
|
6757a7293e | ||
|
|
e937732372 | ||
|
|
2b712bab1e | ||
|
|
13dea06bd6 | ||
|
|
913c9a9674 | ||
|
|
93680e2c98 | ||
|
|
48275e3edd | ||
|
|
6a0a5097a6 | ||
|
|
63d17fa08e | ||
|
|
78a9f5d804 | ||
|
|
27237763df | ||
|
|
e8f92bfe9c | ||
|
|
80143afd3f | ||
|
|
338ab5929d | ||
|
|
372edff338 | ||
|
|
2485cd0162 | ||
|
|
cb46325b21 | ||
|
|
a4a100c795 | ||
|
|
523d2d8a04 | ||
|
|
284544d8b0 | ||
|
|
5aaf6178a5 | ||
|
|
20273cc57a | ||
|
|
07700dd611 | ||
|
|
76f577db86 | ||
|
|
9c75560697 | ||
|
|
a392997a02 | ||
|
|
3a502554ff | ||
|
|
96d9cfc39c | ||
|
|
d16e5588cc | ||
|
|
31ec08ccd0 | ||
|
|
8bfbefa821 | ||
|
|
9477faa1ce | ||
|
|
494efe97c7 | ||
|
|
30cf16748e | ||
|
|
370532e66f | ||
|
|
2883f8c77b | ||
|
|
381ad307cd | ||
|
|
6bc2b1e3f6 | ||
|
|
432546fc2a | ||
|
|
2c2049910d | ||
|
|
9f6258e07c | ||
|
|
1100decf3f | ||
|
|
852e0edf29 | ||
|
|
8bb0d80903 | ||
|
|
34d093292c | ||
|
|
22617509e4 | ||
|
|
1f3437e4ce | ||
|
|
63e6c7162c | ||
|
|
a8c1b0a317 | ||
|
|
136dd06775 | ||
|
|
4f1a020ecb | ||
|
|
df98c38146 | ||
|
|
c5e115c9e7 | ||
|
|
e11923b777 | ||
|
|
c16387389e | ||
|
|
e9d4df07ff | ||
|
|
7e8d7fd7b0 | ||
|
|
a7149af1d9 | ||
|
|
3a3772a3dc | ||
|
|
8ffd60dd18 | ||
|
|
d0eb63d9a4 | ||
|
|
c414b1dd2f | ||
|
|
2f8bc03001 | ||
|
|
604f247c48 | ||
|
|
d369d27947 | ||
|
|
e44cab3f75 | ||
|
|
96d5190618 | ||
|
|
2f9d14c5a9 | ||
|
|
e11b0a4abe | ||
|
|
e212a80bf9 | ||
|
|
5a2e4be11a | ||
|
|
a24bc01c09 | ||
|
|
ecf00155fe | ||
|
|
3dcc113be5 | ||
|
|
2470a7582e | ||
|
|
99c8fa7462 | ||
|
|
e012f3bf16 | ||
|
|
afdc349f6a | ||
|
|
69a50c6d75 | ||
|
|
04aed74c85 | ||
|
|
5332e9a61d | ||
|
|
032a7034d6 | ||
|
|
437a0aa264 | ||
|
|
6d1b2cca4e | ||
|
|
dbdac9c07e | ||
|
|
39c7daba9c | ||
|
|
34c0330628 | ||
|
|
e5cbc46f4b | ||
|
|
16fd75dd6b | ||
|
|
06d7605be2 | ||
|
|
cf26e24dec | ||
|
|
a0645ffdd3 | ||
|
|
6518824e1a | ||
|
|
0827b21e80 | ||
|
|
163f0fd424 | ||
|
|
8665ebaebe | ||
|
|
7feb5a3d3a | ||
|
|
40ecbd1b55 | ||
|
|
ac7af34ea0 | ||
|
|
a2ae35c02c | ||
|
|
7769123869 | ||
|
|
4eb91c5a68 | ||
|
|
8810438125 | ||
|
|
b85e8e5904 | ||
|
|
d51703454d | ||
|
|
db82e0aaa3 | ||
|
|
ee91dffebc | ||
|
|
822b6e1642 | ||
|
|
f19142c7e9 | ||
|
|
3fe9a1b994 | ||
|
|
fecb87d5b9 | ||
|
|
931ed495b1 | ||
|
|
805d768210 | ||
|
|
fa466736a6 | ||
|
|
8e5880d6ad | ||
|
|
ee0d243812 | ||
|
|
f3e3cee7e1 | ||
|
|
696f2d996e | ||
|
|
292840fa92 | ||
|
|
ccfb99f09d | ||
|
|
a88ca26544 | ||
|
|
c2337cf410 | ||
|
|
4ae1da5780 | ||
|
|
950a40375d | ||
|
|
8dae6842f8 | ||
|
|
1957c64f87 | ||
|
|
d5075a0df8 | ||
|
|
c060c83d88 | ||
|
|
f5d8366b40 | ||
|
|
e8e1cff725 | ||
|
|
b39844140c | ||
|
|
8a4c29b09b | ||
|
|
a09d1e35d6 | ||
|
|
7373681dbb | ||
|
|
b590279082 | ||
|
|
a78fe6ef67 | ||
|
|
acc66f028e | ||
|
|
32a007b9cb | ||
|
|
13a6c55784 | ||
|
|
38636245d1 | ||
|
|
400674fc2b | ||
|
|
92531cb186 | ||
|
|
ba38e9e550 | ||
|
|
f14dd601bb | ||
|
|
e216a94529 | ||
|
|
84c16f71fc | ||
|
|
12c719a008 | ||
|
|
85a925b768 | ||
|
|
1619928e2d | ||
|
|
243397c8ec | ||
|
|
2229167142 | ||
|
|
c1cd02f8f1 | ||
|
|
5daded5446 | ||
|
|
7589da4751 | ||
|
|
0547d8d5d5 | ||
|
|
800c85d32c | ||
|
|
7150e2289b | ||
|
|
0ea99b13ca | ||
|
|
3326ecbfc9 | ||
|
|
a0e2e604a3 | ||
|
|
4238db360a | ||
|
|
f1d1090930 | ||
|
|
5bb72db271 | ||
|
|
90b3f5c332 | ||
|
|
944f0a4bbd | ||
|
|
7a2a03b49e | ||
|
|
a877d4c63e | ||
|
|
7a79852eb2 | ||
|
|
a62fb3a719 | ||
|
|
73cb9349b1 | ||
|
|
be6c9fc4cd | ||
|
|
d2025ec8db | ||
|
|
41d65b833f | ||
|
|
c72ce119cf | ||
|
|
c1074125b8 | ||
|
|
e2cbd57f37 | ||
|
|
5e870d8714 | ||
|
|
7690db6bf4 | ||
|
|
ae1325f526 | ||
|
|
524b8c1994 | ||
|
|
2bebd5a862 | ||
|
|
be8db5acb7 | ||
|
|
5c9ecaf3cf | ||
|
|
6d09c2e00a | ||
|
|
f483ea59f8 | ||
|
|
84df115196 | ||
|
|
c6097a1f9f | ||
|
|
852b2bc995 | ||
|
|
a5be9c2e84 | ||
|
|
42b8b6377e | ||
|
|
decfa21d33 | ||
|
|
d1d46c59b3 | ||
|
|
c743b9c6fc | ||
|
|
9dea5f922e | ||
|
|
7bb67fe38b | ||
|
|
aaf48f73ed | ||
|
|
bd26d70efa | ||
|
|
0f455e5b47 | ||
|
|
88e02c6704 | ||
|
|
1750c03cd1 | ||
|
|
979123b8fb | ||
|
|
3fd0b523af | ||
|
|
a011dafa20 | ||
|
|
d399e368a7 | ||
|
|
dbbe421efa | ||
|
|
85b5356472 | ||
|
|
047ca3efe0 | ||
|
|
6ad17026b1 | ||
|
|
64cc2807dc | ||
|
|
c3deb0e30d | ||
|
|
8805e88c43 | ||
|
|
39e15bfaae | ||
|
|
14720abb0f | ||
|
|
ec97c2abe4 | ||
|
|
684bd7a140 | ||
|
|
5a0b4219cb | ||
|
|
c4e78f339d | ||
|
|
993d0487ca | ||
|
|
796af4025b | ||
|
|
3e312e54c5 | ||
|
|
746921d376 | ||
|
|
171664d085 | ||
|
|
b8b92cc855 | ||
|
|
983e56a9a0 | ||
|
|
d9fa40d016 | ||
|
|
aeb0ed5f03 | ||
|
|
dd56672283 | ||
|
|
1d6f7e5bfe | ||
|
|
5ad808cbc9 | ||
|
|
9a4faedd32 | ||
|
|
422071960a | ||
|
|
92c601d063 | ||
|
|
e2da38bec5 | ||
|
|
4e282e97be | ||
|
|
38364a5555 | ||
|
|
f22f3078ab | ||
|
|
2ac530b13c | ||
|
|
8ce0329ba8 | ||
|
|
36bddc2e08 | ||
|
|
fb24d33f0a | ||
|
|
30d7aefb3d | ||
|
|
90020caedf | ||
|
|
d26f1a1a66 | ||
|
|
c55eaedb23 | ||
|
|
21280ae70e | ||
|
|
a904a45f9f | ||
|
|
a040a52191 | ||
|
|
36f2f2995d | ||
|
|
a4c0ed5e69 | ||
|
|
8ae0b86fca | ||
|
|
a2d610b7a1 | ||
|
|
98a3caf512 | ||
|
|
bafe87e278 | ||
|
|
74c34ec4a0 | ||
|
|
22e6067c16 | ||
|
|
3689445b72 | ||
|
|
91cfc8ef5b | ||
|
|
65efc3e9d0 | ||
|
|
f1c606616b | ||
|
|
c8b578e649 | ||
|
|
ceb903b63e | ||
|
|
d3c38555a4 | ||
|
|
3b03a78e3f | ||
|
|
1618097376 | ||
|
|
597d5884d9 | ||
|
|
441199c960 | ||
|
|
e8cf98cf53 | ||
|
|
9049555824 | ||
|
|
55bc69db77 | ||
|
|
6b2e48094d | ||
|
|
bdf47db44f | ||
|
|
afbb36df79 | ||
|
|
c66aadb4ca | ||
|
|
6bfbd57c9d | ||
|
|
8448a9a2fc | ||
|
|
4a381a30fb | ||
|
|
628a8203ec | ||
|
|
869e9e12a6 | ||
|
|
af39460a87 | ||
|
|
bdf6738ff3 | ||
|
|
9278253078 | ||
|
|
bd0d561c70 | ||
|
|
d9581a5ae7 | ||
|
|
d7d0e75fa6 | ||
|
|
623a72f308 | ||
|
|
3b73c81cad | ||
|
|
932729846c | ||
|
|
6640ab627b | ||
|
|
84eb259dd3 | ||
|
|
42d6177825 | ||
|
|
823743f382 | ||
|
|
908191b021 | ||
|
|
1f067b12ac | ||
|
|
41ececbd60 | ||
|
|
3ef92be8f2 | ||
|
|
701aea77a4 | ||
|
|
d752e8a3c5 | ||
|
|
5b7b2ddd6c | ||
|
|
d5bf55ac93 | ||
|
|
6344d163c8 | ||
|
|
9a91e39824 | ||
|
|
714f00f34f | ||
|
|
ef92b68d62 | ||
|
|
2ed3a4a076 | ||
|
|
5ac8c345e2 | ||
|
|
bd9d6b2ba0 | ||
|
|
3b99704b2c | ||
|
|
37c81e560d | ||
|
|
b06e3d472b | ||
|
|
8e784e9439 | ||
|
|
30900706e0 | ||
|
|
0536f2b2f0 | ||
|
|
8913a9b481 | ||
|
|
6489978df2 | ||
|
|
5a788a3258 | ||
|
|
b755e803b4 | ||
|
|
9582d21861 | ||
|
|
e08827739c | ||
|
|
f4a5522a05 | ||
|
|
3789b2f9aa | ||
|
|
e4eb1714ef | ||
|
|
2efcba3c5e | ||
|
|
955dd7ff98 | ||
|
|
c85856ca60 | ||
|
|
6cd2d7e24c | ||
|
|
6a2aa7ce4a | ||
|
|
bf0812f885 | ||
|
|
d50ffa90f1 | ||
|
|
caceb753df | ||
|
|
c4dd6e6095 | ||
|
|
c2f81bb678 | ||
|
|
08efce292a | ||
|
|
8a89fa71fc | ||
|
|
57ee8fabd9 | ||
|
|
64c639bbbf | ||
|
|
6728e3d25e | ||
|
|
438467e01d | ||
|
|
12e65c5dbe | ||
|
|
d12fc40960 | ||
|
|
5fec812ac0 | ||
|
|
ddfbf6e9b1 | ||
|
|
0f42634aea | ||
|
|
27879f362b | ||
|
|
bd50355db6 | ||
|
|
7e4b06161b | ||
|
|
5de917ca79 | ||
|
|
d22ee2f3f2 | ||
|
|
a090029c97 | ||
|
|
d8b30c39c0 | ||
|
|
5537212dfd | ||
|
|
c9c8fb5c51 | ||
|
|
6c31e10894 | ||
|
|
251b3de9e2 | ||
|
|
2e48a4e6ad | ||
|
|
e39229464b | ||
|
|
55479c62ff | ||
|
|
379c309c59 | ||
|
|
476e2fe301 | ||
|
|
ef425ef21f | ||
|
|
dc7661af5e | ||
|
|
219967d623 | ||
|
|
2be2570329 | ||
|
|
01692255cc | ||
|
|
753b90055a | ||
|
|
618f285e34 | ||
|
|
c7c2135320 | ||
|
|
caaf6e63f5 | ||
|
|
7571b765f0 | ||
|
|
c7a343536d | ||
|
|
20255af8ef | ||
|
|
39c53a9930 | ||
|
|
6104800c39 | ||
|
|
59a615b03f | ||
|
|
2bf69ec3a6 | ||
|
|
79b546c9bd | ||
|
|
ee5ed8a3fe | ||
|
|
10e8263963 | ||
|
|
029f8dce4d | ||
|
|
3aa419673c | ||
|
|
c137d96671 | ||
|
|
a1d28069cf | ||
|
|
f2e254d992 | ||
|
|
6a543b4d9c | ||
|
|
1717965ef4 | ||
|
|
634ad333b6 | ||
|
|
44800f9368 | ||
|
|
b615bec612 | ||
|
|
a003b9fc73 | ||
|
|
10843d5d55 | ||
|
|
220322f0cf | ||
|
|
0b144e9b31 | ||
|
|
9908a282c8 | ||
|
|
8341ed2c6d | ||
|
|
05908c80cd | ||
|
|
25bcf78fa7 | ||
|
|
5053f115e2 | ||
|
|
9c7993422c | ||
|
|
1e029f6f2a | ||
|
|
68863b2728 | ||
|
|
81efc666ad | ||
|
|
7965518f3c | ||
|
|
673d278aa3 | ||
|
|
30966c9ac0 | ||
|
|
9b058373f8 | ||
|
|
64be62f812 | ||
|
|
4398add6a5 | ||
|
|
7d7b3ad278 | ||
|
|
3dc68478eb | ||
|
|
1e6066b68f | ||
|
|
44cf237d1d | ||
|
|
a68e747291 | ||
|
|
4caab078d9 | ||
|
|
55fe0312d0 | ||
|
|
78920b507a | ||
|
|
1deb037c8e | ||
|
|
caf92532ae | ||
|
|
30294f6c0e | ||
|
|
15080fc251 | ||
|
|
292f96ff4f | ||
|
|
be622473b4 | ||
|
|
cb940a7288 | ||
|
|
95f4bcecf4 | ||
|
|
4be64b1ca2 | ||
|
|
f0bb2f7719 | ||
|
|
c4de8d8c96 | ||
|
|
c9c83c4ad2 | ||
|
|
aff41690b6 | ||
|
|
74eec39849 | ||
|
|
7f6a0583f1 | ||
|
|
ff9af122db | ||
|
|
02a4320bcd | ||
|
|
aa1a497079 | ||
|
|
a27623480f | ||
|
|
7b963cfbc5 | ||
|
|
bc9e8c403f | ||
|
|
179814803c | ||
|
|
df73d89a1c | ||
|
|
7cb6ca7958 | ||
|
|
22e5a0c8c0 | ||
|
|
7f8ab29dcb | ||
|
|
cb91b780ca | ||
|
|
57311e5df8 | ||
|
|
1107676239 | ||
|
|
7b5a3c1fd0 | ||
|
|
f3991600da | ||
|
|
dad5c123aa | ||
|
|
11551beed8 | ||
|
|
4cb64b11f1 | ||
|
|
2ec5372082 | ||
|
|
ea7087645f | ||
|
|
bc245cf13d | ||
|
|
298eb0857d | ||
|
|
cc1094f25c | ||
|
|
cd1c1074fe | ||
|
|
b4222ab69f | ||
|
|
476800df75 | ||
|
|
2ac036ebfb | ||
|
|
2d89e6048e | ||
|
|
b2e565ba75 | ||
|
|
6b7dc303b7 | ||
|
|
d5f3865e75 | ||
|
|
2ee8a9a4b9 | ||
|
|
a45abfed67 | ||
|
|
fb8352775c | ||
|
|
90c44ce934 | ||
|
|
fc43874b3d | ||
|
|
6ad3caff69 | ||
|
|
5327f2bda7 | ||
|
|
97fdd08843 | ||
|
|
c1425cc1d5 | ||
|
|
8f935bc37f | ||
|
|
95175131b3 | ||
|
|
1b493bdca3 | ||
|
|
3bdf0a6885 | ||
|
|
2813da82e5 | ||
|
|
ee89886bf1 | ||
|
|
70135b936f | ||
|
|
69f7a10d8e | ||
|
|
026edac15d | ||
|
|
45282ea0b8 | ||
|
|
d76583dcde | ||
|
|
8420fe1554 | ||
|
|
53190193d9 | ||
|
|
68f0e786c9 | ||
|
|
fa2eb19362 | ||
|
|
c56abaf801 | ||
|
|
b4a33928e8 | ||
|
|
7c3cd0fbcf | ||
|
|
a63cbcb6d3 | ||
|
|
8ed427554c | ||
|
|
0526023fec | ||
|
|
b00f9a463a | ||
|
|
aa887cfa4c | ||
|
|
bc94d297e5 | ||
|
|
33ef81bd13 | ||
|
|
b707bf2a1f |
@@ -13,7 +13,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
$Id: COPYRIGHT,v 1.14 2008/01/02 23:47:01 tbox Exp $
|
||||
$Id: COPYRIGHT,v 1.9.18.4.10.1 2008/07/23 07:28:54 tbox Exp $
|
||||
|
||||
Portions Copyright (C) 1996-2001 Nominum, Inc.
|
||||
|
||||
|
||||
48
FAQ
48
FAQ
@@ -1,6 +1,6 @@
|
||||
Frequently Asked Questions about BIND 9
|
||||
|
||||
Copyright © 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright © 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
|
||||
Copyright © 2000-2003 Internet Software Consortium.
|
||||
|
||||
@@ -396,8 +396,8 @@ A: Someone is trying to update your DNS data using the RFC2136 Dynamic
|
||||
Update protocol. Windows 2000 machines have a habit of sending dynamic
|
||||
update requests to DNS servers without being specifically configured to
|
||||
do so. If the update requests are coming from a Windows 2000 machine,
|
||||
see <http://support.microsoft.com/support/kb/articles/q246/8/04.asp>
|
||||
for information about how to turn them off.
|
||||
see http://support.microsoft.com/support/kb/articles/q246/8/04.asp for
|
||||
information about how to turn them off.
|
||||
|
||||
Q: When I do a "dig . ns", many of the A records for the root servers are
|
||||
missing. Why?
|
||||
@@ -468,7 +468,7 @@ A: If the IN-ADDR.ARPA name covered refers to a internal address space you
|
||||
are using then you have failed to follow RFC 1918 usage rules and are
|
||||
leaking queries to the Internet. You should establish your own zones
|
||||
for these addresses to prevent you querying the Internet's name servers
|
||||
for these addresses. Please see <http://as112.net/> for details of the
|
||||
for these addresses. Please see http://as112.net/ for details of the
|
||||
problems you are causing and the counter measures that have had to be
|
||||
deployed.
|
||||
|
||||
@@ -569,20 +569,7 @@ Q: Why do I get the following errors:
|
||||
|
||||
A: This is the result of a Linux kernel bug.
|
||||
|
||||
See: <http://marc.theaimsgroup.com/?l=linux-netdev&m=113081708031466&w=
|
||||
2>
|
||||
|
||||
Q: Why does named lock up when it attempts to connect over IPSEC tunnels?
|
||||
|
||||
A: This is due to a kernel bug where the fact that a socket is marked
|
||||
non-blocking is ignored. It is reported that setting xfrm_larval_drop
|
||||
to 1 helps but this may have negative side effects. See: <https://
|
||||
bugzilla.redhat.com/show_bug.cgi?id=427629> and <http://lkml.org/lkml/
|
||||
2007/12/4/260>.
|
||||
|
||||
xfrm_larval_drop can be set to 1 by the following procedure:
|
||||
|
||||
echo "1" > proc/sys/net/core/xfrm_larval_drop
|
||||
See: http://marc.theaimsgroup.com/?l=linux-netdev&m=113081708031466&w=2
|
||||
|
||||
Q: Why do I see 5 (or more) copies of named on Linux?
|
||||
|
||||
@@ -607,12 +594,7 @@ Q: I get the error message "named: capset failed: Operation not permitted"
|
||||
when starting named.
|
||||
|
||||
A: The capability module, part of "Linux Security Modules/LSM", has not
|
||||
been loaded into the kernel. See insmod(8), modprobe(8).
|
||||
|
||||
The relevant modules can be loaded by running:
|
||||
|
||||
modprobe commoncap
|
||||
modprobe capability
|
||||
been loaded into the kernel. See insmod(8).
|
||||
|
||||
Q: I'm running BIND on Red Hat Enterprise Linux or Fedora Core -
|
||||
|
||||
@@ -626,7 +608,7 @@ Q: I'm running BIND on Red Hat Enterprise Linux or Fedora Core -
|
||||
A: Red Hat Security Enhanced Linux (SELinux) policy security protections :
|
||||
|
||||
Red Hat have adopted the National Security Agency's SELinux security
|
||||
policy (see <http://www.nsa.gov/selinux>) and recommendations for BIND
|
||||
policy ( see http://www.nsa.gov/selinux ) and recommendations for BIND
|
||||
security , which are more secure than running named in a chroot and
|
||||
make use of the bind-chroot environment unnecessary .
|
||||
|
||||
@@ -717,18 +699,6 @@ 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: Listening on individual IPv6 interfaces does not work.
|
||||
|
||||
A: This is usually due to "/proc/net/if_inet6" not being available in the
|
||||
chroot file system. Mount another instance of "proc" in the chroot file
|
||||
system.
|
||||
|
||||
This can be be made permanent by adding a second instance to /etc/
|
||||
fstab.
|
||||
|
||||
proc /proc proc defaults 0 0
|
||||
proc /var/named/proc proc defaults 0 0
|
||||
|
||||
4.3. Windows
|
||||
|
||||
Q: Zone transfers from my BIND 9 master to my Windows 2000 slave fail.
|
||||
@@ -766,7 +736,7 @@ A: /dev/random is not configured. Use rndcontrol(8) to tell the kernel to
|
||||
/etc/rc.conf
|
||||
rand_irqs="3 14 15"
|
||||
|
||||
See also <http://people.freebsd.org/~dougb/randomness.html>.
|
||||
See also http://people.freebsd.org/~dougb/randomness.html
|
||||
|
||||
4.5. Solaris
|
||||
|
||||
@@ -774,7 +744,7 @@ Q: How do I integrate BIND 9 and Solaris SMF
|
||||
|
||||
A: Sun has a blog entry describing how to do this.
|
||||
|
||||
<http://blogs.sun.com/roller/page/anay/Weblog?catname=%2FSolaris>
|
||||
http://blogs.sun.com/roller/page/anay/Weblog?catname=%2FSolaris
|
||||
|
||||
4.6. Apple Mac OS X
|
||||
|
||||
|
||||
142
FAQ.xml
142
FAQ.xml
@@ -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-2008 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/or distribute this software for any
|
||||
@@ -17,7 +17,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: FAQ.xml,v 1.39 2008/05/31 01:44:13 marka Exp $ -->
|
||||
<!-- $Id: FAQ.xml,v 1.4.4.16 2007/10/31 02:14:07 marka Exp $ -->
|
||||
|
||||
<article class="faq">
|
||||
<title>Frequently Asked Questions about BIND 9</title>
|
||||
@@ -27,7 +27,6 @@
|
||||
<year>2005</year>
|
||||
<year>2006</year>
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -706,7 +705,8 @@ zone "list.dsbl.org" {
|
||||
requests are coming from a Windows 2000 machine, see
|
||||
<ulink
|
||||
url="http://support.microsoft.com/support/kb/articles/q246/8/04.asp">
|
||||
<http://support.microsoft.com/support/kb/articles/q246/8/04.asp></ulink>
|
||||
http://support.microsoft.com/support/kb/articles/q246/8/04.asp
|
||||
</ulink>
|
||||
for information about how to turn them off.
|
||||
</para>
|
||||
</answer>
|
||||
@@ -856,7 +856,7 @@ serial-query-rate 5; // default 20</programlisting>
|
||||
usage rules and are leaking queries to the Internet. You
|
||||
should establish your own zones for these addresses to prevent
|
||||
you querying the Internet's name servers for these addresses.
|
||||
Please see <ulink url="http://as112.net/"><http://as112.net/></ulink>
|
||||
Please see <ulink url="http://as112.net/">http://as112.net/</ulink>
|
||||
for details of the problems you are causing and the counter
|
||||
measures that have had to be deployed.
|
||||
</para>
|
||||
@@ -1009,31 +1009,7 @@ client: UDP client handler shutting down due to fatal receive error: unexpected
|
||||
</para>
|
||||
<para>
|
||||
See:
|
||||
<ulink url="http://marc.theaimsgroup.com/?l=linux-netdev&m=113081708031466&w=2"><http://marc.theaimsgroup.com/?l=linux-netdev&m=113081708031466&w=2></ulink>
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>
|
||||
Why does named lock up when it attempts to connect over IPSEC tunnels?
|
||||
</para>
|
||||
</question>
|
||||
<answer>
|
||||
<para>
|
||||
This is due to a kernel bug where the fact that a socket is marked
|
||||
non-blocking is ignored. It is reported that setting
|
||||
xfrm_larval_drop to 1 helps but this may have negative side effects.
|
||||
See:
|
||||
<ulink url="https://bugzilla.redhat.com/show_bug.cgi?id=427629"><https://bugzilla.redhat.com/show_bug.cgi?id=427629></ulink>
|
||||
and
|
||||
<ulink url="http://lkml.org/lkml/2007/12/4/260"><http://lkml.org/lkml/2007/12/4/260></ulink>.
|
||||
</para>
|
||||
<para>
|
||||
xfrm_larval_drop can be set to 1 by the following procedure:
|
||||
<programlisting>
|
||||
echo "1" > proc/sys/net/core/xfrm_larval_drop</programlisting>
|
||||
<ulink url="http://marc.theaimsgroup.com/?l=linux-netdev&m=113081708031466&w=2">http://marc.theaimsgroup.com/?l=linux-netdev&m=113081708031466&w=2</ulink>
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
@@ -1088,13 +1064,7 @@ echo "1" > proc/sys/net/core/xfrm_larval_drop</programlisting>
|
||||
<answer>
|
||||
<para>
|
||||
The capability module, part of "Linux Security Modules/LSM",
|
||||
has not been loaded into the kernel. See insmod(8), modprobe(8).
|
||||
</para>
|
||||
<para>
|
||||
The relevant modules can be loaded by running:
|
||||
<programlisting>
|
||||
modprobe commoncap
|
||||
modprobe capability</programlisting>
|
||||
has not been loaded into the kernel. See insmod(8).
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
@@ -1124,9 +1094,8 @@ modprobe capability</programlisting>
|
||||
|
||||
<para>
|
||||
Red Hat have adopted the National Security Agency's
|
||||
SELinux security policy (see <ulink
|
||||
url="http://www.nsa.gov/selinux"><http://www.nsa.gov/selinux></ulink>)
|
||||
and recommendations for BIND security , which are more
|
||||
SELinux security policy ( see http://www.nsa.gov/selinux
|
||||
) and recommendations for BIND security , which are more
|
||||
secure than running named in a chroot and make use of
|
||||
the bind-chroot environment unnecessary .
|
||||
</para>
|
||||
@@ -1264,30 +1233,6 @@ named_cache_t: for files modifiable by named - $ROOTDIR/var/{tmp,named/{slaves,d
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>
|
||||
Listening on individual IPv6 interfaces does not work.
|
||||
</para>
|
||||
</question>
|
||||
<answer>
|
||||
<para>
|
||||
This is usually due to "/proc/net/if_inet6" not being available
|
||||
in the chroot file system. Mount another instance of "proc"
|
||||
in the chroot file system.
|
||||
</para>
|
||||
<para>
|
||||
This can be be made permanent by adding a second instance to
|
||||
/etc/fstab.
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
proc /proc proc defaults 0 0
|
||||
proc /var/named/proc proc defaults 0 0</programlisting>
|
||||
</informalexample>
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
</qandadiv> <!-- Linux -->
|
||||
|
||||
@@ -1365,7 +1310,8 @@ rand_irqs="3 14 15"</programlisting>
|
||||
<para>
|
||||
See also
|
||||
<ulink url="http://people.freebsd.org/~dougb/randomness.html">
|
||||
<http://people.freebsd.org/~dougb/randomness.html></ulink>.
|
||||
http://people.freebsd.org/~dougb/randomness.html
|
||||
</ulink>
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
@@ -1387,76 +1333,12 @@ rand_irqs="3 14 15"</programlisting>
|
||||
<para>
|
||||
<ulink
|
||||
url="http://blogs.sun.com/roller/page/anay/Weblog?catname=%2FSolaris">
|
||||
<http://blogs.sun.com/roller/page/anay/Weblog?catname=%2FSolaris>
|
||||
http://blogs.sun.com/roller/page/anay/Weblog?catname=%2FSolaris
|
||||
</ulink>
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
</qandadiv>
|
||||
|
||||
<qandadiv><title>Apple Mac OS X</title>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>
|
||||
How do I run BIND 9 on Apple Mac OS X?
|
||||
</para>
|
||||
</question>
|
||||
<answer>
|
||||
<para>
|
||||
If you run Tiger(Mac OS 10.4) or later then this is all you need to do:
|
||||
</para>
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
% sudo rndc-confgen > /etc/rndc.conf</programlisting>
|
||||
</informalexample>
|
||||
<para>
|
||||
Copy the key statement from /etc/rndc.conf into /etc/rndc.key, e.g.:
|
||||
</para>
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
key "rndc-key" {
|
||||
algorithm hmac-md5;
|
||||
secret "uvceheVuqf17ZwIcTydddw==";
|
||||
};</programlisting>
|
||||
</informalexample>
|
||||
<para>
|
||||
Then start the relevant service:
|
||||
</para>
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
% sudo service org.isc.named start</programlisting>
|
||||
</informalexample>
|
||||
<para>
|
||||
This is persistent upon a reboot, so you will have to do it only once.
|
||||
</para>
|
||||
</answer>
|
||||
|
||||
<answer>
|
||||
<para>
|
||||
Alternatively you can just generate /etc/rndc.key by running:
|
||||
</para>
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
% sudo rndc-confgen -a</programlisting>
|
||||
</informalexample>
|
||||
<para>
|
||||
Then start the relevant service:
|
||||
</para>
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
% sudo service org.isc.named start</programlisting>
|
||||
</informalexample>
|
||||
<para>
|
||||
Named will look for /etc/rndc.key when it starts if it
|
||||
doesn't have a controls section or the existing controls are
|
||||
missing keys sub-clauses. This is persistent upon a
|
||||
reboot, so you will have to do it only once.
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
</qandadiv>
|
||||
|
||||
</qandadiv> <!-- Operating-System Specific Questions -->
|
||||
|
||||
@@ -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.50 2007/09/03 00:36:53 marka Exp $
|
||||
# $Id: Makefile.in,v 1.43.18.6 2007/09/03 23:46:21 tbox Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
154
README
154
README
@@ -43,33 +43,25 @@ BIND 9
|
||||
Nominum, Inc.
|
||||
|
||||
|
||||
BIND 9.5.0
|
||||
BIND 9.4.2
|
||||
|
||||
BIND 9.5.0 has a number of new features over 9.4,
|
||||
including:
|
||||
BIND 9.4.2 is a maintenance release, containing fixes for
|
||||
a number of bugs in 9.4.1.
|
||||
|
||||
GSS-TSIG support (RFC 3645).
|
||||
Warning: If you installed BIND 9.4.2rc1 then any applications
|
||||
linked against this release candidate will need to be rebuilt.
|
||||
|
||||
DHCID support.
|
||||
BIND 9.4.1
|
||||
|
||||
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.1 is a security release, containing a fix for
|
||||
a security bugs in 9.4.0.
|
||||
|
||||
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 behavior.
|
||||
@@ -160,12 +152,11 @@ BIND 9.4.0
|
||||
|
||||
Add support for CH A record.
|
||||
|
||||
Add additional zone data constancy checks. named-checkzone
|
||||
Add additional zone data consistancy 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.
|
||||
@@ -178,7 +169,7 @@ BIND 9.4.0
|
||||
Detect duplicates of UDP queries we are recursing on and
|
||||
drop them. New stats category "duplicates".
|
||||
|
||||
"USE INTERNAL MALLOC" is now runtime selectable.
|
||||
Memory management. "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
|
||||
@@ -193,9 +184,9 @@ BIND 9.4.0
|
||||
|
||||
Support for IPSECKEY rdata type.
|
||||
|
||||
Raise the UDP recieve buffer size to 32k if it is less than 32k.
|
||||
Raise the UDP receive buffer size to 32k if it is less than 32k.
|
||||
|
||||
x86 and x86_64 now have seperate atomic locking implementations.
|
||||
x86 and x86_64 now have separate atomic locking implementations.
|
||||
|
||||
named-checkconf now validates update-policy entries.
|
||||
|
||||
@@ -223,9 +214,69 @@ BIND 9.4.0
|
||||
to set 'RA' when 'RD' is set unless a server is explicitly
|
||||
set.
|
||||
|
||||
Integrate contibuted DLZ code into named.
|
||||
Integrate contributed DLZ code into named.
|
||||
|
||||
Integrate contibuted IDN code from JPNIC.
|
||||
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.
|
||||
|
||||
libbind: corresponds to that from BIND 8.4.7.
|
||||
|
||||
@@ -372,31 +423,27 @@ 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
|
||||
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
|
||||
NetBSD 1.5
|
||||
Slackware Linux 8.1
|
||||
Solaris 8, 9, 9 (x86)
|
||||
Windows NT/2000/XP/2003
|
||||
|
||||
We have recent reports from the user community that a supported
|
||||
version of BIND will build and run on the following systems:
|
||||
Additionally, we have unverified reports of success building
|
||||
previous versions of BIND 9 from users of the following systems:
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
To build, just
|
||||
|
||||
@@ -433,6 +480,8 @@ 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
|
||||
|
||||
LDFLAGS
|
||||
Linker flags. Defaults to empty string.
|
||||
@@ -468,11 +517,6 @@ 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.
|
||||
@@ -515,9 +559,6 @@ Building
|
||||
on your system, and some require Perl; see bin/tests/system/README
|
||||
for details.
|
||||
|
||||
SunOS 4 requires "printf" to be installed to make the shared
|
||||
libraries. sh-utils-1.16 provides a "printf" which compiles
|
||||
on SunOS 4.
|
||||
|
||||
Documentation
|
||||
|
||||
@@ -553,9 +594,8 @@ 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 Workers mailing list.
|
||||
Send mail to
|
||||
|
||||
bind-workers-request@isc.org
|
||||
|
||||
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.
|
||||
|
||||
http://www.isc.org/sw/guild/bf/
|
||||
|
||||
@@ -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 2005/09/09 06:13:57 marka Exp $
|
||||
; $Id: README.idnkit,v 1.2.2.2 2005/09/12 02:12:08 marka Exp $
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
|
||||
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,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: acconfig.h,v 1.51 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: acconfig.h,v 1.44.18.5 2005/04/29 00:15:20 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 1998-2001 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# 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.
|
||||
#
|
||||
@@ -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.25 2007/06/19 23:46:59 tbox Exp $
|
||||
# $Id: Makefile.in,v 1.23 2004/03/05 04:57:10 marka Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# 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.
|
||||
#
|
||||
@@ -13,7 +13,7 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.32 2007/06/19 23:46:59 tbox Exp $
|
||||
# $Id: Makefile.in,v 1.24.18.6 2006/06/09 00:54:08 marka Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: check-tool.c,v 1.34 2008/01/18 23:46:57 tbox Exp $ */
|
||||
/* $Id: check-tool.c,v 1.10.18.18 2007/09/13 05:04:01 each Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -24,17 +24,16 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#include "check-tool.h"
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/netdb.h>
|
||||
#include <isc/net.h>
|
||||
#include <isc/netdb.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>
|
||||
@@ -60,16 +59,7 @@
|
||||
result = (r); \
|
||||
if (result != ISC_R_SUCCESS) \
|
||||
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
|
||||
} while (0)
|
||||
|
||||
static const char *dbtype[] = { "rbt" };
|
||||
|
||||
@@ -78,7 +68,7 @@ isc_boolean_t nomerge = ISC_TRUE;
|
||||
isc_boolean_t docheckmx = ISC_TRUE;
|
||||
isc_boolean_t dochecksrv = ISC_TRUE;
|
||||
isc_boolean_t docheckns = ISC_TRUE;
|
||||
unsigned int zone_options = DNS_ZONEOPT_CHECKNS |
|
||||
unsigned int zone_options = DNS_ZONEOPT_CHECKNS |
|
||||
DNS_ZONEOPT_CHECKMX |
|
||||
DNS_ZONEOPT_MANYERRORS |
|
||||
DNS_ZONEOPT_CHECKNAMES |
|
||||
@@ -101,58 +91,6 @@ 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)
|
||||
@@ -187,7 +125,7 @@ checkns(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner,
|
||||
if (dns_name_countlabels(name) > 1U)
|
||||
strcat(namebuf, ".");
|
||||
dns_name_format(owner, ownerbuf, sizeof(ownerbuf));
|
||||
|
||||
|
||||
result = getaddrinfo(namebuf, NULL, &hints, &ai);
|
||||
dns_name_format(name, namebuf, sizeof(namebuf) - 1);
|
||||
switch (result) {
|
||||
@@ -200,40 +138,30 @@ checkns(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner,
|
||||
while (cur != NULL && cur->ai_canonname == NULL &&
|
||||
cur->ai_next != NULL)
|
||||
cur = cur->ai_next;
|
||||
if (ai != NULL && cur->ai_canonname != NULL &&
|
||||
strcasecmp(ai->ai_canonname, namebuf) != 0 &&
|
||||
!logged(namebuf, ERR_IS_CNAME)) {
|
||||
if (cur != NULL && cur->ai_canonname != NULL &&
|
||||
strcasecmp(ai->ai_canonname, namebuf) != 0) {
|
||||
dns_zone_log(zone, ISC_LOG_ERROR,
|
||||
"%s/NS '%s' (out of zone) "
|
||||
"is a CNAME '%s' (illegal)",
|
||||
ownerbuf, namebuf,
|
||||
cur->ai_canonname);
|
||||
"is a CNAME (illegal)",
|
||||
ownerbuf, namebuf);
|
||||
/* 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
|
||||
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);
|
||||
}
|
||||
dns_zone_log(zone, ISC_LOG_ERROR, "%s/NS '%s' (out of zone) "
|
||||
"has no addresses records (A or AAAA)",
|
||||
ownerbuf, namebuf);
|
||||
/* XXX950 make fatal for 9.5.0 */
|
||||
return (ISC_TRUE);
|
||||
|
||||
default:
|
||||
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);
|
||||
}
|
||||
dns_zone_log(zone, ISC_LOG_WARNING,
|
||||
"getaddrinfo(%s) failed: %s",
|
||||
namebuf, gai_strerror(result));
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
if (a == NULL || aaaa == NULL)
|
||||
@@ -256,13 +184,12 @@ checkns(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner,
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!match && !logged(namebuf, ERR_EXTRA_A)) {
|
||||
if (!match) {
|
||||
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; */
|
||||
}
|
||||
@@ -286,13 +213,12 @@ checkns(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner,
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!match && !logged(namebuf, ERR_EXTRA_AAAA)) {
|
||||
if (!match) {
|
||||
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; */
|
||||
}
|
||||
@@ -304,48 +230,42 @@ checkns(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner,
|
||||
/*
|
||||
* Check that all addresses appear in the glue.
|
||||
*/
|
||||
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;
|
||||
}
|
||||
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 (missing_glue)
|
||||
add(namebuf, ERR_MISSING_GLUE);
|
||||
}
|
||||
freeaddrinfo(ai);
|
||||
return (answer);
|
||||
@@ -377,7 +297,7 @@ checkmx(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner) {
|
||||
if (dns_name_countlabels(name) > 1U)
|
||||
strcat(namebuf, ".");
|
||||
dns_name_format(owner, ownerbuf, sizeof(ownerbuf));
|
||||
|
||||
|
||||
result = getaddrinfo(namebuf, NULL, &hints, &ai);
|
||||
dns_name_format(name, namebuf, sizeof(namebuf) - 1);
|
||||
switch (result) {
|
||||
@@ -395,15 +315,10 @@ 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) {
|
||||
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);
|
||||
}
|
||||
dns_zone_log(zone, ISC_LOG_WARNING,
|
||||
"%s/MX '%s' (out of zone) "
|
||||
"is a CNAME (illegal)",
|
||||
ownerbuf, namebuf);
|
||||
if (level == ISC_LOG_ERROR)
|
||||
answer = ISC_FALSE;
|
||||
}
|
||||
@@ -415,23 +330,16 @@ 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
|
||||
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);
|
||||
}
|
||||
dns_zone_log(zone, ISC_LOG_ERROR, "%s/MX '%s' (out of zone) "
|
||||
"has no addresses records (A or AAAA)",
|
||||
ownerbuf, namebuf);
|
||||
/* XXX950 make fatal for 9.5.0. */
|
||||
return (ISC_TRUE);
|
||||
|
||||
default:
|
||||
if (!logged(namebuf, ERR_LOOKUP_FAILURE)) {
|
||||
dns_zone_log(zone, ISC_LOG_WARNING,
|
||||
dns_zone_log(zone, ISC_LOG_WARNING,
|
||||
"getaddrinfo(%s) failed: %s",
|
||||
namebuf, gai_strerror(result));
|
||||
add(namebuf, ERR_LOOKUP_FAILURE);
|
||||
}
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
#else
|
||||
@@ -462,7 +370,7 @@ checksrv(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner) {
|
||||
if (dns_name_countlabels(name) > 1U)
|
||||
strcat(namebuf, ".");
|
||||
dns_name_format(owner, ownerbuf, sizeof(ownerbuf));
|
||||
|
||||
|
||||
result = getaddrinfo(namebuf, NULL, &hints, &ai);
|
||||
dns_name_format(name, namebuf, sizeof(namebuf) - 1);
|
||||
switch (result) {
|
||||
@@ -480,14 +388,10 @@ 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) {
|
||||
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);
|
||||
}
|
||||
dns_zone_log(zone, level,
|
||||
"%s/SRV '%s' (out of zone) "
|
||||
"is a CNAME (illegal)",
|
||||
ownerbuf, namebuf);
|
||||
if (level == ISC_LOG_ERROR)
|
||||
answer = ISC_FALSE;
|
||||
}
|
||||
@@ -499,23 +403,16 @@ 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
|
||||
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);
|
||||
}
|
||||
dns_zone_log(zone, ISC_LOG_ERROR, "%s/SRV '%s' (out of zone) "
|
||||
"has no addresses records (A or AAAA)",
|
||||
ownerbuf, namebuf);
|
||||
/* XXX950 make fatal for 9.5.0. */
|
||||
return (ISC_TRUE);
|
||||
|
||||
default:
|
||||
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);
|
||||
}
|
||||
dns_zone_log(zone, ISC_LOG_WARNING,
|
||||
"getaddrinfo(%s) failed: %s",
|
||||
namebuf, gai_strerror(result));
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
#else
|
||||
@@ -524,7 +421,7 @@ checksrv(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner) {
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
setup_logging(isc_mem_t *mctx, FILE *errout, isc_log_t **logp) {
|
||||
setup_logging(isc_mem_t *mctx, isc_log_t **logp) {
|
||||
isc_logdestination_t destination;
|
||||
isc_logconfig_t *logconfig = NULL;
|
||||
isc_log_t *log = NULL;
|
||||
@@ -536,7 +433,7 @@ setup_logging(isc_mem_t *mctx, FILE *errout, isc_log_t **logp) {
|
||||
dns_log_setcontext(log);
|
||||
cfg_log_init(log);
|
||||
|
||||
destination.file.stream = errout;
|
||||
destination.file.stream = stdout;
|
||||
destination.file.name = NULL;
|
||||
destination.file.versions = ISC_LOG_ROLLNEVER;
|
||||
destination.file.maximum_size = 0;
|
||||
@@ -620,14 +517,14 @@ dump_zone(const char *zonename, dns_zone_t *zone, const char *filename,
|
||||
FILE *output = stdout;
|
||||
|
||||
if (debug) {
|
||||
if (filename != NULL && strcmp(filename, "-") != 0)
|
||||
if (filename != NULL)
|
||||
fprintf(stderr, "dumping \"%s\" to \"%s\"\n",
|
||||
zonename, filename);
|
||||
else
|
||||
fprintf(stderr, "dumping \"%s\"\n", zonename);
|
||||
}
|
||||
|
||||
if (filename != NULL && strcmp(filename, "-") != 0) {
|
||||
if (filename != NULL) {
|
||||
result = isc_stdio_open(filename, "w+", &output);
|
||||
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
@@ -639,7 +536,7 @@ dump_zone(const char *zonename, dns_zone_t *zone, const char *filename,
|
||||
|
||||
result = dns_zone_dumptostream2(zone, output, fileformat, style);
|
||||
|
||||
if (output != stdout)
|
||||
if (filename != NULL)
|
||||
(void)isc_stdio_close(output);
|
||||
|
||||
return (result);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: check-tool.h,v 1.14 2007/06/18 23:47:17 tbox Exp $ */
|
||||
/* $Id: check-tool.h,v 1.7.18.4 2005/06/20 01:19:25 marka Exp $ */
|
||||
|
||||
#ifndef CHECK_TOOL_H
|
||||
#define CHECK_TOOL_H
|
||||
@@ -23,7 +23,6 @@
|
||||
/*! \file */
|
||||
|
||||
#include <isc/lang.h>
|
||||
#include <isc/stdio.h>
|
||||
#include <isc/types.h>
|
||||
|
||||
#include <dns/masterdump.h>
|
||||
@@ -32,7 +31,7 @@
|
||||
ISC_LANG_BEGINDECLS
|
||||
|
||||
isc_result_t
|
||||
setup_logging(isc_mem_t *mctx, FILE *errout, isc_log_t **logp);
|
||||
setup_logging(isc_mem_t *mctx, 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.30 2007/06/20 02:27:32 marka Exp $
|
||||
.\" $Id: named-checkconf.8,v 1.16.18.13 2007/06/20 02:26:58 marka Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -33,18 +33,13 @@
|
||||
named\-checkconf \- named configuration file syntax checking tool
|
||||
.SH "SYNOPSIS"
|
||||
.HP 16
|
||||
\fBnamed\-checkconf\fR [\fB\-h\fR] [\fB\-v\fR] [\fB\-j\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] {filename} [\fB\-z\fR]
|
||||
\fBnamed\-checkconf\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
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: named-checkconf.c,v 1.46 2007/11/26 02:12:45 marka Exp $ */
|
||||
/* $Id: named-checkconf.c,v 1.28.18.14 2006/02/28 03:10:47 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -47,8 +47,6 @@
|
||||
|
||||
#include "check-tool.h"
|
||||
|
||||
static const char *program = "named-checkconf";
|
||||
|
||||
isc_log_t *logc = NULL;
|
||||
|
||||
#define CHECK(r)\
|
||||
@@ -61,8 +59,8 @@ isc_log_t *logc = NULL;
|
||||
/*% usage */
|
||||
static void
|
||||
usage(void) {
|
||||
fprintf(stderr, "usage: %s [-h] [-j] [-v] [-z] [-t directory] "
|
||||
"[named.conf]\n", program);
|
||||
fprintf(stderr, "usage: named-checkconf [-j] [-v] [-z] [-t directory] "
|
||||
"[named.conf]\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@@ -226,8 +224,7 @@ configure_zone(const char *vclass, const char *view,
|
||||
zone_options |= DNS_ZONEOPT_CHECKINTEGRITY;
|
||||
else
|
||||
zone_options &= ~DNS_ZONEOPT_CHECKINTEGRITY;
|
||||
} else
|
||||
zone_options |= DNS_ZONEOPT_CHECKINTEGRITY;
|
||||
}
|
||||
|
||||
obj = NULL;
|
||||
if (get_maps(maps, "check-mx-cname", &obj)) {
|
||||
@@ -400,9 +397,7 @@ main(int argc, char **argv) {
|
||||
isc_entropy_t *ectx = NULL;
|
||||
isc_boolean_t load_zones = ISC_FALSE;
|
||||
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
while ((c = isc_commandline_parse(argc, argv, "dhjt:vz")) != EOF) {
|
||||
while ((c = isc_commandline_parse(argc, argv, "djt:vz")) != EOF) {
|
||||
switch (c) {
|
||||
case 'd':
|
||||
debug++;
|
||||
@@ -438,22 +433,11 @@ main(int argc, char **argv) {
|
||||
dochecksrv = ISC_FALSE;
|
||||
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);
|
||||
usage();
|
||||
}
|
||||
}
|
||||
|
||||
if (isc_commandline_index + 1 < argc)
|
||||
usage();
|
||||
if (argv[isc_commandline_index] != NULL)
|
||||
conffile = argv[isc_commandline_index];
|
||||
if (conffile == NULL || conffile[0] == '\0')
|
||||
@@ -461,7 +445,7 @@ main(int argc, char **argv) {
|
||||
|
||||
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
|
||||
|
||||
RUNTIME_CHECK(setup_logging(mctx, stdout, &logc) == ISC_R_SUCCESS);
|
||||
RUNTIME_CHECK(setup_logging(mctx, &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.19 2007/06/19 06:58:03 marka Exp $ -->
|
||||
<!-- $Id: named-checkconf.docbook,v 1.8.18.10 2007/08/28 07:19:55 tbox Exp $ -->
|
||||
<refentry id="man.named-checkconf">
|
||||
<refentryinfo>
|
||||
<date>June 14, 2000</date>
|
||||
@@ -53,7 +53,6 @@
|
||||
<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>
|
||||
@@ -74,15 +73,6 @@
|
||||
<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.30 2007/06/20 02:27:32 marka Exp $ -->
|
||||
<!-- $Id: named-checkconf.html,v 1.9.18.20 2007/06/20 02:26:58 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -29,22 +29,18 @@
|
||||
</div>
|
||||
<div class="refsynopsisdiv">
|
||||
<h2>Synopsis</h2>
|
||||
<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 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>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543387"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543383"></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="id2543399"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543395"></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
|
||||
@@ -74,21 +70,21 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543507"></a><h2>RETURN VALUES</h2>
|
||||
<a name="id2543489"></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="id2543518"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2543500"></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="id2543548"></a><h2>AUTHOR</h2>
|
||||
<a name="id2543530"></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.42 2007/06/20 02:27:32 marka Exp $
|
||||
.\" $Id: named-checkzone.8,v 1.18.18.23 2007/06/20 02:26:58 marka Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -33,7 +33,7 @@
|
||||
named\-checkzone, named\-compilezone \- zone file validity checking or converting tool
|
||||
.SH "SYNOPSIS"
|
||||
.HP 16
|
||||
\fBnamed\-checkzone\fR [\fB\-d\fR] [\fB\-h\fR] [\fB\-j\fR] [\fB\-q\fR] [\fB\-v\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-f\ \fR\fB\fIformat\fR\fR] [\fB\-F\ \fR\fB\fIformat\fR\fR] [\fB\-i\ \fR\fB\fImode\fR\fR] [\fB\-k\ \fR\fB\fImode\fR\fR] [\fB\-m\ \fR\fB\fImode\fR\fR] [\fB\-M\ \fR\fB\fImode\fR\fR] [\fB\-n\ \fR\fB\fImode\fR\fR] [\fB\-o\ \fR\fB\fIfilename\fR\fR] [\fB\-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\-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}
|
||||
.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}
|
||||
.SH "DESCRIPTION"
|
||||
@@ -58,11 +58,6 @@ 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.
|
||||
@@ -193,11 +188,7 @@ 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. If
|
||||
\fIfilename\fR
|
||||
is
|
||||
\fI\-\fR
|
||||
then write to standard out. This is mandatory for
|
||||
\fIfilename\fR. This is mandatory for
|
||||
\fBnamed\-compilezone\fR.
|
||||
.RE
|
||||
.PP
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: named-checkzone.c,v 1.49 2007/06/18 23:47:17 tbox Exp $ */
|
||||
/* $Id: named-checkzone.c,v 1.29.18.19 2007/08/28 07:19:55 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -105,7 +105,6 @@ 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;
|
||||
|
||||
@@ -140,10 +139,8 @@ 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:hi:jk:m:n:qs:t:o:vw:DF:M:S:W:"))
|
||||
"c:df:i:jk:m:n:qs:t:o:vw:DF:M:S:W:"))
|
||||
!= EOF) {
|
||||
switch (c) {
|
||||
case 'c':
|
||||
@@ -345,17 +342,17 @@ main(int argc, char **argv) {
|
||||
zone_options &= ~DNS_ZONEOPT_CHECKWILDCARD;
|
||||
break;
|
||||
|
||||
case '?':
|
||||
if (isc_commandline_option != '?')
|
||||
fprintf(stderr, "%s: invalid argument -%c\n",
|
||||
prog_name, isc_commandline_option);
|
||||
case 'h':
|
||||
usage();
|
||||
|
||||
default:
|
||||
fprintf(stderr, "%s: unhandled option -%c\n",
|
||||
prog_name, isc_commandline_option);
|
||||
exit(1);
|
||||
usage();
|
||||
}
|
||||
}
|
||||
|
||||
if (progmode == progmode_compile) {
|
||||
dumpzone = 1; /* always dump */
|
||||
if (output_filename == NULL) {
|
||||
fprintf(stderr,
|
||||
"output file required, but not specified\n");
|
||||
usage();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -392,36 +389,12 @@ main(int argc, char **argv) {
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
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, errout, &lctx)
|
||||
== ISC_R_SUCCESS);
|
||||
RUNTIME_CHECK(setup_logging(mctx, &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);
|
||||
@@ -435,17 +408,17 @@ main(int argc, char **argv) {
|
||||
|
||||
if (result == ISC_R_SUCCESS && dumpzone) {
|
||||
if (!quiet && progmode == progmode_compile) {
|
||||
fprintf(errout, "dump zone to %s...", output_filename);
|
||||
fflush(errout);
|
||||
fprintf(stdout, "dump zone to %s...", output_filename);
|
||||
fflush(stdout);
|
||||
}
|
||||
result = dump_zone(origin, zone, output_filename,
|
||||
outputformat, outputstyle);
|
||||
if (!quiet && progmode == progmode_compile)
|
||||
fprintf(errout, "done\n");
|
||||
fprintf(stdout, "done\n");
|
||||
}
|
||||
|
||||
if (!quiet && result == ISC_R_SUCCESS)
|
||||
fprintf(errout, "OK\n");
|
||||
fprintf(stdout, "OK\n");
|
||||
destroy();
|
||||
if (lctx != NULL)
|
||||
isc_log_destroy(&lctx);
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: named-checkzone.docbook,v 1.34 2007/06/19 06:58:03 marka Exp $ -->
|
||||
<!-- $Id: named-checkzone.docbook,v 1.11.18.21 2007/08/28 07:19:55 tbox Exp $ -->
|
||||
<refentry id="man.named-checkzone">
|
||||
<refentryinfo>
|
||||
<date>June 13, 2000</date>
|
||||
@@ -56,7 +56,6 @@
|
||||
<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>
|
||||
@@ -137,15 +136,6 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-h</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Print the usage summary and exit.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-q</term>
|
||||
<listitem>
|
||||
@@ -311,8 +301,6 @@
|
||||
<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.42 2007/06/20 02:27:32 marka Exp $ -->
|
||||
<!-- $Id: named-checkzone.html,v 1.11.18.30 2007/06/20 02:26:58 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -29,11 +29,11 @@
|
||||
</div>
|
||||
<div class="refsynopsisdiv">
|
||||
<h2>Synopsis</h2>
|
||||
<div class="cmdsynopsis"><p><code class="command">named-checkzone</code> [<code class="option">-d</code>] [<code class="option">-h</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-M <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-o <em class="replaceable"><code>filename</code></em></code>] [<code class="option">-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-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>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543669"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543665"></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,16 +53,12 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543704"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543700"></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.
|
||||
@@ -173,8 +169,6 @@
|
||||
<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>
|
||||
@@ -239,14 +233,14 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544325"></a><h2>RETURN VALUES</h2>
|
||||
<a name="id2544299"></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="id2544337"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2544311"></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>,
|
||||
@@ -254,7 +248,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544370"></a><h2>AUTHOR</h2>
|
||||
<a name="id2544344"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# 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.
|
||||
#
|
||||
@@ -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.41 2007/06/19 23:46:59 tbox Exp $
|
||||
# $Id: Makefile.in,v 1.33.18.6 2005/09/09 14:11:04 marka Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2004-2008 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
|
||||
@@ -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.48 2008/05/15 01:12:20 tbox Exp $
|
||||
.\" $Id: dig.1,v 1.23.18.22 2007/05/16 06:11:27 marka Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -489,11 +489,6 @@ 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
|
||||
@@ -556,7 +551,7 @@ RFC1035.
|
||||
.PP
|
||||
There are probably too many query options.
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004\-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004\-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
Copyright \(co 2000\-2003 Internet Software Consortium.
|
||||
.br
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 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/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dig.c,v 1.221 2008/04/03 02:01:08 marka Exp $ */
|
||||
/* $Id: dig.c,v 1.186.18.29 2007/08/28 07:19:55 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
#define ADD_STRING(b, s) { \
|
||||
if (strlen(s) >= isc_buffer_availablelength(b)) \
|
||||
return (ISC_R_NOSPACE); \
|
||||
return (ISC_R_NOSPACE); \
|
||||
else \
|
||||
isc_buffer_putstr(b, s); \
|
||||
}
|
||||
@@ -144,8 +144,8 @@ help(void) {
|
||||
" q-type is one of (a,any,mx,ns,soa,hinfo,axfr,txt,...) [default:a]\n"
|
||||
" (Use ixfr=version for type ixfr)\n"
|
||||
" q-opt is one of:\n"
|
||||
" -x dot-notation (shortcut for reverse lookups)\n"
|
||||
" -i (use IP6.INT for IPv6 reverse lookups)\n"
|
||||
" -x dot-notation (shortcut for in-addr lookups)\n"
|
||||
" -i (IP6.INT reverse IPv6 lookups)\n"
|
||||
" -f filename (batch mode)\n"
|
||||
" -b address[#port] (bind to source address/port)\n"
|
||||
" -p port (specify port number)\n"
|
||||
@@ -194,7 +194,6 @@ 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"
|
||||
@@ -384,7 +383,7 @@ printrdataset(dns_name_t *owner_name, dns_rdataset_t *rdataset,
|
||||
else if (nottl || noclass)
|
||||
result = dns_master_stylecreate(&style, styleflags,
|
||||
24, 24, 32, 40, 80, 8, mctx);
|
||||
else
|
||||
else
|
||||
result = dns_master_stylecreate(&style, styleflags,
|
||||
24, 32, 40, 48, 80, 8, mctx);
|
||||
check_result(result, "dns_master_stylecreate");
|
||||
@@ -393,7 +392,7 @@ printrdataset(dns_name_t *owner_name, dns_rdataset_t *rdataset,
|
||||
|
||||
if (style != NULL)
|
||||
dns_master_styledestroy(&style, mctx);
|
||||
|
||||
|
||||
return(result);
|
||||
}
|
||||
#endif
|
||||
@@ -430,7 +429,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
|
||||
else if (nottl || noclass)
|
||||
result = dns_master_stylecreate(&style, styleflags,
|
||||
24, 24, 32, 40, 80, 8, mctx);
|
||||
else
|
||||
else
|
||||
result = dns_master_stylecreate(&style, styleflags,
|
||||
24, 32, 40, 48, 80, 8, mctx);
|
||||
check_result(result, "dns_master_stylecreate");
|
||||
@@ -639,7 +638,7 @@ printgreeting(int argc, char **argv, dig_lookup_t *lookup) {
|
||||
strncat(lookup->cmdline, append, remaining);
|
||||
}
|
||||
if (first) {
|
||||
snprintf(append, sizeof(append),
|
||||
snprintf(append, sizeof(append),
|
||||
";; global options: %s %s\n",
|
||||
short_form ? "short_form" : "",
|
||||
printcmd ? "printcmd" : "");
|
||||
@@ -717,7 +716,7 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
FULLCHECK2("aaonly", "aaflag");
|
||||
lookup->aaonly = state;
|
||||
break;
|
||||
case 'd':
|
||||
case 'd':
|
||||
switch (cmd[2]) {
|
||||
case 'd': /* additional */
|
||||
FULLCHECK("additional");
|
||||
@@ -802,13 +801,13 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
FULLCHECK("defname");
|
||||
usesearch = state;
|
||||
break;
|
||||
case 'n': /* dnssec */
|
||||
case 'n': /* dnssec */
|
||||
FULLCHECK("dnssec");
|
||||
if (state && lookup->edns == -1)
|
||||
lookup->edns = 0;
|
||||
lookup->dnssec = state;
|
||||
break;
|
||||
case 'o': /* domain */
|
||||
case 'o': /* domain */
|
||||
FULLCHECK("domain");
|
||||
if (value == NULL)
|
||||
goto need_value;
|
||||
@@ -861,40 +860,28 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
goto invalid_option;
|
||||
ndots = parse_uint(value, "ndots", MAXNDOTS);
|
||||
break;
|
||||
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;
|
||||
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;
|
||||
case 'q':
|
||||
case 'q':
|
||||
switch (cmd[1]) {
|
||||
case 'r': /* qr */
|
||||
FULLCHECK("qr");
|
||||
@@ -970,11 +957,11 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
break;
|
||||
#ifdef DIG_SIGCHASE
|
||||
case 'i': /* sigchase */
|
||||
FULLCHECK("sigchase");
|
||||
FULLCHECK("sigchase");
|
||||
lookup->sigchase = state;
|
||||
if (lookup->sigchase)
|
||||
lookup->dnssec = ISC_TRUE;
|
||||
break;
|
||||
break;
|
||||
#endif
|
||||
case 't': /* stats */
|
||||
FULLCHECK("stats");
|
||||
@@ -1002,7 +989,7 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
timeout = 1;
|
||||
break;
|
||||
#if DIG_SIGCHASE_TD
|
||||
case 'o': /* topdown */
|
||||
case 'o': /* topdown */
|
||||
FULLCHECK("topdown");
|
||||
lookup->do_topdown = state;
|
||||
break;
|
||||
@@ -1037,7 +1024,7 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
#ifdef DIG_SIGCHASE
|
||||
case 'u': /* trusted-key */
|
||||
FULLCHECK("trusted-key");
|
||||
if (value == NULL)
|
||||
if (value == NULL)
|
||||
goto need_value;
|
||||
if (!state)
|
||||
goto invalid_option;
|
||||
@@ -1171,7 +1158,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
hash = strchr(value, '#');
|
||||
if (hash != NULL) {
|
||||
srcport = (in_port_t)
|
||||
parse_uint(hash + 1,
|
||||
parse_uint(hash + 1,
|
||||
"port number", MAXPORT);
|
||||
*hash = '\0';
|
||||
} else
|
||||
@@ -1224,7 +1211,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
(*lookup) = clone_lookup(default_lookup,
|
||||
ISC_TRUE);
|
||||
*need_clone = ISC_TRUE;
|
||||
strncpy((*lookup)->textname, value,
|
||||
strncpy((*lookup)->textname, value,
|
||||
sizeof((*lookup)->textname));
|
||||
(*lookup)->textname[sizeof((*lookup)->textname)-1]=0;
|
||||
(*lookup)->trace_root = ISC_TF((*lookup)->trace ||
|
||||
@@ -1263,10 +1250,9 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
(*lookup)->rdtypeset = ISC_TRUE;
|
||||
(*lookup)->ixfr_serial =
|
||||
parse_uint(&value[5], "serial number",
|
||||
MAXSERIAL);
|
||||
MAXSERIAL);
|
||||
(*lookup)->section_question = plusquest;
|
||||
(*lookup)->comments = pluscomm;
|
||||
(*lookup)->tcp_mode = ISC_TRUE;
|
||||
} else {
|
||||
(*lookup)->rdtype = rdtype;
|
||||
(*lookup)->rdtypeset = ISC_TRUE;
|
||||
@@ -1290,7 +1276,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
if (ptr2 == NULL)
|
||||
usage();
|
||||
ptr3 = next_token(&value,":"); /* secret or NULL */
|
||||
if (ptr3 != NULL) {
|
||||
if (ptr3 != NULL) {
|
||||
if (strcasecmp(ptr, "hmac-md5") == 0) {
|
||||
hmacname = DNS_TSIG_HMACMD5_NAME;
|
||||
digestbits = 0;
|
||||
@@ -1439,7 +1425,7 @@ getaddresses(dig_lookup_t *lookup, const char *host) {
|
||||
char tmp[ISC_NETADDR_FORMATSIZE];
|
||||
|
||||
result = bind9_getaddresses(host, 0, sockaddrs,
|
||||
DIG_MAX_ADDRESSES, &count);
|
||||
DIG_MAX_ADDRESSES, &count);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("couldn't get address for '%s': %s",
|
||||
host, isc_result_totext(result));
|
||||
@@ -1501,7 +1487,7 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only,
|
||||
if (homedir != NULL) {
|
||||
unsigned int n;
|
||||
n = snprintf(rcfile, sizeof(rcfile), "%s/.digrc",
|
||||
homedir);
|
||||
homedir);
|
||||
if (n < sizeof(rcfile))
|
||||
batchfp = fopen(rcfile, "r");
|
||||
}
|
||||
@@ -1581,7 +1567,7 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only,
|
||||
tr.base = rv[0];
|
||||
tr.length = strlen(rv[0]);
|
||||
result = dns_rdatatype_fromtext(&rdtype,
|
||||
(isc_textregion_t *)&tr);
|
||||
(isc_textregion_t *)&tr);
|
||||
if (result == ISC_R_SUCCESS &&
|
||||
rdtype == dns_rdatatype_ixfr) {
|
||||
result = DNS_R_UNKNOWN;
|
||||
@@ -1602,12 +1588,11 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only,
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
lookup->ixfr_serial =
|
||||
parse_uint(&rv[0][5],
|
||||
"serial number",
|
||||
MAXSERIAL);
|
||||
"serial number",
|
||||
MAXSERIAL);
|
||||
lookup->section_question =
|
||||
plusquest;
|
||||
lookup->comments = pluscomm;
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
} else {
|
||||
lookup->rdtype = rdtype;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
@@ -1639,7 +1624,7 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only,
|
||||
lookup = clone_lookup(default_lookup,
|
||||
ISC_TRUE);
|
||||
need_clone = ISC_TRUE;
|
||||
strncpy(lookup->textname, rv[0],
|
||||
strncpy(lookup->textname, rv[0],
|
||||
sizeof(lookup->textname));
|
||||
lookup->textname[sizeof(lookup->textname)-1]=0;
|
||||
lookup->trace_root = ISC_TF(lookup->trace ||
|
||||
|
||||
@@ -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-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dig.docbook,v 1.40 2008/05/14 23:47:03 tbox Exp $ -->
|
||||
<!-- $Id: dig.docbook,v 1.17.18.21 2007/08/28 07:19:55 tbox Exp $ -->
|
||||
<refentry id="man.dig">
|
||||
|
||||
<refentryinfo>
|
||||
@@ -42,7 +42,6 @@
|
||||
<year>2005</year>
|
||||
<year>2006</year>
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -830,14 +829,6 @@
|
||||
</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>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 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
|
||||
@@ -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.43 2008/05/15 01:12:20 tbox Exp $ -->
|
||||
<!-- $Id: dig.html,v 1.13.18.28 2007/05/16 06:11:27 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -34,7 +34,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">dig</code> [global-queryopt...] [query...]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543511"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543508"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">dig</strong></span>
|
||||
(domain information groper) is a flexible tool
|
||||
for interrogating DNS name servers. It performs DNS lookups and
|
||||
@@ -80,7 +80,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543580"></a><h2>SIMPLE USAGE</h2>
|
||||
<a name="id2543577"></a><h2>SIMPLE USAGE</h2>
|
||||
<p>
|
||||
A typical invocation of <span><strong class="command">dig</strong></span> looks like:
|
||||
</p>
|
||||
@@ -126,7 +126,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543671"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543668"></a><h2>OPTIONS</h2>
|
||||
<p>
|
||||
The <code class="option">-b</code> option sets the source IP address of the query
|
||||
to <em class="parameter"><code>address</code></em>. This must be a valid
|
||||
@@ -226,7 +226,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543942"></a><h2>QUERY OPTIONS</h2>
|
||||
<a name="id2543939"></a><h2>QUERY OPTIONS</h2>
|
||||
<p><span><strong class="command">dig</strong></span>
|
||||
provides a number of query options which affect
|
||||
the way in which lookups are made and the results displayed. Some of
|
||||
@@ -539,17 +539,13 @@
|
||||
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="id2545145"></a><h2>MULTIPLE QUERIES</h2>
|
||||
<a name="id2545128"></a><h2>MULTIPLE QUERIES</h2>
|
||||
<p>
|
||||
The BIND 9 implementation of <span><strong class="command">dig </strong></span>
|
||||
supports
|
||||
@@ -595,7 +591,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="id2545275"></a><h2>IDN SUPPORT</h2>
|
||||
<a name="id2545258"></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.
|
||||
@@ -609,14 +605,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="id2545298"></a><h2>FILES</h2>
|
||||
<a name="id2545281"></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="id2545315"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2545298"></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>,
|
||||
@@ -624,7 +620,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="id2545352"></a><h2>BUGS</h2>
|
||||
<a name="id2545335"></a><h2>BUGS</h2>
|
||||
<p>
|
||||
There are probably too many query options.
|
||||
</p>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dighost.c,v 1.309 2008/04/03 02:01:08 marka Exp $ */
|
||||
/* $Id: dighost.c,v 1.259.18.43.10.3 2008/07/23 23:16:43 marka Exp $ */
|
||||
|
||||
/*! \file
|
||||
* \note
|
||||
@@ -277,7 +277,7 @@ dns_name_t chase_name; /* the query name */
|
||||
/*
|
||||
* the current name is the parent name when we follow delegation
|
||||
*/
|
||||
dns_name_t chase_current_name;
|
||||
dns_name_t chase_current_name;
|
||||
/*
|
||||
* the child name is used for delegation (NS DS responses in AUTHORITY section)
|
||||
*/
|
||||
@@ -493,7 +493,6 @@ void
|
||||
fatal(const char *format, ...) {
|
||||
va_list args;
|
||||
|
||||
fflush(stdout);
|
||||
fprintf(stderr, "%s: ", progname);
|
||||
va_start(args, format);
|
||||
vfprintf(stderr, format, args);
|
||||
@@ -511,7 +510,6 @@ debug(const char *format, ...) {
|
||||
va_list args;
|
||||
|
||||
if (debugging) {
|
||||
fflush(stdout);
|
||||
va_start(args, format);
|
||||
vfprintf(stderr, format, args);
|
||||
va_end(args);
|
||||
@@ -618,13 +616,13 @@ set_nameserver(char *opt) {
|
||||
return;
|
||||
|
||||
result = bind9_getaddresses(opt, 0, sockaddrs,
|
||||
DIG_MAX_ADDRESSES, &count);
|
||||
DIG_MAX_ADDRESSES, &count);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("couldn't get address for '%s': %s",
|
||||
opt, isc_result_totext(result));
|
||||
|
||||
flush_server_list();
|
||||
|
||||
|
||||
for (i = 0; i < count; i++) {
|
||||
isc_netaddr_fromsockaddr(&netaddr, &sockaddrs[i]);
|
||||
isc_netaddr_format(&netaddr, tmp, sizeof(tmp));
|
||||
@@ -724,7 +722,6 @@ 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
|
||||
@@ -804,7 +801,6 @@ 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
|
||||
@@ -895,7 +891,7 @@ setup_text_key(void) {
|
||||
result = isc_base64_decodestring(keysecret, &secretbuf);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto failure;
|
||||
|
||||
|
||||
secretsize = isc_buffer_usedlength(&secretbuf);
|
||||
|
||||
result = dns_name_fromtext(&keyname, namebuf,
|
||||
@@ -1029,7 +1025,7 @@ setup_system(void) {
|
||||
domain = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (ndots == -1) {
|
||||
ndots = lwconf->ndots;
|
||||
debug("ndots is %d.", ndots);
|
||||
@@ -1092,7 +1088,7 @@ clear_searchlist(void) {
|
||||
void
|
||||
set_search_domain(char *domain) {
|
||||
dig_searchlist_t *search;
|
||||
|
||||
|
||||
clear_searchlist();
|
||||
search = make_searchlist_entry(domain);
|
||||
ISC_LIST_APPEND(search_list, search, link);
|
||||
@@ -1157,11 +1153,11 @@ setup_libs(void) {
|
||||
|
||||
/*%
|
||||
* Add EDNS0 option record to a message. Currently, the only supported
|
||||
* options are UDP buffer size, the DO bit, and NSID request.
|
||||
* options are UDP buffer size and the DO bit.
|
||||
*/
|
||||
static void
|
||||
add_opt(dns_message_t *msg, isc_uint16_t udpsize, isc_uint16_t edns,
|
||||
isc_boolean_t dnssec, isc_boolean_t nsid)
|
||||
isc_boolean_t dnssec)
|
||||
{
|
||||
dns_rdataset_t *rdataset = NULL;
|
||||
dns_rdatalist_t *rdatalist = NULL;
|
||||
@@ -1184,19 +1180,8 @@ 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;
|
||||
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;
|
||||
}
|
||||
rdata->data = NULL;
|
||||
rdata->length = 0;
|
||||
ISC_LIST_INIT(rdatalist->rdata);
|
||||
ISC_LIST_APPEND(rdatalist->rdata, rdata, link);
|
||||
dns_rdatalist_tordataset(rdatalist, rdataset);
|
||||
@@ -1424,7 +1409,7 @@ start_lookup(void) {
|
||||
current_lookup->qrdtype_sigchase
|
||||
= current_lookup->qrdtype;
|
||||
current_lookup->qrdtype = dns_rdatatype_ns;
|
||||
|
||||
|
||||
current_lookup->rdclass_sigchase
|
||||
= current_lookup->rdclass;
|
||||
current_lookup->rdclass_sigchaseset
|
||||
@@ -1505,7 +1490,7 @@ followup_lookup(dns_message_t *msg, dig_query_t *query, dns_section_t section)
|
||||
INSIST(!free_now);
|
||||
|
||||
debug("following up %s", query->lookup->textname);
|
||||
|
||||
|
||||
for (result = dns_message_firstname(msg, section);
|
||||
result == ISC_R_SUCCESS;
|
||||
result = dns_message_nextname(msg, section)) {
|
||||
@@ -1560,8 +1545,7 @@ followup_lookup(dns_message_t *msg, dig_query_t *query, dns_section_t section)
|
||||
dns_rdataset_current(rdataset, &rdata);
|
||||
|
||||
query->lookup->nsfound++;
|
||||
result = dns_rdata_tostruct(&rdata, &ns, NULL);
|
||||
check_result(result, "dns_rdata_tostruct");
|
||||
(void)dns_rdata_tostruct(&rdata, &ns, NULL);
|
||||
dns_name_format(&ns.name, namestr, sizeof(namestr));
|
||||
dns_rdata_freestruct(&ns);
|
||||
|
||||
@@ -1966,15 +1950,12 @@ 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 axfr.
|
||||
* Force TCP mode if we're doing an xfr.
|
||||
* XXX UDP ixfr's would be useful
|
||||
*/
|
||||
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;
|
||||
}
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
}
|
||||
|
||||
add_question(lookup->sendmsg, lookup->name, lookup->rdclass,
|
||||
@@ -2011,7 +1992,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->nsid);
|
||||
lookup->edns, lookup->dnssec);
|
||||
}
|
||||
|
||||
result = dns_message_rendersection(lookup->sendmsg,
|
||||
@@ -2108,7 +2089,7 @@ send_done(isc_task_t *_task, isc_event_t *event) {
|
||||
|
||||
for (b = ISC_LIST_HEAD(sevent->bufferlist);
|
||||
b != NULL;
|
||||
b = ISC_LIST_HEAD(sevent->bufferlist))
|
||||
b = ISC_LIST_HEAD(sevent->bufferlist))
|
||||
ISC_LIST_DEQUEUE(sevent->bufferlist, b, link);
|
||||
|
||||
query = event->ev_arg;
|
||||
@@ -2188,7 +2169,7 @@ bringup_timer(dig_query_t *query, unsigned int default_timeout) {
|
||||
&l->interval, global_task, connect_timeout,
|
||||
l, &l->timer);
|
||||
check_result(result, "isc_timer_create");
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
connect_done(isc_task_t *task, isc_event_t *event);
|
||||
@@ -2210,7 +2191,7 @@ send_tcp_connect(dig_query_t *query) {
|
||||
query->waiting_connect = ISC_TRUE;
|
||||
query->lookup->current_query = query;
|
||||
get_address(query->servname, port, &query->sockaddr);
|
||||
|
||||
|
||||
if (specified_source &&
|
||||
(isc_sockaddr_pf(&query->sockaddr) !=
|
||||
isc_sockaddr_pf(&bind_address))) {
|
||||
@@ -2236,14 +2217,15 @@ send_tcp_connect(dig_query_t *query) {
|
||||
sockcount++;
|
||||
debug("sockcount=%d", sockcount);
|
||||
if (specified_source)
|
||||
result = isc_socket_bind(query->sock, &bind_address);
|
||||
result = isc_socket_bind(query->sock, &bind_address,
|
||||
ISC_SOCKET_REUSEADDRESS);
|
||||
else {
|
||||
if ((isc_sockaddr_pf(&query->sockaddr) == AF_INET) &&
|
||||
have_ipv4)
|
||||
isc_sockaddr_any(&bind_any);
|
||||
else
|
||||
isc_sockaddr_any6(&bind_any);
|
||||
result = isc_socket_bind(query->sock, &bind_any);
|
||||
result = isc_socket_bind(query->sock, &bind_any, 0);
|
||||
}
|
||||
check_result(result, "isc_socket_bind");
|
||||
bringup_timer(query, TCP_TIMEOUT);
|
||||
@@ -2290,11 +2272,12 @@ send_udp(dig_query_t *query) {
|
||||
sockcount++;
|
||||
debug("sockcount=%d", sockcount);
|
||||
if (specified_source) {
|
||||
result = isc_socket_bind(query->sock, &bind_address);
|
||||
result = isc_socket_bind(query->sock, &bind_address,
|
||||
ISC_SOCKET_REUSEADDRESS);
|
||||
} else {
|
||||
isc_sockaddr_anyofpf(&bind_any,
|
||||
isc_sockaddr_pf(&query->sockaddr));
|
||||
result = isc_socket_bind(query->sock, &bind_any);
|
||||
result = isc_socket_bind(query->sock, &bind_any, 0);
|
||||
}
|
||||
check_result(result, "isc_socket_bind");
|
||||
|
||||
@@ -2680,8 +2663,7 @@ check_for_more_data(dig_query_t *query, dns_message_t *msg,
|
||||
goto next_rdata;
|
||||
/* Now we have an SOA. Work with it. */
|
||||
debug("got an SOA");
|
||||
result = dns_rdata_tostruct(&rdata, &soa, NULL);
|
||||
check_result(result, "dns_rdata_tostruct");
|
||||
(void)dns_rdata_tostruct(&rdata, &soa, NULL);
|
||||
serial = soa.serial;
|
||||
dns_rdata_freestruct(&soa);
|
||||
if (!query->first_soa_rcvd) {
|
||||
@@ -2844,13 +2826,13 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
||||
char buf2[ISC_SOCKADDR_FORMATSIZE];
|
||||
isc_sockaddr_t any;
|
||||
|
||||
if (isc_sockaddr_pf(&query->sockaddr) == AF_INET)
|
||||
if (isc_sockaddr_pf(&query->sockaddr) == AF_INET)
|
||||
isc_sockaddr_any(&any);
|
||||
else
|
||||
isc_sockaddr_any6(&any);
|
||||
|
||||
/*
|
||||
* We don't expect a match when the packet is
|
||||
* We don't expect a match when the packet is
|
||||
* sent to 0.0.0.0, :: or to a multicast addresses.
|
||||
* XXXMPA broadcast needs to be handled here as well.
|
||||
*/
|
||||
@@ -2868,7 +2850,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
||||
}
|
||||
}
|
||||
|
||||
result = dns_message_peekheader(b, &id, &msgflags);
|
||||
result = dns_message_peekheader(b, &id, &msgflags);
|
||||
if (result != ISC_R_SUCCESS || l->sendmsg->id != id) {
|
||||
match = ISC_FALSE;
|
||||
if (l->tcp_mode) {
|
||||
@@ -2973,7 +2955,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
||||
return;
|
||||
}
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_TC) != 0 &&
|
||||
!l->ignore && !l->tcp_mode) {
|
||||
!l->ignore && !l->tcp_mode) {
|
||||
printf(";; Truncated, retrying in TCP mode.\n");
|
||||
n = requeue_lookup(l, ISC_TRUE);
|
||||
n->tcp_mode = ISC_TRUE;
|
||||
@@ -2985,7 +2967,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
||||
check_next_lookup(l);
|
||||
UNLOCK_LOOKUP;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ((msg->rcode == dns_rcode_servfail && !l->servfail_stops) ||
|
||||
(check_ra && (msg->flags & DNS_MESSAGEFLAG_RA) == 0 && l->recurse))
|
||||
{
|
||||
@@ -3111,7 +3093,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
if (l->trace_root) {
|
||||
/*
|
||||
* This is the initial NS query.
|
||||
* This is the initial NS query.
|
||||
*/
|
||||
int n;
|
||||
|
||||
@@ -3126,7 +3108,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
||||
if (!do_sigchase)
|
||||
#endif
|
||||
printmessage(query, msg, ISC_TRUE);
|
||||
}
|
||||
}
|
||||
#ifdef DIG_SIGCHASE
|
||||
if (do_sigchase) {
|
||||
chase_msg = isc_mem_allocate(mctx,
|
||||
@@ -3145,13 +3127,13 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
isc_buffer_usedregion(b, &r);
|
||||
result = isc_buffer_allocate(mctx, &buf, r.length);
|
||||
|
||||
|
||||
check_result(result, "isc_buffer_allocate");
|
||||
result = isc_buffer_copyregion(buf, &r);
|
||||
check_result(result, "isc_buffer_copyregion");
|
||||
|
||||
|
||||
result = dns_message_parse(msg_temp, buf, 0);
|
||||
|
||||
|
||||
isc_buffer_free(&buf);
|
||||
chase_msg->msg = msg_temp;
|
||||
|
||||
@@ -3167,9 +3149,9 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
#ifdef DIG_SIGCHASE
|
||||
if (l->sigchase && ISC_LIST_EMPTY(lookup_list)) {
|
||||
if (l->sigchase && ISC_LIST_EMPTY(lookup_list)) {
|
||||
sigchase(msg_temp);
|
||||
}
|
||||
#endif
|
||||
@@ -3326,7 +3308,7 @@ cancel_all(void) {
|
||||
*/
|
||||
void
|
||||
destroy_libs(void) {
|
||||
#ifdef DIG_SIGCHASE
|
||||
#ifdef DIG_SIGCHASE
|
||||
void * ptr;
|
||||
dig_message_t *chase_msg;
|
||||
#endif
|
||||
@@ -3366,8 +3348,8 @@ destroy_libs(void) {
|
||||
clear_searchlist();
|
||||
|
||||
#ifdef WITH_IDN
|
||||
result = dns_name_settotextfilter(NULL);
|
||||
check_result(result, "dns_name_settotextfilter");
|
||||
result = dns_name_settotextfilter(NULL);
|
||||
check_result(result, "dns_name_settotextfilter");
|
||||
#endif
|
||||
dns_name_destroy();
|
||||
|
||||
@@ -3439,7 +3421,7 @@ destroy_libs(void) {
|
||||
#endif
|
||||
|
||||
debug("Destroy memory");
|
||||
|
||||
|
||||
#endif
|
||||
if (memdebugging != 0)
|
||||
isc_mem_stats(mctx, stderr);
|
||||
@@ -3536,7 +3518,7 @@ append_textname(char *name, const char *origin, size_t namesize) {
|
||||
(void)strcpy(name + namelen, origin);
|
||||
return idn_success;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
idn_check_result(idn_result_t r, const char *msg) {
|
||||
if (r != idn_success) {
|
||||
@@ -3572,14 +3554,14 @@ void
|
||||
dump_database_section(dns_message_t *msg, int section)
|
||||
{
|
||||
dns_name_t *msg_name=NULL;
|
||||
|
||||
|
||||
dns_rdataset_t *rdataset;
|
||||
|
||||
do {
|
||||
dns_message_currentname(msg, section, &msg_name);
|
||||
|
||||
|
||||
for (rdataset = ISC_LIST_HEAD(msg_name->list); rdataset != NULL;
|
||||
rdataset = ISC_LIST_NEXT(rdataset, link)) {
|
||||
rdataset = ISC_LIST_NEXT(rdataset, link)) {
|
||||
dns_name_print(msg_name, stdout);
|
||||
printf("\n");
|
||||
print_rdataset(msg_name, rdataset, mctx);
|
||||
@@ -3596,15 +3578,15 @@ dump_database(void) {
|
||||
for (msg = ISC_LIST_HEAD(chase_message_list); msg != NULL;
|
||||
msg = ISC_LIST_NEXT(msg, link)) {
|
||||
if (dns_message_firstname(msg->msg, DNS_SECTION_ANSWER)
|
||||
== ISC_R_SUCCESS)
|
||||
== ISC_R_SUCCESS)
|
||||
dump_database_section(msg->msg, DNS_SECTION_ANSWER);
|
||||
|
||||
|
||||
if (dns_message_firstname(msg->msg, DNS_SECTION_AUTHORITY)
|
||||
== ISC_R_SUCCESS)
|
||||
== ISC_R_SUCCESS)
|
||||
dump_database_section(msg->msg, DNS_SECTION_AUTHORITY);
|
||||
|
||||
|
||||
if (dns_message_firstname(msg->msg, DNS_SECTION_ADDITIONAL)
|
||||
== ISC_R_SUCCESS)
|
||||
== ISC_R_SUCCESS)
|
||||
dump_database_section(msg->msg, DNS_SECTION_ADDITIONAL);
|
||||
}
|
||||
}
|
||||
@@ -3634,7 +3616,7 @@ search_type(dns_name_t *name, dns_rdatatype_t type, dns_rdatatype_t covers) {
|
||||
if ((siginfo.covered == covers) ||
|
||||
(covers == dns_rdatatype_any)) {
|
||||
dns_rdata_reset(&sigrdata);
|
||||
dns_rdata_freestruct(&siginfo);
|
||||
dns_rdata_freestruct(&siginfo);
|
||||
return (rdataset);
|
||||
}
|
||||
dns_rdata_reset(&sigrdata);
|
||||
@@ -3672,7 +3654,7 @@ chase_scanname(dns_name_t *name, dns_rdatatype_t type, dns_rdatatype_t covers)
|
||||
{
|
||||
dns_rdataset_t *rdataset = NULL;
|
||||
dig_message_t * msg;
|
||||
|
||||
|
||||
for (msg = ISC_LIST_HEAD(chase_message_list2); msg != NULL;
|
||||
msg = ISC_LIST_NEXT(msg, link)) {
|
||||
if (dns_message_firstname(msg->msg, DNS_SECTION_ANSWER)
|
||||
@@ -3765,7 +3747,7 @@ insert_trustedkey(dst_key_t * key)
|
||||
return;
|
||||
|
||||
tk_list.key[tk_list.nb_tk++] = key;
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
@@ -3788,7 +3770,7 @@ char alphnum[] =
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
||||
|
||||
isc_result_t
|
||||
removetmpkey(isc_mem_t *mctx, const char *file)
|
||||
removetmpkey(isc_mem_t *mctx, const char *file)
|
||||
{
|
||||
char *tempnamekey = NULL;
|
||||
int tempnamekeylen;
|
||||
@@ -3801,7 +3783,7 @@ removetmpkey(isc_mem_t *mctx, const char *file)
|
||||
return (ISC_R_NOMEMORY);
|
||||
|
||||
memset(tempnamekey, 0, tempnamekeylen);
|
||||
|
||||
|
||||
strcat(tempnamekey, file);
|
||||
strcat(tempnamekey,".key");
|
||||
isc_file_remove(tempnamekey);
|
||||
@@ -3841,24 +3823,24 @@ opentmpkey(isc_mem_t *mctx, const char *file, char **tempp, FILE **fp) {
|
||||
isc_mem_free(mctx, tempname);
|
||||
return (ISC_R_FAILURE);
|
||||
}
|
||||
|
||||
|
||||
x = cp--;
|
||||
while (cp >= tempname && *cp == 'X') {
|
||||
isc_random_get(&which);
|
||||
*cp = alphnum[which % (sizeof(alphnum) - 1)];
|
||||
x = cp--;
|
||||
}
|
||||
|
||||
|
||||
tempnamekeylen = tempnamelen+5;
|
||||
tempnamekey = isc_mem_allocate(mctx, tempnamekeylen);
|
||||
if (tempnamekey == NULL)
|
||||
return (ISC_R_NOMEMORY);
|
||||
|
||||
|
||||
memset(tempnamekey, 0, tempnamekeylen);
|
||||
strncpy(tempnamekey, tempname, tempnamelen);
|
||||
strcat(tempnamekey ,".key");
|
||||
|
||||
|
||||
|
||||
if (isc_file_exists(tempnamekey)) {
|
||||
isc_mem_free(mctx, tempnamekey);
|
||||
isc_mem_free(mctx, tempname);
|
||||
@@ -3879,7 +3861,7 @@ opentmpkey(isc_mem_t *mctx, const char *file, char **tempp, FILE **fp) {
|
||||
|
||||
cleanup:
|
||||
isc_mem_free(mctx, tempname);
|
||||
|
||||
|
||||
return (result);
|
||||
}
|
||||
|
||||
@@ -3893,7 +3875,7 @@ get_trusted_key(isc_mem_t *mctx)
|
||||
char buf[1500];
|
||||
FILE *fp, *fptemp;
|
||||
dst_key_t *key = NULL;
|
||||
|
||||
|
||||
result = isc_file_exists(trustedkey);
|
||||
if (result != ISC_TRUE) {
|
||||
result = isc_file_exists("/etc/trusted-key.key");
|
||||
@@ -3971,11 +3953,11 @@ nameFromString(const char *str, dns_name_t *p_ret) {
|
||||
|
||||
result = dns_name_dup(dns_fixedname_name(&fixedname), mctx, p_ret);
|
||||
check_result(result, "nameFromString");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#if DIG_SIGCHASE_TD
|
||||
isc_result_t
|
||||
isc_result_t
|
||||
prepare_lookup(dns_name_t *name)
|
||||
{
|
||||
isc_result_t result;
|
||||
@@ -3993,7 +3975,7 @@ prepare_lookup(dns_name_t *name)
|
||||
lookup->rdtype = lookup->rdtype_sigchase;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
lookup->qrdtype = lookup->qrdtype_sigchase;
|
||||
|
||||
|
||||
s = ISC_LIST_HEAD(lookup->my_server_list);
|
||||
while (s != NULL) {
|
||||
debug("freeing server %p belonging to %p",
|
||||
@@ -4026,11 +4008,12 @@ prepare_lookup(dns_name_t *name)
|
||||
|
||||
dns_rdataset_current(chase_nsrdataset, &rdata);
|
||||
|
||||
result = dns_rdata_tostruct(&rdata, &ns, NULL);
|
||||
check_result(result, "dns_rdata_tostruct");
|
||||
|
||||
(void)dns_rdata_tostruct(&rdata, &ns, NULL);
|
||||
|
||||
|
||||
|
||||
#ifdef __FOLLOW_GLUE__
|
||||
|
||||
|
||||
result = advanced_rrsearch(&rdataset, &ns.name,
|
||||
dns_rdatatype_aaaa,
|
||||
dns_rdatatype_any, &true);
|
||||
@@ -4054,12 +4037,12 @@ prepare_lookup(dns_name_t *name)
|
||||
|
||||
|
||||
srv = make_server(namestr, namestr);
|
||||
|
||||
|
||||
ISC_LIST_APPEND(lookup->my_server_list,
|
||||
srv, link);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
rdataset = NULL;
|
||||
result = advanced_rrsearch(&rdataset, &ns.name, dns_rdatatype_a,
|
||||
dns_rdatatype_any, &true);
|
||||
@@ -4081,28 +4064,28 @@ prepare_lookup(dns_name_t *name)
|
||||
isc_buffer_free(&b);
|
||||
dns_rdata_reset(&a);
|
||||
printf("ns name: %s\n", namestr);
|
||||
|
||||
|
||||
|
||||
srv = make_server(namestr, namestr);
|
||||
|
||||
|
||||
ISC_LIST_APPEND(lookup->my_server_list,
|
||||
srv, link);
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
||||
|
||||
dns_name_format(&ns.name, namestr, sizeof(namestr));
|
||||
printf("ns name: ");
|
||||
dns_name_print(&ns.name, stdout);
|
||||
printf("\n");
|
||||
srv = make_server(namestr, namestr);
|
||||
|
||||
|
||||
ISC_LIST_APPEND(lookup->my_server_list, srv, link);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
dns_rdata_freestruct(&ns);
|
||||
dns_rdata_reset(&rdata);
|
||||
|
||||
|
||||
}
|
||||
|
||||
ISC_LIST_APPEND(lookup_list, lookup, link);
|
||||
@@ -4156,10 +4139,10 @@ grandfather_pb_test(dns_name_t *zone_name, dns_rdataset_t *sigrdataset)
|
||||
|
||||
do {
|
||||
dns_rdataset_current(sigrdataset, &sigrdata);
|
||||
|
||||
|
||||
result = dns_rdata_tostruct(&sigrdata, &siginfo, NULL);
|
||||
check_result(result, "sigrdata tostruct siginfo");
|
||||
|
||||
|
||||
if (dns_name_compare(&siginfo.signer, zone_name) == 0) {
|
||||
dns_rdata_freestruct(&siginfo);
|
||||
dns_rdata_reset(&sigrdata);
|
||||
@@ -4167,7 +4150,7 @@ grandfather_pb_test(dns_name_t *zone_name, dns_rdataset_t *sigrdataset)
|
||||
}
|
||||
|
||||
dns_rdata_freestruct(&siginfo);
|
||||
|
||||
|
||||
} while (dns_rdataset_next(chase_sigkeyrdataset) == ISC_R_SUCCESS);
|
||||
|
||||
dns_rdata_reset(&sigrdata);
|
||||
@@ -4197,7 +4180,7 @@ initialization(dns_name_t *name)
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
void
|
||||
print_rdataset(dns_name_t *name, dns_rdataset_t *rdataset, isc_mem_t *mctx)
|
||||
@@ -4221,10 +4204,10 @@ print_rdataset(dns_name_t *name, dns_rdataset_t *rdataset, isc_mem_t *mctx)
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
void
|
||||
dup_name(dns_name_t *source, dns_name_t *target, isc_mem_t *mctx) {
|
||||
isc_result_t result;
|
||||
|
||||
isc_result_t result;
|
||||
|
||||
if (dns_name_dynamic(target))
|
||||
free_name(target, mctx);
|
||||
result = dns_name_dup(source, mctx, target);
|
||||
@@ -4243,7 +4226,7 @@ free_name(dns_name_t *name, isc_mem_t *mctx) {
|
||||
* return ISC_R_SUCCESS if the DNSKEY RRset contains a trusted_key
|
||||
* and the RRset is valid
|
||||
* return ISC_R_NOTFOUND if not contains trusted key
|
||||
or if the RRset isn't valid
|
||||
or if the RRset isn't valid
|
||||
* return ISC_R_FAILURE if problem
|
||||
*
|
||||
*/
|
||||
@@ -4268,17 +4251,17 @@ contains_trusted_key(dns_name_t *name, dns_rdataset_t *rdataset,
|
||||
do {
|
||||
dns_rdataset_current(rdataset, &rdata);
|
||||
INSIST(rdata.type == dns_rdatatype_dnskey);
|
||||
|
||||
|
||||
result = dns_dnssec_keyfromrdata(name, &rdata,
|
||||
mctx, &dnsseckey);
|
||||
check_result(result, "dns_dnssec_keyfromrdata");
|
||||
|
||||
|
||||
|
||||
for (i = 0; i < tk_list.nb_tk; i++) {
|
||||
if (dst_key_compare(tk_list.key[i], dnsseckey)
|
||||
== ISC_TRUE) {
|
||||
dns_rdata_reset(&rdata);
|
||||
|
||||
|
||||
printf(";; Ok, find a Trusted Key in the "
|
||||
"DNSKEY RRset: %d\n",
|
||||
dst_key_id(dnsseckey));
|
||||
@@ -4293,7 +4276,7 @@ contains_trusted_key(dns_name_t *name, dns_rdataset_t *rdataset,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
dns_rdata_reset(&rdata);
|
||||
if (dnsseckey != NULL)
|
||||
dst_key_free(&dnsseckey);
|
||||
@@ -4323,7 +4306,7 @@ sigchase_verify_sig(dns_name_t *name, dns_rdataset_t *rdataset,
|
||||
do {
|
||||
dns_rdataset_current(keyrdataset, &keyrdata);
|
||||
INSIST(keyrdata.type == dns_rdatatype_dnskey);
|
||||
|
||||
|
||||
result = dns_dnssec_keyfromrdata(name, &keyrdata,
|
||||
mctx, &dnsseckey);
|
||||
check_result(result, "dns_dnssec_keyfromrdata");
|
||||
@@ -4355,22 +4338,22 @@ sigchase_verify_sig_key(dns_name_t *name, dns_rdataset_t *rdataset,
|
||||
result = dns_rdataset_first(sigrdataset);
|
||||
check_result(result, "empty RRSIG dataset");
|
||||
dns_rdata_init(&sigrdata);
|
||||
|
||||
|
||||
do {
|
||||
dns_rdataset_current(sigrdataset, &sigrdata);
|
||||
|
||||
result = dns_rdata_tostruct(&sigrdata, &siginfo, NULL);
|
||||
check_result(result, "sigrdata tostruct siginfo");
|
||||
|
||||
|
||||
/*
|
||||
* Test if the id of the DNSKEY is
|
||||
* the id of the DNSKEY signer's
|
||||
*/
|
||||
if (siginfo.keyid == dst_key_id(dnsseckey)) {
|
||||
|
||||
|
||||
result = dns_rdataset_first(rdataset);
|
||||
check_result(result, "empty DS dataset");
|
||||
|
||||
|
||||
result = dns_dnssec_verify(name, rdataset, dnsseckey,
|
||||
ISC_FALSE, mctx, &sigrdata);
|
||||
|
||||
@@ -4387,7 +4370,7 @@ sigchase_verify_sig_key(dns_name_t *name, dns_rdataset_t *rdataset,
|
||||
}
|
||||
}
|
||||
dns_rdata_freestruct(&siginfo);
|
||||
|
||||
|
||||
} while (dns_rdataset_next(chase_sigkeyrdataset) == ISC_R_SUCCESS);
|
||||
|
||||
dns_rdata_reset(&sigrdata);
|
||||
@@ -4413,18 +4396,18 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset,
|
||||
dns_rdata_init(&dsrdata);
|
||||
do {
|
||||
dns_rdataset_current(dsrdataset, &dsrdata);
|
||||
|
||||
|
||||
result = dns_rdata_tostruct(&dsrdata, &dsinfo, NULL);
|
||||
check_result(result, "dns_rdata_tostruct for DS");
|
||||
|
||||
|
||||
result = dns_rdataset_first(keyrdataset);
|
||||
check_result(result, "empty KEY dataset");
|
||||
dns_rdata_init(&keyrdata);
|
||||
dns_rdata_init(&keyrdata);
|
||||
|
||||
do {
|
||||
dns_rdataset_current(keyrdataset, &keyrdata);
|
||||
INSIST(keyrdata.type == dns_rdatatype_dnskey);
|
||||
|
||||
|
||||
result = dns_dnssec_keyfromrdata(name, &keyrdata,
|
||||
mctx, &dnsseckey);
|
||||
check_result(result, "dns_dnssec_keyfromrdata");
|
||||
@@ -4439,20 +4422,20 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset,
|
||||
result = dns_ds_buildrdata(name, &keyrdata,
|
||||
dsinfo.digest_type,
|
||||
dsbuf, &newdsrdata);
|
||||
dns_rdata_freestruct(&dsinfo);
|
||||
dns_rdata_freestruct(&dsinfo);
|
||||
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
dns_rdata_reset(&keyrdata);
|
||||
dns_rdata_reset(&newdsrdata);
|
||||
dns_rdata_reset(&dsrdata);
|
||||
dst_key_free(&dnsseckey);
|
||||
dns_rdata_freestruct(&dsinfo);
|
||||
dns_rdata_freestruct(&dsinfo);
|
||||
printf("Oops: impossible to build"
|
||||
" new DS rdata\n");
|
||||
return (result);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if (dns_rdata_compare(&dsrdata,
|
||||
&newdsrdata) == 0) {
|
||||
printf(";; OK a DS valids a DNSKEY"
|
||||
@@ -4460,7 +4443,7 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset,
|
||||
printf(";; Now verify that this"
|
||||
" DNSKEY validates the "
|
||||
"DNSKEY RRset\n");
|
||||
|
||||
|
||||
result = sigchase_verify_sig_key(name,
|
||||
keyrdataset,
|
||||
dnsseckey,
|
||||
@@ -4471,7 +4454,7 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset,
|
||||
dns_rdata_reset(&newdsrdata);
|
||||
dns_rdata_reset(&dsrdata);
|
||||
dst_key_free(&dnsseckey);
|
||||
|
||||
|
||||
return (result);
|
||||
}
|
||||
} else {
|
||||
@@ -4485,12 +4468,12 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset,
|
||||
dnsseckey = NULL;
|
||||
} while (dns_rdataset_next(chase_keyrdataset) == ISC_R_SUCCESS);
|
||||
dns_rdata_reset(&keyrdata);
|
||||
|
||||
|
||||
} while (dns_rdataset_next(chase_dsrdataset) == ISC_R_SUCCESS);
|
||||
#if 0
|
||||
dns_rdata_reset(&dsrdata); WARNING
|
||||
#endif
|
||||
|
||||
|
||||
return (ISC_R_NOTFOUND);
|
||||
}
|
||||
|
||||
@@ -4503,13 +4486,13 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset,
|
||||
* ISC_R_SUCCESS: if we found the rrset
|
||||
* ISC_R_NOTFOUND: we do not found the rrset in cache
|
||||
* and we do a query on the net
|
||||
* ISC_R_FAILURE: rrset not found
|
||||
* ISC_R_FAILURE: rrset not found
|
||||
*/
|
||||
isc_result_t
|
||||
advanced_rrsearch(dns_rdataset_t **rdataset, dns_name_t *name,
|
||||
dns_rdatatype_t type, dns_rdatatype_t covers,
|
||||
isc_boolean_t *lookedup)
|
||||
{
|
||||
{
|
||||
isc_boolean_t tmplookedup;
|
||||
|
||||
INSIST(rdataset != NULL);
|
||||
@@ -4584,7 +4567,7 @@ sigchase_td(dns_message_t *msg)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (have_answer) {
|
||||
chase_rdataset
|
||||
= chase_scanname_section(msg, &chase_name,
|
||||
@@ -4644,7 +4627,7 @@ sigchase_td(dns_message_t *msg)
|
||||
chase_dsrdataset,
|
||||
mctx);
|
||||
}
|
||||
|
||||
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
printf("\n;; chain of trust can't be validated:"
|
||||
" FAILED\n\n");
|
||||
@@ -4696,7 +4679,7 @@ sigchase_td(dns_message_t *msg)
|
||||
chase_sigrdataset = NULL;
|
||||
have_response = ISC_FALSE;
|
||||
have_delegation_ns = ISC_FALSE;
|
||||
|
||||
|
||||
dns_name_init(&tmp_name, NULL);
|
||||
result = child_of_zone(&chase_name, &chase_current_name,
|
||||
&tmp_name);
|
||||
@@ -4775,10 +4758,10 @@ sigchase_td(dns_message_t *msg)
|
||||
}
|
||||
chase_keyrdataset = NULL;
|
||||
chase_sigkeyrdataset = NULL;
|
||||
|
||||
|
||||
|
||||
|
||||
prepare_lookup(&chase_authority_name);
|
||||
|
||||
|
||||
have_response = ISC_FALSE;
|
||||
have_delegation_ns = ISC_FALSE;
|
||||
delegation_follow = ISC_TRUE;
|
||||
@@ -4872,7 +4855,7 @@ sigchase_td(dns_message_t *msg)
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#if DIG_SIGCHASE_BU
|
||||
@@ -4889,7 +4872,7 @@ getneededrr(dns_message_t *msg)
|
||||
if ((result = dns_message_firstname(msg, DNS_SECTION_ANSWER))
|
||||
!= ISC_R_SUCCESS) {
|
||||
printf(";; NO ANSWERS: %s\n", isc_result_totext(result));
|
||||
|
||||
|
||||
if (chase_name.ndata == NULL)
|
||||
return (ISC_R_ADDRNOTAVAIL);
|
||||
} else {
|
||||
@@ -4932,7 +4915,7 @@ getneededrr(dns_message_t *msg)
|
||||
}
|
||||
INSIST(chase_sigrdataset != NULL);
|
||||
|
||||
|
||||
|
||||
/* first find the DNSKEY name */
|
||||
result = dns_rdataset_first(chase_sigrdataset);
|
||||
check_result(result, "empty RRSIG dataset");
|
||||
@@ -4943,7 +4926,7 @@ getneededrr(dns_message_t *msg)
|
||||
dup_name(&siginfo.signer, &chase_signame, mctx);
|
||||
dns_rdata_freestruct(&siginfo);
|
||||
dns_rdata_reset(&sigrdata);
|
||||
|
||||
|
||||
/* Do we have a key? */
|
||||
if (chase_keyrdataset == NULL) {
|
||||
result = advanced_rrsearch(&chase_keyrdataset,
|
||||
@@ -5012,7 +4995,7 @@ getneededrr(dns_message_t *msg)
|
||||
print_rdataset(&chase_signame, chase_dsrdataset, mctx);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (chase_dsrdataset != NULL) {
|
||||
/*
|
||||
* if there is no RRSIG of DS,
|
||||
@@ -5071,7 +5054,7 @@ sigchase_bu(dns_message_t *msg)
|
||||
dns_name_init(&query_name, NULL);
|
||||
dns_name_init(&rdata_name, NULL);
|
||||
nameFromString(current_lookup->textname, &query_name);
|
||||
|
||||
|
||||
result = prove_nx(msg, &query_name, current_lookup->rdclass,
|
||||
current_lookup->rdtype, &rdata_name,
|
||||
&rdataset, &sigrdataset);
|
||||
@@ -5093,7 +5076,7 @@ sigchase_bu(dns_message_t *msg)
|
||||
}
|
||||
printf(";; An NSEC prove the non-existence of a answers,"
|
||||
" Now we want validate this NSEC\n");
|
||||
|
||||
|
||||
dup_name(&rdata_name, &chase_name, mctx);
|
||||
free_name(&rdata_name, mctx);
|
||||
chase_rdataset = rdataset;
|
||||
@@ -5174,7 +5157,7 @@ sigchase_bu(dns_message_t *msg)
|
||||
chase_sigdsrdataset = NULL;
|
||||
chase_siglookedup = chase_keylookedup = ISC_FALSE;
|
||||
chase_dslookedup = chase_sigdslookedup = ISC_FALSE;
|
||||
|
||||
|
||||
printf(";; Now, we want to validate the DS : recursive call\n");
|
||||
sigchase(msg);
|
||||
return;
|
||||
@@ -5267,7 +5250,7 @@ prove_nx_domain(dns_message_t *msg,
|
||||
" validate the non-existence : FAILED\n");
|
||||
return (ISC_R_FAILURE);
|
||||
}
|
||||
|
||||
|
||||
do {
|
||||
nsecname = NULL;
|
||||
dns_message_currentname(msg, DNS_SECTION_AUTHORITY, &nsecname);
|
||||
@@ -5345,7 +5328,7 @@ prove_nx_type(dns_message_t *msg, dns_name_t *name, dns_rdataset_t *nsecset,
|
||||
|
||||
ret = dns_rdataset_first(nsecset);
|
||||
check_result(ret,"dns_rdataset_first");
|
||||
|
||||
|
||||
dns_rdataset_current(nsecset, &nsec);
|
||||
|
||||
ret = dns_nsec_typepresent(&nsec, type);
|
||||
@@ -5413,6 +5396,6 @@ prove_nx(dns_message_t *msg, dns_name_t *name, dns_rdataclass_t class,
|
||||
rdataset, sigrdataset);
|
||||
return (ret);
|
||||
}
|
||||
/* Never get here */
|
||||
/* Never get here */
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2004, 2005, 2007, 2008 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
|
||||
@@ -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.29 2008/04/05 01:09:34 tbox Exp $
|
||||
.\" $Id: host.1,v 1.14.18.14 2007/05/09 03:33:12 marka Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -154,7 +154,7 @@ option is used to select the query type.
|
||||
\fItype\fR
|
||||
can be any recognized query type: CNAME, NS, SOA, SIG, KEY, AXFR, etc. When no query type is specified,
|
||||
\fBhost\fR
|
||||
automatically selects an appropriate query type. By default it looks for A, AAAA, and MX records, but if the
|
||||
automatically selects an appropriate query type. By default it looks for A records, but if the
|
||||
\fB\-C\fR
|
||||
option was given, queries will be made for SOA records, and if
|
||||
\fIname\fR
|
||||
@@ -213,7 +213,7 @@ runs.
|
||||
\fBdig\fR(1),
|
||||
\fBnamed\fR(8).
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
Copyright \(co 2000\-2002 Internet Software Consortium.
|
||||
.br
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: host.c,v 1.116 2007/12/03 00:21:48 marka Exp $ */
|
||||
/* $Id: host.c,v 1.94.18.19 2007/08/28 07:19:55 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -689,7 +689,6 @@ 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 ||
|
||||
|
||||
@@ -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 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: host.docbook,v 1.18 2008/04/04 23:47:01 tbox Exp $ -->
|
||||
<!-- $Id: host.docbook,v 1.5.18.11 2007/08/28 07:19:55 tbox Exp $ -->
|
||||
<refentry id="man.host">
|
||||
|
||||
<refentryinfo>
|
||||
@@ -41,7 +41,6 @@
|
||||
<year>2004</year>
|
||||
<year>2005</year>
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -200,7 +199,7 @@
|
||||
NS, SOA, SIG, KEY, AXFR, etc. When no query type is specified,
|
||||
<command>host</command> automatically selects an appropriate
|
||||
query
|
||||
type. By default it looks for A, AAAA, and MX records, but if the
|
||||
type. By default it looks for A records, but if the
|
||||
<option>-C</option> option was given, queries will be made for SOA
|
||||
records, and if <parameter>name</parameter> is a
|
||||
dotted-decimal IPv4
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004, 2005, 2007, 2008 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
|
||||
@@ -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.28 2008/04/05 01:09:34 tbox Exp $ -->
|
||||
<!-- $Id: host.html,v 1.7.18.20 2007/05/09 03:33:12 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -32,7 +32,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">host</code> [<code class="option">-aCdlnrsTwv</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-N <em class="replaceable"><code>ndots</code></em></code>] [<code class="option">-R <em class="replaceable"><code>number</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-W <em class="replaceable"><code>wait</code></em></code>] [<code class="option">-m <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-4</code>] [<code class="option">-6</code>] {name} [server]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543431"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543428"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">host</strong></span>
|
||||
is a simple utility for performing DNS lookups.
|
||||
It is normally used to convert names to IP addresses and vice versa.
|
||||
@@ -148,7 +148,7 @@
|
||||
NS, SOA, SIG, KEY, AXFR, etc. When no query type is specified,
|
||||
<span><strong class="command">host</strong></span> automatically selects an appropriate
|
||||
query
|
||||
type. By default it looks for A, AAAA, and MX records, but if the
|
||||
type. By default it looks for A records, but if the
|
||||
<code class="option">-C</code> option was given, queries will be made for SOA
|
||||
records, and if <em class="parameter"><code>name</code></em> is a
|
||||
dotted-decimal IPv4
|
||||
@@ -184,7 +184,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543797"></a><h2>IDN SUPPORT</h2>
|
||||
<a name="id2543725"></a><h2>IDN SUPPORT</h2>
|
||||
<p>
|
||||
If <span><strong class="command">host</strong></span> has been built with IDN (internationalized
|
||||
domain name) support, it can accept and display non-ASCII domain names.
|
||||
@@ -198,12 +198,12 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543819"></a><h2>FILES</h2>
|
||||
<a name="id2543748"></a><h2>FILES</h2>
|
||||
<p><code class="filename">/etc/resolv.conf</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543831"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2543828"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">dig</span>(1)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>.
|
||||
</p>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 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/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dig.h,v 1.107 2008/04/03 06:09:04 tbox Exp $ */
|
||||
/* $Id: dig.h,v 1.82.18.23 2007/08/28 07:19:55 tbox Exp $ */
|
||||
|
||||
#ifndef DIG_H
|
||||
#define DIG_H
|
||||
@@ -102,7 +102,7 @@ typedef struct dig_searchlist dig_searchlist_t;
|
||||
/*% The dig_lookup structure */
|
||||
struct dig_lookup {
|
||||
isc_boolean_t
|
||||
pending, /*%< Pending a successful answer */
|
||||
pending, /*%< Pending a successful answer */
|
||||
waiting_connect,
|
||||
doing_xfr,
|
||||
ns_search_only, /*%< dig +nssearch, host -C */
|
||||
@@ -129,28 +129,27 @@ struct dig_lookup {
|
||||
need_search,
|
||||
done_as_is,
|
||||
besteffort,
|
||||
dnssec,
|
||||
nsid; /*% Name Server ID (RFC 5001) */
|
||||
dnssec;
|
||||
#ifdef DIG_SIGCHASE
|
||||
isc_boolean_t sigchase;
|
||||
#if DIG_SIGCHASE_TD
|
||||
isc_boolean_t do_topdown,
|
||||
trace_root_sigchase,
|
||||
rdtype_sigchaseset,
|
||||
rdclass_sigchaseset;
|
||||
isc_boolean_t do_topdown,
|
||||
trace_root_sigchase,
|
||||
rdtype_sigchaseset,
|
||||
rdclass_sigchaseset;
|
||||
/* Name we are going to validate RRset */
|
||||
char textnamesigchase[MXNAME];
|
||||
char textnamesigchase[MXNAME];
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
char textname[MXNAME]; /*% Name we're going to be looking up */
|
||||
char cmdline[MXNAME];
|
||||
dns_rdatatype_t rdtype;
|
||||
dns_rdatatype_t qrdtype;
|
||||
#if DIG_SIGCHASE_TD
|
||||
dns_rdatatype_t rdtype_sigchase;
|
||||
dns_rdatatype_t qrdtype_sigchase;
|
||||
dns_rdataclass_t rdclass_sigchase;
|
||||
dns_rdatatype_t rdtype_sigchase;
|
||||
dns_rdatatype_t qrdtype_sigchase;
|
||||
dns_rdataclass_t rdclass_sigchase;
|
||||
#endif
|
||||
dns_rdataclass_t rdclass;
|
||||
isc_boolean_t rdtypeset;
|
||||
@@ -232,7 +231,7 @@ struct dig_searchlist {
|
||||
};
|
||||
#ifdef DIG_SIGCHASE
|
||||
struct dig_message {
|
||||
dns_message_t *msg;
|
||||
dns_message_t *msg;
|
||||
ISC_LINK(dig_message_t) link;
|
||||
};
|
||||
#endif
|
||||
@@ -250,7 +249,7 @@ extern dig_searchlistlist_t search_list;
|
||||
extern unsigned int extrabytes;
|
||||
|
||||
extern isc_boolean_t check_ra, have_ipv4, have_ipv6, specified_source,
|
||||
usesearch, showsearch, qr;
|
||||
usesearch, showsearch, qr;
|
||||
extern in_port_t port;
|
||||
extern unsigned int timeout;
|
||||
extern isc_mem_t *mctx;
|
||||
|
||||
@@ -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.14 2007/05/16 06:12:01 marka Exp $
|
||||
.\" $Id: nslookup.1,v 1.1.10.14 2007/05/16 06:11:27 marka Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: nslookup.c,v 1.117 2007/06/18 23:47:17 tbox Exp $ */
|
||||
/* $Id: nslookup.c,v 1.101.18.15 2007/08/28 07:19:55 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: nslookup.docbook,v 1.16 2007/06/18 23:47:17 tbox Exp $ -->
|
||||
<!-- $Id: nslookup.docbook,v 1.4.2.13 2007/08/28 07:19:55 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.21 2007/05/16 06:12:01 marka Exp $ -->
|
||||
<!-- $Id: nslookup.html,v 1.1.10.21 2007/05/16 06:11:27 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
|
||||
@@ -3,6 +3,5 @@ dnssec-keygen
|
||||
dnssec-makekeyset
|
||||
dnssec-signkey
|
||||
dnssec-signzone
|
||||
dnssec-keyfromlabel
|
||||
*.lo
|
||||
.libs
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# 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.
|
||||
#
|
||||
@@ -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.34 2008/04/01 23:47:10 tbox Exp $
|
||||
# $Id: Makefile.in,v 1.26.18.4 2005/05/02 00:26:11 marka Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
@@ -39,27 +39,20 @@ DEPLIBS = ${DNSDEPLIBS} ${ISCDEPLIBS}
|
||||
LIBS = ${DNSLIBS} ${ISCLIBS} @LIBS@
|
||||
|
||||
# Alphabetically
|
||||
TARGETS = dnssec-keygen@EXEEXT@ dnssec-signzone@EXEEXT@ \
|
||||
dnssec-keyfromlabel@EXEEXT@
|
||||
TARGETS = dnssec-keygen@EXEEXT@ dnssec-signzone@EXEEXT@
|
||||
|
||||
OBJS = dnssectool.@O@
|
||||
|
||||
SRCS = dnssec-keyfromlabel.c dnssec-keygen.c dnssec-signzone.c \
|
||||
dnssectool.c
|
||||
SRCS = dnssec-keygen.c dnssec-signzone.c dnssectool.c
|
||||
|
||||
MANPAGES = dnssec-keyfromlabel.8 dnssec-keygen.8 dnssec-signzone.8
|
||||
MANPAGES = dnssec-keygen.8 dnssec-signzone.8
|
||||
|
||||
HTMLPAGES = dnssec-keyfromlabel.html dnssec-keygen.html \
|
||||
dnssec-signzone.html
|
||||
HTMLPAGES = dnssec-keygen.html dnssec-signzone.html
|
||||
|
||||
MANOBJS = ${MANPAGES} ${HTMLPAGES}
|
||||
|
||||
@BIND9_MAKE_RULES@
|
||||
|
||||
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}
|
||||
|
||||
@@ -1,149 +0,0 @@
|
||||
.\" Copyright (C) 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" 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 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.3 2008/04/01 01:11:50 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 (RSA) or RSASHA1, DSA or DH (Diffie Hellman). These values are case insensitive.
|
||||
.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 2535,
|
||||
RFC 2845,
|
||||
RFC 2539.
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
Internet Systems Consortium
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
@@ -1,326 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2007, 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-keyfromlabel.c,v 1.3 2008/03/31 23:47:11 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";
|
||||
|
||||
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);
|
||||
}
|
||||
@@ -1,265 +0,0 @@
|
||||
<!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-keyfromlabel.docbook,v 1.3 2008/03/31 23:47:11 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>
|
||||
<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 (RSA)
|
||||
or RSASHA1, DSA or DH (Diffie Hellman). These values
|
||||
are case insensitive.
|
||||
</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 2535</citetitle>,
|
||||
<citetitle>RFC 2845</citetitle>,
|
||||
<citetitle>RFC 2539</citetitle>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>AUTHOR</title>
|
||||
<para><corpauthor>Internet Systems Consortium</corpauthor>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
</refentry><!--
|
||||
- Local variables:
|
||||
- mode: sgml
|
||||
- End:
|
||||
-->
|
||||
@@ -1,171 +0,0 @@
|
||||
<!--
|
||||
- Copyright (C) 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- 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 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.3 2008/04/01 01:11:50 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="id2543413"></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="id2543425"></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 or DH (Diffie Hellman). These values
|
||||
are case insensitive.
|
||||
</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="id2543619"></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="id2543691"></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 2535</em>,
|
||||
<em class="citetitle">RFC 2845</em>,
|
||||
<em class="citetitle">RFC 2539</em>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543731"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
</div></body>
|
||||
</html>
|
||||
@@ -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.38 2007/06/18 23:37:19 marka Exp $
|
||||
.\" $Id: dnssec-keygen.8,v 1.23.18.14 2007/05/09 03:33:12 marka Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -60,7 +60,7 @@ Specifies the number of bits in the key. The choice of key size depends on the a
|
||||
.RS 4
|
||||
Specifies the owner type of the key. The value of
|
||||
\fBnametype\fR
|
||||
must either be ZONE (for a DNSSEC zone key (KEY/DNSKEY)), HOST or ENTITY (for a key associated with a host (KEY)), USER (for a key associated with a user(KEY)) or OTHER (DNSKEY). These values are case insensitive. Defaults to ZONE for DNSKEY generation.
|
||||
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
|
||||
|
||||
@@ -1,19 +1,6 @@
|
||||
/*
|
||||
* Portions Copyright (C) 2004-2007 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
|
||||
@@ -29,7 +16,7 @@
|
||||
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssec-keygen.c,v 1.79 2007/08/28 07:20:42 tbox Exp $ */
|
||||
/* $Id: dnssec-keygen.c,v 1.66.18.10 2007/08/28 07:19:55 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -74,7 +61,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");
|
||||
@@ -91,7 +78,6 @@ 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");
|
||||
@@ -148,10 +134,8 @@ 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':
|
||||
@@ -218,17 +202,12 @@ 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: unhandled option -%c\n",
|
||||
program, isc_commandline_option);
|
||||
exit(1);
|
||||
fprintf(stderr, "%s: invalid argument -%c\n",
|
||||
program, ch);
|
||||
usage();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -377,13 +356,11 @@ main(int argc, char **argv) {
|
||||
if (alg != DNS_KEYALG_DH && generator != 0)
|
||||
fatal("specified DH generator for a non-DH key");
|
||||
|
||||
if (nametype == NULL) {
|
||||
if ((options & DST_TYPE_KEY) != 0) /* KEY / HMAC */
|
||||
fatal("no nametype specified");
|
||||
flags |= DNS_KEYOWNER_ZONE; /* DNSKEY */
|
||||
} else if (strcasecmp(nametype, "zone") == 0)
|
||||
if (nametype == NULL)
|
||||
fatal("no nametype specified");
|
||||
if (strcasecmp(nametype, "zone") == 0)
|
||||
flags |= DNS_KEYOWNER_ZONE;
|
||||
else if ((options & DST_TYPE_KEY) != 0) { /* KEY / HMAC */
|
||||
else if ((options & DST_TYPE_KEY) != 0) { /* KEY */
|
||||
if (strcasecmp(nametype, "host") == 0 ||
|
||||
strcasecmp(nametype, "entity") == 0)
|
||||
flags |= DNS_KEYOWNER_ENTITY;
|
||||
@@ -396,7 +373,7 @@ main(int argc, char **argv) {
|
||||
|
||||
rdclass = strtoclass(classname);
|
||||
|
||||
if ((options & DST_TYPE_KEY) != 0) /* KEY / HMAC */
|
||||
if ((options & DST_TYPE_KEY) != 0) /* KEY */
|
||||
flags |= signatory;
|
||||
else if ((flags & DNS_KEYOWNER_ZONE) != 0) /* DNSKEY */
|
||||
flags |= ksk;
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dnssec-keygen.docbook,v 1.19 2007/06/18 23:47:17 tbox Exp $ -->
|
||||
<!-- $Id: dnssec-keygen.docbook,v 1.7.18.11 2007/08/28 07:20:00 tbox Exp $ -->
|
||||
<refentry id="man.dnssec-keygen">
|
||||
<refentryinfo>
|
||||
<date>June 30, 2000</date>
|
||||
@@ -129,8 +129,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. Defaults to ZONE for DNSKEY
|
||||
generation.
|
||||
These values are
|
||||
case insensitive.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@@ -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.30 2007/06/18 23:37:19 marka Exp $ -->
|
||||
<!-- $Id: dnssec-keygen.html,v 1.9.18.20 2007/05/09 03:33:12 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -76,8 +76,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. Defaults to ZONE for DNSKEY
|
||||
generation.
|
||||
These values are
|
||||
case insensitive.
|
||||
</p></dd>
|
||||
<dt><span class="term">-c <em class="replaceable"><code>class</code></em></span></dt>
|
||||
<dd><p>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: dnssec-signzone.8,v 1.45 2007/05/09 03:33:50 marka Exp $
|
||||
.\" $Id: dnssec-signzone.8,v 1.28.18.17 2007/05/09 03:33:12 marka Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
||||
@@ -1,19 +1,6 @@
|
||||
/*
|
||||
* Portions Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Portions Copyright (C) 2004-2007 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
|
||||
@@ -29,7 +16,7 @@
|
||||
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssec-signzone.c,v 1.206 2008/06/02 23:47:04 tbox Exp $ */
|
||||
/* $Id: dnssec-signzone.c,v 1.177.18.24 2007/08/28 07:20:00 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -141,6 +128,7 @@ static dns_name_t *gorigin; /* The database origin */
|
||||
static isc_task_t *master = NULL;
|
||||
static unsigned int ntasks = 0;
|
||||
static isc_boolean_t shuttingdown = ISC_FALSE, finished = ISC_FALSE;
|
||||
static unsigned int assigned = 0, completed = 0;
|
||||
static isc_boolean_t nokeys = ISC_FALSE;
|
||||
static isc_boolean_t removefile = ISC_FALSE;
|
||||
static isc_boolean_t generateds = ISC_FALSE;
|
||||
@@ -981,7 +969,7 @@ active_node(dns_dbnode_t *node) {
|
||||
fatal("rdataset iteration failed: %s",
|
||||
isc_result_totext(result));
|
||||
} else {
|
||||
/*
|
||||
/*
|
||||
* Delete RRSIGs for types that no longer exist.
|
||||
*/
|
||||
result = dns_db_allrdatasets(gdb, node, gversion, 0, &rdsiter2);
|
||||
@@ -1206,7 +1194,7 @@ signapex(void) {
|
||||
dns_fixedname_t fixed;
|
||||
dns_name_t *name;
|
||||
isc_result_t result;
|
||||
|
||||
|
||||
dns_fixedname_init(&fixed);
|
||||
name = dns_fixedname_name(&fixed);
|
||||
result = dns_dbiterator_current(gdbiter, &node, name);
|
||||
@@ -1236,19 +1224,16 @@ assignwork(isc_task_t *task, isc_task_t *worker) {
|
||||
dns_rdataset_t nsec;
|
||||
isc_boolean_t found;
|
||||
isc_result_t result;
|
||||
static unsigned int ended = 0; /* Protected by namelock. */
|
||||
|
||||
if (shuttingdown)
|
||||
return;
|
||||
|
||||
LOCK(&namelock);
|
||||
if (finished) {
|
||||
ended++;
|
||||
if (ended == ntasks) {
|
||||
if (assigned == completed) {
|
||||
isc_task_detach(&task);
|
||||
isc_app_shutdown();
|
||||
}
|
||||
goto unlock;
|
||||
return;
|
||||
}
|
||||
|
||||
fname = isc_mem_get(mctx, sizeof(dns_fixedname_t));
|
||||
@@ -1258,6 +1243,7 @@ assignwork(isc_task_t *task, isc_task_t *worker) {
|
||||
name = dns_fixedname_name(fname);
|
||||
node = NULL;
|
||||
found = ISC_FALSE;
|
||||
LOCK(&namelock);
|
||||
while (!found) {
|
||||
result = dns_dbiterator_current(gdbiter, &node, name);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
@@ -1284,14 +1270,14 @@ assignwork(isc_task_t *task, isc_task_t *worker) {
|
||||
fatal("failure iterating database: %s",
|
||||
isc_result_totext(result));
|
||||
}
|
||||
UNLOCK(&namelock);
|
||||
if (!found) {
|
||||
ended++;
|
||||
if (ended == ntasks) {
|
||||
if (assigned == completed) {
|
||||
isc_task_detach(&task);
|
||||
isc_app_shutdown();
|
||||
}
|
||||
isc_mem_put(mctx, fname, sizeof(dns_fixedname_t));
|
||||
goto unlock;
|
||||
return;
|
||||
}
|
||||
sevent = (sevent_t *)
|
||||
isc_event_allocate(mctx, task, SIGNER_EVENT_WORK,
|
||||
@@ -1302,8 +1288,7 @@ assignwork(isc_task_t *task, isc_task_t *worker) {
|
||||
sevent->node = node;
|
||||
sevent->fname = fname;
|
||||
isc_task_send(worker, ISC_EVENT_PTR(&sevent));
|
||||
unlock:
|
||||
UNLOCK(&namelock);
|
||||
assigned++;
|
||||
}
|
||||
|
||||
/*%
|
||||
@@ -1326,6 +1311,7 @@ writenode(isc_task_t *task, isc_event_t *event) {
|
||||
isc_task_t *worker;
|
||||
sevent_t *sevent = (sevent_t *)event;
|
||||
|
||||
completed++;
|
||||
worker = (isc_task_t *)event->ev_sender;
|
||||
dumpnode(dns_fixedname_name(sevent->fname), sevent->node);
|
||||
cleannode(gdb, gversion, sevent->node);
|
||||
@@ -1619,7 +1605,7 @@ writeset(const char *prefix, dns_rdatatype_t type) {
|
||||
unsigned char dsbuf[DNS_DS_BUFFERSIZE];
|
||||
unsigned char keybuf[DST_KEY_MAXSIZE];
|
||||
unsigned int filenamelen;
|
||||
const dns_master_style_t *style =
|
||||
const dns_master_style_t *style =
|
||||
(type == dns_rdatatype_dnskey) ? masterstyle : dsstyle;
|
||||
|
||||
isc_buffer_init(&namebuf, namestr, sizeof(namestr));
|
||||
@@ -1832,13 +1818,13 @@ print_stats(isc_time_t *timer_start, isc_time_t *timer_finish) {
|
||||
printf("Signatures successfully verified: %10d\n", nverified);
|
||||
printf("Signatures unsuccessfully verified: %10d\n", nverifyfailed);
|
||||
runtime_ms = runtime_us / 1000;
|
||||
printf("Runtime in seconds: %7u.%03u\n",
|
||||
(unsigned int) (runtime_ms / 1000),
|
||||
printf("Runtime in seconds: %7u.%03u\n",
|
||||
(unsigned int) (runtime_ms / 1000),
|
||||
(unsigned int) (runtime_ms % 1000));
|
||||
if (runtime_us > 0) {
|
||||
sig_ms = ((isc_uint64_t)nsigned * 1000000000) / runtime_us;
|
||||
printf("Signatures per second: %7u.%03u\n",
|
||||
(unsigned int) sig_ms / 1000,
|
||||
(unsigned int) sig_ms / 1000,
|
||||
(unsigned int) sig_ms % 1000);
|
||||
}
|
||||
}
|
||||
@@ -1876,10 +1862,8 @@ main(int argc, char *argv[]) {
|
||||
|
||||
dns_result_register();
|
||||
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
|
||||
while ((ch = isc_commandline_parse(argc, argv,
|
||||
"ac:d:e:f:ghi:I:j:k:l:n:N:o:O:pr:s:Stv:z"))
|
||||
"ac:d:e:f:ghi:I:j:k:l:n:N:o:O:pr:s:Stv:z"))
|
||||
!= -1) {
|
||||
switch (ch) {
|
||||
case 'a':
|
||||
@@ -1906,19 +1890,11 @@ main(int argc, char *argv[]) {
|
||||
generateds = ISC_TRUE;
|
||||
break;
|
||||
|
||||
case '?':
|
||||
if (isc_commandline_option != '?')
|
||||
fprintf(stderr, "%s: invalid argument -%c\n",
|
||||
program, isc_commandline_option);
|
||||
case 'h':
|
||||
default:
|
||||
usage();
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr, "%s: unhandled option -%c\n",
|
||||
program, isc_commandline_option);
|
||||
exit(1);
|
||||
|
||||
case 'i':
|
||||
endp = NULL;
|
||||
cycle = strtol(isc_commandline_argument, &endp, 0);
|
||||
@@ -1938,7 +1914,7 @@ main(int argc, char *argv[]) {
|
||||
fatal("jitter must be numeric and positive");
|
||||
break;
|
||||
|
||||
case 'l':
|
||||
case 'l':
|
||||
dns_fixedname_init(&dlv_fixed);
|
||||
len = strlen(isc_commandline_argument);
|
||||
isc_buffer_init(&b, isc_commandline_argument, len);
|
||||
@@ -2104,7 +2080,7 @@ main(int argc, char *argv[]) {
|
||||
result = dns_master_stylecreate(&dsstyle, DNS_STYLEFLAG_NO_TTL,
|
||||
0, 24, 0, 0, 0, 8, mctx);
|
||||
check_result(result, "dns_master_stylecreate");
|
||||
|
||||
|
||||
|
||||
gdb = NULL;
|
||||
TIME_NOW(&timer_start);
|
||||
@@ -2126,8 +2102,8 @@ main(int argc, char *argv[]) {
|
||||
DST_TYPE_PRIVATE,
|
||||
mctx, &newkey);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("cannot load dnskey %s: %s", argv[i],
|
||||
isc_result_totext(result));
|
||||
fatal("cannot load dnskey %s: %s", argv[i],
|
||||
isc_result_totext(result));
|
||||
|
||||
key = ISC_LIST_HEAD(keylist);
|
||||
while (key != NULL) {
|
||||
@@ -2135,7 +2111,7 @@ main(int argc, char *argv[]) {
|
||||
if (dst_key_id(dkey) == dst_key_id(newkey) &&
|
||||
dst_key_alg(dkey) == dst_key_alg(newkey) &&
|
||||
dns_name_equal(dst_key_name(dkey),
|
||||
dst_key_name(newkey)))
|
||||
dst_key_name(newkey)))
|
||||
{
|
||||
if (!dst_key_isprivate(dkey))
|
||||
fatal("cannot sign zone with "
|
||||
@@ -2164,7 +2140,7 @@ main(int argc, char *argv[]) {
|
||||
mctx, &newkey);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("cannot load dnskey %s: %s", dskeyfile[i],
|
||||
isc_result_totext(result));
|
||||
isc_result_totext(result));
|
||||
|
||||
key = ISC_LIST_HEAD(keylist);
|
||||
while (key != NULL) {
|
||||
@@ -2172,7 +2148,7 @@ main(int argc, char *argv[]) {
|
||||
if (dst_key_id(dkey) == dst_key_id(newkey) &&
|
||||
dst_key_alg(dkey) == dst_key_alg(newkey) &&
|
||||
dns_name_equal(dst_key_name(dkey),
|
||||
dst_key_name(newkey)))
|
||||
dst_key_name(newkey)))
|
||||
{
|
||||
/* Override key flags. */
|
||||
key->issigningkey = ISC_TRUE;
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dnssec-signzone.docbook,v 1.27 2007/06/18 23:47:18 tbox Exp $ -->
|
||||
<!-- $Id: dnssec-signzone.docbook,v 1.10.18.17 2007/08/28 07:20:00 tbox Exp $ -->
|
||||
<refentry id="man.dnssec-signzone">
|
||||
<refentryinfo>
|
||||
<date>June 30, 2000</date>
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: dnssec-signzone.html,v 1.31 2007/05/09 03:33:50 marka Exp $ -->
|
||||
<!-- $Id: dnssec-signzone.html,v 1.8.18.23 2007/05/09 03:33:12 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssectool.c,v 1.45 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: dnssectool.c,v 1.40.18.3 2005/07/01 03:55:28 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssectool.h,v 1.20 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: dnssectool.h,v 1.18 2004/03/05 04:57:41 marka Exp $ */
|
||||
|
||||
#ifndef DNSSECTOOL_H
|
||||
#define DNSSECTOOL_H 1
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 1998-2002 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# 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.
|
||||
#
|
||||
@@ -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.100 2008/03/31 05:00:29 marka Exp $
|
||||
# $Id: Makefile.in,v 1.80.18.7 2005/09/05 00:18:10 marka Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
@@ -38,7 +38,7 @@ DLZDRIVER_SRCS = @DLZ_DRIVER_SRCS@
|
||||
DLZDRIVER_INCLUDES = @DLZ_DRIVER_INCLUDES@
|
||||
DLZDRIVER_LIBS = @DLZ_DRIVER_LIBS@
|
||||
|
||||
CINCLUDES = -I${srcdir}/include -I${srcdir}/unix/include -I. \
|
||||
CINCLUDES = -I${srcdir}/include -I${srcdir}/unix/include \
|
||||
${LWRES_INCLUDES} ${DNS_INCLUDES} ${BIND9_INCLUDES} \
|
||||
${ISCCFG_INCLUDES} ${ISCCC_INCLUDES} ${ISC_INCLUDES} \
|
||||
${DLZDRIVER_INCLUDES} ${DBDRIVER_INCLUDES}
|
||||
@@ -75,7 +75,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@ statschannel.@O@ \
|
||||
query.@O@ server.@O@ sortlist.@O@ \
|
||||
tkeyconf.@O@ tsigconf.@O@ update.@O@ xfrout.@O@ \
|
||||
zoneconf.@O@ \
|
||||
lwaddr.@O@ lwresd.@O@ lwdclient.@O@ lwderror.@O@ lwdgabn.@O@ \
|
||||
@@ -87,7 +87,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 statschannel.c \
|
||||
query.c server.c sortlist.c \
|
||||
tkeyconf.c tsigconf.c update.c xfrout.c \
|
||||
zoneconf.c \
|
||||
lwaddr.c lwresd.c lwdclient.c lwderror.c lwdgabn.c \
|
||||
@@ -130,12 +130,6 @@ 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
|
||||
|
||||
@@ -1,617 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
- 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: bind9.xsl,v 1.18 2008/06/23 19:41:18 jinmei 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 {
|
||||
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;
|
||||
}
|
||||
</style>
|
||||
<title>BIND 9 Statistics</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">Bind 9 Configuration and Statistics</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/>
|
||||
|
||||
<table>
|
||||
<tr class="rowh"><th colspan="10">Server Statistics</th></tr>
|
||||
<tr class="rowh">
|
||||
<!-- The ordering of the following items must be consistent
|
||||
with dns_nsstatscounter_xxx -->
|
||||
<th>Requestv4</th>
|
||||
<th>Requestv6</th>
|
||||
<th>ReqEdns0</th>
|
||||
<th>ReqBadEDNSVer</th>
|
||||
<th>ReqTSIG</th>
|
||||
<th>ReqSIG0</th>
|
||||
<th>ReqBadSIG</th>
|
||||
<th>ReqTCP</th>
|
||||
<th>AuthQryRej</th>
|
||||
<th>RecQryRej</th>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="server/nsstats/Requestv4"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/Requestv6"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/ReqEdns0"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/ReqBadEDNSVer"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/ReqTSIG"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/ReqSIG0"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/ReqBadSIG"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/ReqTCP"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/AuthQryRej"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/RecQryRej"/></td>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<th>XfrRej</th>
|
||||
<th>UpdateRej</th>
|
||||
<th>Response</th>
|
||||
<th>RespTruncated</th>
|
||||
<th>RespEDNS0</th>
|
||||
<th>RespTSIG</th>
|
||||
<th>RespSIG0</th>
|
||||
<th>QrySuccess</th>
|
||||
<th>QryAuthAns</th>
|
||||
<th>QryNoauthAns</th>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="server/nsstats/XfrRej"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/UpdateRej"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/Response"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/TruncatedResp"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/RespEDNS0"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/RespTSIG"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/RespSIG0"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QrySuccess"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryAuthAns"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryNoauthAns"/></td>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<th>QryReferral</th>
|
||||
<th>QryNxrrset</th>
|
||||
<th>QrySERVFAIL</th>
|
||||
<th>QryFORMERR</th>
|
||||
<th>QryNXDOMAIN</th>
|
||||
<th>QryRecursion</th>
|
||||
<th>QryDuplicate</th>
|
||||
<th>QryDropped</th>
|
||||
<th>QryFailure</th>
|
||||
<th>XfrReqDone</th>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="server/nsstats/QryReferral"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryNxrrset"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QrySERVFAIL"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryFORMERR"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryNXDOMAIN"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryRecursion"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryDuplicate"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryDropped"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryFailure"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/XfrReqDone"/></td>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<th>UpdateReqFwd</th>
|
||||
<th>UpdateRespFwd</th>
|
||||
<th>UpdateFwdFail</th>
|
||||
<th>UpdateDone</th>
|
||||
<th>UpdateFail</th>
|
||||
<th>UpdateBadPrereq</th>
|
||||
<th>RespMismatch</th>
|
||||
<th />
|
||||
<th />
|
||||
<th />
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="server/nsstats/UpdateReqFwd"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/UpdateRespFwd"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/UpdateFwdFail"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/UpdateDone"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/UpdateFail"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/UpdateBadPrereq"/></td>
|
||||
<td><xsl:value-of select="server/resstats/Mismatch"/></td>
|
||||
<td />
|
||||
<td />
|
||||
<td />
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
|
||||
<table>
|
||||
<tr class="rowh"><th colspan="10">Zone Maintenance Statistics</th></tr>
|
||||
<tr class="rowh">
|
||||
<!-- The ordering of the following items must be consistent
|
||||
with dns_zonestatscounter_xxx -->
|
||||
<th>NotifyOutv4</th>
|
||||
<th>NotifyOutv6</th>
|
||||
<th>NotifyInv4</th>
|
||||
<th>NotifyInv6</th>
|
||||
<th>NotifyRej</th>
|
||||
<th>SOAOutv4</th>
|
||||
<th>SOAOutv6</th>
|
||||
<th>AXFRReqv4</th>
|
||||
<th>AXFRReqv6</th>
|
||||
<th>IXFRReqv4</th>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="server/zonestats/NotifyOutv4"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/NotifyOutv6"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/NotifyInv4"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/NotifyInv6"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/NotifyRej"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/SOAOutv4"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/SOAOutv6"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/AXFRReqv4"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/AXFRReqv6"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/IXFRReqv4"/></td>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<th>IXFRReqv6</th>
|
||||
<th>XfrSuccess</th>
|
||||
<th>XfrFail</th>
|
||||
<th/>
|
||||
<th/>
|
||||
<th/>
|
||||
<th/>
|
||||
<th/>
|
||||
<th/>
|
||||
<th/>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="server/zonestats/IXFRReqv6"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/XfrSuccess"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/XfrFail"/></td>
|
||||
<td/>
|
||||
<td/>
|
||||
<td/>
|
||||
<td/>
|
||||
<td/>
|
||||
<td/>
|
||||
<td/>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
|
||||
<xsl:for-each select="views/view">
|
||||
<table>
|
||||
<tr class="rowh">
|
||||
<th colspan="10">Resolver Statistics for View <xsl:value-of select="name"/></th>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<!-- The ordering of the following items must be consistent
|
||||
with dns_resstatscounter_xxx -->
|
||||
<th>Queryv4</th>
|
||||
<th>Queryv6</th>
|
||||
<th>Responsev4</th>
|
||||
<th>Responsev6</th>
|
||||
<th>NXDOMAIN</th>
|
||||
<th>SERVFAIL</th>
|
||||
<th>FORMERR</th>
|
||||
<th>OtherError</th>
|
||||
<th>EDNS0Fail</th>
|
||||
<!-- this counter is not applicable to per-view stat,
|
||||
but keep it for generating the description table used in
|
||||
the statschannel.c.
|
||||
<th>Mismatch</th> -->
|
||||
<th>Truncated</th>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="resstats/Queryv4"/></td>
|
||||
<td><xsl:value-of select="resstats/Queryv6"/></td>
|
||||
<td><xsl:value-of select="resstats/Responsev4"/></td>
|
||||
<td><xsl:value-of select="resstats/Responsev6"/></td>
|
||||
<td><xsl:value-of select="resstats/NXDOMAIN"/></td>
|
||||
<td><xsl:value-of select="resstats/SERVFAIL"/></td>
|
||||
<td><xsl:value-of select="resstats/FORMERR"/></td>
|
||||
<td><xsl:value-of select="resstats/OtherError"/></td>
|
||||
<td><xsl:value-of select="resstats/EDNS0Fail"/></td>
|
||||
<!-- <td><xsl:value-of select="resstats/Mismatch"/></td> -->
|
||||
<td><xsl:value-of select="resstats/Truncated"/></td>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<th>Lame</th>
|
||||
<th>Retry</th>
|
||||
<th>GlueFetchv4</th>
|
||||
<th>GlueFetchv6</th>
|
||||
<th>GlueFetchv4Fail</th>
|
||||
<th>GlueFetchv6Fail</th>
|
||||
<th>ValAttempt</th>
|
||||
<th>ValOk</th>
|
||||
<th>ValNegOk</th>
|
||||
<th>ValFail</th>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="resstats/Lame"/></td>
|
||||
<td><xsl:value-of select="resstats/Retry"/></td>
|
||||
<td><xsl:value-of select="resstats/GlueFetchv4"/></td>
|
||||
<td><xsl:value-of select="resstats/GlueFetchv6"/></td>
|
||||
<td><xsl:value-of select="resstats/GlueFetchv4Fail"/></td>
|
||||
<td><xsl:value-of select="resstats/GlueFetchv6Fail"/></td>
|
||||
<td><xsl:value-of select="resstats/ValAttempt"/></td>
|
||||
<td><xsl:value-of select="resstats/ValOk"/></td>
|
||||
<td><xsl:value-of select="resstats/ValNegOk"/></td>
|
||||
<td><xsl:value-of select="resstats/ValFail"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br/>
|
||||
</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>
|
||||
|
||||
<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>
|
||||
@@ -1,697 +0,0 @@
|
||||
/*
|
||||
* Generated by convertxsl.pl 1.13 2008/04/03 10:52:46 marka Exp
|
||||
* From bind9.xsl 1.18 2008/06/23 19:41:18 jinmei Exp
|
||||
*/
|
||||
static char xslmsg[] =
|
||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||
"<!--\n"
|
||||
" - Copyright (C) 2006-2008 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.18 2008/06/23 19:41:18 jinmei 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 {\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"
|
||||
" </style>\n"
|
||||
" <title>BIND 9 Statistics</title>\n"
|
||||
" </head>\n"
|
||||
" <body>\n"
|
||||
" <div class=\"header\">Bind 9 Configuration and Statistics</div>\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"
|
||||
" <table>\n"
|
||||
" <tr class=\"rowh\"><th colspan=\"10\">Server Statistics</th></tr>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <!-- The ordering of the following items must be consistent\n"
|
||||
" with dns_nsstatscounter_xxx -->\n"
|
||||
" <th>Requestv4</th>\n"
|
||||
" <th>Requestv6</th>\n"
|
||||
" <th>ReqEdns0</th>\n"
|
||||
" <th>ReqBadEDNSVer</th>\n"
|
||||
" <th>ReqTSIG</th>\n"
|
||||
" <th>ReqSIG0</th>\n"
|
||||
" <th>ReqBadSIG</th>\n"
|
||||
" <th>ReqTCP</th>\n"
|
||||
" <th>AuthQryRej</th>\n"
|
||||
" <th>RecQryRej</th>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/Requestv4\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/Requestv6\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/ReqEdns0\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/ReqBadEDNSVer\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/ReqTSIG\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/ReqSIG0\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/ReqBadSIG\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/ReqTCP\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/AuthQryRej\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/RecQryRej\"/></td>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th>XfrRej</th>\n"
|
||||
" <th>UpdateRej</th>\n"
|
||||
" <th>Response</th>\n"
|
||||
" <th>RespTruncated</th>\n"
|
||||
" <th>RespEDNS0</th>\n"
|
||||
" <th>RespTSIG</th>\n"
|
||||
" <th>RespSIG0</th>\n"
|
||||
" <th>QrySuccess</th>\n"
|
||||
" <th>QryAuthAns</th>\n"
|
||||
" <th>QryNoauthAns</th>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/XfrRej\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/UpdateRej\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/Response\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/TruncatedResp\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/RespEDNS0\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/RespTSIG\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/RespSIG0\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/QrySuccess\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/QryAuthAns\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/QryNoauthAns\"/></td>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th>QryReferral</th>\n"
|
||||
" <th>QryNxrrset</th>\n"
|
||||
" <th>QrySERVFAIL</th>\n"
|
||||
" <th>QryFORMERR</th>\n"
|
||||
" <th>QryNXDOMAIN</th>\n"
|
||||
" <th>QryRecursion</th>\n"
|
||||
" <th>QryDuplicate</th>\n"
|
||||
" <th>QryDropped</th>\n"
|
||||
" <th>QryFailure</th>\n"
|
||||
" <th>XfrReqDone</th>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/QryReferral\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/QryNxrrset\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/QrySERVFAIL\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/QryFORMERR\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/QryNXDOMAIN\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/QryRecursion\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/QryDuplicate\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/QryDropped\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/QryFailure\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/XfrReqDone\"/></td>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th>UpdateReqFwd</th>\n"
|
||||
" <th>UpdateRespFwd</th>\n"
|
||||
" <th>UpdateFwdFail</th>\n"
|
||||
" <th>UpdateDone</th>\n"
|
||||
" <th>UpdateFail</th>\n"
|
||||
" <th>UpdateBadPrereq</th>\n"
|
||||
" <th>RespMismatch</th>\n"
|
||||
" <th />\n"
|
||||
" <th />\n"
|
||||
" <th />\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/UpdateReqFwd\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/UpdateRespFwd\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/UpdateFwdFail\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/UpdateDone\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/UpdateFail\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/nsstats/UpdateBadPrereq\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/resstats/Mismatch\"/></td>\n"
|
||||
" <td />\n"
|
||||
" <td />\n"
|
||||
" <td />\n"
|
||||
" </tr>\n"
|
||||
" </table>\n"
|
||||
"\n"
|
||||
" <br/>\n"
|
||||
"\n"
|
||||
" <table>\n"
|
||||
" <tr class=\"rowh\"><th colspan=\"10\">Zone Maintenance Statistics</th></tr>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <!-- The ordering of the following items must be consistent\n"
|
||||
" with dns_zonestatscounter_xxx -->\n"
|
||||
" <th>NotifyOutv4</th>\n"
|
||||
" <th>NotifyOutv6</th>\n"
|
||||
" <th>NotifyInv4</th>\n"
|
||||
" <th>NotifyInv6</th>\n"
|
||||
" <th>NotifyRej</th>\n"
|
||||
" <th>SOAOutv4</th>\n"
|
||||
" <th>SOAOutv6</th>\n"
|
||||
" <th>AXFRReqv4</th>\n"
|
||||
" <th>AXFRReqv6</th>\n"
|
||||
" <th>IXFRReqv4</th>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td><xsl:value-of select=\"server/zonestats/NotifyOutv4\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/zonestats/NotifyOutv6\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/zonestats/NotifyInv4\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/zonestats/NotifyInv6\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/zonestats/NotifyRej\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/zonestats/SOAOutv4\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/zonestats/SOAOutv6\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/zonestats/AXFRReqv4\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/zonestats/AXFRReqv6\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/zonestats/IXFRReqv4\"/></td>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th>IXFRReqv6</th>\n"
|
||||
" <th>XfrSuccess</th>\n"
|
||||
" <th>XfrFail</th>\n"
|
||||
" <th/>\n"
|
||||
" <th/>\n"
|
||||
" <th/>\n"
|
||||
" <th/>\n"
|
||||
" <th/>\n"
|
||||
" <th/>\n"
|
||||
" <th/>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td><xsl:value-of select=\"server/zonestats/IXFRReqv6\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/zonestats/XfrSuccess\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"server/zonestats/XfrFail\"/></td>\n"
|
||||
" <td/>\n"
|
||||
" <td/>\n"
|
||||
" <td/>\n"
|
||||
" <td/>\n"
|
||||
" <td/>\n"
|
||||
" <td/>\n"
|
||||
" <td/>\n"
|
||||
" </tr>\n"
|
||||
" </table>\n"
|
||||
"\n"
|
||||
" <br/>\n"
|
||||
"\n"
|
||||
" <xsl:for-each select=\"views/view\">\n"
|
||||
" <table>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th colspan=\"10\">Resolver Statistics for View <xsl:value-of select=\"name\"/></th>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <!-- The ordering of the following items must be consistent\n"
|
||||
" with dns_resstatscounter_xxx -->\n"
|
||||
" <th>Queryv4</th>\n"
|
||||
" <th>Queryv6</th>\n"
|
||||
" <th>Responsev4</th>\n"
|
||||
" <th>Responsev6</th>\n"
|
||||
" <th>NXDOMAIN</th>\n"
|
||||
" <th>SERVFAIL</th>\n"
|
||||
" <th>FORMERR</th>\n"
|
||||
" <th>OtherError</th>\n"
|
||||
" <th>EDNS0Fail</th>\n"
|
||||
" <!-- this counter is not applicable to per-view stat,\n"
|
||||
" but keep it for generating the description table used in\n"
|
||||
" the statschannel.c.\n"
|
||||
" <th>Mismatch</th> -->\n"
|
||||
" <th>Truncated</th>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td><xsl:value-of select=\"resstats/Queryv4\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"resstats/Queryv6\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"resstats/Responsev4\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"resstats/Responsev6\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"resstats/NXDOMAIN\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"resstats/SERVFAIL\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"resstats/FORMERR\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"resstats/OtherError\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"resstats/EDNS0Fail\"/></td>\n"
|
||||
" <!-- <td><xsl:value-of select=\"resstats/Mismatch\"/></td> -->\n"
|
||||
" <td><xsl:value-of select=\"resstats/Truncated\"/></td>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"rowh\">\n"
|
||||
" <th>Lame</th>\n"
|
||||
" <th>Retry</th>\n"
|
||||
" <th>GlueFetchv4</th>\n"
|
||||
" <th>GlueFetchv6</th>\n"
|
||||
" <th>GlueFetchv4Fail</th>\n"
|
||||
" <th>GlueFetchv6Fail</th>\n"
|
||||
" <th>ValAttempt</th>\n"
|
||||
" <th>ValOk</th>\n"
|
||||
" <th>ValNegOk</th>\n"
|
||||
" <th>ValFail</th>\n"
|
||||
" </tr>\n"
|
||||
" <tr class=\"lrow\">\n"
|
||||
" <td><xsl:value-of select=\"resstats/Lame\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"resstats/Retry\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"resstats/GlueFetchv4\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"resstats/GlueFetchv6\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"resstats/GlueFetchv4Fail\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"resstats/GlueFetchv6Fail\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"resstats/ValAttempt\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"resstats/ValOk\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"resstats/ValNegOk\"/></td>\n"
|
||||
" <td><xsl:value-of select=\"resstats/ValFail\"/></td>\n"
|
||||
" </tr>\n"
|
||||
" </table>\n"
|
||||
" <br/>\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"
|
||||
" <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";
|
||||
#ifdef HAVE_LIBXML2
|
||||
static const char *nsstats_xmldesc[] = { "Requestv4",
|
||||
"Requestv6",
|
||||
"ReqEdns0",
|
||||
"ReqBadEDNSVer",
|
||||
"ReqTSIG",
|
||||
"ReqSIG0",
|
||||
"ReqBadSIG",
|
||||
"ReqTCP",
|
||||
"AuthQryRej",
|
||||
"RecQryRej",
|
||||
"XfrRej",
|
||||
"UpdateRej",
|
||||
"Response",
|
||||
"TruncatedResp",
|
||||
"RespEDNS0",
|
||||
"RespTSIG",
|
||||
"RespSIG0",
|
||||
"QrySuccess",
|
||||
"QryAuthAns",
|
||||
"QryNoauthAns",
|
||||
"QryReferral",
|
||||
"QryNxrrset",
|
||||
"QrySERVFAIL",
|
||||
"QryFORMERR",
|
||||
"QryNXDOMAIN",
|
||||
"QryRecursion",
|
||||
"QryDuplicate",
|
||||
"QryDropped",
|
||||
"QryFailure",
|
||||
"XfrReqDone",
|
||||
"UpdateReqFwd",
|
||||
"UpdateRespFwd",
|
||||
"UpdateFwdFail",
|
||||
"UpdateDone",
|
||||
"UpdateFail",
|
||||
"UpdateBadPrereq"
|
||||
};
|
||||
static const char *zonestats_xmldesc[] = { "NotifyOutv4",
|
||||
"NotifyOutv6",
|
||||
"NotifyInv4",
|
||||
"NotifyInv6",
|
||||
"NotifyRej",
|
||||
"SOAOutv4",
|
||||
"SOAOutv6",
|
||||
"AXFRReqv4",
|
||||
"AXFRReqv6",
|
||||
"IXFRReqv4",
|
||||
"IXFRReqv6",
|
||||
"XfrSuccess",
|
||||
"XfrFail"
|
||||
};
|
||||
static const char *resstats_xmldesc[] = { "Queryv4",
|
||||
"Queryv6",
|
||||
"Responsev4",
|
||||
"Responsev6",
|
||||
"NXDOMAIN",
|
||||
"SERVFAIL",
|
||||
"FORMERR",
|
||||
"OtherError",
|
||||
"EDNS0Fail",
|
||||
"Mismatch",
|
||||
"Truncated",
|
||||
"Lame",
|
||||
"Retry",
|
||||
"GlueFetchv4",
|
||||
"GlueFetchv6",
|
||||
"GlueFetchv4Fail",
|
||||
"GlueFetchv6Fail",
|
||||
"ValAttempt",
|
||||
"ValOk",
|
||||
"ValNegOk",
|
||||
"ValFail"
|
||||
};
|
||||
#endif
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2001-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: builtin.c,v 1.12 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: builtin.c,v 1.5.18.5 2005/08/23 04:12:38 marka Exp $ */
|
||||
|
||||
/*! \file
|
||||
* \brief
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: client.c,v 1.258 2008/06/23 19:41:18 jinmei Exp $ */
|
||||
/* $Id: client.c,v 1.219.18.28.10.2 2008/07/23 07:28:54 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -41,7 +41,6 @@
|
||||
#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>
|
||||
@@ -49,7 +48,6 @@
|
||||
#include <named/interfacemgr.h>
|
||||
#include <named/log.h>
|
||||
#include <named/notify.h>
|
||||
#include <named/os.h>
|
||||
#include <named/server.h>
|
||||
#include <named/update.h>
|
||||
|
||||
@@ -121,9 +119,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;
|
||||
@@ -134,7 +132,7 @@ struct ns_clientmgr {
|
||||
#define MANAGER_MAGIC ISC_MAGIC('N', 'S', 'C', 'm')
|
||||
#define VALID_MANAGER(m) ISC_MAGIC_VALID(m, MANAGER_MAGIC)
|
||||
|
||||
/*!
|
||||
/*!
|
||||
* Client object states. Ordering is significant: higher-numbered
|
||||
* states are generally "more active", meaning that the client can
|
||||
* have more dynamically allocated data, outstanding events, etc.
|
||||
@@ -288,7 +286,7 @@ exit_check(ns_client_t *client) {
|
||||
*
|
||||
* Keep the view attached until any outstanding updates complete.
|
||||
*/
|
||||
if (client->nupdates == 0 &&
|
||||
if (client->nupdates == 0 &&
|
||||
client->newstate == NS_CLIENTSTATE_FREED && client->view != NULL)
|
||||
dns_view_detach(&client->view);
|
||||
|
||||
@@ -465,8 +463,6 @@ 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;
|
||||
}
|
||||
}
|
||||
@@ -523,14 +519,6 @@ 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;
|
||||
@@ -604,7 +592,6 @@ client_shutdown(isc_task_t *task, isc_event_t *event) {
|
||||
}
|
||||
|
||||
client->newstate = NS_CLIENTSTATE_FREED;
|
||||
client->needshutdown = ISC_FALSE;
|
||||
(void)exit_check(client);
|
||||
}
|
||||
|
||||
@@ -653,11 +640,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) && !ns_g_clienttest) {
|
||||
if (TCP_CLIENT(client)) {
|
||||
LOCK(&client->interface->lock);
|
||||
if (client->interface->ntcpcurrent <
|
||||
client->interface->ntcptarget)
|
||||
@@ -830,7 +817,7 @@ client_sendpkg(ns_client_t *client, isc_buffer_t *buffer) {
|
||||
isc_netaddr_fromsockaddr(&netaddr, &client->peeraddr);
|
||||
if (ns_g_server->blackholeacl != NULL &&
|
||||
dns_acl_match(&netaddr, NULL,
|
||||
ns_g_server->blackholeacl,
|
||||
ns_g_server->blackholeacl,
|
||||
&ns_g_server->aclenv,
|
||||
&match, NULL) == ISC_R_SUCCESS &&
|
||||
match > 0)
|
||||
@@ -847,7 +834,7 @@ client_sendpkg(ns_client_t *client, isc_buffer_t *buffer) {
|
||||
isc_buffer_usedregion(buffer, &r);
|
||||
|
||||
CTRACE("sendto");
|
||||
|
||||
|
||||
result = isc_socket_sendto2(socket, &r, client->task,
|
||||
address, pktinfo,
|
||||
client->sendevent, sockflags);
|
||||
@@ -919,7 +906,6 @@ 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));
|
||||
|
||||
@@ -957,10 +943,11 @@ 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);
|
||||
opt_included = ISC_TRUE;
|
||||
/*
|
||||
* XXXRTH dns_message_setopt() should probably do this...
|
||||
*/
|
||||
client->opt = NULL;
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto done;
|
||||
@@ -1016,26 +1003,6 @@ 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?) */
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_response);
|
||||
if (opt_included) {
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_edns0out);
|
||||
}
|
||||
if (client->message->tsigkey != NULL) {
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_tsigout);
|
||||
}
|
||||
if (client->message->sig0key != NULL) {
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_sig0out);
|
||||
}
|
||||
if ((client->message->flags & DNS_MESSAGEFLAG_TC) != 0)
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_truncatedresp);
|
||||
|
||||
if (result == ISC_R_SUCCESS)
|
||||
return;
|
||||
|
||||
@@ -1141,8 +1108,8 @@ ns_client_error(ns_client_t *client, isc_result_t result) {
|
||||
/*
|
||||
* FORMERR loop avoidance: If we sent a FORMERR message
|
||||
* with the same ID to the same client less than two
|
||||
* seconds ago, assume that we are in an infinite error
|
||||
* packet dialog with a server for some protocol whose
|
||||
* seconds ago, assume that we are in an infinite error
|
||||
* packet dialog with a server for some protocol whose
|
||||
* error responses look enough like DNS queries to
|
||||
* elicit a FORMERR response. Drop a packet to break
|
||||
* the loop.
|
||||
@@ -1212,46 +1179,11 @@ client_addopt(ns_client_t *client) {
|
||||
*/
|
||||
rdatalist->ttl = (client->extflags & DNS_MESSAGEEXTFLAG_REPLYPRESERVE);
|
||||
|
||||
/* 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];
|
||||
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;
|
||||
}
|
||||
} else {
|
||||
strncpy(nsid, ns_g_server->server_id, sizeof(nsid));
|
||||
}
|
||||
|
||||
rdata->length = strlen(nsid) + 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(nsid));
|
||||
isc_buffer_putstr(buffer, nsid);
|
||||
rdata->data = buffer->base;
|
||||
dns_message_takebuffer(client->message, &buffer);
|
||||
} else {
|
||||
no_nsid:
|
||||
rdata->data = NULL;
|
||||
rdata->length = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* No EDNS options in the default case.
|
||||
*/
|
||||
rdata->data = NULL;
|
||||
rdata->length = 0;
|
||||
rdata->rdclass = rdatalist->rdclass;
|
||||
rdata->type = rdatalist->type;
|
||||
rdata->flags = 0;
|
||||
@@ -1321,14 +1253,14 @@ ns_client_isself(dns_view_t *myview, dns_tsigkey_t *mykey,
|
||||
isc_boolean_t match;
|
||||
isc_result_t result;
|
||||
|
||||
result = dns_view_gettsig(view, &mykey->name, &key);
|
||||
tsig = &mykey->name;
|
||||
result = dns_view_gettsig(view, tsig, &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) &&
|
||||
@@ -1352,16 +1284,13 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
isc_buffer_t tbuffer;
|
||||
dns_view_t *view;
|
||||
dns_rdataset_t *opt;
|
||||
dns_name_t *signame;
|
||||
isc_boolean_t ra; /* Recursion available. */
|
||||
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;
|
||||
@@ -1510,20 +1439,6 @@ 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) {
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_requestv4);
|
||||
} else {
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_requestv6);
|
||||
}
|
||||
if (TCP_CLIENT(client))
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_tcp);
|
||||
|
||||
/*
|
||||
* It's a request. Parse it.
|
||||
*/
|
||||
@@ -1537,8 +1452,6 @@ 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:
|
||||
@@ -1586,35 +1499,12 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
*/
|
||||
client->ednsversion = (opt->ttl & 0x00FF0000) >> 16;
|
||||
if (client->ednsversion > 0) {
|
||||
dns_generalstats_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;
|
||||
}
|
||||
}
|
||||
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_edns0in);
|
||||
|
||||
/*
|
||||
* Create an OPT for our reply.
|
||||
*/
|
||||
@@ -1644,7 +1534,7 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
* For IPv6 UDP queries, we get this from the pktinfo structure (if
|
||||
* supported).
|
||||
* If all the attempts fail (this can happen due to memory shortage,
|
||||
* etc), we regard this as an error for safety.
|
||||
* etc), we regard this as an error for safety.
|
||||
*/
|
||||
if ((client->interface->flags & NS_INTERFACEFLAG_ANYADDR) == 0)
|
||||
isc_netaddr_fromsockaddr(&destaddr, &client->interface->addr);
|
||||
@@ -1701,12 +1591,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 = dns_tsigkey_identity(client->message->tsigkey);
|
||||
|
||||
tsig = client->message->tsigname;
|
||||
|
||||
if (allowed(&netaddr, tsig, view->matchclients) &&
|
||||
allowed(&destaddr, tsig, view->matchdestinations) &&
|
||||
!((client->message->flags & DNS_MESSAGEFLAG_RD)
|
||||
@@ -1759,17 +1648,6 @@ 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) {
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_tsigin);
|
||||
} else {
|
||||
dns_generalstats_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),
|
||||
@@ -1786,42 +1664,24 @@ 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. */
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_invalidsig);
|
||||
signame = NULL;
|
||||
if (dns_message_gettsig(client->message, &signame) != NULL) {
|
||||
if (dns_message_gettsig(client->message, &name) != NULL) {
|
||||
char namebuf[DNS_NAME_FORMATSIZE];
|
||||
char cnamebuf[DNS_NAME_FORMATSIZE];
|
||||
dns_name_format(signame, namebuf, sizeof(namebuf));
|
||||
dns_name_format(name, 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';
|
||||
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);
|
||||
}
|
||||
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);
|
||||
@@ -1855,17 +1715,9 @@ 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, NULL,
|
||||
client->view->recursionacl,
|
||||
ns_client_checkaclsilent(client, client->view->recursionacl,
|
||||
ISC_TRUE) == ISC_R_SUCCESS &&
|
||||
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,
|
||||
ns_client_checkaclsilent(client, client->view->queryacl,
|
||||
ISC_TRUE) == ISC_R_SUCCESS)
|
||||
ra = ISC_TRUE;
|
||||
|
||||
@@ -1874,7 +1726,7 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
ns_client_log(client, DNS_LOGCATEGORY_SECURITY, NS_LOGMODULE_CLIENT,
|
||||
ISC_LOG_DEBUG(3), ra ? "recursion available" :
|
||||
"recursion not available");
|
||||
"recursion not available");
|
||||
|
||||
/*
|
||||
* Adjust maximum UDP response size for this client.
|
||||
@@ -1952,17 +1804,13 @@ 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];
|
||||
@@ -1970,13 +1818,12 @@ 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;
|
||||
manager->nextmctx++;
|
||||
if (manager->nextmctx == NMCTXS)
|
||||
manager->nextmctx = 0;
|
||||
}
|
||||
manager->nextmctx++;
|
||||
if (manager->nextmctx == NMCTXS)
|
||||
manager->nextmctx = 0;
|
||||
#else
|
||||
clientmctx = manager->mctx;
|
||||
#endif
|
||||
@@ -2119,8 +1966,6 @@ 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;
|
||||
@@ -2211,7 +2056,6 @@ 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);
|
||||
|
||||
@@ -2224,7 +2068,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.
|
||||
@@ -2249,7 +2093,7 @@ client_newconn(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
if (ns_g_server->blackholeacl != NULL &&
|
||||
dns_acl_match(&netaddr, NULL,
|
||||
ns_g_server->blackholeacl,
|
||||
ns_g_server->blackholeacl,
|
||||
&ns_g_server->aclenv,
|
||||
&match, NULL) == ISC_R_SUCCESS &&
|
||||
match > 0)
|
||||
@@ -2305,7 +2149,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.
|
||||
@@ -2542,9 +2386,7 @@ 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 = NULL;
|
||||
if (!ns_g_clienttest)
|
||||
client = ISC_LIST_HEAD(manager->inactive);
|
||||
client = ISC_LIST_HEAD(manager->inactive);
|
||||
if (client != NULL) {
|
||||
MTRACE("recycle");
|
||||
ISC_LIST_UNLINK(manager->inactive, client, link);
|
||||
@@ -2600,8 +2442,8 @@ ns_client_getsockaddr(ns_client_t *client) {
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
ns_client_checkaclsilent(ns_client_t *client, isc_sockaddr_t *sockaddr,
|
||||
dns_acl_t *acl, isc_boolean_t default_allow)
|
||||
ns_client_checkaclsilent(ns_client_t *client, dns_acl_t *acl,
|
||||
isc_boolean_t default_allow)
|
||||
{
|
||||
isc_result_t result;
|
||||
int match;
|
||||
@@ -2614,16 +2456,11 @@ ns_client_checkaclsilent(ns_client_t *client, isc_sockaddr_t *sockaddr,
|
||||
goto deny;
|
||||
}
|
||||
|
||||
|
||||
if (sockaddr == NULL)
|
||||
isc_netaddr_fromsockaddr(&netaddr, &client->peeraddr);
|
||||
else
|
||||
isc_netaddr_fromsockaddr(&netaddr, sockaddr);
|
||||
isc_netaddr_fromsockaddr(&netaddr, &client->peeraddr);
|
||||
|
||||
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)
|
||||
@@ -2638,14 +2475,14 @@ ns_client_checkaclsilent(ns_client_t *client, isc_sockaddr_t *sockaddr,
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
ns_client_checkacl(ns_client_t *client, isc_sockaddr_t *sockaddr,
|
||||
ns_client_checkacl(ns_client_t *client,
|
||||
const char *opname, dns_acl_t *acl,
|
||||
isc_boolean_t default_allow, int log_level)
|
||||
{
|
||||
isc_result_t result =
|
||||
ns_client_checkaclsilent(client, sockaddr, acl, default_allow);
|
||||
ns_client_checkaclsilent(client, acl, default_allow);
|
||||
|
||||
if (result == ISC_R_SUCCESS)
|
||||
if (result == ISC_R_SUCCESS)
|
||||
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
|
||||
NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3),
|
||||
"%s approved", opname);
|
||||
@@ -2666,7 +2503,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];
|
||||
@@ -2701,16 +2538,16 @@ ns_client_log(ns_client_t *client, isc_logcategory_t *category,
|
||||
|
||||
void
|
||||
ns_client_aclmsg(const char *msg, dns_name_t *name, dns_rdatatype_t type,
|
||||
dns_rdataclass_t rdclass, char *buf, size_t len)
|
||||
dns_rdataclass_t rdclass, char *buf, size_t len)
|
||||
{
|
||||
char namebuf[DNS_NAME_FORMATSIZE];
|
||||
char typebuf[DNS_RDATATYPE_FORMATSIZE];
|
||||
char classbuf[DNS_RDATACLASS_FORMATSIZE];
|
||||
char namebuf[DNS_NAME_FORMATSIZE];
|
||||
char typebuf[DNS_RDATATYPE_FORMATSIZE];
|
||||
char classbuf[DNS_RDATACLASS_FORMATSIZE];
|
||||
|
||||
dns_name_format(name, namebuf, sizeof(namebuf));
|
||||
dns_rdatatype_format(type, typebuf, sizeof(typebuf));
|
||||
dns_rdataclass_format(rdclass, classbuf, sizeof(classbuf));
|
||||
(void)snprintf(buf, len, "%s '%s/%s/%s'", msg, namebuf, typebuf,
|
||||
dns_name_format(name, namebuf, sizeof(namebuf));
|
||||
dns_rdatatype_format(type, typebuf, sizeof(typebuf));
|
||||
dns_rdataclass_format(rdclass, classbuf, sizeof(classbuf));
|
||||
(void)snprintf(buf, len, "%s '%s/%s/%s'", msg, namebuf, typebuf,
|
||||
classbuf);
|
||||
}
|
||||
|
||||
@@ -2738,7 +2575,7 @@ ns_client_dumpmessage(ns_client_t *client, const char *reason) {
|
||||
isc_mem_put(client->mctx, buf, len);
|
||||
len += 1024;
|
||||
} else if (result == ISC_R_SUCCESS)
|
||||
ns_client_log(client, NS_LOGCATEGORY_UNMATCHED,
|
||||
ns_client_log(client, NS_LOGCATEGORY_UNMATCHED,
|
||||
NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(1),
|
||||
"%s\n%.*s", reason,
|
||||
(int)isc_buffer_usedlength(&buffer),
|
||||
@@ -2758,7 +2595,7 @@ ns_client_dumprecursing(FILE *f, ns_clientmgr_t *manager) {
|
||||
const char *sep;
|
||||
|
||||
REQUIRE(VALID_MANAGER(manager));
|
||||
|
||||
|
||||
LOCK(&manager->lock);
|
||||
client = ISC_LIST_HEAD(manager->recursing);
|
||||
while (client != NULL) {
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: config.c,v 1.88 2008/05/28 21:02:45 each Exp $ */
|
||||
/* $Id: config.c,v 1.47.18.32.10.3 2008/07/23 23:48:17 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -52,7 +52,7 @@ options {\n\
|
||||
#ifndef WIN32
|
||||
" coresize default;\n\
|
||||
datasize default;\n\
|
||||
files default;\n\
|
||||
files unlimited;\n\
|
||||
stacksize default;\n"
|
||||
#endif
|
||||
" deallocate-on-exit true;\n\
|
||||
@@ -99,15 +99,13 @@ 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\
|
||||
@@ -124,22 +122,22 @@ options {\n\
|
||||
query-source-v6 address *;\n\
|
||||
notify-source *;\n\
|
||||
notify-source-v6 *;\n\
|
||||
cleaning-interval 0; /* now meaningless */\n\
|
||||
cleaning-interval 60;\n\
|
||||
min-roots 2;\n\
|
||||
lame-ttl 600;\n\
|
||||
max-ncache-ttl 10800; /* 3 hours */\n\
|
||||
max-cache-ttl 604800; /* 1 week */\n\
|
||||
transfer-format many-answers;\n\
|
||||
# max-cache-size default; /* set default in server.c */\n\
|
||||
max-cache-size 0;\n\
|
||||
check-names master fail;\n\
|
||||
check-names slave warn;\n\
|
||||
check-names response ignore;\n\
|
||||
check-mx warn;\n\
|
||||
acache-enable no;\n\
|
||||
acache-cleaning-interval 60;\n\
|
||||
max-acache-size 16M;\n\
|
||||
max-acache-size 0;\n\
|
||||
dnssec-enable yes;\n\
|
||||
dnssec-validation yes; \n\
|
||||
dnssec-validation no; /* Make yes for 9.5. */ \n\
|
||||
dnssec-accept-expired no;\n\
|
||||
clients-per-query 10;\n\
|
||||
max-clients-per-query 100;\n\
|
||||
@@ -148,12 +146,10 @@ options {\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\
|
||||
@@ -173,9 +169,6 @@ 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 65535;\n\
|
||||
zone-statistics false;\n\
|
||||
max-journal-size unlimited;\n\
|
||||
ixfr-from-differences false;\n\
|
||||
@@ -186,7 +179,6 @@ 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\
|
||||
"
|
||||
|
||||
@@ -411,7 +403,7 @@ ns_config_putiplist(isc_mem_t *mctx, isc_sockaddr_t **addrsp,
|
||||
|
||||
static isc_result_t
|
||||
get_masters_def(const cfg_obj_t *cctx, const char *name,
|
||||
const cfg_obj_t **ret)
|
||||
const cfg_obj_t **ret)
|
||||
{
|
||||
isc_result_t result;
|
||||
const cfg_obj_t *masters = NULL;
|
||||
@@ -529,7 +521,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
tresult = get_masters_def(config, listname, &list);
|
||||
if (tresult == ISC_R_NOTFOUND) {
|
||||
cfg_obj_log(addr, ns_g_lctx, ISC_LOG_ERROR,
|
||||
"masters \"%s\" not found", listname);
|
||||
"masters \"%s\" not found", listname);
|
||||
|
||||
result = tresult;
|
||||
goto cleanup;
|
||||
@@ -607,7 +599,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
if (keys[i] == NULL)
|
||||
goto cleanup;
|
||||
dns_name_init(keys[i], NULL);
|
||||
|
||||
|
||||
keystr = cfg_obj_asstring(key);
|
||||
isc_buffer_init(&b, keystr, strlen(keystr));
|
||||
isc_buffer_add(&b, strlen(keystr));
|
||||
@@ -663,7 +655,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
isc_mem_put(mctx, lists, listcount * sizeof(*lists));
|
||||
if (stack != NULL)
|
||||
isc_mem_put(mctx, stack, stackcount * sizeof(*stack));
|
||||
|
||||
|
||||
INSIST(keycount == addrcount);
|
||||
|
||||
*addrsp = addrs;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: control.c,v 1.33 2007/09/13 04:45:18 each Exp $ */
|
||||
/* $Id: control.c,v 1.20.10.10 2007/09/13 23:46:26 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -63,7 +63,6 @@ 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
|
||||
@@ -84,20 +83,14 @@ ns_control_docommand(isccc_sexpr_t *message, isc_buffer_t *text) {
|
||||
return (result);
|
||||
}
|
||||
|
||||
/*
|
||||
* 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,
|
||||
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_RELOAD)) {
|
||||
result = ns_server_reloadcommand(ns_g_server, command, text);
|
||||
} else if (command_compare(command, NS_COMMAND_RECONFIG)) {
|
||||
@@ -165,10 +158,6 @@ 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);
|
||||
} else if (command_compare(command, NS_COMMAND_UNFREEZE) ||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006, 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.58 2008/01/18 23:46:57 tbox Exp $ */
|
||||
/* $Id: controlconf.c,v 1.40.18.10.40.3 2008/07/23 23:16:43 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -345,9 +345,9 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
listener = conn->listener;
|
||||
secret.rstart = NULL;
|
||||
|
||||
/* Is the server shutting down? */
|
||||
if (listener->controls->shuttingdown)
|
||||
goto cleanup;
|
||||
/* Is the server shutting down? */
|
||||
if (listener->controls->shuttingdown)
|
||||
goto cleanup;
|
||||
|
||||
if (conn->ccmsg.result != ISC_R_SUCCESS) {
|
||||
if (conn->ccmsg.result != ISC_R_CANCELED &&
|
||||
@@ -364,6 +364,9 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
{
|
||||
ccregion.rstart = isc_buffer_base(&conn->ccmsg.buffer);
|
||||
ccregion.rend = isc_buffer_used(&conn->ccmsg.buffer);
|
||||
if (secret.rstart != NULL)
|
||||
isc_mem_put(listener->mctx, secret.rstart,
|
||||
REGION_SIZE(secret));
|
||||
secret.rstart = isc_mem_get(listener->mctx, key->secret.length);
|
||||
if (secret.rstart == NULL)
|
||||
goto cleanup;
|
||||
@@ -372,8 +375,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
result = isccc_cc_fromwire(&ccregion, &request, &secret);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
break;
|
||||
isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret));
|
||||
if (result == ISCCC_R_BADAUTH) {
|
||||
else if (result == ISCCC_R_BADAUTH) {
|
||||
/*
|
||||
* For some reason, request is non-NULL when
|
||||
* isccc_cc_fromwire returns ISCCC_R_BADAUTH.
|
||||
@@ -394,7 +396,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
/* We shouldn't be getting a reply. */
|
||||
if (isccc_cc_isreply(request)) {
|
||||
log_invalid(&conn->ccmsg, ISC_R_FAILURE);
|
||||
goto cleanup_request;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
isc_stdtime_get(&now);
|
||||
@@ -405,17 +407,17 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
_ctrl = isccc_alist_lookup(request, "_ctrl");
|
||||
if (_ctrl == NULL) {
|
||||
log_invalid(&conn->ccmsg, ISC_R_FAILURE);
|
||||
goto cleanup_request;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (isccc_cc_lookupuint32(_ctrl, "_tim", &sent) == ISC_R_SUCCESS) {
|
||||
if ((sent + CLOCKSKEW) < now || (sent - CLOCKSKEW) > now) {
|
||||
log_invalid(&conn->ccmsg, ISCCC_R_CLOCKSKEW);
|
||||
goto cleanup_request;
|
||||
goto cleanup;
|
||||
}
|
||||
} else {
|
||||
log_invalid(&conn->ccmsg, ISC_R_FAILURE);
|
||||
goto cleanup_request;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -424,7 +426,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
if (isccc_cc_lookupuint32(_ctrl, "_exp", &exp) == ISC_R_SUCCESS &&
|
||||
now > exp) {
|
||||
log_invalid(&conn->ccmsg, ISCCC_R_EXPIRED);
|
||||
goto cleanup_request;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -434,16 +436,16 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
result = isccc_cc_checkdup(listener->controls->symtab, request, now);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
if (result == ISC_R_EXISTS)
|
||||
result = ISCCC_R_DUPLICATE;
|
||||
result = ISCCC_R_DUPLICATE;
|
||||
log_invalid(&conn->ccmsg, result);
|
||||
goto cleanup_request;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (conn->nonce != 0 &&
|
||||
(isccc_cc_lookupuint32(_ctrl, "_nonce", &nonce) != ISC_R_SUCCESS ||
|
||||
conn->nonce != nonce)) {
|
||||
log_invalid(&conn->ccmsg, ISCCC_R_BADAUTH);
|
||||
goto cleanup_request;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -457,7 +459,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
result = isccc_cc_createresponse(request, now, now + 60, &response);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup_request;
|
||||
goto cleanup;
|
||||
if (eresult != ISC_R_SUCCESS) {
|
||||
isccc_sexpr_t *data;
|
||||
|
||||
@@ -465,7 +467,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
if (data != NULL) {
|
||||
const char *estr = isc_result_totext(eresult);
|
||||
if (isccc_cc_definestring(data, "err", estr) == NULL)
|
||||
goto cleanup_response;
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -476,20 +478,20 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
if (data != NULL) {
|
||||
char *str = (char *)isc_buffer_base(&text);
|
||||
if (isccc_cc_definestring(data, "text", str) == NULL)
|
||||
goto cleanup_response;
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
_ctrl = isccc_alist_lookup(response, "_ctrl");
|
||||
if (_ctrl == NULL ||
|
||||
isccc_cc_defineuint32(_ctrl, "_nonce", conn->nonce) == NULL)
|
||||
goto cleanup_response;
|
||||
goto cleanup;
|
||||
|
||||
ccregion.rstart = conn->buffer + 4;
|
||||
ccregion.rend = conn->buffer + sizeof(conn->buffer);
|
||||
result = isccc_cc_towire(response, &ccregion, &secret);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup_response;
|
||||
goto cleanup;
|
||||
isc_buffer_init(&b, conn->buffer, 4);
|
||||
len = sizeof(conn->buffer) - REGION_SIZE(ccregion);
|
||||
isc_buffer_putuint32(&b, len - 4);
|
||||
@@ -498,27 +500,31 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
result = isc_socket_send(conn->sock, &r, task, control_senddone, conn);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup_response;
|
||||
goto cleanup;
|
||||
conn->sending = ISC_TRUE;
|
||||
|
||||
isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret));
|
||||
isccc_sexpr_free(&request);
|
||||
isccc_sexpr_free(&response);
|
||||
if (secret.rstart != NULL)
|
||||
isc_mem_put(listener->mctx, secret.rstart,
|
||||
REGION_SIZE(secret));
|
||||
if (request != NULL)
|
||||
isccc_sexpr_free(&request);
|
||||
if (response != NULL)
|
||||
isccc_sexpr_free(&response);
|
||||
return;
|
||||
|
||||
cleanup_response:
|
||||
isccc_sexpr_free(&response);
|
||||
|
||||
cleanup_request:
|
||||
isccc_sexpr_free(&request);
|
||||
isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret));
|
||||
|
||||
cleanup:
|
||||
if (secret.rstart != NULL)
|
||||
isc_mem_put(listener->mctx, secret.rstart,
|
||||
REGION_SIZE(secret));
|
||||
isc_socket_detach(&conn->sock);
|
||||
isccc_ccmsg_invalidate(&conn->ccmsg);
|
||||
conn->ccmsg_valid = ISC_FALSE;
|
||||
maybe_free_connection(conn);
|
||||
maybe_free_listener(listener);
|
||||
if (request != NULL)
|
||||
isccc_sexpr_free(&request);
|
||||
if (response != NULL)
|
||||
isccc_sexpr_free(&response);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -542,7 +548,7 @@ newconnection(controllistener_t *listener, isc_socket_t *sock) {
|
||||
conn = isc_mem_get(listener->mctx, sizeof(*conn));
|
||||
if (conn == NULL)
|
||||
return (ISC_R_NOMEMORY);
|
||||
|
||||
|
||||
conn->sock = sock;
|
||||
isccc_ccmsg_init(listener->mctx, sock, &conn->ccmsg);
|
||||
conn->ccmsg_valid = ISC_TRUE;
|
||||
@@ -597,7 +603,6 @@ 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)) {
|
||||
@@ -655,7 +660,7 @@ ns_controls_shutdown(ns_controls_t *controls) {
|
||||
|
||||
static isc_result_t
|
||||
cfgkeylist_find(const cfg_obj_t *keylist, const char *keyname,
|
||||
const cfg_obj_t **objp)
|
||||
const cfg_obj_t **objp)
|
||||
{
|
||||
const cfg_listelt_t *element;
|
||||
const char *str;
|
||||
@@ -803,7 +808,7 @@ register_keys(const cfg_obj_t *control, const cfg_obj_t *keylist,
|
||||
if (result != ISC_R_SUCCESS) \
|
||||
goto cleanup; \
|
||||
} while (0)
|
||||
|
||||
|
||||
static isc_result_t
|
||||
get_rndckey(isc_mem_t *mctx, controlkeylist_t *keyids) {
|
||||
isc_result_t result;
|
||||
@@ -823,14 +828,14 @@ get_rndckey(isc_mem_t *mctx, controlkeylist_t *keyids) {
|
||||
CHECK(cfg_map_get(config, "key", &key));
|
||||
|
||||
keyid = isc_mem_get(mctx, sizeof(*keyid));
|
||||
if (keyid == NULL)
|
||||
if (keyid == NULL)
|
||||
CHECK(ISC_R_NOMEMORY);
|
||||
keyid->keyname = isc_mem_strdup(mctx,
|
||||
cfg_obj_asstring(cfg_map_getname(key)));
|
||||
keyid->secret.base = NULL;
|
||||
keyid->secret.length = 0;
|
||||
ISC_LINK_INIT(keyid, link);
|
||||
if (keyid->keyname == NULL)
|
||||
if (keyid->keyname == NULL)
|
||||
CHECK(ISC_R_NOMEMORY);
|
||||
|
||||
CHECK(bind9_check_key(key, ns_g_lctx));
|
||||
@@ -886,7 +891,7 @@ get_rndckey(isc_mem_t *mctx, controlkeylist_t *keyids) {
|
||||
cfg_parser_destroy(&pctx);
|
||||
return (result);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Ensures that both '*global_keylistp' and '*control_keylistp' are
|
||||
* valid or both are NULL.
|
||||
@@ -920,7 +925,7 @@ static void
|
||||
update_listener(ns_controls_t *cp, controllistener_t **listenerp,
|
||||
const cfg_obj_t *control, const cfg_obj_t *config,
|
||||
isc_sockaddr_t *addr, cfg_aclconfctx_t *aclconfctx,
|
||||
const char *socktext, isc_sockettype_t type)
|
||||
const char *socktext, isc_sockettype_t type)
|
||||
{
|
||||
controllistener_t *listener;
|
||||
const cfg_obj_t *allow;
|
||||
@@ -940,7 +945,7 @@ update_listener(ns_controls_t *cp, controllistener_t **listenerp,
|
||||
*listenerp = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* There is already a listener for this sockaddr.
|
||||
* Update the access list and key information.
|
||||
@@ -1008,7 +1013,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, 0,
|
||||
aclconfctx, listener->mctx,
|
||||
&new_acl);
|
||||
} else {
|
||||
result = dns_acl_any(listener->mctx, &new_acl);
|
||||
@@ -1095,8 +1100,7 @@ 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, 0,
|
||||
&new_acl);
|
||||
aclconfctx, mctx, &new_acl);
|
||||
} else {
|
||||
result = dns_acl_any(mctx, &new_acl);
|
||||
}
|
||||
@@ -1145,12 +1149,10 @@ 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);
|
||||
result = isc_socket_bind(listener->sock, &listener->address,
|
||||
ISC_SOCKET_REUSEADDRESS);
|
||||
|
||||
if (result == ISC_R_SUCCESS && type == isc_sockettype_unix) {
|
||||
listener->perm = cfg_obj_asuint32(cfg_tuple_get(control,
|
||||
@@ -1337,7 +1339,7 @@ ns_controls_configure(ns_controls_t *cp, const cfg_obj_t *config,
|
||||
|
||||
update_listener(cp, &listener, control, config,
|
||||
&addr, aclconfctx,
|
||||
cfg_obj_asstring(path),
|
||||
cfg_obj_asstring(path),
|
||||
isc_sockettype_unix);
|
||||
|
||||
if (listener != NULL)
|
||||
@@ -1383,10 +1385,10 @@ ns_controls_configure(ns_controls_t *cp, const cfg_obj_t *config,
|
||||
isc_sockaddr_setport(&addr, NS_CONTROL_PORT);
|
||||
|
||||
isc_sockaddr_format(&addr, socktext, sizeof(socktext));
|
||||
|
||||
|
||||
update_listener(cp, &listener, NULL, NULL,
|
||||
&addr, NULL, socktext,
|
||||
isc_sockettype_tcp);
|
||||
isc_sockettype_tcp);
|
||||
|
||||
if (listener != NULL)
|
||||
/*
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
#!/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.13 2008/04/03 10:52:46 marka Exp $
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my $rev = '$Id: convertxsl.pl,v 1.13 2008/04/03 10:52:46 marka Exp $';
|
||||
$rev =~ s/\$//g;
|
||||
$rev =~ s/,v//g;
|
||||
$rev =~ s/Id: //;
|
||||
|
||||
my $xsl = "unknown";
|
||||
my $lines = '';
|
||||
my (@nsstatsdesc, @zonestatsdesc, @resstatsdesc);
|
||||
|
||||
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 -->/;
|
||||
if (/server\/nsstats\/(\w+)\"/) {
|
||||
push(@nsstatsdesc, $1);
|
||||
} elsif (/server\/zonestats\/(\w+)\"/) {
|
||||
push(@zonestatsdesc, $1);
|
||||
} elsif (/\"resstats\/(\w+)\"/) {
|
||||
push(@resstatsdesc, $1);
|
||||
}
|
||||
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";
|
||||
|
||||
print '#ifdef HAVE_LIBXML2', "\n";
|
||||
print "static const char *nsstats_xmldesc[] = {";
|
||||
while (my $desc = shift(@nsstatsdesc)) {
|
||||
print "\t\"$desc\"";
|
||||
print "," if (@nsstatsdesc);
|
||||
print "\n";
|
||||
}
|
||||
print "};\n";
|
||||
|
||||
print "static const char *zonestats_xmldesc[] = {";
|
||||
while (my $desc = shift(@zonestatsdesc)) {
|
||||
print "\t\"$desc\"";
|
||||
print "," if (@zonestatsdesc);
|
||||
print "\n";
|
||||
}
|
||||
print "};\n";
|
||||
|
||||
print "static const char *resstats_xmldesc[] = {";
|
||||
while (my $desc = shift(@resstatsdesc)) {
|
||||
print "\t\"$desc\"";
|
||||
print "," if (@resstatsdesc);
|
||||
print "\n";
|
||||
}
|
||||
print "};\n";
|
||||
print '#endif', "\n";
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: builtin.h,v 1.6 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: builtin.h,v 1.2.18.2 2005/04/29 00:15:34 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_BUILTIN_H
|
||||
#define NAMED_BUILTIN_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: client.h,v 1.86 2008/04/03 02:01:08 marka Exp $ */
|
||||
/* $Id: client.h,v 1.69.18.9 2006/06/06 00:11:41 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_CLIENT_H
|
||||
#define NAMED_CLIENT_H 1
|
||||
@@ -24,7 +24,7 @@
|
||||
***** Module Info
|
||||
*****/
|
||||
|
||||
/*! \file
|
||||
/*! \file
|
||||
* \brief
|
||||
* This module defines two objects, ns_client_t and ns_clientmgr_t.
|
||||
*
|
||||
@@ -97,13 +97,6 @@ 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;
|
||||
@@ -166,7 +159,6 @@ 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;
|
||||
|
||||
@@ -274,9 +266,7 @@ ns_client_getsockaddr(ns_client_t *client);
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
ns_client_checkaclsilent(ns_client_t *client,
|
||||
isc_sockaddr_t *sockaddr,
|
||||
dns_acl_t *acl,
|
||||
ns_client_checkaclsilent(ns_client_t *client,dns_acl_t *acl,
|
||||
isc_boolean_t default_allow);
|
||||
|
||||
/*%
|
||||
@@ -284,8 +274,6 @@ ns_client_checkaclsilent(ns_client_t *client,
|
||||
*
|
||||
* 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,
|
||||
@@ -296,7 +284,6 @@ ns_client_checkaclsilent(ns_client_t *client,
|
||||
*
|
||||
* 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:
|
||||
@@ -307,19 +294,18 @@ ns_client_checkaclsilent(ns_client_t *client,
|
||||
|
||||
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_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.
|
||||
* 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.
|
||||
*
|
||||
* 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.
|
||||
*\li Those of ns_client_checkaclsilent(), and:
|
||||
*
|
||||
*\li 'opname' points to a null-terminated string.
|
||||
*/
|
||||
|
||||
@@ -366,8 +352,8 @@ ns_client_qnamereplace(ns_client_t *client, dns_name_t *name);
|
||||
|
||||
isc_boolean_t
|
||||
ns_client_isself(dns_view_t *myview, dns_tsigkey_t *mykey,
|
||||
isc_sockaddr_t *srcaddr, isc_sockaddr_t *destaddr,
|
||||
dns_rdataclass_t rdclass, void *arg);
|
||||
isc_sockaddr_t *srcaddr, isc_sockaddr_t *destaddr,
|
||||
dns_rdataclass_t rdclass, void *arg);
|
||||
/*%
|
||||
* Isself callback.
|
||||
*/
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2001, 2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: config.h,v 1.14 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: config.h,v 1.6.18.6 2006/02/28 03:10:47 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_CONFIG_H
|
||||
#define NAMED_CONFIG_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2001-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: control.h,v 1.25 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: control.h,v 1.14.18.8 2006/03/09 23:46:20 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_CONTROL_H
|
||||
#define NAMED_CONTROL_H 1
|
||||
@@ -47,8 +47,6 @@
|
||||
#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,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: globals.h,v 1.75 2008/01/02 23:47:01 tbox Exp $ */
|
||||
/* $Id: globals.h,v 1.64.18.4 2006/03/02 00:37:21 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_GLOBALS_H
|
||||
#define NAMED_GLOBALS_H 1
|
||||
@@ -113,9 +113,6 @@ EXTERN const char * lwresd_g_defaultpidfile INIT(NS_LOCALSTATEDIR
|
||||
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);
|
||||
|
||||
#undef EXTERN
|
||||
#undef INIT
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: interfacemgr.h,v 1.33 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: interfacemgr.h,v 1.26.18.4 2005/04/27 05:00:35 sra Exp $ */
|
||||
|
||||
#ifndef NAMED_INTERFACEMGR_H
|
||||
#define NAMED_INTERFACEMGR_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: listenlist.h,v 1.15 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: listenlist.h,v 1.11.18.2 2005/04/29 00:15:34 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_LISTENLIST_H
|
||||
#define NAMED_LISTENLIST_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: log.h,v 1.25 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: log.h,v 1.21.18.2 2005/04/29 00:15:35 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_LOG_H
|
||||
#define NAMED_LOG_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: logconf.h,v 1.17 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: logconf.h,v 1.11.18.4 2006/03/02 00:37:21 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_LOGCONF_H
|
||||
#define NAMED_LOGCONF_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwaddr.h,v 1.8 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: lwaddr.h,v 1.4.18.2 2005/04/29 00:15:35 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwdclient.h,v 1.18 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: lwdclient.h,v 1.14.18.2 2005/04/29 00:15:36 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_LWDCLIENT_H
|
||||
#define NAMED_LWDCLIENT_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwresd.h,v 1.19 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: lwresd.h,v 1.13.18.4 2006/03/02 00:37:21 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_LWRESD_H
|
||||
#define NAMED_LWRESD_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwsearch.h,v 1.9 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: lwsearch.h,v 1.5.18.2 2005/04/29 00:15:36 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_LWSEARCH_H
|
||||
#define NAMED_LWSEARCH_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: main.h,v 1.15 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: main.h,v 1.11.18.2 2005/04/29 00:15:37 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_MAIN_H
|
||||
#define NAMED_MAIN_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: notify.h,v 1.14 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: notify.h,v 1.10.18.2 2005/04/29 00:15:37 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_NOTIFY_H
|
||||
#define NAMED_NOTIFY_H 1
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Copyright (C) 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -14,7 +14,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: ns_smf_globals.h,v 1.7 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: ns_smf_globals.h,v 1.2.2.4 2005/05/13 01:32:46 marka Exp $ */
|
||||
|
||||
#ifndef NS_SMF_GLOBALS_H
|
||||
#define NS_SMF_GLOBALS_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: query.h,v 1.40 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: query.h,v 1.36.18.2 2005/04/29 00:15:37 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_QUERY_H
|
||||
#define NAMED_QUERY_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: server.h,v 1.93 2008/04/03 05:55:51 marka Exp $ */
|
||||
/* $Id: server.h,v 1.73.18.8 2006/03/09 23:46:20 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_SERVER_H
|
||||
#define NAMED_SERVER_H 1
|
||||
@@ -23,14 +23,13 @@
|
||||
/*! \file */
|
||||
|
||||
#include <isc/log.h>
|
||||
#include <isc/magic.h>
|
||||
#include <isc/quota.h>
|
||||
#include <isc/sockaddr.h>
|
||||
#include <isc/magic.h>
|
||||
#include <isc/types.h>
|
||||
#include <isc/xml.h>
|
||||
#include <isc/quota.h>
|
||||
|
||||
#include <dns/acl.h>
|
||||
#include <dns/types.h>
|
||||
#include <dns/acl.h>
|
||||
|
||||
#include <named/types.h>
|
||||
|
||||
@@ -63,7 +62,7 @@ struct ns_server {
|
||||
isc_boolean_t server_usehostname;
|
||||
char * server_id; /*%< User-specified server id */
|
||||
|
||||
/*%
|
||||
/*%
|
||||
* Current ACL environment. This defines the
|
||||
* current values of the localhost and localnets
|
||||
* ACLs.
|
||||
@@ -91,73 +90,18 @@ struct ns_server {
|
||||
isc_boolean_t flushonshutdown;
|
||||
isc_boolean_t log_queries; /*%< For BIND 8 compatibility */
|
||||
|
||||
dns_stats_t * nsstats; /*%< Server statistics */
|
||||
dns_stats_t * rcvquerystats; /*% Incoming query statistics */
|
||||
dns_stats_t * opcodestats; /*%< Incoming message statistics */
|
||||
dns_stats_t * zonestats; /*% Zone management statistics */
|
||||
dns_stats_t * resolverstats; /*% Resolver statistics */
|
||||
isc_uint64_t * querystats; /*%< Query statistics counters */
|
||||
|
||||
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 dns_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);
|
||||
/*%<
|
||||
@@ -259,18 +203,6 @@ 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-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: sortlist.h,v 1.11 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: sortlist.h,v 1.5.18.4 2006/03/02 00:37:21 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_SORTLIST_H
|
||||
#define NAMED_SORTLIST_H 1
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
/*
|
||||
* 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-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: tkeyconf.h,v 1.16 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: tkeyconf.h,v 1.10.18.4 2006/03/02 00:37:21 marka Exp $ */
|
||||
|
||||
#ifndef NS_TKEYCONF_H
|
||||
#define NS_TKEYCONF_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: tsigconf.h,v 1.16 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: tsigconf.h,v 1.10.18.4 2006/03/02 00:37:21 marka Exp $ */
|
||||
|
||||
#ifndef NS_TSIGCONF_H
|
||||
#define NS_TSIGCONF_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: types.h,v 1.29 2008/01/17 23:46:59 tbox Exp $ */
|
||||
/* $Id: types.h,v 1.21.18.2 2005/04/29 00:15:38 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_TYPES_H
|
||||
#define NAMED_TYPES_H 1
|
||||
@@ -28,8 +28,6 @@ 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;
|
||||
@@ -41,6 +39,5 @@ 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 */
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: update.h,v 1.13 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: update.h,v 1.9.18.2 2005/04/29 00:15:39 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_UPDATE_H
|
||||
#define NAMED_UPDATE_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: xfrout.h,v 1.12 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: xfrout.h,v 1.8.18.2 2005/04/29 00:15:39 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_XFROUT_H
|
||||
#define NAMED_XFROUT_H 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: zoneconf.h,v 1.26 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: zoneconf.h,v 1.19.18.5 2006/03/02 00:37:21 marka Exp $ */
|
||||
|
||||
#ifndef NS_ZONECONF_H
|
||||
#define NS_ZONECONF_H 1
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006, 2008 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: interfacemgr.c,v 1.90 2007/09/12 01:09:07 each Exp $ */
|
||||
/* $Id: interfacemgr.c,v 1.76.18.8.44.3 2008/07/23 23:16:43 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -304,11 +304,11 @@ ns_interface_accepttcp(ns_interface_t *ifp) {
|
||||
isc_result_totext(result));
|
||||
goto tcp_socket_failure;
|
||||
}
|
||||
isc_socket_setname(ifp->tcpsocket, "dispatcher", NULL);
|
||||
#ifndef ISC_ALLOW_MAPPED
|
||||
isc_socket_ipv6only(ifp->tcpsocket, ISC_TRUE);
|
||||
#endif
|
||||
result = isc_socket_bind(ifp->tcpsocket, &ifp->addr);
|
||||
result = isc_socket_bind(ifp->tcpsocket, &ifp->addr,
|
||||
ISC_SOCKET_REUSEADDRESS);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_ERROR,
|
||||
"binding TCP socket: %s",
|
||||
@@ -483,7 +483,7 @@ static isc_result_t
|
||||
clearacl(isc_mem_t *mctx, dns_acl_t **aclp) {
|
||||
dns_acl_t *newacl = NULL;
|
||||
isc_result_t result;
|
||||
result = dns_acl_create(mctx, 0, &newacl);
|
||||
result = dns_acl_create(mctx, 10, &newacl);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
dns_acl_detach(aclp);
|
||||
@@ -494,31 +494,36 @@ clearacl(isc_mem_t *mctx, dns_acl_t **aclp) {
|
||||
|
||||
static isc_boolean_t
|
||||
listenon_is_ip6_any(ns_listenelt_t *elt) {
|
||||
REQUIRE(elt && elt->acl);
|
||||
return dns_acl_isany(elt->acl);
|
||||
if (elt->acl->length != 1)
|
||||
return (ISC_FALSE);
|
||||
if (elt->acl->elements[0].negative == ISC_FALSE &&
|
||||
elt->acl->elements[0].type == dns_aclelementtype_any)
|
||||
return (ISC_TRUE); /* listen-on-v6 { any; } */
|
||||
return (ISC_FALSE); /* All others */
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
setup_locals(ns_interfacemgr_t *mgr, isc_interface_t *interface) {
|
||||
isc_result_t result;
|
||||
dns_aclelement_t elt;
|
||||
unsigned int family;
|
||||
unsigned int prefixlen;
|
||||
isc_netaddr_t *netaddr;
|
||||
|
||||
netaddr = &interface->address;
|
||||
family = interface->address.family;
|
||||
|
||||
/* First add localhost address */
|
||||
prefixlen = (netaddr->family == AF_INET) ? 32 : 128;
|
||||
result = dns_iptable_addprefix(mgr->aclenv.localhost->iptable,
|
||||
netaddr, prefixlen, ISC_TRUE);
|
||||
elt.type = dns_aclelementtype_ipprefix;
|
||||
elt.negative = ISC_FALSE;
|
||||
elt.u.ip_prefix.address = interface->address;
|
||||
elt.u.ip_prefix.prefixlen = (family == AF_INET) ? 32 : 128;
|
||||
result = dns_acl_appendelement(mgr->aclenv.localhost, &elt);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
|
||||
/* Then add localnets prefix */
|
||||
result = isc_netaddr_masktoprefixlen(&interface->netmask,
|
||||
&prefixlen);
|
||||
|
||||
/* Non contigious netmasks not allowed by IPv6 arch. */
|
||||
if (result != ISC_R_SUCCESS && netaddr->family == AF_INET6)
|
||||
if (result != ISC_R_SUCCESS && family == AF_INET6)
|
||||
return (result);
|
||||
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
@@ -528,14 +533,17 @@ setup_locals(ns_interfacemgr_t *mgr, isc_interface_t *interface) {
|
||||
"localnets ACL: %s",
|
||||
interface->name,
|
||||
isc_result_totext(result));
|
||||
return (ISC_R_SUCCESS);
|
||||
} else {
|
||||
elt.u.ip_prefix.prefixlen = prefixlen;
|
||||
if (dns_acl_elementmatch(mgr->aclenv.localnets, &elt,
|
||||
NULL) == ISC_R_NOTFOUND) {
|
||||
result = dns_acl_appendelement(mgr->aclenv.localnets,
|
||||
&elt);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
}
|
||||
}
|
||||
|
||||
result = dns_iptable_addprefix(mgr->aclenv.localnets->iptable,
|
||||
netaddr, prefixlen, ISC_TRUE);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
@@ -795,9 +803,7 @@ do_scan(ns_interfacemgr_t *mgr, ns_listenlist_t *ext_listen,
|
||||
(void)dns_acl_match(&listen_netaddr,
|
||||
NULL, ele->acl,
|
||||
NULL, &match, NULL);
|
||||
if (match > 0 &&
|
||||
(ele->port == le->port ||
|
||||
ele->port == 0))
|
||||
if (match > 0 && ele->port == le->port)
|
||||
break;
|
||||
else
|
||||
match = 0;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: listenlist.c,v 1.14 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: listenlist.c,v 1.10.18.2 2005/04/29 00:15:22 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: log.c,v 1.46 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: log.c,v 1.37.18.6 2006/06/09 00:54:08 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
/*%
|
||||
* When adding a new category, be sure to add the appropriate
|
||||
* \#define to <named/log.h> and to update the list in
|
||||
* #define to <named/log.h> and to update the list in
|
||||
* bin/check/check-tool.c.
|
||||
*/
|
||||
static isc_logcategory_t categories[] = {
|
||||
@@ -49,7 +49,7 @@ static isc_logcategory_t categories[] = {
|
||||
|
||||
/*%
|
||||
* When adding a new module, be sure to add the appropriate
|
||||
* \#define to <dns/log.h>.
|
||||
* #define to <dns/log.h>.
|
||||
*/
|
||||
static isc_logmodule_t modules[] = {
|
||||
{ "main", 0 },
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: logconf.c,v 1.42 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: logconf.c,v 1.35.18.5 2006/03/02 00:37:21 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwaddr.c,v 1.10 2008/01/11 23:46:56 tbox Exp $ */
|
||||
/* $Id: lwaddr.c,v 1.4.18.2 2005/04/29 00:15:23 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -81,7 +81,7 @@ lwaddr_lwresaddr_fromnetaddr(lwres_addr_t *la, isc_netaddr_t *na) {
|
||||
} else {
|
||||
la->family = LWRES_ADDRTYPE_V6;
|
||||
la->length = 16;
|
||||
memcpy(la->address, &na->type.in6, 16);
|
||||
memcpy(la->address, &na->type.in, 16);
|
||||
}
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwdclient.c,v 1.22 2007/06/18 23:47:18 tbox Exp $ */
|
||||
/* $Id: lwdclient.c,v 1.17.18.2 2005/04/29 00:15:23 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -102,7 +102,6 @@ ns_lwdclientmgr_create(ns_lwreslistener_t *listener, unsigned int nclients,
|
||||
result = isc_task_create(taskmgr, 0, &cm->task);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto errout;
|
||||
isc_task_setname(cm->task, "lwdclient", NULL);
|
||||
|
||||
/*
|
||||
* This MUST be last, since there is no way to cancel an onshutdown...
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwderror.c,v 1.12 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: lwderror.c,v 1.8.18.2 2005/04/29 00:15:24 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwdgabn.c,v 1.22 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: lwdgabn.c,v 1.15.18.5 2006/03/02 00:37:21 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwdgnba.c,v 1.22 2008/01/14 23:46:56 tbox Exp $ */
|
||||
/* $Id: lwdgnba.c,v 1.16.18.2 2005/04/29 00:15:24 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -220,6 +220,8 @@ ns_lwdclient_processgnba(ns_lwdclient_t *client, lwres_buffer_t *b) {
|
||||
b, &client->pkt, &req);
|
||||
if (result != LWRES_R_SUCCESS)
|
||||
goto out;
|
||||
if (req->addr.address == NULL)
|
||||
goto out;
|
||||
|
||||
client->options = 0;
|
||||
if (req->addr.family == LWRES_ADDRTYPE_V4) {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwdgrbn.c,v 1.20 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: lwdgrbn.c,v 1.13.18.5 2006/12/07 23:57:58 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* 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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwdnoop.c,v 1.13 2008/01/22 23:28:04 tbox Exp $ */
|
||||
/* $Id: lwdnoop.c,v 1.7.18.2 2005/04/29 00:15:25 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -44,7 +44,7 @@ ns_lwdclient_processnoop(ns_lwdclient_t *client, lwres_buffer_t *b) {
|
||||
result = lwres_nooprequest_parse(client->clientmgr->lwctx,
|
||||
b, &client->pkt, &req);
|
||||
if (result != LWRES_R_SUCCESS)
|
||||
goto send_error;
|
||||
goto out;
|
||||
|
||||
client->pkt.recvlength = LWRES_RECVLENGTH;
|
||||
client->pkt.authtype = 0; /* XXXMLG */
|
||||
@@ -57,7 +57,7 @@ ns_lwdclient_processnoop(ns_lwdclient_t *client, lwres_buffer_t *b) {
|
||||
lwres = lwres_noopresponse_render(client->clientmgr->lwctx, &resp,
|
||||
&client->pkt, &lwb);
|
||||
if (lwres != LWRES_R_SUCCESS)
|
||||
goto cleanup_req;
|
||||
goto out;
|
||||
|
||||
r.base = lwb.base;
|
||||
r.length = lwb.used;
|
||||
@@ -65,7 +65,7 @@ ns_lwdclient_processnoop(ns_lwdclient_t *client, lwres_buffer_t *b) {
|
||||
client->sendlength = r.length;
|
||||
result = ns_lwdclient_sendreply(client, &r);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup_lwb;
|
||||
goto out;
|
||||
|
||||
/*
|
||||
* We can now destroy request.
|
||||
@@ -76,12 +76,13 @@ ns_lwdclient_processnoop(ns_lwdclient_t *client, lwres_buffer_t *b) {
|
||||
|
||||
return;
|
||||
|
||||
cleanup_lwb:
|
||||
lwres_context_freemem(client->clientmgr->lwctx, lwb.base, lwb.length);
|
||||
out:
|
||||
if (req != NULL)
|
||||
lwres_nooprequest_free(client->clientmgr->lwctx, &req);
|
||||
|
||||
cleanup_req:
|
||||
lwres_nooprequest_free(client->clientmgr->lwctx, &req);
|
||||
if (lwb.base != NULL)
|
||||
lwres_context_freemem(client->clientmgr->lwctx,
|
||||
lwb.base, lwb.length);
|
||||
|
||||
send_error:
|
||||
ns_lwdclient_errorpktsend(client, LWRES_R_FAILURE);
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: lwresd.8,v 1.27 2007/05/16 06:12:01 marka Exp $
|
||||
.\" $Id: lwresd.8,v 1.15.18.12 2007/05/16 06:11:27 marka Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006, 2008 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: lwresd.c,v 1.55 2007/06/19 23:46:59 tbox Exp $ */
|
||||
/* $Id: lwresd.c,v 1.46.18.7.52.3 2008/07/23 23:16:43 marka Exp $ */
|
||||
|
||||
/*! \file
|
||||
* \brief
|
||||
@@ -576,7 +576,8 @@ listener_bind(ns_lwreslistener_t *listener, isc_sockaddr_t *address) {
|
||||
return (result);
|
||||
}
|
||||
|
||||
result = isc_socket_bind(sock, &listener->address);
|
||||
result = isc_socket_bind(sock, &listener->address,
|
||||
ISC_SOCKET_REUSEADDRESS);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
char socktext[ISC_SOCKADDR_FORMATSIZE];
|
||||
isc_sockaddr_format(&listener->address, socktext,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user