Compare commits
2206
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e312c286f8 | ||
|
|
2927cec4f0 | ||
|
|
67e991fadf | ||
|
|
a61e574189 | ||
|
|
4d0f4a9d3c | ||
|
|
ed6fe51716 | ||
|
|
b8b602f89b | ||
|
|
18f0a7f147 | ||
|
|
8b82c01d74 | ||
|
|
47ff70af9e | ||
|
|
d49d63260e | ||
|
|
3cd574df2f | ||
|
|
0d796b1aaa | ||
|
|
4adecd0845 | ||
|
|
daa4933c4d | ||
|
|
292a9dd882 | ||
|
|
c7611c7dd2 | ||
|
|
16de5dbc71 | ||
|
|
c93ed439e5 | ||
|
|
12178c8652 | ||
|
|
06f5acb11f | ||
|
|
07a6184c3a | ||
|
|
d4d836350f | ||
|
|
96912588e2 | ||
|
|
c2f095969c | ||
|
|
6d85ab241a | ||
|
|
e330b6116c | ||
|
|
d601ef9e89 | ||
|
|
a8d090b362 | ||
|
|
d99e249ff3 | ||
|
|
fc2381b901 | ||
|
|
e2e4d32199 | ||
|
|
661c6b52c4 | ||
|
|
4b6dc226f7 | ||
|
|
979e02d122 | ||
|
|
71ba75c604 | ||
|
|
530e510458 | ||
|
|
3d17a3ba61 | ||
|
|
e438e29354 | ||
|
|
2ec4ab2183 | ||
|
|
a4457e0d89 | ||
|
|
306b36adb6 | ||
|
|
e2d43cd9d5 | ||
|
|
08ce421808 | ||
|
|
3353e0d964 | ||
|
|
5d850024cb | ||
|
|
6ec134549f | ||
|
|
089c63b69c | ||
|
|
185cb1aaaf | ||
|
|
63aeaafd97 | ||
|
|
47a171a75a | ||
|
|
8e4f3f1cbc | ||
|
|
f70450a70f | ||
|
|
22304041d1 | ||
|
|
61c87dbe87 | ||
|
|
e6dda86e8b | ||
|
|
7b844d9590 | ||
|
|
19cccbb69e | ||
|
|
2fbc6a0f23 | ||
|
|
ecbbb29519 | ||
|
|
620a452ebe | ||
|
|
df31d36c3f | ||
|
|
b99efc39de | ||
|
|
e388818cc9 | ||
|
|
9b737a4996 | ||
|
|
ac8aa59f62 | ||
|
|
9d5e42bb87 | ||
|
|
6a0c80c7c4 | ||
|
|
a5b9974f4a | ||
|
|
2a0d4c4d6b | ||
|
|
63be8a9807 | ||
|
|
6a4d6e3379 | ||
|
|
5d698de5b4 | ||
|
|
095810f8cb | ||
|
|
89f28792bf | ||
|
|
fccd86f326 | ||
|
|
049a56fb19 | ||
|
|
66ce9e4605 | ||
|
|
6f0fe31b85 | ||
|
|
717d095d85 | ||
|
|
d524a81532 | ||
|
|
506c084124 | ||
|
|
feeca57f18 | ||
|
|
88adaa322e | ||
|
|
ffd297db79 | ||
|
|
31a540386a | ||
|
|
1cb8c8d52e | ||
|
|
4f4b55df87 | ||
|
|
8b37c0dd6e | ||
|
|
7579858399 | ||
|
|
c073c65719 | ||
|
|
7511904837 | ||
|
|
75b8de8787 | ||
|
|
6585014aa0 | ||
|
|
996dbb1957 | ||
|
|
e8277bed1b | ||
|
|
5d9922e86f | ||
|
|
9df45151f5 | ||
|
|
7f46d94fd5 | ||
|
|
3e920dd0c6 | ||
|
|
c5614de3f9 | ||
|
|
45fb40e1f7 | ||
|
|
84b8b00086 | ||
|
|
979f1cf4af | ||
|
|
d975e0ed8e | ||
|
|
88a7702a9d | ||
|
|
c4e3976707 | ||
|
|
49f788cbd3 | ||
|
|
54341ecaa1 | ||
|
|
9197af354a | ||
|
|
54d83f4a68 | ||
|
|
66ecb6789b | ||
|
|
e053dbfeb0 | ||
|
|
dd046c1a8e | ||
|
|
b7ce89b8ca | ||
|
|
bccacfdbf0 | ||
|
|
b47987bc53 | ||
|
|
76e834aed1 | ||
|
|
2b2fc9b4df | ||
|
|
521de9e5dd | ||
|
|
e8cf2fd977 | ||
|
|
d26e883326 | ||
|
|
9bf8182b1c | ||
|
|
4bf4beede2 | ||
|
|
67d0f54843 | ||
|
|
29b3b31c0a | ||
|
|
172465b683 | ||
|
|
ac139b2406 | ||
|
|
6e849b28b0 | ||
|
|
536e36ac8d | ||
|
|
1f794e6297 | ||
|
|
cfc22e53a8 | ||
|
|
24912fa1ec | ||
|
|
b4bd8d0662 | ||
|
|
f6aa4de371 | ||
|
|
3a341ee535 | ||
|
|
ce3b2c5189 | ||
|
|
fc1fb1a469 | ||
|
|
d0ca4e90e2 | ||
|
|
996f875de4 | ||
|
|
b314ea10b4 | ||
|
|
cd41f377c8 | ||
|
|
d312bc5d81 | ||
|
|
db6cd7ee05 | ||
|
|
b0f986128a | ||
|
|
9dd2ee95f1 | ||
|
|
dc92707066 | ||
|
|
fa14b39ce9 | ||
|
|
503e5aa8d2 | ||
|
|
ebaaeff9ea | ||
|
|
94e3a63110 | ||
|
|
f7bef440fa | ||
|
|
5985af3f5c | ||
|
|
5942a43b99 | ||
|
|
cef109efa7 | ||
|
|
289dbe005c | ||
|
|
00464ff770 | ||
|
|
b7b7ce4fe5 | ||
|
|
c16d37d06e | ||
|
|
d032f6072a | ||
|
|
00fac9f21a | ||
|
|
75e6617391 | ||
|
|
40ff4bb482 | ||
|
|
8b4aab25fa | ||
|
|
a7df2367f2 | ||
|
|
1cd538c051 | ||
|
|
fc8fd74ade | ||
|
|
19af988924 | ||
|
|
afe1f5ac36 | ||
|
|
6cc1f67ada | ||
|
|
1a5710bb9d | ||
|
|
b282aa7007 | ||
|
|
5283c67212 | ||
|
|
677f23dd30 | ||
|
|
9788e41aba | ||
|
|
97f74757ab | ||
|
|
efb75df538 | ||
|
|
eec680e0d0 | ||
|
|
d5dfbed15d | ||
|
|
26ab858fd2 | ||
|
|
b65045340c | ||
|
|
90844ca45a | ||
|
|
47b805d723 | ||
|
|
f36849f689 | ||
|
|
3c1e75c23f | ||
|
|
158908972b | ||
|
|
0088b45de5 | ||
|
|
3f9f79b5c4 | ||
|
|
bc3fc702a1 | ||
|
|
acf4c05953 | ||
|
|
fad04ffe23 | ||
|
|
6b5b1d74a4 | ||
|
|
f6566e9ec2 | ||
|
|
9dad3e2710 | ||
|
|
f7e3edb15a | ||
|
|
f6d3eb745b | ||
|
|
5633a46d3d | ||
|
|
f92e316b22 | ||
|
|
ae3e6022d7 | ||
|
|
2816f8a95a | ||
|
|
e3ab906c26 | ||
|
|
6955a8375f | ||
|
|
fa9cbeffde | ||
|
|
e3ba6bfdf4 | ||
|
|
7811589fcb | ||
|
|
07ab461481 | ||
|
|
ee80543980 | ||
|
|
d4ac07a3d6 | ||
|
|
f7a280f43c | ||
|
|
028e107001 | ||
|
|
acbedaa156 | ||
|
|
cdebb980a2 | ||
|
|
e539b9719b | ||
|
|
83800455bd | ||
|
|
aa31cf9c71 | ||
|
|
7309a0ce71 | ||
|
|
f5a01a0686 | ||
|
|
efbe6def64 | ||
|
|
92113ddafa | ||
|
|
f95bdcf65d | ||
|
|
0e3b4ffe86 | ||
|
|
fe2b9bf570 | ||
|
|
c95f536d78 | ||
|
|
ae5b67a0c0 | ||
|
|
3e084fed8d | ||
|
|
b08325a7f3 | ||
|
|
e83a7cabc3 | ||
|
|
2ad776a5c4 | ||
|
|
66d5a4ad86 | ||
|
|
850853340a | ||
|
|
af52d6ddd7 | ||
|
|
823c5a49e5 | ||
|
|
a39a5f4d81 | ||
|
|
e34e9a8d68 | ||
|
|
124293bba2 | ||
|
|
a5f51e95e7 | ||
|
|
7ee4b13ded | ||
|
|
f9a07be8b3 | ||
|
|
44a3999cf4 | ||
|
|
3ed58d6162 | ||
|
|
13cb972c40 | ||
|
|
7048af0a55 | ||
|
|
c548608321 | ||
|
|
00295e0650 | ||
|
|
36d20ac80b | ||
|
|
e856482b1f | ||
|
|
67b57046ef | ||
|
|
9b33a79659 | ||
|
|
6bb622d361 | ||
|
|
37a34ab54f | ||
|
|
88a4f97370 | ||
|
|
53d502202a | ||
|
|
86132f0ef5 | ||
|
|
710b3ae385 | ||
|
|
1d0ebb4cf2 | ||
|
|
841380d975 | ||
|
|
a64415fc94 | ||
|
|
2667bea6bc | ||
|
|
6d4fb86a4d | ||
|
|
5d061b8d76 | ||
|
|
adb4211586 | ||
|
|
e9dff04d3b | ||
|
|
0c3948e606 | ||
|
|
aba6fd4234 | ||
|
|
06db2784b5 | ||
|
|
2c016c64f5 | ||
|
|
3a5fe5abf0 | ||
|
|
f466c1552a | ||
|
|
2e2a294b05 | ||
|
|
3839749200 | ||
|
|
f82d52e82d | ||
|
|
5857247dbb | ||
|
|
7fe4b0447f | ||
|
|
ca35524ce2 | ||
|
|
e2facd7af2 | ||
|
|
2d46d268cc | ||
|
|
5c6c5669ec | ||
|
|
b3c2030de4 | ||
|
|
6f0cdcbfbc | ||
|
|
3594635af7 | ||
|
|
8433da5e37 | ||
|
|
cc3ed192b0 | ||
|
|
df1599d0e1 | ||
|
|
7963a67df0 | ||
|
|
c1bfa5b0ad | ||
|
|
aa2f010f13 | ||
|
|
302ed789bd | ||
|
|
cd0df9459e | ||
|
|
6f6f08b7a4 | ||
|
|
ca97301c37 | ||
|
|
2a81568d17 | ||
|
|
12d58e5804 | ||
|
|
d586a9b72f | ||
|
|
052e7083ac | ||
|
|
9a050780dc | ||
|
|
b55ce50367 | ||
|
|
2d84cba8f4 | ||
|
|
515cba20eb | ||
|
|
7efc6d9cb8 | ||
|
|
2484c7db7a | ||
|
|
e94fe42a20 | ||
|
|
0a30185f80 | ||
|
|
0181a0a92f | ||
|
|
a3285e811d | ||
|
|
126dce8ebf | ||
|
|
7184a893c1 | ||
|
|
4ffd660d41 | ||
|
|
64affc54f9 | ||
|
|
f80b665135 | ||
|
|
5ccd971c72 | ||
|
|
d937817697 | ||
|
|
9d856845d6 | ||
|
|
90065a6881 | ||
|
|
2162c1ed3d | ||
|
|
554d22d2de | ||
|
|
717a6020e6 | ||
|
|
af104911b7 | ||
|
|
cc11677a72 | ||
|
|
660818f4c7 | ||
|
|
1887550c0a | ||
|
|
8f20bf8c7c | ||
|
|
6e27aa67be | ||
|
|
fb26f8c9a5 | ||
|
|
d90f3a24c7 | ||
|
|
8a0943e125 | ||
|
|
90c9d5fdb8 | ||
|
|
7bc489b4f0 | ||
|
|
e98e7e6680 | ||
|
|
88874028c1 | ||
|
|
4c53f98dbd | ||
|
|
3684692720 | ||
|
|
b37b0818d8 | ||
|
|
5b72cda36b | ||
|
|
da1f044e5d | ||
|
|
5cb44a38d9 | ||
|
|
be69d48443 | ||
|
|
b1843ee436 | ||
|
|
83b7baaded | ||
|
|
575e15fed9 | ||
|
|
b42804c4ea | ||
|
|
a050fc374c | ||
|
|
df4408b77a | ||
|
|
c6d2578fd6 | ||
|
|
990dca4605 | ||
|
|
4104e236f7 | ||
|
|
fb93a46d74 | ||
|
|
e9d45c0a04 | ||
|
|
95f2377b4f | ||
|
|
9a97696b54 | ||
|
|
e09cdbac08 | ||
|
|
e3b59e4af7 | ||
|
|
312a00fb75 | ||
|
|
72cfcb48a7 | ||
|
|
0ce9fba8f0 | ||
|
|
42f7c09369 | ||
|
|
9e9e7112f9 | ||
|
|
63d5a6f680 | ||
|
|
e8831e51c1 | ||
|
|
af30180834 | ||
|
|
e4adb07cc1 | ||
|
|
5f744ebbdc | ||
|
|
6f9c93a885 | ||
|
|
c8aa7ce70d | ||
|
|
c021499604 | ||
|
|
0da9fafc18 | ||
|
|
7bc8c1465b | ||
|
|
775a8d86d9 | ||
|
|
c07236a635 | ||
|
|
8f0502e922 | ||
|
|
412b30659b | ||
|
|
8e821eea5f | ||
|
|
510032fdf4 | ||
|
|
2fe5f8303e | ||
|
|
f10a8fa034 | ||
|
|
cc6cddfd94 | ||
|
|
8d307467b7 | ||
|
|
d2a8d00228 | ||
|
|
3cae549ddb | ||
|
|
55aec75784 | ||
|
|
ae5da6a185 | ||
|
|
97ba804d91 | ||
|
|
8ec993c774 | ||
|
|
b15df8f9bc | ||
|
|
e193c6c98e | ||
|
|
eccf8cc404 | ||
|
|
7704a47aec | ||
|
|
a01095a487 | ||
|
|
bfbd69c43f | ||
|
|
859cfb24bf | ||
|
|
06e7340198 | ||
|
|
3c5e54941f | ||
|
|
29dd4bdd14 | ||
|
|
4b30598fb9 | ||
|
|
13174b302f | ||
|
|
2623503170 | ||
|
|
a17270b2a6 | ||
|
|
84dd224e46 | ||
|
|
9ac35b4e4d | ||
|
|
02b69ec7f2 | ||
|
|
5a24d24c8f | ||
|
|
8ab6a775bb | ||
|
|
799933b034 | ||
|
|
eec29cfd40 | ||
|
|
d060d8669f | ||
|
|
abe20c2cca | ||
|
|
3e888c5b81 | ||
|
|
45eea1bda6 | ||
|
|
616560e3db | ||
|
|
8f7de3db7e | ||
|
|
102ccdd2c0 | ||
|
|
f6cd5ef97a | ||
|
|
3493b4e0ef | ||
|
|
0f81966242 | ||
|
|
1ed01b3390 | ||
|
|
da2c52acae | ||
|
|
cbee6197d1 | ||
|
|
ef9ee92543 | ||
|
|
b043b56271 | ||
|
|
9352b49a12 | ||
|
|
5c0fd37335 | ||
|
|
19ac4707ee | ||
|
|
bf3057c014 | ||
|
|
97639003b0 | ||
|
|
c243d77973 | ||
|
|
3b2c6af63e | ||
|
|
d2a3eaf162 | ||
|
|
c00929ed9f | ||
|
|
69677f863f | ||
|
|
77b8f88f14 | ||
|
|
6a90baa0d5 | ||
|
|
30bb4870da | ||
|
|
11804ca08f | ||
|
|
515053881b | ||
|
|
af20baa960 | ||
|
|
8de0d8a690 | ||
|
|
8667770ad2 | ||
|
|
3727725bb7 | ||
|
|
0d9fb986c5 | ||
|
|
8a07de2f03 | ||
|
|
3f802a977e | ||
|
|
c356aac151 | ||
|
|
eb707047bc | ||
|
|
30f39a5003 | ||
|
|
315a1514a5 | ||
|
|
b05106c7e6 | ||
|
|
d1bcaec0d6 | ||
|
|
bb4e0bd8e8 | ||
|
|
0838b3c02f | ||
|
|
15bbb8a129 | ||
|
|
70f5a54bf2 | ||
|
|
2847930722 | ||
|
|
169b900303 | ||
|
|
2a6d4c9948 | ||
|
|
e8fc8c884b | ||
|
|
22b23fb59d | ||
|
|
552cbf3900 | ||
|
|
d1f39121a6 | ||
|
|
ca60f7ba75 | ||
|
|
cd3e5ca69a | ||
|
|
246c504f90 | ||
|
|
f6e719d145 | ||
|
|
95b41985f7 | ||
|
|
e74245134d | ||
|
|
7d12a6b412 | ||
|
|
807ffe7aba | ||
|
|
699487d802 | ||
|
|
e71b913afc | ||
|
|
8ec3c08523 | ||
|
|
464f9144fe | ||
|
|
b10528a3a5 | ||
|
|
fa78dfd247 | ||
|
|
a88f8c2dd1 | ||
|
|
ea845a6b72 | ||
|
|
ff71474ede | ||
|
|
3ff75c89eb | ||
|
|
3c52c4e44c | ||
|
|
8b78c993cb | ||
|
|
b56f3f5c66 | ||
|
|
e853728477 | ||
|
|
d220cab39d | ||
|
|
247806c820 | ||
|
|
f89a9bcf1c | ||
|
|
b091b4bb80 | ||
|
|
a631b30b1d | ||
|
|
78e0199a39 | ||
|
|
48b6d2f585 | ||
|
|
58b81e7151 | ||
|
|
04ecc85ca6 | ||
|
|
4fa2649d57 | ||
|
|
1a0eecfe69 | ||
|
|
c36ba263d6 | ||
|
|
1210799345 | ||
|
|
4256ffffb9 | ||
|
|
ab97bf48cf | ||
|
|
121672f23c | ||
|
|
3d0d370eb9 | ||
|
|
339c130823 | ||
|
|
edb08fdf7b | ||
|
|
5879ebd03d | ||
|
|
098097efb9 | ||
|
|
0e7aa3a27b | ||
|
|
45f4234351 | ||
|
|
cf7432f747 | ||
|
|
eb95d2e917 | ||
|
|
bafa76b324 | ||
|
|
4977518a4c | ||
|
|
66fec05962 | ||
|
|
61dd99bfae | ||
|
|
7f79131f9a | ||
|
|
f5212c68d0 | ||
|
|
a93a66f618 | ||
|
|
c300f45d7b | ||
|
|
debd489a44 | ||
|
|
1e733ffc11 | ||
|
|
242ba12742 | ||
|
|
a4720d523e | ||
|
|
f3d1a0ba52 | ||
|
|
627f3e0805 | ||
|
|
0ece689740 | ||
|
|
98215f7120 | ||
|
|
d0bcee139c | ||
|
|
67cf787116 | ||
|
|
1e3c9961bb | ||
|
|
fb596cc9af | ||
|
|
c6473dc038 | ||
|
|
ff850b81c8 | ||
|
|
76e450eb3c | ||
|
|
ef830a7750 | ||
|
|
d268d780cc | ||
|
|
11144f86dc | ||
|
|
59cfb32ccd | ||
|
|
b4cc584425 | ||
|
|
b4336342d1 | ||
|
|
1c52929b3c | ||
|
|
78d7186253 | ||
|
|
b068504c31 | ||
|
|
9e6a0b09c0 | ||
|
|
ca202d441e | ||
|
|
0f869e8d52 | ||
|
|
aaa2233e76 | ||
|
|
c59a7b0629 | ||
|
|
78092514b3 | ||
|
|
2b4ed367f3 | ||
|
|
69338455d9 | ||
|
|
63a1800105 | ||
|
|
8292deab03 | ||
|
|
d48690af7a | ||
|
|
0208177ad7 | ||
|
|
fdcb2ba212 | ||
|
|
4344643693 | ||
|
|
3a2a2463f2 | ||
|
|
91c6a86724 | ||
|
|
b3c8f1e9e8 | ||
|
|
53c22b8e0d | ||
|
|
4d0e2cf9b9 | ||
|
|
484076c325 | ||
|
|
6839f8b6df | ||
|
|
40d3bb52b6 | ||
|
|
265daffadb | ||
|
|
e25451b66c | ||
|
|
2946e44c86 | ||
|
|
3d3b7e5a5b | ||
|
|
8436cc14ba | ||
|
|
011d0b7dc8 | ||
|
|
2d073f29ce | ||
|
|
2f4d747a26 | ||
|
|
adb6972f01 | ||
|
|
54f0466614 | ||
|
|
d081840d42 | ||
|
|
c9424f08b0 | ||
|
|
b517a7a336 | ||
|
|
d2ebd5d5fb | ||
|
|
fa5748c1ab | ||
|
|
b67b58ebe7 | ||
|
|
8c8119ce24 | ||
|
|
790e471f6e | ||
|
|
b0dafbb309 | ||
|
|
1def913211 | ||
|
|
148e9f3feb | ||
|
|
0e32dda176 | ||
|
|
3351ccbd5c | ||
|
|
6b87f60431 | ||
|
|
56e7dc0c24 | ||
|
|
be728633c1 | ||
|
|
8b5a11217c | ||
|
|
4765fc7c3f | ||
|
|
1a06700908 | ||
|
|
4479e4cea3 | ||
|
|
edabc8134d | ||
|
|
866a531c59 | ||
|
|
0e4fda8862 | ||
|
|
32c7a00e26 | ||
|
|
d514c0dc9b | ||
|
|
f8e3e03cac | ||
|
|
5e38811a8f | ||
|
|
a12c8549d6 | ||
|
|
b843f577bb | ||
|
|
d00827dabc | ||
|
|
2fa5af7b73 | ||
|
|
f819b54e38 | ||
|
|
6d7e30b030 | ||
|
|
f267b27f0e | ||
|
|
0e7cb68ea0 | ||
|
|
be63f34b6a | ||
|
|
a457576b58 | ||
|
|
dbabab1f37 | ||
|
|
c211111e64 | ||
|
|
31f1c9a241 | ||
|
|
6514ae4c9a | ||
|
|
8036473e6c | ||
|
|
4c9c08e4a1 | ||
|
|
08927bbead | ||
|
|
05398561e0 | ||
|
|
7c87a8bf7b | ||
|
|
d8b801bd19 | ||
|
|
9f0225ba7e | ||
|
|
76a4707aad | ||
|
|
14cd8ac04c | ||
|
|
523598fafa | ||
|
|
2636aac047 | ||
|
|
e7de5dcef6 | ||
|
|
fc47f5d6f1 | ||
|
|
d247c0d92a | ||
|
|
5e4d54bc79 | ||
|
|
d7c15f7c37 | ||
|
|
d7e3784c77 | ||
|
|
8a86c12ec2 | ||
|
|
c7d32c0b0f | ||
|
|
822e877c4c | ||
|
|
210970a248 | ||
|
|
bf1fb08416 | ||
|
|
6cdb18f5d4 | ||
|
|
1f821c1058 | ||
|
|
60abc54118 | ||
|
|
9b2c4fd0ef | ||
|
|
0b8385f5c5 | ||
|
|
09386e47d1 | ||
|
|
121bd24f4b | ||
|
|
acb6750f8f | ||
|
|
457144a0c6 | ||
|
|
2eb6a502bc | ||
|
|
82629edf81 | ||
|
|
30a60d2aff | ||
|
|
8d0a1ede2f | ||
|
|
8b5f99861f | ||
|
|
06eb464ae2 | ||
|
|
762682e990 | ||
|
|
2d13af354a | ||
|
|
730e25bf11 | ||
|
|
7b1894bec1 | ||
|
|
78cb74fab4 | ||
|
|
af55bddf26 | ||
|
|
0984eeca5b | ||
|
|
2e46523695 | ||
|
|
760a6c5ac1 | ||
|
|
9916d13704 | ||
|
|
f4b1fec888 | ||
|
|
bbc204a237 | ||
|
|
3e1938b728 | ||
|
|
2895f101b5 | ||
|
|
9f8d002a66 | ||
|
|
c164f233b4 | ||
|
|
d7201de09b | ||
|
|
e7c38ca963 | ||
|
|
9cd5eb6fe0 | ||
|
|
a4666db97c | ||
|
|
fff4ec3629 | ||
|
|
41e251fad0 | ||
|
|
9dbca282e4 | ||
|
|
f0eecd4d62 | ||
|
|
0c1326fa62 | ||
|
|
e30d8c5a47 | ||
|
|
a21cde0291 | ||
|
|
63b17e175f | ||
|
|
3a6b6f5b11 | ||
|
|
ae6bd1ae93 | ||
|
|
d699672160 | ||
|
|
eab9975bcf | ||
|
|
be3d498c6e | ||
|
|
8fec8134ea | ||
|
|
7fc3b88c3a | ||
|
|
ea854b5850 | ||
|
|
823ca3c14f | ||
|
|
dd0bd9bbc2 | ||
|
|
9a3de45447 | ||
|
|
ae16941d9f | ||
|
|
d364948549 | ||
|
|
ee537376ad | ||
|
|
93ebf0fc08 | ||
|
|
f909fbf73c | ||
|
|
7daca48bf2 | ||
|
|
a27fe4c990 | ||
|
|
11254f9c5a | ||
|
|
588f79e557 | ||
|
|
44de0b1f7d | ||
|
|
965b6e2a1b | ||
|
|
db00fbebac | ||
|
|
85be60e3c8 | ||
|
|
b1f3364f52 | ||
|
|
9a3ef95d13 | ||
|
|
479b80d4d7 | ||
|
|
ef22fffeeb | ||
|
|
9eae5f2a7a | ||
|
|
9c954e5322 | ||
|
|
1eb6d0f372 | ||
|
|
e2a61b7bb2 | ||
|
|
713b816c6f | ||
|
|
307d208450 | ||
|
|
ad671240d6 | ||
|
|
5ac9ef9448 | ||
|
|
41eeb37b51 | ||
|
|
747abb4993 | ||
|
|
85eb2c7635 | ||
|
|
163af735c2 | ||
|
|
35490da615 | ||
|
|
de10c46b2a | ||
|
|
f8da2eefea | ||
|
|
da035d9f44 | ||
|
|
3a9593055e | ||
|
|
11b4f17027 | ||
|
|
7179c3476f | ||
|
|
2bee3c2e70 | ||
|
|
a0ba5a502e | ||
|
|
18114698b4 | ||
|
|
995f3bc4c4 | ||
|
|
7bae9e718e | ||
|
|
08040cf8fd | ||
|
|
80c2098825 | ||
|
|
34ef21525e | ||
|
|
a895147b20 | ||
|
|
7f7412f12c | ||
|
|
97a2451eea | ||
|
|
2bbae36bce | ||
|
|
88471538d6 | ||
|
|
800fb35bf0 | ||
|
|
bde521789e | ||
|
|
181b990c21 | ||
|
|
38cd84d1b3 | ||
|
|
3fe0b63ff1 | ||
|
|
9b13b6eed6 | ||
|
|
ece6c39dd8 | ||
|
|
05254ef65d | ||
|
|
ddc225b15d | ||
|
|
3d2ce18535 | ||
|
|
d3f8bb5555 | ||
|
|
813b34ebec | ||
|
|
9cad210bed | ||
|
|
65f8bb8b83 | ||
|
|
b83cc64332 | ||
|
|
1f5dc0fc22 | ||
|
|
8769935911 | ||
|
|
9768e34227 | ||
|
|
de3200acf4 | ||
|
|
554ed4936f | ||
|
|
bd4803f39e | ||
|
|
bcd0cbfdae | ||
|
|
50eab6c2aa | ||
|
|
6a1d766e4a | ||
|
|
1d9958c6cc | ||
|
|
8cff1a894f | ||
|
|
3fdca50cc7 | ||
|
|
048690a34d | ||
|
|
d6331003b9 | ||
|
|
90c1e763d5 | ||
|
|
835ee9481b | ||
|
|
1762bd3d21 | ||
|
|
60f06c1960 | ||
|
|
6bf23b0270 | ||
|
|
68e1b398b5 | ||
|
|
9be408c368 | ||
|
|
3f5510b6fd | ||
|
|
0a7e3c7d09 | ||
|
|
cf7e98f591 | ||
|
|
b73fda8035 | ||
|
|
2ac8f58412 | ||
|
|
3a87540047 | ||
|
|
6beee732e4 | ||
|
|
9182af97ec | ||
|
|
ad7d04bd96 | ||
|
|
bcb62fd25f | ||
|
|
10f35749cf | ||
|
|
33a31c5cab | ||
|
|
11a014304a | ||
|
|
4103d428a9 | ||
|
|
e8e9e1dbeb | ||
|
|
0282f038eb | ||
|
|
a3288b425a | ||
|
|
47ce374fcf | ||
|
|
9069215eac | ||
|
|
95f36ad29f | ||
|
|
b7b4fc9a0e | ||
|
|
4189dd1e2c | ||
|
|
55b1dda9d8 | ||
|
|
bd190a40a8 | ||
|
|
610f3aa54c | ||
|
|
3daad56dbb | ||
|
|
352f93d94a | ||
|
|
963df54288 | ||
|
|
661f055cc1 | ||
|
|
3e02c9e336 | ||
|
|
d173d06cae | ||
|
|
6a1a8186af | ||
|
|
0721617217 | ||
|
|
60d08c3d43 | ||
|
|
af84f6917c | ||
|
|
3855aee9c1 | ||
|
|
ca8576a564 | ||
|
|
99a0cd0236 | ||
|
|
2847ddeaf1 | ||
|
|
97725b410a | ||
|
|
520cea04a2 | ||
|
|
fd0b768f4c | ||
|
|
61302bdbbf | ||
|
|
ee20d30cc4 | ||
|
|
938dfe6dcd | ||
|
|
85f5bb5274 | ||
|
|
590c12cfe3 | ||
|
|
f1de96a386 | ||
|
|
52c1cac19a | ||
|
|
26d8ffe715 | ||
|
|
133e6d43fa | ||
|
|
f73695f9bd | ||
|
|
15fcbe3917 | ||
|
|
dba9901bb7 | ||
|
|
2a3574f8d4 | ||
|
|
9edd523c22 | ||
|
|
da520bccdd | ||
|
|
b1fa84a099 | ||
|
|
b478865635 | ||
|
|
0a7ed88633 | ||
|
|
553ead32ff | ||
|
|
5dedc53c41 | ||
|
|
5f61f4a31b | ||
|
|
2b7c68e9bb | ||
|
|
4a979d3577 | ||
|
|
f2770f6b39 | ||
|
|
3967528c77 | ||
|
|
aeff7de836 | ||
|
|
ae11a72378 | ||
|
|
91dc88b434 | ||
|
|
ac94adf868 | ||
|
|
574bc7ee44 | ||
|
|
6e6859cb8f | ||
|
|
2792e226c7 | ||
|
|
ceaf8479c0 | ||
|
|
4347f7ac12 | ||
|
|
ab280fdfc5 | ||
|
|
ef569ba562 | ||
|
|
3cddb2c552 | ||
|
|
fb8db7fc3f | ||
|
|
3e12c54de2 | ||
|
|
08f860f800 | ||
|
|
38cd4d14cc | ||
|
|
00f35bc78c | ||
|
|
12cd61e974 | ||
|
|
a4463732ad | ||
|
|
d85c83c414 | ||
|
|
fd4dcaddae | ||
|
|
da2b2618ab | ||
|
|
3cc98b8ece | ||
|
|
2c6e0b2944 | ||
|
|
425682fb71 | ||
|
|
943cbe8ae5 | ||
|
|
ef370118d5 | ||
|
|
151d0b5f91 | ||
|
|
5b7525f51f | ||
|
|
3bc4221346 | ||
|
|
e6c0f07e73 | ||
|
|
6d5852f318 | ||
|
|
9932313a08 | ||
|
|
aa799bf309 | ||
|
|
794ce54fe9 | ||
|
|
8a655e59bc | ||
|
|
b353313567 | ||
|
|
e0621410ba | ||
|
|
32a1ab66b9 | ||
|
|
631cd8160f | ||
|
|
4a14ce5ba0 | ||
|
|
b5e43e6594 | ||
|
|
b655c721b6 | ||
|
|
7fe52fc8a9 | ||
|
|
cff0e0b52c | ||
|
|
a308ff5145 | ||
|
|
848dcebe28 | ||
|
|
54ff69c981 | ||
|
|
98e8948bd7 | ||
|
|
3986198c10 | ||
|
|
d7d05319a6 | ||
|
|
e5af5f24c7 | ||
|
|
7847f8e69e | ||
|
|
0bddff542c | ||
|
|
51204d6aee | ||
|
|
4ee4e2f761 | ||
|
|
2cbb4ab757 | ||
|
|
8d80232e77 | ||
|
|
60735f8bfa | ||
|
|
1dcf2a88ce | ||
|
|
c8da39c6c7 | ||
|
|
3b6e4c84a5 | ||
|
|
18a39213e9 | ||
|
|
6493425eaa | ||
|
|
109580e7e5 | ||
|
|
d173a072dd | ||
|
|
c6fb85f950 | ||
|
|
dd65eb1efb | ||
|
|
b9cb51539f | ||
|
|
c89d02f2fb | ||
|
|
f66c8eed51 | ||
|
|
0ae35ecf05 | ||
|
|
1bc5499c2a | ||
|
|
6210cd4970 | ||
|
|
cfb1587eb9 | ||
|
|
d3907d27cc | ||
|
|
3dd2e33a89 | ||
|
|
858cc1200e | ||
|
|
670fa07bc8 | ||
|
|
97face2458 | ||
|
|
6815ef40df | ||
|
|
df030025e9 | ||
|
|
6d3ca68adc | ||
|
|
d5de857af4 | ||
|
|
e47809ad55 | ||
|
|
786252d275 | ||
|
|
01dbc4fc00 | ||
|
|
f2c74650cb | ||
|
|
870332fb6d | ||
|
|
a97e51e5e2 | ||
|
|
eddfb6120c | ||
|
|
4b1517c052 | ||
|
|
78bc8fdc24 | ||
|
|
ace806ed3e | ||
|
|
de679d396e | ||
|
|
6209c4a73e | ||
|
|
371642de8b | ||
|
|
86739ab72c | ||
|
|
811dff9560 | ||
|
|
ec41c9e3af | ||
|
|
d8f118f4a0 | ||
|
|
99446f94d5 | ||
|
|
76110b31fe | ||
|
|
bda4d38901 | ||
|
|
8777696411 | ||
|
|
ce773a54f9 | ||
|
|
0382130cdc | ||
|
|
f4e7a7a1f7 | ||
|
|
361bec4bde | ||
|
|
f5c3b0be07 | ||
|
|
bc780408cb | ||
|
|
0f00ee4327 | ||
|
|
f7b683b054 | ||
|
|
a782b7f08a | ||
|
|
de28616cba | ||
|
|
72628f51c7 | ||
|
|
b7e4456f7f | ||
|
|
23217b08a1 | ||
|
|
420e099c2f | ||
|
|
af74bcc423 | ||
|
|
c907893aaf | ||
|
|
06d5197518 | ||
|
|
eabc9c3c07 | ||
|
|
a7c1e824b8 | ||
|
|
cdfc81e048 | ||
|
|
9d8ff70bf7 | ||
|
|
31a6411712 | ||
|
|
8dec76d68b | ||
|
|
23a426bc56 | ||
|
|
80383d0360 | ||
|
|
53b3182afa | ||
|
|
dde8659175 | ||
|
|
95f999508b | ||
|
|
9174e44c14 | ||
|
|
ca67ebfe9e | ||
|
|
13f7f63deb | ||
|
|
90ca8e224d | ||
|
|
245b4fe655 | ||
|
|
207d8962fa | ||
|
|
e60076cb25 | ||
|
|
b272d38cc5 | ||
|
|
b577875266 | ||
|
|
7ae7246a63 | ||
|
|
45d4d69a8d | ||
|
|
be3e98e030 | ||
|
|
35f58c7bac | ||
|
|
9210d8796e | ||
|
|
bfeb2af9cf | ||
|
|
2d2dc37599 | ||
|
|
aa9c561961 | ||
|
|
9b45c5f6a3 | ||
|
|
f7ba2cb042 | ||
|
|
75fa8d3861 | ||
|
|
e2caa75363 | ||
|
|
1910b2f535 | ||
|
|
17b2dd7680 | ||
|
|
7877ad5db2 | ||
|
|
9b469e3c59 | ||
|
|
76786c2904 | ||
|
|
156d095d86 | ||
|
|
754cb8a2b3 | ||
|
|
4c85c00678 | ||
|
|
99ba266f92 | ||
|
|
6a122cef16 | ||
|
|
26336ea291 | ||
|
|
cdefb15e2e | ||
|
|
e8a534049c | ||
|
|
8655537825 | ||
|
|
9513a2a667 | ||
|
|
b616f6ed69 | ||
|
|
b6306ef56e | ||
|
|
18ad4708eb | ||
|
|
8b6f093b0a | ||
|
|
5f18d2c4b4 | ||
|
|
f4ea363e3a | ||
|
|
8c091f4733 | ||
|
|
852ccdd42a | ||
|
|
68d766400e | ||
|
|
f8c3dfee69 | ||
|
|
2004ccf6bf | ||
|
|
351b62535d | ||
|
|
afbe695de3 | ||
|
|
996b4d8982 | ||
|
|
d29d33390a | ||
|
|
1c51f79aba | ||
|
|
6a550cb83c | ||
|
|
e8c7dc2a5c | ||
|
|
988023d8bc | ||
|
|
6283056805 | ||
|
|
9f4702d025 | ||
|
|
3d785d7666 | ||
|
|
97573334cb | ||
|
|
39844d4710 | ||
|
|
ae7e54b14c | ||
|
|
5d3cf2f323 | ||
|
|
2534a73a59 | ||
|
|
f05a6b110f | ||
|
|
aae46ae27b | ||
|
|
303bfb7d3d | ||
|
|
38760f5b07 | ||
|
|
45f0bc9a6f | ||
|
|
0bc3af9834 | ||
|
|
dc0c165ce3 | ||
|
|
ecdc2a81e0 | ||
|
|
97883e2025 | ||
|
|
5422cf284f | ||
|
|
afb33f777a | ||
|
|
e6ada020f5 | ||
|
|
6de27e27ad | ||
|
|
14e326880e | ||
|
|
40d0f115a6 | ||
|
|
d27f01709c | ||
|
|
fc7ecc628d | ||
|
|
429ec9a65c | ||
|
|
7be6336565 | ||
|
|
a9a054302d | ||
|
|
bbe20aa62c | ||
|
|
f7c88d61cc | ||
|
|
5d924e398e | ||
|
|
ac93437301 | ||
|
|
ed0e837058 | ||
|
|
6c3c79e491 | ||
|
|
cc5f9fe224 | ||
|
|
9eb441e7a3 | ||
|
|
f5724cd00a | ||
|
|
8a805c9f41 | ||
|
|
4c2ed3d141 | ||
|
|
4bb70681e0 | ||
|
|
54cdd2b307 | ||
|
|
5236788545 | ||
|
|
f5cd704007 | ||
|
|
ff380b05fe | ||
|
|
ddac1a2b98 | ||
|
|
e7eede965d | ||
|
|
7a272c6b0d | ||
|
|
3f170a7cb7 | ||
|
|
db5b7e2cdf | ||
|
|
bb3bfb218a | ||
|
|
c8a40c1936 | ||
|
|
5d7849ad7f | ||
|
|
6604344c8c | ||
|
|
0e77d33686 | ||
|
|
41605dedcb | ||
|
|
d302a620e0 | ||
|
|
708ebf710e | ||
|
|
4144efb390 | ||
|
|
092d8d701d | ||
|
|
cfd602c97c | ||
|
|
30edd699b8 | ||
|
|
049cdd43b4 | ||
|
|
a925051b19 | ||
|
|
cc620f9fdb | ||
|
|
1ad8a7d52f | ||
|
|
3836f447ee | ||
|
|
99f0cd7dc1 | ||
|
|
47323be2af | ||
|
|
b770eae51e | ||
|
|
d2c115f913 | ||
|
|
542b74bec7 | ||
|
|
53006f63ff | ||
|
|
e36b9ac8fd | ||
|
|
f46ed316c9 | ||
|
|
289eea07b1 | ||
|
|
f030c71500 | ||
|
|
14f5485d1d | ||
|
|
1c653a740d | ||
|
|
a8a268bb81 | ||
|
|
1e18f761a7 | ||
|
|
d76bbb6c40 | ||
|
|
089f456eb3 | ||
|
|
f20f19de19 | ||
|
|
b7296c802f | ||
|
|
ab381c1e22 | ||
|
|
2cfad50e5a | ||
|
|
9f4f6472f9 | ||
|
|
1032746197 | ||
|
|
d4eb0d2306 | ||
|
|
b1b0dca146 | ||
|
|
cda7c783c3 | ||
|
|
65e9adc0e8 | ||
|
|
7f69908ff8 | ||
|
|
f60f4a412c | ||
|
|
b5c6266263 | ||
|
|
8ee776c51b | ||
|
|
a9f215a87e | ||
|
|
cc0f37ba17 | ||
|
|
aa4e17f7aa | ||
|
|
603cf17f33 | ||
|
|
65004c75c7 | ||
|
|
9d79c02e1f | ||
|
|
af2e2f5ed7 | ||
|
|
3dc1cb7e96 | ||
|
|
8870ad9e86 | ||
|
|
b9636a8e43 | ||
|
|
0b60d90343 | ||
|
|
00c8156b24 | ||
|
|
0ccd4dfc43 | ||
|
|
4fddbd90a3 | ||
|
|
79646f0969 | ||
|
|
69d0813cd6 | ||
|
|
2738f77764 | ||
|
|
1402c78fae | ||
|
|
784d4017da | ||
|
|
f36bdaf5a7 | ||
|
|
cd59cf3e7a | ||
|
|
8bb728fa39 | ||
|
|
64e161a7f7 | ||
|
|
02a52d6c5f | ||
|
|
9384dc16a1 | ||
|
|
cbf7f1435f | ||
|
|
6b9728dde7 | ||
|
|
8c5482b3ea | ||
|
|
a2b615f7e8 | ||
|
|
3af7cd2661 | ||
|
|
8e3d340655 | ||
|
|
a028d5830c | ||
|
|
f2e6839b8a | ||
|
|
8f3ac50acf | ||
|
|
72dbc7216a | ||
|
|
a5e67fba38 | ||
|
|
ca23cf7e28 | ||
|
|
ea21c734ff | ||
|
|
a142972ea9 | ||
|
|
d0e7c8712f | ||
|
|
56708c6fb4 | ||
|
|
74f4bfde4a | ||
|
|
b1dc6282fe | ||
|
|
3f8be559f0 | ||
|
|
ed4475f3f5 | ||
|
|
b98225ff8a | ||
|
|
2919fef5d1 | ||
|
|
510f19039b | ||
|
|
cab3e375b7 | ||
|
|
8ba94ff0c4 | ||
|
|
bd61707782 | ||
|
|
7a7a44400d | ||
|
|
62ac086e89 | ||
|
|
2464bd58eb | ||
|
|
0df8ead472 | ||
|
|
f3627d1297 | ||
|
|
b1ceb96abc | ||
|
|
e422b84c73 | ||
|
|
29bc980c42 | ||
|
|
8bc8162361 | ||
|
|
f605647060 | ||
|
|
0072e4bb3c | ||
|
|
3d3088c228 | ||
|
|
71c4004112 | ||
|
|
e61db954bf | ||
|
|
1559511ada | ||
|
|
7921c0fbfb | ||
|
|
1248ee409d | ||
|
|
3a30493983 | ||
|
|
ffcd068f87 | ||
|
|
6201345ba9 | ||
|
|
620508359f | ||
|
|
919c99b7a4 | ||
|
|
cd83ba4484 | ||
|
|
b3ea72e4d1 | ||
|
|
d36ba0f0ca | ||
|
|
bd537d750f | ||
|
|
4f91bcae43 | ||
|
|
36efb9ec99 | ||
|
|
6c6a121295 | ||
|
|
c1a1927f1f | ||
|
|
ca42dcc068 | ||
|
|
dfa3ca995c | ||
|
|
6b344e0d2e | ||
|
|
98b2be76fc | ||
|
|
7a193dfd57 | ||
|
|
df599f1aae | ||
|
|
1cac6c196f | ||
|
|
766d94c897 | ||
|
|
56fe846d21 | ||
|
|
b49124d0d1 | ||
|
|
05c162292f | ||
|
|
78fca017f4 | ||
|
|
d55bdffe2f | ||
|
|
3e63c43386 | ||
|
|
e050a037cb | ||
|
|
bfe0517fdc | ||
|
|
494bd4366d | ||
|
|
2cfac8b1fd | ||
|
|
416f58db30 | ||
|
|
549e34bbf4 | ||
|
|
92e4603c55 | ||
|
|
59b277af9d | ||
|
|
e4c6491bbf | ||
|
|
9c6a5d1f22 | ||
|
|
8a462e745b | ||
|
|
499fa72075 | ||
|
|
522d25b296 | ||
|
|
7a2c4df881 | ||
|
|
210c1c7ae9 | ||
|
|
967a70944d | ||
|
|
58d9e9169e | ||
|
|
2e91ce87e4 | ||
|
|
71a509772b | ||
|
|
3464fafb9f | ||
|
|
8f8c46ede4 | ||
|
|
a1ad6695ed | ||
|
|
1f5ace14ac | ||
|
|
5e2291fbe5 | ||
|
|
e039fe38ac | ||
|
|
66af559a53 | ||
|
|
9cd4b3f809 | ||
|
|
acf4e79711 | ||
|
|
cb4f081d1e | ||
|
|
55075ba780 | ||
|
|
01eb8e213b | ||
|
|
a64c6c589e | ||
|
|
0190c262f9 | ||
|
|
52281a5a60 | ||
|
|
546e430614 | ||
|
|
09416fd3a3 | ||
|
|
cdcd52e680 | ||
|
|
ae92171c9b | ||
|
|
e438f713c6 | ||
|
|
5594690d41 | ||
|
|
4bf9fe787e | ||
|
|
e3f432bb8e | ||
|
|
d0db3c262b | ||
|
|
87a58323be | ||
|
|
2bb3422dc6 | ||
|
|
6db1357c34 | ||
|
|
9e83f50fd6 | ||
|
|
f8aafe8286 | ||
|
|
d53cade6ae | ||
|
|
1b7dd640e8 | ||
|
|
0f39e477c5 | ||
|
|
558624c3ac | ||
|
|
389d1c1cb9 | ||
|
|
55e03fc547 | ||
|
|
10e074b823 | ||
|
|
d62206775c | ||
|
|
803bf59371 | ||
|
|
063bd1ad14 | ||
|
|
eab2fb739e | ||
|
|
52dec6996a | ||
|
|
bf33eb0b52 | ||
|
|
3741358929 | ||
|
|
96713299d0 | ||
|
|
68d4467684 | ||
|
|
8f196ee82b | ||
|
|
fd8c0286c1 | ||
|
|
13598ff3b3 | ||
|
|
6fbeed7f8f | ||
|
|
20691bbf3e | ||
|
|
56907aff69 | ||
|
|
675cdfa1c4 | ||
|
|
e502b133d6 | ||
|
|
d3268fd41d | ||
|
|
598da901ab | ||
|
|
cac4576405 | ||
|
|
7d211b458f | ||
|
|
bace9ed24d | ||
|
|
d2ef5b3c5c | ||
|
|
ce4b71f7fc | ||
|
|
45c3c12ed3 | ||
|
|
695dbe1ce2 | ||
|
|
692ce6c313 | ||
|
|
bcc6edc534 | ||
|
|
0807f596b5 | ||
|
|
bbdbde5fa0 | ||
|
|
7c3032def3 | ||
|
|
ce0fd07045 | ||
|
|
6e4a43050b | ||
|
|
c734562993 | ||
|
|
6cf047f100 | ||
|
|
dd0adce112 | ||
|
|
9e30f29100 | ||
|
|
0429fc942e | ||
|
|
c27fdd08dc | ||
|
|
b7a0ded96e | ||
|
|
98ad8b05bb | ||
|
|
60380305f5 | ||
|
|
b663e99af6 | ||
|
|
5f5a505905 | ||
|
|
b5297573c9 | ||
|
|
5128226aa2 | ||
|
|
d7d2a7fbad | ||
|
|
ee620d5bd0 | ||
|
|
0d68f82b7a | ||
|
|
0d415c2904 | ||
|
|
b172529021 | ||
|
|
06f9e6d878 | ||
|
|
77d90dc2b5 | ||
|
|
d7a7065fd5 | ||
|
|
4af0003c79 | ||
|
|
dcbf2a0562 | ||
|
|
53f0234c3e | ||
|
|
b4cebdb6cc | ||
|
|
191ccd4002 | ||
|
|
7558bd3e38 | ||
|
|
c1d7e0562f | ||
|
|
ddca7275b2 | ||
|
|
5c0902c5e6 | ||
|
|
72628d3a5e | ||
|
|
c35a499878 | ||
|
|
c520b0f616 | ||
|
|
afc503cf92 | ||
|
|
67f4b01f01 | ||
|
|
5aff8d2750 | ||
|
|
334a4fd338 | ||
|
|
48c18f902f | ||
|
|
ba576cf8e7 | ||
|
|
2dd685350a | ||
|
|
0b580e05ae | ||
|
|
fcbc30cf34 | ||
|
|
a9a7f40522 | ||
|
|
5d0984f4fd | ||
|
|
c349441d7e | ||
|
|
57b449a535 | ||
|
|
370c55dfcd | ||
|
|
46af69f123 | ||
|
|
bf4128945e | ||
|
|
b14d563126 | ||
|
|
70f292a50f | ||
|
|
e52a391e77 | ||
|
|
8ae3bbdd86 | ||
|
|
870a748bae | ||
|
|
f19e6ef1eb | ||
|
|
8b835581b4 | ||
|
|
767bb6de26 | ||
|
|
bbf7c3fd96 | ||
|
|
ab97c757fb | ||
|
|
68123db906 | ||
|
|
87248e6a6a | ||
|
|
14810640b7 | ||
|
|
53cd44e716 | ||
|
|
41efe04c19 | ||
|
|
e80b693272 | ||
|
|
1b69320c14 | ||
|
|
e5d447be8c | ||
|
|
03ff5c04b8 | ||
|
|
c06bf2ff5c | ||
|
|
c82bb6a709 | ||
|
|
1f129d7363 | ||
|
|
c821eb7048 | ||
|
|
39a8abdb83 | ||
|
|
0ce87e5749 | ||
|
|
2ec317aee9 | ||
|
|
248ce5c8f9 | ||
|
|
f895c5b042 | ||
|
|
d9059b0c38 | ||
|
|
3bed8e9913 | ||
|
|
ffeb8c81da | ||
|
|
90f6726df4 | ||
|
|
7f94f65f95 | ||
|
|
dec709c2aa | ||
|
|
cd9dfc6534 | ||
|
|
0cee7fdce3 | ||
|
|
6bcb646fd1 | ||
|
|
3319413a67 | ||
|
|
b457a2593e | ||
|
|
a26b22914b | ||
|
|
06f738f64d | ||
|
|
d5d5d1339b | ||
|
|
f148f53794 | ||
|
|
924450ddbb | ||
|
|
00f8377316 | ||
|
|
b20752b889 | ||
|
|
83b86f3936 | ||
|
|
601c1908d0 | ||
|
|
10e8f96abe | ||
|
|
31b7a2fed6 | ||
|
|
9fbbfb5757 | ||
|
|
d60212e03f | ||
|
|
df4a53b4f8 | ||
|
|
80faf15888 | ||
|
|
3d9e9bef6a | ||
|
|
f9f11eb54b | ||
|
|
5567f54834 | ||
|
|
740db02743 | ||
|
|
ed4efb0805 | ||
|
|
7b18de7428 | ||
|
|
7af4053ce1 | ||
|
|
13f4bdc9b4 | ||
|
|
3efa3f07d5 | ||
|
|
2a6997e72c | ||
|
|
2fd97723b2 | ||
|
|
dffedf92a9 | ||
|
|
56c67310f2 | ||
|
|
85587a04e6 | ||
|
|
d3ca022264 | ||
|
|
914eeb3314 | ||
|
|
0f4ec602dd | ||
|
|
9a14f870dd | ||
|
|
647d006c9d | ||
|
|
faa406d25d | ||
|
|
1b2f4439a9 | ||
|
|
98cc7e7c59 | ||
|
|
9b899a5758 | ||
|
|
9700a2797e | ||
|
|
56c373a01a | ||
|
|
a05abc1767 | ||
|
|
1016f2638f | ||
|
|
3b8b44559a | ||
|
|
23af793acb | ||
|
|
d362465c77 | ||
|
|
0ef59d2288 | ||
|
|
59528addd7 | ||
|
|
b65746833b | ||
|
|
09eaa8e309 | ||
|
|
708383382f | ||
|
|
a344069fe8 | ||
|
|
bdfaef63f5 | ||
|
|
47b7dfffe5 | ||
|
|
584848087f | ||
|
|
340804cbdb | ||
|
|
a7e3a86619 | ||
|
|
08d44d4510 | ||
|
|
7d6d9c2240 | ||
|
|
45b4efd07f | ||
|
|
3678015d3f | ||
|
|
d18d8da1fe | ||
|
|
b9d4899121 | ||
|
|
7f1785d0de | ||
|
|
d2a94a51a1 | ||
|
|
482b24c9a4 | ||
|
|
287910778c | ||
|
|
06d145cbf8 | ||
|
|
86e018c2bc | ||
|
|
a9435a8871 | ||
|
|
db874a7b5c | ||
|
|
45fb3c75ed | ||
|
|
323a9f3430 | ||
|
|
8e1fc63570 | ||
|
|
f0bd4d6a2c | ||
|
|
4e59e2e59b | ||
|
|
03faa7804e | ||
|
|
8085cde841 | ||
|
|
009a0837d5 | ||
|
|
cde3b92684 | ||
|
|
b3770f43b1 | ||
|
|
fa7ef31685 | ||
|
|
d6acbaf5b4 | ||
|
|
0ff24367a6 | ||
|
|
f3279fce27 | ||
|
|
75b70a68ae | ||
|
|
b3a2254fc7 | ||
|
|
211eca413e | ||
|
|
492df05874 | ||
|
|
e3fd10821d | ||
|
|
a8673c536b | ||
|
|
bc4bc3579b | ||
|
|
0ddeab91cf | ||
|
|
9e0d0a279b | ||
|
|
f262c709c5 | ||
|
|
7f94d9a816 | ||
|
|
215032e4d8 | ||
|
|
4f4dbfb95a | ||
|
|
3f807f4ca8 | ||
|
|
616b4544d0 | ||
|
|
7781f25078 | ||
|
|
2cc6eb92f9 | ||
|
|
41ffa5503c | ||
|
|
6a534776e0 | ||
|
|
1fdd2470b6 | ||
|
|
d7845fc5ba | ||
|
|
bc0a53583d | ||
|
|
609f86163a | ||
|
|
0cfbb9285a | ||
|
|
f32008623e | ||
|
|
885f475768 | ||
|
|
05f0c03d90 | ||
|
|
1879dbe0d9 | ||
|
|
b393e55a76 | ||
|
|
e4a0d9c505 | ||
|
|
7b9553e04b | ||
|
|
41329de6d2 | ||
|
|
5569e7de51 | ||
|
|
9a2ebc4415 | ||
|
|
71bd43eebd | ||
|
|
6d7303e7de | ||
|
|
42c20e9207 | ||
|
|
3fb1637c92 | ||
|
|
cc0287243b | ||
|
|
2ee516cda8 | ||
|
|
726d737626 | ||
|
|
d7e2f1d572 | ||
|
|
7c3694f7e5 | ||
|
|
efc3d7a002 | ||
|
|
52cee51063 | ||
|
|
51bcc7d768 | ||
|
|
67563e420c | ||
|
|
ddb35cf2f3 | ||
|
|
4aa174ddd5 | ||
|
|
df6663c900 | ||
|
|
de09c37660 | ||
|
|
476de6f156 | ||
|
|
09d7358c48 | ||
|
|
c6b65dff51 | ||
|
|
3ce383eae1 | ||
|
|
a900e4f99f | ||
|
|
018ac2cc5f | ||
|
|
2a82a4ff23 | ||
|
|
10a6f640ed | ||
|
|
96eeb9496c | ||
|
|
a7fbe07ee0 | ||
|
|
c0b771f683 | ||
|
|
c903f9be0c | ||
|
|
1ee054ca44 | ||
|
|
338e748a34 | ||
|
|
7f65860391 | ||
|
|
35961b63b5 | ||
|
|
cb30636abd | ||
|
|
a4cd1c315a | ||
|
|
cdd2498994 | ||
|
|
fe80a4909b | ||
|
|
96ec50549a | ||
|
|
8bf0c05627 | ||
|
|
76bf8f52a3 | ||
|
|
a195cf4e3c | ||
|
|
96465858fa | ||
|
|
24450ad58d | ||
|
|
f947582727 | ||
|
|
0f36a52127 | ||
|
|
e6e8f672c1 | ||
|
|
47d89fcd4f | ||
|
|
a5746c4ec1 | ||
|
|
a8a8e73121 | ||
|
|
f64515b956 | ||
|
|
5a28aa1553 | ||
|
|
b06e034906 | ||
|
|
8684cd3a6f | ||
|
|
4d608cd16d | ||
|
|
92241b04f1 | ||
|
|
43c68170fe | ||
|
|
e4cd6dbd56 | ||
|
|
69f0cf898e | ||
|
|
5938a4d682 | ||
|
|
fa948affa0 | ||
|
|
9908cbc06f | ||
|
|
5abe6ab167 | ||
|
|
2e61d171bc | ||
|
|
76fe07917f | ||
|
|
0339c8af8c | ||
|
|
81c141bbb1 | ||
|
|
d3d1cf19e0 | ||
|
|
953260f21b | ||
|
|
3d4e5a200f | ||
|
|
d8fc8514b1 | ||
|
|
fc8e82904a | ||
|
|
f8f8a5b3a3 | ||
|
|
15f28578c0 | ||
|
|
90ff38a0d8 | ||
|
|
4ec6e26acd | ||
|
|
318570ecb3 | ||
|
|
44fb95aeae | ||
|
|
04ec5b376d | ||
|
|
dbf6a483db | ||
|
|
d5518bf5bc | ||
|
|
c4c6e5094b | ||
|
|
36c12f1bb4 | ||
|
|
604af0dafd | ||
|
|
6aadea52df | ||
|
|
9935447b51 | ||
|
|
07e2d9518d | ||
|
|
b094407aa5 | ||
|
|
ce1d07a80f | ||
|
|
175a8bd2b7 | ||
|
|
46018d5d23 | ||
|
|
14b7618e88 | ||
|
|
9f2b98b844 | ||
|
|
bf046f958e | ||
|
|
b795291f8e | ||
|
|
098f70f5b3 | ||
|
|
81c63d0e9f | ||
|
|
4120e75f97 | ||
|
|
719045b68e | ||
|
|
37241ed34a | ||
|
|
47d9a2bec1 | ||
|
|
fe3f310e2e | ||
|
|
8d460bed78 | ||
|
|
1f426f426e | ||
|
|
84a599ee63 | ||
|
|
a9638b6e89 | ||
|
|
21d6421cf8 | ||
|
|
b4c4ff632f | ||
|
|
9019569316 | ||
|
|
d53d756c84 | ||
|
|
c3704b76db | ||
|
|
7e6d364ec0 | ||
|
|
46bcf31c17 | ||
|
|
b1c60f3ac2 | ||
|
|
fdf3321006 | ||
|
|
a696315d19 | ||
|
|
66e991fea9 | ||
|
|
c1f9789baf | ||
|
|
7b9b9b6c30 | ||
|
|
e6ce0e2567 | ||
|
|
e877787e52 | ||
|
|
eb8265942b | ||
|
|
b58d2c6a1c | ||
|
|
515a537cd1 | ||
|
|
9f41ec8010 | ||
|
|
e7ba4d8dc4 | ||
|
|
cb98b2c207 | ||
|
|
a435080fb8 | ||
|
|
61da0da99e | ||
|
|
ac4b736ab2 | ||
|
|
81e5de1741 | ||
|
|
49960a74b5 | ||
|
|
251d306600 | ||
|
|
50df1ec60a | ||
|
|
2628c71479 | ||
|
|
da2d57c8cf | ||
|
|
ef4eed2a2a | ||
|
|
d5be219ff7 | ||
|
|
7d89c53f6e | ||
|
|
cfeaf83e2b | ||
|
|
030eef5cd6 | ||
|
|
96b3cb85d3 | ||
|
|
a1561fa740 | ||
|
|
2573ed2e6b | ||
|
|
dc143a8f5c | ||
|
|
f1b35969d3 | ||
|
|
ac62b63619 | ||
|
|
6a42ab6427 | ||
|
|
35726c4745 | ||
|
|
3a651fdc82 | ||
|
|
f99fd90097 | ||
|
|
ed5da425c8 | ||
|
|
b27ce68bae | ||
|
|
9807318c04 | ||
|
|
723bfc0fc2 | ||
|
|
cf58feee56 | ||
|
|
832fb12cfe | ||
|
|
922312472e | ||
|
|
59a4c9c6b4 | ||
|
|
e17cb80d7c | ||
|
|
582f8b9a8d | ||
|
|
18fa75b694 | ||
|
|
09b45f7b58 | ||
|
|
7f950d7cb7 | ||
|
|
f6f1672b4e | ||
|
|
1f3e0508c2 | ||
|
|
2cada19312 | ||
|
|
0feb9a335e | ||
|
|
cf3f55777b | ||
|
|
280d316c87 | ||
|
|
09416abf2d | ||
|
|
d24116ee54 | ||
|
|
a14aff6984 | ||
|
|
ce895d1f9b | ||
|
|
d4dc53d6b9 | ||
|
|
d9edfd5642 | ||
|
|
8f2dcf7f90 | ||
|
|
7b1a7a098b | ||
|
|
6bc860e956 | ||
|
|
078e9adf8b | ||
|
|
bc3b1dbd69 | ||
|
|
a2fa49cebc | ||
|
|
76bd01263f | ||
|
|
b7909c0bfe | ||
|
|
c19a57667e | ||
|
|
736e6a6709 | ||
|
|
275b170cc4 | ||
|
|
d1ec77294e | ||
|
|
e597f9f376 | ||
|
|
14c86fa67a | ||
|
|
910f7d361f | ||
|
|
9d02618ca6 | ||
|
|
a21884ae7b | ||
|
|
ccc383f3a7 | ||
|
|
39e00fac53 | ||
|
|
ff2c81060f | ||
|
|
d63cfbfbf9 | ||
|
|
86ee7433b3 | ||
|
|
b76b4be572 | ||
|
|
712389a015 | ||
|
|
5a58f84d00 | ||
|
|
30fa3b76f1 | ||
|
|
16858b59b8 | ||
|
|
06a230fe9f | ||
|
|
be40453080 | ||
|
|
4772f94e52 | ||
|
|
7eda3642ee | ||
|
|
c840962324 | ||
|
|
1a48ee7d8d | ||
|
|
6d54a6fc18 | ||
|
|
761cc767e2 | ||
|
|
ee02a035c9 | ||
|
|
7ca0cdd7ec | ||
|
|
d91566bc35 | ||
|
|
7cc9019283 | ||
|
|
5f4802e538 | ||
|
|
831fb092e8 | ||
|
|
c17f4ac28b | ||
|
|
455ada05af | ||
|
|
4ac81dfb30 | ||
|
|
96117a5679 | ||
|
|
ff30270d6c | ||
|
|
0d444dc136 | ||
|
|
e1a1e86485 | ||
|
|
1acf72525e | ||
|
|
68f69e179f | ||
|
|
7d2fa75dc8 | ||
|
|
4e9775118d | ||
|
|
9c3f335b04 | ||
|
|
6e3121462b | ||
|
|
cd3ee12f1d | ||
|
|
99ee58fd4b | ||
|
|
35378bcc6a | ||
|
|
11f8c6e4af | ||
|
|
b05585dcfe | ||
|
|
45ad1e4a27 | ||
|
|
1f030ca8a3 | ||
|
|
ba6c56b358 | ||
|
|
1ccb967b8e | ||
|
|
698a4dcc8a | ||
|
|
703027d266 | ||
|
|
f2b2190a5a | ||
|
|
71736c0b55 | ||
|
|
05ad08f2f5 | ||
|
|
f6a3a85c77 | ||
|
|
8231c8c143 | ||
|
|
33162fd5e3 | ||
|
|
dc91524e4b | ||
|
|
87ecfd734c | ||
|
|
0bcc9f830b | ||
|
|
3c5dffc581 | ||
|
|
a901d8a14b | ||
|
|
4e40ba55eb | ||
|
|
0042f3fdf0 | ||
|
|
3ebe550f15 | ||
|
|
88674be665 | ||
|
|
6c0079c422 | ||
|
|
f2d09cd90d | ||
|
|
c26da3edcf | ||
|
|
92908e674c | ||
|
|
394c1ac533 | ||
|
|
22e4dc084a | ||
|
|
4aee922977 | ||
|
|
b018450b0e | ||
|
|
51ca8c9478 | ||
|
|
9fc212dc8f | ||
|
|
7318a964ec | ||
|
|
24a56e15f7 | ||
|
|
97907d1e05 | ||
|
|
7ca1016560 | ||
|
|
4571f5e370 | ||
|
|
eb3df5dbba | ||
|
|
c6c78f699b | ||
|
|
c19d353c58 | ||
|
|
e0d9dff5e8 | ||
|
|
8ae9739db5 | ||
|
|
20256cbc15 | ||
|
|
4f69bfbe00 | ||
|
|
d7896edb4e | ||
|
|
733531b6d5 | ||
|
|
e164806329 | ||
|
|
3462e4f19a | ||
|
|
e2a24b6e79 | ||
|
|
fb4b547fbf | ||
|
|
1c09d68dfd | ||
|
|
aef8e0b3ce | ||
|
|
0db6bf459f | ||
|
|
e4782ca3bf | ||
|
|
43e0c5957b | ||
|
|
99a522dad7 | ||
|
|
a68a82e4e5 | ||
|
|
95de316a5d | ||
|
|
bdadd4da2f | ||
|
|
30d5dc8fb6 | ||
|
|
153acdebce | ||
|
|
96a6058b72 | ||
|
|
b49958b502 | ||
|
|
d4f032db53 | ||
|
|
8d68bae542 | ||
|
|
0142fd71e0 | ||
|
|
e6c5224571 | ||
|
|
61d7ab455f | ||
|
|
b90d59882c | ||
|
|
cd6555930b | ||
|
|
f8e61212a1 | ||
|
|
614a39f897 | ||
|
|
2e7234186b | ||
|
|
8b1cba45ad | ||
|
|
c5ead8c25b | ||
|
|
369e148f30 | ||
|
|
0f4c3a9cd1 | ||
|
|
7aa4aca8e6 | ||
|
|
c644959444 | ||
|
|
2be6798f93 | ||
|
|
cdbb3d2774 | ||
|
|
647a14a1eb | ||
|
|
b0bf1ad5b0 | ||
|
|
106360491a | ||
|
|
6edc665a3d | ||
|
|
dd14c953a8 | ||
|
|
01b18d4c7c | ||
|
|
711f3ea3e3 | ||
|
|
fd49218f63 | ||
|
|
22d44896ad | ||
|
|
9f87cfb633 | ||
|
|
38417cbfb1 | ||
|
|
9a57aa45b0 | ||
|
|
bfcb5fae68 | ||
|
|
8a377fbd29 | ||
|
|
822df94949 | ||
|
|
731cc132f2 | ||
|
|
86e0a671ed | ||
|
|
8b8192cfa4 | ||
|
|
bcfb2cead5 | ||
|
|
f3d3ab8e05 | ||
|
|
7d5d6647dd | ||
|
|
6198c726bc | ||
|
|
75a4ad0829 | ||
|
|
3398334b3a | ||
|
|
bd19247e03 | ||
|
|
7af91d15b2 | ||
|
|
7165a5872e | ||
|
|
675aac0825 | ||
|
|
eab4a5c29d | ||
|
|
e101739d76 | ||
|
|
203e146e5e | ||
|
|
21d493fc39 | ||
|
|
cbec5ee72c | ||
|
|
5737b74d34 | ||
|
|
13fb52f8ff | ||
|
|
19e4588ed7 | ||
|
|
25814aef23 | ||
|
|
7b67cfadd0 | ||
|
|
fc78d2e4b2 | ||
|
|
54b444720d | ||
|
|
48a866144e | ||
|
|
f66ac0c858 | ||
|
|
2bf0c0a597 | ||
|
|
143852efc0 | ||
|
|
1c627fbd0a | ||
|
|
6cdaeb94d4 | ||
|
|
6e2871232f | ||
|
|
6098d364b6 | ||
|
|
931cb604b1 | ||
|
|
6915797fa8 | ||
|
|
11dbf2fc38 | ||
|
|
23aacc8eed | ||
|
|
824f38c031 | ||
|
|
bb53eb76af | ||
|
|
eeaa2277ea | ||
|
|
9602e52234 | ||
|
|
cfef379926 | ||
|
|
8e41c9e910 | ||
|
|
ce688d6594 | ||
|
|
c6c09f77f8 | ||
|
|
1de4dea98c | ||
|
|
e616b6361e | ||
|
|
670ce73a78 | ||
|
|
3e38437e93 | ||
|
|
a2fa21340d | ||
|
|
d06ddaf1f9 | ||
|
|
467e6fd167 | ||
|
|
9b142be04b | ||
|
|
896f88361e | ||
|
|
6011ef0f4d | ||
|
|
20f6da2752 | ||
|
|
ce24920229 | ||
|
|
5ce9206eb9 | ||
|
|
e80f661db8 | ||
|
|
5a0f94e585 | ||
|
|
691f1f7731 | ||
|
|
5ccfeda118 | ||
|
|
94f69ca430 | ||
|
|
00534f1528 | ||
|
|
49105ca8ad | ||
|
|
b5e1d77af7 | ||
|
|
4e9a827708 | ||
|
|
c76dce9677 | ||
|
|
844cd3b78d | ||
|
|
8760bb9e0c | ||
|
|
2f1d47cf94 | ||
|
|
20b377825e | ||
|
|
71bf572160 | ||
|
|
90302e9fbc | ||
|
|
e666a97b61 | ||
|
|
24d5aae215 | ||
|
|
6704eebd76 | ||
|
|
7a00d881a1 | ||
|
|
593bb64646 | ||
|
|
b247f77228 | ||
|
|
aeadcd6319 | ||
|
|
e60f0ec20f | ||
|
|
a061c49be0 | ||
|
|
e58e083826 | ||
|
|
4a92cda109 | ||
|
|
bcc3f5fc5d | ||
|
|
39548f001a | ||
|
|
d43b815145 | ||
|
|
3eeefd54b1 | ||
|
|
befa40a9dc | ||
|
|
e2c97aef51 | ||
|
|
59847bba27 | ||
|
|
ac3d398b56 | ||
|
|
24119ac6bd | ||
|
|
612045f8e1 | ||
|
|
62e67fd6c0 | ||
|
|
922cb29cfe | ||
|
|
327070c7e5 | ||
|
|
ed9ca23065 | ||
|
|
12eb8057cb | ||
|
|
ab834d21f1 | ||
|
|
2f88444e9a | ||
|
|
8343d55b3d | ||
|
|
66d720025d | ||
|
|
739240a9d1 | ||
|
|
7e52028a83 | ||
|
|
efc8a6ba16 | ||
|
|
1d77be00c4 | ||
|
|
ab31c5b251 | ||
|
|
720b365cf4 | ||
|
|
4a71c59d2b | ||
|
|
baeed3c40f | ||
|
|
8306e43fcb | ||
|
|
672f00e426 | ||
|
|
ef48cfe93d | ||
|
|
175e89dac5 | ||
|
|
a8240cd7d5 | ||
|
|
d8aa1541f0 | ||
|
|
ed1251fa35 | ||
|
|
0eeaaaf0ae | ||
|
|
570025855c | ||
|
|
f5662f41e7 | ||
|
|
c4c77ca106 | ||
|
|
a4037b279b | ||
|
|
36440d1ec6 | ||
|
|
470212919f | ||
|
|
64f32116e9 | ||
|
|
5d4460c9b5 | ||
|
|
6ebd91a0c7 | ||
|
|
e5c186c82a | ||
|
|
f0ecd0e64f | ||
|
|
7ea91c70d6 | ||
|
|
66bb4938ea | ||
|
|
f8d1919e6b | ||
|
|
e72c1e7e46 | ||
|
|
942d99dc85 | ||
|
|
3857cb6fca | ||
|
|
deeb484d02 | ||
|
|
0ec0b614ba | ||
|
|
a8f6b2aa46 | ||
|
|
8fedc9e968 | ||
|
|
c6a1797aff | ||
|
|
8c1602bd24 | ||
|
|
6d7d20116e | ||
|
|
9240acdbcb | ||
|
|
abfc643b40 | ||
|
|
f670916b5b | ||
|
|
39d234f6b2 | ||
|
|
1e02091371 | ||
|
|
51b92ee638 | ||
|
|
5e3f390f05 | ||
|
|
9aa2c14afd | ||
|
|
ebacb7908a | ||
|
|
e6a6d0778c | ||
|
|
3a8e5a197f | ||
|
|
5d0be31bd9 | ||
|
|
3dfa202e4f | ||
|
|
57f73c550f | ||
|
|
a7485cd61d | ||
|
|
a0fb749d0b | ||
|
|
b24a910f30 | ||
|
|
a45f57a2d5 | ||
|
|
7278318053 | ||
|
|
5422929ca0 | ||
|
|
f9a7c086aa | ||
|
|
c5a53da13b | ||
|
|
21a3f7f5a6 | ||
|
|
74d2d170a2 | ||
|
|
badb7014bb | ||
|
|
1bfe8851c0 | ||
|
|
c4d99a6240 | ||
|
|
5fd6b9b3b8 | ||
|
|
13d9b8ce94 | ||
|
|
0cb666ecb4 | ||
|
|
2f420f33bb | ||
|
|
cf5b250294 | ||
|
|
98fb3282ed | ||
|
|
b049b8ce6a | ||
|
|
57f8a60b21 | ||
|
|
b55dc7da2e | ||
|
|
8b065a1523 | ||
|
|
e7d5601ed3 | ||
|
|
20cd6fd589 | ||
|
|
e2fe1fda75 | ||
|
|
c69b5b3eb4 | ||
|
|
6ccb11e93d | ||
|
|
dced057f93 | ||
|
|
cf225ed6cd | ||
|
|
aa443b3cbc | ||
|
|
52d5489b95 | ||
|
|
2dbf95401e | ||
|
|
515ada69db | ||
|
|
2914684df9 | ||
|
|
2b9067ffb0 | ||
|
|
2128c24c02 | ||
|
|
dd3b73157c | ||
|
|
15afb2941e | ||
|
|
387bca7a55 | ||
|
|
cf5d7a5094 | ||
|
|
ec8d5a1654 | ||
|
|
6a6965084d | ||
|
|
c8be10428a | ||
|
|
fb422286de | ||
|
|
dc842cdcb9 | ||
|
|
13caac5ff8 | ||
|
|
9fe786f14d | ||
|
|
7932a76371 | ||
|
|
0510953ee2 | ||
|
|
5e912f21d4 | ||
|
|
cd9bebfc4c | ||
|
|
a45e630851 | ||
|
|
04115a59c1 | ||
|
|
ed072d6ef9 | ||
|
|
b1f7d25ee1 | ||
|
|
4db36a15c5 | ||
|
|
9b7f024220 | ||
|
|
094b373376 | ||
|
|
a9579d3386 | ||
|
|
c84431ff01 | ||
|
|
101a7960b7 | ||
|
|
146484aced | ||
|
|
129cfb3a10 | ||
|
|
d8910c65a3 | ||
|
|
50ae43d146 | ||
|
|
befbc68ee5 | ||
|
|
dbe9f900ec | ||
|
|
280a0203f2 | ||
|
|
19d3add998 | ||
|
|
749739f4bf | ||
|
|
ab48db2381 | ||
|
|
7fc50c4b52 | ||
|
|
6769ce7c7b | ||
|
|
e43b095921 | ||
|
|
9d9989f4cc | ||
|
|
b851e4516c | ||
|
|
d87176e2c7 | ||
|
|
87204328a4 | ||
|
|
fd315b229f | ||
|
|
7999db4215 | ||
|
|
0d8333f087 | ||
|
|
481e9b573b | ||
|
|
47021cb467 | ||
|
|
c6ce0491ea | ||
|
|
567ed9e42e | ||
|
|
cbb8a1b7cb | ||
|
|
d01e14dc0b | ||
|
|
a60ac36ef2 | ||
|
|
a8f4d3b633 | ||
|
|
bd7e02a337 | ||
|
|
09477e188f | ||
|
|
d5a9b6964d | ||
|
|
0cdb53f093 | ||
|
|
8bb981783d | ||
|
|
72e52e1a03 | ||
|
|
05b8187cb3 | ||
|
|
7415772270 | ||
|
|
acfad98caa | ||
|
|
a370328554 | ||
|
|
240e53b132 | ||
|
|
5df5127aa4 | ||
|
|
673ef465c6 | ||
|
|
e8ebdf044d | ||
|
|
1d16cf8bb8 | ||
|
|
0f81af0773 | ||
|
|
b0d566a2ce | ||
|
|
9a154f89ba | ||
|
|
021e9254f5 | ||
|
|
462df43837 | ||
|
|
9de0f9b0ae | ||
|
|
2dbc961b45 | ||
|
|
b9fe743658 | ||
|
|
ee6c0ce79e | ||
|
|
296dbf9b17 | ||
|
|
1c15574ef3 | ||
|
|
28631bf0cd | ||
|
|
ccd7f16a98 | ||
|
|
07d0f86c8a | ||
|
|
80e45d89bc | ||
|
|
2ca30c1774 | ||
|
|
7ed4399c65 | ||
|
|
321b1c0501 | ||
|
|
bc91517988 | ||
|
|
eed8287172 | ||
|
|
61facaae4e | ||
|
|
0d70096bda | ||
|
|
8f13e3b7f9 | ||
|
|
8afedf9ec0 | ||
|
|
6e0fe0bcdd | ||
|
|
9de2552945 | ||
|
|
3d8b9b9956 | ||
|
|
edffbefe20 | ||
|
|
2f76108082 | ||
|
|
7871069127 | ||
|
|
c6678b68ef | ||
|
|
9b16a48b9b | ||
|
|
efe34b8ddb | ||
|
|
2152b79896 | ||
|
|
829f1b9a32 | ||
|
|
7c60401dbd | ||
|
|
f65d2e1c04 | ||
|
|
862015b91f | ||
|
|
9de3fd52cc | ||
|
|
a6c05a7398 | ||
|
|
eb3476f9a0 | ||
|
|
4ab7003492 | ||
|
|
549ae80145 | ||
|
|
b6ba2af51b | ||
|
|
3eaed6c0fc | ||
|
|
1b670d3528 | ||
|
|
c18101ac96 | ||
|
|
0b451634f3 | ||
|
|
21fb8590e4 | ||
|
|
d07e6bc6a6 | ||
|
|
f551490572 | ||
|
|
718106da14 | ||
|
|
f1be51091e | ||
|
|
d923262186 | ||
|
|
5c2512f982 | ||
|
|
fa77ca1069 | ||
|
|
b0364f1f3c | ||
|
|
e705db6d5d | ||
|
|
eeb3e1e133 | ||
|
|
f92c897cb6 | ||
|
|
158f256a14 | ||
|
|
4fd1d8e7e9 | ||
|
|
ed6c061caa | ||
|
|
93a4e56fc6 | ||
|
|
64ecc88345 | ||
|
|
9d35881c45 | ||
|
|
18aee20ea5 | ||
|
|
34350037a8 | ||
|
|
935c5b4fa2 | ||
|
|
63f9f18ecd | ||
|
|
0c42fc3acc | ||
|
|
3be53722e5 | ||
|
|
f41bd47802 | ||
|
|
0b595cbab3 | ||
|
|
aea751c423 | ||
|
|
2a84185053 | ||
|
|
acbaca95fb | ||
|
|
dfe1f59d9d | ||
|
|
69070fbbf3 | ||
|
|
e9bce1c912 | ||
|
|
2a03c0af76 | ||
|
|
4900402e70 | ||
|
|
3df921e631 | ||
|
|
6c062e9cc4 | ||
|
|
77514242b0 | ||
|
|
4462803b0d | ||
|
|
e156391987 | ||
|
|
7b0bb3bdc9 | ||
|
|
c1397a484a | ||
|
|
1939804b11 | ||
|
|
cc758fbc8f | ||
|
|
bd5ddeb924 | ||
|
|
286e0fb023 | ||
|
|
f37992b6e5 | ||
|
|
0d5cc4c53a | ||
|
|
2757c812b1 | ||
|
|
391ac1cbfd | ||
|
|
b75220c59d | ||
|
|
5041db0a58 | ||
|
|
0edc9d2bf7 | ||
|
|
1ef53a4a91 | ||
|
|
78576fe0db | ||
|
|
984c2e9f76 | ||
|
|
8aae226481 |
@@ -1,4 +1,4 @@
|
||||
Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright (C) 1996-2003 Internet Software Consortium.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -13,7 +13,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
$Id: COPYRIGHT,v 1.9.18.4.10.1 2008/07/23 07:28:54 tbox Exp $
|
||||
$Id: COPYRIGHT,v 1.9.18.6 2009/01/05 23:46:19 tbox Exp $
|
||||
|
||||
Portions Copyright (C) 1996-2001 Nominum, Inc.
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Frequently Asked Questions about BIND 9
|
||||
|
||||
Copyright © 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright © 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
|
||||
Copyright © 2000-2003 Internet Software Consortium.
|
||||
|
||||
@@ -153,24 +153,29 @@ A: BIND 9.3 and later: Use TSIG to select the appropriate view.
|
||||
|
||||
Master 10.0.1.1:
|
||||
key "external" {
|
||||
algorithm hmac-md5;
|
||||
secret "xxxxxxxx";
|
||||
algorithm hmac-sha256;
|
||||
secret "xxxxxxxxxxxxxxxxxxxxxxxx";
|
||||
};
|
||||
view "internal" {
|
||||
match-clients { !key external; 10.0.1/24; };
|
||||
match-clients { !key external; // reject message ment for the
|
||||
// external view.
|
||||
10.0.1/24; }; // accept from these addresses.
|
||||
...
|
||||
};
|
||||
view "external" {
|
||||
match-clients { key external; any; };
|
||||
server 10.0.1.2 { keys external; };
|
||||
server 10.0.1.2 { keys external; }; // tag messages from the
|
||||
// external view to the
|
||||
// other servers for the
|
||||
// view.
|
||||
recursion no;
|
||||
...
|
||||
};
|
||||
|
||||
Slave 10.0.1.2:
|
||||
key "external" {
|
||||
algorithm hmac-md5;
|
||||
secret "xxxxxxxx";
|
||||
algorithm hmac-sha256;
|
||||
secret "xxxxxxxxxxxxxxxxxxxxxxxx";
|
||||
};
|
||||
view "internal" {
|
||||
match-clients { !key external; 10.0.1/24; };
|
||||
@@ -205,6 +210,8 @@ A: These indicate a malformed master zone. You can identify the exact
|
||||
Q: I get error messages like "named.conf:99: unexpected end of input"
|
||||
where 99 is the last line of named.conf.
|
||||
|
||||
A: There are unbalanced quotes in named.conf.
|
||||
|
||||
A: Some text editors (notepad and wordpad) fail to put a line title
|
||||
indication (e.g. CR/LF) on the last line of a text file. This can be
|
||||
fixed by "adding" a blank line to the end of the file. Named expects to
|
||||
@@ -218,13 +225,13 @@ A: You choose one view to be master and the second a slave and transfer
|
||||
|
||||
Master 10.0.1.1:
|
||||
key "external" {
|
||||
algorithm hmac-md5;
|
||||
secret "xxxxxxxx";
|
||||
algorithm hmac-sha256;
|
||||
secret "xxxxxxxxxxxxxxxxxxxxxxxx";
|
||||
};
|
||||
|
||||
key "mykey" {
|
||||
algorithm hmac-md5;
|
||||
secret "yyyyyyyy";
|
||||
algorithm hmac-sha256;
|
||||
secret "yyyyyyyyyyyyyyyyyyyyyyyy";
|
||||
};
|
||||
|
||||
view "internal" {
|
||||
@@ -375,7 +382,60 @@ A: When reloading a zone named my have multiple copies of the zone in
|
||||
other errors in the master file as it still has an in-core copy of the
|
||||
old contents.
|
||||
|
||||
3. General Questions
|
||||
Q: I want to use IPv6 locally but I don't have a external IPv6 connection.
|
||||
External lookups are slow.
|
||||
|
||||
A: You can use server clauses to stop named making external lookups over
|
||||
IPv6.
|
||||
|
||||
server fd81:ec6c:bd62::/48 { bogus no; }; // site ULA prefix
|
||||
server ::/0 { bogus yes; };
|
||||
|
||||
3. Operations Questions
|
||||
|
||||
Q: How to change the nameservers for a zone?
|
||||
|
||||
A: Step 1: Ensure all nameservers, new and old, are serving the same zone
|
||||
content.
|
||||
|
||||
Step 2: Work out the maximum TTL of the NS RRset in the parent and
|
||||
child zones. This is the time it will take caches to be clear of a
|
||||
particular version of the NS RRset. If you are just removing
|
||||
nameservers you can skip to Step 6.
|
||||
|
||||
Step 3: Add new nameservers to the NS RRset for the zone and wait until
|
||||
all the servers for the zone are answering with this new NS RRset.
|
||||
|
||||
Step 4: Inform the parent zone of the new NS RRset then wait for all
|
||||
the parent servers to be answering with the new NS RRset.
|
||||
|
||||
Step 5: Wait for cache to be clear of the old NS RRset. See Step 2 for
|
||||
how long. If you are just adding nameservers you are done.
|
||||
|
||||
Step 6: Remove any old nameservers from the zones NS RRset and wait for
|
||||
all the servers for the zone to be serving the new NS RRset.
|
||||
|
||||
Step 7: Inform the parent zone of the new NS RRset then wait for all
|
||||
the parent servers to be answering with the new NS RRset.
|
||||
|
||||
Step 8: Wait for cache to be clear of the old NS RRset. See Step 2 for
|
||||
how long.
|
||||
|
||||
Step 9: Turn off the old nameservers or remove the zone entry from the
|
||||
configuration of the old nameservers.
|
||||
|
||||
Step 10: Increment the serial number and wait for the change to be
|
||||
visible in all nameservers for the zone. This ensures that zone
|
||||
transfers are still working after the old servers are decommissioned.
|
||||
|
||||
Note: the above procedure is designed to be transparent to dns clients.
|
||||
Decommissioning the old servers too early will result in some clients
|
||||
not being able to look up answers in the zone.
|
||||
|
||||
Note: while it is possible to run the addition and removal stages
|
||||
together it is not recommended.
|
||||
|
||||
4. General Questions
|
||||
|
||||
Q: I keep getting log messages like the following. Why?
|
||||
|
||||
@@ -396,8 +456,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 +528,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.
|
||||
|
||||
@@ -541,9 +601,16 @@ A: No. The BIND 9 bug database is kept closed for a number of reasons.
|
||||
that have been fixed post release. That is as close as we can get to
|
||||
providing a bug database.
|
||||
|
||||
4. Operating-System Specific Questions
|
||||
Q: Why do queries for NSEC3 records fail to return the NSEC3 record?
|
||||
|
||||
4.1. HPUX
|
||||
A: NSEC3 records are strictly meta data and can only be returned in the
|
||||
authority section. This is done so that signing the zone using NSEC3
|
||||
records does not bring names into existence that do not exist in the
|
||||
unsigned version of the zone.
|
||||
|
||||
5. Operating-System Specific Questions
|
||||
|
||||
5.1. HPUX
|
||||
|
||||
Q: I get the following error trying to configure BIND:
|
||||
|
||||
@@ -559,7 +626,7 @@ A: You have attempted to configure BIND with the bundled C compiler. This
|
||||
|
||||
./configure CC=<compiler> ...
|
||||
|
||||
4.2. Linux
|
||||
5.2. Linux
|
||||
|
||||
Q: Why do I get the following errors:
|
||||
|
||||
@@ -569,7 +636,20 @@ 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
|
||||
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
|
||||
|
||||
Q: Why do I see 5 (or more) copies of named on Linux?
|
||||
|
||||
@@ -594,7 +674,12 @@ 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).
|
||||
been loaded into the kernel. See insmod(8), modprobe(8).
|
||||
|
||||
The relevant modules can be loaded by running:
|
||||
|
||||
modprobe commoncap
|
||||
modprobe capability
|
||||
|
||||
Q: I'm running BIND on Red Hat Enterprise Linux or Fedora Core -
|
||||
|
||||
@@ -608,7 +693,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 .
|
||||
|
||||
@@ -699,7 +784,19 @@ 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)
|
||||
|
||||
4.3. Windows
|
||||
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
|
||||
|
||||
5.3. Windows
|
||||
|
||||
Q: Zone transfers from my BIND 9 master to my Windows 2000 slave fail.
|
||||
Why?
|
||||
@@ -725,7 +822,7 @@ A: This is the service manager saying that named exited. You need to
|
||||
Directory "C:\windows\dns\etc";
|
||||
};
|
||||
|
||||
4.4. FreeBSD
|
||||
5.4. FreeBSD
|
||||
|
||||
Q: I have FreeBSD 4.x and "rndc-confgen -a" just sits there.
|
||||
|
||||
@@ -733,20 +830,19 @@ A: /dev/random is not configured. Use rndcontrol(8) to tell the kernel to
|
||||
use certain interrupts as a source of random events. You can make this
|
||||
permanent by setting rand_irqs in /etc/rc.conf.
|
||||
|
||||
/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
|
||||
5.5. Solaris
|
||||
|
||||
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
|
||||
5.6. Apple Mac OS X
|
||||
|
||||
Q: How do I run BIND 9 on Apple Mac OS X?
|
||||
|
||||
|
||||
@@ -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-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -17,7 +17,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: FAQ.xml,v 1.4.4.16 2007/10/31 02:14:07 marka Exp $ -->
|
||||
<!-- $Id: FAQ.xml,v 1.4.4.29 2009/10/06 01:33:54 tbox Exp $ -->
|
||||
|
||||
<article class="faq">
|
||||
<title>Frequently Asked Questions about BIND 9</title>
|
||||
@@ -27,6 +27,8 @@
|
||||
<year>2005</year>
|
||||
<year>2006</year>
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<year>2009</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -317,24 +319,29 @@ Slave: 10.0.1.3 (internal), 10.0.1.4 (external, IP alias)
|
||||
<programlisting>
|
||||
Master 10.0.1.1:
|
||||
key "external" {
|
||||
algorithm hmac-md5;
|
||||
secret "xxxxxxxx";
|
||||
algorithm hmac-sha256;
|
||||
secret "xxxxxxxxxxxxxxxxxxxxxxxx";
|
||||
};
|
||||
view "internal" {
|
||||
match-clients { !key external; 10.0.1/24; };
|
||||
match-clients { !key external; // reject message ment for the
|
||||
// external view.
|
||||
10.0.1/24; }; // accept from these addresses.
|
||||
...
|
||||
};
|
||||
view "external" {
|
||||
match-clients { key external; any; };
|
||||
server 10.0.1.2 { keys external; };
|
||||
server 10.0.1.2 { keys external; }; // tag messages from the
|
||||
// external view to the
|
||||
// other servers for the
|
||||
// view.
|
||||
recursion no;
|
||||
...
|
||||
};
|
||||
|
||||
Slave 10.0.1.2:
|
||||
key "external" {
|
||||
algorithm hmac-md5;
|
||||
secret "xxxxxxxx";
|
||||
algorithm hmac-sha256;
|
||||
secret "xxxxxxxxxxxxxxxxxxxxxxxx";
|
||||
};
|
||||
view "internal" {
|
||||
match-clients { !key external; 10.0.1/24; };
|
||||
@@ -390,6 +397,11 @@ named-checkzone example.com tmp</programlisting>
|
||||
of input</quote> where 99 is the last line of named.conf.
|
||||
</para>
|
||||
</question>
|
||||
<answer>
|
||||
<para>
|
||||
There are unbalanced quotes in named.conf.
|
||||
</para>
|
||||
</answer>
|
||||
<answer>
|
||||
<para>
|
||||
Some text editors (notepad and wordpad) fail to put a line
|
||||
@@ -417,13 +429,13 @@ named-checkzone example.com tmp</programlisting>
|
||||
<programlisting>
|
||||
Master 10.0.1.1:
|
||||
key "external" {
|
||||
algorithm hmac-md5;
|
||||
secret "xxxxxxxx";
|
||||
algorithm hmac-sha256;
|
||||
secret "xxxxxxxxxxxxxxxxxxxxxxxx";
|
||||
};
|
||||
|
||||
key "mykey" {
|
||||
algorithm hmac-md5;
|
||||
secret "yyyyyyyy";
|
||||
algorithm hmac-sha256;
|
||||
secret "yyyyyyyyyyyyyyyyyyyyyyyy";
|
||||
};
|
||||
|
||||
view "internal" {
|
||||
@@ -660,9 +672,98 @@ zone "list.dsbl.org" {
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>
|
||||
I want to use IPv6 locally but I don't have a external IPv6
|
||||
connection. External lookups are slow.
|
||||
</para>
|
||||
</question>
|
||||
<answer>
|
||||
<para>
|
||||
You can use server clauses to stop named making external lookups
|
||||
over IPv6.
|
||||
</para>
|
||||
<programlisting>
|
||||
server fd81:ec6c:bd62::/48 { bogus no; }; // site ULA prefix
|
||||
server ::/0 { bogus yes; };
|
||||
</programlisting>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
</qandadiv> <!-- Configuration and Setup Questions -->
|
||||
|
||||
<qandadiv><title>Operations Questions</title>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>
|
||||
How to change the nameservers for a zone?
|
||||
</para>
|
||||
</question>
|
||||
<answer>
|
||||
<para>
|
||||
Step 1: Ensure all nameservers, new and old, are serving the
|
||||
same zone content.
|
||||
</para>
|
||||
<para>
|
||||
Step 2: Work out the maximum TTL of the NS RRset in the parent and child
|
||||
zones. This is the time it will take caches to be clear of a
|
||||
particular version of the NS RRset.
|
||||
If you are just removing nameservers you can skip to Step 6.
|
||||
</para>
|
||||
<para>
|
||||
Step 3: Add new nameservers to the NS RRset for the zone and
|
||||
wait until all the servers for the zone are answering with this
|
||||
new NS RRset.
|
||||
</para>
|
||||
<para>
|
||||
Step 4: Inform the parent zone of the new NS RRset then wait for all the
|
||||
parent servers to be answering with the new NS RRset.
|
||||
</para>
|
||||
<para>
|
||||
Step 5: Wait for cache to be clear of the old NS RRset.
|
||||
See Step 2 for how long.
|
||||
If you are just adding nameservers you are done.
|
||||
</para>
|
||||
<para>
|
||||
Step 6: Remove any old nameservers from the zones NS RRset and
|
||||
wait for all the servers for the zone to be serving the new NS RRset.
|
||||
</para>
|
||||
<para>
|
||||
Step 7: Inform the parent zone of the new NS RRset then wait for all the
|
||||
parent servers to be answering with the new NS RRset.
|
||||
</para>
|
||||
<para>
|
||||
Step 8: Wait for cache to be clear of the old NS RRset.
|
||||
See Step 2 for how long.
|
||||
</para>
|
||||
<para>
|
||||
Step 9: Turn off the old nameservers or remove the zone entry from
|
||||
the configuration of the old nameservers.
|
||||
</para>
|
||||
<para>
|
||||
Step 10: Increment the serial number and wait for the change to
|
||||
be visible in all nameservers for the zone. This ensures that
|
||||
zone transfers are still working after the old servers are
|
||||
decommissioned.
|
||||
</para>
|
||||
<para>
|
||||
Note: the above procedure is designed to be transparent
|
||||
to dns clients. Decommissioning the old servers too early
|
||||
will result in some clients not being able to look up
|
||||
answers in the zone.
|
||||
</para>
|
||||
<para>
|
||||
Note: while it is possible to run the addition and removal
|
||||
stages together it is not recommended.
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
</qandadiv> <!-- Operations Questions -->
|
||||
|
||||
<qandadiv><title>General Questions</title>
|
||||
|
||||
<qandaentry>
|
||||
@@ -705,8 +806,7 @@ 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 +956,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>
|
||||
@@ -962,6 +1062,23 @@ empty:
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>
|
||||
Why do queries for NSEC3 records fail to return the NSEC3 record?
|
||||
</para>
|
||||
</question>
|
||||
<answer>
|
||||
<para>
|
||||
NSEC3 records are strictly meta data and can only be
|
||||
returned in the authority section. This is done so that
|
||||
signing the zone using NSEC3 records does not bring names
|
||||
into existence that do not exist in the unsigned version
|
||||
of the zone.
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
</qandadiv> <!-- General Questions -->
|
||||
|
||||
<qandadiv><title>Operating-System Specific Questions</title>
|
||||
@@ -1009,7 +1126,31 @@ 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>
|
||||
<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>
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
@@ -1064,7 +1205,13 @@ client: UDP client handler shutting down due to fatal receive error: unexpected
|
||||
<answer>
|
||||
<para>
|
||||
The capability module, part of "Linux Security Modules/LSM",
|
||||
has not been loaded into the kernel. See insmod(8).
|
||||
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>
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
@@ -1094,8 +1241,9 @@ client: UDP client handler shutting down due to fatal receive error: unexpected
|
||||
|
||||
<para>
|
||||
Red Hat have adopted the National Security Agency's
|
||||
SELinux security policy ( see http://www.nsa.gov/selinux
|
||||
) and recommendations for BIND security , which are more
|
||||
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
|
||||
secure than running named in a chroot and make use of
|
||||
the bind-chroot environment unnecessary .
|
||||
</para>
|
||||
@@ -1233,6 +1381,30 @@ 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 -->
|
||||
|
||||
@@ -1304,14 +1476,12 @@ options {
|
||||
</para>
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
/etc/rc.conf
|
||||
rand_irqs="3 14 15"</programlisting>
|
||||
</informalexample>
|
||||
<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>
|
||||
@@ -1333,12 +1503,76 @@ 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 -->
|
||||
|
||||
+15
-2
@@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 1998-2002 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -13,7 +13,7 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.43.18.6 2007/09/03 23:46:21 tbox Exp $
|
||||
# $Id: Makefile.in,v 1.43.18.8 2009/02/20 23:46:01 tbox Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
@@ -24,6 +24,12 @@ top_srcdir = @top_srcdir@
|
||||
SUBDIRS = make lib bin doc @LIBBIND@
|
||||
TARGETS =
|
||||
|
||||
MANPAGES = isc-config.sh.1
|
||||
|
||||
HTMLPAGES = isc-config.sh.html
|
||||
|
||||
MANOBJS = ${MANPAGES} ${HTMLPAGES}
|
||||
|
||||
@BIND9_MAKE_RULES@
|
||||
|
||||
distclean::
|
||||
@@ -43,12 +49,19 @@ distclean::
|
||||
maintainer-clean::
|
||||
rm -f configure
|
||||
|
||||
docclean manclean maintainer-clean::
|
||||
rm -f ${MANOBJS}
|
||||
|
||||
doc man:: ${MANOBJS}
|
||||
|
||||
installdirs:
|
||||
$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${bindir} \
|
||||
${DESTDIR}${localstatedir}/run ${DESTDIR}${sysconfdir}
|
||||
$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${mandir}/man1
|
||||
|
||||
install:: isc-config.sh installdirs
|
||||
${INSTALL_SCRIPT} isc-config.sh ${DESTDIR}${bindir}
|
||||
${INSTALL_DATA} ${srcdir}/isc-config.sh.1 ${DESTDIR}${mandir}/man1
|
||||
|
||||
tags:
|
||||
rm -f TAGS
|
||||
|
||||
@@ -42,6 +42,19 @@ BIND 9
|
||||
Stichting NLnet - NLnet Foundation
|
||||
Nominum, Inc.
|
||||
|
||||
BIND 9.4-ESV (Extended Support Version)
|
||||
|
||||
BIND 9.4-ESV is the final maintenance release for BIND 9.4.
|
||||
BIND 9.4-ESV is a one off maintenance release, fixing bugs in
|
||||
BIND 9.4.3.
|
||||
|
||||
BIND 9.4-ESV will be supported until Feb 2010, at which
|
||||
time you will need to upgrade to the current release of
|
||||
BIND.
|
||||
|
||||
BIND 9.4.3
|
||||
|
||||
BIND 9.4.3 is a maintenance release, fixing bugs in 9.4.2.
|
||||
|
||||
BIND 9.4.2
|
||||
|
||||
@@ -73,13 +86,14 @@ BIND 9.4.0
|
||||
|
||||
rndc now allows addresses to be set in the server clauses.
|
||||
|
||||
New option "allow-query-cache". This lets allow-query be
|
||||
used to specify the default zone access level rather than
|
||||
having to have every zone override the global value.
|
||||
allow-query-cache can be set at both the options and view
|
||||
levels. If allow-query-cache is not set then allow-recursion
|
||||
is used if set, otherwise allow-query is used if set, otherwise
|
||||
the default (localhost; localnets;) is used.
|
||||
New option "allow-query-cache". This lets "allow-query"
|
||||
be used to specify the default zone access level rather
|
||||
than having to have every zone override the global value.
|
||||
"allow-query-cache" can be set at both the options and view
|
||||
levels. If "allow-query-cache" is not set then "allow-recursion"
|
||||
is used if set, otherwise "allow-query" is used if set
|
||||
unless "recursion no;" is set in which case "none;" is used,
|
||||
otherwise the default (localhost; localnets;) is used.
|
||||
|
||||
rndc: the source address can now be specified.
|
||||
|
||||
@@ -355,7 +369,7 @@ BIND 9.2.0
|
||||
This does not apply to the use of TSIG, which does not
|
||||
require OpenSSL.
|
||||
|
||||
- The source distribution now builds on Windows NT/2000.
|
||||
- The source distribution now builds on Windows.
|
||||
See win32utils/readme1.txt and win32utils/win32-build.txt
|
||||
for details.
|
||||
|
||||
@@ -404,11 +418,8 @@ BIND 9.2.0
|
||||
|
||||
--with-libtool does not work on AIX.
|
||||
|
||||
--with-libtool does not work on SunOS 4. configure
|
||||
requires "printf" which is not available.
|
||||
|
||||
A bug in the Windows 2000 DNS server can cause zone transfers
|
||||
from a BIND 9 server to a W2K server to fail. For details,
|
||||
A bug in some versions of the Microsoft DNS server can cause zone
|
||||
transfers from a BIND 9 server to a W2K server to fail. For details,
|
||||
see the "Zone Transfers" section in doc/misc/migration.
|
||||
|
||||
For a detailed list of user-visible changes from
|
||||
@@ -428,7 +439,11 @@ Building
|
||||
NetBSD 1.5
|
||||
Slackware Linux 8.1
|
||||
Solaris 8, 9, 9 (x86)
|
||||
Windows NT/2000/XP/2003
|
||||
Windows XP/2003/2008
|
||||
|
||||
NOTE: As of BIND 9.5.1, 9.4.3, and 9.3.6, older versions of
|
||||
Windows, including Windows NT and Windows 2000, are no longer
|
||||
supported.
|
||||
|
||||
Additionally, we have unverified reports of success building
|
||||
previous versions of BIND 9 from users of the following systems:
|
||||
@@ -482,6 +497,14 @@ Building
|
||||
-DNS_CLIENT_DROPPORT=0
|
||||
Disable support for "rrset-order fixed".
|
||||
-DDNS_RDATASET_FIXED=0
|
||||
Sibling glue checking in named-checkzone is enabled by default.
|
||||
To disable the default check set. -DCHECK_SIBLING=0
|
||||
named-checkzone checks out-of-zone addresses by default.
|
||||
To disable this default set. -DCHECK_LOCAL=0
|
||||
Enable workaround for Solaris kernel bug about /dev/poll
|
||||
-DISC_SOCKET_USE_POLLWATCH=1
|
||||
The watch timeout is also configurable, e.g.,
|
||||
-DISC_SOCKET_POLLWATCH_TIMEOUT=20
|
||||
|
||||
LDFLAGS
|
||||
Linker flags. Defaults to empty string.
|
||||
@@ -510,6 +533,10 @@ Building
|
||||
To build libbind (the BIND 8 resolver library), specify
|
||||
"--enable-libbind" on the configure command line.
|
||||
|
||||
On some platforms it is necessary to explictly request large
|
||||
file support to handle files bigger than 2GB. This can be
|
||||
done by "--enable-largefile" on the configure command line.
|
||||
|
||||
On some platforms, BIND 9 can be built with multithreading
|
||||
support, allowing it to take advantage of multiple CPUs.
|
||||
You can specify whether to build a multithreaded BIND 9
|
||||
@@ -559,6 +586,9 @@ 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
|
||||
|
||||
|
||||
+4
-4
@@ -55,7 +55,7 @@ at least specify `--with-idn' option to enable IDN support.
|
||||
|
||||
`--with-libiconv' assumes that your C compiler has `-R'
|
||||
option, and that the option adds the specified run-time path
|
||||
to an exacutable binary. If `-R' option of your compiler has
|
||||
to an executable binary. If `-R' option of your compiler has
|
||||
different meaning, or your compiler lacks the option, you
|
||||
should use `--with-iconv' option instead. Binary command
|
||||
without run-time path information might be unexecutable.
|
||||
@@ -68,7 +68,7 @@ at least specify `--with-idn' option to enable IDN support.
|
||||
specified, `--with-iconv' is prior to `--with-libiconv'.
|
||||
|
||||
--with-iconv=ICONV_LIBSPEC
|
||||
If your libc doens't provide iconv(), you need to specify the
|
||||
If your libc doesn't provide iconv(), you need to specify the
|
||||
library containing iconv() with this option. `ICONV_LIBSPEC'
|
||||
is the argument(s) to `cc' or `ld' to link the library, for
|
||||
example, `--with-iconv="-L/usr/local/lib -liconv"'.
|
||||
@@ -82,7 +82,7 @@ at least specify `--with-idn' option to enable IDN support.
|
||||
this option is not specified, `-L${PREFIX}/lib -lidnkit' is
|
||||
assumed, where ${PREFIX} is the installation prefix specified
|
||||
with `--with-idn' option above. You may need to use this
|
||||
option to specify extra argments, for example,
|
||||
option to specify extra arguments, for example,
|
||||
`--with-idnlib="-L/usr/local/lib -R/usr/local/lib -lidnkit"'.
|
||||
|
||||
Please consult `README' for other configuration options.
|
||||
@@ -109,4 +109,4 @@ about idnkit and this patch.
|
||||
Bug reports and comments on this kit should be sent to
|
||||
mdnkit-bugs@nic.ad.jp and idn-cmt@nic.ad.jp, respectively.
|
||||
|
||||
; $Id: README.idnkit,v 1.2.2.2 2005/09/12 02:12:08 marka Exp $
|
||||
; $Id: README.idnkit,v 1.2.2.3 2009/01/19 00:36:25 marka Exp $
|
||||
|
||||
+4
-10
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: acconfig.h,v 1.44.18.5 2005/04/29 00:15:20 marka Exp $ */
|
||||
/* $Id: acconfig.h,v 1.44.18.7 2008/12/01 23:45:56 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -25,9 +25,6 @@
|
||||
***/
|
||||
@TOP@
|
||||
|
||||
/** define to `int' if <sys/types.h> doesn't define. */
|
||||
#undef ssize_t
|
||||
|
||||
/** define on DEC OSF to enable 4.4BSD style sa_len support */
|
||||
#undef _SOCKADDR_LEN
|
||||
|
||||
@@ -61,9 +58,6 @@
|
||||
/** define if you have the NET_RT_IFLIST sysctl variable and sys/sysctl.h */
|
||||
#undef HAVE_IFLIST_SYSCTL
|
||||
|
||||
/** define if chroot() is available */
|
||||
#undef HAVE_CHROOT
|
||||
|
||||
/** define if tzset() is available */
|
||||
#undef HAVE_TZSET
|
||||
|
||||
@@ -115,7 +109,7 @@ int sigwait(const unsigned int *set, int *sig);
|
||||
* The silly continuation line is to keep configure from
|
||||
* commenting out the #undef.
|
||||
*/
|
||||
|
||||
|
||||
#undef \
|
||||
va_start
|
||||
#define va_start(ap, last) \
|
||||
|
||||
+26
-8
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: check-tool.c,v 1.10.18.18 2007/09/13 05:04:01 each Exp $ */
|
||||
/* $Id: check-tool.c,v 1.10.18.23 2009/09/24 21:38:50 jinmei Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -46,6 +46,14 @@
|
||||
|
||||
#include <isccfg/log.h>
|
||||
|
||||
#ifndef CHECK_SIBLING
|
||||
#define CHECK_SIBLING 1
|
||||
#endif
|
||||
|
||||
#ifndef CHECK_LOCAL
|
||||
#define CHECK_LOCAL 1
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ADDRINFO
|
||||
#ifdef HAVE_GETADDRINFO
|
||||
#ifdef HAVE_GAISTRERROR
|
||||
@@ -59,20 +67,29 @@
|
||||
result = (r); \
|
||||
if (result != ISC_R_SUCCESS) \
|
||||
goto cleanup; \
|
||||
} while (0)
|
||||
} while (0)
|
||||
|
||||
static const char *dbtype[] = { "rbt" };
|
||||
|
||||
int debug = 0;
|
||||
isc_boolean_t nomerge = ISC_TRUE;
|
||||
#if CHECK_LOCAL
|
||||
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 |
|
||||
#else
|
||||
isc_boolean_t docheckmx = ISC_FALSE;
|
||||
isc_boolean_t dochecksrv = ISC_FALSE;
|
||||
isc_boolean_t docheckns = ISC_FALSE;
|
||||
#endif
|
||||
unsigned int zone_options = DNS_ZONEOPT_CHECKNS |
|
||||
DNS_ZONEOPT_CHECKMX |
|
||||
DNS_ZONEOPT_MANYERRORS |
|
||||
DNS_ZONEOPT_CHECKNAMES |
|
||||
DNS_ZONEOPT_CHECKINTEGRITY |
|
||||
#if CHECK_SIBLING
|
||||
DNS_ZONEOPT_CHECKSIBLING |
|
||||
#endif
|
||||
DNS_ZONEOPT_CHECKWILDCARD |
|
||||
DNS_ZONEOPT_WARNMXCNAME |
|
||||
DNS_ZONEOPT_WARNSRVCNAME;
|
||||
@@ -88,6 +105,7 @@ static isc_logcategory_t categories[] = {
|
||||
{ "queries", 0 },
|
||||
{ "unmatched", 0 },
|
||||
{ "update-security", 0 },
|
||||
{ "query-errors", 0 },
|
||||
{ NULL, 0 }
|
||||
};
|
||||
|
||||
@@ -125,7 +143,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) {
|
||||
@@ -139,7 +157,7 @@ checkns(dns_zone_t *zone, dns_name_t *name, dns_name_t *owner,
|
||||
cur->ai_next != NULL)
|
||||
cur = cur->ai_next;
|
||||
if (cur != NULL && cur->ai_canonname != NULL &&
|
||||
strcasecmp(ai->ai_canonname, namebuf) != 0) {
|
||||
strcasecmp(cur->ai_canonname, namebuf) != 0) {
|
||||
dns_zone_log(zone, ISC_LOG_ERROR,
|
||||
"%s/NS '%s' (out of zone) "
|
||||
"is a CNAME (illegal)",
|
||||
@@ -297,7 +315,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) {
|
||||
@@ -370,7 +388,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) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.\" Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: named-checkconf.8,v 1.16.18.13 2007/06/20 02:26:58 marka Exp $
|
||||
.\" $Id: named-checkconf.8,v 1.16.18.14 2009/07/11 01:31:43 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
||||
+16
-21
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: named-checkconf.c,v 1.28.18.14 2006/02/28 03:10:47 marka Exp $ */
|
||||
/* $Id: named-checkconf.c,v 1.28.18.18 2009/02/16 23:46:03 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -59,9 +59,9 @@ isc_log_t *logc = NULL;
|
||||
/*% usage */
|
||||
static void
|
||||
usage(void) {
|
||||
fprintf(stderr, "usage: named-checkconf [-j] [-v] [-z] [-t directory] "
|
||||
fprintf(stderr, "usage: named-checkconf [-j] [-v] [-z] [-t directory] "
|
||||
"[named.conf]\n");
|
||||
exit(1);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/*% directory callback */
|
||||
@@ -171,9 +171,9 @@ configure_zone(const char *vclass, const char *view,
|
||||
|
||||
zname = cfg_obj_asstring(cfg_tuple_get(zconfig, "name"));
|
||||
classobj = cfg_tuple_get(zconfig, "class");
|
||||
if (!cfg_obj_isstring(classobj))
|
||||
zclass = vclass;
|
||||
else
|
||||
if (!cfg_obj_isstring(classobj))
|
||||
zclass = vclass;
|
||||
else
|
||||
zclass = cfg_obj_asstring(classobj);
|
||||
|
||||
zoptions = cfg_tuple_get(zconfig, "options");
|
||||
@@ -192,9 +192,9 @@ configure_zone(const char *vclass, const char *view,
|
||||
return (ISC_R_FAILURE);
|
||||
if (strcasecmp(cfg_obj_asstring(typeobj), "master") != 0)
|
||||
return (ISC_R_SUCCESS);
|
||||
cfg_map_get(zoptions, "database", &dbobj);
|
||||
if (dbobj != NULL)
|
||||
return (ISC_R_SUCCESS);
|
||||
cfg_map_get(zoptions, "database", &dbobj);
|
||||
if (dbobj != NULL)
|
||||
return (ISC_R_SUCCESS);
|
||||
cfg_map_get(zoptions, "file", &fileobj);
|
||||
if (fileobj == NULL)
|
||||
return (ISC_R_FAILURE);
|
||||
@@ -224,7 +224,8 @@ 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)) {
|
||||
@@ -284,8 +285,8 @@ configure_zone(const char *vclass, const char *view,
|
||||
} else
|
||||
INSIST(0);
|
||||
} else {
|
||||
zone_options |= DNS_ZONEOPT_CHECKNAMES;
|
||||
zone_options |= DNS_ZONEOPT_CHECKNAMESFAIL;
|
||||
zone_options |= DNS_ZONEOPT_CHECKNAMES;
|
||||
zone_options |= DNS_ZONEOPT_CHECKNAMESFAIL;
|
||||
}
|
||||
|
||||
masterformat = dns_masterformat_text;
|
||||
@@ -396,7 +397,7 @@ main(int argc, char **argv) {
|
||||
int exit_status = 0;
|
||||
isc_entropy_t *ectx = NULL;
|
||||
isc_boolean_t load_zones = ISC_FALSE;
|
||||
|
||||
|
||||
while ((c = isc_commandline_parse(argc, argv, "djt:vz")) != EOF) {
|
||||
switch (c) {
|
||||
case 'd':
|
||||
@@ -414,12 +415,6 @@ main(int argc, char **argv) {
|
||||
isc_result_totext(result));
|
||||
exit(1);
|
||||
}
|
||||
result = isc_dir_chdir("/");
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
fprintf(stderr, "isc_dir_chdir: %s\n",
|
||||
isc_result_totext(result));
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'v':
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
- Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: named-checkconf.html,v 1.9.18.20 2007/06/20 02:26:58 marka Exp $ -->
|
||||
<!-- $Id: named-checkconf.html,v 1.9.18.21 2009/07/11 01:31:43 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.\" Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: named-checkzone.8,v 1.18.18.23 2007/06/20 02:26:58 marka Exp $
|
||||
.\" $Id: named-checkzone.8,v 1.18.18.25 2009/07/11 01:31:43 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -77,7 +77,7 @@ When loading the zone file read the journal if it exists.
|
||||
.PP
|
||||
\-c \fIclass\fR
|
||||
.RS 4
|
||||
Specify the class of the zone. If not specified "IN" is assumed.
|
||||
Specify the class of the zone. If not specified, "IN" is assumed.
|
||||
.RE
|
||||
.PP
|
||||
\-i \fImode\fR
|
||||
@@ -263,7 +263,7 @@ BIND 9 Administrator Reference Manual.
|
||||
.PP
|
||||
Internet Systems Consortium
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004\-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004\-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
Copyright \(co 2000\-2002 Internet Software Consortium.
|
||||
.br
|
||||
|
||||
+12
-13
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: named-checkzone.c,v 1.29.18.19 2007/08/28 07:19:55 tbox Exp $ */
|
||||
/* $Id: named-checkzone.c,v 1.29.18.24 2009/05/29 02:19:20 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -77,8 +77,9 @@ usage(void) {
|
||||
"[-f inputformat] [-F outputformat] "
|
||||
"[-t directory] [-w directory] [-k (ignore|warn|fail)] "
|
||||
"[-n (ignore|warn|fail)] [-m (ignore|warn|fail)] "
|
||||
"[-i (full|local|none)] [-M (ignore|warn|fail)] "
|
||||
"[-S (ignore|warn|fail)] [-W (ignore|warn)] "
|
||||
"[-i (full|full-sibling|local|local-sibling|none)] "
|
||||
"[-M (ignore|warn|fail)] [-S (ignore|warn|fail)] "
|
||||
"[-W (ignore|warn)] "
|
||||
"zonename filename\n", prog_name);
|
||||
exit(1);
|
||||
}
|
||||
@@ -121,9 +122,13 @@ main(int argc, char **argv) {
|
||||
*/
|
||||
if (strncmp(prog_name, "lt-", 3) == 0)
|
||||
prog_name += 3;
|
||||
if (strcmp(prog_name, "named-checkzone") == 0)
|
||||
|
||||
#define PROGCMP(X) \
|
||||
(strcasecmp(prog_name, X) == 0 || strcasecmp(prog_name, X ".exe") == 0)
|
||||
|
||||
if (PROGCMP("named-checkzone"))
|
||||
progmode = progmode_check;
|
||||
else if (strcmp(prog_name, "named-compilezone") == 0)
|
||||
else if (PROGCMP("named-compilezone"))
|
||||
progmode = progmode_compile;
|
||||
else
|
||||
INSIST(0);
|
||||
@@ -227,7 +232,7 @@ main(int argc, char **argv) {
|
||||
zone_options &= ~DNS_ZONEOPT_FATALNS;
|
||||
} else if (ARGCMP("fail")) {
|
||||
zone_options |= DNS_ZONEOPT_CHECKNS|
|
||||
DNS_ZONEOPT_FATALNS;
|
||||
DNS_ZONEOPT_FATALNS;
|
||||
} else {
|
||||
fprintf(stderr, "invalid argument to -n: %s\n",
|
||||
isc_commandline_argument);
|
||||
@@ -264,12 +269,6 @@ main(int argc, char **argv) {
|
||||
isc_result_totext(result));
|
||||
exit(1);
|
||||
}
|
||||
result = isc_dir_chdir("/");
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
fprintf(stderr, "isc_dir_chdir: %s\n",
|
||||
isc_result_totext(result));
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
|
||||
case 's':
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: named-checkzone.docbook,v 1.11.18.21 2007/08/28 07:19:55 tbox Exp $ -->
|
||||
<!-- $Id: named-checkzone.docbook,v 1.11.18.23 2009/01/22 23:45:59 tbox Exp $ -->
|
||||
<refentry id="man.named-checkzone">
|
||||
<refentryinfo>
|
||||
<date>June 13, 2000</date>
|
||||
@@ -36,6 +36,7 @@
|
||||
<year>2005</year>
|
||||
<year>2006</year>
|
||||
<year>2007</year>
|
||||
<year>2009</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -168,7 +169,7 @@
|
||||
<term>-c <replaceable class="parameter">class</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specify the class of the zone. If not specified "IN" is assumed.
|
||||
Specify the class of the zone. If not specified, "IN" is assumed.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: named-checkzone.html,v 1.11.18.30 2007/06/20 02:26:58 marka Exp $ -->
|
||||
<!-- $Id: named-checkzone.html,v 1.11.18.32 2009/07/11 01:31:43 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -33,7 +33,7 @@
|
||||
<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="id2543665"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543668"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">named-checkzone</strong></span>
|
||||
checks the syntax and integrity of a zone file. It performs the
|
||||
same checks as <span><strong class="command">named</strong></span> does when loading a
|
||||
@@ -53,7 +53,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543700"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543703"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-d</span></dt>
|
||||
<dd><p>
|
||||
@@ -74,7 +74,7 @@
|
||||
</p></dd>
|
||||
<dt><span class="term">-c <em class="replaceable"><code>class</code></em></span></dt>
|
||||
<dd><p>
|
||||
Specify the class of the zone. If not specified "IN" is assumed.
|
||||
Specify the class of the zone. If not specified, "IN" is assumed.
|
||||
</p></dd>
|
||||
<dt><span class="term">-i <em class="replaceable"><code>mode</code></em></span></dt>
|
||||
<dd>
|
||||
@@ -233,14 +233,14 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544299"></a><h2>RETURN VALUES</h2>
|
||||
<a name="id2544302"></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="id2544311"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2544314"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named-checkconf</span>(8)</span>,
|
||||
<em class="citetitle">RFC 1035</em>,
|
||||
@@ -248,7 +248,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544344"></a><h2>AUTHOR</h2>
|
||||
<a name="id2544347"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
+16
-10
@@ -1,7 +1,7 @@
|
||||
.\" Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: dig.1,v 1.23.18.22 2007/05/16 06:11:27 marka Exp $
|
||||
.\" $Id: dig.1,v 1.23.18.27 2009/07/11 01:31:43 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -33,7 +33,7 @@
|
||||
dig \- DNS lookup utility
|
||||
.SH "SYNOPSIS"
|
||||
.HP 4
|
||||
\fBdig\fR [@server] [\fB\-b\ \fR\fB\fIaddress\fR\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-f\ \fR\fB\fIfilename\fR\fR] [\fB\-k\ \fR\fB\fIfilename\fR\fR] [\fB\-p\ \fR\fB\fIport#\fR\fR] [\fB\-q\ \fR\fB\fIname\fR\fR] [\fB\-t\ \fR\fB\fItype\fR\fR] [\fB\-x\ \fR\fB\fIaddr\fR\fR] [\fB\-y\ \fR\fB\fI[hmac:]\fR\fIname:key\fR\fR] [\fB\-4\fR] [\fB\-6\fR] [name] [type] [class] [queryopt...]
|
||||
\fBdig\fR [@server] [\fB\-b\ \fR\fB\fIaddress\fR\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-f\ \fR\fB\fIfilename\fR\fR] [\fB\-k\ \fR\fB\fIfilename\fR\fR] [\fB\-m\fR] [\fB\-p\ \fR\fB\fIport#\fR\fR] [\fB\-q\ \fR\fB\fIname\fR\fR] [\fB\-t\ \fR\fB\fItype\fR\fR] [\fB\-x\ \fR\fB\fIaddr\fR\fR] [\fB\-y\ \fR\fB\fI[hmac:]\fR\fIname:key\fR\fR] [\fB\-4\fR] [\fB\-6\fR] [name] [type] [class] [queryopt...]
|
||||
.HP 4
|
||||
\fBdig\fR [\fB\-h\fR]
|
||||
.HP 4
|
||||
@@ -59,7 +59,9 @@ Unless it is told to query a specific name server,
|
||||
will try each of the servers listed in
|
||||
\fI/etc/resolv.conf\fR.
|
||||
.PP
|
||||
When no command line arguments or options are given, will perform an NS query for "." (the root).
|
||||
When no command line arguments or options are given,
|
||||
\fBdig\fR
|
||||
will perform an NS query for "." (the root).
|
||||
.PP
|
||||
It is possible to set per\-user defaults for
|
||||
\fBdig\fR
|
||||
@@ -70,9 +72,9 @@ The IN and CH class names overlap with the IN and CH top level domains names. Ei
|
||||
\fB\-t\fR
|
||||
and
|
||||
\fB\-c\fR
|
||||
options to specify the type and class or use the
|
||||
options to specify the type and class, use the
|
||||
\fB\-q\fR
|
||||
the specify the domain name or use "IN." and "CH." when looking up these top level domains.
|
||||
the specify the domain name, or use "IN." and "CH." when looking up these top level domains.
|
||||
.SH "SIMPLE USAGE"
|
||||
.PP
|
||||
A typical invocation of
|
||||
@@ -139,6 +141,10 @@ operate in batch mode by reading a list of lookup requests to process from the f
|
||||
\fBdig\fR
|
||||
using the command\-line interface.
|
||||
.PP
|
||||
The
|
||||
\fB\-m\fR
|
||||
option enables memory usage debugging.
|
||||
.PP
|
||||
If a non\-standard port number is to be queried, the
|
||||
\fB\-p\fR
|
||||
option is used.
|
||||
@@ -285,7 +291,7 @@ A synonym for
|
||||
.PP
|
||||
\fB+[no]adflag\fR
|
||||
.RS 4
|
||||
Set [do not set] the AD (authentic data) bit in the query. The AD bit currently has a standard meaning only in responses, not in queries, but the ability to set the bit in the query is provided for completeness.
|
||||
Set [do not set] the AD (authentic data) bit in the query. This requests the server to return whether all of the answer and authority sections have all been validated as secure according to the security policy of the server. AD=1 indicates that all records have been validated as secure and the answer is not from a OPT\-OUT range. AD=0 indicate that some part of the answer was insecure or not validated.
|
||||
.RE
|
||||
.PP
|
||||
\fB+[no]cdflag\fR
|
||||
@@ -474,7 +480,7 @@ Chase DNSSEC signature chains. Requires dig be compiled with \-DDIG_SIGCHASE.
|
||||
Specifies a file containing trusted keys to be used with
|
||||
\fB+sigchase\fR. Each DNSKEY record must be on its own line.
|
||||
.sp
|
||||
If not specified
|
||||
If not specified,
|
||||
\fBdig\fR
|
||||
will look for
|
||||
\fI/etc/trusted\-key.key\fR
|
||||
@@ -551,7 +557,7 @@ RFC1035.
|
||||
.PP
|
||||
There are probably too many query options.
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004\-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004\-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
Copyright \(co 2000\-2003 Internet Software Consortium.
|
||||
.br
|
||||
|
||||
+62
-35
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dig.c,v 1.186.18.29 2007/08/28 07:19:55 tbox Exp $ */
|
||||
/* $Id: dig.c,v 1.186.18.37 2009/05/06 10:21:00 fdupont 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); \
|
||||
}
|
||||
@@ -71,7 +71,7 @@ static isc_boolean_t short_form = ISC_FALSE, printcmd = ISC_TRUE,
|
||||
multiline = ISC_FALSE, nottl = ISC_FALSE, noclass = ISC_FALSE;
|
||||
|
||||
/*% opcode text */
|
||||
static const char *opcodetext[] = {
|
||||
static const char * const opcodetext[] = {
|
||||
"QUERY",
|
||||
"IQUERY",
|
||||
"STATUS",
|
||||
@@ -91,7 +91,7 @@ static const char *opcodetext[] = {
|
||||
};
|
||||
|
||||
/*% return code text */
|
||||
static const char *rcodetext[] = {
|
||||
static const char * const rcodetext[] = {
|
||||
"NOERROR",
|
||||
"FORMERR",
|
||||
"SERVFAIL",
|
||||
@@ -111,6 +111,24 @@ static const char *rcodetext[] = {
|
||||
"BADVERS"
|
||||
};
|
||||
|
||||
/*% safe rcodetext[] */
|
||||
static char *
|
||||
rcode_totext(dns_rcode_t rcode)
|
||||
{
|
||||
static char buf[sizeof("?65535")];
|
||||
union {
|
||||
const char *consttext;
|
||||
char *deconsttext;
|
||||
} totext;
|
||||
|
||||
if (rcode >= (sizeof(rcodetext)/sizeof(rcodetext[0]))) {
|
||||
snprintf(buf, sizeof(buf), "?%u", rcode);
|
||||
totext.deconsttext = buf;
|
||||
} else
|
||||
totext.consttext = rcodetext[rcode];
|
||||
return totext.deconsttext;
|
||||
}
|
||||
|
||||
/*% print usage */
|
||||
static void
|
||||
print_usage(FILE *fp) {
|
||||
@@ -144,8 +162,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 in-addr lookups)\n"
|
||||
" -i (IP6.INT reverse IPv6 lookups)\n"
|
||||
" -x dot-notation (shortcut for reverse lookups)\n"
|
||||
" -i (use IP6.INT for IPv6 reverse lookups)\n"
|
||||
" -f filename (batch mode)\n"
|
||||
" -b address[#port] (bind to source address/port)\n"
|
||||
" -p port (specify port number)\n"
|
||||
@@ -156,6 +174,7 @@ help(void) {
|
||||
" -y [hmac:]name:key (specify named base64 tsig key)\n"
|
||||
" -4 (use IPv4 query transport only)\n"
|
||||
" -6 (use IPv6 query transport only)\n"
|
||||
" -m (enable memory usage debugging)\n"
|
||||
" d-opt is of the form +keyword[=value], where keyword is:\n"
|
||||
" +[no]vc (TCP mode)\n"
|
||||
" +[no]tcp (TCP mode, alternate syntax)\n"
|
||||
@@ -383,7 +402,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");
|
||||
@@ -392,7 +411,7 @@ printrdataset(dns_name_t *owner_name, dns_rdataset_t *rdataset,
|
||||
|
||||
if (style != NULL)
|
||||
dns_master_styledestroy(&style, mctx);
|
||||
|
||||
|
||||
return(result);
|
||||
}
|
||||
#endif
|
||||
@@ -429,7 +448,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");
|
||||
@@ -467,7 +486,8 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
|
||||
if (headers) {
|
||||
printf(";; ->>HEADER<<- opcode: %s, status: %s, "
|
||||
"id: %u\n",
|
||||
opcodetext[msg->opcode], rcodetext[msg->rcode],
|
||||
opcodetext[msg->opcode],
|
||||
rcode_totext(msg->rcode),
|
||||
msg->id);
|
||||
printf(";; flags:");
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_QR) != 0)
|
||||
@@ -638,7 +658,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" : "");
|
||||
@@ -716,7 +736,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");
|
||||
@@ -799,15 +819,17 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
switch (cmd[1]) {
|
||||
case 'e': /* defname */
|
||||
FULLCHECK("defname");
|
||||
usesearch = state;
|
||||
if (!lookup->trace) {
|
||||
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;
|
||||
@@ -841,7 +863,7 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
lookup->identify = state;
|
||||
break;
|
||||
case 'g': /* ignore */
|
||||
default: /* Inherets default for compatibility */
|
||||
default: /* Inherits default for compatibility */
|
||||
FULLCHECK("ignore");
|
||||
lookup->ignore = ISC_TRUE;
|
||||
}
|
||||
@@ -881,7 +903,7 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
goto invalid_option;
|
||||
}
|
||||
break;
|
||||
case 'q':
|
||||
case 'q':
|
||||
switch (cmd[1]) {
|
||||
case 'r': /* qr */
|
||||
FULLCHECK("qr");
|
||||
@@ -927,7 +949,9 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
switch (cmd[1]) {
|
||||
case 'e': /* search */
|
||||
FULLCHECK("search");
|
||||
usesearch = state;
|
||||
if (!lookup->trace) {
|
||||
usesearch = state;
|
||||
}
|
||||
break;
|
||||
case 'h':
|
||||
if (cmd[2] != 'o')
|
||||
@@ -948,8 +972,10 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
break;
|
||||
case 'w': /* showsearch */
|
||||
FULLCHECK("showsearch");
|
||||
showsearch = state;
|
||||
usesearch = state;
|
||||
if (!lookup->trace) {
|
||||
showsearch = state;
|
||||
usesearch = state;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
goto invalid_option;
|
||||
@@ -957,11 +983,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");
|
||||
@@ -989,7 +1015,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;
|
||||
@@ -1008,6 +1034,7 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
lookup->section_additional = ISC_FALSE;
|
||||
lookup->section_authority = ISC_TRUE;
|
||||
lookup->section_question = ISC_FALSE;
|
||||
usesearch = ISC_FALSE;
|
||||
}
|
||||
break;
|
||||
case 'i': /* tries */
|
||||
@@ -1024,7 +1051,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;
|
||||
@@ -1158,7 +1185,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
|
||||
@@ -1211,7 +1238,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 ||
|
||||
@@ -1250,7 +1277,7 @@ 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;
|
||||
} else {
|
||||
@@ -1276,7 +1303,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;
|
||||
@@ -1425,7 +1452,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));
|
||||
@@ -1487,7 +1514,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");
|
||||
}
|
||||
@@ -1567,7 +1594,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;
|
||||
@@ -1588,8 +1615,8 @@ 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;
|
||||
@@ -1624,7 +1651,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 ||
|
||||
|
||||
+29
-18
@@ -2,7 +2,7 @@
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dig.docbook,v 1.17.18.21 2007/08/28 07:19:55 tbox Exp $ -->
|
||||
<!-- $Id: dig.docbook,v 1.17.18.27 2009/02/02 04:45:22 marka Exp $ -->
|
||||
<refentry id="man.dig">
|
||||
|
||||
<refentryinfo>
|
||||
@@ -42,6 +42,8 @@
|
||||
<year>2005</year>
|
||||
<year>2006</year>
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<year>2009</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -61,6 +63,7 @@
|
||||
<arg><option>-c <replaceable class="parameter">class</replaceable></option></arg>
|
||||
<arg><option>-f <replaceable class="parameter">filename</replaceable></option></arg>
|
||||
<arg><option>-k <replaceable class="parameter">filename</replaceable></option></arg>
|
||||
<arg><option>-m</option></arg>
|
||||
<arg><option>-p <replaceable class="parameter">port#</replaceable></option></arg>
|
||||
<arg><option>-q <replaceable class="parameter">name</replaceable></option></arg>
|
||||
<arg><option>-t <replaceable class="parameter">type</replaceable></option></arg>
|
||||
@@ -118,8 +121,8 @@
|
||||
</para>
|
||||
|
||||
<para>
|
||||
When no command line arguments or options are given, will perform an
|
||||
NS query for "." (the root).
|
||||
When no command line arguments or options are given,
|
||||
<command>dig</command> will perform an NS query for "." (the root).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -132,8 +135,8 @@
|
||||
<para>
|
||||
The IN and CH class names overlap with the IN and CH top level
|
||||
domains names. Either use the <option>-t</option> and
|
||||
<option>-c</option> options to specify the type and class or
|
||||
use the <option>-q</option> the specify the domain name or
|
||||
<option>-c</option> options to specify the type and class,
|
||||
use the <option>-q</option> the specify the domain name, or
|
||||
use "IN." and "CH." when looking up these top level domains.
|
||||
</para>
|
||||
|
||||
@@ -230,6 +233,12 @@
|
||||
<command>dig</command> using the command-line interface.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <option>-m</option> option enables memory usage debugging.
|
||||
<!-- It enables ISC_MEM_DEBUGTRACE and ISC_MEM_DEBUGRECORD
|
||||
documented in include/isc/mem.h -->
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If a non-standard port number is to be queried, the
|
||||
<option>-p</option> option is used. <parameter>port#</parameter> is
|
||||
@@ -441,17 +450,19 @@
|
||||
|
||||
<varlistentry>
|
||||
<term><option>+[no]adflag</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Set [do not set] the AD (authentic data) bit in the query. The
|
||||
AD bit
|
||||
currently has a standard meaning only in responses, not in
|
||||
queries,
|
||||
but the ability to set the bit in the query is provided for
|
||||
completeness.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<listitem>
|
||||
<para>
|
||||
Set [do not set] the AD (authentic data) bit in the
|
||||
query. This requests the server to return whether
|
||||
all of the answer and authority sections have all
|
||||
been validated as secure according to the security
|
||||
policy of the server. AD=1 indicates that all records
|
||||
have been validated as secure and the answer is not
|
||||
from a OPT-OUT range. AD=0 indicate that some part
|
||||
of the answer was insecure or not validated.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>+[no]cdflag</option></term>
|
||||
@@ -808,7 +819,7 @@
|
||||
on its own line.
|
||||
</para>
|
||||
<para>
|
||||
If not specified <command>dig</command> will look for
|
||||
If not specified, <command>dig</command> will look for
|
||||
<filename>/etc/trusted-key.key</filename> then
|
||||
<filename>trusted-key.key</filename> in the current directory.
|
||||
</para>
|
||||
|
||||
+31
-25
@@ -1,8 +1,8 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: dig.html,v 1.13.18.28 2007/05/16 06:11:27 marka Exp $ -->
|
||||
<!-- $Id: dig.html,v 1.13.18.33 2009/07/11 01:31:44 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -29,12 +29,12 @@
|
||||
</div>
|
||||
<div class="refsynopsisdiv">
|
||||
<h2>Synopsis</h2>
|
||||
<div class="cmdsynopsis"><p><code class="command">dig</code> [@server] [<code class="option">-b <em class="replaceable"><code>address</code></em></code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-f <em class="replaceable"><code>filename</code></em></code>] [<code class="option">-k <em class="replaceable"><code>filename</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port#</code></em></code>] [<code class="option">-q <em class="replaceable"><code>name</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-x <em class="replaceable"><code>addr</code></em></code>] [<code class="option">-y <em class="replaceable"><code>[<span class="optional">hmac:</span>]name:key</code></em></code>] [<code class="option">-4</code>] [<code class="option">-6</code>] [name] [type] [class] [queryopt...]</p></div>
|
||||
<div class="cmdsynopsis"><p><code class="command">dig</code> [@server] [<code class="option">-b <em class="replaceable"><code>address</code></em></code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-f <em class="replaceable"><code>filename</code></em></code>] [<code class="option">-k <em class="replaceable"><code>filename</code></em></code>] [<code class="option">-m</code>] [<code class="option">-p <em class="replaceable"><code>port#</code></em></code>] [<code class="option">-q <em class="replaceable"><code>name</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-x <em class="replaceable"><code>addr</code></em></code>] [<code class="option">-y <em class="replaceable"><code>[<span class="optional">hmac:</span>]name:key</code></em></code>] [<code class="option">-4</code>] [<code class="option">-6</code>] [name] [type] [class] [queryopt...]</p></div>
|
||||
<div class="cmdsynopsis"><p><code class="command">dig</code> [<code class="option">-h</code>]</p></div>
|
||||
<div class="cmdsynopsis"><p><code class="command">dig</code> [global-queryopt...] [query...]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543508"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543518"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">dig</strong></span>
|
||||
(domain information groper) is a flexible tool
|
||||
for interrogating DNS name servers. It performs DNS lookups and
|
||||
@@ -62,8 +62,8 @@
|
||||
<code class="filename">/etc/resolv.conf</code>.
|
||||
</p>
|
||||
<p>
|
||||
When no command line arguments or options are given, will perform an
|
||||
NS query for "." (the root).
|
||||
When no command line arguments or options are given,
|
||||
<span><strong class="command">dig</strong></span> will perform an NS query for "." (the root).
|
||||
</p>
|
||||
<p>
|
||||
It is possible to set per-user defaults for <span><strong class="command">dig</strong></span> via
|
||||
@@ -74,13 +74,13 @@
|
||||
<p>
|
||||
The IN and CH class names overlap with the IN and CH top level
|
||||
domains names. Either use the <code class="option">-t</code> and
|
||||
<code class="option">-c</code> options to specify the type and class or
|
||||
use the <code class="option">-q</code> the specify the domain name or
|
||||
<code class="option">-c</code> options to specify the type and class,
|
||||
use the <code class="option">-q</code> the specify the domain name, or
|
||||
use "IN." and "CH." when looking up these top level domains.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543577"></a><h2>SIMPLE USAGE</h2>
|
||||
<a name="id2543592"></a><h2>SIMPLE USAGE</h2>
|
||||
<p>
|
||||
A typical invocation of <span><strong class="command">dig</strong></span> looks like:
|
||||
</p>
|
||||
@@ -126,7 +126,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543668"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543683"></a><h2>OPTIONS</h2>
|
||||
<p>
|
||||
The <code class="option">-b</code> option sets the source IP address of the query
|
||||
to <em class="parameter"><code>address</code></em>. This must be a valid
|
||||
@@ -151,6 +151,10 @@
|
||||
the same way they would be presented as queries to
|
||||
<span><strong class="command">dig</strong></span> using the command-line interface.
|
||||
</p>
|
||||
<p>
|
||||
The <code class="option">-m</code> option enables memory usage debugging.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
If a non-standard port number is to be queried, the
|
||||
<code class="option">-p</code> option is used. <em class="parameter"><code>port#</code></em> is
|
||||
@@ -226,7 +230,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543939"></a><h2>QUERY OPTIONS</h2>
|
||||
<a name="id2544032"></a><h2>QUERY OPTIONS</h2>
|
||||
<p><span><strong class="command">dig</strong></span>
|
||||
provides a number of query options which affect
|
||||
the way in which lookups are made and the results displayed. Some of
|
||||
@@ -304,13 +308,15 @@
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="option">+[no]adflag</code></span></dt>
|
||||
<dd><p>
|
||||
Set [do not set] the AD (authentic data) bit in the query. The
|
||||
AD bit
|
||||
currently has a standard meaning only in responses, not in
|
||||
queries,
|
||||
but the ability to set the bit in the query is provided for
|
||||
completeness.
|
||||
</p></dd>
|
||||
Set [do not set] the AD (authentic data) bit in the
|
||||
query. This requests the server to return whether
|
||||
all of the answer and authority sections have all
|
||||
been validated as secure according to the security
|
||||
policy of the server. AD=1 indicates that all records
|
||||
have been validated as secure and the answer is not
|
||||
from a OPT-OUT range. AD=0 indicate that some part
|
||||
of the answer was insecure or not validated.
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="option">+[no]cdflag</code></span></dt>
|
||||
<dd><p>
|
||||
Set [do not set] the CD (checking disabled) bit in the query.
|
||||
@@ -525,7 +531,7 @@
|
||||
on its own line.
|
||||
</p>
|
||||
<p>
|
||||
If not specified <span><strong class="command">dig</strong></span> will look for
|
||||
If not specified, <span><strong class="command">dig</strong></span> will look for
|
||||
<code class="filename">/etc/trusted-key.key</code> then
|
||||
<code class="filename">trusted-key.key</code> in the current directory.
|
||||
</p>
|
||||
@@ -545,7 +551,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545128"></a><h2>MULTIPLE QUERIES</h2>
|
||||
<a name="id2545153"></a><h2>MULTIPLE QUERIES</h2>
|
||||
<p>
|
||||
The BIND 9 implementation of <span><strong class="command">dig </strong></span>
|
||||
supports
|
||||
@@ -591,7 +597,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="id2545258"></a><h2>IDN SUPPORT</h2>
|
||||
<a name="id2545214"></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.
|
||||
@@ -605,14 +611,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="id2545281"></a><h2>FILES</h2>
|
||||
<a name="id2545237"></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="id2545298"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2545322"></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>,
|
||||
@@ -620,7 +626,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="id2545335"></a><h2>BUGS</h2>
|
||||
<a name="id2545360"></a><h2>BUGS</h2>
|
||||
<p>
|
||||
There are probably too many query options.
|
||||
</p>
|
||||
|
||||
+267
-162
File diff suppressed because it is too large
Load Diff
+6
-6
@@ -1,7 +1,7 @@
|
||||
.\" Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2004, 2005, 2007-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: host.1,v 1.14.18.14 2007/05/09 03:33:12 marka Exp $
|
||||
.\" $Id: host.1,v 1.14.18.18 2009/07/11 01:31:44 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -132,7 +132,7 @@ option enables
|
||||
\fBhost\fR
|
||||
to mimic the behavior of a name server by making non\-recursive queries and expecting to receive answers to those queries that are usually referrals to other name servers.
|
||||
.PP
|
||||
By default
|
||||
By default,
|
||||
\fBhost\fR
|
||||
uses UDP when making queries. The
|
||||
\fB\-T\fR
|
||||
@@ -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 records, but if the
|
||||
automatically selects an appropriate query type. By default, it looks for A, AAAA, and MX 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 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004, 2005, 2007\-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
Copyright \(co 2000\-2002 Internet Software Consortium.
|
||||
.br
|
||||
|
||||
+28
-12
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: host.c,v 1.94.18.19 2007/08/28 07:19:55 tbox Exp $ */
|
||||
/* $Id: host.c,v 1.94.18.22 2009/09/08 23:29:03 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -124,6 +124,23 @@ struct rtype rtypes[] = {
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static char *
|
||||
rcode_totext(dns_rcode_t rcode)
|
||||
{
|
||||
static char buf[sizeof("?65535")];
|
||||
union {
|
||||
const char *consttext;
|
||||
char *deconsttext;
|
||||
} totext;
|
||||
|
||||
if (rcode >= (sizeof(rcodetext)/sizeof(rcodetext[0]))) {
|
||||
snprintf(buf, sizeof(buf), "?%u", rcode);
|
||||
totext.deconsttext = buf;
|
||||
} else
|
||||
totext.consttext = rcodetext[rcode];
|
||||
return totext.deconsttext;
|
||||
}
|
||||
|
||||
static void
|
||||
show_usage(void) {
|
||||
fputs(
|
||||
@@ -270,10 +287,10 @@ printsection(dns_message_t *msg, dns_section_t sectionid,
|
||||
if (query->lookup->rdtype == dns_rdatatype_axfr &&
|
||||
!((!list_addresses &&
|
||||
(list_type == dns_rdatatype_any ||
|
||||
rdataset->type == list_type)) ||
|
||||
rdataset->type == list_type)) ||
|
||||
(list_addresses &&
|
||||
(rdataset->type == dns_rdatatype_a ||
|
||||
rdataset->type == dns_rdatatype_aaaa ||
|
||||
rdataset->type == dns_rdatatype_aaaa ||
|
||||
rdataset->type == dns_rdatatype_ns ||
|
||||
rdataset->type == dns_rdatatype_ptr))))
|
||||
continue;
|
||||
@@ -377,7 +394,7 @@ chase_cnamechain(dns_message_t *msg, dns_name_t *qname) {
|
||||
dns_rdata_t rdata = DNS_RDATA_INIT;
|
||||
unsigned int i = msg->counts[DNS_SECTION_ANSWER];
|
||||
|
||||
while (i-- > 0) {
|
||||
while (i-- > 0) {
|
||||
rdataset = NULL;
|
||||
result = dns_message_findname(msg, DNS_SECTION_ANSWER, qname,
|
||||
dns_rdatatype_cname, 0, NULL,
|
||||
@@ -429,7 +446,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
|
||||
printf("Host %s not found: %d(%s)\n",
|
||||
(msg->rcode != dns_rcode_nxdomain) ? namestr :
|
||||
query->lookup->textname, msg->rcode,
|
||||
rcodetext[msg->rcode]);
|
||||
rcode_totext(msg->rcode));
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
@@ -451,7 +468,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
|
||||
sizeof(lookup->textname));
|
||||
lookup->textname[sizeof(lookup->textname)-1] = 0;
|
||||
lookup->rdtype = dns_rdatatype_aaaa;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
lookup->origin = NULL;
|
||||
lookup->retries = tries;
|
||||
ISC_LIST_APPEND(lookup_list, lookup, link);
|
||||
@@ -462,7 +479,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
|
||||
sizeof(lookup->textname));
|
||||
lookup->textname[sizeof(lookup->textname)-1] = 0;
|
||||
lookup->rdtype = dns_rdatatype_mx;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
lookup->origin = NULL;
|
||||
lookup->retries = tries;
|
||||
ISC_LIST_APPEND(lookup_list, lookup, link);
|
||||
@@ -471,7 +488,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
|
||||
|
||||
if (!short_form) {
|
||||
printf(";; ->>HEADER<<- opcode: %s, status: %s, id: %u\n",
|
||||
opcodetext[msg->opcode], rcodetext[msg->rcode],
|
||||
opcodetext[msg->opcode], rcode_totext(msg->rcode),
|
||||
msg->id);
|
||||
printf(";; flags: ");
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_QR) != 0) {
|
||||
@@ -821,11 +838,10 @@ parse_args(isc_boolean_t is_batchfile, int argc, char **argv) {
|
||||
} else {
|
||||
strncpy(lookup->textname, hostname, sizeof(lookup->textname));
|
||||
lookup->textname[sizeof(lookup->textname)-1]=0;
|
||||
usesearch = ISC_TRUE;
|
||||
}
|
||||
lookup->new_search = ISC_TRUE;
|
||||
ISC_LIST_APPEND(lookup_list, lookup, link);
|
||||
|
||||
usesearch = ISC_TRUE;
|
||||
}
|
||||
|
||||
int
|
||||
@@ -837,7 +853,7 @@ main(int argc, char **argv) {
|
||||
ISC_LIST_INIT(lookup_list);
|
||||
ISC_LIST_INIT(server_list);
|
||||
ISC_LIST_INIT(search_list);
|
||||
|
||||
|
||||
fatalexit = 1;
|
||||
#ifdef WITH_IDN
|
||||
idnoptions = IDN_ASCCHECK;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004, 2005, 2007-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: host.docbook,v 1.5.18.11 2007/08/28 07:19:55 tbox Exp $ -->
|
||||
<!-- $Id: host.docbook,v 1.5.18.15 2009/01/22 23:46:00 tbox Exp $ -->
|
||||
<refentry id="man.host">
|
||||
|
||||
<refentryinfo>
|
||||
@@ -41,6 +41,8 @@
|
||||
<year>2004</year>
|
||||
<year>2005</year>
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<year>2009</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -179,7 +181,7 @@
|
||||
</para>
|
||||
|
||||
<para>
|
||||
By default <command>host</command> uses UDP when making
|
||||
By default, <command>host</command> uses UDP when making
|
||||
queries. The
|
||||
<option>-T</option> option makes it use a TCP connection when querying
|
||||
the name server. TCP will be automatically selected for queries that
|
||||
@@ -199,7 +201,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 records, but if the
|
||||
type. By default, it looks for A, AAAA, and MX 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
|
||||
|
||||
+9
-9
@@ -1,8 +1,8 @@
|
||||
<!--
|
||||
- Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004, 2005, 2007-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: host.html,v 1.7.18.20 2007/05/09 03:33:12 marka Exp $ -->
|
||||
<!-- $Id: host.html,v 1.7.18.24 2009/07/11 01:31:44 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -32,7 +32,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">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="id2543428"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543434"></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.
|
||||
@@ -130,7 +130,7 @@
|
||||
referrals to other name servers.
|
||||
</p>
|
||||
<p>
|
||||
By default <span><strong class="command">host</strong></span> uses UDP when making
|
||||
By default, <span><strong class="command">host</strong></span> uses UDP when making
|
||||
queries. The
|
||||
<code class="option">-T</code> option makes it use a TCP connection when querying
|
||||
the name server. TCP will be automatically selected for queries that
|
||||
@@ -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 records, but if the
|
||||
type. By default, it looks for A, AAAA, and MX 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="id2543725"></a><h2>IDN SUPPORT</h2>
|
||||
<a name="id2543800"></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="id2543748"></a><h2>FILES</h2>
|
||||
<a name="id2543822"></a><h2>FILES</h2>
|
||||
<p><code class="filename">/etc/resolv.conf</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543828"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2543834"></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>
|
||||
|
||||
+15
-15
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-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: dig.h,v 1.82.18.23 2007/08/28 07:19:55 tbox Exp $ */
|
||||
/* $Id: dig.h,v 1.82.18.25 2008/12/16 23:46:02 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 */
|
||||
@@ -133,23 +133,23 @@ struct dig_lookup {
|
||||
#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;
|
||||
@@ -231,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
|
||||
@@ -249,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;
|
||||
@@ -284,7 +284,7 @@ extern int idnoptions;
|
||||
/*
|
||||
* Routines in dighost.c.
|
||||
*/
|
||||
void
|
||||
isc_result_t
|
||||
get_address(char *host, in_port_t port, isc_sockaddr_t *sockaddr);
|
||||
|
||||
isc_result_t
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
.\" Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
@@ -12,7 +12,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: nslookup.1,v 1.1.10.14 2007/05/16 06:11:27 marka Exp $
|
||||
.\" $Id: nslookup.1,v 1.1.10.15 2009/07/11 01:31:44 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
||||
+34
-13
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: nslookup.c,v 1.101.18.15 2007/08/28 07:19:55 tbox Exp $ */
|
||||
/* $Id: nslookup.c,v 1.101.18.20 2009/05/06 23:45:59 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/event.h>
|
||||
#include <isc/parseint.h>
|
||||
#include <isc/print.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/timer.h>
|
||||
#include <isc/util.h>
|
||||
@@ -129,6 +130,23 @@ static const char *rtypetext[] = {
|
||||
static void flush_lookup_list(void);
|
||||
static void getinput(isc_task_t *task, isc_event_t *event);
|
||||
|
||||
static char *
|
||||
rcode_totext(dns_rcode_t rcode)
|
||||
{
|
||||
static char buf[sizeof("?65535")];
|
||||
union {
|
||||
const char *consttext;
|
||||
char *deconsttext;
|
||||
} totext;
|
||||
|
||||
if (rcode >= (sizeof(rcodetext)/sizeof(rcodetext[0]))) {
|
||||
snprintf(buf, sizeof(buf), "?%u", rcode);
|
||||
totext.deconsttext = buf;
|
||||
} else
|
||||
totext.consttext = rcodetext[rcode];
|
||||
return totext.deconsttext;
|
||||
}
|
||||
|
||||
void
|
||||
dighost_shutdown(void) {
|
||||
isc_event_t *event = global_event;
|
||||
@@ -385,14 +403,14 @@ trying(char *frm, dig_lookup_t *lookup) {
|
||||
|
||||
isc_result_t
|
||||
printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
|
||||
char servtext[ISC_SOCKADDR_FORMATSIZE];
|
||||
char servtext[ISC_SOCKADDR_FORMATSIZE];
|
||||
|
||||
debug("printmessage()");
|
||||
|
||||
isc_sockaddr_format(&query->sockaddr, servtext, sizeof(servtext));
|
||||
printf("Server:\t\t%s\n", query->userarg);
|
||||
printf("Address:\t%s\n", servtext);
|
||||
|
||||
|
||||
puts("");
|
||||
|
||||
if (!short_form) {
|
||||
@@ -412,7 +430,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
|
||||
nametext, sizeof(nametext));
|
||||
printf("** server can't find %s: %s\n",
|
||||
(msg->rcode != dns_rcode_nxdomain) ? nametext :
|
||||
query->lookup->textname, rcodetext[msg->rcode]);
|
||||
query->lookup->textname, rcode_totext(msg->rcode));
|
||||
debug("returning with rcode == 0");
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
@@ -441,13 +459,16 @@ show_settings(isc_boolean_t full, isc_boolean_t serv_only) {
|
||||
dig_server_t *srv;
|
||||
isc_sockaddr_t sockaddr;
|
||||
dig_searchlist_t *listent;
|
||||
isc_result_t result;
|
||||
|
||||
srv = ISC_LIST_HEAD(server_list);
|
||||
|
||||
while (srv != NULL) {
|
||||
char sockstr[ISC_SOCKADDR_FORMATSIZE];
|
||||
|
||||
get_address(srv->servername, port, &sockaddr);
|
||||
result = get_address(srv->servername, port, &sockaddr);
|
||||
check_result(result, "get_address");
|
||||
|
||||
isc_sockaddr_format(&sockaddr, sockstr, sizeof(sockstr));
|
||||
printf("Default server: %s\nAddress: %s\n",
|
||||
srv->userarg, sockstr);
|
||||
@@ -505,7 +526,7 @@ testclass(char *typetext) {
|
||||
tr.base = typetext;
|
||||
tr.length = strlen(typetext);
|
||||
result = dns_rdataclass_fromtext(&rdclass, &tr);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
if (result == ISC_R_SUCCESS)
|
||||
return (ISC_TRUE);
|
||||
else {
|
||||
printf("unknown query class: %s\n", typetext);
|
||||
@@ -603,7 +624,7 @@ setoption(char *opt) {
|
||||
set_timeout(&opt[8]);
|
||||
} else if (strncasecmp(opt, "t=", 2) == 0) {
|
||||
set_timeout(&opt[2]);
|
||||
} else if (strncasecmp(opt, "rec", 3) == 0) {
|
||||
} else if (strncasecmp(opt, "rec", 3) == 0) {
|
||||
recurse = ISC_TRUE;
|
||||
} else if (strncasecmp(opt, "norec", 5) == 0) {
|
||||
recurse = ISC_FALSE;
|
||||
@@ -611,21 +632,21 @@ setoption(char *opt) {
|
||||
set_tries(&opt[6]);
|
||||
} else if (strncasecmp(opt, "ret=", 4) == 0) {
|
||||
set_tries(&opt[4]);
|
||||
} else if (strncasecmp(opt, "def", 3) == 0) {
|
||||
} else if (strncasecmp(opt, "def", 3) == 0) {
|
||||
usesearch = ISC_TRUE;
|
||||
} else if (strncasecmp(opt, "nodef", 5) == 0) {
|
||||
usesearch = ISC_FALSE;
|
||||
} else if (strncasecmp(opt, "vc", 3) == 0) {
|
||||
} else if (strncasecmp(opt, "vc", 3) == 0) {
|
||||
tcpmode = ISC_TRUE;
|
||||
} else if (strncasecmp(opt, "novc", 5) == 0) {
|
||||
tcpmode = ISC_FALSE;
|
||||
} else if (strncasecmp(opt, "deb", 3) == 0) {
|
||||
} else if (strncasecmp(opt, "deb", 3) == 0) {
|
||||
short_form = ISC_FALSE;
|
||||
showsearch = ISC_TRUE;
|
||||
} else if (strncasecmp(opt, "nodeb", 5) == 0) {
|
||||
short_form = ISC_TRUE;
|
||||
showsearch = ISC_FALSE;
|
||||
} else if (strncasecmp(opt, "d2", 2) == 0) {
|
||||
} else if (strncasecmp(opt, "d2", 2) == 0) {
|
||||
debugging = ISC_TRUE;
|
||||
} else if (strncasecmp(opt, "nod2", 4) == 0) {
|
||||
debugging = ISC_FALSE;
|
||||
@@ -640,7 +661,7 @@ setoption(char *opt) {
|
||||
} else if (strncasecmp(opt, "nofail", 3) == 0) {
|
||||
nofail=ISC_TRUE;
|
||||
} else {
|
||||
printf("*** Invalid option: %s\n", opt);
|
||||
printf("*** Invalid option: %s\n", opt);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
@@ -13,7 +13,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: nslookup.html,v 1.1.10.21 2007/05/16 06:11:27 marka Exp $ -->
|
||||
<!-- $Id: nslookup.html,v 1.1.10.22 2009/07/11 01:31:44 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.\" Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: dnssec-keygen.8,v 1.23.18.14 2007/05/09 03:33:12 marka Exp $
|
||||
.\" $Id: dnssec-keygen.8,v 1.23.18.17 2009/07/11 01:31:44 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -187,14 +187,14 @@ and
|
||||
.PP
|
||||
\fBdnssec\-signzone\fR(8),
|
||||
BIND 9 Administrator Reference Manual,
|
||||
RFC 2535,
|
||||
RFC 2539,
|
||||
RFC 2845,
|
||||
RFC 2539.
|
||||
RFC 4033.
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
Internet Systems Consortium
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
Copyright \(co 2000\-2003 Internet Software Consortium.
|
||||
.br
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004, 2005, 2007, 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
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dnssec-keygen.docbook,v 1.7.18.11 2007/08/28 07:20:00 tbox Exp $ -->
|
||||
<!-- $Id: dnssec-keygen.docbook,v 1.7.18.13 2008/10/15 23:46:06 tbox Exp $ -->
|
||||
<refentry id="man.dnssec-keygen">
|
||||
<refentryinfo>
|
||||
<date>June 30, 2000</date>
|
||||
@@ -40,6 +40,7 @@
|
||||
<year>2004</year>
|
||||
<year>2005</year>
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -340,9 +341,9 @@
|
||||
<refentrytitle>dnssec-signzone</refentrytitle><manvolnum>8</manvolnum>
|
||||
</citerefentry>,
|
||||
<citetitle>BIND 9 Administrator Reference Manual</citetitle>,
|
||||
<citetitle>RFC 2535</citetitle>,
|
||||
<citetitle>RFC 2539</citetitle>,
|
||||
<citetitle>RFC 2845</citetitle>,
|
||||
<citetitle>RFC 2539</citetitle>.
|
||||
<citetitle>RFC 4033</citetitle>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<!--
|
||||
- Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: dnssec-keygen.html,v 1.9.18.20 2007/05/09 03:33:12 marka Exp $ -->
|
||||
<!-- $Id: dnssec-keygen.html,v 1.9.18.23 2009/07/11 01:31:44 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -32,7 +32,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">dnssec-keygen</code> {-a <em class="replaceable"><code>algorithm</code></em>} {-b <em class="replaceable"><code>keysize</code></em>} {-n <em class="replaceable"><code>nametype</code></em>} [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-e</code>] [<code class="option">-f <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-g <em class="replaceable"><code>generator</code></em></code>] [<code class="option">-h</code>] [<code class="option">-k</code>] [<code class="option">-p <em class="replaceable"><code>protocol</code></em></code>] [<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-s <em class="replaceable"><code>strength</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] {name}</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543474"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543477"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">dnssec-keygen</strong></span>
|
||||
generates keys for DNSSEC (Secure DNS), as defined in RFC 2535
|
||||
and RFC 4034. It can also generate keys for use with
|
||||
@@ -40,7 +40,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543485"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543489"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
|
||||
<dd>
|
||||
@@ -148,7 +148,7 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543820"></a><h2>GENERATED KEYS</h2>
|
||||
<a name="id2543824"></a><h2>GENERATED KEYS</h2>
|
||||
<p>
|
||||
When <span><strong class="command">dnssec-keygen</strong></span> completes
|
||||
successfully,
|
||||
@@ -194,7 +194,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543902"></a><h2>EXAMPLE</h2>
|
||||
<a name="id2543906"></a><h2>EXAMPLE</h2>
|
||||
<p>
|
||||
To generate a 768-bit DSA key for the domain
|
||||
<strong class="userinput"><code>example.com</code></strong>, the following command would be
|
||||
@@ -215,16 +215,16 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543946"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2543949"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
|
||||
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
|
||||
<em class="citetitle">RFC 2535</em>,
|
||||
<em class="citetitle">RFC 2539</em>,
|
||||
<em class="citetitle">RFC 2845</em>,
|
||||
<em class="citetitle">RFC 2539</em>.
|
||||
<em class="citetitle">RFC 4033</em>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544045"></a><h2>AUTHOR</h2>
|
||||
<a name="id2544049"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.\" Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: dnssec-signzone.8,v 1.28.18.17 2007/05/09 03:33:12 marka Exp $
|
||||
.\" $Id: dnssec-signzone.8,v 1.28.18.20 2009/07/11 01:31:44 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -261,12 +261,12 @@ db.example.com.signed
|
||||
.PP
|
||||
\fBdnssec\-keygen\fR(8),
|
||||
BIND 9 Administrator Reference Manual,
|
||||
RFC 2535.
|
||||
RFC 4033.
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
Internet Systems Consortium
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004\-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004\-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
Copyright \(co 2000\-2003 Internet Software Consortium.
|
||||
.br
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Portions Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Portions Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Portions Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
* Portions Copyright (C) 1995-2000 by Network Associates, Inc.
|
||||
*
|
||||
@@ -16,7 +16,7 @@
|
||||
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssec-signzone.c,v 1.177.18.24 2007/08/28 07:20:00 tbox Exp $ */
|
||||
/* $Id: dnssec-signzone.c,v 1.177.18.29 2009/07/21 06:44:32 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -128,7 +128,6 @@ 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;
|
||||
@@ -195,16 +194,30 @@ newkeystruct(dst_key_t *dstkey, isc_boolean_t signwithkey) {
|
||||
return (key);
|
||||
}
|
||||
|
||||
/*%
|
||||
* Sign the given RRset with given key, and add the signature record to the
|
||||
* given tuple.
|
||||
*/
|
||||
|
||||
static void
|
||||
signwithkey(dns_name_t *name, dns_rdataset_t *rdataset, dns_rdata_t *rdata,
|
||||
dst_key_t *key, isc_buffer_t *b)
|
||||
signwithkey(dns_name_t *name, dns_rdataset_t *rdataset, dst_key_t *key,
|
||||
dns_ttl_t ttl, dns_diff_t *add, const char *logmsg)
|
||||
{
|
||||
isc_result_t result;
|
||||
isc_stdtime_t jendtime;
|
||||
char keystr[KEY_FORMATSIZE];
|
||||
dns_rdata_t trdata = DNS_RDATA_INIT;
|
||||
unsigned char array[BUFSIZE];
|
||||
isc_buffer_t b;
|
||||
dns_difftuple_t *tuple;
|
||||
|
||||
key_format(key, keystr, sizeof(keystr));
|
||||
vbprintf(1, "\t%s %s\n", logmsg, keystr);
|
||||
|
||||
jendtime = (jitter != 0) ? isc_random_jitter(endtime, jitter) : endtime;
|
||||
isc_buffer_init(&b, array, sizeof(array));
|
||||
result = dns_dnssec_sign(name, rdataset, key, &starttime, &jendtime,
|
||||
mctx, b, rdata);
|
||||
mctx, &b, &trdata);
|
||||
isc_entropy_stopcallbacksources(ectx);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
char keystr[KEY_FORMATSIZE];
|
||||
@@ -216,7 +229,7 @@ signwithkey(dns_name_t *name, dns_rdataset_t *rdataset, dns_rdata_t *rdata,
|
||||
|
||||
if (tryverify) {
|
||||
result = dns_dnssec_verify(name, rdataset, key,
|
||||
ISC_TRUE, mctx, rdata);
|
||||
ISC_TRUE, mctx, &trdata);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
vbprintf(3, "\tsignature verified\n");
|
||||
INCSTAT(nverified);
|
||||
@@ -225,6 +238,12 @@ signwithkey(dns_name_t *name, dns_rdataset_t *rdataset, dns_rdata_t *rdata,
|
||||
INCSTAT(nverifyfailed);
|
||||
}
|
||||
}
|
||||
|
||||
tuple = NULL;
|
||||
result = dns_difftuple_create(mctx, DNS_DIFFOP_ADD, name, ttl, &trdata,
|
||||
&tuple);
|
||||
check_result(result, "dns_difftuple_create");
|
||||
dns_diff_append(add, &tuple);
|
||||
}
|
||||
|
||||
static inline isc_boolean_t
|
||||
@@ -483,24 +502,11 @@ signset(dns_diff_t *del, dns_diff_t *add, dns_dbnode_t *node, dns_name_t *name,
|
||||
}
|
||||
|
||||
if (resign) {
|
||||
isc_buffer_t b;
|
||||
dns_rdata_t trdata = DNS_RDATA_INIT;
|
||||
unsigned char array[BUFSIZE];
|
||||
char keystr[KEY_FORMATSIZE];
|
||||
|
||||
INSIST(!keep);
|
||||
|
||||
key_format(key->key, keystr, sizeof(keystr));
|
||||
vbprintf(1, "\tresigning with dnskey %s\n", keystr);
|
||||
isc_buffer_init(&b, array, sizeof(array));
|
||||
signwithkey(name, set, &trdata, key->key, &b);
|
||||
signwithkey(name, set, key->key, ttl, add,
|
||||
"resigning with dnskey");
|
||||
nowsignedby[key->position] = ISC_TRUE;
|
||||
tuple = NULL;
|
||||
result = dns_difftuple_create(mctx, DNS_DIFFOP_ADD,
|
||||
name, ttl, &trdata,
|
||||
&tuple);
|
||||
check_result(result, "dns_difftuple_create");
|
||||
dns_diff_append(add, &tuple);
|
||||
}
|
||||
|
||||
dns_rdata_reset(&sigrdata);
|
||||
@@ -518,11 +524,6 @@ signset(dns_diff_t *del, dns_diff_t *add, dns_dbnode_t *node, dns_name_t *name,
|
||||
key != NULL;
|
||||
key = ISC_LIST_NEXT(key, link))
|
||||
{
|
||||
isc_buffer_t b;
|
||||
dns_rdata_t trdata;
|
||||
unsigned char array[BUFSIZE];
|
||||
char keystr[KEY_FORMATSIZE];
|
||||
|
||||
if (nowsignedby[key->position])
|
||||
continue;
|
||||
|
||||
@@ -534,16 +535,8 @@ signset(dns_diff_t *del, dns_diff_t *add, dns_dbnode_t *node, dns_name_t *name,
|
||||
dns_name_equal(name, gorigin))))
|
||||
continue;
|
||||
|
||||
key_format(key->key, keystr, sizeof(keystr));
|
||||
vbprintf(1, "\tsigning with dnskey %s\n", keystr);
|
||||
dns_rdata_init(&trdata);
|
||||
isc_buffer_init(&b, array, sizeof(array));
|
||||
signwithkey(name, set, &trdata, key->key, &b);
|
||||
tuple = NULL;
|
||||
result = dns_difftuple_create(mctx, DNS_DIFFOP_ADD, name,
|
||||
ttl, &trdata, &tuple);
|
||||
check_result(result, "dns_difftuple_create");
|
||||
dns_diff_append(add, &tuple);
|
||||
signwithkey(name, set, key->key, ttl, add,
|
||||
"signing with dnskey");
|
||||
}
|
||||
|
||||
isc_mem_put(mctx, wassignedby, arraysize * sizeof(isc_boolean_t));
|
||||
@@ -969,7 +962,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);
|
||||
@@ -1194,7 +1187,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);
|
||||
@@ -1224,16 +1217,19 @@ 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) {
|
||||
if (assigned == completed) {
|
||||
ended++;
|
||||
if (ended == ntasks) {
|
||||
isc_task_detach(&task);
|
||||
isc_app_shutdown();
|
||||
}
|
||||
return;
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
fname = isc_mem_get(mctx, sizeof(dns_fixedname_t));
|
||||
@@ -1243,7 +1239,6 @@ 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)
|
||||
@@ -1270,14 +1265,14 @@ assignwork(isc_task_t *task, isc_task_t *worker) {
|
||||
fatal("failure iterating database: %s",
|
||||
isc_result_totext(result));
|
||||
}
|
||||
UNLOCK(&namelock);
|
||||
if (!found) {
|
||||
if (assigned == completed) {
|
||||
ended++;
|
||||
if (ended == ntasks) {
|
||||
isc_task_detach(&task);
|
||||
isc_app_shutdown();
|
||||
}
|
||||
isc_mem_put(mctx, fname, sizeof(dns_fixedname_t));
|
||||
return;
|
||||
goto unlock;
|
||||
}
|
||||
sevent = (sevent_t *)
|
||||
isc_event_allocate(mctx, task, SIGNER_EVENT_WORK,
|
||||
@@ -1288,7 +1283,8 @@ assignwork(isc_task_t *task, isc_task_t *worker) {
|
||||
sevent->node = node;
|
||||
sevent->fname = fname;
|
||||
isc_task_send(worker, ISC_EVENT_PTR(&sevent));
|
||||
assigned++;
|
||||
unlock:
|
||||
UNLOCK(&namelock);
|
||||
}
|
||||
|
||||
/*%
|
||||
@@ -1311,7 +1307,6 @@ 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);
|
||||
@@ -1605,7 +1600,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));
|
||||
@@ -1818,13 +1813,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);
|
||||
}
|
||||
}
|
||||
@@ -1914,7 +1909,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);
|
||||
@@ -2080,7 +2075,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);
|
||||
@@ -2102,8 +2097,11 @@ 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));
|
||||
|
||||
if (!dns_name_equal(gorigin, dst_key_name(newkey)))
|
||||
fatal("key %s not at origin\n", argv[i]);
|
||||
|
||||
key = ISC_LIST_HEAD(keylist);
|
||||
while (key != NULL) {
|
||||
@@ -2111,7 +2109,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 "
|
||||
@@ -2140,7 +2138,10 @@ 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));
|
||||
|
||||
if (!dns_name_equal(gorigin, dst_key_name(newkey)))
|
||||
fatal("key %s not at origin\n", dskeyfile[i]);
|
||||
|
||||
key = ISC_LIST_HEAD(keylist);
|
||||
while (key != NULL) {
|
||||
@@ -2148,7 +2149,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;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-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
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dnssec-signzone.docbook,v 1.10.18.17 2007/08/28 07:20:00 tbox Exp $ -->
|
||||
<!-- $Id: dnssec-signzone.docbook,v 1.10.18.19 2008/10/15 23:46:06 tbox Exp $ -->
|
||||
<refentry id="man.dnssec-signzone">
|
||||
<refentryinfo>
|
||||
<date>June 30, 2000</date>
|
||||
@@ -41,6 +41,7 @@
|
||||
<year>2005</year>
|
||||
<year>2006</year>
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -459,7 +460,7 @@ db.example.com.signed
|
||||
<refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum>
|
||||
</citerefentry>,
|
||||
<citetitle>BIND 9 Administrator Reference Manual</citetitle>,
|
||||
<citetitle>RFC 2535</citetitle>.
|
||||
<citetitle>RFC 4033</citetitle>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: dnssec-signzone.html,v 1.8.18.23 2007/05/09 03:33:12 marka Exp $ -->
|
||||
<!-- $Id: dnssec-signzone.html,v 1.8.18.26 2009/07/11 01:31:44 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -32,7 +32,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">dnssec-signzone</code> [<code class="option">-a</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-d <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-e <em class="replaceable"><code>end-time</code></em></code>] [<code class="option">-f <em class="replaceable"><code>output-file</code></em></code>] [<code class="option">-g</code>] [<code class="option">-h</code>] [<code class="option">-k <em class="replaceable"><code>key</code></em></code>] [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-i <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-I <em class="replaceable"><code>input-format</code></em></code>] [<code class="option">-j <em class="replaceable"><code>jitter</code></em></code>] [<code class="option">-N <em class="replaceable"><code>soa-serial-format</code></em></code>] [<code class="option">-o <em class="replaceable"><code>origin</code></em></code>] [<code class="option">-O <em class="replaceable"><code>output-format</code></em></code>] [<code class="option">-p</code>] [<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-s <em class="replaceable"><code>start-time</code></em></code>] [<code class="option">-t</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-z</code>] {zonefile} [key...]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543526"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543529"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">dnssec-signzone</strong></span>
|
||||
signs a zone. It generates
|
||||
NSEC and RRSIG records and produces a signed version of the
|
||||
@@ -43,7 +43,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543541"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543544"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-a</span></dt>
|
||||
<dd><p>
|
||||
@@ -241,7 +241,7 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544327"></a><h2>EXAMPLE</h2>
|
||||
<a name="id2544330"></a><h2>EXAMPLE</h2>
|
||||
<p>
|
||||
The following command signs the <strong class="userinput"><code>example.com</code></strong>
|
||||
zone with the DSA key generated by <span><strong class="command">dnssec-keygen</strong></span>
|
||||
@@ -270,14 +270,14 @@ db.example.com.signed
|
||||
%</pre>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544378"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2544381"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
|
||||
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
|
||||
<em class="citetitle">RFC 2535</em>.
|
||||
<em class="citetitle">RFC 4033</em>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544403"></a><h2>AUTHOR</h2>
|
||||
<a name="id2544406"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
+28
-28
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: client.c,v 1.219.18.28.10.2 2008/07/23 07:28:54 tbox Exp $ */
|
||||
/* $Id: client.c,v 1.219.18.33 2009/01/19 23:46:14 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -132,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.
|
||||
@@ -286,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);
|
||||
|
||||
@@ -817,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)
|
||||
@@ -834,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);
|
||||
@@ -1108,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.
|
||||
@@ -1218,7 +1218,7 @@ allowed(isc_netaddr_t *addr, dns_name_t *signer, dns_acl_t *acl) {
|
||||
* delivered to 'myview'.
|
||||
*
|
||||
* We run this unlocked as both the view list and the interface list
|
||||
* are updated when the approprite task has exclusivity.
|
||||
* are updated when the appropriate task has exclusivity.
|
||||
*/
|
||||
isc_boolean_t
|
||||
ns_client_isself(dns_view_t *myview, dns_tsigkey_t *mykey,
|
||||
@@ -1534,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);
|
||||
@@ -1595,7 +1595,7 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
view);
|
||||
if (sigresult == ISC_R_SUCCESS)
|
||||
tsig = client->message->tsigname;
|
||||
|
||||
|
||||
if (allowed(&netaddr, tsig, view->matchclients) &&
|
||||
allowed(&destaddr, tsig, view->matchdestinations) &&
|
||||
!((client->message->flags & DNS_MESSAGEFLAG_RD)
|
||||
@@ -1726,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.
|
||||
@@ -1820,10 +1820,10 @@ get_clientmctx(ns_clientmgr_t *manager, isc_mem_t **mctxp) {
|
||||
return (result);
|
||||
|
||||
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
|
||||
@@ -2093,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)
|
||||
@@ -2115,7 +2115,7 @@ client_newconn(isc_task_t *task, isc_event_t *event) {
|
||||
* Let a new client take our place immediately, before
|
||||
* we wait for a request packet. If we don't,
|
||||
* telnetting to port 53 (once per CPU) will
|
||||
* deny service to legititmate TCP clients.
|
||||
* deny service to legitimate TCP clients.
|
||||
*/
|
||||
result = isc_quota_attach(&ns_g_server->tcpquota,
|
||||
&client->tcpquota);
|
||||
@@ -2482,7 +2482,7 @@ ns_client_checkacl(ns_client_t *client,
|
||||
isc_result_t result =
|
||||
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);
|
||||
@@ -2538,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);
|
||||
}
|
||||
|
||||
@@ -2575,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),
|
||||
@@ -2595,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) {
|
||||
|
||||
+5
-5
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: config.c,v 1.47.18.32.10.3 2008/07/23 23:48:17 tbox Exp $ */
|
||||
/* $Id: config.c,v 1.47.18.35 2008/09/04 08:03:07 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -403,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;
|
||||
@@ -521,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;
|
||||
@@ -599,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));
|
||||
@@ -655,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;
|
||||
|
||||
+7
-5
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2001-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: control.c,v 1.20.10.10 2007/09/13 23:46:26 tbox Exp $ */
|
||||
/* $Id: control.c,v 1.20.10.12 2009/07/11 23:46:06 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -56,7 +56,7 @@ command_compare(const char *text, const char *command) {
|
||||
|
||||
/*%
|
||||
* This function is called to process the incoming command
|
||||
* when a control channel message is received.
|
||||
* when a control channel message is received.
|
||||
*/
|
||||
isc_result_t
|
||||
ns_control_docommand(isccc_sexpr_t *message, isc_buffer_t *text) {
|
||||
@@ -159,10 +159,12 @@ ns_control_docommand(isccc_sexpr_t *message, isc_buffer_t *text) {
|
||||
} else if (command_compare(command, NS_COMMAND_STATUS)) {
|
||||
result = ns_server_status(ns_g_server, text);
|
||||
} else if (command_compare(command, NS_COMMAND_FREEZE)) {
|
||||
result = ns_server_freeze(ns_g_server, ISC_TRUE, command);
|
||||
result = ns_server_freeze(ns_g_server, ISC_TRUE, command,
|
||||
text);
|
||||
} else if (command_compare(command, NS_COMMAND_UNFREEZE) ||
|
||||
command_compare(command, NS_COMMAND_THAW)) {
|
||||
result = ns_server_freeze(ns_g_server, ISC_FALSE, command);
|
||||
result = ns_server_freeze(ns_g_server, ISC_FALSE, command,
|
||||
text);
|
||||
} else if (command_compare(command, NS_COMMAND_RECURSING)) {
|
||||
result = ns_server_dumprecursing(ns_g_server);
|
||||
} else if (command_compare(command, NS_COMMAND_TIMERPOKE)) {
|
||||
|
||||
+41
-47
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: controlconf.c,v 1.40.18.10.40.3 2008/07/23 23:16:43 marka Exp $ */
|
||||
/* $Id: controlconf.c,v 1.40.18.14 2008/07/23 23:33:02 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,9 +364,6 @@ 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;
|
||||
@@ -375,7 +372,8 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
result = isccc_cc_fromwire(&ccregion, &request, &secret);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
break;
|
||||
else if (result == ISCCC_R_BADAUTH) {
|
||||
isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret));
|
||||
if (result == ISCCC_R_BADAUTH) {
|
||||
/*
|
||||
* For some reason, request is non-NULL when
|
||||
* isccc_cc_fromwire returns ISCCC_R_BADAUTH.
|
||||
@@ -396,7 +394,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;
|
||||
goto cleanup_request;
|
||||
}
|
||||
|
||||
isc_stdtime_get(&now);
|
||||
@@ -407,17 +405,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;
|
||||
goto cleanup_request;
|
||||
}
|
||||
|
||||
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;
|
||||
goto cleanup_request;
|
||||
}
|
||||
} else {
|
||||
log_invalid(&conn->ccmsg, ISC_R_FAILURE);
|
||||
goto cleanup;
|
||||
goto cleanup_request;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -426,7 +424,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;
|
||||
goto cleanup_request;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -436,16 +434,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;
|
||||
goto cleanup_request;
|
||||
}
|
||||
|
||||
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;
|
||||
goto cleanup_request;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -459,7 +457,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;
|
||||
goto cleanup_request;
|
||||
if (eresult != ISC_R_SUCCESS) {
|
||||
isccc_sexpr_t *data;
|
||||
|
||||
@@ -467,7 +465,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;
|
||||
goto cleanup_response;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -478,20 +476,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;
|
||||
goto cleanup_response;
|
||||
}
|
||||
}
|
||||
|
||||
_ctrl = isccc_alist_lookup(response, "_ctrl");
|
||||
if (_ctrl == NULL ||
|
||||
isccc_cc_defineuint32(_ctrl, "_nonce", conn->nonce) == NULL)
|
||||
goto cleanup;
|
||||
goto cleanup_response;
|
||||
|
||||
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;
|
||||
goto cleanup_response;
|
||||
isc_buffer_init(&b, conn->buffer, 4);
|
||||
len = sizeof(conn->buffer) - REGION_SIZE(ccregion);
|
||||
isc_buffer_putuint32(&b, len - 4);
|
||||
@@ -500,31 +498,27 @@ 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;
|
||||
goto cleanup_response;
|
||||
conn->sending = ISC_TRUE;
|
||||
|
||||
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);
|
||||
isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret));
|
||||
isccc_sexpr_free(&request);
|
||||
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
|
||||
@@ -548,7 +542,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;
|
||||
@@ -660,7 +654,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;
|
||||
@@ -808,7 +802,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;
|
||||
@@ -828,14 +822,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));
|
||||
@@ -891,7 +885,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.
|
||||
@@ -925,7 +919,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;
|
||||
@@ -945,7 +939,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.
|
||||
@@ -1339,7 +1333,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)
|
||||
@@ -1385,10 +1379,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,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: client.h,v 1.69.18.9 2006/06/06 00:11:41 marka Exp $ */
|
||||
/* $Id: client.h,v 1.69.18.11 2009/01/19 23:46:14 tbox 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.
|
||||
*
|
||||
@@ -155,7 +155,7 @@ struct ns_client {
|
||||
#define NS_CLIENT_VALID(c) ISC_MAGIC_VALID(c, NS_CLIENT_MAGIC)
|
||||
|
||||
#define NS_CLIENTATTR_TCP 0x01
|
||||
#define NS_CLIENTATTR_RA 0x02 /*%< Client gets recusive service */
|
||||
#define NS_CLIENTATTR_RA 0x02 /*%< Client gets recursive service */
|
||||
#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 */
|
||||
@@ -352,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-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: globals.h,v 1.64.18.4 2006/03/02 00:37:21 marka Exp $ */
|
||||
/* $Id: globals.h,v 1.64.18.6 2008/10/24 01:43:17 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_GLOBALS_H
|
||||
#define NAMED_GLOBALS_H 1
|
||||
@@ -48,6 +48,7 @@ EXTERN isc_taskmgr_t * ns_g_taskmgr INIT(NULL);
|
||||
EXTERN dns_dispatchmgr_t * ns_g_dispatchmgr INIT(NULL);
|
||||
EXTERN isc_entropy_t * ns_g_entropy INIT(NULL);
|
||||
EXTERN isc_entropy_t * ns_g_fallbackentropy INIT(NULL);
|
||||
EXTERN unsigned int ns_g_cpus_detected INIT(1);
|
||||
|
||||
/*
|
||||
* XXXRTH We're going to want multiple timer managers eventually. One
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: log.h,v 1.21.18.2 2005/04/29 00:15:35 marka Exp $ */
|
||||
/* $Id: log.h,v 1.21.18.4 2009/09/24 23:46:06 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_LOG_H
|
||||
#define NAMED_LOG_H 1
|
||||
@@ -36,6 +36,7 @@
|
||||
#define NS_LOGCATEGORY_QUERIES (&ns_g_categories[4])
|
||||
#define NS_LOGCATEGORY_UNMATCHED (&ns_g_categories[5])
|
||||
#define NS_LOGCATEGORY_UPDATE_SECURITY (&ns_g_categories[6])
|
||||
#define NS_LOGCATEGORY_QUERY_EERRORS (&ns_g_categories[7])
|
||||
|
||||
/*
|
||||
* Backwards compatibility.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwdclient.h,v 1.14.18.2 2005/04/29 00:15:36 marka Exp $ */
|
||||
/* $Id: lwdclient.h,v 1.14.18.4 2009/01/19 23:46:14 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_LWDCLIENT_H
|
||||
#define NAMED_LWDCLIENT_H 1
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
#define LWRD_SHUTDOWN (LWRD_EVENTCLASS + 0x0001)
|
||||
|
||||
/*% Lighweight Resolver Daemon Client */
|
||||
/*% Lightweight Resolver Daemon Client */
|
||||
struct ns_lwdclient {
|
||||
isc_sockaddr_t address; /*%< where to reply */
|
||||
struct in6_pktinfo pktinfo;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: notify.h,v 1.10.18.2 2005/04/29 00:15:37 marka Exp $ */
|
||||
/* $Id: notify.h,v 1.10.18.4 2009/01/19 23:46:14 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_NOTIFY_H
|
||||
#define NAMED_NOTIFY_H 1
|
||||
@@ -41,7 +41,7 @@ void
|
||||
ns_notify_start(ns_client_t *client);
|
||||
|
||||
/*%<
|
||||
* Examines the incoming message to determine apporiate zone.
|
||||
* Examines the incoming message to determine appropriate zone.
|
||||
* Returns FORMERR if there is not exactly one question.
|
||||
* Returns REFUSED if we do not serve the listed zone.
|
||||
* Pass the message to the zone module for processing
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: server.h,v 1.73.18.8 2006/03/09 23:46:20 marka Exp $ */
|
||||
/* $Id: server.h,v 1.73.18.10 2009/07/11 23:46:06 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_SERVER_H
|
||||
#define NAMED_SERVER_H 1
|
||||
@@ -62,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.
|
||||
@@ -207,7 +207,8 @@ ns_server_status(ns_server_t *server, isc_buffer_t *text);
|
||||
* Enable or disable updates for a zone.
|
||||
*/
|
||||
isc_result_t
|
||||
ns_server_freeze(ns_server_t *server, isc_boolean_t freeze, char *args);
|
||||
ns_server_freeze(ns_server_t *server, isc_boolean_t freeze, char *args,
|
||||
isc_buffer_t *text);
|
||||
|
||||
/*%
|
||||
* Dump the current recursive queries.
|
||||
|
||||
+11
-11
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006, 2008, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: interfacemgr.c,v 1.76.18.8.44.3 2008/07/23 23:16:43 marka Exp $ */
|
||||
/* $Id: interfacemgr.c,v 1.76.18.13 2009/01/19 23:46:14 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -90,7 +90,7 @@ ns_interfacemgr_create(isc_mem_t *mctx, isc_taskmgr_t *taskmgr,
|
||||
mgr->generation = 1;
|
||||
mgr->listenon4 = NULL;
|
||||
mgr->listenon6 = NULL;
|
||||
|
||||
|
||||
ISC_LIST_INIT(mgr->interfaces);
|
||||
ISC_LIST_INIT(mgr->listenon);
|
||||
|
||||
@@ -323,7 +323,7 @@ ns_interface_accepttcp(ns_interface_t *ifp) {
|
||||
goto tcp_listen_failure;
|
||||
}
|
||||
|
||||
/*
|
||||
/*
|
||||
* If/when there a multiple filters listen to the
|
||||
* result.
|
||||
*/
|
||||
@@ -510,7 +510,7 @@ setup_locals(ns_interfacemgr_t *mgr, isc_interface_t *interface) {
|
||||
unsigned int prefixlen;
|
||||
|
||||
family = interface->address.family;
|
||||
|
||||
|
||||
elt.type = dns_aclelementtype_ipprefix;
|
||||
elt.negative = ISC_FALSE;
|
||||
elt.u.ip_prefix.address = interface->address;
|
||||
@@ -522,7 +522,7 @@ setup_locals(ns_interfacemgr_t *mgr, isc_interface_t *interface) {
|
||||
result = isc_netaddr_masktoprefixlen(&interface->netmask,
|
||||
&prefixlen);
|
||||
|
||||
/* Non contigious netmasks not allowed by IPv6 arch. */
|
||||
/* Non contiguous netmasks not allowed by IPv6 arch. */
|
||||
if (result != ISC_R_SUCCESS && family == AF_INET6)
|
||||
return (result);
|
||||
|
||||
@@ -550,7 +550,7 @@ setup_locals(ns_interfacemgr_t *mgr, isc_interface_t *interface) {
|
||||
static void
|
||||
setup_listenon(ns_interfacemgr_t *mgr, isc_interface_t *interface,
|
||||
in_port_t port)
|
||||
{
|
||||
{
|
||||
isc_sockaddr_t *addr;
|
||||
isc_sockaddr_t *old;
|
||||
|
||||
@@ -564,7 +564,7 @@ setup_listenon(ns_interfacemgr_t *mgr, isc_interface_t *interface,
|
||||
old != NULL;
|
||||
old = ISC_LIST_NEXT(old, link))
|
||||
if (isc_sockaddr_equal(addr, old))
|
||||
break;
|
||||
break;
|
||||
|
||||
if (old != NULL)
|
||||
isc_mem_put(mgr->mctx, addr, sizeof(*addr));
|
||||
@@ -700,7 +700,7 @@ do_scan(ns_interfacemgr_t *mgr, ns_listenlist_t *ext_listen,
|
||||
{
|
||||
isc_interface_t interface;
|
||||
ns_listenlist_t *ll;
|
||||
unsigned int family;
|
||||
unsigned int family;
|
||||
|
||||
result = isc_interfaceiter_current(iter, &interface);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
@@ -882,7 +882,7 @@ do_scan(ns_interfacemgr_t *mgr, ns_listenlist_t *ext_listen,
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"interface iteration failed: %s",
|
||||
isc_result_totext(result));
|
||||
else
|
||||
else
|
||||
result = ISC_R_SUCCESS;
|
||||
cleanup_iter:
|
||||
isc_interfaceiter_destroy(&iter);
|
||||
@@ -913,7 +913,7 @@ ns_interfacemgr_scan0(ns_interfacemgr_t *mgr, ns_listenlist_t *ext_listen,
|
||||
|
||||
/*
|
||||
* Warn if we are not listening on any interface, unless
|
||||
* we're in lwresd-only mode, in which case that is to
|
||||
* we're in lwresd-only mode, in which case that is to
|
||||
* be expected.
|
||||
*/
|
||||
if (ext_listen == NULL &&
|
||||
|
||||
+5
-4
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: log.c,v 1.37.18.6 2006/06/09 00:54:08 marka Exp $ */
|
||||
/* $Id: log.c,v 1.37.18.9 2009/09/24 21:38:50 jinmei Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -44,6 +44,7 @@ static isc_logcategory_t categories[] = {
|
||||
{ "queries", 0 },
|
||||
{ "unmatched", 0 },
|
||||
{ "update-security", 0 },
|
||||
{ "query-errors", 0 },
|
||||
{ NULL, 0 }
|
||||
};
|
||||
|
||||
@@ -120,7 +121,7 @@ ns_log_setdefaultchannels(isc_logconfig_t *lcfg) {
|
||||
/*
|
||||
* By default, the logging library makes "default_debug" log to
|
||||
* stderr. In BIND, we want to override this and log to named.run
|
||||
* instead, unless the the -g option was given.
|
||||
* instead, unless the -g option was given.
|
||||
*/
|
||||
if (! ns_g_logstderr) {
|
||||
destination.file.stream = NULL;
|
||||
|
||||
+4
-4
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwaddr.c,v 1.4.18.2 2005/04/29 00:15:23 marka Exp $ */
|
||||
/* $Id: lwaddr.c,v 1.4.18.4 2008/01/11 23:45:59 tbox 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.in, 16);
|
||||
memcpy(la->address, &na->type.in6, 16);
|
||||
}
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
+3
-5
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwdgnba.c,v 1.16.18.2 2005/04/29 00:15:24 marka Exp $ */
|
||||
/* $Id: lwdgnba.c,v 1.16.18.4 2008/01/14 23:45:59 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -220,8 +220,6 @@ 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) {
|
||||
|
||||
+11
-12
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwdnoop.c,v 1.7.18.2 2005/04/29 00:15:25 marka Exp $ */
|
||||
/* $Id: lwdnoop.c,v 1.7.18.4 2008/01/22 23:27:05 tbox 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 out;
|
||||
goto send_error;
|
||||
|
||||
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 out;
|
||||
goto cleanup_req;
|
||||
|
||||
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 out;
|
||||
goto cleanup_lwb;
|
||||
|
||||
/*
|
||||
* We can now destroy request.
|
||||
@@ -76,13 +76,12 @@ ns_lwdclient_processnoop(ns_lwdclient_t *client, lwres_buffer_t *b) {
|
||||
|
||||
return;
|
||||
|
||||
out:
|
||||
if (req != NULL)
|
||||
lwres_nooprequest_free(client->clientmgr->lwctx, &req);
|
||||
cleanup_lwb:
|
||||
lwres_context_freemem(client->clientmgr->lwctx, lwb.base, lwb.length);
|
||||
|
||||
if (lwb.base != NULL)
|
||||
lwres_context_freemem(client->clientmgr->lwctx,
|
||||
lwb.base, lwb.length);
|
||||
cleanup_req:
|
||||
lwres_nooprequest_free(client->clientmgr->lwctx, &req);
|
||||
|
||||
send_error:
|
||||
ns_lwdclient_errorpktsend(client, LWRES_R_FAILURE);
|
||||
}
|
||||
|
||||
+9
-9
@@ -1,7 +1,7 @@
|
||||
.\" Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2004, 2005, 2007-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: lwresd.8,v 1.15.18.12 2007/05/16 06:11:27 marka Exp $
|
||||
.\" $Id: lwresd.8,v 1.15.18.15 2009/07/11 01:31:44 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -42,7 +42,7 @@ is the daemon providing name lookup services to clients that use the BIND 9 ligh
|
||||
\fBlwresd\fR
|
||||
listens for resolver queries on a UDP port on the IPv4 loopback interface, 127.0.0.1. This means that
|
||||
\fBlwresd\fR
|
||||
can only be used by processes running on the local machine. By default UDP port number 921 is used for lightweight resolver requests and responses.
|
||||
can only be used by processes running on the local machine. By default, UDP port number 921 is used for lightweight resolver requests and responses.
|
||||
.PP
|
||||
Incoming lightweight resolver requests are decoded by the server which then resolves them using the DNS protocol. When the DNS lookup completes,
|
||||
\fBlwresd\fR
|
||||
@@ -85,9 +85,9 @@ Use
|
||||
\fIconfig\-file\fR
|
||||
as the configuration file instead of the default,
|
||||
\fI/etc/lwresd.conf\fR.
|
||||
<term>\-c</term>
|
||||
\fB\-c\fR
|
||||
can not be used with
|
||||
<term>\-C</term>.
|
||||
\fB\-C\fR.
|
||||
.RE
|
||||
.PP
|
||||
\-C \fIconfig\-file\fR
|
||||
@@ -96,9 +96,9 @@ Use
|
||||
\fIconfig\-file\fR
|
||||
as the configuration file instead of the default,
|
||||
\fI/etc/resolv.conf\fR.
|
||||
<term>\-C</term>
|
||||
\fB\-C\fR
|
||||
can not be used with
|
||||
<term>\-c</term>.
|
||||
\fB\-c\fR.
|
||||
.RE
|
||||
.PP
|
||||
\-d \fIdebug\-level\fR
|
||||
@@ -217,7 +217,7 @@ The default process\-id file.
|
||||
.PP
|
||||
Internet Systems Consortium
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004, 2005, 2007\-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
Copyright \(co 2000, 2001 Internet Software Consortium.
|
||||
.br
|
||||
|
||||
+3
-3
@@ -15,9 +15,9 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwresd.c,v 1.46.18.7.52.3 2008/07/23 23:16:43 marka Exp $ */
|
||||
/* $Id: lwresd.c,v 1.46.18.10 2008/07/23 23:33:02 marka Exp $ */
|
||||
|
||||
/*! \file
|
||||
/*! \file
|
||||
* \brief
|
||||
* Main program for the Lightweight Resolver Daemon.
|
||||
*
|
||||
@@ -224,7 +224,7 @@ ns_lwresd_parseeresolvconf(isc_mem_t *mctx, cfg_parser_t *pctx,
|
||||
for (i = 0; i < lwc->searchnxt; i++) {
|
||||
CHECK(buffer_putstr(&b, "\t\t\""));
|
||||
CHECK(buffer_putstr(&b, lwc->search[i]));
|
||||
CHECK(buffer_putstr(&b, "\";\n"));
|
||||
CHECK(buffer_putstr(&b, "\";\n"));
|
||||
}
|
||||
CHECK(buffer_putstr(&b, "\t};\n"));
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004, 2005, 2007-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: lwresd.docbook,v 1.7.18.8 2007/08/28 07:20:01 tbox Exp $ -->
|
||||
<!-- $Id: lwresd.docbook,v 1.7.18.12 2009/01/22 23:46:00 tbox Exp $ -->
|
||||
<refentry>
|
||||
<refentryinfo>
|
||||
<date>June 30, 2000</date>
|
||||
@@ -40,6 +40,8 @@
|
||||
<year>2004</year>
|
||||
<year>2005</year>
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<year>2009</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -86,7 +88,7 @@
|
||||
listens for resolver queries on a
|
||||
UDP port on the IPv4 loopback interface, 127.0.0.1. This
|
||||
means that <command>lwresd</command> can only be used by
|
||||
processes running on the local machine. By default UDP port
|
||||
processes running on the local machine. By default, UDP port
|
||||
number 921 is used for lightweight resolver requests and
|
||||
responses.
|
||||
</para>
|
||||
@@ -145,7 +147,7 @@
|
||||
configuration file instead of the default,
|
||||
<filename>/etc/lwresd.conf</filename>.
|
||||
<!-- Should this be an absolute path name? -->
|
||||
<term>-c</term> can not be used with <term>-C</term>.
|
||||
<option>-c</option> can not be used with <option>-C</option>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -157,7 +159,7 @@
|
||||
Use <replaceable class="parameter">config-file</replaceable> as the
|
||||
configuration file instead of the default,
|
||||
<filename>/etc/resolv.conf</filename>.
|
||||
<term>-C</term> can not be used with <term>-c</term>.
|
||||
<option>-C</option> can not be used with <option>-c</option>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
+11
-11
@@ -1,8 +1,8 @@
|
||||
<!--
|
||||
- Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004, 2005, 2007-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: lwresd.html,v 1.5.18.18 2007/05/16 06:11:27 marka Exp $ -->
|
||||
<!-- $Id: lwresd.html,v 1.5.18.21 2009/07/11 01:31:45 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -32,7 +32,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">lwresd</code> [<code class="option">-c <em class="replaceable"><code>config-file</code></em></code>] [<code class="option">-C <em class="replaceable"><code>config-file</code></em></code>] [<code class="option">-d <em class="replaceable"><code>debug-level</code></em></code>] [<code class="option">-f</code>] [<code class="option">-g</code>] [<code class="option">-i <em class="replaceable"><code>pid-file</code></em></code>] [<code class="option">-m <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-n <em class="replaceable"><code>#cpus</code></em></code>] [<code class="option">-P <em class="replaceable"><code>port</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-s</code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-u <em class="replaceable"><code>user</code></em></code>] [<code class="option">-v</code>] [<code class="option">-4</code>] [<code class="option">-6</code>]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543461"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543467"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">lwresd</strong></span>
|
||||
is the daemon providing name lookup
|
||||
services to clients that use the BIND 9 lightweight resolver
|
||||
@@ -44,7 +44,7 @@
|
||||
listens for resolver queries on a
|
||||
UDP port on the IPv4 loopback interface, 127.0.0.1. This
|
||||
means that <span><strong class="command">lwresd</strong></span> can only be used by
|
||||
processes running on the local machine. By default UDP port
|
||||
processes running on the local machine. By default, UDP port
|
||||
number 921 is used for lightweight resolver requests and
|
||||
responses.
|
||||
</p>
|
||||
@@ -67,7 +67,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543508"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543514"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-4</span></dt>
|
||||
<dd><p>
|
||||
@@ -87,14 +87,14 @@
|
||||
configuration file instead of the default,
|
||||
<code class="filename">/etc/lwresd.conf</code>.
|
||||
|
||||
<font color="red"><term>-c</term></font> can not be used with <font color="red"><term>-C</term></font>.
|
||||
<code class="option">-c</code> can not be used with <code class="option">-C</code>.
|
||||
</p></dd>
|
||||
<dt><span class="term">-C <em class="replaceable"><code>config-file</code></em></span></dt>
|
||||
<dd><p>
|
||||
Use <em class="replaceable"><code>config-file</code></em> as the
|
||||
configuration file instead of the default,
|
||||
<code class="filename">/etc/resolv.conf</code>.
|
||||
<font color="red"><term>-C</term></font> can not be used with <font color="red"><term>-c</term></font>.
|
||||
<code class="option">-C</code> can not be used with <code class="option">-c</code>.
|
||||
</p></dd>
|
||||
<dt><span class="term">-d <em class="replaceable"><code>debug-level</code></em></span></dt>
|
||||
<dd><p>
|
||||
@@ -197,7 +197,7 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543925"></a><h2>FILES</h2>
|
||||
<a name="id2543931"></a><h2>FILES</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term"><code class="filename">/etc/resolv.conf</code></span></dt>
|
||||
<dd><p>
|
||||
@@ -210,14 +210,14 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543964"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2543971"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">lwres</span>(3)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">resolver</span>(5)</span>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543998"></a><h2>AUTHOR</h2>
|
||||
<a name="id2544005"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
+53
-18
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006, 2008, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: main.c,v 1.136.18.17 2006/11/10 18:51:14 marka Exp $ */
|
||||
/* $Id: main.c,v 1.136.18.24 2009/04/03 20:17:59 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include <isc/hash.h>
|
||||
#include <isc/os.h>
|
||||
#include <isc/platform.h>
|
||||
#include <isc/print.h>
|
||||
#include <isc/resource.h>
|
||||
#include <isc/stdio.h>
|
||||
#include <isc/string.h>
|
||||
@@ -85,6 +86,7 @@ static char program_name[ISC_DIR_NAMEMAX] = "named";
|
||||
static char absolute_conffile[ISC_DIR_PATHMAX];
|
||||
static char saved_command_line[512];
|
||||
static char version[512];
|
||||
static unsigned int maxsocks = 0;
|
||||
|
||||
void
|
||||
ns_main_earlywarning(const char *format, ...) {
|
||||
@@ -137,7 +139,7 @@ assertion_failed(const char *file, int line, isc_assertiontype_t type,
|
||||
|
||||
if (ns_g_lctx != NULL) {
|
||||
/*
|
||||
* Reset the assetion callback in case it is the log
|
||||
* Reset the assertion callback in case it is the log
|
||||
* routines causing the assertion.
|
||||
*/
|
||||
isc_assertion_setcallback(NULL);
|
||||
@@ -356,7 +358,8 @@ parse_command_line(int argc, char *argv[]) {
|
||||
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
while ((ch = isc_commandline_parse(argc, argv,
|
||||
"46c:C:d:fgi:lm:n:N:p:P:st:u:vx:")) != -1) {
|
||||
"46c:C:d:fgi:lm:n:N:p:P:"
|
||||
"sS:t:u:vx:")) != -1) {
|
||||
switch (ch) {
|
||||
case '4':
|
||||
if (disable4)
|
||||
@@ -435,6 +438,10 @@ parse_command_line(int argc, char *argv[]) {
|
||||
/* XXXRTH temporary syntax */
|
||||
want_stats = ISC_TRUE;
|
||||
break;
|
||||
case 'S':
|
||||
maxsocks = parse_int(isc_commandline_argument,
|
||||
"max number of sockets");
|
||||
break;
|
||||
case 't':
|
||||
/* XXXJAB should we make a copy? */
|
||||
ns_g_chrootdir = isc_commandline_argument;
|
||||
@@ -466,17 +473,14 @@ parse_command_line(int argc, char *argv[]) {
|
||||
static isc_result_t
|
||||
create_managers(void) {
|
||||
isc_result_t result;
|
||||
#ifdef ISC_PLATFORM_USETHREADS
|
||||
unsigned int cpus_detected;
|
||||
#endif
|
||||
unsigned int socks;
|
||||
|
||||
#ifdef ISC_PLATFORM_USETHREADS
|
||||
cpus_detected = isc_os_ncpus();
|
||||
if (ns_g_cpus == 0)
|
||||
ns_g_cpus = cpus_detected;
|
||||
ns_g_cpus = ns_g_cpus_detected;
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_SERVER,
|
||||
ISC_LOG_INFO, "found %u CPU%s, using %u worker thread%s",
|
||||
cpus_detected, cpus_detected == 1 ? "" : "s",
|
||||
ns_g_cpus_detected, ns_g_cpus_detected == 1 ? "" : "s",
|
||||
ns_g_cpus, ns_g_cpus == 1 ? "" : "s");
|
||||
#else
|
||||
ns_g_cpus = 1;
|
||||
@@ -497,13 +501,19 @@ create_managers(void) {
|
||||
return (ISC_R_UNEXPECTED);
|
||||
}
|
||||
|
||||
result = isc_socketmgr_create(ns_g_mctx, &ns_g_socketmgr);
|
||||
result = isc_socketmgr_create2(ns_g_mctx, &ns_g_socketmgr, maxsocks);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"isc_socketmgr_create() failed: %s",
|
||||
isc_result_totext(result));
|
||||
return (ISC_R_UNEXPECTED);
|
||||
}
|
||||
result = isc_socketmgr_getmaxsockets(ns_g_socketmgr, &socks);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_SERVER,
|
||||
ISC_LOG_INFO, "using up to %u sockets", socks);
|
||||
}
|
||||
|
||||
result = isc_entropy_create(ns_g_mctx, &ns_g_entropy);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
@@ -550,6 +560,7 @@ destroy_managers(void) {
|
||||
static void
|
||||
setup(void) {
|
||||
isc_result_t result;
|
||||
isc_resourcevalue_t old_openfiles;
|
||||
#ifdef HAVE_LIBSCF
|
||||
char *instance = NULL;
|
||||
#endif
|
||||
@@ -603,6 +614,13 @@ setup(void) {
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ISC_PLATFORM_USETHREADS
|
||||
/*
|
||||
* Check for the number of cpu's before ns_os_chroot().
|
||||
*/
|
||||
ns_g_cpus_detected = isc_os_ncpus();
|
||||
#endif
|
||||
|
||||
ns_os_chroot(ns_g_chrootdir);
|
||||
|
||||
/*
|
||||
@@ -655,6 +673,23 @@ setup(void) {
|
||||
(void)isc_resource_getlimit(isc_resource_openfiles,
|
||||
&ns_g_initopenfiles);
|
||||
|
||||
/*
|
||||
* System resources cannot effectively be tuned on some systems.
|
||||
* Raise the limit in such cases for safety.
|
||||
*/
|
||||
old_openfiles = ns_g_initopenfiles;
|
||||
ns_os_adjustnofile();
|
||||
(void)isc_resource_getlimit(isc_resource_openfiles,
|
||||
&ns_g_initopenfiles);
|
||||
if (old_openfiles != ns_g_initopenfiles) {
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_MAIN, ISC_LOG_NOTICE,
|
||||
"adjusted limit on open files from "
|
||||
"%" ISC_PRINT_QUADFORMAT "u to "
|
||||
"%" ISC_PRINT_QUADFORMAT "u",
|
||||
old_openfiles, ns_g_initopenfiles);
|
||||
}
|
||||
|
||||
/*
|
||||
* If the named configuration filename is relative, prepend the current
|
||||
* directory's name before possibly changing to another directory.
|
||||
@@ -665,7 +700,7 @@ setup(void) {
|
||||
sizeof(absolute_conffile));
|
||||
if (result != ISC_R_SUCCESS)
|
||||
ns_main_earlyfatal("could not construct absolute path of "
|
||||
"configuration file: %s",
|
||||
"configuration file: %s",
|
||||
isc_result_totext(result));
|
||||
ns_g_conffile = absolute_conffile;
|
||||
}
|
||||
@@ -684,7 +719,7 @@ setup(void) {
|
||||
|
||||
#ifdef DLZ
|
||||
/*
|
||||
* Registyer any DLZ drivers.
|
||||
* Register any DLZ drivers.
|
||||
*/
|
||||
result = dlz_drivers_init();
|
||||
if (result != ISC_R_SUCCESS)
|
||||
@@ -757,7 +792,7 @@ ns_smf_get_instance(char **ins_name, int debug, isc_mem_t *mctx) {
|
||||
if (debug)
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"scf_handle_create() failed: %s",
|
||||
scf_strerror(scf_error()));
|
||||
scf_strerror(scf_error()));
|
||||
return (ISC_R_FAILURE);
|
||||
}
|
||||
|
||||
@@ -816,10 +851,10 @@ main(int argc, char *argv[]) {
|
||||
* strings named.core | grep "named version:"
|
||||
*/
|
||||
strlcat(version,
|
||||
#ifdef __DATE__
|
||||
"named version: BIND " VERSION " (" __DATE__ ")",
|
||||
#else
|
||||
#if defined(NO_VERSION_DATE) || !defined(__DATE__)
|
||||
"named version: BIND " VERSION,
|
||||
#else
|
||||
"named version: BIND " VERSION " (" __DATE__ ")",
|
||||
#endif
|
||||
sizeof(version));
|
||||
result = isc_file_progname(*argv, program_name, sizeof(program_name));
|
||||
|
||||
+20
-5
@@ -1,7 +1,7 @@
|
||||
.\" Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: named.8,v 1.20.18.15 2007/06/20 02:26:58 marka Exp $
|
||||
.\" $Id: named.8,v 1.20.18.17 2009/07/11 01:31:44 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -33,7 +33,7 @@
|
||||
named \- Internet domain name server
|
||||
.SH "SYNOPSIS"
|
||||
.HP 6
|
||||
\fBnamed\fR [\fB\-4\fR] [\fB\-6\fR] [\fB\-c\ \fR\fB\fIconfig\-file\fR\fR] [\fB\-d\ \fR\fB\fIdebug\-level\fR\fR] [\fB\-f\fR] [\fB\-g\fR] [\fB\-m\ \fR\fB\fIflag\fR\fR] [\fB\-n\ \fR\fB\fI#cpus\fR\fR] [\fB\-p\ \fR\fB\fIport\fR\fR] [\fB\-s\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-u\ \fR\fB\fIuser\fR\fR] [\fB\-v\fR] [\fB\-x\ \fR\fB\fIcache\-file\fR\fR]
|
||||
\fBnamed\fR [\fB\-4\fR] [\fB\-6\fR] [\fB\-c\ \fR\fB\fIconfig\-file\fR\fR] [\fB\-d\ \fR\fB\fIdebug\-level\fR\fR] [\fB\-f\fR] [\fB\-g\fR] [\fB\-m\ \fR\fB\fIflag\fR\fR] [\fB\-n\ \fR\fB\fI#cpus\fR\fR] [\fB\-p\ \fR\fB\fIport\fR\fR] [\fB\-s\fR] [\fB\-S\ \fR\fB\fI#max\-socks\fR\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-u\ \fR\fB\fIuser\fR\fR] [\fB\-v\fR] [\fB\-x\ \fR\fB\fIcache\-file\fR\fR]
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
\fBnamed\fR
|
||||
@@ -131,6 +131,21 @@ This option is mainly of interest to BIND 9 developers and may be removed or cha
|
||||
.RE
|
||||
.RE
|
||||
.PP
|
||||
\-S \fI#max\-socks\fR
|
||||
.RS 4
|
||||
Allow
|
||||
\fBnamed\fR
|
||||
to use up to
|
||||
\fI#max\-socks\fR
|
||||
sockets.
|
||||
.RS
|
||||
.B "Warning:"
|
||||
This option should be unnecessary for the vast majority of users. The use of this option could even be harmful because the specified value may exceed the limitation of the underlying system API. It is therefore set only when the default configuration causes exhaustion of file descriptors and the operational environment is known to support the specified number of sockets. Note also that the actual maximum number is normally a little fewer than the specified value because
|
||||
\fBnamed\fR
|
||||
reserves some file descriptors for its internal use.
|
||||
.RE
|
||||
.RE
|
||||
.PP
|
||||
\-t \fIdirectory\fR
|
||||
.RS 4
|
||||
Chroot to
|
||||
@@ -230,7 +245,7 @@ BIND 9 Administrator Reference Manual.
|
||||
.PP
|
||||
Internet Systems Consortium
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004\-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004\-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
Copyright \(co 2000, 2001, 2003 Internet Software Consortium.
|
||||
.br
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.\" Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
@@ -12,7 +12,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: named.conf.5,v 1.1.2.26 2007/08/19 23:26:13 marka Exp $
|
||||
.\" $Id: named.conf.5,v 1.1.2.28 2009/07/11 01:31:45 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -174,6 +174,7 @@ options {
|
||||
port \fIinteger\fR;
|
||||
querylog \fIboolean\fR;
|
||||
recursing\-file \fIquoted_string\fR;
|
||||
reserved\-sockets \fIinteger\fR;
|
||||
random\-device \fIquoted_string\fR;
|
||||
recursive\-clients \fIinteger\fR;
|
||||
serial\-query\-rate \fIinteger\fR;
|
||||
@@ -516,5 +517,5 @@ zone \fIstring\fR \fIoptional_class\fR {
|
||||
\fBrndc\fR(8),
|
||||
BIND 9 Administrator Reference Manual.
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004\-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004\-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: named.conf.docbook,v 1.1.2.29.12.2 2008/07/23 23:48:17 tbox Exp $ -->
|
||||
<!-- $Id: named.conf.docbook,v 1.1.2.31 2008/09/04 23:46:08 tbox Exp $ -->
|
||||
<refentry>
|
||||
<refentryinfo>
|
||||
<date>Aug 13, 2004</date>
|
||||
|
||||
+18
-17
@@ -1,7 +1,7 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
@@ -13,7 +13,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: named.conf.html,v 1.1.2.35 2007/08/19 23:26:13 marka Exp $ -->
|
||||
<!-- $Id: named.conf.html,v 1.1.2.37 2009/07/11 01:31:45 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -31,7 +31,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">named.conf</code> </p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2542042"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543342"></a><h2>DESCRIPTION</h2>
|
||||
<p><code class="filename">named.conf</code> is the configuration file
|
||||
for
|
||||
<span><strong class="command">named</strong></span>. Statements are enclosed
|
||||
@@ -50,14 +50,14 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543367"></a><h2>ACL</h2>
|
||||
<a name="id2543370"></a><h2>ACL</h2>
|
||||
<div class="literallayout"><p><br>
|
||||
acl <em class="replaceable"><code>string</code></em> { <em class="replaceable"><code>address_match_element</code></em>; ... };<br>
|
||||
<br>
|
||||
</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543383"></a><h2>KEY</h2>
|
||||
<a name="id2543386"></a><h2>KEY</h2>
|
||||
<div class="literallayout"><p><br>
|
||||
key <em class="replaceable"><code>domain_name</code></em> {<br>
|
||||
algorithm <em class="replaceable"><code>string</code></em>;<br>
|
||||
@@ -66,7 +66,7 @@ key
|
||||
</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543402"></a><h2>MASTERS</h2>
|
||||
<a name="id2543405"></a><h2>MASTERS</h2>
|
||||
<div class="literallayout"><p><br>
|
||||
masters <em class="replaceable"><code>string</code></em> [<span class="optional"> port <em class="replaceable"><code>integer</code></em> </span>] {<br>
|
||||
( <em class="replaceable"><code>masters</code></em> | <em class="replaceable"><code>ipv4_address</code></em> [<span class="optional">port <em class="replaceable"><code>integer</code></em></span>] |<br>
|
||||
@@ -75,7 +75,7 @@ masters
|
||||
</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543448"></a><h2>SERVER</h2>
|
||||
<a name="id2543451"></a><h2>SERVER</h2>
|
||||
<div class="literallayout"><p><br>
|
||||
server ( <em class="replaceable"><code>ipv4_address[<span class="optional">/prefixlen</span>]</code></em> | <em class="replaceable"><code>ipv6_address[<span class="optional">/prefixlen</span>]</code></em> ) {<br>
|
||||
bogus <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
@@ -97,7 +97,7 @@ server
|
||||
</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543516"></a><h2>TRUSTED-KEYS</h2>
|
||||
<a name="id2543520"></a><h2>TRUSTED-KEYS</h2>
|
||||
<div class="literallayout"><p><br>
|
||||
trusted-keys {<br>
|
||||
<em class="replaceable"><code>domain_name</code></em> <em class="replaceable"><code>flags</code></em> <em class="replaceable"><code>protocol</code></em> <em class="replaceable"><code>algorithm</code></em> <em class="replaceable"><code>key</code></em>; ... <br>
|
||||
@@ -105,7 +105,7 @@ trusted-keys
|
||||
</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543542"></a><h2>CONTROLS</h2>
|
||||
<a name="id2543545"></a><h2>CONTROLS</h2>
|
||||
<div class="literallayout"><p><br>
|
||||
controls {<br>
|
||||
inet ( <em class="replaceable"><code>ipv4_address</code></em> | <em class="replaceable"><code>ipv6_address</code></em> | * )<br>
|
||||
@@ -117,7 +117,7 @@ controls
|
||||
</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543577"></a><h2>LOGGING</h2>
|
||||
<a name="id2543580"></a><h2>LOGGING</h2>
|
||||
<div class="literallayout"><p><br>
|
||||
logging {<br>
|
||||
channel <em class="replaceable"><code>string</code></em> {<br>
|
||||
@@ -135,7 +135,7 @@ logging
|
||||
</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543616"></a><h2>LWRES</h2>
|
||||
<a name="id2543619"></a><h2>LWRES</h2>
|
||||
<div class="literallayout"><p><br>
|
||||
lwres {<br>
|
||||
listen-on [<span class="optional"> port <em class="replaceable"><code>integer</code></em> </span>] {<br>
|
||||
@@ -148,7 +148,7 @@ lwres
|
||||
</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543657"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543660"></a><h2>OPTIONS</h2>
|
||||
<div class="literallayout"><p><br>
|
||||
options {<br>
|
||||
avoid-v4-udp-ports { <em class="replaceable"><code>port</code></em>; ... };<br>
|
||||
@@ -172,6 +172,7 @@ options
|
||||
port <em class="replaceable"><code>integer</code></em>;<br>
|
||||
querylog <em class="replaceable"><code>boolean</code></em>;<br>
|
||||
recursing-file <em class="replaceable"><code>quoted_string</code></em>;<br>
|
||||
reserved-sockets <em class="replaceable"><code>integer</code></em>;<br>
|
||||
random-device <em class="replaceable"><code>quoted_string</code></em>;<br>
|
||||
recursive-clients <em class="replaceable"><code>integer</code></em>;<br>
|
||||
serial-query-rate <em class="replaceable"><code>integer</code></em>;<br>
|
||||
@@ -313,7 +314,7 @@ options
|
||||
</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544401"></a><h2>VIEW</h2>
|
||||
<a name="id2544407"></a><h2>VIEW</h2>
|
||||
<div class="literallayout"><p><br>
|
||||
view <em class="replaceable"><code>string</code></em> <em class="replaceable"><code>optional_class</code></em> {<br>
|
||||
match-clients { <em class="replaceable"><code>address_match_element</code></em>; ... };<br>
|
||||
@@ -453,7 +454,7 @@ view
|
||||
</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544966"></a><h2>ZONE</h2>
|
||||
<a name="id2544972"></a><h2>ZONE</h2>
|
||||
<div class="literallayout"><p><br>
|
||||
zone <em class="replaceable"><code>string</code></em> <em class="replaceable"><code>optional_class</code></em> {<br>
|
||||
type ( master | slave | stub | hint |<br>
|
||||
@@ -538,12 +539,12 @@ zone
|
||||
</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545319"></a><h2>FILES</h2>
|
||||
<a name="id2545325"></a><h2>FILES</h2>
|
||||
<p><code class="filename">/etc/named.conf</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545331"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2545337"></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>,
|
||||
<span class="citerefentry"><span class="refentrytitle">rndc</span>(8)</span>,
|
||||
|
||||
+31
-2
@@ -2,7 +2,7 @@
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2008 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
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: named.docbook,v 1.7.18.12 2007/08/28 07:20:01 tbox Exp $ -->
|
||||
<!-- $Id: named.docbook,v 1.7.18.14 2008/08/21 23:46:01 tbox Exp $ -->
|
||||
<refentry id="man.named">
|
||||
<refentryinfo>
|
||||
<date>June 30, 2000</date>
|
||||
@@ -41,6 +41,7 @@
|
||||
<year>2005</year>
|
||||
<year>2006</year>
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -64,6 +65,7 @@
|
||||
<arg><option>-n <replaceable class="parameter">#cpus</replaceable></option></arg>
|
||||
<arg><option>-p <replaceable class="parameter">port</replaceable></option></arg>
|
||||
<arg><option>-s</option></arg>
|
||||
<arg><option>-S <replaceable class="parameter">#max-socks</replaceable></option></arg>
|
||||
<arg><option>-t <replaceable class="parameter">directory</replaceable></option></arg>
|
||||
<arg><option>-u <replaceable class="parameter">user</replaceable></option></arg>
|
||||
<arg><option>-v</option></arg>
|
||||
@@ -214,6 +216,33 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-S <replaceable class="parameter">#max-socks</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Allow <command>named</command> to use up to
|
||||
<replaceable class="parameter">#max-socks</replaceable> sockets.
|
||||
</para>
|
||||
<warning>
|
||||
<para>
|
||||
This option should be unnecessary for the vast majority
|
||||
of users.
|
||||
The use of this option could even be harmful because the
|
||||
specified value may exceed the limitation of the
|
||||
underlying system API.
|
||||
It is therefore set only when the default configuration
|
||||
causes exhaustion of file descriptors and the
|
||||
operational environment is known to support the
|
||||
specified number of sockets.
|
||||
Note also that the actual maximum number is normally a little
|
||||
fewer than the specified value because
|
||||
<command>named</command> reserves some file descriptors
|
||||
for its internal use.
|
||||
</para>
|
||||
</warning>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-t <replaceable class="parameter">directory</replaceable></term>
|
||||
<listitem>
|
||||
|
||||
+36
-11
@@ -1,8 +1,8 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: named.html,v 1.6.18.21 2007/06/20 02:26:58 marka Exp $ -->
|
||||
<!-- $Id: named.html,v 1.6.18.23 2009/07/11 01:31:45 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -29,10 +29,10 @@
|
||||
</div>
|
||||
<div class="refsynopsisdiv">
|
||||
<h2>Synopsis</h2>
|
||||
<div class="cmdsynopsis"><p><code class="command">named</code> [<code class="option">-4</code>] [<code class="option">-6</code>] [<code class="option">-c <em class="replaceable"><code>config-file</code></em></code>] [<code class="option">-d <em class="replaceable"><code>debug-level</code></em></code>] [<code class="option">-f</code>] [<code class="option">-g</code>] [<code class="option">-m <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-n <em class="replaceable"><code>#cpus</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-s</code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-u <em class="replaceable"><code>user</code></em></code>] [<code class="option">-v</code>] [<code class="option">-x <em class="replaceable"><code>cache-file</code></em></code>]</p></div>
|
||||
<div class="cmdsynopsis"><p><code class="command">named</code> [<code class="option">-4</code>] [<code class="option">-6</code>] [<code class="option">-c <em class="replaceable"><code>config-file</code></em></code>] [<code class="option">-d <em class="replaceable"><code>debug-level</code></em></code>] [<code class="option">-f</code>] [<code class="option">-g</code>] [<code class="option">-m <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-n <em class="replaceable"><code>#cpus</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-s</code>] [<code class="option">-S <em class="replaceable"><code>#max-socks</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-u <em class="replaceable"><code>user</code></em></code>] [<code class="option">-v</code>] [<code class="option">-x <em class="replaceable"><code>cache-file</code></em></code>]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543452"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543464"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">named</strong></span>
|
||||
is a Domain Name System (DNS) server,
|
||||
part of the BIND 9 distribution from ISC. For more
|
||||
@@ -47,7 +47,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543477"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543489"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-4</span></dt>
|
||||
<dd><p>
|
||||
@@ -126,6 +126,31 @@
|
||||
</p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt><span class="term">-S <em class="replaceable"><code>#max-socks</code></em></span></dt>
|
||||
<dd>
|
||||
<p>
|
||||
Allow <span><strong class="command">named</strong></span> to use up to
|
||||
<em class="replaceable"><code>#max-socks</code></em> sockets.
|
||||
</p>
|
||||
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<h3 class="title">Warning</h3>
|
||||
<p>
|
||||
This option should be unnecessary for the vast majority
|
||||
of users.
|
||||
The use of this option could even be harmful because the
|
||||
specified value may exceed the limitation of the
|
||||
underlying system API.
|
||||
It is therefore set only when the default configuration
|
||||
causes exhaustion of file descriptors and the
|
||||
operational environment is known to support the
|
||||
specified number of sockets.
|
||||
Note also that the actual maximum number is normally a little
|
||||
fewer than the specified value because
|
||||
<span><strong class="command">named</strong></span> reserves some file descriptors
|
||||
for its internal use.
|
||||
</p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt><span class="term">-t <em class="replaceable"><code>directory</code></em></span></dt>
|
||||
<dd>
|
||||
<p>Chroot
|
||||
@@ -191,7 +216,7 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543864"></a><h2>SIGNALS</h2>
|
||||
<a name="id2543911"></a><h2>SIGNALS</h2>
|
||||
<p>
|
||||
In routine operation, signals should not be used to control
|
||||
the nameserver; <span><strong class="command">rndc</strong></span> should be used
|
||||
@@ -212,7 +237,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543912"></a><h2>CONFIGURATION</h2>
|
||||
<a name="id2543959"></a><h2>CONFIGURATION</h2>
|
||||
<p>
|
||||
The <span><strong class="command">named</strong></span> configuration file is too complex
|
||||
to describe in detail here. A complete description is provided
|
||||
@@ -221,7 +246,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543929"></a><h2>FILES</h2>
|
||||
<a name="id2543976"></a><h2>FILES</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term"><code class="filename">/etc/named.conf</code></span></dt>
|
||||
<dd><p>
|
||||
@@ -234,7 +259,7 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543969"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2544016"></a><h2>SEE ALSO</h2>
|
||||
<p><em class="citetitle">RFC 1033</em>,
|
||||
<em class="citetitle">RFC 1034</em>,
|
||||
<em class="citetitle">RFC 1035</em>,
|
||||
@@ -247,7 +272,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544039"></a><h2>AUTHOR</h2>
|
||||
<a name="id2544086"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
+215
-63
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: query.c,v 1.257.18.40 2007/09/26 03:08:14 each Exp $ */
|
||||
/* $Id: query.c,v 1.257.18.52 2009/11/25 04:50:24 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -109,18 +109,23 @@
|
||||
#define DNS_GETDB_NOLOG 0x02U
|
||||
#define DNS_GETDB_PARTIAL 0x04U
|
||||
|
||||
#define PENDINGOK(x) (((x) & DNS_DBFIND_PENDINGOK) != 0)
|
||||
|
||||
typedef struct client_additionalctx {
|
||||
ns_client_t *client;
|
||||
dns_rdataset_t *rdataset;
|
||||
} client_additionalctx_t;
|
||||
|
||||
static void
|
||||
static isc_result_t
|
||||
query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype);
|
||||
|
||||
static isc_boolean_t
|
||||
validate(ns_client_t *client, dns_db_t *db, dns_name_t *name,
|
||||
dns_rdataset_t *rdataset, dns_rdataset_t *sigrdataset);
|
||||
|
||||
static inline void
|
||||
log_queryerror(ns_client_t *client, isc_result_t result, int line, int level);
|
||||
|
||||
/*%
|
||||
* Increment query statistics counters.
|
||||
*/
|
||||
@@ -163,8 +168,14 @@ query_send(ns_client_t *client) {
|
||||
}
|
||||
|
||||
static void
|
||||
query_error(ns_client_t *client, isc_result_t result) {
|
||||
query_error(ns_client_t *client, isc_result_t result, int line) {
|
||||
int loglevel = ISC_LOG_DEBUG(3);
|
||||
|
||||
if (result == DNS_R_SERVFAIL)
|
||||
loglevel = ISC_LOG_DEBUG(1);
|
||||
|
||||
inc_stats(client, dns_statscounter_failure);
|
||||
log_queryerror(client, result, line, loglevel);
|
||||
ns_client_error(client, result);
|
||||
}
|
||||
|
||||
@@ -940,7 +951,7 @@ query_getdb(ns_client_t *client, dns_name_t *name, dns_rdatatype_t qtype,
|
||||
zonep, dbp, versionp);
|
||||
#endif
|
||||
|
||||
/* If successfull, Transfer ownership of zone. */
|
||||
/* If successful, Transfer ownership of zone. */
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
#ifdef DLZ
|
||||
*zonep = zone;
|
||||
@@ -1157,7 +1168,7 @@ query_addadditional(void *arg, dns_name_t *name, dns_rdatatype_t qtype) {
|
||||
goto cleanup;
|
||||
|
||||
/*
|
||||
* Don't poision caches using the bailiwick protection model.
|
||||
* Don't poison caches using the bailiwick protection model.
|
||||
*/
|
||||
if (!dns_name_issubdomain(name, dns_db_origin(client->query.gluedb)))
|
||||
goto cleanup;
|
||||
@@ -1631,7 +1642,7 @@ query_addadditional2(void *arg, dns_name_t *name, dns_rdatatype_t qtype) {
|
||||
goto cleanup;
|
||||
|
||||
/*
|
||||
* Don't poision caches using the bailiwick protection model.
|
||||
* Don't poison caches using the bailiwick protection model.
|
||||
*/
|
||||
if (!dns_name_issubdomain(name, dns_db_origin(client->query.gluedb)))
|
||||
goto cleanup;
|
||||
@@ -1721,8 +1732,8 @@ query_addadditional2(void *arg, dns_name_t *name, dns_rdatatype_t qtype) {
|
||||
*/
|
||||
if (result == ISC_R_SUCCESS &&
|
||||
additionaltype == dns_rdatasetadditional_fromcache &&
|
||||
(rdataset->trust == dns_trust_pending ||
|
||||
rdataset->trust == dns_trust_glue) &&
|
||||
(DNS_TRUST_PENDING(rdataset->trust) ||
|
||||
DNS_TRUST_GLUE(rdataset->trust)) &&
|
||||
!validate(client, db, fname, rdataset, sigrdataset)) {
|
||||
dns_rdataset_disassociate(rdataset);
|
||||
if (dns_rdataset_isassociated(sigrdataset))
|
||||
@@ -1761,8 +1772,8 @@ query_addadditional2(void *arg, dns_name_t *name, dns_rdatatype_t qtype) {
|
||||
*/
|
||||
if (result == ISC_R_SUCCESS &&
|
||||
additionaltype == dns_rdatasetadditional_fromcache &&
|
||||
(rdataset->trust == dns_trust_pending ||
|
||||
rdataset->trust == dns_trust_glue) &&
|
||||
(DNS_TRUST_PENDING(rdataset->trust) ||
|
||||
DNS_TRUST_GLUE(rdataset->trust)) &&
|
||||
!validate(client, db, fname, rdataset, sigrdataset)) {
|
||||
dns_rdataset_disassociate(rdataset);
|
||||
if (dns_rdataset_isassociated(sigrdataset))
|
||||
@@ -2291,14 +2302,14 @@ mark_secure(ns_client_t *client, dns_db_t *db, dns_name_t *name,
|
||||
|
||||
/*
|
||||
* Find the secure key that corresponds to rrsig.
|
||||
* Note: 'keyrdataset' maintains state between sucessive calls,
|
||||
* Note: 'keyrdataset' maintains state between successive calls,
|
||||
* there may be multiple keys with the same keyid.
|
||||
* Return ISC_FALSE if we have exhausted all the possible keys.
|
||||
*/
|
||||
static isc_boolean_t
|
||||
get_key(ns_client_t *client, dns_db_t *db, dns_rdata_rrsig_t *rrsig,
|
||||
dns_rdataset_t *keyrdataset, dst_key_t **keyp)
|
||||
{
|
||||
{
|
||||
isc_result_t result;
|
||||
dns_dbnode_t *node = NULL;
|
||||
isc_boolean_t secure = ISC_FALSE;
|
||||
@@ -2331,12 +2342,12 @@ get_key(ns_client_t *client, dns_db_t *db, dns_rdata_rrsig_t *rrsig,
|
||||
isc_buffer_init(&b, rdata.data, rdata.length);
|
||||
isc_buffer_add(&b, rdata.length);
|
||||
result = dst_key_fromdns(&rrsig->signer, rdata.rdclass, &b,
|
||||
client->mctx, keyp);
|
||||
client->mctx, keyp);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
continue;
|
||||
if (rrsig->algorithm == (dns_secalg_t)dst_key_alg(*keyp) &&
|
||||
rrsig->keyid == (dns_keytag_t)dst_key_id(*keyp) &&
|
||||
dst_key_iszonekey(*keyp)) {
|
||||
rrsig->keyid == (dns_keytag_t)dst_key_id(*keyp) &&
|
||||
dst_key_iszonekey(*keyp)) {
|
||||
secure = ISC_TRUE;
|
||||
break;
|
||||
}
|
||||
@@ -2354,7 +2365,7 @@ verify(dst_key_t *key, dns_name_t *name, dns_rdataset_t *rdataset,
|
||||
isc_boolean_t ignore = ISC_FALSE;
|
||||
|
||||
dns_fixedname_init(&fixed);
|
||||
|
||||
|
||||
again:
|
||||
result = dns_dnssec_verify2(name, rdataset, key, ignore, mctx,
|
||||
rdata, NULL);
|
||||
@@ -2382,7 +2393,7 @@ validate(ns_client_t *client, dns_db_t *db, dns_name_t *name,
|
||||
|
||||
if (sigrdataset == NULL || !dns_rdataset_isassociated(sigrdataset))
|
||||
return (ISC_FALSE);
|
||||
|
||||
|
||||
for (result = dns_rdataset_first(sigrdataset);
|
||||
result == ISC_R_SUCCESS;
|
||||
result = dns_rdataset_next(sigrdataset)) {
|
||||
@@ -2547,14 +2558,14 @@ query_addbestns(ns_client_t *client) {
|
||||
/*
|
||||
* Attempt to validate RRsets that are pending or that are glue.
|
||||
*/
|
||||
if ((rdataset->trust == dns_trust_pending ||
|
||||
(sigrdataset != NULL && sigrdataset->trust == dns_trust_pending))
|
||||
if ((DNS_TRUST_PENDING(rdataset->trust) ||
|
||||
(sigrdataset != NULL && DNS_TRUST_PENDING(sigrdataset->trust)))
|
||||
&& !validate(client, db, fname, rdataset, sigrdataset) &&
|
||||
(client->query.dboptions & DNS_DBFIND_PENDINGOK) == 0)
|
||||
!PENDINGOK(client->query.dboptions))
|
||||
goto cleanup;
|
||||
|
||||
if ((rdataset->trust == dns_trust_glue ||
|
||||
(sigrdataset != NULL && sigrdataset->trust == dns_trust_glue)) &&
|
||||
if ((DNS_TRUST_GLUE(rdataset->trust) ||
|
||||
(sigrdataset != NULL && DNS_TRUST_GLUE(sigrdataset->trust))) &&
|
||||
!validate(client, db, fname, rdataset, sigrdataset) &&
|
||||
SECURE(client) && WANTDNSSEC(client))
|
||||
goto cleanup;
|
||||
@@ -2683,7 +2694,7 @@ query_addwildcardproof(ns_client_t *client, dns_db_t *db,
|
||||
node = NULL;
|
||||
|
||||
/*
|
||||
* Get the NOQNAME proof then if !ispositve
|
||||
* Get the NOQNAME proof then if !ispositive
|
||||
* get the NOWILDCARD proof.
|
||||
*
|
||||
* DNS_DBFIND_NOWILD finds the NSEC records that covers the
|
||||
@@ -2757,6 +2768,13 @@ query_addwildcardproof(ns_client_t *client, dns_db_t *db,
|
||||
&olabels);
|
||||
(void)dns_name_fullcompare(name, &nsec.next, &order,
|
||||
&nlabels);
|
||||
/*
|
||||
* Check for a pathological condition created when
|
||||
* serving some malformed signed zones and bail out.
|
||||
*/
|
||||
if (dns_name_countlabels(name) == nlabels)
|
||||
goto cleanup;
|
||||
|
||||
if (olabels > nlabels)
|
||||
dns_name_split(name, olabels, NULL, wname);
|
||||
else
|
||||
@@ -2855,8 +2873,12 @@ query_addnxrrsetnsec(ns_client_t *client, dns_db_t *db,
|
||||
static void
|
||||
query_resume(isc_task_t *task, isc_event_t *event) {
|
||||
dns_fetchevent_t *devent = (dns_fetchevent_t *)event;
|
||||
dns_fetch_t *fetch;
|
||||
ns_client_t *client;
|
||||
isc_boolean_t fetch_cancelled, client_shuttingdown;
|
||||
isc_boolean_t fetch_canceled, client_shuttingdown;
|
||||
isc_result_t result;
|
||||
isc_logcategory_t *logcategory = NS_LOGCATEGORY_QUERY_EERRORS;
|
||||
int errorloglevel;
|
||||
|
||||
/*
|
||||
* Resume a query after recursion.
|
||||
@@ -2877,30 +2899,31 @@ query_resume(isc_task_t *task, isc_event_t *event) {
|
||||
*/
|
||||
INSIST(devent->fetch == client->query.fetch);
|
||||
client->query.fetch = NULL;
|
||||
fetch_cancelled = ISC_FALSE;
|
||||
fetch_canceled = ISC_FALSE;
|
||||
/*
|
||||
* Update client->now.
|
||||
*/
|
||||
isc_stdtime_get(&client->now);
|
||||
} else {
|
||||
/*
|
||||
* This is a fetch completion event for a cancelled fetch.
|
||||
* This is a fetch completion event for a canceled fetch.
|
||||
* Clean up and don't resume the find.
|
||||
*/
|
||||
fetch_cancelled = ISC_TRUE;
|
||||
fetch_canceled = ISC_TRUE;
|
||||
}
|
||||
UNLOCK(&client->query.fetchlock);
|
||||
INSIST(client->query.fetch == NULL);
|
||||
|
||||
client->query.attributes &= ~NS_QUERYATTR_RECURSING;
|
||||
dns_resolver_destroyfetch(&devent->fetch);
|
||||
fetch = devent->fetch;
|
||||
devent->fetch = NULL;
|
||||
|
||||
/*
|
||||
* If this client is shutting down, or this transaction
|
||||
* has timed out, do not resume the find.
|
||||
*/
|
||||
client_shuttingdown = ns_client_shuttingdown(client);
|
||||
if (fetch_cancelled || client_shuttingdown) {
|
||||
if (fetch_canceled || client_shuttingdown) {
|
||||
if (devent->node != NULL)
|
||||
dns_db_detachnode(devent->db, &devent->node);
|
||||
if (devent->db != NULL)
|
||||
@@ -2909,8 +2932,8 @@ query_resume(isc_task_t *task, isc_event_t *event) {
|
||||
if (devent->sigrdataset != NULL)
|
||||
query_putrdataset(client, &devent->sigrdataset);
|
||||
isc_event_free(&event);
|
||||
if (fetch_cancelled)
|
||||
query_error(client, DNS_R_SERVFAIL);
|
||||
if (fetch_canceled)
|
||||
query_error(client, DNS_R_SERVFAIL, __LINE__);
|
||||
else
|
||||
query_next(client, ISC_R_CANCELED);
|
||||
/*
|
||||
@@ -2918,19 +2941,34 @@ query_resume(isc_task_t *task, isc_event_t *event) {
|
||||
*/
|
||||
ns_client_detach(&client);
|
||||
} else {
|
||||
query_find(client, devent, 0);
|
||||
result = query_find(client, devent, 0);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
if (result == DNS_R_SERVFAIL)
|
||||
errorloglevel = ISC_LOG_DEBUG(2);
|
||||
else
|
||||
errorloglevel = ISC_LOG_DEBUG(4);
|
||||
if (isc_log_wouldlog(ns_g_lctx, errorloglevel)) {
|
||||
dns_resolver_logfetch(fetch, ns_g_lctx,
|
||||
logcategory,
|
||||
NS_LOGMODULE_QUERY,
|
||||
errorloglevel, ISC_FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dns_resolver_destroyfetch(&fetch);
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
query_recurse(ns_client_t *client, dns_rdatatype_t qtype, dns_name_t *qdomain,
|
||||
dns_rdataset_t *nameservers)
|
||||
dns_rdataset_t *nameservers, isc_boolean_t resuming)
|
||||
{
|
||||
isc_result_t result;
|
||||
dns_rdataset_t *rdataset, *sigrdataset;
|
||||
isc_sockaddr_t *peeraddr;
|
||||
|
||||
inc_stats(client, dns_statscounter_recursion);
|
||||
if (!resuming)
|
||||
inc_stats(client, dns_statscounter_recursion);
|
||||
|
||||
/*
|
||||
* We are about to recurse, which means that this client will
|
||||
@@ -3045,6 +3083,7 @@ query_recurse(ns_client_t *client, dns_rdatatype_t qtype, dns_name_t *qdomain,
|
||||
do { \
|
||||
eresult = r; \
|
||||
want_restart = ISC_FALSE; \
|
||||
line = __LINE__; \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
@@ -3162,11 +3201,11 @@ query_addnoqnameproof(ns_client_t *client, dns_rdataset_t *rdataset) {
|
||||
|
||||
cleanup:
|
||||
if (nsec != NULL)
|
||||
query_putrdataset(client, &nsec);
|
||||
if (nsecsig != NULL)
|
||||
query_putrdataset(client, &nsecsig);
|
||||
if (fname != NULL)
|
||||
query_releasename(client, &fname);
|
||||
query_putrdataset(client, &nsec);
|
||||
if (nsecsig != NULL)
|
||||
query_putrdataset(client, &nsecsig);
|
||||
if (fname != NULL)
|
||||
query_releasename(client, &fname);
|
||||
}
|
||||
|
||||
static inline void
|
||||
@@ -3269,12 +3308,12 @@ warn_rfc1918(ns_client_t *client, dns_name_t *fname, dns_rdataset_t *rdataset) {
|
||||
dns_rdata_soa_t soa;
|
||||
dns_rdataset_t found;
|
||||
isc_result_t result;
|
||||
|
||||
|
||||
for (i = 0; i < (sizeof(rfc1918names)/sizeof(*rfc1918names)); i++) {
|
||||
if (dns_name_issubdomain(fname, &rfc1918names[i])) {
|
||||
dns_rdataset_init(&found);
|
||||
result = dns_ncache_getrdataset(rdataset,
|
||||
&rfc1918names[i],
|
||||
&rfc1918names[i],
|
||||
dns_rdatatype_soa,
|
||||
&found);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
@@ -3284,8 +3323,7 @@ warn_rfc1918(ns_client_t *client, dns_name_t *fname, dns_rdataset_t *rdataset) {
|
||||
RUNTIME_CHECK(result == ISC_R_SUCCESS);
|
||||
dns_rdataset_current(&found, &rdata);
|
||||
result = dns_rdata_tostruct(&rdata, &soa, NULL);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return;
|
||||
RUNTIME_CHECK(result == ISC_R_SUCCESS);
|
||||
if (dns_name_equal(&soa.origin, &prisoner) &&
|
||||
dns_name_equal(&soa.contact, &hostmaster)) {
|
||||
char buf[DNS_NAME_FORMATSIZE];
|
||||
@@ -3307,7 +3345,7 @@ warn_rfc1918(ns_client_t *client, dns_name_t *fname, dns_rdataset_t *rdataset) {
|
||||
* If 'event' is non-NULL, we are returning from recursion and 'qtype'
|
||||
* is ignored. Otherwise, 'qtype' is the query type.
|
||||
*/
|
||||
static void
|
||||
static isc_result_t
|
||||
query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
{
|
||||
dns_db_t *db, *zdb;
|
||||
@@ -3335,6 +3373,10 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
unsigned int options;
|
||||
isc_boolean_t empty_wild;
|
||||
dns_rdataset_t *noqname;
|
||||
isc_boolean_t resuming;
|
||||
int line = -1;
|
||||
dns_rdataset_t tmprdataset;
|
||||
unsigned int dboptions;
|
||||
|
||||
CTRACE("query_find");
|
||||
|
||||
@@ -3360,6 +3402,8 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
need_wildcardproof = ISC_FALSE;
|
||||
empty_wild = ISC_FALSE;
|
||||
options = 0;
|
||||
resuming = ISC_FALSE;
|
||||
is_zone = ISC_FALSE;
|
||||
|
||||
if (event != NULL) {
|
||||
/*
|
||||
@@ -3369,7 +3413,6 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
|
||||
want_restart = ISC_FALSE;
|
||||
authoritative = ISC_FALSE;
|
||||
is_zone = ISC_FALSE;
|
||||
|
||||
qtype = event->qtype;
|
||||
if (qtype == dns_rdatatype_rrsig || qtype == dns_rdatatype_sig)
|
||||
@@ -3402,6 +3445,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
}
|
||||
|
||||
result = event->result;
|
||||
resuming = ISC_TRUE;
|
||||
|
||||
goto resume;
|
||||
}
|
||||
@@ -3544,9 +3588,49 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
/*
|
||||
* Now look for an answer in the database.
|
||||
*/
|
||||
dboptions = client->query.dboptions;
|
||||
if (sigrdataset == NULL && client->view->enablednssec) {
|
||||
/*
|
||||
* If the client doesn't want DNSSEC we still want to
|
||||
* look for any data pending validation to save a remote
|
||||
* lookup if possible.
|
||||
*/
|
||||
dns_rdataset_init(&tmprdataset);
|
||||
sigrdataset = &tmprdataset;
|
||||
dboptions |= DNS_DBFIND_PENDINGOK;
|
||||
}
|
||||
refind:
|
||||
result = dns_db_find(db, client->query.qname, version, type,
|
||||
client->query.dboptions, client->now,
|
||||
&node, fname, rdataset, sigrdataset);
|
||||
dboptions, client->now, &node, fname,
|
||||
rdataset, sigrdataset);
|
||||
/*
|
||||
* If we have found pending data try to validate it.
|
||||
* If the data does not validate as secure and we can't
|
||||
* use the unvalidated data requery the database with
|
||||
* pending disabled to prevent infinite looping.
|
||||
*/
|
||||
if (result != ISC_R_SUCCESS || !DNS_TRUST_PENDING(rdataset->trust))
|
||||
goto validation_done;
|
||||
if (validate(client, db, fname, rdataset, sigrdataset))
|
||||
goto validation_done;
|
||||
if (rdataset->trust != dns_trust_pending_answer ||
|
||||
!PENDINGOK(client->query.dboptions)) {
|
||||
dns_rdataset_disassociate(rdataset);
|
||||
if (sigrdataset != NULL &&
|
||||
dns_rdataset_isassociated(sigrdataset))
|
||||
dns_rdataset_disassociate(sigrdataset);
|
||||
if (sigrdataset == &tmprdataset)
|
||||
sigrdataset = NULL;
|
||||
dns_db_detachnode(db, &node);
|
||||
dboptions &= ~DNS_DBFIND_PENDINGOK;
|
||||
goto refind;
|
||||
}
|
||||
validation_done:
|
||||
if (sigrdataset == &tmprdataset) {
|
||||
if (dns_rdataset_isassociated(sigrdataset))
|
||||
dns_rdataset_disassociate(sigrdataset);
|
||||
sigrdataset = NULL;
|
||||
}
|
||||
|
||||
resume:
|
||||
CTRACE("query_find: resume");
|
||||
@@ -3602,7 +3686,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
*/
|
||||
if (RECURSIONOK(client)) {
|
||||
result = query_recurse(client, qtype,
|
||||
NULL, NULL);
|
||||
NULL, NULL, resuming);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
client->query.attributes |=
|
||||
NS_QUERYATTR_RECURSING;
|
||||
@@ -3773,10 +3857,12 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
*/
|
||||
if (dns_rdatatype_atparent(type))
|
||||
result = query_recurse(client, qtype,
|
||||
NULL, NULL);
|
||||
NULL, NULL,
|
||||
resuming);
|
||||
else
|
||||
result = query_recurse(client, qtype,
|
||||
fname, rdataset);
|
||||
fname, rdataset,
|
||||
resuming);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
client->query.attributes |=
|
||||
NS_QUERYATTR_RECURSING;
|
||||
@@ -4220,7 +4306,8 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
result = query_recurse(client,
|
||||
qtype,
|
||||
NULL,
|
||||
NULL);
|
||||
NULL,
|
||||
resuming);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
client->query.attributes |=
|
||||
NS_QUERYATTR_RECURSING;
|
||||
@@ -4374,7 +4461,8 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
* or if the client requested recursion and thus wanted
|
||||
* the complete answer, send an error response.
|
||||
*/
|
||||
query_error(client, eresult);
|
||||
INSIST(line >= 0);
|
||||
query_error(client, eresult, line);
|
||||
}
|
||||
ns_client_detach(&client);
|
||||
} else if (!RECURSING(client)) {
|
||||
@@ -4391,7 +4479,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
* is in the glue sort it to the start of the additional
|
||||
* section.
|
||||
*/
|
||||
if (client->message->counts[DNS_SECTION_ANSWER] == 0 &&
|
||||
if (ISC_LIST_EMPTY(client->message->sections[DNS_SECTION_ANSWER]) &&
|
||||
client->message->rcode == dns_rcode_noerror &&
|
||||
(qtype == dns_rdatatype_a || qtype == dns_rdatatype_aaaa))
|
||||
answer_in_glue(client, qtype);
|
||||
@@ -4400,10 +4488,22 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
client->view->auth_nxdomain == ISC_TRUE)
|
||||
client->message->flags |= DNS_MESSAGEFLAG_AA;
|
||||
|
||||
/*
|
||||
* If the response is somehow unexpected for the client and this
|
||||
* is a result of recursion, return an error to the caller
|
||||
* to indicate it may need to be logged.
|
||||
*/
|
||||
if (resuming &&
|
||||
(ISC_LIST_EMPTY(client->message->sections[DNS_SECTION_ANSWER]) ||
|
||||
client->message->rcode != dns_rcode_noerror))
|
||||
eresult = ISC_R_FAILURE;
|
||||
|
||||
query_send(client);
|
||||
ns_client_detach(&client);
|
||||
}
|
||||
CTRACE("query_find: done");
|
||||
|
||||
return (eresult);
|
||||
}
|
||||
|
||||
static inline void
|
||||
@@ -4430,6 +4530,48 @@ log_query(ns_client_t *client) {
|
||||
(client->opt != NULL) ? "E" : "");
|
||||
}
|
||||
|
||||
static inline void
|
||||
log_queryerror(ns_client_t *client, isc_result_t result, int line, int level) {
|
||||
char namebuf[DNS_NAME_FORMATSIZE];
|
||||
char typename[DNS_RDATATYPE_FORMATSIZE];
|
||||
char classname[DNS_RDATACLASS_FORMATSIZE];
|
||||
const char *namep, *typep, *classp, *sep1, *sep2;
|
||||
dns_rdataset_t *rdataset;
|
||||
|
||||
if (!isc_log_wouldlog(ns_g_lctx, level))
|
||||
return;
|
||||
|
||||
namep = typep = classp = sep1 = sep2 = "";
|
||||
|
||||
/*
|
||||
* Query errors can happen for various reasons. In some cases we cannot
|
||||
* even assume the query contains a valid question section, so we should
|
||||
* expect exceptional cases.
|
||||
*/
|
||||
if (client->query.origqname != NULL) {
|
||||
dns_name_format(client->query.origqname, namebuf,
|
||||
sizeof(namebuf));
|
||||
namep = namebuf;
|
||||
sep1 = " for ";
|
||||
|
||||
rdataset = ISC_LIST_HEAD(client->query.origqname->list);
|
||||
if (rdataset != NULL) {
|
||||
dns_rdataclass_format(rdataset->rdclass, classname,
|
||||
sizeof(classname));
|
||||
classp = classname;
|
||||
dns_rdatatype_format(rdataset->type, typename,
|
||||
sizeof(typename));
|
||||
typep = typename;
|
||||
sep2 = "/";
|
||||
}
|
||||
}
|
||||
|
||||
ns_client_log(client, NS_LOGCATEGORY_QUERY_EERRORS, NS_LOGMODULE_QUERY,
|
||||
level, "query failed (%s)%s%s%s%s%s%s at %s:%d",
|
||||
isc_result_totext(result), sep1, namep, sep2,
|
||||
classp, sep2, typep, __FILE__, line);
|
||||
}
|
||||
|
||||
void
|
||||
ns_query_start(ns_client_t *client) {
|
||||
isc_result_t result;
|
||||
@@ -4437,6 +4579,7 @@ ns_query_start(ns_client_t *client) {
|
||||
dns_rdataset_t *rdataset;
|
||||
ns_client_t *qclient;
|
||||
dns_rdatatype_t qtype;
|
||||
isc_boolean_t want_ad;
|
||||
|
||||
CTRACE("ns_query_start");
|
||||
|
||||
@@ -4489,7 +4632,7 @@ ns_query_start(ns_client_t *client) {
|
||||
*/
|
||||
result = dns_message_firstname(message, DNS_SECTION_QUESTION);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
query_error(client, result);
|
||||
query_error(client, result, __LINE__);
|
||||
return;
|
||||
}
|
||||
dns_message_currentname(message, DNS_SECTION_QUESTION,
|
||||
@@ -4502,9 +4645,9 @@ ns_query_start(ns_client_t *client) {
|
||||
* There's more than one QNAME in the question
|
||||
* section.
|
||||
*/
|
||||
query_error(client, DNS_R_FORMERR);
|
||||
query_error(client, DNS_R_FORMERR, __LINE__);
|
||||
} else
|
||||
query_error(client, result);
|
||||
query_error(client, result, __LINE__);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4515,7 +4658,7 @@ ns_query_start(ns_client_t *client) {
|
||||
* Check for multiple question queries, since edns1 is dead.
|
||||
*/
|
||||
if (message->counts[DNS_SECTION_QUESTION] > 1) {
|
||||
query_error(client, DNS_R_FORMERR);
|
||||
query_error(client, DNS_R_FORMERR, __LINE__);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4535,7 +4678,7 @@ ns_query_start(ns_client_t *client) {
|
||||
return;
|
||||
case dns_rdatatype_maila:
|
||||
case dns_rdatatype_mailb:
|
||||
query_error(client, DNS_R_NOTIMP);
|
||||
query_error(client, DNS_R_NOTIMP, __LINE__);
|
||||
return;
|
||||
case dns_rdatatype_tkey:
|
||||
result = dns_tkey_processquery(client->message,
|
||||
@@ -4544,10 +4687,10 @@ ns_query_start(ns_client_t *client) {
|
||||
if (result == ISC_R_SUCCESS)
|
||||
query_send(client);
|
||||
else
|
||||
query_error(client, result);
|
||||
query_error(client, result, __LINE__);
|
||||
return;
|
||||
default: /* TSIG, etc. */
|
||||
query_error(client, DNS_R_FORMERR);
|
||||
query_error(client, DNS_R_FORMERR, __LINE__);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -4575,6 +4718,15 @@ ns_query_start(ns_client_t *client) {
|
||||
if (message->flags & DNS_MESSAGEFLAG_CD)
|
||||
client->query.attributes &= ~NS_QUERYATTR_SECURE;
|
||||
|
||||
/*
|
||||
* Set 'want_ad' if the client has set AD in the query.
|
||||
* This allows AD to be returned on queries without DO set.
|
||||
*/
|
||||
if ((message->flags & DNS_MESSAGEFLAG_AD) != 0)
|
||||
want_ad = ISC_TRUE;
|
||||
else
|
||||
want_ad = ISC_FALSE;
|
||||
|
||||
/*
|
||||
* This is an ordinary query.
|
||||
*/
|
||||
@@ -4594,10 +4746,10 @@ ns_query_start(ns_client_t *client) {
|
||||
* Set AD. We must clear it if we add non-validated data to a
|
||||
* response.
|
||||
*/
|
||||
if (WANTDNSSEC(client))
|
||||
if (WANTDNSSEC(client) || want_ad)
|
||||
message->flags |= DNS_MESSAGEFLAG_AD;
|
||||
|
||||
qclient = NULL;
|
||||
ns_client_attach(client, &qclient);
|
||||
query_find(qclient, NULL, qtype);
|
||||
(void)query_find(qclient, NULL, qtype);
|
||||
}
|
||||
|
||||
+353
-175
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: os.h,v 1.22.18.3 2005/04/29 00:15:39 marka Exp $ */
|
||||
/* $Id: os.h,v 1.22.18.5 2008/10/24 01:43:17 tbox Exp $ */
|
||||
|
||||
#ifndef NS_OS_H
|
||||
#define NS_OS_H 1
|
||||
@@ -45,12 +45,14 @@ ns_os_inituserinfo(const char *username);
|
||||
void
|
||||
ns_os_changeuser(void);
|
||||
|
||||
void
|
||||
ns_os_adjustnofile(void);
|
||||
|
||||
void
|
||||
ns_os_minprivs(void);
|
||||
|
||||
void
|
||||
ns_os_writepidfile(const char *filename, isc_boolean_t first_time);
|
||||
|
||||
void
|
||||
ns_os_shutdown(void);
|
||||
|
||||
|
||||
+68
-14
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006, 2008, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: os.c,v 1.66.18.11 2006/02/03 23:51:38 marka Exp $ */
|
||||
/* $Id: os.c,v 1.66.18.21 2009/03/02 03:06:25 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/file.h>
|
||||
#include <isc/print.h>
|
||||
#include <isc/resource.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/strerror.h>
|
||||
#include <isc/string.h>
|
||||
@@ -116,6 +117,16 @@ static int dfd[2] = { -1, -1 };
|
||||
static isc_boolean_t non_root = ISC_FALSE;
|
||||
static isc_boolean_t non_root_caps = ISC_FALSE;
|
||||
|
||||
#if defined(HAVE_CAPSET)
|
||||
#undef _POSIX_SOURCE
|
||||
#ifdef HAVE_SYS_CAPABILITY_H
|
||||
#include <sys/capability.h>
|
||||
#else
|
||||
#include <linux/capability.h>
|
||||
int capset(cap_user_header_t hdrp, const cap_user_data_t datap);
|
||||
#endif
|
||||
#include <sys/prctl.h>
|
||||
#else
|
||||
/*%
|
||||
* We define _LINUX_FS_H to prevent it from being included. We don't need
|
||||
* anything from it, and the files it includes cause warnings with 2.2
|
||||
@@ -148,6 +159,7 @@ static isc_boolean_t non_root_caps = ISC_FALSE;
|
||||
#endif
|
||||
#define SYS_capset __NR_capset
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static void
|
||||
linux_setcaps(unsigned int caps) {
|
||||
@@ -165,13 +177,23 @@ linux_setcaps(unsigned int caps) {
|
||||
cap.effective = caps;
|
||||
cap.permitted = caps;
|
||||
cap.inheritable = 0;
|
||||
if (syscall(SYS_capset, &caphead, &cap) < 0) {
|
||||
#ifdef HAVE_CAPSET
|
||||
if (capset(&caphead, &cap) < 0 ) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
ns_main_earlyfatal("capset failed: %s:"
|
||||
" please ensure that the capset kernel"
|
||||
" module is loaded. see insmod(8)",
|
||||
strbuf);
|
||||
}
|
||||
#else
|
||||
if (syscall(SYS_capset, &caphead, &cap) < 0) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
ns_main_earlyfatal("syscall(capset) failed: %s:"
|
||||
" please ensure that the capset kernel"
|
||||
" module is loaded. see insmod(8)",
|
||||
strbuf);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -326,7 +348,7 @@ ns_os_daemonize(void) {
|
||||
/*
|
||||
* Wait for the child to finish loading for the first time.
|
||||
* This would be so much simpler if fork() worked once we
|
||||
* were multi-threaded.
|
||||
* were multi-threaded.
|
||||
*/
|
||||
(void)close(dfd[1]);
|
||||
do {
|
||||
@@ -383,10 +405,12 @@ ns_os_started(void) {
|
||||
char buf = 0;
|
||||
|
||||
/*
|
||||
* Signal to the parent that we stated successfully.
|
||||
* Signal to the parent that we started successfully.
|
||||
*/
|
||||
if (dfd[0] != -1 && dfd[1] != -1) {
|
||||
write(dfd[1], &buf, 1);
|
||||
if (write(dfd[1], &buf, 1) != 1)
|
||||
ns_main_earlyfatal("unable to signal parent that we "
|
||||
"otherwise started successfully.");
|
||||
close(dfd[1]);
|
||||
dfd[0] = dfd[1] = -1;
|
||||
}
|
||||
@@ -426,10 +450,14 @@ ns_os_chroot(const char *root) {
|
||||
ns_smf_chroot = 0;
|
||||
#endif
|
||||
if (root != NULL) {
|
||||
#ifdef HAVE_CHROOT
|
||||
if (chroot(root) < 0) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
ns_main_earlyfatal("chroot(): %s", strbuf);
|
||||
}
|
||||
#else
|
||||
ns_main_earlyfatal("chroot(): disabled");
|
||||
#endif
|
||||
if (chdir("/") < 0) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
ns_main_earlyfatal("chdir(/): %s", strbuf);
|
||||
@@ -496,15 +524,37 @@ ns_os_changeuser(void) {
|
||||
ns_main_earlyfatal("setuid(): %s", strbuf);
|
||||
}
|
||||
|
||||
#if defined(HAVE_LINUX_CAPABILITY_H) && !defined(HAVE_LINUXTHREADS)
|
||||
linux_minprivs();
|
||||
#endif
|
||||
#if defined(HAVE_SYS_PRCTL_H) && defined(PR_SET_DUMPABLE)
|
||||
/*
|
||||
* Restore the ability of named to drop core after the setuid()
|
||||
* call has disabled it.
|
||||
*/
|
||||
prctl(PR_SET_DUMPABLE,1,0,0,0);
|
||||
if (prctl(PR_SET_DUMPABLE,1,0,0,0) < 0) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
ns_main_earlywarning("prctl(PR_SET_DUMPABLE) failed: %s",
|
||||
strbuf);
|
||||
}
|
||||
#endif
|
||||
#if defined(HAVE_LINUX_CAPABILITY_H) && !defined(HAVE_LINUXTHREADS)
|
||||
linux_minprivs();
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
ns_os_adjustnofile() {
|
||||
#ifdef HAVE_LINUXTHREADS
|
||||
isc_result_t result;
|
||||
isc_resourcevalue_t newvalue;
|
||||
|
||||
/*
|
||||
* Linux: max number of open files specified by one thread doesn't seem
|
||||
* to apply to other threads on Linux.
|
||||
*/
|
||||
newvalue = ISC_RESOURCE_UNLIMITED;
|
||||
|
||||
result = isc_resource_setlimit(isc_resource_openfiles, newvalue);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
ns_main_earlywarning("couldn't adjust limit on open files");
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -540,7 +590,8 @@ safe_open(const char *filename, isc_boolean_t append) {
|
||||
fd = open(filename, O_WRONLY|O_CREAT|O_APPEND,
|
||||
S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
|
||||
else {
|
||||
(void)unlink(filename);
|
||||
if (unlink(filename) < 0 && errno != ENOENT)
|
||||
return (-1);
|
||||
fd = open(filename, O_WRONLY|O_CREAT|O_EXCL,
|
||||
S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
|
||||
}
|
||||
@@ -549,8 +600,11 @@ safe_open(const char *filename, isc_boolean_t append) {
|
||||
|
||||
static void
|
||||
cleanup_pidfile(void) {
|
||||
int n;
|
||||
if (pidfile != NULL) {
|
||||
(void)unlink(pidfile);
|
||||
n = unlink(pidfile);
|
||||
if (n == -1 && errno != ENOENT)
|
||||
ns_main_earlywarning("unlink '%s': failed", pidfile);
|
||||
free(pidfile);
|
||||
}
|
||||
pidfile = NULL;
|
||||
@@ -665,7 +719,7 @@ ns_os_shutdownmsg(char *command, isc_buffer_t *text) {
|
||||
ptr = next_token(&input, " \t");
|
||||
if (ptr == NULL)
|
||||
return;
|
||||
|
||||
|
||||
if (strcmp(ptr, "-p") != 0)
|
||||
return;
|
||||
|
||||
|
||||
+239
-61
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: update.c,v 1.109.18.23 2007/08/28 07:20:01 tbox Exp $ */
|
||||
/* $Id: update.c,v 1.109.18.33 2009/07/28 15:57:26 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
} \
|
||||
update_log(client, zone, LOGLEVEL_PROTOCOL, \
|
||||
"update %s: %s (%s)", _what, \
|
||||
msg, isc_result_totext(result)); \
|
||||
msg, isc_result_totext(result)); \
|
||||
if (result != ISC_R_SUCCESS) goto failure; \
|
||||
} while (0)
|
||||
|
||||
@@ -403,7 +403,7 @@ foreach_node_rr_action(void *data, dns_rdataset_t *rdataset) {
|
||||
result = dns_rdataset_next(rdataset))
|
||||
{
|
||||
rr_t rr = { 0, DNS_RDATA_INIT };
|
||||
|
||||
|
||||
dns_rdataset_current(rdataset, &rr.rdata);
|
||||
rr.ttl = rdataset->ttl;
|
||||
result = (*ctx->rr_action)(ctx->rr_action_data, &rr);
|
||||
@@ -619,6 +619,45 @@ rrset_exists(dns_db_t *db, dns_dbversion_t *ver,
|
||||
RETURN_EXISTENCE_FLAG;
|
||||
}
|
||||
|
||||
/*%
|
||||
* Set '*visible' to true if the RRset exists and is part of the
|
||||
* visible zone. Otherwise '*visible' is set to false unless a
|
||||
* error occurs.
|
||||
*/
|
||||
static isc_result_t
|
||||
rrset_visible(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
|
||||
dns_rdatatype_t type, isc_boolean_t *visible)
|
||||
{
|
||||
isc_result_t result;
|
||||
dns_fixedname_t fixed;
|
||||
|
||||
dns_fixedname_init(&fixed);
|
||||
result = dns_db_find(db, name, ver, type, DNS_DBFIND_NOWILD,
|
||||
(isc_stdtime_t) 0, NULL,
|
||||
dns_fixedname_name(&fixed), NULL, NULL);
|
||||
switch (result) {
|
||||
case ISC_R_SUCCESS:
|
||||
*visible = ISC_TRUE;
|
||||
break;
|
||||
/*
|
||||
* Glue, obscured, deleted or replaced records.
|
||||
*/
|
||||
case DNS_R_DELEGATION:
|
||||
case DNS_R_DNAME:
|
||||
case DNS_R_CNAME:
|
||||
case DNS_R_NXDOMAIN:
|
||||
case DNS_R_NXRRSET:
|
||||
case DNS_R_EMPTYNAME:
|
||||
case DNS_R_COVERINGNSEC:
|
||||
*visible = ISC_FALSE;
|
||||
result = ISC_R_SUCCESS;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return (result);
|
||||
}
|
||||
|
||||
/*%
|
||||
* Helper function for cname_incompatible_rrset_exists.
|
||||
*/
|
||||
@@ -738,8 +777,8 @@ ssu_checkall(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
|
||||
* In the RFC2136 section 3.2.5, this is the pseudocode involving
|
||||
* a variable called "temp", a mapping of <name, type> tuples to rrsets.
|
||||
*
|
||||
* Here, we represent the "temp" data structure as (non-minimial) "dns_diff_t"
|
||||
* where each typle has op==DNS_DIFFOP_EXISTS.
|
||||
* Here, we represent the "temp" data structure as (non-minimal) "dns_diff_t"
|
||||
* where each tuple has op==DNS_DIFFOP_EXISTS.
|
||||
*/
|
||||
|
||||
|
||||
@@ -843,10 +882,14 @@ temp_check(isc_mem_t *mctx, dns_diff_t *temp, dns_db_t *db,
|
||||
/* A new unique name begins here. */
|
||||
node = NULL;
|
||||
result = dns_db_findnode(db, name, ISC_FALSE, &node);
|
||||
if (result == ISC_R_NOTFOUND)
|
||||
if (result == ISC_R_NOTFOUND) {
|
||||
dns_diff_clear(&trash);
|
||||
return (DNS_R_NXRRSET);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
}
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
dns_diff_clear(&trash);
|
||||
return (result);
|
||||
}
|
||||
|
||||
/* A new unique type begins here. */
|
||||
while (t != NULL && dns_name_equal(&t->name, name)) {
|
||||
@@ -854,14 +897,18 @@ temp_check(isc_mem_t *mctx, dns_diff_t *temp, dns_db_t *db,
|
||||
dns_rdataset_t rdataset;
|
||||
dns_diff_t d_rrs; /* Database RRs with
|
||||
this name and type */
|
||||
dns_diff_t u_rrs; /* Update RRs with
|
||||
dns_diff_t u_rrs; /* Update RRs with
|
||||
this name and type */
|
||||
|
||||
*typep = type = t->rdata.type;
|
||||
if (type == dns_rdatatype_rrsig ||
|
||||
type == dns_rdatatype_sig)
|
||||
covers = dns_rdata_covers(&t->rdata);
|
||||
else
|
||||
else if (type == dns_rdatatype_any) {
|
||||
dns_db_detachnode(db, &node);
|
||||
dns_diff_clear(&trash);
|
||||
return (DNS_R_NXRRSET);
|
||||
} else
|
||||
covers = 0;
|
||||
|
||||
/*
|
||||
@@ -874,6 +921,7 @@ temp_check(isc_mem_t *mctx, dns_diff_t *temp, dns_db_t *db,
|
||||
&rdataset, NULL);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
dns_db_detachnode(db, &node);
|
||||
dns_diff_clear(&trash);
|
||||
return (DNS_R_NXRRSET);
|
||||
}
|
||||
|
||||
@@ -1002,6 +1050,16 @@ true_p(dns_rdata_t *update_rr, dns_rdata_t *db_rr) {
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
|
||||
/*%
|
||||
* Return true if the record is a RRSIG.
|
||||
*/
|
||||
static isc_boolean_t
|
||||
rrsig_p(dns_rdata_t *update_rr, dns_rdata_t *db_rr) {
|
||||
UNUSED(update_rr);
|
||||
return ((db_rr->type == dns_rdatatype_rrsig) ?
|
||||
ISC_TRUE : ISC_FALSE);
|
||||
}
|
||||
|
||||
/*%
|
||||
* Return true iff the two RRs have identical rdata.
|
||||
*/
|
||||
@@ -1119,7 +1177,7 @@ typedef struct {
|
||||
|
||||
static isc_result_t
|
||||
add_rr_prepare_action(void *data, rr_t *rr) {
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
add_rr_prepare_ctx_t *ctx = data;
|
||||
dns_difftuple_t *tuple = NULL;
|
||||
isc_boolean_t equal;
|
||||
@@ -1420,10 +1478,9 @@ uniqify_name_list(dns_diff_t *list) {
|
||||
return (result);
|
||||
}
|
||||
|
||||
|
||||
static isc_result_t
|
||||
is_glue(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
|
||||
isc_boolean_t *flag)
|
||||
is_active(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
|
||||
isc_boolean_t *flag, isc_boolean_t *cut, isc_boolean_t *unsecure)
|
||||
{
|
||||
isc_result_t result;
|
||||
dns_fixedname_t foundname;
|
||||
@@ -1433,8 +1490,11 @@ is_glue(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
|
||||
(isc_stdtime_t) 0, NULL,
|
||||
dns_fixedname_name(&foundname),
|
||||
NULL, NULL);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
if (result == ISC_R_SUCCESS || result == DNS_R_EMPTYNAME) {
|
||||
*flag = ISC_FALSE;
|
||||
*cut = ISC_FALSE;
|
||||
if (unsecure != NULL)
|
||||
*unsecure = ISC_FALSE;
|
||||
return (ISC_R_SUCCESS);
|
||||
} else if (result == DNS_R_ZONECUT) {
|
||||
/*
|
||||
@@ -1442,11 +1502,36 @@ is_glue(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
|
||||
* non-delegation will be omitted from the type bit map.
|
||||
*/
|
||||
*flag = ISC_FALSE;
|
||||
*cut = ISC_TRUE;
|
||||
if (unsecure != NULL) {
|
||||
/*
|
||||
* We are at the zonecut. Check to see if there
|
||||
* is a DS RRset.
|
||||
*/
|
||||
if (dns_db_find(db, name, ver, dns_rdatatype_ds, 0,
|
||||
(isc_stdtime_t) 0, NULL,
|
||||
dns_fixedname_name(&foundname),
|
||||
NULL, NULL) == DNS_R_NXRRSET)
|
||||
*unsecure = ISC_TRUE;
|
||||
else
|
||||
*unsecure = ISC_FALSE;
|
||||
}
|
||||
return (ISC_R_SUCCESS);
|
||||
} else if (result == DNS_R_GLUE || result == DNS_R_DNAME) {
|
||||
*flag = ISC_TRUE;
|
||||
} else if (result == DNS_R_GLUE || result == DNS_R_DNAME ||
|
||||
result == DNS_R_DELEGATION || result == DNS_R_NXDOMAIN) {
|
||||
*flag = ISC_FALSE;
|
||||
*cut = ISC_FALSE;
|
||||
if (unsecure != NULL)
|
||||
*unsecure = ISC_FALSE;
|
||||
return (ISC_R_SUCCESS);
|
||||
} else {
|
||||
/*
|
||||
* Silence compiler.
|
||||
*/
|
||||
*flag = ISC_FALSE;
|
||||
*cut = ISC_FALSE;
|
||||
if (unsecure != NULL)
|
||||
*unsecure = ISC_FALSE;
|
||||
return (result);
|
||||
}
|
||||
}
|
||||
@@ -1647,10 +1732,11 @@ ksk_sanity(dns_db_t *db, dns_dbversion_t *ver) {
|
||||
* Add RRSIG records for an RRset, recording the change in "diff".
|
||||
*/
|
||||
static isc_result_t
|
||||
add_sigs(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
|
||||
dns_rdatatype_t type, dns_diff_t *diff, dst_key_t **keys,
|
||||
unsigned int nkeys, isc_mem_t *mctx, isc_stdtime_t inception,
|
||||
isc_stdtime_t expire, isc_boolean_t check_ksk)
|
||||
add_sigs(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
dns_dbversion_t *ver, dns_name_t *name, dns_rdatatype_t type,
|
||||
dns_diff_t *diff, dst_key_t **keys, unsigned int nkeys,
|
||||
isc_stdtime_t inception, isc_stdtime_t expire,
|
||||
isc_boolean_t check_ksk)
|
||||
{
|
||||
isc_result_t result;
|
||||
dns_dbnode_t *node = NULL;
|
||||
@@ -1659,6 +1745,8 @@ add_sigs(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
|
||||
isc_buffer_t buffer;
|
||||
unsigned char data[1024]; /* XXX */
|
||||
unsigned int i;
|
||||
isc_boolean_t added_sig = ISC_FALSE;
|
||||
isc_mem_t *mctx = client->mctx;
|
||||
|
||||
dns_rdataset_init(&rdataset);
|
||||
isc_buffer_init(&buffer, data, sizeof(data));
|
||||
@@ -1671,14 +1759,14 @@ add_sigs(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
|
||||
dns_db_detachnode(db, &node);
|
||||
|
||||
for (i = 0; i < nkeys; i++) {
|
||||
|
||||
|
||||
if (check_ksk && type != dns_rdatatype_dnskey &&
|
||||
(dst_key_flags(keys[i]) & DNS_KEYFLAG_KSK) != 0)
|
||||
continue;
|
||||
|
||||
if (!dst_key_isprivate(keys[i]))
|
||||
continue;
|
||||
|
||||
|
||||
/* Calculate the signature, creating a RRSIG RDATA. */
|
||||
CHECK(dns_dnssec_sign(name, &rdataset, keys[i],
|
||||
&inception, &expire,
|
||||
@@ -1689,6 +1777,13 @@ add_sigs(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
|
||||
CHECK(update_one_rr(db, ver, diff, DNS_DIFFOP_ADD, name,
|
||||
rdataset.ttl, &sig_rdata));
|
||||
dns_rdata_reset(&sig_rdata);
|
||||
added_sig = ISC_TRUE;
|
||||
}
|
||||
if (!added_sig) {
|
||||
update_log(client, zone, ISC_LOG_ERROR,
|
||||
"found no private keys, "
|
||||
"unable to generate any signatures");
|
||||
result = ISC_R_NOTFOUND;
|
||||
}
|
||||
|
||||
failure:
|
||||
@@ -1699,9 +1794,76 @@ add_sigs(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
|
||||
return (result);
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
add_exposed_sigs(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
dns_dbversion_t *ver, dns_name_t *name, isc_boolean_t cut,
|
||||
dns_diff_t *diff, dst_key_t **keys, unsigned int nkeys,
|
||||
isc_stdtime_t inception, isc_stdtime_t expire,
|
||||
isc_boolean_t check_ksk)
|
||||
{
|
||||
isc_result_t result;
|
||||
dns_dbnode_t *node;
|
||||
dns_rdatasetiter_t *iter;
|
||||
|
||||
node = NULL;
|
||||
result = dns_db_findnode(db, name, ISC_FALSE, &node);
|
||||
if (result == ISC_R_NOTFOUND)
|
||||
return (ISC_R_SUCCESS);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
|
||||
iter = NULL;
|
||||
result = dns_db_allrdatasets(db, node, ver,
|
||||
(isc_stdtime_t) 0, &iter);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup_node;
|
||||
|
||||
for (result = dns_rdatasetiter_first(iter);
|
||||
result == ISC_R_SUCCESS;
|
||||
result = dns_rdatasetiter_next(iter))
|
||||
{
|
||||
dns_rdataset_t rdataset;
|
||||
dns_rdatatype_t type;
|
||||
isc_boolean_t flag;
|
||||
|
||||
dns_rdataset_init(&rdataset);
|
||||
dns_rdatasetiter_current(iter, &rdataset);
|
||||
type = rdataset.type;
|
||||
dns_rdataset_disassociate(&rdataset);
|
||||
|
||||
/*
|
||||
* We don't need to sign unsigned NSEC records at the cut
|
||||
* as they are handled elsewhere.
|
||||
*/
|
||||
if ((type == dns_rdatatype_rrsig) ||
|
||||
(cut && type != dns_rdatatype_ds))
|
||||
continue;
|
||||
result = rrset_exists(db, ver, name, dns_rdatatype_rrsig,
|
||||
type, &flag);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup_iterator;
|
||||
if (flag)
|
||||
continue;;
|
||||
result = add_sigs(client, zone, db, ver, name, type, diff,
|
||||
keys, nkeys, inception, expire, check_ksk);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup_iterator;
|
||||
}
|
||||
if (result == ISC_R_NOMORE)
|
||||
result = ISC_R_SUCCESS;
|
||||
|
||||
cleanup_iterator:
|
||||
dns_rdatasetiter_destroy(&iter);
|
||||
|
||||
cleanup_node:
|
||||
dns_db_detachnode(db, &node);
|
||||
|
||||
return (result);
|
||||
}
|
||||
|
||||
/*%
|
||||
* Update RRSIG and NSEC records affected by an update. The original
|
||||
* update, including the SOA serial update but exluding the RRSIG & NSEC
|
||||
* update, including the SOA serial update but excluding the RRSIG & NSEC
|
||||
* changes, is in "diff" and has already been applied to "newver" of "db".
|
||||
* The database version prior to the update is "oldver".
|
||||
*
|
||||
@@ -1733,6 +1895,7 @@ update_signatures(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
dns_rdataset_t rdataset;
|
||||
dns_dbnode_t *node = NULL;
|
||||
isc_boolean_t check_ksk;
|
||||
isc_boolean_t cut;
|
||||
|
||||
dns_diff_init(client->mctx, &diffnames);
|
||||
dns_diff_init(client->mctx, &affected);
|
||||
@@ -1756,7 +1919,7 @@ update_signatures(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
/*
|
||||
* Do we look at the KSK flag on the DNSKEY to determining which
|
||||
* keys sign which RRsets? First check the zone option then
|
||||
* check the keys flags to make sure atleast one has a ksk set
|
||||
* check the keys flags to make sure at least one has a ksk set
|
||||
* and one doesn't.
|
||||
*/
|
||||
check_ksk = ISC_TF((dns_zone_getoptions(zone) &
|
||||
@@ -1770,7 +1933,7 @@ update_signatures(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
CHECK(dns_db_findnode(db, dns_db_origin(db), ISC_FALSE, &node));
|
||||
dns_rdataset_init(&rdataset);
|
||||
CHECK(dns_db_findrdataset(db, node, newver, dns_rdatatype_soa, 0,
|
||||
(isc_stdtime_t) 0, &rdataset, NULL));
|
||||
(isc_stdtime_t) 0, &rdataset, NULL));
|
||||
CHECK(dns_rdataset_first(&rdataset));
|
||||
dns_rdataset_current(&rdataset, &rdata);
|
||||
CHECK(dns_rdata_tostruct(&rdata, &soa, NULL));
|
||||
@@ -1815,15 +1978,15 @@ update_signatures(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
NULL, &sig_diff));
|
||||
|
||||
/*
|
||||
* If this RRset still exists after the update,
|
||||
* If this RRset is still visible after the update,
|
||||
* add a new signature for it.
|
||||
*/
|
||||
CHECK(rrset_exists(db, newver, name, type, 0, &flag));
|
||||
CHECK(rrset_visible(db, newver, name, type, &flag));
|
||||
if (flag) {
|
||||
CHECK(add_sigs(db, newver, name, type,
|
||||
&sig_diff, zone_keys, nkeys,
|
||||
client->mctx, inception,
|
||||
expire, check_ksk));
|
||||
CHECK(add_sigs(client, zone, db, newver, name,
|
||||
type, &sig_diff, zone_keys,
|
||||
nkeys, inception, expire,
|
||||
check_ksk));
|
||||
}
|
||||
skip:
|
||||
/* Skip any other updates to the same RRset. */
|
||||
@@ -1930,27 +2093,34 @@ update_signatures(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
t = ISC_LIST_NEXT(t, link))
|
||||
{
|
||||
isc_boolean_t exists;
|
||||
CHECK(name_exists(db, newver, &t->name, &exists));
|
||||
dns_name_t *name = &t->name;
|
||||
|
||||
CHECK(name_exists(db, newver, name, &exists));
|
||||
if (! exists)
|
||||
continue;
|
||||
CHECK(is_glue(db, newver, &t->name, &flag));
|
||||
if (flag) {
|
||||
CHECK(is_active(db, newver, name, &flag, &cut, NULL));
|
||||
if (!flag) {
|
||||
/*
|
||||
* This name is obscured. Delete any
|
||||
* existing NSEC record.
|
||||
*/
|
||||
CHECK(delete_if(true_p, db, newver, &t->name,
|
||||
CHECK(delete_if(true_p, db, newver, name,
|
||||
dns_rdatatype_nsec, 0,
|
||||
NULL, &nsec_diff));
|
||||
CHECK(delete_if(rrsig_p, db, newver, name,
|
||||
dns_rdatatype_any, 0, NULL, diff));
|
||||
} else {
|
||||
/*
|
||||
* This name is not obscured. It should have a NSEC.
|
||||
*/
|
||||
CHECK(rrset_exists(db, newver, &t->name,
|
||||
CHECK(rrset_exists(db, newver, name,
|
||||
dns_rdatatype_nsec, 0, &flag));
|
||||
if (! flag)
|
||||
CHECK(add_placeholder_nsec(db, newver, &t->name,
|
||||
diff));
|
||||
CHECK(add_exposed_sigs(client, zone, db, newver, name,
|
||||
cut, diff, zone_keys, nkeys,
|
||||
inception, expire, check_ksk));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2006,9 +2176,9 @@ update_signatures(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
dns_rdatatype_rrsig, dns_rdatatype_nsec,
|
||||
NULL, &sig_diff));
|
||||
} else if (t->op == DNS_DIFFOP_ADD) {
|
||||
CHECK(add_sigs(db, newver, &t->name, dns_rdatatype_nsec,
|
||||
&sig_diff, zone_keys, nkeys,
|
||||
client->mctx, inception, expire,
|
||||
CHECK(add_sigs(client, zone, db, newver, &t->name,
|
||||
dns_rdatatype_nsec, &sig_diff,
|
||||
zone_keys, nkeys, inception, expire,
|
||||
check_ksk));
|
||||
} else {
|
||||
INSIST(0);
|
||||
@@ -2183,29 +2353,37 @@ ns_update_start(ns_client_t *client, isc_result_t sigresult) {
|
||||
static isc_result_t
|
||||
remove_orphaned_ds(dns_db_t *db, dns_dbversion_t *newver, dns_diff_t *diff) {
|
||||
isc_result_t result;
|
||||
isc_boolean_t ns_exists, ds_exists;
|
||||
dns_difftuple_t *t;
|
||||
isc_boolean_t ns_exists;
|
||||
dns_difftuple_t *tupple;
|
||||
dns_diff_t temp_diff;
|
||||
|
||||
for (t = ISC_LIST_HEAD(diff->tuples);
|
||||
t != NULL;
|
||||
t = ISC_LIST_NEXT(t, link)) {
|
||||
if (t->op != DNS_DIFFOP_ADD ||
|
||||
t->rdata.type != dns_rdatatype_ns)
|
||||
dns_diff_init(diff->mctx, &temp_diff);
|
||||
|
||||
for (tupple = ISC_LIST_HEAD(diff->tuples);
|
||||
tupple != NULL;
|
||||
tupple = ISC_LIST_NEXT(tupple, link)) {
|
||||
if (!((tupple->op == DNS_DIFFOP_DEL &&
|
||||
tupple->rdata.type == dns_rdatatype_ns) ||
|
||||
(tupple->op == DNS_DIFFOP_ADD &&
|
||||
tupple->rdata.type == dns_rdatatype_ds)))
|
||||
continue;
|
||||
CHECK(rrset_exists(db, newver, &t->name, dns_rdatatype_ns, 0,
|
||||
&ns_exists));
|
||||
if (ns_exists)
|
||||
CHECK(rrset_exists(db, newver, &tupple->name,
|
||||
dns_rdatatype_ns, 0, &ns_exists));
|
||||
if (ns_exists &&
|
||||
!dns_name_equal(&tupple->name, dns_db_origin(db)))
|
||||
continue;
|
||||
CHECK(rrset_exists(db, newver, &t->name, dns_rdatatype_ds, 0,
|
||||
&ds_exists));
|
||||
if (!ds_exists)
|
||||
continue;
|
||||
CHECK(delete_if(true_p, db, newver, &t->name,
|
||||
dns_rdatatype_ds, 0, NULL, diff));
|
||||
CHECK(delete_if(true_p, db, newver, &tupple->name,
|
||||
dns_rdatatype_ds, 0, NULL, &temp_diff));
|
||||
}
|
||||
return (ISC_R_SUCCESS);
|
||||
result = ISC_R_SUCCESS;
|
||||
|
||||
failure:
|
||||
for (tupple = ISC_LIST_HEAD(temp_diff.tuples);
|
||||
tupple != NULL;
|
||||
tupple = ISC_LIST_HEAD(temp_diff.tuples)) {
|
||||
ISC_LIST_UNLINK(temp_diff.tuples, tupple, link);
|
||||
dns_diff_appendminimal(diff, &tupple);
|
||||
}
|
||||
return (result);
|
||||
}
|
||||
|
||||
@@ -2274,7 +2452,7 @@ check_mx(ns_client_t *client, dns_zone_t *zone,
|
||||
ownerbuf, namebuf,
|
||||
dns_result_totext(DNS_R_MXISADDRESS));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Check zone integrity checks.
|
||||
*/
|
||||
@@ -2474,7 +2652,7 @@ update_action(isc_task_t *task, isc_event_t *event) {
|
||||
else if (client->signer == NULL)
|
||||
CHECK(checkupdateacl(client, NULL, "update", zonename,
|
||||
ISC_FALSE));
|
||||
|
||||
|
||||
if (dns_zone_getupdatedisabled(zone))
|
||||
FAILC(DNS_R_REFUSED, "dynamic update temporarily disabled");
|
||||
|
||||
@@ -2881,7 +3059,7 @@ update_action(isc_task_t *task, isc_event_t *event) {
|
||||
* The reason for failure should have been logged at this point.
|
||||
*/
|
||||
if (ver != NULL) {
|
||||
update_log(client, zone, LOGLEVEL_DEBUG,
|
||||
update_log(client, zone, LOGLEVEL_DEBUG,
|
||||
"rolling back");
|
||||
dns_db_closeversion(db, &ver, ISC_FALSE);
|
||||
}
|
||||
@@ -2933,7 +3111,7 @@ updatedone_action(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
static void
|
||||
forward_fail(isc_task_t *task, isc_event_t *event) {
|
||||
ns_client_t *client = (ns_client_t *)event->ev_arg;
|
||||
ns_client_t *client = (ns_client_t *)event->ev_arg;
|
||||
|
||||
UNUSED(task);
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: os.h,v 1.9.18.1 2004/09/29 06:43:54 marka Exp $ */
|
||||
/* $Id: os.h,v 1.9.18.3 2008/10/24 01:43:17 tbox Exp $ */
|
||||
|
||||
#ifndef NS_OS_H
|
||||
#define NS_OS_H 1
|
||||
@@ -43,6 +43,9 @@ ns_os_inituserinfo(const char *username);
|
||||
void
|
||||
ns_os_changeuser(void);
|
||||
|
||||
void
|
||||
ns_os_adjustnofile(void);
|
||||
|
||||
void
|
||||
ns_os_minprivs(void);
|
||||
|
||||
|
||||
+17
-14
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: ntservice.c,v 1.8 2004/03/05 04:58:08 marka Exp $ */
|
||||
/* $Id: ntservice.c,v 1.8.18.2 2009/06/23 23:46:03 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
#include <stdio.h>
|
||||
@@ -47,7 +47,7 @@ int main(int, char *[], char *[]); /* From ns_main.c */
|
||||
#pragma comment(linker, "/entry:bindmain")
|
||||
|
||||
/*
|
||||
* This is the entry point for the executable
|
||||
* This is the entry point for the executable
|
||||
* We can now call main() explicitly or via StartServiceCtrlDispatcher()
|
||||
* as we need to.
|
||||
*/
|
||||
@@ -65,9 +65,12 @@ int bindmain()
|
||||
*/
|
||||
GetArgs(&argc, &argv, &envp);
|
||||
|
||||
/* Command line users should put -f in the options */
|
||||
/* Command line users should put -f in the options. */
|
||||
/* XXXMPA should use isc_commandline_parse() here. */
|
||||
while (argv[i]) {
|
||||
if (!strcmp(argv[i], "-f") || !strcmp(argv[i], "-g")) {
|
||||
if (!strcmp(argv[i], "-f") ||
|
||||
!strcmp(argv[i], "-g") ||
|
||||
!strcmp(argv[i], "-v")) {
|
||||
foreground = TRUE;
|
||||
break;
|
||||
}
|
||||
@@ -129,7 +132,7 @@ BOOL
|
||||
ntservice_isservice() {
|
||||
return(!foreground);
|
||||
}
|
||||
/*
|
||||
/*
|
||||
* ServiceControl(): Handles requests from the SCM and passes them on
|
||||
* to named.
|
||||
*/
|
||||
@@ -137,17 +140,17 @@ void
|
||||
ServiceControl(DWORD dwCtrlCode) {
|
||||
/* Handle the requested control code */
|
||||
switch(dwCtrlCode) {
|
||||
case SERVICE_CONTROL_INTERROGATE:
|
||||
case SERVICE_CONTROL_INTERROGATE:
|
||||
UpdateSCM(0);
|
||||
break;
|
||||
|
||||
case SERVICE_CONTROL_SHUTDOWN:
|
||||
case SERVICE_CONTROL_STOP:
|
||||
case SERVICE_CONTROL_SHUTDOWN:
|
||||
case SERVICE_CONTROL_STOP:
|
||||
ns_server_flushonshutdown(ns_g_server, ISC_TRUE);
|
||||
isc_app_shutdown();
|
||||
UpdateSCM(SERVICE_STOPPED);
|
||||
break;
|
||||
default:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -185,7 +188,7 @@ void UpdateSCM(DWORD state) {
|
||||
* get argv, argc, envp.
|
||||
*/
|
||||
|
||||
typedef struct
|
||||
typedef struct
|
||||
{
|
||||
int newmode;
|
||||
} _startupinfo;
|
||||
@@ -218,13 +221,13 @@ extern _CRTIMP char **__initenv;
|
||||
void GetArgs(int *argc, char ***argv, char ***envp)
|
||||
{
|
||||
_startupinfo startinfo;
|
||||
|
||||
|
||||
/*
|
||||
* Set the app type to Console (check CRT/SRC/INTERNAL.H:
|
||||
* #define _CONSOLE_APP 1)
|
||||
*/
|
||||
__set_app_type(1);
|
||||
|
||||
|
||||
/* Mark this module as an EXE file */
|
||||
__onexitbegin = __onexitend = (_PVFV *)(-1);
|
||||
|
||||
|
||||
+20
-6
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: os.c,v 1.20.18.4 2005/06/22 22:05:43 marka Exp $ */
|
||||
/* $Id: os.c,v 1.20.18.8 2008/10/24 01:28:08 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
#include <stdarg.h>
|
||||
@@ -51,7 +51,7 @@ static int devnullfd = -1;
|
||||
|
||||
static BOOL Initialized = FALSE;
|
||||
|
||||
static char *version_error =
|
||||
static char *version_error =
|
||||
"named requires Windows 2000 Service Pack 2 or later to run correctly";
|
||||
|
||||
void
|
||||
@@ -83,7 +83,7 @@ version_check(const char *progname) {
|
||||
if(isc_win32os_versioncheck(5, 0, 2, 0) < 0)
|
||||
if (ntservice_isservice())
|
||||
NTReportError(progname, version_error);
|
||||
else
|
||||
else
|
||||
fprintf(stderr, "%s\n", version_error);
|
||||
}
|
||||
|
||||
@@ -103,7 +103,16 @@ void
|
||||
ns_os_init(const char *progname) {
|
||||
ns_paths_init();
|
||||
setup_syslog(progname);
|
||||
ntservice_init();
|
||||
/*
|
||||
* XXXMPA. We may need to split ntservice_init() in two and
|
||||
* just mark as running in ns_os_started(). If we do that
|
||||
* this is where the first part of ntservice_init() should be
|
||||
* called from.
|
||||
*
|
||||
* XXX970 Remove comment if no problems by 9.7.0.
|
||||
*
|
||||
* ntservice_init();
|
||||
*/
|
||||
version_check(progname);
|
||||
}
|
||||
|
||||
@@ -156,6 +165,10 @@ void
|
||||
ns_os_changeuser(void) {
|
||||
}
|
||||
|
||||
void
|
||||
ns_os_adjustnofile(void) {
|
||||
}
|
||||
|
||||
void
|
||||
ns_os_minprivs(void) {
|
||||
}
|
||||
@@ -285,4 +298,5 @@ ns_os_tzset(void) {
|
||||
|
||||
void
|
||||
ns_os_started(void) {
|
||||
ntservice_init();
|
||||
}
|
||||
|
||||
+44
-34
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006, 2008, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: xfrout.c,v 1.115.18.8 2006/03/05 23:58:51 marka Exp $ */
|
||||
/* $Id: xfrout.c,v 1.115.18.13 2009/01/19 00:36:26 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
#include <named/server.h>
|
||||
#include <named/xfrout.h>
|
||||
|
||||
/*! \file
|
||||
/*! \file
|
||||
* \brief
|
||||
* Outgoing AXFR and IXFR.
|
||||
*/
|
||||
@@ -86,7 +86,7 @@
|
||||
ns_client_log(client, DNS_LOGCATEGORY_XFER_OUT, \
|
||||
NS_LOGMODULE_XFER_OUT, ISC_LOG_INFO, \
|
||||
"bad zone transfer request: %s (%s)", \
|
||||
msg, isc_result_totext(code)); \
|
||||
msg, isc_result_totext(code)); \
|
||||
if (result != ISC_R_SUCCESS) goto failure; \
|
||||
} while (0)
|
||||
|
||||
@@ -100,12 +100,12 @@
|
||||
ns_client_log(client, DNS_LOGCATEGORY_XFER_OUT, \
|
||||
NS_LOGMODULE_XFER_OUT, ISC_LOG_INFO, \
|
||||
"bad zone transfer request: '%s/%s': %s (%s)", \
|
||||
_buf1, _buf2, msg, isc_result_totext(code)); \
|
||||
_buf1, _buf2, msg, isc_result_totext(code)); \
|
||||
if (result != ISC_R_SUCCESS) goto failure; \
|
||||
} while (0)
|
||||
|
||||
#define CHECK(op) \
|
||||
do { result = (op); \
|
||||
do { result = (op); \
|
||||
if (result != ISC_R_SUCCESS) goto failure; \
|
||||
} while (0)
|
||||
|
||||
@@ -121,12 +121,12 @@ typedef struct db_rr_iterator db_rr_iterator_t;
|
||||
struct db_rr_iterator {
|
||||
isc_result_t result;
|
||||
dns_db_t *db;
|
||||
dns_dbiterator_t *dbit;
|
||||
dns_dbiterator_t *dbit;
|
||||
dns_dbversion_t *ver;
|
||||
isc_stdtime_t now;
|
||||
dns_dbnode_t *node;
|
||||
dns_fixedname_t fixedname;
|
||||
dns_rdatasetiter_t *rdatasetit;
|
||||
dns_rdatasetiter_t *rdatasetit;
|
||||
dns_rdataset_t rdataset;
|
||||
dns_rdata_t rdata;
|
||||
};
|
||||
@@ -303,6 +303,11 @@ log_rr(dns_name_t *name, dns_rdata_t *rdata, isc_uint32_t ttl) {
|
||||
rdl.type = rdata->type;
|
||||
rdl.rdclass = rdata->rdclass;
|
||||
rdl.ttl = ttl;
|
||||
if (rdata->type == dns_rdatatype_sig ||
|
||||
rdata->type == dns_rdatatype_rrsig)
|
||||
rdl.covers = dns_rdata_covers(rdata);
|
||||
else
|
||||
rdl.covers = dns_rdatatype_none;
|
||||
ISC_LIST_INIT(rdl.rdata);
|
||||
ISC_LINK_INIT(&rdl, link);
|
||||
dns_rdataset_init(&rds);
|
||||
@@ -326,7 +331,7 @@ log_rr(dns_name_t *name, dns_rdata_t *rdata, isc_uint32_t ttl) {
|
||||
INSIST(buf.used >= 1 &&
|
||||
((char *) buf.base)[buf.used - 1] == '\n');
|
||||
buf.used--;
|
||||
|
||||
|
||||
isc_log_write(XFROUT_RR_LOGARGS, "%.*s",
|
||||
(int)isc_buffer_usedlength(&buf),
|
||||
(char *)isc_buffer_base(&buf));
|
||||
@@ -969,7 +974,7 @@ ns_xfr_start(ns_client_t *client, dns_rdatatype_t reqtype) {
|
||||
/*
|
||||
* Normal zone table does not have a match. Try the DLZ database
|
||||
*/
|
||||
if (client->view->dlzdatabase != NULL) {
|
||||
if (client->view->dlzdatabase != NULL) {
|
||||
result = dns_dlzallowzonexfr(client->view,
|
||||
question_name, &client->peeraddr,
|
||||
&db);
|
||||
@@ -1006,7 +1011,7 @@ ns_xfr_start(ns_client_t *client, dns_rdatatype_t reqtype) {
|
||||
|
||||
} else {
|
||||
/*
|
||||
* not DLZ and not in normal zone table, we are
|
||||
* not DLZ and not in normal zone table, we are
|
||||
* not authoritative
|
||||
*/
|
||||
FAILQ(DNS_R_NOTAUTH, "non-authoritative zone",
|
||||
@@ -1191,7 +1196,7 @@ ns_xfr_start(ns_client_t *client, dns_rdatatype_t reqtype) {
|
||||
}
|
||||
|
||||
/*
|
||||
* Bracket the the data stream with SOAs.
|
||||
* Bracket the data stream with SOAs.
|
||||
*/
|
||||
CHECK(soa_rrstream_create(mctx, db, ver, &soa_stream));
|
||||
CHECK(compound_rrstream_create(mctx, &soa_stream, &data_stream,
|
||||
@@ -1210,26 +1215,26 @@ ns_xfr_start(ns_client_t *client, dns_rdatatype_t reqtype) {
|
||||
|
||||
#ifdef DLZ
|
||||
if (is_dlz)
|
||||
CHECK(xfrout_ctx_create(mctx, client, request->id, question_name,
|
||||
reqtype, question_class, db, ver, quota,
|
||||
stream, dns_message_gettsigkey(request),
|
||||
tsigbuf,
|
||||
3600,
|
||||
3600,
|
||||
(format == dns_many_answers) ?
|
||||
ISC_TRUE : ISC_FALSE,
|
||||
&xfr));
|
||||
else
|
||||
CHECK(xfrout_ctx_create(mctx, client, request->id, question_name,
|
||||
reqtype, question_class, db, ver, quota,
|
||||
stream, dns_message_gettsigkey(request),
|
||||
tsigbuf,
|
||||
3600,
|
||||
3600,
|
||||
(format == dns_many_answers) ?
|
||||
ISC_TRUE : ISC_FALSE,
|
||||
&xfr));
|
||||
else
|
||||
#endif
|
||||
CHECK(xfrout_ctx_create(mctx, client, request->id, question_name,
|
||||
reqtype, question_class, db, ver, quota,
|
||||
stream, dns_message_gettsigkey(request),
|
||||
tsigbuf,
|
||||
dns_zone_getmaxxfrout(zone),
|
||||
dns_zone_getidleout(zone),
|
||||
(format == dns_many_answers) ?
|
||||
ISC_TRUE : ISC_FALSE,
|
||||
&xfr));
|
||||
CHECK(xfrout_ctx_create(mctx, client, request->id, question_name,
|
||||
reqtype, question_class, db, ver, quota,
|
||||
stream, dns_message_gettsigkey(request),
|
||||
tsigbuf,
|
||||
dns_zone_getmaxxfrout(zone),
|
||||
dns_zone_getidleout(zone),
|
||||
(format == dns_many_answers) ?
|
||||
ISC_TRUE : ISC_FALSE,
|
||||
&xfr));
|
||||
|
||||
xfr->mnemonic = mnemonic;
|
||||
stream = NULL;
|
||||
@@ -1399,7 +1404,7 @@ failure:
|
||||
*
|
||||
* Requires:
|
||||
* The stream iterator is initialized and points at an RR,
|
||||
* or possiby at the end of the stream (that is, the
|
||||
* or possibly at the end of the stream (that is, the
|
||||
* _first method of the iterator has been called).
|
||||
*/
|
||||
static void
|
||||
@@ -1573,6 +1578,11 @@ sendstream(xfrout_ctx_t *xfr) {
|
||||
msgrdl->type = rdata->type;
|
||||
msgrdl->rdclass = rdata->rdclass;
|
||||
msgrdl->ttl = ttl;
|
||||
if (rdata->type == dns_rdatatype_sig ||
|
||||
rdata->type == dns_rdatatype_rrsig)
|
||||
msgrdl->covers = dns_rdata_covers(rdata);
|
||||
else
|
||||
msgrdl->covers = dns_rdatatype_none;
|
||||
ISC_LINK_INIT(msgrdl, link);
|
||||
ISC_LIST_INIT(msgrdl->rdata);
|
||||
ISC_LIST_APPEND(msgrdl->rdata, msgrdata, link);
|
||||
@@ -1663,7 +1673,7 @@ sendstream(xfrout_ctx_t *xfr) {
|
||||
* iterators before returning from the event handler.
|
||||
*/
|
||||
xfr->stream->methods->pause(xfr->stream);
|
||||
|
||||
|
||||
if (result == ISC_R_SUCCESS)
|
||||
return;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and distribute this software for any
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
# copyright notice and this permission notice appear in all copies.
|
||||
#
|
||||
@@ -13,7 +13,7 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.22.18.1 2004/07/20 07:03:20 marka Exp $
|
||||
# $Id: Makefile.in,v 1.22.18.3 2008/08/29 23:46:16 tbox Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
@@ -55,7 +55,7 @@ UOBJS =
|
||||
|
||||
SRCS = nsupdate.c
|
||||
|
||||
MANPAGES = nsupdate.8
|
||||
MANPAGES = nsupdate.1
|
||||
|
||||
HTMLPAGES = nsupdate.html
|
||||
|
||||
@@ -76,8 +76,8 @@ clean distclean::
|
||||
|
||||
installdirs:
|
||||
$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${bindir}
|
||||
$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${mandir}/man8
|
||||
$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${mandir}/man1
|
||||
|
||||
install:: nsupdate@EXEEXT@ installdirs
|
||||
${LIBTOOL_MODE_INSTALL} ${INSTALL_PROGRAM} nsupdate@EXEEXT@ ${DESTDIR}${bindir}
|
||||
${INSTALL_DATA} ${srcdir}/nsupdate.8 ${DESTDIR}${mandir}/man8
|
||||
${INSTALL_DATA} ${srcdir}/nsupdate.1 ${DESTDIR}${mandir}/man1
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.\" Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: nsupdate.8,v 1.30.18.14 2007/05/09 03:33:13 marka Exp $
|
||||
.\" $Id: nsupdate.1,v 1.1.4.4 2009/07/11 01:31:45 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -24,7 +24,7 @@
|
||||
.\" Manual: BIND9
|
||||
.\" Source: BIND9
|
||||
.\"
|
||||
.TH "NSUPDATE" "8" "Jun 30, 2000" "BIND9" "BIND9"
|
||||
.TH "NSUPDATE" "1" "Jun 30, 2000" "BIND9" "BIND9"
|
||||
.\" disable hyphenation
|
||||
.nh
|
||||
.\" disable justification (adjust text to left margin only)
|
||||
@@ -96,7 +96,7 @@ The
|
||||
\fB\-k\fR
|
||||
may also be used to specify a SIG(0) key used to authenticate Dynamic DNS update requests. In this case, the key specified is not an HMAC\-MD5 key.
|
||||
.PP
|
||||
By default
|
||||
By default,
|
||||
\fBnsupdate\fR
|
||||
uses UDP to send update requests to the name server unless they are too large to fit in a UDP request in which case TCP will be used. The
|
||||
\fB\-v\fR
|
||||
@@ -342,7 +342,7 @@ base\-64 encoding of HMAC\-MD5 key created by
|
||||
.PP
|
||||
The TSIG key is redundantly stored in two separate files. This is a consequence of nsupdate using the DST library for its cryptographic operations, and may change in future releases.
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004\-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004\-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
Copyright \(co 2000\-2003 Internet Software Consortium.
|
||||
.br
|
||||
+16
-16
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: nsupdate.c,v 1.130.18.19 2007/08/28 07:20:01 tbox Exp $ */
|
||||
/* $Id: nsupdate.c,v 1.130.18.24 2009/04/30 23:46:03 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -311,7 +311,7 @@ parse_hmac(dns_name_t **hmac, const char *hmacstr, size_t len) {
|
||||
|
||||
strncpy(buf, hmacstr, len);
|
||||
buf[len] = 0;
|
||||
|
||||
|
||||
if (strcasecmp(buf, "hmac-md5") == 0) {
|
||||
*hmac = DNS_TSIG_HMACMD5_NAME;
|
||||
} else if (strncasecmp(buf, "hmac-md5-", 9) == 0) {
|
||||
@@ -1155,7 +1155,7 @@ evaluate_key(char *cmdline) {
|
||||
secret = isc_mem_allocate(mctx, secretlen);
|
||||
if (secret == NULL)
|
||||
fatal("out of memory");
|
||||
|
||||
|
||||
isc_buffer_init(&secretbuf, secret, secretlen);
|
||||
result = isc_base64_decodestring(secretstr, &secretbuf);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
@@ -1222,8 +1222,8 @@ evaluate_class(char *cmdline) {
|
||||
}
|
||||
|
||||
r.base = word;
|
||||
r.length = strlen(word);
|
||||
result = dns_rdataclass_fromtext(&rdclass, &r);
|
||||
r.length = strlen(word);
|
||||
result = dns_rdataclass_fromtext(&rdclass, &r);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
fprintf(stderr, "could not parse class name: %s\n", word);
|
||||
return (STATUS_SYNTAX);
|
||||
@@ -1328,8 +1328,9 @@ update_addordelete(char *cmdline, isc_boolean_t isdelete) {
|
||||
}
|
||||
region.base = word;
|
||||
region.length = strlen(word);
|
||||
rdataclass = dns_rdataclass_any;
|
||||
result = dns_rdataclass_fromtext(&rdataclass, ®ion);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
if (result == ISC_R_SUCCESS && rdataclass != dns_rdataclass_any) {
|
||||
if (!setzoneclass(rdataclass)) {
|
||||
fprintf(stderr, "class mismatch: %s\n", word);
|
||||
goto failure;
|
||||
@@ -1407,8 +1408,7 @@ update_addordelete(char *cmdline, isc_boolean_t isdelete) {
|
||||
failure:
|
||||
if (name != NULL)
|
||||
dns_message_puttempname(updatemsg, &name);
|
||||
if (rdata != NULL)
|
||||
dns_message_puttemprdata(updatemsg, &rdata);
|
||||
dns_message_puttemprdata(updatemsg, &rdata);
|
||||
return (STATUS_SYNTAX);
|
||||
}
|
||||
|
||||
@@ -1480,7 +1480,7 @@ show_message(dns_message_t *msg) {
|
||||
setzone(userzone);
|
||||
|
||||
bufsz = INITTEXT;
|
||||
do {
|
||||
do {
|
||||
if (bufsz > MAXTEXT) {
|
||||
fprintf(stderr, "could not allocate large enough "
|
||||
"buffer to display message\n");
|
||||
@@ -1662,7 +1662,7 @@ update_completed(isc_task_t *task, isc_event_t *event) {
|
||||
char buf[64];
|
||||
isc_buffer_t b;
|
||||
dns_rdataset_t *rds;
|
||||
|
||||
|
||||
isc_buffer_init(&b, buf, sizeof(buf) - 1);
|
||||
result = dns_rcode_totext(answer->rcode, &b);
|
||||
check_result(result, "dns_rcode_totext");
|
||||
@@ -1678,7 +1678,7 @@ update_completed(isc_task_t *task, isc_event_t *event) {
|
||||
int bufsz;
|
||||
|
||||
bufsz = INITTEXT;
|
||||
do {
|
||||
do {
|
||||
if (bufsz > MAXTEXT) {
|
||||
fprintf(stderr, "could not allocate large "
|
||||
"enough buffer to display message\n");
|
||||
@@ -1766,7 +1766,7 @@ recvsoa(isc_task_t *task, isc_event_t *event) {
|
||||
ddebug("recvsoa()");
|
||||
|
||||
requests--;
|
||||
|
||||
|
||||
REQUIRE(event->ev_type == DNS_EVENT_REQUESTDONE);
|
||||
reqev = (dns_requestevent_t *)event;
|
||||
request = reqev->request;
|
||||
@@ -1883,7 +1883,7 @@ recvsoa(isc_task_t *task, isc_event_t *event) {
|
||||
section = DNS_SECTION_ANSWER;
|
||||
else if (pass == 1)
|
||||
section = DNS_SECTION_AUTHORITY;
|
||||
else
|
||||
else
|
||||
goto droplabel;
|
||||
|
||||
result = dns_message_firstname(rcvmsg, section);
|
||||
@@ -1912,7 +1912,7 @@ recvsoa(isc_task_t *task, isc_event_t *event) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
result = dns_message_nextname(rcvmsg, section);
|
||||
}
|
||||
|
||||
@@ -1977,7 +1977,7 @@ recvsoa(isc_task_t *task, isc_event_t *event) {
|
||||
dns_message_destroy(&rcvmsg);
|
||||
ddebug("Out of recvsoa");
|
||||
return;
|
||||
|
||||
|
||||
droplabel:
|
||||
result = dns_message_firstname(soaquery, DNS_SECTION_QUESTION);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -18,14 +18,14 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: nsupdate.docbook,v 1.18.18.10 2007/08/28 07:20:01 tbox Exp $ -->
|
||||
<!-- $Id: nsupdate.docbook,v 1.18.18.14 2009/01/22 23:46:00 tbox Exp $ -->
|
||||
<refentry>
|
||||
<refentryinfo>
|
||||
<date>Jun 30, 2000</date>
|
||||
</refentryinfo>
|
||||
<refmeta>
|
||||
<refentrytitle>nsupdate</refentrytitle>
|
||||
<manvolnum>8</manvolnum>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo>BIND9</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
@@ -39,6 +39,8 @@
|
||||
<year>2005</year>
|
||||
<year>2006</year>
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<year>2009</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -158,7 +160,7 @@
|
||||
specified is not an HMAC-MD5 key.
|
||||
</para>
|
||||
<para>
|
||||
By default
|
||||
By default,
|
||||
<command>nsupdate</command>
|
||||
uses UDP to send update requests to the name server unless they are too
|
||||
large to fit in a UDP request in which case TCP will be used.
|
||||
|
||||
+10
-10
@@ -1,8 +1,8 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: nsupdate.html,v 1.14.18.22 2007/05/09 03:33:13 marka Exp $ -->
|
||||
<!-- $Id: nsupdate.html,v 1.14.18.25 2009/07/11 01:31:45 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -32,7 +32,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">nsupdate</code> [<code class="option">-d</code>] [[<code class="option">-y <em class="replaceable"><code>[<span class="optional">hmac:</span>]keyname:secret</code></em></code>] | [<code class="option">-k <em class="replaceable"><code>keyfile</code></em></code>]] [<code class="option">-t <em class="replaceable"><code>timeout</code></em></code>] [<code class="option">-u <em class="replaceable"><code>udptimeout</code></em></code>] [<code class="option">-r <em class="replaceable"><code>udpretries</code></em></code>] [<code class="option">-v</code>] [filename]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543417"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543424"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">nsupdate</strong></span>
|
||||
is used to submit Dynamic DNS Update requests as defined in RFC2136
|
||||
to a name server.
|
||||
@@ -121,7 +121,7 @@
|
||||
specified is not an HMAC-MD5 key.
|
||||
</p>
|
||||
<p>
|
||||
By default
|
||||
By default,
|
||||
<span><strong class="command">nsupdate</strong></span>
|
||||
uses UDP to send update requests to the name server unless they are too
|
||||
large to fit in a UDP request in which case TCP will be used.
|
||||
@@ -153,7 +153,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543645"></a><h2>INPUT FORMAT</h2>
|
||||
<a name="id2543652"></a><h2>INPUT FORMAT</h2>
|
||||
<p><span><strong class="command">nsupdate</strong></span>
|
||||
reads input from
|
||||
<em class="parameter"><code>filename</code></em>
|
||||
@@ -402,7 +402,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544648"></a><h2>EXAMPLES</h2>
|
||||
<a name="id2544450"></a><h2>EXAMPLES</h2>
|
||||
<p>
|
||||
The examples below show how
|
||||
<span><strong class="command">nsupdate</strong></span>
|
||||
@@ -456,7 +456,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544692"></a><h2>FILES</h2>
|
||||
<a name="id2544493"></a><h2>FILES</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term"><code class="constant">/etc/resolv.conf</code></span></dt>
|
||||
<dd><p>
|
||||
@@ -475,7 +475,7 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544829"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2544563"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">RFC2136</span></span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">RFC3007</span></span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">RFC2104</span></span>,
|
||||
@@ -488,7 +488,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544900"></a><h2>BUGS</h2>
|
||||
<a name="id2542176"></a><h2>BUGS</h2>
|
||||
<p>
|
||||
The TSIG key is redundantly stored in two separate files.
|
||||
This is a consequence of nsupdate using the DST library
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: os.h,v 1.5.18.2 2005/04/29 00:15:41 marka Exp $ */
|
||||
/* $Id: os.h,v 1.5.18.4 2009/01/19 23:46:14 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -35,7 +35,7 @@ FILE *safe_create(const char *filename);
|
||||
|
||||
int set_user(FILE *fd, const char *user);
|
||||
/*%<
|
||||
* Set the owner of the file refernced by 'fd' to 'user'.
|
||||
* Set the owner of the file referenced by 'fd' to 'user'.
|
||||
* Returns:
|
||||
* 0 success
|
||||
* -1 insufficient permissions, or 'user' does not exist.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.\" Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2001, 2003 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: rndc-confgen.8,v 1.9.18.11 2007/01/30 00:23:44 marka Exp $
|
||||
.\" $Id: rndc-confgen.8,v 1.9.18.12 2009/07/11 01:31:45 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2001, 2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: rndc-confgen.c,v 1.18.18.3 2005/04/29 00:15:40 marka Exp $ */
|
||||
/* $Id: rndc-confgen.c,v 1.18.18.5 2008/10/15 23:46:06 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
#define DEFAULT_PORT 953
|
||||
|
||||
static char program[256];
|
||||
char *progname;
|
||||
const char *progname;
|
||||
|
||||
isc_boolean_t verbose = ISC_FALSE;
|
||||
|
||||
@@ -148,7 +148,7 @@ main(int argc, char **argv) {
|
||||
isc_boolean_t keyonly = ISC_FALSE;
|
||||
int len;
|
||||
|
||||
keydef = keyfile = RNDC_KEYFILE;
|
||||
keydef = keyfile = RNDC_KEYFILE;
|
||||
|
||||
result = isc_file_progname(*argv, program, sizeof(program));
|
||||
if (result != ISC_R_SUCCESS)
|
||||
@@ -286,7 +286,7 @@ main(int argc, char **argv) {
|
||||
fatal("isc_mem_get(%d) failed\n", len);
|
||||
snprintf(buf, len, "%s%s%s", chrootdir,
|
||||
(*keyfile != '/') ? "/" : "", keyfile);
|
||||
|
||||
|
||||
write_key_file(buf, user, keyname, &key_txtbuffer);
|
||||
isc_mem_put(mctx, buf, len);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
- Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2001, 2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: rndc-confgen.html,v 1.8.18.17 2007/01/30 00:23:44 marka Exp $ -->
|
||||
<!-- $Id: rndc-confgen.html,v 1.8.18.18 2009/07/11 01:31:45 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
|
||||
+3
-2
@@ -1,7 +1,7 @@
|
||||
.\" Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: rndc.8,v 1.26.18.15 2007/06/20 02:26:58 marka Exp $
|
||||
.\" $Id: rndc.8,v 1.26.18.17 2009/07/11 01:31:45 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -133,6 +133,7 @@ Several error messages could be clearer.
|
||||
.SH "SEE ALSO"
|
||||
.PP
|
||||
\fBrndc.conf\fR(5),
|
||||
\fBrndc\-confgen\fR(8),
|
||||
\fBnamed\fR(8),
|
||||
\fBnamed.conf\fR(5),
|
||||
\fBndc\fR(8),
|
||||
|
||||
+14
-14
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006, 2008, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: rndc.c,v 1.96.18.17.42.3 2008/07/23 23:16:43 marka Exp $ */
|
||||
/* $Id: rndc.c,v 1.96.18.23 2009/01/19 23:46:14 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
|
||||
#define SERVERADDRS 10
|
||||
|
||||
char *progname;
|
||||
const char *progname;
|
||||
isc_boolean_t verbose;
|
||||
|
||||
static const char *admin_conffile;
|
||||
@@ -93,7 +93,7 @@ static void
|
||||
usage(int status) {
|
||||
fprintf(stderr, "\
|
||||
Usage: %s [-c config] [-s server] [-p port]\n\
|
||||
[-k key-file ] [-y key] [-V] command\n\
|
||||
[-k key-file ] [-y key] [-V] command\n\
|
||||
\n\
|
||||
command is one of the following:\n\
|
||||
\n\
|
||||
@@ -106,10 +106,10 @@ command is one of the following:\n\
|
||||
Retransfer a single zone without checking serial number.\n\
|
||||
freeze Suspend updates to all dynamic zones.\n\
|
||||
freeze zone [class [view]]\n\
|
||||
Suspend updates to a dynamic zone.\n\
|
||||
Suspend updates to a dynamic zone.\n\
|
||||
thaw Enable updates to all dynamic zones and reload them.\n\
|
||||
thaw zone [class [view]]\n\
|
||||
Enable updates to a frozen dynamic zone and reload it.\n\
|
||||
Enable updates to a frozen dynamic zone and reload it.\n\
|
||||
notify zone [class [view]]\n\
|
||||
Resend NOTIFY messages for the zone.\n\
|
||||
reconfig Reload configuration file and new zones only.\n\
|
||||
@@ -152,7 +152,7 @@ get_addresses(const char *host, in_port_t port) {
|
||||
result = isc_sockaddr_frompath(&serveraddrs[nserveraddrs],
|
||||
host);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
nserveraddrs++;
|
||||
nserveraddrs++;
|
||||
} else {
|
||||
count = SERVERADDRS - nserveraddrs;
|
||||
result = bind9_getaddresses(host, port,
|
||||
@@ -200,7 +200,7 @@ rndc_recvdone(isc_task_t *task, isc_event_t *event) {
|
||||
"* the remote server is using an older version of"
|
||||
" the command protocol,\n"
|
||||
"* this host is not authorized to connect,\n"
|
||||
"* the clocks are not syncronized, or\n"
|
||||
"* the clocks are not synchronized, or\n"
|
||||
"* the key is invalid.");
|
||||
|
||||
if (ccmsg.result != ISC_R_SUCCESS)
|
||||
@@ -263,7 +263,7 @@ rndc_recvnonce(isc_task_t *task, isc_event_t *event) {
|
||||
"* the remote server is using an older version of"
|
||||
" the command protocol,\n"
|
||||
"* this host is not authorized to connect,\n"
|
||||
"* the clocks are not syncronized, or\n"
|
||||
"* the clocks are not synchronized, or\n"
|
||||
"* the key is invalid.");
|
||||
|
||||
if (ccmsg.result != ISC_R_SUCCESS)
|
||||
@@ -485,7 +485,7 @@ parse_config(isc_mem_t *mctx, isc_log_t *log, const char *keyname,
|
||||
(void)cfg_map_get(config, "server", &servers);
|
||||
if (servers != NULL) {
|
||||
for (elt = cfg_list_first(servers);
|
||||
elt != NULL;
|
||||
elt != NULL;
|
||||
elt = cfg_list_next(elt))
|
||||
{
|
||||
const char *name;
|
||||
@@ -521,7 +521,7 @@ parse_config(isc_mem_t *mctx, isc_log_t *log, const char *keyname,
|
||||
else {
|
||||
DO("get config key list", cfg_map_get(config, "key", &keys));
|
||||
for (elt = cfg_list_first(keys);
|
||||
elt != NULL;
|
||||
elt != NULL;
|
||||
elt = cfg_list_next(elt))
|
||||
{
|
||||
key = cfg_listelt_value(elt);
|
||||
@@ -599,7 +599,7 @@ parse_config(isc_mem_t *mctx, isc_log_t *log, const char *keyname,
|
||||
get_addresses(name, (in_port_t) myport);
|
||||
else
|
||||
fprintf(stderr, "too many address: "
|
||||
"%s: dropped\n", name);
|
||||
"%s: dropped\n", name);
|
||||
continue;
|
||||
}
|
||||
sa = *cfg_obj_assockaddr(address);
|
||||
@@ -739,7 +739,7 @@ main(int argc, char **argv) {
|
||||
case 'y':
|
||||
keyname = isc_commandline_argument;
|
||||
break;
|
||||
|
||||
|
||||
case '?':
|
||||
usage(0);
|
||||
break;
|
||||
@@ -773,7 +773,7 @@ main(int argc, char **argv) {
|
||||
logdest.file.maximum_size = 0;
|
||||
DO("creating log channel",
|
||||
isc_log_createchannel(logconfig, "stderr",
|
||||
ISC_LOG_TOFILEDESC, ISC_LOG_INFO, &logdest,
|
||||
ISC_LOG_TOFILEDESC, ISC_LOG_INFO, &logdest,
|
||||
ISC_LOG_PRINTTAG|ISC_LOG_PRINTLEVEL));
|
||||
DO("enabling log channel", isc_log_usechannel(logconfig, "stderr",
|
||||
NULL, NULL));
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.\" Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: rndc.conf.5,v 1.23.18.15 2007/05/09 13:35:47 marka Exp $
|
||||
.\" $Id: rndc.conf.5,v 1.23.18.16 2009/07/11 01:31:45 tbox Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
- Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: rndc.conf.html,v 1.6.18.23 2007/05/09 13:35:47 marka Exp $ -->
|
||||
<!-- $Id: rndc.conf.html,v 1.6.18.24 2009/07/11 01:31:45 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: rndc.docbook,v 1.8.18.12 2007/08/28 07:20:01 tbox Exp $ -->
|
||||
<!-- $Id: rndc.docbook,v 1.8.18.13 2007/12/14 20:53:58 marka Exp $ -->
|
||||
<refentry id="man.rndc">
|
||||
<refentryinfo>
|
||||
<date>June 30, 2000</date>
|
||||
@@ -224,6 +224,9 @@
|
||||
<para><citerefentry>
|
||||
<refentrytitle>rndc.conf</refentrytitle><manvolnum>5</manvolnum>
|
||||
</citerefentry>,
|
||||
<citerefentry>
|
||||
<refentrytitle>rndc-confgen</refentrytitle><manvolnum>8</manvolnum>
|
||||
</citerefentry>,
|
||||
<citerefentry>
|
||||
<refentrytitle>named</refentrytitle><manvolnum>8</manvolnum>
|
||||
</citerefentry>,
|
||||
|
||||
+4
-3
@@ -2,7 +2,7 @@
|
||||
- Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: rndc.html,v 1.8.18.22 2007/06/20 02:26:58 marka Exp $ -->
|
||||
<!-- $Id: rndc.html,v 1.8.18.24 2009/07/11 01:31:45 tbox Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -149,6 +149,7 @@
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543683"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">rndc.conf</span>(5)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">rndc-confgen</span>(8)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named.conf</span>(5)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">ndc</span>(8)</span>,
|
||||
@@ -156,7 +157,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543730"></a><h2>AUTHOR</h2>
|
||||
<a name="id2543738"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
+11
-6
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2001, 2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: cfg_test.c,v 1.15.18.2 2005/04/29 00:15:43 marka Exp $ */
|
||||
/* $Id: cfg_test.c,v 1.15.18.4 2009/03/02 23:45:58 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -70,7 +70,7 @@ main(int argc, char **argv) {
|
||||
cfg_obj_t *cfg = NULL;
|
||||
cfg_type_t *type = NULL;
|
||||
isc_boolean_t grammar = ISC_FALSE;
|
||||
isc_boolean_t memstats = ISC_FALSE;
|
||||
isc_boolean_t memstats = ISC_FALSE;
|
||||
char *filename = NULL;
|
||||
|
||||
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
|
||||
@@ -116,7 +116,7 @@ main(int argc, char **argv) {
|
||||
} else {
|
||||
filename = argv[1];
|
||||
}
|
||||
argv++, argc--;
|
||||
argv++, argc--;
|
||||
}
|
||||
|
||||
if (grammar) {
|
||||
@@ -147,5 +147,10 @@ main(int argc, char **argv) {
|
||||
isc_mem_stats(mctx, stderr);
|
||||
isc_mem_destroy(&mctx);
|
||||
|
||||
return (0);
|
||||
fflush(stdout);
|
||||
if (ferror(stdout)) {
|
||||
fprintf(stderr, "write error\n");
|
||||
return (1);
|
||||
} else
|
||||
return (0);
|
||||
}
|
||||
|
||||
+28
-28
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: t_db.c,v 1.31.18.3 2005/11/30 23:52:53 marka Exp $ */
|
||||
/* $Id: t_db.c,v 1.31.18.5 2009/01/22 23:46:00 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -265,7 +265,7 @@ static void
|
||||
t1(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_load", 1, T_REQUIRED, a1);
|
||||
t_assert("dns_db_load", 1, T_REQUIRED, "%s", a1);
|
||||
result = t_eval("dns_db_load_data", t_dns_db_load, 9);
|
||||
t_result(result);
|
||||
}
|
||||
@@ -451,7 +451,7 @@ static void
|
||||
t2(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_iscache", 2, T_REQUIRED, a2);
|
||||
t_assert("dns_db_iscache", 2, T_REQUIRED, "%s", a2);
|
||||
result = test_dns_db_zc_x("dns_db_iscache_1_data",
|
||||
dns_dbtype_cache, dns_db_iscache, ISC_TRUE);
|
||||
t_result(result);
|
||||
@@ -467,7 +467,7 @@ static void
|
||||
t3(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_iscache", 3, T_REQUIRED, a3);
|
||||
t_assert("dns_db_iscache", 3, T_REQUIRED, "%s", a3);
|
||||
result = test_dns_db_zc_x("dns_db_iscache_2_data",
|
||||
dns_dbtype_zone, dns_db_iscache, ISC_FALSE);
|
||||
t_result(result);
|
||||
@@ -483,7 +483,7 @@ static void
|
||||
t4(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_iszone", 4, T_REQUIRED, a4);
|
||||
t_assert("dns_db_iszone", 4, T_REQUIRED, "%s", a4);
|
||||
result = test_dns_db_zc_x("dns_db_iszone_1_data",
|
||||
dns_dbtype_zone, dns_db_iszone, ISC_TRUE);
|
||||
t_result(result);
|
||||
@@ -498,7 +498,7 @@ static void
|
||||
t5(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_iszone", 5, T_REQUIRED, a5);
|
||||
t_assert("dns_db_iszone", 5, T_REQUIRED, "%s", a5);
|
||||
result = test_dns_db_zc_x("dns_db_iszone_2_data",
|
||||
dns_dbtype_cache, dns_db_iszone, ISC_FALSE);
|
||||
t_result(result);
|
||||
@@ -618,7 +618,7 @@ static void
|
||||
t6(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_origin", 6, T_REQUIRED, a6);
|
||||
t_assert("dns_db_origin", 6, T_REQUIRED, "%s", a6);
|
||||
result = t_eval("dns_db_origin_data", t_dns_db_origin, 2);
|
||||
t_result(result);
|
||||
}
|
||||
@@ -732,7 +732,7 @@ static void
|
||||
t7(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_class", 7, T_REQUIRED, a7);
|
||||
t_assert("dns_db_class", 7, T_REQUIRED, "%s", a7);
|
||||
result = t_eval("dns_db_class_data", t_dns_db_class, 2);
|
||||
t_result(result);
|
||||
}
|
||||
@@ -1005,7 +1005,7 @@ static void
|
||||
t8(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_currentversion", 8, T_REQUIRED, a8);
|
||||
t_assert("dns_db_currentversion", 8, T_REQUIRED, "%s", a8);
|
||||
result = t_eval("dns_db_currentversion_data",
|
||||
t_dns_db_currentversion, 7);
|
||||
t_result(result);
|
||||
@@ -1323,7 +1323,7 @@ static void
|
||||
t9(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_newversion", 9, T_REQUIRED, a9);
|
||||
t_assert("dns_db_newversion", 9, T_REQUIRED, "%s", a9);
|
||||
result = t_eval("dns_db_newversion_data", t_dns_db_newversion, 7);
|
||||
t_result(result);
|
||||
}
|
||||
@@ -1734,7 +1734,7 @@ static void
|
||||
t10(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_closeversion", 10, T_REQUIRED, a10);
|
||||
t_assert("dns_db_closeversion", 10, T_REQUIRED, "%s", a10);
|
||||
result = t_eval("dns_db_closeversion_1_data",
|
||||
t_dns_db_closeversion_1, 9);
|
||||
t_result(result);
|
||||
@@ -2209,7 +2209,7 @@ static void
|
||||
t11(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_closeversion", 11, T_REQUIRED, a11);
|
||||
t_assert("dns_db_closeversion", 11, T_REQUIRED, "%s", a11);
|
||||
result = t_eval("dns_db_closeversion_2_data",
|
||||
t_dns_db_closeversion_2, 9);
|
||||
t_result(result);
|
||||
@@ -2414,7 +2414,7 @@ static void
|
||||
t12(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_expirenode", 12, T_REQUIRED, a12);
|
||||
t_assert("dns_db_expirenode", 12, T_REQUIRED, "%s", a12);
|
||||
result = t_eval("dns_db_expirenode_data", t_dns_db_expirenode, 8);
|
||||
t_result(result);
|
||||
}
|
||||
@@ -2580,7 +2580,7 @@ static void
|
||||
t13(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_findnode", 13, T_REQUIRED, a13);
|
||||
t_assert("dns_db_findnode", 13, T_REQUIRED, "%s", a13);
|
||||
result = t_eval("dns_db_findnode_1_data", t_dns_db_findnode_1, 8);
|
||||
t_result(result);
|
||||
}
|
||||
@@ -2778,7 +2778,7 @@ static void
|
||||
t14(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_findnode", 14, T_REQUIRED, a14);
|
||||
t_assert("dns_db_findnode", 14, T_REQUIRED, "%s", a14);
|
||||
result = t_eval("dns_db_findnode_2_data", t_dns_db_findnode_2, 6);
|
||||
t_result(result);
|
||||
}
|
||||
@@ -2977,7 +2977,7 @@ static void
|
||||
t15(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_find", 15, T_REQUIRED, a15);
|
||||
t_assert("dns_db_find", 15, T_REQUIRED, "%s", a15);
|
||||
result = t_eval("dns_db_find_1_data", t_dns_db_find_x, 10);
|
||||
t_result(result);
|
||||
}
|
||||
@@ -2993,7 +2993,7 @@ static void
|
||||
t16(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_find", 16, T_REQUIRED, a16);
|
||||
t_assert("dns_db_find", 16, T_REQUIRED, "%s", a16);
|
||||
result = t_eval("dns_db_find_2_data", t_dns_db_find_x, 10);
|
||||
t_result(result);
|
||||
}
|
||||
@@ -3006,7 +3006,7 @@ static void
|
||||
t17(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_find", 17, T_REQUIRED, a17);
|
||||
t_assert("dns_db_find", 17, T_REQUIRED, "%s", a17);
|
||||
result = t_eval("dns_db_find_3_data", t_dns_db_find_x, 10);
|
||||
t_result(result);
|
||||
}
|
||||
@@ -3019,7 +3019,7 @@ static void
|
||||
t18(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_find", 18, T_REQUIRED, a18);
|
||||
t_assert("dns_db_find", 18, T_REQUIRED, "%s", a18);
|
||||
result = t_eval("dns_db_find_4_data", t_dns_db_find_x, 10);
|
||||
t_result(result);
|
||||
}
|
||||
@@ -3032,7 +3032,7 @@ static void
|
||||
t19(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_find", 19, T_REQUIRED, a19);
|
||||
t_assert("dns_db_find", 19, T_REQUIRED, "%s", a19);
|
||||
result = t_eval("dns_db_find_5_data", t_dns_db_find_x, 10);
|
||||
t_result(result);
|
||||
}
|
||||
@@ -3045,7 +3045,7 @@ static void
|
||||
t20(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_find", 20, T_REQUIRED, a20);
|
||||
t_assert("dns_db_find", 20, T_REQUIRED, "%s", a20);
|
||||
result = t_eval("dns_db_find_6_data", t_dns_db_find_x, 10);
|
||||
t_result(result);
|
||||
}
|
||||
@@ -3058,7 +3058,7 @@ static void
|
||||
t21(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_find", 21, T_REQUIRED, a21);
|
||||
t_assert("dns_db_find", 21, T_REQUIRED, "%s", a21);
|
||||
result = t_eval("dns_db_find_7_data", t_dns_db_find_x, 10);
|
||||
t_result(result);
|
||||
}
|
||||
@@ -3071,7 +3071,7 @@ static void
|
||||
t22(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_find", 22, T_REQUIRED, a22);
|
||||
t_assert("dns_db_find", 22, T_REQUIRED, "%s", a22);
|
||||
result = t_eval("dns_db_find_8_data", t_dns_db_find_x, 10);
|
||||
t_result(result);
|
||||
}
|
||||
@@ -3085,7 +3085,7 @@ static void
|
||||
t23(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_find", 23, T_REQUIRED, a23);
|
||||
t_assert("dns_db_find", 23, T_REQUIRED, "%s", a23);
|
||||
result = t_eval("dns_db_find_9_data", t_dns_db_find_x, 10);
|
||||
t_result(result);
|
||||
}
|
||||
@@ -3098,7 +3098,7 @@ static void
|
||||
t24(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_find", 24, T_REQUIRED, a24);
|
||||
t_assert("dns_db_find", 24, T_REQUIRED, "%s", a24);
|
||||
result = t_eval("dns_db_find_10_data", t_dns_db_find_x, 10);
|
||||
t_result(result);
|
||||
}
|
||||
@@ -3111,7 +3111,7 @@ static void
|
||||
t25(void) {
|
||||
int result;
|
||||
|
||||
t_assert("dns_db_load", 25, T_REQUIRED, a25);
|
||||
t_assert("dns_db_load", 25, T_REQUIRED, "%s", a25);
|
||||
result = t_eval("dns_db_load_soa_not_top", t_dns_db_load, 9);
|
||||
t_result(result);
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dst_test.c,v 1.38.18.3 2005/11/30 23:52:53 marka Exp $ */
|
||||
/* $Id: dst_test.c,v 1.38.18.5 2009/03/02 23:45:58 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -245,7 +245,10 @@ main(void) {
|
||||
current = isc_mem_get(mctx, 256);
|
||||
if (current == NULL)
|
||||
return (1);
|
||||
getcwd(current, 256);
|
||||
if (getcwd(current, 256) == NULL) {
|
||||
perror("getcwd");
|
||||
return (1);
|
||||
}
|
||||
|
||||
dns_result_register();
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2008, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: t_dst.c,v 1.48.18.3 2005/11/30 23:52:53 marka Exp $ */
|
||||
/* $Id: t_dst.c,v 1.48.18.7 2009/01/22 23:46:00 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -357,7 +357,7 @@ t1(void) {
|
||||
dns_name_t *name;
|
||||
isc_buffer_t b;
|
||||
|
||||
t_assert("dst", 1, T_REQUIRED, a1);
|
||||
t_assert("dst", 1, T_REQUIRED, "%s", a1);
|
||||
|
||||
nfails = 0;
|
||||
nprobs = 0;
|
||||
@@ -377,7 +377,7 @@ t1(void) {
|
||||
t_result(T_UNRESOLVED);
|
||||
return;
|
||||
}
|
||||
result = isc_entropy_createfilesource(ectx, "randomfile");
|
||||
isc_result = isc_entropy_createfilesource(ectx, "randomfile");
|
||||
if (isc_result != ISC_R_SUCCESS) {
|
||||
t_info("isc_entropy_create failed %s\n",
|
||||
isc_result_totext(isc_result));
|
||||
@@ -876,7 +876,7 @@ t2_vfy(char **av) {
|
||||
isc_result_totext(isc_result));
|
||||
return(T_UNRESOLVED);
|
||||
}
|
||||
result = isc_entropy_createfilesource(ectx, "randomfile");
|
||||
isc_result = isc_entropy_createfilesource(ectx, "randomfile");
|
||||
if (isc_result != ISC_R_SUCCESS) {
|
||||
t_info("isc_entropy_create failed %s\n",
|
||||
isc_result_totext(isc_result));
|
||||
@@ -920,7 +920,7 @@ t2_vfy(char **av) {
|
||||
static void
|
||||
t2(void) {
|
||||
int result;
|
||||
t_assert("dst", 2, T_REQUIRED, a2);
|
||||
t_assert("dst", 2, T_REQUIRED, "%s", a2);
|
||||
result = t_eval("dst_2_data", t2_vfy, 6);
|
||||
t_result(result);
|
||||
}
|
||||
|
||||
+14
-14
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1998-2001, 2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: t_master.c,v 1.32.18.2 2005/11/30 23:52:53 marka Exp $ */
|
||||
/* $Id: t_master.c,v 1.32.18.4 2009/01/22 23:46:00 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -185,7 +185,7 @@ static const char *a1 = "dns_master_loadfile loads a valid master file and "
|
||||
static void
|
||||
t1(void) {
|
||||
int result;
|
||||
t_assert("dns_master_loadfile", 1, T_REQUIRED, a1);
|
||||
t_assert("dns_master_loadfile", 1, T_REQUIRED, "%s", a1);
|
||||
result = test_master_x("dns_master_load_1_data");
|
||||
t_result(result);
|
||||
}
|
||||
@@ -197,7 +197,7 @@ static const char *a2 =
|
||||
static void
|
||||
t2(void) {
|
||||
int result;
|
||||
t_assert("dns_master_loadfile", 2, T_REQUIRED, a2);
|
||||
t_assert("dns_master_loadfile", 2, T_REQUIRED, "%s", a2);
|
||||
result = test_master_x("dns_master_load_2_data");
|
||||
t_result(result);
|
||||
}
|
||||
@@ -208,7 +208,7 @@ static const char *a3 = "dns_master_loadfile returns DNS_R_NOOWNER when the "
|
||||
static void
|
||||
t3() {
|
||||
int result;
|
||||
t_assert("dns_master_loadfile", 3, T_REQUIRED, a3);
|
||||
t_assert("dns_master_loadfile", 3, T_REQUIRED, "%s", a3);
|
||||
result = test_master_x("dns_master_load_3_data");
|
||||
t_result(result);
|
||||
}
|
||||
@@ -220,7 +220,7 @@ static const char *a4 = "dns_master_loadfile accepts broken zone files "
|
||||
static void
|
||||
t4() {
|
||||
int result;
|
||||
t_assert("dns_master_loadfile", 4, T_REQUIRED, a4);
|
||||
t_assert("dns_master_loadfile", 4, T_REQUIRED, "%s", a4);
|
||||
result = test_master_x("dns_master_load_4_data");
|
||||
t_result(result);
|
||||
}
|
||||
@@ -232,7 +232,7 @@ static void
|
||||
t5() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_master_loadfile", 5, T_REQUIRED, a5);
|
||||
t_assert("dns_master_loadfile", 5, T_REQUIRED, "%s", a5);
|
||||
result = test_master_x("dns_master_load_5_data");
|
||||
|
||||
t_result(result);
|
||||
@@ -246,7 +246,7 @@ static void
|
||||
t6() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_master_loadfile", 6, T_REQUIRED, a6);
|
||||
t_assert("dns_master_loadfile", 6, T_REQUIRED, "%s", a6);
|
||||
result = test_master_x("dns_master_load_6_data");
|
||||
|
||||
t_result(result);
|
||||
@@ -260,7 +260,7 @@ static void
|
||||
t7() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_master_loadfile", 7, T_REQUIRED, a7);
|
||||
t_assert("dns_master_loadfile", 7, T_REQUIRED, "%s", a7);
|
||||
result = test_master_x("dns_master_load_7_data");
|
||||
|
||||
t_result(result);
|
||||
@@ -273,7 +273,7 @@ static void
|
||||
t8() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_master_loadfile", 8, T_REQUIRED, a8);
|
||||
t_assert("dns_master_loadfile", 8, T_REQUIRED, "%s", a8);
|
||||
result = test_master_x("dns_master_load_8_data");
|
||||
|
||||
t_result(result);
|
||||
@@ -286,7 +286,7 @@ static void
|
||||
t9() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_master_loadfile", 9, T_REQUIRED, a9);
|
||||
t_assert("dns_master_loadfile", 9, T_REQUIRED, "%s", a9);
|
||||
result = test_master_x("dns_master_load_9_data");
|
||||
|
||||
t_result(result);
|
||||
@@ -299,7 +299,7 @@ static void
|
||||
t10() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_master_loadfile", 10, T_REQUIRED, a10);
|
||||
t_assert("dns_master_loadfile", 10, T_REQUIRED, "%s", a10);
|
||||
result = test_master_x("dns_master_load_10_data");
|
||||
|
||||
t_result(result);
|
||||
@@ -312,7 +312,7 @@ static void
|
||||
t11() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_master_loadfile", 11, T_REQUIRED, a11);
|
||||
t_assert("dns_master_loadfile", 11, T_REQUIRED, "%s", a11);
|
||||
result = test_master_x("dns_master_load_11_data");
|
||||
|
||||
t_result(result);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: t_mem.c,v 1.11 2004/03/05 04:58:53 marka Exp $ */
|
||||
/* $Id: t_mem.c,v 1.11.18.2 2009/01/22 23:46:00 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -190,7 +190,7 @@ t1(void) {
|
||||
int rval;
|
||||
int result;
|
||||
|
||||
t_assert("mem", 1, T_REQUIRED, a1);
|
||||
t_assert("mem", 1, T_REQUIRED, "%s", a1);
|
||||
|
||||
rval = memtest();
|
||||
|
||||
|
||||
+35
-33
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2006, 2008, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1998-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: t_names.c,v 1.36.18.5 2006/12/07 23:57:58 marka Exp $ */
|
||||
/* $Id: t_names.c,v 1.36.18.10 2009/01/22 23:46:00 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -209,6 +209,7 @@ getmsg(char *datafile_name, unsigned char *buf, int buflen, isc_buffer_t *pbuf)
|
||||
else if (('A' <= c) && (c <= 'Z'))
|
||||
val = c - 'A'+ 10;
|
||||
else {
|
||||
(void)fclose(fp);
|
||||
t_info("Bad format in datafile\n");
|
||||
return (0);
|
||||
}
|
||||
@@ -222,6 +223,7 @@ getmsg(char *datafile_name, unsigned char *buf, int buflen, isc_buffer_t *pbuf)
|
||||
/*
|
||||
* Buffer too small.
|
||||
*/
|
||||
(void)fclose(fp);
|
||||
t_info("Buffer overflow error\n");
|
||||
return (0);
|
||||
}
|
||||
@@ -364,7 +366,7 @@ t_dns_name_init(void) {
|
||||
unsigned char offsets[1];
|
||||
|
||||
rval = 0;
|
||||
t_assert("dns_name_init", 1, T_REQUIRED, a3);
|
||||
t_assert("dns_name_init", 1, T_REQUIRED, "%s", a3);
|
||||
|
||||
dns_name_init(&name, offsets);
|
||||
/* magic is hidden in name.c ...
|
||||
@@ -414,7 +416,7 @@ t_dns_name_invalidate(void) {
|
||||
dns_name_t name;
|
||||
unsigned char offsets[1];
|
||||
|
||||
t_assert("dns_name_invalidate", 1, T_REQUIRED, a4);
|
||||
t_assert("dns_name_invalidate", 1, T_REQUIRED, "%s", a4);
|
||||
|
||||
rval = 0;
|
||||
dns_name_init(&name, offsets);
|
||||
@@ -468,7 +470,7 @@ t_dns_name_setbuffer(void) {
|
||||
dns_name_t name;
|
||||
isc_buffer_t buffer;
|
||||
|
||||
t_assert("dns_name_setbuffer", 1, T_REQUIRED, a5);
|
||||
t_assert("dns_name_setbuffer", 1, T_REQUIRED, "%s", a5);
|
||||
|
||||
isc_buffer_init(&buffer, junk, BUFLEN);
|
||||
dns_name_init(&name, NULL);
|
||||
@@ -492,7 +494,7 @@ t_dns_name_hasbuffer(void) {
|
||||
dns_name_t name;
|
||||
isc_buffer_t buffer;
|
||||
|
||||
t_assert("dns_name_hasbuffer", 1, T_REQUIRED, a6);
|
||||
t_assert("dns_name_hasbuffer", 1, T_REQUIRED, "%s", a6);
|
||||
|
||||
rval = 0;
|
||||
isc_buffer_init(&buffer, junk, BUFLEN);
|
||||
@@ -555,7 +557,7 @@ t_dns_name_isabsolute(void) {
|
||||
char *p;
|
||||
FILE *fp;
|
||||
|
||||
t_assert("dns_name_isabsolute", 1, T_REQUIRED, a7);
|
||||
t_assert("dns_name_isabsolute", 1, T_REQUIRED, "%s", a7);
|
||||
|
||||
result = T_UNRESOLVED;
|
||||
fp = fopen("dns_name_isabsolute_data", "r");
|
||||
@@ -579,7 +581,7 @@ t_dns_name_isabsolute(void) {
|
||||
* label, bitpos, expected value.
|
||||
*/
|
||||
result = test_dns_name_isabsolute(Tokens[0],
|
||||
atoi(Tokens[1])
|
||||
atoi(Tokens[1])
|
||||
== 0 ?
|
||||
ISC_FALSE :
|
||||
ISC_TRUE);
|
||||
@@ -668,7 +670,7 @@ t_dns_name_hash(void) {
|
||||
char *p;
|
||||
FILE *fp;
|
||||
|
||||
t_assert("dns_name_hash", 1, T_REQUIRED, a8);
|
||||
t_assert("dns_name_hash", 1, T_REQUIRED, "%s", a8);
|
||||
|
||||
result = T_UNRESOLVED;
|
||||
fp = fopen("dns_name_hash_data", "r");
|
||||
@@ -824,7 +826,7 @@ t_dns_name_fullcompare(void) {
|
||||
FILE *fp;
|
||||
dns_namereln_t reln;
|
||||
|
||||
t_assert("dns_name_fullcompare", 1, T_REQUIRED, a10);
|
||||
t_assert("dns_name_fullcompare", 1, T_REQUIRED, "%s", a10);
|
||||
|
||||
result = T_UNRESOLVED;
|
||||
fp = fopen("dns_name_fullcompare_data", "r");
|
||||
@@ -944,7 +946,7 @@ t_dns_name_compare(void) {
|
||||
char *p;
|
||||
FILE *fp;
|
||||
|
||||
t_assert("dns_name_compare", 1, T_REQUIRED, a23);
|
||||
t_assert("dns_name_compare", 1, T_REQUIRED, "%s", a23);
|
||||
|
||||
result = T_UNRESOLVED;
|
||||
fp = fopen("dns_name_compare_data", "r");
|
||||
@@ -1046,7 +1048,7 @@ t_dns_name_rdatacompare(void) {
|
||||
char *p;
|
||||
FILE *fp;
|
||||
|
||||
t_assert("dns_name_rdatacompare", 1, T_REQUIRED, a30);
|
||||
t_assert("dns_name_rdatacompare", 1, T_REQUIRED, "%s", a30);
|
||||
|
||||
result = T_UNRESOLVED;
|
||||
fp = fopen("dns_name_rdatacompare_data", "r");
|
||||
@@ -1144,7 +1146,7 @@ t_dns_name_issubdomain(void) {
|
||||
char *p;
|
||||
FILE *fp;
|
||||
|
||||
t_assert("dns_name_issubdomain", 1, T_REQUIRED, a33);
|
||||
t_assert("dns_name_issubdomain", 1, T_REQUIRED, "%s", a33);
|
||||
|
||||
result = T_UNRESOLVED;
|
||||
fp = fopen("dns_name_issubdomain_data", "r");
|
||||
@@ -1227,7 +1229,7 @@ t_dns_name_countlabels(void) {
|
||||
char *p;
|
||||
FILE *fp;
|
||||
|
||||
t_assert("dns_name_countlabels", 1, T_REQUIRED, a35);
|
||||
t_assert("dns_name_countlabels", 1, T_REQUIRED, "%s", a35);
|
||||
|
||||
result = T_UNRESOLVED;
|
||||
fp = fopen("dns_name_countlabels_data", "r");
|
||||
@@ -1339,7 +1341,7 @@ t_dns_name_getlabel(void) {
|
||||
char *p;
|
||||
FILE *fp;
|
||||
|
||||
t_assert("dns_name_getlabel", 1, T_REQUIRED, a36);
|
||||
t_assert("dns_name_getlabel", 1, T_REQUIRED, "%s", a36);
|
||||
|
||||
result = T_UNRESOLVED;
|
||||
fp = fopen("dns_name_getlabel_data", "r");
|
||||
@@ -1364,7 +1366,7 @@ t_dns_name_getlabel(void) {
|
||||
*/
|
||||
result = test_dns_name_getlabel(Tokens[0],
|
||||
atoi(Tokens[1]),
|
||||
Tokens[2],
|
||||
Tokens[2],
|
||||
atoi(Tokens[3]));
|
||||
} else {
|
||||
t_info("bad format at line %d\n", line);
|
||||
@@ -1469,7 +1471,7 @@ t_dns_name_getlabelsequence(void) {
|
||||
char *p;
|
||||
FILE *fp;
|
||||
|
||||
t_assert("dns_name_getlabelsequence", 1, T_REQUIRED, a37);
|
||||
t_assert("dns_name_getlabelsequence", 1, T_REQUIRED, "%s", a37);
|
||||
|
||||
result = T_UNRESOLVED;
|
||||
fp = fopen("dns_name_getlabelsequence_data", "r");
|
||||
@@ -1559,7 +1561,7 @@ t_dns_name_fromregion(void) {
|
||||
char *p;
|
||||
FILE *fp;
|
||||
|
||||
t_assert("dns_name_fromregion", 1, T_REQUIRED, a38);
|
||||
t_assert("dns_name_fromregion", 1, T_REQUIRED, "%s", a38);
|
||||
|
||||
result = T_UNRESOLVED;
|
||||
fp = fopen("dns_name_fromregion_data", "r");
|
||||
@@ -1609,7 +1611,7 @@ t_dns_name_toregion(void) {
|
||||
char *p;
|
||||
FILE *fp;
|
||||
|
||||
t_assert("dns_name_toregion", 1, T_REQUIRED, a39);
|
||||
t_assert("dns_name_toregion", 1, T_REQUIRED, "%s", a39);
|
||||
|
||||
result = T_UNRESOLVED;
|
||||
fp = fopen("dns_name_toregion_data", "r");
|
||||
@@ -1746,7 +1748,7 @@ t_dns_name_fromtext(void) {
|
||||
char *p;
|
||||
FILE *fp;
|
||||
|
||||
t_assert("dns_name_fromtext", 1, T_REQUIRED, a40);
|
||||
t_assert("dns_name_fromtext", 1, T_REQUIRED, "%s", a40);
|
||||
|
||||
result = T_UNRESOLVED;
|
||||
fp = fopen("dns_name_fromtext_data", "r");
|
||||
@@ -1882,7 +1884,7 @@ t_dns_name_totext(void) {
|
||||
char *p;
|
||||
FILE *fp;
|
||||
|
||||
t_assert("dns_name_totext", 1, T_REQUIRED, a41);
|
||||
t_assert("dns_name_totext", 1, T_REQUIRED, "%s", a41);
|
||||
|
||||
result = T_UNRESOLVED;
|
||||
fp = fopen("dns_name_totext_data", "r");
|
||||
@@ -2116,7 +2118,7 @@ t_dns_name_fromwire_x(const char *testfile, size_t buflen) {
|
||||
|
||||
static void
|
||||
t_dns_name_fromwire(void) {
|
||||
t_assert("dns_name_fromwire", 1, T_REQUIRED, a42);
|
||||
t_assert("dns_name_fromwire", 1, T_REQUIRED, "%s", a42);
|
||||
t_dns_name_fromwire_x("dns_name_fromwire_1_data", BUFLEN);
|
||||
|
||||
#if 0
|
||||
@@ -2124,26 +2126,26 @@ t_dns_name_fromwire(void) {
|
||||
* XXXRTH these tests appear to be broken, so I have
|
||||
* disabled them.
|
||||
*/
|
||||
t_assert("dns_name_fromwire", 2, T_REQUIRED, a43);
|
||||
t_assert("dns_name_fromwire", 2, T_REQUIRED, "%s", a43);
|
||||
t_dns_name_fromwire_x("dns_name_fromwire_2_data", BUFLEN);
|
||||
|
||||
t_assert("dns_name_fromwire", 3, T_REQUIRED, a44);
|
||||
t_assert("dns_name_fromwire", 3, T_REQUIRED, "%s", a44);
|
||||
t_dns_name_fromwire_x("dns_name_fromwire_3_data", BUFLEN);
|
||||
#endif
|
||||
|
||||
t_assert("dns_name_fromwire", 4, T_REQUIRED, a45);
|
||||
t_assert("dns_name_fromwire", 4, T_REQUIRED, "%s", a45);
|
||||
t_dns_name_fromwire_x("dns_name_fromwire_4_data", BUFLEN);
|
||||
|
||||
t_assert("dns_name_fromwire", 5, T_REQUIRED, a46);
|
||||
t_assert("dns_name_fromwire", 5, T_REQUIRED, "%s", a46);
|
||||
t_dns_name_fromwire_x("dns_name_fromwire_5_data", BUFLEN);
|
||||
|
||||
t_assert("dns_name_fromwire", 6, T_REQUIRED, a47);
|
||||
t_assert("dns_name_fromwire", 6, T_REQUIRED, "%s", a47);
|
||||
t_dns_name_fromwire_x("dns_name_fromwire_6_data", BUFLEN);
|
||||
|
||||
t_assert("dns_name_fromwire", 7, T_REQUIRED, a48);
|
||||
t_assert("dns_name_fromwire", 7, T_REQUIRED, "%s", a48);
|
||||
t_dns_name_fromwire_x("dns_name_fromwire_7_data", BUFLEN);
|
||||
|
||||
t_assert("dns_name_fromwire", 9, T_REQUIRED, a49);
|
||||
t_assert("dns_name_fromwire", 9, T_REQUIRED, "%s", a49);
|
||||
t_dns_name_fromwire_x("dns_name_fromwire_8_data", 2);
|
||||
}
|
||||
|
||||
@@ -2282,13 +2284,13 @@ t_dns_name_towire_x(const char *testfile, size_t buflen) {
|
||||
|
||||
static void
|
||||
t_dns_name_towire_1(void) {
|
||||
t_assert("dns_name_towire", 1, T_REQUIRED, a51);
|
||||
t_assert("dns_name_towire", 1, T_REQUIRED, "%s", a51);
|
||||
t_dns_name_towire_x("dns_name_towire_1_data", BUFLEN);
|
||||
}
|
||||
|
||||
static void
|
||||
t_dns_name_towire_2(void) {
|
||||
t_assert("dns_name_towire", 2, T_REQUIRED, a52);
|
||||
t_assert("dns_name_towire", 2, T_REQUIRED, "%s", a52);
|
||||
t_dns_name_towire_x("dns_name_towire_2_data", 2);
|
||||
}
|
||||
|
||||
@@ -2309,7 +2311,7 @@ static const char *a53 =
|
||||
|
||||
static void
|
||||
t_dns_name_concatenate(void) {
|
||||
t_assert("dns_name_concatenate", 1, T_REQUIRED, a53);
|
||||
t_assert("dns_name_concatenate", 1, T_REQUIRED, "%s", a53);
|
||||
t_result(T_UNTESTED);
|
||||
}
|
||||
#endif
|
||||
|
||||
+19
-19
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2009 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1998-2001, 2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: t_rbt.c,v 1.25.18.3 2005/11/30 23:52:53 marka Exp $ */
|
||||
/* $Id: t_rbt.c,v 1.25.18.5 2009/01/22 23:46:00 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -194,7 +194,7 @@ t1_add(char *name, dns_rbt_t *rbt, isc_mem_t *mctx, isc_result_t *dns_result) {
|
||||
if (*dns_result != ISC_R_SUCCESS) {
|
||||
delete_name(dns_name, mctx);
|
||||
t_info("dns_rbt_addname failed %s\n",
|
||||
dns_result_totext(*dns_result));
|
||||
dns_result_totext(*dns_result));
|
||||
++nprobs;
|
||||
}
|
||||
} else {
|
||||
@@ -275,7 +275,7 @@ rbt_init(char *filename, dns_rbt_t **rbt, isc_mem_t *mctx) {
|
||||
dns_result = dns_rbt_create(mctx, delete_name, mctx, rbt);
|
||||
if (dns_result != ISC_R_SUCCESS) {
|
||||
t_info("dns_rbt_create failed %s\n",
|
||||
dns_result_totext(dns_result));
|
||||
dns_result_totext(dns_result));
|
||||
fclose(fp);
|
||||
return(1);
|
||||
}
|
||||
@@ -517,7 +517,7 @@ static void
|
||||
t1() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_rbt_create", 1, T_REQUIRED, a1);
|
||||
t_assert("dns_rbt_create", 1, T_REQUIRED, "%s", a1);
|
||||
result = test_dns_rbt_x("dns_rbt_create_1_data");
|
||||
t_result(result);
|
||||
}
|
||||
@@ -529,7 +529,7 @@ static void
|
||||
t2() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_rbt_addname", 2, T_REQUIRED, a2);
|
||||
t_assert("dns_rbt_addname", 2, T_REQUIRED, "%s", a2);
|
||||
result = test_dns_rbt_x("dns_rbt_addname_1_data");
|
||||
t_result(result);
|
||||
}
|
||||
@@ -541,7 +541,7 @@ static void
|
||||
t3() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_rbt_addname", 3, T_REQUIRED, a3);
|
||||
t_assert("dns_rbt_addname", 3, T_REQUIRED, "%s", a3);
|
||||
result = test_dns_rbt_x("dns_rbt_addname_2_data");
|
||||
t_result(result);
|
||||
}
|
||||
@@ -553,7 +553,7 @@ static void
|
||||
t4() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_rbt_deletename", 4, T_REQUIRED, a4);
|
||||
t_assert("dns_rbt_deletename", 4, T_REQUIRED, "%s", a4);
|
||||
result = test_dns_rbt_x("dns_rbt_deletename_1_data");
|
||||
t_result(result);
|
||||
}
|
||||
@@ -564,7 +564,7 @@ static void
|
||||
t5() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_rbt_deletename", 5, T_REQUIRED, a5);
|
||||
t_assert("dns_rbt_deletename", 5, T_REQUIRED, "%s", a5);
|
||||
result = test_dns_rbt_x("dns_rbt_deletename_2_data");
|
||||
t_result(result);
|
||||
}
|
||||
@@ -576,7 +576,7 @@ static void
|
||||
t6() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_rbt_findname", 6, T_REQUIRED, a6);
|
||||
t_assert("dns_rbt_findname", 6, T_REQUIRED, "%s", a6);
|
||||
result = test_dns_rbt_x("dns_rbt_findname_1_data");
|
||||
t_result(result);
|
||||
}
|
||||
@@ -588,7 +588,7 @@ static void
|
||||
t7() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_rbt_findname", 7, T_REQUIRED, a7);
|
||||
t_assert("dns_rbt_findname", 7, T_REQUIRED, "%s", a7);
|
||||
result = test_dns_rbt_x("dns_rbt_findname_2_data");
|
||||
t_result(result);
|
||||
}
|
||||
@@ -600,7 +600,7 @@ static void
|
||||
t8() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_rbt_findname", 8, T_REQUIRED, a8);
|
||||
t_assert("dns_rbt_findname", 8, T_REQUIRED, "%s", a8);
|
||||
result = test_dns_rbt_x("dns_rbt_findname_3_data");
|
||||
t_result(result);
|
||||
}
|
||||
@@ -684,7 +684,7 @@ t9_walkchain(dns_rbtnodechain_t *chain, dns_rbt_t *rbt) {
|
||||
dns_result = dns_name_concatenate(
|
||||
dns_fixedname_name(&name),
|
||||
dns_name_isabsolute(dns_fixedname_name(&name)) ?
|
||||
NULL : dns_fixedname_name(&origin),
|
||||
NULL : dns_fixedname_name(&origin),
|
||||
dns_fixedname_name(&fullname2), NULL);
|
||||
if (dns_result != ISC_R_SUCCESS) {
|
||||
t_info("dns_name_concatenate failed %s\n",
|
||||
@@ -1034,7 +1034,7 @@ static void
|
||||
t9() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_rbtnodechain_init", 9, T_REQUIRED, a9);
|
||||
t_assert("dns_rbtnodechain_init", 9, T_REQUIRED, "%s", a9);
|
||||
result = test_dns_rbtnodechain_init("dns_rbtnodechain_init_data");
|
||||
t_result(result);
|
||||
}
|
||||
@@ -1224,7 +1224,7 @@ static void
|
||||
t10() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_rbtnodechain_first", 10, T_REQUIRED, a10);
|
||||
t_assert("dns_rbtnodechain_first", 10, T_REQUIRED, "%s", a10);
|
||||
result = test_dns_rbtnodechain_first("dns_rbtnodechain_first_data");
|
||||
t_result(result);
|
||||
}
|
||||
@@ -1417,7 +1417,7 @@ static void
|
||||
t11() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_rbtnodechain_last", 11, T_REQUIRED, a11);
|
||||
t_assert("dns_rbtnodechain_last", 11, T_REQUIRED, "%s", a11);
|
||||
result = test_dns_rbtnodechain_last("dns_rbtnodechain_last_data");
|
||||
t_result(result);
|
||||
}
|
||||
@@ -1625,7 +1625,7 @@ static void
|
||||
t12() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_rbtnodechain_next", 12, T_REQUIRED, a12);
|
||||
t_assert("dns_rbtnodechain_next", 12, T_REQUIRED, "%s", a12);
|
||||
result = test_dns_rbtnodechain_next("dns_rbtnodechain_next_data");
|
||||
t_result(result);
|
||||
}
|
||||
@@ -1831,7 +1831,7 @@ static void
|
||||
t13() {
|
||||
int result;
|
||||
|
||||
t_assert("dns_rbtnodechain_prev", 13, T_REQUIRED, a13);
|
||||
t_assert("dns_rbtnodechain_prev", 13, T_REQUIRED, "%s", a13);
|
||||
result = test_dns_rbtnodechain_prev("dns_rbtnodechain_prev_data");
|
||||
t_result(result);
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: sig0_test.c,v 1.11.18.2.52.2 2008/07/23 07:28:55 tbox Exp $ */
|
||||
/* $Id: sig0_test.c,v 1.11.18.4 2008/07/22 23:46:04 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: sock_test.c,v 1.49.18.1.52.3 2008/07/23 23:16:43 marka Exp $ */
|
||||
/* $Id: sock_test.c,v 1.49.18.4 2008/07/23 23:33:02 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# 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: clean.sh,v 1.3.4.2 2008/01/11 23:45:59 tbox Exp $
|
||||
|
||||
#
|
||||
# Clean up after zone transfer tests.
|
||||
#
|
||||
|
||||
rm -f dig.out
|
||||
rm -f ns2/example.db ns2/tsigzone.db ns2/example.db.jnl ns2/named.conf
|
||||
rm -f */named.memstats
|
||||
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright (C) 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: named1.conf,v 1.2 2008/01/10 01:10:01 marka Exp $ */
|
||||
|
||||
controls { /* empty */ };
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.2;
|
||||
notify-source 10.53.0.2;
|
||||
transfer-source 10.53.0.2;
|
||||
port 5300;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.2; };
|
||||
listen-on-v6 { none; };
|
||||
recursion no;
|
||||
notify yes;
|
||||
ixfr-from-differences yes;
|
||||
check-integrity no;
|
||||
};
|
||||
|
||||
include "../../common/controls.conf";
|
||||
|
||||
key one {
|
||||
algorithm hmac-md5;
|
||||
secret "1234abcd8765";
|
||||
};
|
||||
|
||||
key two {
|
||||
algorithm hmac-md5;
|
||||
secret "1234abcd8765";
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type hint;
|
||||
file "../../common/root.hint";
|
||||
};
|
||||
|
||||
zone "example" {
|
||||
type master;
|
||||
file "example.db";
|
||||
};
|
||||
|
||||
zone "tsigzone" {
|
||||
type master;
|
||||
file "tsigzone.db";
|
||||
allow-transfer { !key one; any; };
|
||||
};
|
||||
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright (C) 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: named2.conf,v 1.2 2008/01/10 01:10:01 marka Exp $ */
|
||||
|
||||
controls { /* empty */ };
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.2;
|
||||
notify-source 10.53.0.2;
|
||||
transfer-source 10.53.0.2;
|
||||
port 5300;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.2; };
|
||||
listen-on-v6 { none; };
|
||||
recursion no;
|
||||
notify yes;
|
||||
ixfr-from-differences yes;
|
||||
check-integrity no;
|
||||
};
|
||||
|
||||
include "../../common/controls.conf";
|
||||
|
||||
key one {
|
||||
algorithm hmac-md5;
|
||||
secret "1234abcd8765";
|
||||
};
|
||||
|
||||
key two {
|
||||
algorithm hmac-md5;
|
||||
secret "1234abcd8765";
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type hint;
|
||||
file "../../common/root.hint";
|
||||
};
|
||||
|
||||
zone "example" {
|
||||
type master;
|
||||
file "example.db";
|
||||
};
|
||||
|
||||
zone "tsigzone" {
|
||||
type master;
|
||||
file "tsigzone.db";
|
||||
allow-transfer { !10/8; key one; };
|
||||
};
|
||||
@@ -0,0 +1,74 @@
|
||||
/*
|
||||
* 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: named3.conf,v 1.2 2008/01/10 01:10:01 marka Exp $ */
|
||||
|
||||
controls { /* empty */ };
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.2;
|
||||
notify-source 10.53.0.2;
|
||||
transfer-source 10.53.0.2;
|
||||
port 5300;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.2; };
|
||||
listen-on-v6 { none; };
|
||||
recursion no;
|
||||
notify yes;
|
||||
ixfr-from-differences yes;
|
||||
check-integrity no;
|
||||
};
|
||||
|
||||
include "../../common/controls.conf";
|
||||
|
||||
key one {
|
||||
algorithm hmac-md5;
|
||||
secret "1234abcd8765";
|
||||
};
|
||||
|
||||
key two {
|
||||
algorithm hmac-md5;
|
||||
secret "1234abcd8765";
|
||||
};
|
||||
|
||||
key three {
|
||||
algorithm hmac-md5;
|
||||
secret "1234abcd8765";
|
||||
};
|
||||
|
||||
acl reject {
|
||||
!key one; !key two; any;
|
||||
};
|
||||
|
||||
acl accept {
|
||||
10.53.0.1; 10.53.0.2;
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type hint;
|
||||
file "../../common/root.hint";
|
||||
};
|
||||
|
||||
zone "example" {
|
||||
type master;
|
||||
file "example.db";
|
||||
};
|
||||
|
||||
zone "tsigzone" {
|
||||
type master;
|
||||
file "tsigzone.db";
|
||||
allow-transfer { !reject; accept; };
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user