Compare commits
2060
Commits
v9.2.0a1
...
v9.2.0rc10
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4cbcc6e25b | ||
|
|
a51c70decc | ||
|
|
caa8797a00 | ||
|
|
73d7583d98 | ||
|
|
50b0a27f48 | ||
|
|
97cee754a9 | ||
|
|
8db1db6295 | ||
|
|
c42af00541 | ||
|
|
08102bb28c | ||
|
|
9ae90732df | ||
|
|
c1567cb58c | ||
|
|
f3222d48cc | ||
|
|
e95cc59f90 | ||
|
|
64ea670052 | ||
|
|
60e9e70654 | ||
|
|
47db0efda1 | ||
|
|
8839b6acbf | ||
|
|
db462c020e | ||
|
|
32dd66cc5e | ||
|
|
6c62c34a5b | ||
|
|
ecb55f9962 | ||
|
|
c6d29fbd5f | ||
|
|
51693f0bd9 | ||
|
|
18b7133679 | ||
|
|
23e4260821 | ||
|
|
45ddf396e9 | ||
|
|
4ca54c8f3b | ||
|
|
9ecd36e0de | ||
|
|
6383d77950 | ||
|
|
b39e8e9c00 | ||
|
|
1ed8794070 | ||
|
|
5cd1e83a84 | ||
|
|
a9f5be4348 | ||
|
|
41f154b98e | ||
|
|
94b4f2728e | ||
|
|
f29583dca7 | ||
|
|
f1457d6c8c | ||
|
|
cc0a7affe9 | ||
|
|
ec02e04ead | ||
|
|
8fb0f1fa42 | ||
|
|
a20b2c5f53 | ||
|
|
f5cb884c84 | ||
|
|
206c9e7f5d | ||
|
|
0062c1ddfe | ||
|
|
07eee0ceda | ||
|
|
35ae209f35 | ||
|
|
360a56a4a4 | ||
|
|
aa75c92b6b | ||
|
|
bfe7da9c6b | ||
|
|
323de351b3 | ||
|
|
6b345bc209 | ||
|
|
d3fafb3213 | ||
|
|
6fedbb60b2 | ||
|
|
0e84be2c52 | ||
|
|
c363d0fed8 | ||
|
|
f5e4a39e62 | ||
|
|
e227c896a2 | ||
|
|
0f0e3ffdc1 | ||
|
|
b8c4c3aade | ||
|
|
c2f1d683c9 | ||
|
|
fa85f47357 | ||
|
|
efd263562b | ||
|
|
8a044e464b | ||
|
|
d7979cbb6c | ||
|
|
5295debde0 | ||
|
|
3e69f0cd72 | ||
|
|
c592760e76 | ||
|
|
b172c78a9a | ||
|
|
f64f89606f | ||
|
|
3f25cb17e3 | ||
|
|
e2352fb8cd | ||
|
|
21b4f15c60 | ||
|
|
db18d1997e | ||
|
|
b6279d0b4b | ||
|
|
417cddb8c1 | ||
|
|
42e74b77f5 | ||
|
|
f27e47b5ff | ||
|
|
2a091ec932 | ||
|
|
9445e10377 | ||
|
|
c3e0aed7da | ||
|
|
f6bd49ffd0 | ||
|
|
b938d2af61 | ||
|
|
fff1dbdf55 | ||
|
|
69e7554caa | ||
|
|
b2ca6fd3a8 | ||
|
|
99df95697c | ||
|
|
d778d61208 | ||
|
|
d0bb045c79 | ||
|
|
3fa36cb79d | ||
|
|
ab92fa0aca | ||
|
|
7e715a0fc5 | ||
|
|
3a7c194000 | ||
|
|
8a4f85e204 | ||
|
|
622a5774e6 | ||
|
|
feed58ca64 | ||
|
|
eab966fdb3 | ||
|
|
c45ca0b839 | ||
|
|
5eeb5ddc67 | ||
|
|
4c7c397275 | ||
|
|
05b8c412f8 | ||
|
|
023dd2cfe0 | ||
|
|
413463f215 | ||
|
|
bc1268ea83 | ||
|
|
d8f67a1d88 | ||
|
|
b6e20238b6 | ||
|
|
b7f8bca629 | ||
|
|
8bb8f9c6c8 | ||
|
|
de619d1e81 | ||
|
|
e6450a5811 | ||
|
|
d8b140ce00 | ||
|
|
5804bf8118 | ||
|
|
e47a6956a1 | ||
|
|
d83346263d | ||
|
|
93aba2cb04 | ||
|
|
7366e9c47d | ||
|
|
a818127616 | ||
|
|
6e574a8b30 | ||
|
|
a7859ded82 | ||
|
|
d7224e6672 | ||
|
|
2adafac25f | ||
|
|
057fc2ec3f | ||
|
|
80670d2633 | ||
|
|
6430d5b4ef | ||
|
|
473ca0bf8c | ||
|
|
48b0f5ff87 | ||
|
|
0b809e3e23 | ||
|
|
cde7dfea4c | ||
|
|
915c16e8aa | ||
|
|
ec52edeff2 | ||
|
|
47af71b523 | ||
|
|
15033eed4d | ||
|
|
fca9cc33ad | ||
|
|
2ca2e1a1ce | ||
|
|
84185d19c7 | ||
|
|
16a160ea8a | ||
|
|
f132d4023a | ||
|
|
a50304c317 | ||
|
|
8ac220d5cc | ||
|
|
683f10428e | ||
|
|
022e33bfc7 | ||
|
|
3bc24a3a90 | ||
|
|
5ef63950cf | ||
|
|
4f0ddc4fc1 | ||
|
|
f5ea135066 | ||
|
|
bedd38297c | ||
|
|
2bffec87ac | ||
|
|
f9409b10fd | ||
|
|
5da1e589c2 | ||
|
|
852fa3b2e3 | ||
|
|
f10e90ebb4 | ||
|
|
8569ab045a | ||
|
|
a5c077e40c | ||
|
|
2ca556300b | ||
|
|
930ecd3756 | ||
|
|
97527fc03c | ||
|
|
c46f10e4a1 | ||
|
|
e1c2a8b9c1 | ||
|
|
73442acbe7 | ||
|
|
a4f0e6d8d6 | ||
|
|
3a8d4a316e | ||
|
|
b7064914ca | ||
|
|
6e8b843125 | ||
|
|
ef38731b6f | ||
|
|
3e67a87fc6 | ||
|
|
49f62849e5 | ||
|
|
b627356826 | ||
|
|
e9472e9f18 | ||
|
|
9cf6d43887 | ||
|
|
d073663cb4 | ||
|
|
80278e8856 | ||
|
|
7ead8b72ea | ||
|
|
cad61731f8 | ||
|
|
ac69ec1294 | ||
|
|
54469c2b22 | ||
|
|
21143c2afa | ||
|
|
f9ff782e79 | ||
|
|
6646cc41d7 | ||
|
|
ca2ebf900d | ||
|
|
e74100e3f4 | ||
|
|
90e303b114 | ||
|
|
cfbdb5e079 | ||
|
|
9c827a3997 | ||
|
|
adbb11147c | ||
|
|
6a2a7fbfd1 | ||
|
|
669e9657c7 | ||
|
|
b3ebf6f275 | ||
|
|
c58088e3a0 | ||
|
|
60c2c8814f | ||
|
|
9ab461a6ff | ||
|
|
77467267d9 | ||
|
|
b7dca533e0 | ||
|
|
0fa218cc7c | ||
|
|
13ba983cc8 | ||
|
|
3036da0109 | ||
|
|
84d8c0166d | ||
|
|
da5d1cf1b1 | ||
|
|
df1415d1e8 | ||
|
|
82107a8889 | ||
|
|
13f20ab1fa | ||
|
|
4099c201ff | ||
|
|
6cb12c44a3 | ||
|
|
66291de206 | ||
|
|
0118965e19 | ||
|
|
6c06bc591a | ||
|
|
486e212005 | ||
|
|
58d9437115 | ||
|
|
c36f45e354 | ||
|
|
b31471255d | ||
|
|
07caa8f1f9 | ||
|
|
7caf656a15 | ||
|
|
5fc932977a | ||
|
|
9cec4ca6ca | ||
|
|
19f0d00107 | ||
|
|
fefd6c28ab | ||
|
|
23fb770906 | ||
|
|
793711f26e | ||
|
|
1898837a5e | ||
|
|
9af8851b85 | ||
|
|
6124a262fa | ||
|
|
0cb27602e5 | ||
|
|
3e86caf335 | ||
|
|
2c63b97c09 | ||
|
|
21b1491aa2 | ||
|
|
0d6f70f1db | ||
|
|
11dbb6dc6b | ||
|
|
5af6873693 | ||
|
|
ff1b064f5e | ||
|
|
8e40433e34 | ||
|
|
23924b681e | ||
|
|
5157792c8d | ||
|
|
efc01ed4ad | ||
|
|
e57e32e575 | ||
|
|
708f3fd049 | ||
|
|
192cd0c440 | ||
|
|
8740bb8af0 | ||
|
|
68d9a8bddf | ||
|
|
b01b0bb771 | ||
|
|
1b1f3fca3a | ||
|
|
880723fb13 | ||
|
|
e128be1387 | ||
|
|
e23cb8a303 | ||
|
|
ee515ce130 | ||
|
|
f3cee71ee5 | ||
|
|
d25f6fac98 | ||
|
|
dd7c36abb9 | ||
|
|
8f44fd4f8d | ||
|
|
09de14b4e6 | ||
|
|
fefbb64a75 | ||
|
|
772ef7e815 | ||
|
|
41e50ece38 | ||
|
|
4de7f30751 | ||
|
|
ba1549060f | ||
|
|
5d727330e4 | ||
|
|
111e3433d2 | ||
|
|
3acadb07f4 | ||
|
|
cf300e03de | ||
|
|
439a2f855b | ||
|
|
d906600f7d | ||
|
|
06ccdb9fe7 | ||
|
|
2995f8205e | ||
|
|
093823a75c | ||
|
|
bc53aacc6e | ||
|
|
b7415ddd79 | ||
|
|
5e8f2512a6 | ||
|
|
2e4bec457d | ||
|
|
fdba3257ce | ||
|
|
1f1d36a87b | ||
|
|
9ac8796f16 | ||
|
|
700847b76c | ||
|
|
d5cc778a3e | ||
|
|
f2c49862fb | ||
|
|
242bba8991 | ||
|
|
ce78304c4f | ||
|
|
b1e7bb6aef | ||
|
|
45fe575607 | ||
|
|
02bdc23f8e | ||
|
|
b90dc3fc6a | ||
|
|
6b53351ce2 | ||
|
|
54ef87c8c9 | ||
|
|
eba289dabe | ||
|
|
4463c6f19e | ||
|
|
f59d47928e | ||
|
|
ef29912666 | ||
|
|
0cfa2fb26d | ||
|
|
06a949d2ce | ||
|
|
db080b7310 | ||
|
|
9ecb35e7d4 | ||
|
|
6785447aaf | ||
|
|
bfbea562e6 | ||
|
|
af36ecc41a | ||
|
|
fa85eab969 | ||
|
|
3a8943b2d2 | ||
|
|
790f33c772 | ||
|
|
c9114f35c0 | ||
|
|
6c8ae8b9ef | ||
|
|
0b81e99ddf | ||
|
|
bbc985b36e | ||
|
|
9dfa8979a7 | ||
|
|
5c898d95dc | ||
|
|
d486854a4a | ||
|
|
cd801a4ed8 | ||
|
|
3638017bd3 | ||
|
|
c14c7e14cd | ||
|
|
ed37e8811a | ||
|
|
892476530f | ||
|
|
eacbf2cc01 | ||
|
|
6737b6ebf0 | ||
|
|
e8c4b14cde | ||
|
|
72ad976640 | ||
|
|
8bb79fc9b9 | ||
|
|
8771fbe4a2 | ||
|
|
b541c10d04 | ||
|
|
c01237c6bc | ||
|
|
c52806164c | ||
|
|
189dcca2c9 | ||
|
|
5d7c50da51 | ||
|
|
e15532f8c6 | ||
|
|
462b062d7f | ||
|
|
e181d9899b | ||
|
|
06a316a2fe | ||
|
|
559fe25977 | ||
|
|
60213f2815 | ||
|
|
6c8abf481d | ||
|
|
1e4bfff185 | ||
|
|
91cd0f93ad | ||
|
|
b414eb4312 | ||
|
|
db1bdb20a5 | ||
|
|
f1b6872550 | ||
|
|
0797eebc66 | ||
|
|
4d1d37a19d | ||
|
|
751af0ee2f | ||
|
|
6b31d9c568 | ||
|
|
d61bc8ca1c | ||
|
|
d5a0b9c15c | ||
|
|
8f4ecd4a9e | ||
|
|
ee80f45064 | ||
|
|
022dd8775a | ||
|
|
c2cee22ec1 | ||
|
|
7869e8ad05 | ||
|
|
d67b892041 | ||
|
|
acf6bcebf9 | ||
|
|
9a762177e6 | ||
|
|
402313b3db | ||
|
|
27f9274cb4 | ||
|
|
38ba66e41b | ||
|
|
fdf2eaf21b | ||
|
|
887c9d05c2 | ||
|
|
d9d6d2f77f | ||
|
|
9b2c0d2924 | ||
|
|
61cdf27dc2 | ||
|
|
eb2c518a38 | ||
|
|
d5f394f4c4 | ||
|
|
05903e6b3a | ||
|
|
622a594a7c | ||
|
|
3cac42f8db | ||
|
|
3c17c8b945 | ||
|
|
6bbb37a184 | ||
|
|
e4946c508e | ||
|
|
d2e371201c | ||
|
|
4f30395c97 | ||
|
|
e2fd9af691 | ||
|
|
6af3a0d53c | ||
|
|
81f6192a0c | ||
|
|
4072dfb9b8 | ||
|
|
945f7311ca | ||
|
|
17453368fa | ||
|
|
d8720af3a3 | ||
|
|
6cd7bd1fb5 | ||
|
|
459d31fa83 | ||
|
|
10640b2e3e | ||
|
|
b0a1fa9b20 | ||
|
|
e61793f086 | ||
|
|
707b733dc3 | ||
|
|
cff4f731e4 | ||
|
|
33b8775d3a | ||
|
|
0021672451 | ||
|
|
74dfe6155f | ||
|
|
cde2f4dabe | ||
|
|
8733f0d86c | ||
|
|
25fd0feeea | ||
|
|
04999a9c03 | ||
|
|
92094d44a2 | ||
|
|
1e1f1edb7d | ||
|
|
11fe3dcfe2 | ||
|
|
fefab489c7 | ||
|
|
d1abb8bb02 | ||
|
|
db0e722d83 | ||
|
|
09ce736e9a | ||
|
|
d972554740 | ||
|
|
b4aeceec73 | ||
|
|
db40c6bfdf | ||
|
|
a831ffc8fe | ||
|
|
f8aa552edb | ||
|
|
b8f2869bef | ||
|
|
307ba34fa0 | ||
|
|
d9af67ef70 | ||
|
|
36d8518388 | ||
|
|
913e3def6d | ||
|
|
5b477dd3b9 | ||
|
|
3179bab5b8 | ||
|
|
00c8cf21f0 | ||
|
|
309979a136 | ||
|
|
20c21edada | ||
|
|
cef23f1f01 | ||
|
|
06364bcf06 | ||
|
|
a79f12ba46 | ||
|
|
47b4920f08 | ||
|
|
78f0b08d54 | ||
|
|
fc67f3e0e3 | ||
|
|
420e5e1022 | ||
|
|
f547209bf6 | ||
|
|
452606f147 | ||
|
|
ca1ecf38c6 | ||
|
|
3f96cf3e4f | ||
|
|
b6b9d8b843 | ||
|
|
0f1938c982 | ||
|
|
ca50fa0230 | ||
|
|
08e4f1ac94 | ||
|
|
a873540eb6 | ||
|
|
b493dfe8bc | ||
|
|
cab27680d6 | ||
|
|
f109354dce | ||
|
|
31f6e44dca | ||
|
|
77e0ae46ee | ||
|
|
fbdbb3e8fa | ||
|
|
abbc8ed09b | ||
|
|
3c53361901 | ||
|
|
6d6529b5e5 | ||
|
|
0b07b9482c | ||
|
|
c0fe9b0d1b | ||
|
|
10a6442013 | ||
|
|
2869504d83 | ||
|
|
ce6caa0759 | ||
|
|
138cc7f283 | ||
|
|
2edb8bce12 | ||
|
|
0258aea36c | ||
|
|
2ce3018081 | ||
|
|
2053e8c26c | ||
|
|
b8b17a7732 | ||
|
|
ac81ee4d14 | ||
|
|
63d380e078 | ||
|
|
46879265d7 | ||
|
|
5c859d99f0 | ||
|
|
ae29b66fbf | ||
|
|
ac1a59e95c | ||
|
|
aa51fc8106 | ||
|
|
0316cd0c04 | ||
|
|
58930ca980 | ||
|
|
5c4e92b973 | ||
|
|
29d7ef1bca | ||
|
|
80c7cf7e5d | ||
|
|
2612cf1a5e | ||
|
|
be7d7a6638 | ||
|
|
d0b2beb93d | ||
|
|
f3ca27e9fe | ||
|
|
e3e94dd137 | ||
|
|
6358746e6f | ||
|
|
4a2df0557c | ||
|
|
014f9142bc | ||
|
|
c0bf2b179a | ||
|
|
9656a02498 | ||
|
|
d76ac5ddfd | ||
|
|
9fbcea8dba | ||
|
|
7c014c5bf4 | ||
|
|
b5c8773673 | ||
|
|
3e42bdfdc9 | ||
|
|
b20eef7ab0 | ||
|
|
a571ebca8b | ||
|
|
f498427f17 | ||
|
|
eb9945c49a | ||
|
|
727f5b8846 | ||
|
|
7ff4660fa4 | ||
|
|
0a792c72e6 | ||
|
|
bad3251d3f | ||
|
|
ea01b618d9 | ||
|
|
9eec883bf8 | ||
|
|
80dd46d7aa | ||
|
|
993572b249 | ||
|
|
afce5ee1c8 | ||
|
|
3700c88538 | ||
|
|
8b672d6342 | ||
|
|
868c254c18 | ||
|
|
f5385613e2 | ||
|
|
088eaf3878 | ||
|
|
46ba6046bc | ||
|
|
bcf53cf8d0 | ||
|
|
66923d616a | ||
|
|
1c398fd83c | ||
|
|
78bf1ca895 | ||
|
|
c9b0b5d9bf | ||
|
|
c29d36bdf7 | ||
|
|
15491d8b1f | ||
|
|
c529637d60 | ||
|
|
2ffd8b0788 | ||
|
|
b7554e2bc9 | ||
|
|
6b13908f70 | ||
|
|
afeabf9f70 | ||
|
|
3842a051ba | ||
|
|
a89d1aea0c | ||
|
|
773e64ec15 | ||
|
|
e209942448 | ||
|
|
be9932698b | ||
|
|
85477ac281 | ||
|
|
d35b058b31 | ||
|
|
51e66e5dee | ||
|
|
88d64279bb | ||
|
|
364da4eb0f | ||
|
|
f368466f81 | ||
|
|
26c8b645f8 | ||
|
|
8786484edf | ||
|
|
ba45e16a66 | ||
|
|
d8c1b06854 | ||
|
|
98c08f4dbe | ||
|
|
04f158ce9a | ||
|
|
1a1eba30c3 | ||
|
|
0e40083fdd | ||
|
|
d2a23df349 | ||
|
|
78baa4ccb8 | ||
|
|
fb17fdbd0e | ||
|
|
2f93757751 | ||
|
|
3bc4de1f1b | ||
|
|
62c1fe7b45 | ||
|
|
7b5bf4bea4 | ||
|
|
712bf9b0cc | ||
|
|
19c189b7a3 | ||
|
|
2cd386a02f | ||
|
|
d8389bdac5 | ||
|
|
abe885e016 | ||
|
|
d3d785705a | ||
|
|
ad923a3d6f | ||
|
|
035ef37ffa | ||
|
|
f38324fe6c | ||
|
|
67308c2197 | ||
|
|
93ca4b367d | ||
|
|
20d0c8c5bb | ||
|
|
06278dd28a | ||
|
|
bcf3845c01 | ||
|
|
52c5fd5684 | ||
|
|
a0e8772150 | ||
|
|
497514c667 | ||
|
|
ca08f931b9 | ||
|
|
569b52d136 | ||
|
|
e81b4c677b | ||
|
|
9476a30889 | ||
|
|
ff303bcf27 | ||
|
|
67145f44e5 | ||
|
|
7e2f4ceafa | ||
|
|
639fef047e | ||
|
|
ec5ff01338 | ||
|
|
72499be79f | ||
|
|
29406d7aa3 | ||
|
|
22dd55305b | ||
|
|
474acc7dd9 | ||
|
|
c5f432d9c2 | ||
|
|
0902c53969 | ||
|
|
8dda8ff186 | ||
|
|
c8d9ff1fe8 | ||
|
|
50c7ddaa5e | ||
|
|
adcfb59d04 | ||
|
|
7c6f960a20 | ||
|
|
75c43836c1 | ||
|
|
7752f1112e | ||
|
|
148fd45777 | ||
|
|
c7443ec439 | ||
|
|
2f65d19e93 | ||
|
|
6cb735c864 | ||
|
|
ad7a535899 | ||
|
|
84189fe5ad | ||
|
|
b15ba3f20d | ||
|
|
a3a89d7c36 | ||
|
|
6c87ddb75d | ||
|
|
aa224791dd | ||
|
|
73865279b1 | ||
|
|
cad0e68589 | ||
|
|
93c498f0c6 | ||
|
|
e5cba9f559 | ||
|
|
513fe0ca30 | ||
|
|
a7757e30aa | ||
|
|
4e99bcb060 | ||
|
|
90c5477ca1 | ||
|
|
540f27d8bc | ||
|
|
552a117791 | ||
|
|
4e07f65d62 | ||
|
|
c78ef9f491 | ||
|
|
785d1541b6 | ||
|
|
63bdedb251 | ||
|
|
2f330bed30 | ||
|
|
8342523519 | ||
|
|
9f6c66e1b3 | ||
|
|
50d93bb5f8 | ||
|
|
64e9b7eafb | ||
|
|
9d34aaa2bd | ||
|
|
f3e4c3d6c5 | ||
|
|
6fb633bc3f | ||
|
|
ca033e166c | ||
|
|
ca6cee1837 | ||
|
|
c82af3a7f1 | ||
|
|
e82a62f172 | ||
|
|
f9321a16fb | ||
|
|
c8bedec446 | ||
|
|
7a104af70f | ||
|
|
923de3bb9c | ||
|
|
2359261a25 | ||
|
|
769cd7d5dd | ||
|
|
6bad645917 | ||
|
|
11931cc68d | ||
|
|
d91d025def | ||
|
|
985b4f1c86 | ||
|
|
1d556695ef | ||
|
|
e9ca87459a | ||
|
|
4b711da3c2 | ||
|
|
ca690f9802 | ||
|
|
137a1f98e3 | ||
|
|
e301648774 | ||
|
|
1260bf0573 | ||
|
|
bdbaee5cfc | ||
|
|
43c69727ea | ||
|
|
589dce8281 | ||
|
|
5f4804c7e4 | ||
|
|
5cd7e9d4db | ||
|
|
1418d7292d | ||
|
|
cc8e8b59d6 | ||
|
|
3b0c7a322a | ||
|
|
65775fe205 | ||
|
|
30e3e23338 | ||
|
|
8ced0871d2 | ||
|
|
6032e43f38 | ||
|
|
17b687ef36 | ||
|
|
cd60cef97d | ||
|
|
219a694aca | ||
|
|
3c76e82a76 | ||
|
|
998358fa90 | ||
|
|
bc508906db | ||
|
|
6a1e7c8565 | ||
|
|
5e8d4ff0bf | ||
|
|
e169fd331c | ||
|
|
58fbc62a4a | ||
|
|
fde3820de9 | ||
|
|
f33fe250cf | ||
|
|
a504607ef1 | ||
|
|
e8108e60c9 | ||
|
|
479c6fc458 | ||
|
|
8cb2bd68c9 | ||
|
|
b352902413 | ||
|
|
7736b3327e | ||
|
|
a680e06bac | ||
|
|
72e8c079c4 | ||
|
|
74ceb7b203 | ||
|
|
7923de0ddd | ||
|
|
d3f58baf38 | ||
|
|
6b07de6abf | ||
|
|
f2b515e117 | ||
|
|
9615df2e83 | ||
|
|
4785e8e98a | ||
|
|
5fc04b8135 | ||
|
|
c8ab83c08e | ||
|
|
469a5f80ae | ||
|
|
7e7bede4bd | ||
|
|
339335189b | ||
|
|
4e57d3ff7d | ||
|
|
06289aeea8 | ||
|
|
66bea4d912 | ||
|
|
6a4c22bc4d | ||
|
|
081cff0c33 | ||
|
|
2562a84dc5 | ||
|
|
ee3085e9e2 | ||
|
|
d352f188cb | ||
|
|
3d38596530 | ||
|
|
449733f214 | ||
|
|
75063dd6d2 | ||
|
|
c6eac4f169 | ||
|
|
a7cb695600 | ||
|
|
5b4f07a4f3 | ||
|
|
b19619260f | ||
|
|
897f762e3c | ||
|
|
1a32d316dd | ||
|
|
7f800a6b10 | ||
|
|
94f960b541 | ||
|
|
381f821556 | ||
|
|
5d4bffa427 | ||
|
|
f0a464d58a | ||
|
|
3a0f5543c9 | ||
|
|
1ae369c9d2 | ||
|
|
8153dde6c8 | ||
|
|
3476dfe9d7 | ||
|
|
ce3c351d81 | ||
|
|
fa52840ac8 | ||
|
|
e7468041e7 | ||
|
|
b9043a19e2 | ||
|
|
ae0cb2960d | ||
|
|
85939fa773 | ||
|
|
5a78ccdf1f | ||
|
|
b13fa0acde | ||
|
|
2a590fe988 | ||
|
|
fd837244be | ||
|
|
5dcfb7ce2e | ||
|
|
9bbc786bf0 | ||
|
|
c4157085cd | ||
|
|
d904d3c59a | ||
|
|
40a31ba506 | ||
|
|
8bdf7f2972 | ||
|
|
1500a4fe5d | ||
|
|
a9bc22bf37 | ||
|
|
3931325c6d | ||
|
|
7209c50da4 | ||
|
|
d1029cbcf0 | ||
|
|
f04c15adc7 | ||
|
|
0ae6a5f852 | ||
|
|
53c07ca216 | ||
|
|
1255d388f0 | ||
|
|
c615c2ddce | ||
|
|
8a02be5fc2 | ||
|
|
31d3464c0c | ||
|
|
2f6d1483f6 | ||
|
|
ea7b38cd1e | ||
|
|
31e12a627d | ||
|
|
e94a2fdd30 | ||
|
|
32d248107a | ||
|
|
3b19037ccd | ||
|
|
97bb372529 | ||
|
|
e94a3385d6 | ||
|
|
b8685833f1 | ||
|
|
0e27dac042 | ||
|
|
059a29a179 | ||
|
|
2ef5add037 | ||
|
|
bada421314 | ||
|
|
eb7f938194 | ||
|
|
c65bd9be83 | ||
|
|
dfafc36515 | ||
|
|
05a1fd6093 | ||
|
|
4574714ad4 | ||
|
|
8d8c145175 | ||
|
|
07eaf0b8d0 | ||
|
|
cf70df7d0e | ||
|
|
9234d92d4e | ||
|
|
86a292d459 | ||
|
|
937ccb270e | ||
|
|
7d5b9de6c7 | ||
|
|
f6132a5038 | ||
|
|
7a89c23c2d | ||
|
|
5a23b8523d | ||
|
|
0cf9ce19cc | ||
|
|
6ca3f52bee | ||
|
|
42f61e5c46 | ||
|
|
2ba574f329 | ||
|
|
dcfc52bbba | ||
|
|
4c706de3c7 | ||
|
|
3c3fe07225 | ||
|
|
248732d66f | ||
|
|
31f15d225d | ||
|
|
8d2b885018 | ||
|
|
c535e67633 | ||
|
|
05cd9da1d8 | ||
|
|
64ea5fd972 | ||
|
|
35ef866dcc | ||
|
|
ec95dac291 | ||
|
|
05a4a299b5 | ||
|
|
c8b58baa78 | ||
|
|
3b3d01b318 | ||
|
|
0e71bf20df | ||
|
|
106423c056 | ||
|
|
d510e8695e | ||
|
|
c33679b400 | ||
|
|
3ad07fa335 | ||
|
|
6812f56fa2 | ||
|
|
0ebade1fcd | ||
|
|
f3c187e0c7 | ||
|
|
559eecb115 | ||
|
|
fe6a60a7c3 | ||
|
|
5419c0c2d0 | ||
|
|
a1a06d7854 | ||
|
|
1094dec52a | ||
|
|
392b3526d8 | ||
|
|
7ce9f2dbe8 | ||
|
|
267d8eb613 | ||
|
|
b38ab99bdc | ||
|
|
6e93e6ea45 | ||
|
|
01818a424a | ||
|
|
79432444e8 | ||
|
|
0bd2ea544e | ||
|
|
afe5729a33 | ||
|
|
2975d0f819 | ||
|
|
a7e1dcd84a | ||
|
|
fc9acafe15 | ||
|
|
e31320a1d0 | ||
|
|
fa2fb620c7 | ||
|
|
62a3dbe63e | ||
|
|
5cb1e19b03 | ||
|
|
23b81eeddd | ||
|
|
31da643c6a | ||
|
|
3c17010ba5 | ||
|
|
dd0319d149 | ||
|
|
315eafec07 | ||
|
|
cf638fc378 | ||
|
|
9df7cf8ea3 | ||
|
|
9bdb01e6c3 | ||
|
|
ff52c72095 | ||
|
|
417872b98a | ||
|
|
a4fbe403e4 | ||
|
|
a3ed377607 | ||
|
|
e69b9ffb0f | ||
|
|
29ca9003a5 | ||
|
|
d25365515e | ||
|
|
a77ad145d0 | ||
|
|
ce1d4c7aeb | ||
|
|
85532057dc | ||
|
|
86457878fd | ||
|
|
8ba4e82f53 | ||
|
|
7779b6cbf6 | ||
|
|
ac5c31df78 | ||
|
|
e370391b5e | ||
|
|
3c9b2e6250 | ||
|
|
8b57e8fcf6 | ||
|
|
61d5bfc06b | ||
|
|
ada9b8ab20 | ||
|
|
e17f6f7ab6 | ||
|
|
3a92768cad | ||
|
|
329fd2fe75 | ||
|
|
8002894e6e | ||
|
|
bb60abb445 | ||
|
|
890db7ab7d | ||
|
|
9e3fe84689 | ||
|
|
024face21c | ||
|
|
78d811f8fb | ||
|
|
1beaa9e457 | ||
|
|
f953788d75 | ||
|
|
f6bcdffe6d | ||
|
|
e3af4e83dd | ||
|
|
247b6de61b | ||
|
|
13f2c161db | ||
|
|
55ab8cebff | ||
|
|
4fa5d53e75 | ||
|
|
ae62248c8a | ||
|
|
fbdde79262 | ||
|
|
1c31f17f89 | ||
|
|
06365907a0 | ||
|
|
094d1d9a27 | ||
|
|
173a45b43c | ||
|
|
3fc4c1434d | ||
|
|
0aba41458d | ||
|
|
5f7516bee5 | ||
|
|
2e24e82fc3 | ||
|
|
d5169236b7 | ||
|
|
96bc10707a | ||
|
|
6c6ceac1bc | ||
|
|
c7302ffd98 | ||
|
|
df7596a03e | ||
|
|
f3fcde886c | ||
|
|
f08782f092 | ||
|
|
4186249fea | ||
|
|
1d19dc5411 | ||
|
|
5ea492b94d | ||
|
|
8db00cd940 | ||
|
|
fdef562ba7 | ||
|
|
4cef36044c | ||
|
|
49d23a92a9 | ||
|
|
290e1b94e4 | ||
|
|
818d9fec02 | ||
|
|
41ea62ace5 | ||
|
|
94ce9c52fb | ||
|
|
ed2cefaf0e | ||
|
|
a325a8cbed | ||
|
|
e17d517a93 | ||
|
|
edf97be2b5 | ||
|
|
f5b3693207 | ||
|
|
b923e27853 | ||
|
|
2616068121 | ||
|
|
4e9291c48b | ||
|
|
61e30d3194 | ||
|
|
678be98a63 | ||
|
|
f216f79834 | ||
|
|
1e219db778 | ||
|
|
840c7a02b3 | ||
|
|
cddaf5def3 | ||
|
|
07aa5a2c61 | ||
|
|
1550dcfff2 | ||
|
|
b8e65dbc1e | ||
|
|
9e46f410e7 | ||
|
|
c6e0cb8fa6 | ||
|
|
769ef0b7bd | ||
|
|
a1d2958b24 | ||
|
|
3dff229f5d | ||
|
|
3d34454472 | ||
|
|
de32eba8a8 | ||
|
|
dd95699054 | ||
|
|
b09f4e054c | ||
|
|
2ee55879d1 | ||
|
|
66065f71b3 | ||
|
|
40dd9cb8cc | ||
|
|
8f534756ca | ||
|
|
2d4f039432 | ||
|
|
6bebabb376 | ||
|
|
de5247ae16 | ||
|
|
b1dfd324cf | ||
|
|
ff9cad0802 | ||
|
|
6a252184e2 | ||
|
|
5ab25a0ab8 | ||
|
|
dece3a1f7c | ||
|
|
9c9cf3a8d0 | ||
|
|
08bed4d70a | ||
|
|
c54091c8ed | ||
|
|
e1fdebdcc8 | ||
|
|
23438327a1 | ||
|
|
8682b8f7f7 | ||
|
|
064fadaa40 | ||
|
|
a255936e1e | ||
|
|
1b8eaf4143 | ||
|
|
24dd4582a2 | ||
|
|
d9edf3ad42 | ||
|
|
9066d09c3e | ||
|
|
1ebadd777b | ||
|
|
792de65053 | ||
|
|
96ea98af24 | ||
|
|
54c4aa0f62 | ||
|
|
1df69830bd | ||
|
|
37f08fab28 | ||
|
|
3e1f3de348 | ||
|
|
6d7c0fd73b | ||
|
|
27ef660057 | ||
|
|
e83e8e7734 | ||
|
|
febc2e8db5 | ||
|
|
93b9133cfa | ||
|
|
90787e192c | ||
|
|
3e93426766 | ||
|
|
0f66180e24 | ||
|
|
4f3d12c632 | ||
|
|
ea34bcc637 | ||
|
|
09e103cd36 | ||
|
|
4748473739 | ||
|
|
a5aca6df16 | ||
|
|
84b0ad0959 | ||
|
|
513dd4a616 | ||
|
|
d65168b7a7 | ||
|
|
7c91a38c54 | ||
|
|
4b09cca4b9 | ||
|
|
e5100b1367 | ||
|
|
a4e8b19b83 | ||
|
|
846474d5a6 | ||
|
|
041153229d | ||
|
|
c3312fd9d0 | ||
|
|
edaf5b86ce | ||
|
|
7655e78c36 | ||
|
|
6859033d42 | ||
|
|
f558da602e | ||
|
|
ff7b9eede9 | ||
|
|
538bbefb23 | ||
|
|
82c168127c | ||
|
|
3f4c95eb98 | ||
|
|
29c9e88c6c | ||
|
|
dfcd28cce9 | ||
|
|
8bd6c39d5e | ||
|
|
99f08fc172 | ||
|
|
a6def371e4 | ||
|
|
089ad40b1f | ||
|
|
83515c3462 | ||
|
|
f642eb7b9f | ||
|
|
1123872a47 | ||
|
|
d30fcb907b | ||
|
|
d924384f72 | ||
|
|
7e22eec300 | ||
|
|
a4701d3b7e | ||
|
|
0d1a72385e | ||
|
|
ff4322d44f | ||
|
|
f2d88ed98c | ||
|
|
c9b3f64262 | ||
|
|
cf38d58b79 | ||
|
|
5044d03efa | ||
|
|
ecd67d8109 | ||
|
|
53b7400731 | ||
|
|
1ebeb6bbf3 | ||
|
|
7e351cd18f | ||
|
|
ecde762a60 | ||
|
|
8d146b6e11 | ||
|
|
f8d86ef2f6 | ||
|
|
589a8a85b3 | ||
|
|
4632c084a6 | ||
|
|
43022c8c8f | ||
|
|
1d89523b69 | ||
|
|
4fdcaf0cc7 | ||
|
|
7e470ba93b | ||
|
|
a9617effd0 | ||
|
|
1716d085b1 | ||
|
|
18914183d9 | ||
|
|
ce55c7fc7d | ||
|
|
808b909f27 | ||
|
|
f0f9aa979b | ||
|
|
0617eaff38 | ||
|
|
a3ec9e6c3b | ||
|
|
bd08442637 | ||
|
|
47871e33fb | ||
|
|
9b4df1505e | ||
|
|
126095a3e6 | ||
|
|
8296690f17 | ||
|
|
595a14576e | ||
|
|
fe57fad800 | ||
|
|
9cdfffc7ce | ||
|
|
9cc98b104e | ||
|
|
b73cc0ff07 | ||
|
|
b21236d838 | ||
|
|
7a74126eb8 | ||
|
|
39504d4517 | ||
|
|
8f674b13e8 | ||
|
|
87647e12e9 | ||
|
|
9f89b34f4d | ||
|
|
d9e690eb71 | ||
|
|
3bf31a5161 | ||
|
|
1299e93989 | ||
|
|
f1491358ff | ||
|
|
bf097e2a31 | ||
|
|
b32e75f3e1 | ||
|
|
640923da58 | ||
|
|
2e189b0677 | ||
|
|
53fea9cd68 | ||
|
|
3fafd7c0c4 | ||
|
|
858cbfa961 | ||
|
|
4b611cca1d | ||
|
|
897adbe920 | ||
|
|
d6baaf3649 | ||
|
|
c10a62a070 | ||
|
|
c2bc56dc65 | ||
|
|
ae5df22719 | ||
|
|
ad8e6236a4 | ||
|
|
e19a1c3cd9 | ||
|
|
aa30ee42c4 | ||
|
|
0bd1b2fbfe | ||
|
|
822cd79080 | ||
|
|
2f734e0a7e | ||
|
|
66ed65d1b7 | ||
|
|
33a1b09738 | ||
|
|
dea6647faa | ||
|
|
0bb3203216 | ||
|
|
a25169ea43 | ||
|
|
01446841be | ||
|
|
b4c38fdd69 | ||
|
|
e4b5f088ca | ||
|
|
97f4d2e8f4 | ||
|
|
1301637cc5 | ||
|
|
19d684e84f | ||
|
|
f8dd2aeebd | ||
|
|
99a0822e3c | ||
|
|
5e8c385e64 | ||
|
|
2dee13b8b8 | ||
|
|
21825a8d00 | ||
|
|
b7b9b499f4 | ||
|
|
28cf7340b9 | ||
|
|
1de63e34f1 | ||
|
|
56ae0ccb87 | ||
|
|
d11cc41b2b | ||
|
|
9b009c9f5a | ||
|
|
feb1f6a4ac | ||
|
|
bbece796a9 | ||
|
|
2bb3d8bdfe | ||
|
|
0375d5da0c | ||
|
|
6e1b2ebcd6 | ||
|
|
94c8b1aa0f | ||
|
|
06f12c290c | ||
|
|
2fddd0b746 | ||
|
|
e1e635578d | ||
|
|
66870de523 | ||
|
|
b40cb80704 | ||
|
|
0b3abc3faf | ||
|
|
62f58f434c | ||
|
|
f6cbc666f5 | ||
|
|
f4f9761c84 | ||
|
|
67298a4b2f | ||
|
|
81b172466c | ||
|
|
206bced36f | ||
|
|
36a91ab163 | ||
|
|
8138bb315d | ||
|
|
9054558fbd | ||
|
|
f0261e88a8 | ||
|
|
7931a483d7 | ||
|
|
d1a6976967 | ||
|
|
fc14ca7a8f | ||
|
|
5e4c83cfec | ||
|
|
8423b244ec | ||
|
|
e6f17474cb | ||
|
|
5fe21da364 | ||
|
|
5fe1a246cf | ||
|
|
43efd9fa56 | ||
|
|
b2eeaf6500 | ||
|
|
4fb42a8382 | ||
|
|
5c831a1a1b | ||
|
|
36e37042c6 | ||
|
|
8be3f42f6b | ||
|
|
967ecc6264 | ||
|
|
4a20a92f4f | ||
|
|
34aa790937 | ||
|
|
63fe5ccb87 | ||
|
|
be2d2c1599 | ||
|
|
9e3c3e4139 | ||
|
|
1b1f63339c | ||
|
|
d4678a75ed | ||
|
|
98e231525f | ||
|
|
da5795a32a | ||
|
|
d4196128b3 | ||
|
|
e49238474c | ||
|
|
56d69016f4 | ||
|
|
48cddfee7c | ||
|
|
41a0c85888 | ||
|
|
4c30c4d572 | ||
|
|
e60b3717f0 | ||
|
|
0262406cea | ||
|
|
72baa6528d | ||
|
|
3d8ab44d14 | ||
|
|
f8baa72034 | ||
|
|
5de2109e1c | ||
|
|
ee3555e8c0 | ||
|
|
db3822841c | ||
|
|
115019ee2c | ||
|
|
da4535c4b4 | ||
|
|
7bfb0145d6 | ||
|
|
67adc92106 | ||
|
|
625aae0fba | ||
|
|
db235e6588 | ||
|
|
1015c4cdea | ||
|
|
3426f7118c | ||
|
|
6eeefeb3eb | ||
|
|
36c1674e0a | ||
|
|
588372b853 | ||
|
|
9de04a5713 | ||
|
|
1592bf7349 | ||
|
|
c54833a8e9 | ||
|
|
64a5004a66 | ||
|
|
1e9efeeb22 | ||
|
|
976dd45973 | ||
|
|
b1ae7a591a | ||
|
|
f3352b9bec | ||
|
|
cab0ee644d | ||
|
|
783cf0d73d | ||
|
|
7780a3e5a4 | ||
|
|
928d42e559 | ||
|
|
deb2c2ffab | ||
|
|
699a26726c | ||
|
|
4c692849bc | ||
|
|
7f9bc71eca | ||
|
|
7fca810d87 | ||
|
|
470208d879 | ||
|
|
2341995e2d | ||
|
|
6dbc6fae49 | ||
|
|
99f467f016 | ||
|
|
8cccaeaee1 | ||
|
|
8c4b35bbd5 | ||
|
|
260696e5e3 | ||
|
|
f3bbe7772f | ||
|
|
0363b921c9 | ||
|
|
a91e1db13e | ||
|
|
4b8b883127 | ||
|
|
e0806ab5ed | ||
|
|
d794aac9ca | ||
|
|
7aac53eb69 | ||
|
|
fe6b7ccc8d | ||
|
|
f56cdc894f | ||
|
|
11a4398874 | ||
|
|
b39ad8a69b | ||
|
|
ae35d154ce | ||
|
|
50a8312c9f | ||
|
|
f8dbd659d0 | ||
|
|
6d858e75d4 | ||
|
|
fe5146716e | ||
|
|
18159f6f60 | ||
|
|
d5dbfd6f17 | ||
|
|
ad8c0c65aa | ||
|
|
42b48b7156 | ||
|
|
c9c55707eb | ||
|
|
201c75e55a | ||
|
|
d472e353c8 | ||
|
|
a24d253a3f | ||
|
|
eb70ba210b | ||
|
|
2958e100b5 | ||
|
|
aa6e560fbd | ||
|
|
3f538ef15c | ||
|
|
3f543c371f | ||
|
|
847169dab2 | ||
|
|
ed29aefe31 | ||
|
|
68b62e1c45 | ||
|
|
aba9f3dd7e | ||
|
|
f58f6043ce | ||
|
|
f17bffa68d | ||
|
|
b1436346a0 | ||
|
|
26f327f1f5 | ||
|
|
ff6e834f7d | ||
|
|
fdd3a3e7fa | ||
|
|
33f87146a8 | ||
|
|
e282509475 | ||
|
|
e6e233e73f | ||
|
|
ec495a6ade | ||
|
|
ed03e26c44 | ||
|
|
7f006841fc | ||
|
|
1d32e01f17 | ||
|
|
e78a28ffb5 | ||
|
|
fdacf913e1 | ||
|
|
539cad8f49 | ||
|
|
d73ed70241 | ||
|
|
aa8953a586 | ||
|
|
caaa091d76 | ||
|
|
f5c726cbef | ||
|
|
181232550d | ||
|
|
b7d04c63c0 | ||
|
|
7ee450d5f6 | ||
|
|
641e33bdd4 | ||
|
|
faedfb6dce | ||
|
|
89227c76be | ||
|
|
f6fc4b1391 | ||
|
|
44caf20759 | ||
|
|
e5094285ce | ||
|
|
15fd491c85 | ||
|
|
f1eda76d36 | ||
|
|
76d9120dd6 | ||
|
|
2c141ce0fb | ||
|
|
c6b5faa001 | ||
|
|
9aba20edee | ||
|
|
e8d86192fc | ||
|
|
aa7638fce5 | ||
|
|
6f2e507e7e | ||
|
|
7c7b389ae0 | ||
|
|
dcc35bf6a4 | ||
|
|
606e919ae3 | ||
|
|
34b1adb9b3 | ||
|
|
bae5d9fcb4 | ||
|
|
92551304a9 | ||
|
|
a8842a35df | ||
|
|
a9c2c07c96 | ||
|
|
5af0708e7f | ||
|
|
102e532c65 | ||
|
|
a22a4084dd | ||
|
|
ad82fd0a25 | ||
|
|
530ee49d07 | ||
|
|
98a5dc52bf | ||
|
|
687b7ef998 | ||
|
|
847ed3fccf | ||
|
|
0c5233171f | ||
|
|
cb8fd52bbe | ||
|
|
c5b14e2676 | ||
|
|
2f2b076705 | ||
|
|
355cc22e32 | ||
|
|
43f117d5f0 | ||
|
|
b3034d815c | ||
|
|
bdec94477c | ||
|
|
528baec07b | ||
|
|
ff8cd3afa7 | ||
|
|
6184f9fc1e | ||
|
|
c8563aaf86 | ||
|
|
0674850fcb | ||
|
|
130904d648 | ||
|
|
9113f8b75c | ||
|
|
4b87939256 | ||
|
|
6db92bd107 | ||
|
|
ac9d955cdd | ||
|
|
cfa3ab7f89 | ||
|
|
54706e9e57 | ||
|
|
7edac4480f | ||
|
|
452b30ddb3 | ||
|
|
39125379e5 | ||
|
|
faa96aba6d | ||
|
|
c2df80e759 | ||
|
|
6aa1a89bf1 | ||
|
|
31d635e582 | ||
|
|
9ec3c7b42d | ||
|
|
6668eca26b | ||
|
|
06a960c681 | ||
|
|
1eaad22e11 | ||
|
|
90989375ca | ||
|
|
bd3091eb7d | ||
|
|
cc0a5f7142 | ||
|
|
fa59c08f71 | ||
|
|
2c64908ae0 | ||
|
|
53e3724e23 | ||
|
|
0914e94965 | ||
|
|
59251c9e9c | ||
|
|
91579a2424 | ||
|
|
2c839b25ad | ||
|
|
02da396800 | ||
|
|
c654449ccf | ||
|
|
b602bf9e8b | ||
|
|
e2a35f7524 | ||
|
|
91be5c8cce | ||
|
|
8068ceb2a9 | ||
|
|
9cb39bbe40 | ||
|
|
2c2b29b6ff | ||
|
|
cad3210bb9 | ||
|
|
f462b9aed2 | ||
|
|
5f5b407b19 | ||
|
|
7231717254 | ||
|
|
afeded2289 | ||
|
|
06b47b13db | ||
|
|
9559bf89b1 | ||
|
|
b885fd1d53 | ||
|
|
688023c91e | ||
|
|
71bfe170e1 | ||
|
|
a0766ff416 | ||
|
|
d41977127f | ||
|
|
259b1b8c03 | ||
|
|
28fc90e6c8 | ||
|
|
31f4d4ac63 | ||
|
|
aec9f4d072 | ||
|
|
9c067741f1 | ||
|
|
187bf10eb5 | ||
|
|
fba21fcab9 | ||
|
|
b495fd2992 | ||
|
|
aa9a67adeb | ||
|
|
c7eb99970e | ||
|
|
135c1c53b8 | ||
|
|
89555ff443 | ||
|
|
440906ce59 | ||
|
|
73ac1894ea | ||
|
|
718b57f849 | ||
|
|
bc3143cc86 | ||
|
|
919caa020b | ||
|
|
ea72586fc5 | ||
|
|
49fa7b3b6e | ||
|
|
bd1db480f3 | ||
|
|
d20b7d6bea | ||
|
|
7d1501a44f | ||
|
|
eaf7c63f0d | ||
|
|
330b421487 | ||
|
|
9b30c8e8f0 | ||
|
|
e22dca2a9a | ||
|
|
d7728fcf85 | ||
|
|
2c0b26955e | ||
|
|
a32e981584 | ||
|
|
2449f41e75 | ||
|
|
874d2a5138 | ||
|
|
6f7660093e | ||
|
|
63742a7fbf | ||
|
|
8f3dd8f8e7 | ||
|
|
180936722e | ||
|
|
1fdbadc594 | ||
|
|
c132e9113c | ||
|
|
a1898260ad | ||
|
|
bcd097060d | ||
|
|
8ff4edd14e | ||
|
|
40aa8b407a | ||
|
|
305b0eda33 | ||
|
|
7bda91f314 | ||
|
|
b9eaebe882 | ||
|
|
f504adce37 | ||
|
|
a28db387fc | ||
|
|
2861ab6188 | ||
|
|
0122a1f716 | ||
|
|
8e6813696a | ||
|
|
51ac5c28de | ||
|
|
58c48b3b48 | ||
|
|
155552f1be | ||
|
|
d16b4e8ba8 | ||
|
|
976e43c3ef | ||
|
|
b4636f4587 | ||
|
|
e076d0c88b | ||
|
|
33682c92e9 | ||
|
|
f4909f01a7 | ||
|
|
f30cab801a | ||
|
|
b1600c0b02 | ||
|
|
c0b6c1a5ab | ||
|
|
c961e08413 | ||
|
|
a158d032df | ||
|
|
76c8294c81 | ||
|
|
b21320abb5 | ||
|
|
5439bb1725 | ||
|
|
569caae79d | ||
|
|
1c9afb96b5 | ||
|
|
73a9f8ec94 | ||
|
|
eae21e533a | ||
|
|
de9833be77 | ||
|
|
6a05eadab2 | ||
|
|
0a77211c80 | ||
|
|
b199e25ab7 | ||
|
|
4e400cb7a2 | ||
|
|
e5656b4aeb | ||
|
|
66352c0a05 | ||
|
|
3571e1bda4 | ||
|
|
ec5a06ccf7 | ||
|
|
ac3c4e9981 | ||
|
|
a769eca4e3 | ||
|
|
907ec2c618 | ||
|
|
8173a963d2 | ||
|
|
276a77c22a | ||
|
|
d8ec3078d4 | ||
|
|
ee8a5c01e2 | ||
|
|
9bac746a3c | ||
|
|
4c69379d79 | ||
|
|
66ff5b7d78 | ||
|
|
b769845105 | ||
|
|
7dacac1909 | ||
|
|
0094faa6e0 | ||
|
|
644772cf06 | ||
|
|
dfe3edd7cd | ||
|
|
89209405b7 | ||
|
|
b4b47bf187 | ||
|
|
f5862b6f22 | ||
|
|
1bcdcce64b | ||
|
|
3dfc806ddf | ||
|
|
f8c304e5a5 | ||
|
|
337a8fe16a | ||
|
|
7dac8d231c | ||
|
|
f4effb700a | ||
|
|
326bcfa0e2 | ||
|
|
faf2b80fe3 | ||
|
|
5c213fcd1d | ||
|
|
a59a1d313a | ||
|
|
288d7b9c55 | ||
|
|
0d1316c563 | ||
|
|
c87248869d | ||
|
|
2627aca3bb | ||
|
|
0a53284205 | ||
|
|
9d1b0204c6 | ||
|
|
58b137edfd | ||
|
|
e0315f2160 | ||
|
|
23a020bc13 | ||
|
|
44c141f947 | ||
|
|
a6a23642ea | ||
|
|
ab54086529 | ||
|
|
b76883e1cc | ||
|
|
43e2ec89d8 | ||
|
|
7250c1a261 | ||
|
|
4d77dbcfa0 | ||
|
|
9f5a862a90 | ||
|
|
42300f375f | ||
|
|
e1a153c3f0 | ||
|
|
ab3eaa20e9 | ||
|
|
4e6b8a18ff | ||
|
|
91216cff91 | ||
|
|
4e71e9b6c8 | ||
|
|
50851586b6 | ||
|
|
9261ca5fc8 | ||
|
|
ff5760e233 | ||
|
|
cca68b1ff6 | ||
|
|
5f25ebaaa0 | ||
|
|
c38b92000c | ||
|
|
ecc38edf79 | ||
|
|
9729bb1e46 | ||
|
|
3a6dab5906 | ||
|
|
b59115de5f | ||
|
|
238e6556ea | ||
|
|
7c09f7ba44 | ||
|
|
adee3a73e6 | ||
|
|
00086b09fe | ||
|
|
3d388146c6 | ||
|
|
a0d965e7b1 | ||
|
|
3806886c28 | ||
|
|
d0de20156a | ||
|
|
57bccaacd0 | ||
|
|
321fd0ceb4 | ||
|
|
1d78c8d7cd | ||
|
|
8cf1357c5a | ||
|
|
a492e2366b | ||
|
|
637b4b4392 | ||
|
|
0e0e575ec1 | ||
|
|
f3f143f249 | ||
|
|
46e349e515 | ||
|
|
f9521c63ea | ||
|
|
924b2e8230 | ||
|
|
0ce385e126 | ||
|
|
0794ffffee | ||
|
|
075a7534a8 | ||
|
|
61e561c2ca | ||
|
|
1f43af072f | ||
|
|
ed1f8b162a | ||
|
|
66a38d1693 | ||
|
|
a246e32f29 | ||
|
|
6bc58751c6 | ||
|
|
e1ad5fdd33 | ||
|
|
6087f3bfc8 | ||
|
|
a781910430 | ||
|
|
90e289c59f | ||
|
|
113b83a9e2 | ||
|
|
db8c4a3519 | ||
|
|
22f0b13f28 | ||
|
|
657a6a6f3c | ||
|
|
455ab32690 | ||
|
|
26a5f97dd8 | ||
|
|
ee3ab6063d | ||
|
|
e5b18854e3 | ||
|
|
929b55a64d | ||
|
|
38f0e0520c | ||
|
|
05de675386 | ||
|
|
1ecd9d30a0 | ||
|
|
5da31b1ebe | ||
|
|
dcfaeabc63 | ||
|
|
922a15c7c0 | ||
|
|
64dab5aca2 | ||
|
|
7b1ad32ff2 | ||
|
|
d81622b537 | ||
|
|
b61c97cebd | ||
|
|
accf0d5f29 | ||
|
|
831bbce008 | ||
|
|
6fa7a247a1 | ||
|
|
4eb5d27bae | ||
|
|
2fa436a15c | ||
|
|
b0232b4bbe | ||
|
|
90228beed3 | ||
|
|
af898946e4 | ||
|
|
3ef9b0c10f | ||
|
|
a1a421899e | ||
|
|
dfca19a1aa | ||
|
|
1bf250400e | ||
|
|
2b9debd520 | ||
|
|
10266aa76f | ||
|
|
80b67b3a4f | ||
|
|
18829cc203 | ||
|
|
a5b9c2b208 | ||
|
|
06596f0ec7 | ||
|
|
33654a83db | ||
|
|
75b3a86c57 | ||
|
|
ab35bf14bd | ||
|
|
70d1a774f4 | ||
|
|
f1ef2614aa | ||
|
|
a81f09d395 | ||
|
|
cfbf09786e | ||
|
|
72dc0b0824 | ||
|
|
1186577d90 | ||
|
|
e056d87076 | ||
|
|
138fc7eeba | ||
|
|
22a0a2c432 | ||
|
|
71542eaf04 | ||
|
|
0b98125d1e | ||
|
|
396ed5ef23 | ||
|
|
1c810e5739 | ||
|
|
45847c3039 | ||
|
|
63169f237f | ||
|
|
a9c57ae221 | ||
|
|
70f500794d | ||
|
|
78346b6670 | ||
|
|
7d4e4d4984 | ||
|
|
1fac3f0e70 | ||
|
|
caae0e0b44 | ||
|
|
6ceca14e5e | ||
|
|
3a7d69494d | ||
|
|
f92422fcc5 | ||
|
|
4bec81d388 | ||
|
|
2da0b7dfbd | ||
|
|
d3243476c2 | ||
|
|
aeb08e7086 | ||
|
|
21e0def4b2 | ||
|
|
3cb3f6867c | ||
|
|
7faa8f35e5 | ||
|
|
001d1ceec6 | ||
|
|
1cb6e8cbe4 | ||
|
|
4645932212 | ||
|
|
7a665402a5 | ||
|
|
9dec38d1ee | ||
|
|
3316814025 | ||
|
|
2033e30585 | ||
|
|
3489d64bde | ||
|
|
7181165333 | ||
|
|
68a8db1efb | ||
|
|
9ae5c33fe4 | ||
|
|
3dba71207f | ||
|
|
7ecaf69507 | ||
|
|
9bf5a10fbd | ||
|
|
9fe9eb9ee5 | ||
|
|
3abbed44db | ||
|
|
aac5a28f1f | ||
|
|
e50706867a | ||
|
|
073719ac71 | ||
|
|
964a14ad23 | ||
|
|
f24920422d | ||
|
|
9c1a4265ad | ||
|
|
51bb20b0d7 | ||
|
|
29493eee3d | ||
|
|
01c7700793 | ||
|
|
8423783bd0 | ||
|
|
5236050c0f | ||
|
|
d2a7d7e26c | ||
|
|
6ef891fbe9 | ||
|
|
8b8812c41d | ||
|
|
5aaf43590f | ||
|
|
e980502db4 | ||
|
|
6443201354 | ||
|
|
07dcadc6e2 | ||
|
|
f9d068745d | ||
|
|
e78c072771 | ||
|
|
e4757e3daf | ||
|
|
b6a370c37f | ||
|
|
1dfa282056 | ||
|
|
4954945531 | ||
|
|
15903c9f3a | ||
|
|
ecd1addb86 | ||
|
|
fd0ec4bfad | ||
|
|
c84e68d720 | ||
|
|
0176adc7c5 | ||
|
|
6529f9ffb6 | ||
|
|
ba35e9924e | ||
|
|
cda18e7813 | ||
|
|
ea20115e34 | ||
|
|
7dd2d8b1ff | ||
|
|
a548a3c20c | ||
|
|
dee69dd3aa | ||
|
|
5827c8e0a6 | ||
|
|
83018d6cf9 | ||
|
|
ac1f768061 | ||
|
|
47dfc702de | ||
|
|
cabaeca9ae | ||
|
|
e88c4a4917 | ||
|
|
101e6adfe0 | ||
|
|
fd61f111a8 | ||
|
|
16b5ecc6f3 | ||
|
|
1336066b63 | ||
|
|
acee1ae35c | ||
|
|
7c7c717788 | ||
|
|
8c8d889d10 | ||
|
|
f621719829 | ||
|
|
5deaff6621 | ||
|
|
3024819c2e | ||
|
|
692d2a9c7e | ||
|
|
4ccd54f3af | ||
|
|
42f476472a | ||
|
|
6cf48dea49 | ||
|
|
9115330256 | ||
|
|
3bd4083e48 | ||
|
|
f73c8fffee | ||
|
|
bddfe77128 | ||
|
|
bd12be6e88 | ||
|
|
aa0dc8d920 | ||
|
|
9ec26a1862 | ||
|
|
159b83ff18 | ||
|
|
5c2551db52 | ||
|
|
47d48791fc | ||
|
|
72568ce039 | ||
|
|
b9be76ed89 | ||
|
|
f46b1b2329 | ||
|
|
fb173de212 | ||
|
|
18a71db562 | ||
|
|
aff4e48c82 | ||
|
|
be745062fd | ||
|
|
86a733bc74 | ||
|
|
e576c7352e | ||
|
|
caa736a754 | ||
|
|
3a76f8d5e8 | ||
|
|
a0ad323da3 | ||
|
|
0d5e7cd0af | ||
|
|
25525110c1 | ||
|
|
0792e396ea | ||
|
|
5e68d98eff | ||
|
|
e5a8e8cfd2 | ||
|
|
c0ce84c054 | ||
|
|
699095b077 | ||
|
|
5e88852b94 | ||
|
|
f72a461c76 | ||
|
|
16fc7f145f | ||
|
|
cb2a4cad76 | ||
|
|
abea3fdc7f | ||
|
|
2281544482 | ||
|
|
623aa30301 | ||
|
|
317ebe84d5 | ||
|
|
db5d9614fe | ||
|
|
c4958494a9 | ||
|
|
5e664afb95 | ||
|
|
c70896e026 | ||
|
|
a4a4c7e751 | ||
|
|
35db8a8eda | ||
|
|
499072b46b | ||
|
|
4848fe4ad2 | ||
|
|
20d13d8975 | ||
|
|
828bd291c6 | ||
|
|
710b0d6a8b | ||
|
|
7fb42c0f61 | ||
|
|
68f72235f8 | ||
|
|
d8e6884349 | ||
|
|
80f323528a | ||
|
|
badcc5419c | ||
|
|
5989aea4bb | ||
|
|
39ebcd5955 | ||
|
|
9f5423a840 | ||
|
|
17f04ff2e7 | ||
|
|
dc9b928cf6 | ||
|
|
b6d7e96688 | ||
|
|
f4d26dbdb6 | ||
|
|
529017a705 | ||
|
|
ff6b5e8406 | ||
|
|
e4c7b24ab1 | ||
|
|
020b33eaec | ||
|
|
c6de6524d7 | ||
|
|
bd6504aa9a | ||
|
|
37aa910318 | ||
|
|
e9596e1fb3 | ||
|
|
ad38e19578 | ||
|
|
c54210716e | ||
|
|
faca6b801d | ||
|
|
b54a21e047 | ||
|
|
9a43e47721 | ||
|
|
82c65f4f62 | ||
|
|
7db1c16561 | ||
|
|
1a8002871e | ||
|
|
3fcf6b956f | ||
|
|
6614bac268 | ||
|
|
1858039a0e | ||
|
|
3d4d93c35b | ||
|
|
aba6851825 | ||
|
|
55a96dbea0 | ||
|
|
5939aa7265 | ||
|
|
3b31ce9da9 | ||
|
|
cda383abe0 | ||
|
|
2729fdfb8d | ||
|
|
34729dbcb3 | ||
|
|
5d97773191 | ||
|
|
9276259b2f | ||
|
|
14597c218d | ||
|
|
bb48ac4f81 | ||
|
|
28e2058c5f | ||
|
|
9622173ccb | ||
|
|
4f0187f10c | ||
|
|
bb5de15290 | ||
|
|
024550401d | ||
|
|
7c66a4555d | ||
|
|
1e289d3cca | ||
|
|
a8f94d29b3 | ||
|
|
b233a7b9bb | ||
|
|
29ad19e2be | ||
|
|
38fed7505d | ||
|
|
ec4f2e859f | ||
|
|
fd025fbe86 | ||
|
|
e76d4c91bf | ||
|
|
9d99e3fda1 | ||
|
|
de18d9daa6 | ||
|
|
752b0c0fa7 | ||
|
|
36d26b9d26 | ||
|
|
11045ab3d1 | ||
|
|
68c2ccc953 | ||
|
|
0a2d5c9905 | ||
|
|
f2ee3341c7 | ||
|
|
886db6ade3 | ||
|
|
305795c093 | ||
|
|
1e71bc82b8 | ||
|
|
718d6eadd4 | ||
|
|
8209c24d42 | ||
|
|
4948cde0dd | ||
|
|
96ed624253 | ||
|
|
ad493ef9dd | ||
|
|
675a191f43 | ||
|
|
8e3366bd7c | ||
|
|
19b34f979c | ||
|
|
221a206115 | ||
|
|
f5af89cdee | ||
|
|
2c50ab702f | ||
|
|
7fb411cfd1 | ||
|
|
b02635aa75 | ||
|
|
1ee7ce8fbd | ||
|
|
b22d62aa69 | ||
|
|
bcf5804255 | ||
|
|
a0f854291f | ||
|
|
12d08bf91e | ||
|
|
c15033634e | ||
|
|
83a373fc81 | ||
|
|
f950ce9932 | ||
|
|
c5e84ff0e4 | ||
|
|
f210fb51ef | ||
|
|
d4cfec8537 | ||
|
|
39a1539c7a | ||
|
|
f3f064ba86 | ||
|
|
9ecea05b89 | ||
|
|
fd61d0cab1 | ||
|
|
ca5c761cde | ||
|
|
1c456bcdb4 | ||
|
|
72c0894efa | ||
|
|
e397736476 | ||
|
|
48b785fe6b | ||
|
|
602f0b8e48 | ||
|
|
e1bdeeadb3 | ||
|
|
fc72de271b | ||
|
|
1d7574a6de | ||
|
|
0b38e0a117 | ||
|
|
e2d579a021 | ||
|
|
3d8c1213d9 | ||
|
|
fc4bae7e83 | ||
|
|
9fe3c2060d | ||
|
|
a38e51e5ef | ||
|
|
6f5d6e3f8c | ||
|
|
1e36937976 | ||
|
|
e35c1bb3ec | ||
|
|
2773eae702 | ||
|
|
4da4fef481 | ||
|
|
ed95ebaa42 | ||
|
|
b6d5ee2fb2 | ||
|
|
ed3418751e | ||
|
|
f18701aeaf | ||
|
|
97c5be1daa | ||
|
|
8ee6b68d4f | ||
|
|
c8366d92f7 | ||
|
|
3b8c76cb25 | ||
|
|
5c5a746d57 | ||
|
|
9565793aed | ||
|
|
e598df739d | ||
|
|
93373a8c3c | ||
|
|
60d17e54ea | ||
|
|
c2da4f9d8a | ||
|
|
567fb9c5e7 | ||
|
|
dea69adf24 | ||
|
|
9ed37e8b9c | ||
|
|
17ad53f087 | ||
|
|
64b92523f9 | ||
|
|
37c961df41 | ||
|
|
2ef189c6d7 | ||
|
|
7cbf7d6613 | ||
|
|
5a20525ef3 | ||
|
|
b8c618c852 | ||
|
|
7fff9e8cea | ||
|
|
2b959a1fad | ||
|
|
7050586959 | ||
|
|
265c5051d7 | ||
|
|
b0a599b02e | ||
|
|
a1703aa367 | ||
|
|
f0b6aa146e | ||
|
|
00380255bd | ||
|
|
47ad4fad77 | ||
|
|
5733d25b06 | ||
|
|
5f62432db2 | ||
|
|
eb6e3b0416 | ||
|
|
cf67a374a9 | ||
|
|
0af994c26f | ||
|
|
debff476ad | ||
|
|
2b8e5a5254 | ||
|
|
207c7c1ea3 | ||
|
|
ea2a4bbc5d | ||
|
|
1f90214bb4 | ||
|
|
8eca454f9f | ||
|
|
9e80f632c8 | ||
|
|
d4e535315d | ||
|
|
bfafdac061 | ||
|
|
1744ed4042 | ||
|
|
22cc4b4e0d | ||
|
|
e1d05d3235 | ||
|
|
90947ef585 | ||
|
|
f5f40ad6c4 | ||
|
|
cddd0ddf07 | ||
|
|
4a0b9bb051 | ||
|
|
1e65b21566 | ||
|
|
d65ece198e | ||
|
|
0a021c6011 | ||
|
|
97e1692460 | ||
|
|
545be70a4d | ||
|
|
b0b4e03da5 | ||
|
|
fed846067d | ||
|
|
a26ad011f3 | ||
|
|
562c601b21 | ||
|
|
9a72459b60 | ||
|
|
57188b5ff2 | ||
|
|
873355df80 | ||
|
|
7d8c3693d0 | ||
|
|
389677e152 | ||
|
|
dcc7ea9717 | ||
|
|
60dcbecf04 | ||
|
|
b1a7fea53c | ||
|
|
6af37648dd | ||
|
|
00205e27e8 | ||
|
|
9ffd207c48 | ||
|
|
ff8335f908 | ||
|
|
ea562e4401 | ||
|
|
cab94c1516 | ||
|
|
fa010adc23 | ||
|
|
dee489d6c1 | ||
|
|
f47c41b5fe | ||
|
|
1e34f21f4c | ||
|
|
93810b1ace | ||
|
|
73620f726a | ||
|
|
c3a5709c2b | ||
|
|
b52c49c6e1 | ||
|
|
9717202925 | ||
|
|
d63b6310b4 | ||
|
|
be801b0fdb | ||
|
|
c18d42b96b | ||
|
|
594a685c8d | ||
|
|
336ca4423f | ||
|
|
fa10bed228 | ||
|
|
f08378699a | ||
|
|
235839b7ef | ||
|
|
950d71eee3 | ||
|
|
6817b32d2c | ||
|
|
c02efcf0ab | ||
|
|
ba94ff2e56 | ||
|
|
c86b6051b6 | ||
|
|
09f3e7461f | ||
|
|
53bc020d74 | ||
|
|
11c7a43642 | ||
|
|
f215881bb0 | ||
|
|
b6f0efbf3e | ||
|
|
07c336a9a8 | ||
|
|
acb9bc5b5a | ||
|
|
8bcf7a1579 | ||
|
|
712fa28946 | ||
|
|
98b2d12313 | ||
|
|
51cb4eba54 | ||
|
|
f2a16ec2e8 | ||
|
|
2bc98b7d91 | ||
|
|
9432c5ee8b | ||
|
|
768d8c0ceb | ||
|
|
14c32141f7 | ||
|
|
008616624a | ||
|
|
0cbda00d11 | ||
|
|
bf92294d2a | ||
|
|
a4786a3117 | ||
|
|
5f229adf3a | ||
|
|
8264cdf2f1 | ||
|
|
3d112f226f | ||
|
|
cd7564646e | ||
|
|
b71fc1e8f2 | ||
|
|
4cd7656507 | ||
|
|
f8644da8d9 | ||
|
|
9bfa90768a | ||
|
|
de8e172e44 | ||
|
|
7ae2ccb5d1 | ||
|
|
855bf2b910 | ||
|
|
0f956739bf | ||
|
|
2d67c24744 | ||
|
|
2ef3e44fc8 | ||
|
|
45a0264e76 | ||
|
|
e481f1dd57 | ||
|
|
c288005389 | ||
|
|
e2935ef152 | ||
|
|
527302c4fe | ||
|
|
74f16d58a3 | ||
|
|
800764304d | ||
|
|
85bdc128fc | ||
|
|
77efdc854b | ||
|
|
08a44b06ef | ||
|
|
c05a979fda | ||
|
|
ac299c4f5c | ||
|
|
5dccc8b2a5 | ||
|
|
2aca7f657d | ||
|
|
d748172fd7 | ||
|
|
86b0285d7e | ||
|
|
01d9a393ec | ||
|
|
6a7a69e9f7 | ||
|
|
045c9678e2 | ||
|
|
474a81662f | ||
|
|
08fb9ebe29 | ||
|
|
5465e5f7dd | ||
|
|
0eace215bd | ||
|
|
30751145f8 | ||
|
|
27ee1d06e9 | ||
|
|
19872fdfb7 | ||
|
|
2196128fc2 | ||
|
|
0a9a3d8c6d | ||
|
|
ea4dc97575 | ||
|
|
21bdba2f2d | ||
|
|
cf2e85ee9c | ||
|
|
f5ebf2f0c9 | ||
|
|
34d5676aac | ||
|
|
1925c92ec1 | ||
|
|
de2f767791 | ||
|
|
1bb05e54a3 | ||
|
|
1328f25787 | ||
|
|
e2b6dca303 | ||
|
|
faf83c82e0 | ||
|
|
ca149cee17 | ||
|
|
d1ecee17a5 | ||
|
|
23ac0d8259 | ||
|
|
998b2d7b67 | ||
|
|
843e4dfd2c | ||
|
|
bb7babe2ae | ||
|
|
1d9ab72131 | ||
|
|
3446187a42 | ||
|
|
1c8409706f | ||
|
|
ddae6fe9c7 | ||
|
|
63fd201fde | ||
|
|
ef8d97818f | ||
|
|
112d9875bf | ||
|
|
9a6573e16b | ||
|
|
a9568c0abb | ||
|
|
509ef0c871 | ||
|
|
8de7014e56 | ||
|
|
edc1c60621 | ||
|
|
519f8475ff | ||
|
|
c2c275f5f4 | ||
|
|
7fe2ead2b3 | ||
|
|
41626c0997 | ||
|
|
d82fda8358 | ||
|
|
c44072c299 | ||
|
|
99c9a71675 | ||
|
|
4f4e44c98f | ||
|
|
464c2e4bb9 | ||
|
|
967fafd967 | ||
|
|
cd7e84891c | ||
|
|
b994e16d9d | ||
|
|
a9bd2eab10 | ||
|
|
eda73d8aad | ||
|
|
c968a9ca37 | ||
|
|
09ab886382 | ||
|
|
95e8c0f8f5 | ||
|
|
8fe938e6d9 | ||
|
|
fb64c9cf75 | ||
|
|
401538f8dd | ||
|
|
2b403f22d4 | ||
|
|
6112718b0d | ||
|
|
04260c5c48 | ||
|
|
0e873a1202 | ||
|
|
ba9e9a88c8 | ||
|
|
f479c9ff55 | ||
|
|
6c35e4dd17 | ||
|
|
ecbfd32d37 | ||
|
|
504f7802d4 | ||
|
|
6af5c66df3 | ||
|
|
3b6bcedffe | ||
|
|
f808bd34fb | ||
|
|
841179549b | ||
|
|
6c6a6c9f5e | ||
|
|
01535cfb3a | ||
|
|
c380c1a78a | ||
|
|
6c68e68fc5 | ||
|
|
a6f360bb94 | ||
|
|
9af6e1c548 | ||
|
|
893612590b | ||
|
|
fb84f90143 | ||
|
|
f202f2587b | ||
|
|
51eba00c8f | ||
|
|
2445d14b1a | ||
|
|
4585aeb2cc | ||
|
|
711c2be7d9 | ||
|
|
56877490bc | ||
|
|
af0be81b2f | ||
|
|
2444e569eb | ||
|
|
bc1260b692 | ||
|
|
74cc9d733c | ||
|
|
11c8a04f9b | ||
|
|
d358eea93e | ||
|
|
ed0e1ae6bc | ||
|
|
0f7bbb64ea | ||
|
|
c69d61c69b | ||
|
|
8b9fa5b005 | ||
|
|
90c845947a | ||
|
|
6cefb60af5 | ||
|
|
224e84bc0e | ||
|
|
4320bd8518 | ||
|
|
47fd46791d | ||
|
|
c0510c723d | ||
|
|
b180fcc597 | ||
|
|
3b52090031 | ||
|
|
9d266ed4d7 | ||
|
|
02e81689e3 | ||
|
|
1812c92e63 | ||
|
|
571688b02f | ||
|
|
338d559b3e | ||
|
|
cd8c92da37 | ||
|
|
99a8d30559 | ||
|
|
dccd7f8459 | ||
|
|
f991461dc1 | ||
|
|
65640f401a | ||
|
|
92296c744e | ||
|
|
8af4b7042d | ||
|
|
03f91269f5 | ||
|
|
7e93abafe6 | ||
|
|
33e49e8fdc | ||
|
|
afb0a628ef | ||
|
|
17dba29ba5 | ||
|
|
fe61fbe14e | ||
|
|
163e27991b | ||
|
|
92ef1a9b9d | ||
|
|
b5a86fe434 | ||
|
|
deb588e256 | ||
|
|
74bb5715b6 | ||
|
|
dee520f1be | ||
|
|
c39911afea | ||
|
|
fb13bc029f | ||
|
|
3042b3e271 | ||
|
|
989f808405 | ||
|
|
5390957197 | ||
|
|
eba5c23154 | ||
|
|
875542855a | ||
|
|
d0b6ece407 | ||
|
|
59d5cc31e5 | ||
|
|
53aba5065d |
@@ -1,4 +1,678 @@
|
||||
|
||||
--- 9.2.0rc10 released ---
|
||||
|
||||
1131. [bug] The match-destinations view option did not work with
|
||||
IPv6 destinations. [RT #2073, #2074]
|
||||
|
||||
1130. [bug] Log messages reporting an out-of-range serial number
|
||||
did not include the out-of-range number but the
|
||||
following token. [RT #2076]
|
||||
|
||||
1129. [bug] Multithreaded servers could crash under heavy
|
||||
resolution load due to a race condition. [RT #2018]
|
||||
|
||||
1126. [bug] The server could access a freed event if shut
|
||||
down while a client start event was pending
|
||||
delivery. [RT #2061]
|
||||
|
||||
1121. [bug] The server could attempt to access a NULL zone
|
||||
table if shut down while resolving.
|
||||
[RT #1587, #2054]
|
||||
|
||||
1120. [bug] Errors in options were not fatal. [RT #2002]
|
||||
|
||||
1118. [bug] On multithreaded servers, a race condition
|
||||
could cause an assertion failure in resolver.c
|
||||
during resolver shutdown. [RT #2029]
|
||||
|
||||
1117. [port] The configure check for in6addr_loopback incorrectly
|
||||
succeeded on AIX 4.3 when compiling with -O2
|
||||
because the test code was optimized away.
|
||||
[RT #2016]
|
||||
|
||||
1116. [bug] Setting transfers in a server clause, transfers-in,
|
||||
or transfers-per-ns to a value greater than
|
||||
2147483647 disabled transfers. [RT #2002]
|
||||
|
||||
1114. [port] Ignore more accept() errors. [RT #2021]
|
||||
|
||||
1113. [bug] The allow-update-forwarding option was ignored
|
||||
when specified in a view. [RT #2014]
|
||||
|
||||
1111. [bug] Multithreaded servers could deadlock processing
|
||||
recursive queries due to a locking hieararchy
|
||||
violation in adb.c. [RT #2017]
|
||||
|
||||
--- 9.2.0rc9 released ---
|
||||
|
||||
1107. [bug] nsupdate could catch an assertion failure if an
|
||||
invalid domain name was given as the argument to
|
||||
the "zone" command.
|
||||
|
||||
1106. [bug] After seeing an out of range TTL, nsupdate would
|
||||
treat all TTLs as out of range. [RT #2001]
|
||||
|
||||
1104. [bug] Invalid arguments to the transfer-format option
|
||||
could cause an assertion failure. [RT #1995]
|
||||
|
||||
1103. [port] OpenUNIX 8 support (ifconfig.sh). [RT #1970]
|
||||
|
||||
1102. [doc] Note that query logging is enabled by directing the
|
||||
queries category to a channel.
|
||||
|
||||
1101. [bug] Array bounds read error in lwres_gai_strerror.
|
||||
|
||||
1100. [bug] libbind: DNSSEC key ids were computed incorrectly.
|
||||
|
||||
1099. [cleanup] libbind: defining REPORT_ERRORS in lib/bind/dst caused
|
||||
compile time errors.
|
||||
|
||||
1098. [bug] libbind: HMAC-MD5 key files are now mode 0600.
|
||||
|
||||
1093. [doc] libbind: miscellaneous nroff fixes.
|
||||
|
||||
1092. [bug] libbind: get*by*() failed to check if res_init() had
|
||||
been called.
|
||||
|
||||
1091. [bug] libbind: misplaced va_end().
|
||||
|
||||
1090. [bug] libbind: dns_ho.c:add_hostent() was not returning
|
||||
the amount of memory consumed resulting in garbage
|
||||
address being returned. Alignment calculations were
|
||||
wasting space. We weren't suppressing duplicate
|
||||
addresses.
|
||||
|
||||
1088. [port] libbind: MPE/iX C.70 (incomplete)
|
||||
|
||||
1087. [bug] libbind: struct __res_state too large on 64 bit arch.
|
||||
|
||||
1086. [port] libbind: sunos: old sprintf.
|
||||
|
||||
1085. [port] libbind: solaris: sys_nerr and sys_errlist do not
|
||||
exist when compiling in 64 bit mode.
|
||||
|
||||
1084. [cleanup] libbind: gai_strerror() rewritten.
|
||||
|
||||
1083. [bug] The default control channel listened on the
|
||||
wildcard adress, not the loopback as documented.
|
||||
[RT #1975]
|
||||
|
||||
1082. [bug] The -g option to named incorrectly caused logging
|
||||
to be sent to syslog in addition to stderr.
|
||||
[RT #1974]
|
||||
|
||||
1078. [bug] We failed to correct bad tv_usec values in one case.
|
||||
[RT #1966]
|
||||
|
||||
1076. [bug] A badly defined global key could trigger an assertion
|
||||
on load/reload if views were used. [RT #1947]
|
||||
|
||||
1075. [bug] Out-of-range network prefix lengths were not
|
||||
reported. [RT #1954]
|
||||
|
||||
1074. [bug] Running out of memory in dump_rdataset() could
|
||||
cause an assertion failure. [RT #1946]
|
||||
|
||||
--- 9.2.0rc8 released ---
|
||||
|
||||
1068. [bug] errno could be overwritten by catgets(). [RT #1921]
|
||||
|
||||
1066. [bug] Provide a thread safe wrapper for strerror().
|
||||
[RT #1689]
|
||||
|
||||
1064. [bug] Do not shut down active network interfaces if we
|
||||
are unable to scan the interface list. [RT #1921]
|
||||
|
||||
1063. [bug] libbind: "make install" was failing on IRIX.
|
||||
|
||||
1062. [bug] If the control channel listener socket was shut
|
||||
down before server exit, the listener object could
|
||||
be freed twice. [RT #1916]
|
||||
|
||||
1061. [bug] If periodic cache cleaning happened to start
|
||||
while cleaning due to reaching the configured
|
||||
maximum cache size was in progress, the server
|
||||
could catch an assertion failure. [RT #1912]
|
||||
|
||||
1057. [bug] Reloading the server after adding a "file" clause
|
||||
to a zone statement could cause the server to
|
||||
crash due to a typo in change 1016.
|
||||
|
||||
1056. [bug] Rndc could catch an assertion failure on SIGINT due
|
||||
to an uninitialized variable. [RT #1908]
|
||||
|
||||
--- 9.2.0rc7 released ---
|
||||
|
||||
1054. [bug] On Win32, cfg_categories and cfg_modules need to be
|
||||
exported from the libisccfg DLL.
|
||||
|
||||
1053. [bug] Dig did not increase its timeout when receiving
|
||||
AXFRs unless the +time option was used. [RT #1904]
|
||||
|
||||
1052. [bug] Journals were not being created in binary mode
|
||||
resulting in "journal format not recognized" error
|
||||
under Win32. [RT #1889]
|
||||
|
||||
1051. [bug] Do not ignore a network interface completely just
|
||||
because it has a noncontiguous netmask. Instead,
|
||||
omit it from the localnets ACL and issue a warning.
|
||||
[RT #1891]
|
||||
|
||||
1050. [bug] Log messages reporting malformed IP addresses in
|
||||
address lists such as that of the forwarders option
|
||||
failed to include the correct error code, file
|
||||
name, and line number. [RT #1890]
|
||||
|
||||
1048. [bug] Servers built with -DISC_MEM_USE_INTERNAL_MALLOC=1
|
||||
didn't work.
|
||||
|
||||
1047. [bug] named was incorrectly refusing all requests signed
|
||||
with a TSIG key derived from an unsigned TKEY
|
||||
negotiation with a NOERROR response. [RT #1886]
|
||||
|
||||
1046. [bug] The help message for the --with-openssl configure
|
||||
option was inaccurate. [RT #1880]
|
||||
|
||||
1045. [bug] It was possible to skip saving glue for a nameserver
|
||||
for a stub zone.
|
||||
|
||||
1044. [bug] Specifying allow-transfer, notify-source, or
|
||||
notify-source-v6 in a stub zone was not treated
|
||||
as an error.
|
||||
|
||||
1043. [bug] Specifying a transfer-source or transfer-source-v6
|
||||
option in the zone statement for a master zone was
|
||||
not treated as an error. [RT #1876]
|
||||
|
||||
1042. [bug] The "config" logging category did not work properly.
|
||||
[RT #1873]
|
||||
|
||||
1041. [bug] Dig/host/nslookup could catch an assertion failure
|
||||
on SIGINT due to an uninitialized variable. [RT #1867]
|
||||
|
||||
1040. [bug] Multiple listen-on-v6 options with different ports
|
||||
were not accepted. [RT #1875]
|
||||
|
||||
1039. [bug] Negative responses with CNAMEs in the answer section
|
||||
were cached incorrectly. [RT #1862]
|
||||
|
||||
1038. [bug] In servers configured with a tkey-domain option,
|
||||
TKEY queries with an owner name other than the root
|
||||
could cause an assertion failure. [RT #1866, #1869]
|
||||
|
||||
1033. [bug] Always respond to requests with an unsupported opcode
|
||||
with NOTIMP, even if we don't have a matching view
|
||||
or cannot determine the class.
|
||||
|
||||
--- 9.2.0rc6 released ---
|
||||
|
||||
1031. [bug] libbind.a: isc__gettimeofday() infinite recursion.
|
||||
[RT #1858]
|
||||
|
||||
1030. [bug] On systems with no resolv.conf file, nsupdate
|
||||
exited with an error rather than defaulting
|
||||
to using the loopback address. [RT #1836]
|
||||
|
||||
1029. [bug] Some named.conf errors did not cause the loading
|
||||
of the configuration file to return a failure
|
||||
status even though they were logged. [RT #1847]
|
||||
|
||||
1028. [bug] On Win32, dig/host/nslookup looked for resolv.conf
|
||||
in the wrong directory. [RT #1833]
|
||||
|
||||
1027. [bug] RRs having the reserved type 0 should be rejected.
|
||||
[RT #1471]
|
||||
|
||||
1026. [port] Recognize OpenUNIX 8 in config.guess. [RT #1830]
|
||||
|
||||
1022. [bug] Don't report empty root hints as "extra data".
|
||||
[RT #1802]
|
||||
|
||||
--- 9.2.0rc5 released ---
|
||||
|
||||
1021. [bug] On Win32, log message timestamps were one month
|
||||
later than they should have been, and the server
|
||||
would exhibit unspecified behavior in December.
|
||||
|
||||
1020. [bug] IXFR log messages did not distinguish between
|
||||
true IXFRs, AXFR-style IXFRs, and mere version
|
||||
polls. [RT #1811]
|
||||
|
||||
1019. [bug] The value of the lame-ttl option was limited to 18000
|
||||
seconds, not 1800 seconds as documented. [RT #1803]
|
||||
|
||||
1018. [bug] The default log channel was not always initialized
|
||||
correctly. [RT #1813]
|
||||
|
||||
1017. [bug] When specifying TSIG keys to dig and nsupdate using
|
||||
the -k option, they must be HMAC-MD5 keys. [RT #1810]
|
||||
|
||||
1016. [bug] Slave zones with no backup file were re-transferred
|
||||
on every server reload.
|
||||
|
||||
1015. [bug] Log channels that had a "versions" option but no
|
||||
"size" option failed to create numbered log
|
||||
files. [RT #1783]
|
||||
|
||||
--- 9.2.0rc4 released ---
|
||||
|
||||
1013. [bug] It was possible to cancel a query twice when marking
|
||||
a server as bogus or by having a blackhole acl.
|
||||
[RT #1776]
|
||||
|
||||
1010. [bug] The server could attempt to execute a command channel
|
||||
command after initiating server shutdown, causing
|
||||
an assertion failure. [RT #1766]
|
||||
|
||||
1006. [bug] If a KEY RR was found missing during DNSSEC validation,
|
||||
an assertion failure could subsequently be triggered
|
||||
in the resolver. [RT #1763]
|
||||
|
||||
1005. [bug] Don't copy nonzero RCODEs from request to response.
|
||||
[RT #1765]
|
||||
|
||||
1004. [port] Deal with recvfrom() returning EHOSTDOWN. [RT #1770]
|
||||
|
||||
1002. [bug] When reporting an unknown class name in named.conf,
|
||||
including the file name and line number. [RT #1759]
|
||||
|
||||
1001. [bug] win32 socket code doio_recv was not catching a
|
||||
WSACONNRESET error when a client was timing out
|
||||
the request and closing its socket. [RT #1745]
|
||||
|
||||
1000. [bug] BIND 8 compatibility: accept "HESIOD" as an alias
|
||||
for class "HS". [RT #1759]
|
||||
|
||||
--- 9.2.0rc3 released ---
|
||||
|
||||
990. [bug] The rndc-confgen man page was not installed.
|
||||
|
||||
989. [bug] Report filename if $INCLUDE fails for file related
|
||||
errors. [RT #1736]
|
||||
|
||||
987. [bug] "dig -help" didn't show "+[no]stats".
|
||||
|
||||
986. [bug] "dig +noall" failed to clear stats and command
|
||||
printing.
|
||||
|
||||
984. [bug] Multithreading should be enabled by default on
|
||||
Solaris 2.7 and newer, but it wasn't.
|
||||
|
||||
--- 9.2.0rc2 released ---
|
||||
|
||||
980. [bug] Incoming zone transfers restarting after an error
|
||||
could trigger an assertion failure. [RT #1692]
|
||||
|
||||
978. [bug] dns_db_attachversion() had an invalid REQUIRE()
|
||||
condition.
|
||||
|
||||
977. [bug] Improve "not at top of zone" error message.
|
||||
|
||||
975. [bug] "max-cache-size default;" as a view option
|
||||
caused an assertion failure.
|
||||
|
||||
974. [bug] "max-cache-size unlimited;" as a global option
|
||||
was not accepted.
|
||||
|
||||
973. [bug] Failed to log the question name when logging:
|
||||
"bad zone transfer request: non-authoritative zone
|
||||
(NOTAUTH)".
|
||||
|
||||
972. [bug] The file modification time code in zone.c was using the
|
||||
wrong epoch. [RT #1667]
|
||||
|
||||
968. [bug] On win32, the isc_time_now() function was unnecessarily
|
||||
calling strtime(). [RT #1671]
|
||||
|
||||
967. [bug] On win32, the link for bindevt was not including the
|
||||
required resource file to enable the event viewer
|
||||
to interpret the error messages in the event log,
|
||||
[RT #1668]
|
||||
|
||||
966. [placeholder]
|
||||
|
||||
965. [bug] Including data other than root server NS and A
|
||||
records in the root hint file could cause a rbtdb
|
||||
node reference leak. [RT #1581, #1618]
|
||||
|
||||
964. [func] Warn if data other than root server NS and A records
|
||||
are found in the root hint file. [RT #1581, #1618]
|
||||
|
||||
963. [bug] Bad ISC_LANG_ENDDECLS. [RT #1645]
|
||||
|
||||
962. [bug] libbind: bad "#undef", don't attempt to install
|
||||
non-existant nlist.h. [RT #1640]
|
||||
|
||||
961. [bug] Tried to use a IPV6 feature when ISC_PLATFORM_HAVEIPV6
|
||||
was not defined. [RT #1482]
|
||||
|
||||
960. [port] liblwres failed to build on systems with support for
|
||||
getrrsetbyname() in the OS. [RT #1592]
|
||||
|
||||
959. [port] On FreeBSD, determine the number of CPUs by calling
|
||||
sysctlbyname(). [RT #1584]
|
||||
|
||||
958. [port] ssize_t is not available on all platforms. [RT #1607]
|
||||
|
||||
957. [bug] sys/select.h inclusion was broken on older platforms.
|
||||
[RT #1607]
|
||||
|
||||
956. [bug] ns_g_autorndcfile changed to ns_g_keyfile
|
||||
in named/win32/os.c due to code changes in
|
||||
change #953. win32 .make file for rndc-confgen
|
||||
updated to add include path for os.h header.
|
||||
|
||||
--- 9.2.0rc1 released ---
|
||||
|
||||
955. [bug] When using views, the zone's class was not being
|
||||
inherited from the view's class. [RT #1583]
|
||||
|
||||
954. [bug] When requesting AXFRs or IXFRs using dig, host, or
|
||||
nslookup, the RD bit should not be set as zone
|
||||
transfers are inherently nonrecursive. [RT #1575]
|
||||
|
||||
953. [func] The /var/run/named.key file from change #843
|
||||
has been replaced by /etc/rndc.key. Both
|
||||
named and rndc will look for this file and use
|
||||
it to configure a default control channel key
|
||||
if not already configured using a different
|
||||
method (rndc.conf / controls). Unlike
|
||||
named.key, rndc.key is not created automatically;
|
||||
it must be created by manually running
|
||||
"rndc-confgen -a".
|
||||
|
||||
952. [bug] The server required manual intervention to serve the
|
||||
affected zones if it died between creating a journal
|
||||
and committing the first change to it.
|
||||
|
||||
951. [bug] CFLAGS was not passed to the linker when
|
||||
linking some of the test programs under
|
||||
bin/tests. [RT #1555].
|
||||
|
||||
950. [bug] Explicit TTLs did not properly override $TTL
|
||||
due to a bug in change 834. [RT #1558]
|
||||
|
||||
949. [bug] host was unable to print records larger than 512
|
||||
bytes. [RT #1557]
|
||||
|
||||
--- 9.2.0b2 released ---
|
||||
|
||||
948. [port] Integrated support for building on Windows NT /
|
||||
Windows 2000.
|
||||
|
||||
947. [bug] dns_rdata_soa_t had a badly named element "mname" which
|
||||
was really the RNAME field from RFC1035. To avoid
|
||||
confusion and silent errors that would occur it the
|
||||
"origin" and "mname" elements were given their correct
|
||||
names "mname" and "rname" respectively, the "mname"
|
||||
element is renamed to "contact".
|
||||
|
||||
946. [cleanup] doc/misc/options is now machine-generated from the
|
||||
configuration parser syntax tables, and therefore
|
||||
more likely to be correct.
|
||||
|
||||
945. [func] Add the new view-specific options
|
||||
"match-destinations" and "match-recursive-only".
|
||||
|
||||
944. [func] Check for expired signatures on load.
|
||||
|
||||
943. [bug] The server could crash when receiving a command
|
||||
via rndc if the configuration file listed only
|
||||
nonexistent keys in the controls statement. [RT #1530]
|
||||
|
||||
942. [port] libbind: GETNETBYADDR_ADDR_T was not correctly
|
||||
defined on some platforms.
|
||||
|
||||
941. [bug] The configuration checker crashed if a slave
|
||||
zone didn't contain a masters statement. [RT #1514]
|
||||
|
||||
940. [bug] Double zone locking failure on error path. [RT #1510]
|
||||
|
||||
--- 9.2.0b1 released ---
|
||||
|
||||
939. [port] Add the --disable-linux-caps option to configure for
|
||||
systems that manage capabilities outside of named.
|
||||
[RT #1503]
|
||||
|
||||
938. [placeholder]
|
||||
|
||||
937. [bug] A race when shutting down a zone could trigger a
|
||||
INSIST() failure. [RT #1034]
|
||||
|
||||
936. [func] Warn about IPv4 addresses that are not complete
|
||||
dotted quads. [RT #1084]
|
||||
|
||||
935. [bug] inet_pton failed to reject leading zeros.
|
||||
|
||||
934. [port] Deal with systems where accept() spuriously returns
|
||||
ECONNRESET.
|
||||
|
||||
933. [bug] configure failed doing libbind on platforms not
|
||||
supported by BIND 8. [RT #1496]
|
||||
|
||||
--- 9.2.0a3 released ---
|
||||
|
||||
932. [bug] Use INSTALL_SCRIPT, not INSTALL_PROGRAM,
|
||||
when installing isc-config.sh.
|
||||
[RT #198, #1466]
|
||||
|
||||
931. [bug] The controls statement only attempted to verify
|
||||
messages using the first key in the key list.
|
||||
(9.2.0a1/a2 only).
|
||||
|
||||
930. [func] Query performance testing tool added as
|
||||
contrib/queryperf.
|
||||
|
||||
929. [placeholder]
|
||||
|
||||
928. [bug] nsupdate would send empty update packets if the
|
||||
send (or empty line) command was run after
|
||||
another send but before any new updates or
|
||||
prerequisites were specified. It should simply
|
||||
ignore this command.
|
||||
|
||||
927. [bug] Don't hold the zone lock for the entire dump to disk.
|
||||
[RT #1423]
|
||||
|
||||
926. [bug] The resolver could deadlock with the ADB when
|
||||
shutting down (multithreaded builds only).
|
||||
[RT #1324]
|
||||
|
||||
925. [cleanup] Remove openssl from the distribution; require that
|
||||
--with-openssl be specified if DNSSEC is needed.
|
||||
|
||||
924. [port] Extend support for pre-RFC2133 IPv6 implementation.
|
||||
[RT #987]
|
||||
|
||||
923. [bug] Multiline TSIG secrets (and other multiline strings)
|
||||
were not accepted in named.conf. [RT #1469]
|
||||
|
||||
922. [func] Added two new lwres_getrrsetbyname() result codes,
|
||||
ERR_NONAME and ERR_NODATA.
|
||||
|
||||
921. [bug] lwres returned an incorrect error code if it received
|
||||
a truncated message.
|
||||
|
||||
920. [func] Increase the lwres receive buffer size to 16K.
|
||||
[RT #1451]
|
||||
|
||||
919. [placeholder]
|
||||
|
||||
918. [func] In nsupdate, TSIG errors are no longer treated as
|
||||
fatal errors.
|
||||
|
||||
917. [func] New nsupdate command 'key', allowing TSIG keys to
|
||||
be specified in the nsupdate command stream rather
|
||||
than the command line.
|
||||
|
||||
916. [bug] Specifying type ixfr to dig without specifying
|
||||
a serial number failed in unexpected ways.
|
||||
|
||||
915. [func] The named-checkconf and named-checkzone programs
|
||||
now have a '-v' option for printing their version.
|
||||
[RT #1151]
|
||||
|
||||
914. [bug] Global 'server' statements were rejected when
|
||||
using views, even though they were accepted
|
||||
in 9.1. [RT #1368]
|
||||
|
||||
913. [bug] Cache cleaning was not sufficiently aggressive.
|
||||
[RT #1441, #1444]
|
||||
|
||||
912. [bug] Attempts to set the 'additional-from-cache' or
|
||||
'additional-from-auth' option to 'no' in a
|
||||
server with recursion enabled will now
|
||||
be ignored and cause a warning message.
|
||||
[RT #1145]
|
||||
|
||||
911. [placeholder]
|
||||
|
||||
910. [port] Some pre-RFC2133 IPv6 implementations do not define
|
||||
IN6ADDR_ANY_INIT. [RT #1416]
|
||||
|
||||
908. [func] New program, rndc-confgen, to simplify setting up rndc.
|
||||
|
||||
907. [func] The ability to get entropy from either the
|
||||
random device, a user-provided file or from
|
||||
the keyboard was migrated from the DNSSEC tools
|
||||
to libisc as isc_entropy_usebestsource().
|
||||
|
||||
906. [port] Separated the system independent portion of
|
||||
lib/isc/unix/entropy.c into lib/isc/entropy.c
|
||||
and added lib/isc/win32/entropy.c.
|
||||
|
||||
905. [bug] Configuring a forward "zone" for the root domain
|
||||
did not work. [RT #1418]
|
||||
|
||||
904. [bug] The server would leak memory if attempting to use
|
||||
an expired TSIG key. [RT #1406]
|
||||
|
||||
903. [bug] dig should not crash when receiving a TCP packet
|
||||
of length 0.
|
||||
|
||||
902. [bug] The -d option was ignored if both -t and -g were also
|
||||
specified.
|
||||
|
||||
901. [placeholder]
|
||||
|
||||
900. [bug] A config.guess update changed the system identification
|
||||
string of FreeBSD systems; configure and
|
||||
bin/tests/system/ifconfig.sh now recognize the new
|
||||
string.
|
||||
|
||||
--- 9.2.0a2 released ---
|
||||
|
||||
899. [bug] lib/dns/soa.c failed to compile on many platforms
|
||||
due to inappropriate use of a void value.
|
||||
[RT #1372, #1373, #1386, #1387, #1395]
|
||||
|
||||
898. [bug] "dig" failed to set a nonzero exit status
|
||||
on UDP query timeout. [RT #1323]
|
||||
|
||||
897. [bug] A config.guess update changed the system identification
|
||||
string of UnixWare systems; configure now recognizes
|
||||
the new string.
|
||||
|
||||
896. [bug] If a configuration file is set on named's command line
|
||||
and it has a relative pathname, the current directory
|
||||
(after any possible jailing resulting from named -t)
|
||||
will be prepended to it so that reloading works
|
||||
properly even when a directory option is present.
|
||||
|
||||
895. [func] New function, isc_dir_current(), akin to POSIX's
|
||||
getcwd().
|
||||
|
||||
894. [bug] When using the DNSSEC tools, a message intended to warn
|
||||
when the keyboard was being used because of the lack
|
||||
of a suitable random device was not being printed.
|
||||
|
||||
893. [func] Removed isc_file_test() and added isc_file_exists()
|
||||
for the basic functionality that was being added
|
||||
with isc_file_test().
|
||||
|
||||
892. [placeholder]
|
||||
|
||||
891. [bug] Return an error when a SIG(0) signed response to
|
||||
an unsigned query is seen. This should actually
|
||||
do the verification, but it's not currently
|
||||
possible. [RT #1391]
|
||||
|
||||
890. [cleanup] The man pages no longer require the mandoc macros
|
||||
and should now format cleanly using most versions of
|
||||
nroff, and HTML versions of the man pages have been
|
||||
added. Both are generated from DocBook source.
|
||||
|
||||
889. [port] Eliminated blank lines before .TH in nroff man
|
||||
pages since they cause problems with some versions
|
||||
of nroff. [RT #1390]
|
||||
|
||||
888. [bug] Don't die when using TKEY to delete a nonexistent
|
||||
TSIG key. [RT #1392]
|
||||
|
||||
887. [port] Detect broken compilers that can't call static
|
||||
functions from inline functions. [RT #1212]
|
||||
|
||||
866. [func] Close debug only file channels when debug is set to
|
||||
zero. [RT #1246]
|
||||
|
||||
865. [bug] The new configuration parser did not allow
|
||||
the optional debug level in a "severity debug"
|
||||
clause of a logging channel to be omitted.
|
||||
This is now allowed and treated as "severity
|
||||
debug 1;" like it does in BIND 8.2.4, not as
|
||||
"severity debug 0;" like it did in BIND 9.1.
|
||||
[RT #1367]
|
||||
|
||||
864. [cleanup] Multithreading is now enabled by default on
|
||||
OSF1, Solaris 2.7 and newer, AIX, IRIX, and HP-UX.
|
||||
|
||||
863. [bug] If an error occurred while an outgoing zone transfer
|
||||
was starting up, the server could access a domain
|
||||
name that had already been freed when logging a
|
||||
message saying that the transfer was starting.
|
||||
[RT #1383]
|
||||
|
||||
862. [bug] Use after realloc(), non portable pointer arithmetic in
|
||||
grmerge().
|
||||
|
||||
861. [port] Add support for Mac OS X, by making it equivalent
|
||||
to Darwin. This was derived from the config.guess
|
||||
file shipped with Mac OS X. [RT #1355]
|
||||
|
||||
860. [func] Drop cross class glue in zone transfers.
|
||||
|
||||
859. [bug] Cache cleaning now won't swamp the CPU if there
|
||||
is a persistent overlimit condition.
|
||||
|
||||
858. [func] isc_mem_setwater() no longer requires that when the
|
||||
callback function is non-NULL then its hi_water
|
||||
argument must be greater than its lo_water argument
|
||||
(they can now be equal) or that they be non-zero.
|
||||
|
||||
857. [cleanup] Use ISC_MAGIC() to define all magic numbers for
|
||||
structs, for our friends in EBCDIC-land.
|
||||
|
||||
856. [func] Allow partial rdatasets to be returned in answer and
|
||||
authority sections to help non-TCP capable clients
|
||||
recover from truncation. [RT #1301]
|
||||
|
||||
855. [bug] Stop spurious "using RFC 1035 TTL semantics" warnings.
|
||||
|
||||
854. [bug] The config parser didn't properly handle config
|
||||
options that were specified in units of time other
|
||||
than seconds. [RT #1372]
|
||||
|
||||
853. [bug] configure_view_acl() failed to detach existing acls.
|
||||
[RT #1374]
|
||||
|
||||
852. [bug] Handle responses from servers which do not know
|
||||
about IXFR.
|
||||
|
||||
851. [cleanup] The obsolete support-ixfr option was not properly
|
||||
ignored.
|
||||
|
||||
--- 9.2.0a1 released ---
|
||||
|
||||
850. [bug] dns_rbt_findnode() would not find nodes that were
|
||||
split on a bitstring label somewhere other than in
|
||||
the last label of the node. [RT #1351]
|
||||
@@ -16,7 +690,7 @@
|
||||
function can be expanded to test other things a
|
||||
programmer might want to know about a file.
|
||||
|
||||
846. [func] A non-zero 'param' do dst_key_generate() when making an
|
||||
846. [func] A non-zero 'param' to dst_key_generate() when making an
|
||||
hmac-md5 key means that good entropy is not required.
|
||||
|
||||
845. [bug] The access rights on the public file of a symmetric
|
||||
@@ -24,7 +698,7 @@
|
||||
rather than after it has been written and closed.
|
||||
|
||||
844. [func] <isc/net.h> will ensure INADDR_LOOPBACK is defined,
|
||||
just as <lwres/net.h> does.
|
||||
just as <lwres/net.h> does.
|
||||
|
||||
843. [func] If no controls statement is present in named.conf,
|
||||
or if any inet phrase of a controls statement is
|
||||
@@ -38,7 +712,7 @@
|
||||
842. [func] 'rndc flush' now takes an optional view.
|
||||
|
||||
841. [bug] When sdb modules were not declared threadsafe, their
|
||||
create and destroy functions were not serialized.
|
||||
create and destroy functions were not serialized.
|
||||
|
||||
840. [bug] The config file parser could print the wrong file
|
||||
name if an error was detected after an included file
|
||||
@@ -102,10 +776,10 @@
|
||||
can easily be piped through "more". [RT #1254]
|
||||
|
||||
822. [bug] Sending nxrrset prerequisites would crash nsupdate.
|
||||
[RT #1248]
|
||||
[RT #1248]
|
||||
|
||||
821. [bug] The program name used when logging to syslog should
|
||||
be stripped of leading path components.
|
||||
be stripped of leading path components.
|
||||
[RT #1178, #1232]
|
||||
|
||||
820. [bug] Name server address lookups failed to follow
|
||||
@@ -144,10 +818,10 @@
|
||||
811. [bug] Parentheses were not quoted in zone dumps. [RT #1194]
|
||||
|
||||
810. [bug] The signer name in SIG records was not properly
|
||||
downcased when signing/verifying records. [RT #1186]
|
||||
downcased when signing/verifying records. [RT #1186]
|
||||
|
||||
809. [bug] Configuring a non-local address as a transfer-source
|
||||
could cause an assertion failure during load.
|
||||
could cause an assertion failure during load.
|
||||
|
||||
808. [func] Add 'rndc flush' to flush the server's cache.
|
||||
|
||||
@@ -164,20 +838,20 @@
|
||||
not cause queries to fail. [RT #1143]
|
||||
|
||||
804. [bug] Attempting to obtain entropy could fail in some
|
||||
situations. This would be most common on systems
|
||||
situations. This would be most common on systems
|
||||
with user-space threads. [RT #1131]
|
||||
|
||||
803. [bug] Treat all SIG queries as if they have the CD bit set,
|
||||
otherwise no data will be returned [RT #749]
|
||||
otherwise no data will be returned [RT #749]
|
||||
|
||||
802. [bug] DNSSEC key tags were computed incorrectly in almost
|
||||
all cases. [RT #1146]
|
||||
all cases. [RT #1146]
|
||||
|
||||
801. [bug] nsupdate should treat lines beginning with ';' as
|
||||
comments. [RT #1139]
|
||||
comments. [RT #1139]
|
||||
|
||||
800. [bug] dnssec-signzone produced incorrect statistics for
|
||||
large zones. [RT #1133]
|
||||
large zones. [RT #1133]
|
||||
|
||||
799. [bug] The ADB didn't find AAAA glue in a zone unless A6
|
||||
glue was also present.
|
||||
@@ -186,7 +860,7 @@
|
||||
and continue. [RT #1130]
|
||||
|
||||
797. [func] Issue a warning if the 'directory' option contains
|
||||
a relative path. [RT #269]
|
||||
a relative path. [RT #269]
|
||||
|
||||
796. [func] When a size limit is associated with a log file,
|
||||
only roll it when the size is reached, not every
|
||||
@@ -195,15 +869,15 @@
|
||||
795. [func] Add the +multiline option to dig. [RT #1095]
|
||||
|
||||
794. [func] Implement the "port" and "default-port" statements
|
||||
in rndc.conf.
|
||||
in rndc.conf.
|
||||
|
||||
793. [cleanup] The DNSSEC tools could create filenames that were
|
||||
illegal or contained shell metacharacters. They
|
||||
illegal or contained shell metacharacters. They
|
||||
now use a different text encoding of names that
|
||||
doesn't have these problems. [RT #1101]
|
||||
|
||||
792. [cleanup] Replace the OMAPI command channel protocol with a
|
||||
simpler one.
|
||||
simpler one.
|
||||
|
||||
791. [bug] The command channel now works over IPv6.
|
||||
|
||||
@@ -215,7 +889,7 @@
|
||||
sortlist item.
|
||||
|
||||
788. [func] Add the "match-mapped-addresses" option, which
|
||||
causes IPv6 v4mapped addresses to be treated as
|
||||
causes IPv6 v4mapped addresses to be treated as
|
||||
IPv4 addresses for the purpose of acl matching.
|
||||
|
||||
787. [bug] The DNSSEC tools failed to downcase domain
|
||||
@@ -483,7 +1157,7 @@
|
||||
|
||||
701. [func] Root hints are now fully optional. Class IN
|
||||
views use compiled-in hints by default, as
|
||||
before. Non-IN views with no root hints now
|
||||
before. Non-IN views with no root hints now
|
||||
provide authoritative service but not recursion.
|
||||
A warning is logged if a view has neither root
|
||||
hints nor authoritative data for the root. [RT #696]
|
||||
@@ -1030,7 +1704,7 @@
|
||||
reload. [RT #410]
|
||||
|
||||
528. [func] The ISC_LIST_XXXX macros now perform sanity checks
|
||||
on their arguements. ISC_LIST_XXXXUNSAFE can be use
|
||||
on their arguments. ISC_LIST_XXXXUNSAFE can be use
|
||||
to skip the checks however use with caution.
|
||||
|
||||
527. [func] New function dns_rdata_clone().
|
||||
@@ -2041,7 +2715,7 @@
|
||||
242. [cleanup] fixed incorrect warning about auth-nxdomain usage.
|
||||
|
||||
241. [cleanup] nscount and soacount have been removed from the
|
||||
dns_master_*() arguement lists.
|
||||
dns_master_*() argument lists.
|
||||
|
||||
240. [func] databases now come in three flavours: zone, cache
|
||||
and stub.
|
||||
@@ -2257,10 +2931,10 @@
|
||||
188. [func] Log a warning message when an incoming zone transfer
|
||||
contains out-of-zone data.
|
||||
|
||||
187. [func] isc_ratelimter_enqueue() has an additional arguement
|
||||
187. [func] isc_ratelimter_enqueue() has an additional argument
|
||||
'task'.
|
||||
|
||||
186. [func] dns_request_getresponse() has an additional arguement
|
||||
186. [func] dns_request_getresponse() has an additional argument
|
||||
'preserve_order'.
|
||||
|
||||
185. [bug] Fixed up handling of ISC_MEMCLUSTER_LEGACY. Several
|
||||
|
||||
@@ -12,3 +12,18 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
|
||||
FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
||||
NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
Portions Copyright (C) 1996-2001 Nominum, Inc.
|
||||
|
||||
Permission to use, copy, modify, and distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM 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.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
Frequently Asked Questions about BIND 9
|
||||
|
||||
|
||||
Q: Why doesn't -u work on Linux 2.2.x?
|
||||
Q: Why doesn't -u work on Linux 2.2.x when I build with --enable-threads?
|
||||
|
||||
A: Linux threads do not fully implement the Posix threads (pthreads) standard.
|
||||
In particular, setuid() operates only on the current thread, not the full
|
||||
@@ -23,8 +23,8 @@ of a security risk than a root process that has not dropped privileges.
|
||||
|
||||
If Linux threads ever work correctly, this restriction will go away.
|
||||
|
||||
Configuring BIND9 with the --disable-threads option causes a non-threaded
|
||||
version to be built, which will allow -u to be used.
|
||||
Configuring BIND9 with the --disable-threads option (the default) causes a
|
||||
non-threaded version to be built, which will allow -u to be used.
|
||||
|
||||
|
||||
Q: Why does named log the warning message "no TTL specified - using SOA
|
||||
@@ -65,12 +65,13 @@ A: This is often caused by TXT records with missing close quotes. Check that
|
||||
all TXT records containing quoted strings have both open and close quotes.
|
||||
|
||||
|
||||
Q: How do I produce a usable core file from a multithreaded named
|
||||
on Linux?
|
||||
Q: How do I produce a usable core file from a multithreaded named on Linux?
|
||||
|
||||
A: Apply the kernel patch found in bind9/linux/coredump-patch and rebuild
|
||||
the kernel. This patch causes multithreaded programs to dump the correct
|
||||
thread.
|
||||
A: If the Linux kernel is 2.4.7 or newer, multithreaded core dumps
|
||||
are usable (that is, the correct thread is dumped). Otherwise, if using
|
||||
a 2.2 kernel, apply the kernel patch found in contrib/linux/coredump-patch
|
||||
and rebuild the kernel. This patch will cause multithreaded programs to dump
|
||||
the correct thread.
|
||||
|
||||
|
||||
Q: How do I restrict people from looking up the server version?
|
||||
@@ -138,3 +139,129 @@ end of input". What's wrong?
|
||||
A: This error message is caused by a known bug in BIND 8.2.3 and will
|
||||
be fixed in 8.2.4. It can be safely ignored - the notify has been
|
||||
acted on by the slave despite the error message.
|
||||
|
||||
|
||||
Q: I keep getting log messages like the following. Why?
|
||||
|
||||
Jun 21 12:00:00.000 client 10.0.0.1#1234: update denied
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Q: I see a log message like the following. Why?
|
||||
|
||||
couldn't open pid file '/var/run/named.pid': Permission denied
|
||||
|
||||
A: You are most likely running named as a non-root user, and that user
|
||||
does not have permission to write in /var/run. The common ways of
|
||||
fixing this are to create a /var/run/named directory owned by the named
|
||||
user and set pid-file to "/var/run/named/named.pid", or set
|
||||
pid-file to "named.pid", which will put the file in the directory
|
||||
specified by the directory option (which, in this case, must be writable
|
||||
by the named user).
|
||||
|
||||
|
||||
Q: When I do a "dig . ns", many of the A records for the root
|
||||
servers are missing. Why?
|
||||
|
||||
A: This is normal and harmless. It is a somewhat confusing side effect
|
||||
of the way BIND 9 does RFC2181 trust ranking and of the efforts BIND 9
|
||||
makes to avoid promoting glue into answers.
|
||||
|
||||
When BIND 9 first starts up and primes its cache, it receives the root
|
||||
server addresses as additional data in an authoritative response from
|
||||
a root server, and these records are eligible for inclusion as
|
||||
additional data in responses. Subsequently it receives a subset of
|
||||
the root server addresses as additional data in a non-authoritative
|
||||
(referral) response from a root server. This causes the addresses to
|
||||
now be considered non-authoritative (glue) data, which is not eligible
|
||||
for inclusion in responses.
|
||||
|
||||
The server does have a complete set of root server addresses cached
|
||||
at all times, it just may not include all of them as additional data,
|
||||
depending on whether they were last received as answers or as glue.
|
||||
You can always look up the addresses with explicit queries like
|
||||
"dig a.root-servers.net A".
|
||||
|
||||
|
||||
Q: Zone transfers from my BIND 9 master to my Windows 2000 slave
|
||||
fail. Why?
|
||||
|
||||
A: This may be caused by a bug in the Windows 2000 DNS server where
|
||||
DNS messages larger than 16K are not handled properly. This can be
|
||||
worked around by setting the option "transfer-format one-answer;".
|
||||
Also check whether your zone contains domain names with embedded
|
||||
spaces or other special characters, like "John\032Doe\213s\032Computer",
|
||||
since such names have been known to cause Windows 2000 slaves to
|
||||
incorrectly reject the zone.
|
||||
|
||||
|
||||
Q: Why don't my zones reload when I do an "rndc reload" or SIGHUP?
|
||||
|
||||
A: A zone can be updated either by editing zone files and reloading
|
||||
the server or by dynamic update, but not both. If you have enabled
|
||||
dynamic update for a zone using the "allow-update" option, you are not
|
||||
supposed to edit the zone file by hand, and the server will not
|
||||
attempt to reload it.
|
||||
|
||||
|
||||
Q: I can query the nameserver from the nameserver but not from other
|
||||
machines. Why?
|
||||
|
||||
A: This is usually the result of the firewall configuration stopping
|
||||
the queries and / or the replies.
|
||||
|
||||
|
||||
Q: How can I make a server a slave for both an internal and
|
||||
an external view at the same time? When I tried, both views
|
||||
on the slave were transfered from the same view on the master.
|
||||
|
||||
A: You will need to give the master and slave multiple IP addresses and
|
||||
use those to make sure you reach the correct view on the other machine.
|
||||
|
||||
e.g.
|
||||
Master: 10.0.1.1 (internal), 10.0.1.2 (external, IP alias)
|
||||
internal:
|
||||
match-clients { !10.0.1.2; !10.0.1.4; 10.0.1/24; };
|
||||
notify-source 10.0.1.1;
|
||||
transfer-source 10.0.1.1;
|
||||
query-source 10.0.1.1;
|
||||
external:
|
||||
match-clients { any; };
|
||||
recursion no; // don't offer recursion to the world
|
||||
notify-source 10.0.1.2;
|
||||
transfer-source 10.0.1.2;
|
||||
query-source 10.0.1.2;
|
||||
|
||||
Slave: 10.0.1.3 (internal), 10.0.1.4 (external, IP alias)
|
||||
internal:
|
||||
match-clients { !10.0.1.2; !10.0.1.4; 10.0.1/24; };
|
||||
notify-source 10.0.1.3;
|
||||
transfer-source 10.0.1.3;
|
||||
query-source 10.0.1.3;
|
||||
external:
|
||||
match-clients { any; };
|
||||
recursion no; // don't offer recursion to the world
|
||||
notify-source 10.0.1.4;
|
||||
transfer-source 10.0.1.4;
|
||||
query-source 10.0.1.4;
|
||||
|
||||
You put the external address on the alias so that all the other
|
||||
dns clients on these boxes see the internal view by default.
|
||||
|
||||
|
||||
Q: When I try to use rndc, I get the error message "network
|
||||
unreachable" or "connection refused", even though I know named is
|
||||
running.
|
||||
|
||||
A: You probably have "default-server localhost" in /etc/rndc.conf,
|
||||
your /etc/hosts or DNS maps "localhost" to both the IPv4 loopback
|
||||
address 127.0.0.1 and the IPv6 loopback address ::1, and you do not
|
||||
have IPv6 fully operational. Change the "default-server localhost" to
|
||||
"default-server 127.0.0.1" to make sure rdnc does not try to contact
|
||||
the name server using IPv6.
|
||||
|
||||
+3
-3
@@ -13,7 +13,7 @@
|
||||
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.38 2001/03/27 19:36:55 halley Exp $
|
||||
# $Id: Makefile.in,v 1.41 2001/07/13 01:38:49 gson Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
@@ -21,7 +21,7 @@ top_srcdir = @top_srcdir@
|
||||
|
||||
@BIND9_VERSION@
|
||||
|
||||
SUBDIRS = make lib bin doc
|
||||
SUBDIRS = make lib bin doc @LIBBIND@
|
||||
TARGETS =
|
||||
|
||||
@BIND9_MAKE_RULES@
|
||||
@@ -40,7 +40,7 @@ installdirs:
|
||||
$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${bindir}
|
||||
|
||||
install:: isc-config.sh installdirs
|
||||
${INSTALL_PROGRAM} isc-config.sh ${DESTDIR}${bindir}
|
||||
${INSTALL_SCRIPT} isc-config.sh ${DESTDIR}${bindir}
|
||||
|
||||
tags:
|
||||
rm -f TAGS
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
BIND 9
|
||||
|
||||
BIND version 9 is a major rewrite of nearly all aspects of the
|
||||
@@ -42,13 +41,16 @@ BIND 9
|
||||
U.S. Defense Information Systems Agency
|
||||
USENIX Association
|
||||
Stichting NLnet - NLnet Foundation
|
||||
Nominum, Inc.
|
||||
|
||||
|
||||
BIND 9.2.0rc10
|
||||
|
||||
BIND 9.2
|
||||
BIND 9.2.0rc10 is a release candidate for BIND 9.2.0.
|
||||
It fixes a number of bugs in 9.2.0rc9.
|
||||
|
||||
BIND 9.2.0a1 is the first alpha release of BIND 9.2.0.
|
||||
It includes a number of new features over 9.1, including:
|
||||
BIND 9.2.0 has a number of new features over 9.1,
|
||||
including:
|
||||
|
||||
- The size of the cache can now be limited using the
|
||||
"max-cache-size" option.
|
||||
@@ -76,14 +78,23 @@ BIND 9.2
|
||||
|
||||
- rndc can now be configured automatically.
|
||||
|
||||
- A BIND 8 compatible stub resolver library is now included
|
||||
in lib/bind. It is not built by default, and may not build
|
||||
on all supported platforms yet.
|
||||
- A BIND 8 compatible stub resolver library is now
|
||||
included in lib/bind.
|
||||
|
||||
This distribution already includes a new lightweight stub
|
||||
- OpenSSL has been removed from the distribution. This
|
||||
means that to use DNSSEC, OpenSSL must be installed and
|
||||
the --with-openssl option must be supplied to configure.
|
||||
This does not apply to the use of TSIG, which does not
|
||||
require OpenSSL.
|
||||
|
||||
- The source distribution now builds on Windows NT/2000.
|
||||
See win32utils/readme1.txt and win32utils/win32-build.txt
|
||||
for details.
|
||||
|
||||
This distribution also includes a new lightweight stub
|
||||
resolver library and associated resolver daemon that fully
|
||||
support forward and reverse lookups of both IPv4 and IPv6
|
||||
addresses. This library is still considered experimental and
|
||||
addresses. This library is considered experimental and
|
||||
is not a complete replacement for the BIND 8 resolver library.
|
||||
Applications that use the BIND 8 res_* functions to perform
|
||||
DNS lookups or dynamic updates still need to be linked against
|
||||
@@ -126,6 +137,7 @@ BIND 9.2
|
||||
For a detailed list of user-visible changes from
|
||||
previous releases, see the CHANGES file.
|
||||
|
||||
|
||||
Building
|
||||
|
||||
BIND 9 currently requires a UNIX system with an ANSI C compiler,
|
||||
@@ -137,19 +149,28 @@ Building
|
||||
COMPAQ Tru64 UNIX 4.0D
|
||||
COMPAQ Tru64 UNIX 5 (with IPv6 EAK)
|
||||
FreeBSD 3.4-STABLE, 3.5, 4.0, 4.1
|
||||
HP-UX 11
|
||||
HP-UX 11.x, x < 11
|
||||
IRIX64 6.5
|
||||
NetBSD 1.5
|
||||
Red Hat Linux 6.0, 6.1, 6.2, 7.0
|
||||
Solaris 2.6, 7, 8
|
||||
Windows NT/W2K
|
||||
|
||||
HP-UX 11.11 is not yet supported due to its incompatible
|
||||
SIOCGLIFCONF ioctl.
|
||||
|
||||
Additionally, we have unverified reports of success building
|
||||
previous versions of BIND 9 from users of the following systems:
|
||||
|
||||
Slackware Linux 7.x
|
||||
OpenBSD 2.6, 2.8, -current
|
||||
AIX 5L
|
||||
SuSE Linux 7.0
|
||||
Slackware Linux 7.x, 8.0
|
||||
Red Hat Linux 7.1
|
||||
OpenBSD 2.6, 2.8, 2.9
|
||||
UnixWare 7.1.1
|
||||
HP-UX 10.20
|
||||
BSD/OS 4.2
|
||||
OpenUNIX 8
|
||||
|
||||
To build, just
|
||||
|
||||
@@ -181,6 +202,16 @@ Building
|
||||
To build shared libraries, specify "--with-libtool" on the
|
||||
configure command line.
|
||||
|
||||
For the server to support DNSSEC, you need to build it
|
||||
with crypto support. You must have OpenSSL 0.9.5a
|
||||
or newer installed and specify "--with-openssl" on the
|
||||
configure command line. If OpenSSL is installed under
|
||||
a nonstandard prefix, you can tell configure where to
|
||||
look for it using "--with-openssl=/prefix".
|
||||
|
||||
To build libbind (the BIND 8 resolver library), specify
|
||||
"--enable-libbind" on the configure command line.
|
||||
|
||||
On some platforms, 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
|
||||
@@ -221,6 +252,7 @@ Building
|
||||
on your system, and some require Perl; see bin/tests/system/README
|
||||
for details.
|
||||
|
||||
|
||||
Documentation
|
||||
|
||||
The BIND 9 Administrator Reference Manual is included with the
|
||||
@@ -238,6 +270,7 @@ Documentation
|
||||
|
||||
|
||||
Bug Reports and Mailing Lists
|
||||
|
||||
Bugs reports should be sent to
|
||||
|
||||
bind9-bugs@isc.org
|
||||
|
||||
+12
-3
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: acconfig.h,v 1.33 2001/01/18 22:21:22 bwelling Exp $ */
|
||||
/* $Id: acconfig.h,v 1.35.2.1 2001/10/22 23:28:07 gson Exp $ */
|
||||
|
||||
/***
|
||||
*** This file is not to be included by any public header files, because
|
||||
@@ -23,6 +23,9 @@
|
||||
***/
|
||||
@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
|
||||
|
||||
@@ -44,6 +47,9 @@
|
||||
/* define if sysconf() is available */
|
||||
#undef HAVE_SYSCONF
|
||||
|
||||
/* define if sysctlbyname() is available */
|
||||
#undef HAVE_SYSCTLBYNAME
|
||||
|
||||
/* define if catgets() is available */
|
||||
#undef HAVE_CATGETS
|
||||
|
||||
@@ -81,8 +87,8 @@
|
||||
/* define if flockfile() is available */
|
||||
#undef HAVE_FLOCKFILE
|
||||
|
||||
/* define if rlim_t is defined via sys/types.h or sys/resource.h */
|
||||
#undef HAVE_RLIM_T
|
||||
/* define if getc_unlocked() is available */
|
||||
#undef HAVE_GETCUNLOCKED
|
||||
|
||||
/* Shut up warnings about sputaux in stdio.h on BSD/OS pre-4.1 */
|
||||
#undef SHUTUP_SPUTAUX
|
||||
@@ -120,3 +126,6 @@ int sigwait(const unsigned int *set, int *sig);
|
||||
|
||||
/* define if pthread_attr_getstacksize() is available */
|
||||
#undef HAVE_PTHREAD_ATTR_GETSTACKSIZE
|
||||
|
||||
/* define if you have strerror in the C library. */
|
||||
#undef HAVE_STRERROR
|
||||
|
||||
+13
-3
@@ -13,17 +13,19 @@
|
||||
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.12 2001/05/18 23:50:06 gson Exp $
|
||||
# $Id: Makefile.in,v 1.15 2001/07/27 17:45:27 gson Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
@BIND9_VERSION@
|
||||
|
||||
@BIND9_INCLUDES@
|
||||
|
||||
CINCLUDES = ${DNS_INCLUDES} ${ISCCFG_INCLUDES} ${ISC_INCLUDES}
|
||||
|
||||
CDEFINES = -DNS_SYSCONFDIR=\"${sysconfdir}\"
|
||||
CDEFINES = -DNAMED_CONFFILE=\"${sysconfdir}/named.conf\"
|
||||
CWARNINGS =
|
||||
|
||||
DNSLIBS = ../../lib/dns/libdns.@A@ @DNS_OPENSSL_LIBS@ @DNS_GSSAPI_LIBS@
|
||||
@@ -52,6 +54,14 @@ MANOBJS = ${MANPAGES} ${HTMLPAGES}
|
||||
|
||||
@BIND9_MAKE_RULES@
|
||||
|
||||
named-checkconf.@O@: named-checkconf.c
|
||||
${LIBTOOL} ${CC} ${ALL_CFLAGS} -DVERSION=\"${VERSION}\" \
|
||||
-c ${srcdir}/named-checkconf.c
|
||||
|
||||
named-checkzone.@O@: named-checkzone.c
|
||||
${LIBTOOL} ${CC} ${ALL_CFLAGS} -DVERSION=\"${VERSION}\" \
|
||||
-c ${srcdir}/named-checkzone.c
|
||||
|
||||
named-checkconf: named-checkconf.@O@ check-tool.@O@ ${ISCDEPLIBS} ${ISCCFGDEPLIBS}
|
||||
${LIBTOOL} ${PURIFY} ${CC} ${CFLAGS} -o $@ named-checkconf.@O@ \
|
||||
check-tool.@O@ ${ISCCFGLIBS} ${ISCLIBS} ${LIBS}
|
||||
@@ -72,7 +82,7 @@ installdirs:
|
||||
install:: named-checkconf named-checkzone installdirs
|
||||
${LIBTOOL} ${INSTALL_PROGRAM} named-checkconf ${DESTDIR}${sbindir}
|
||||
${LIBTOOL} ${INSTALL_PROGRAM} named-checkzone ${DESTDIR}${sbindir}
|
||||
for m in ${MANPAGES}; do ${INSTALL_DATA} $$m ${DESTDIR}${mandir}/man8; done
|
||||
for m in ${MANPAGES}; do ${INSTALL_DATA} ${srcdir}/$$m ${DESTDIR}${mandir}/man8; done
|
||||
|
||||
clean distclean::
|
||||
rm -f ${TARGETS}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -12,15 +13,13 @@
|
||||
.\" 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: named-checkconf.8,v 1.8 2001/05/30 20:30:10 bwelling Exp $
|
||||
|
||||
.\"
|
||||
.TH "NAMED-CHECKCONF" "8" "June 14, 2000" "BIND9" ""
|
||||
.SH NAME
|
||||
named-checkconf \- named configuration file syntax checking tool
|
||||
.SH SYNOPSIS
|
||||
.sp
|
||||
\fBnamed-checkconf\fR [ \fB-t \fIdirectory\fB\fR ] \fBfilename\fR
|
||||
\fBnamed-checkconf\fR [ \fB-v\fR ] [ \fB-t \fIdirectory\fB\fR ] \fBfilename\fR
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
\fBnamed-checkconf\fR checks the syntax, but not
|
||||
@@ -32,6 +31,10 @@ chroot to \fIdirectory\fR so that include
|
||||
directives in the configuration file are processed as if
|
||||
run by a similarly chrooted named.
|
||||
.TP
|
||||
\fB-v\fR
|
||||
Print the version of the \fBnamed-checkconf\fR
|
||||
program and exit.
|
||||
.TP
|
||||
\fBfilename\fR
|
||||
The name of the configuration file to be checked. If not
|
||||
specified, it defaults to \fI/etc/named.conf\fR.
|
||||
|
||||
+18
-11
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: named-checkconf.c,v 1.8 2001/05/18 23:50:04 gson Exp $ */
|
||||
/* $Id: named-checkconf.c,v 1.12 2001/07/27 17:45:26 gson Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -36,11 +36,11 @@
|
||||
|
||||
#include "check-tool.h"
|
||||
|
||||
isc_log_t *log = NULL;
|
||||
isc_log_t *logc = NULL;
|
||||
|
||||
static void
|
||||
usage(void) {
|
||||
fprintf(stderr, "usage: named-checkconf [-t directory] [named.conf]\n");
|
||||
fprintf(stderr, "usage: named-checkconf [-v] [-t directory] [named.conf]\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ directory_callback(const char *clausename, cfg_obj_t *obj, void *arg) {
|
||||
directory = cfg_obj_asstring(obj);
|
||||
result = isc_dir_chdir(directory);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
cfg_obj_log(obj, log, ISC_LOG_ERROR,
|
||||
cfg_obj_log(obj, logc, ISC_LOG_ERROR,
|
||||
"change directory to '%s' failed: %s",
|
||||
directory, isc_result_totext(result));
|
||||
return (result);
|
||||
@@ -77,8 +77,9 @@ main(int argc, char **argv) {
|
||||
const char *conffile = NULL;
|
||||
isc_mem_t *mctx = NULL;
|
||||
isc_result_t result;
|
||||
int exit_status = 0;
|
||||
|
||||
while ((c = isc_commandline_parse(argc, argv, "t:")) != EOF) {
|
||||
while ((c = isc_commandline_parse(argc, argv, "t:v")) != EOF) {
|
||||
switch (c) {
|
||||
case 't':
|
||||
result = isc_dir_chroot(isc_commandline_argument);
|
||||
@@ -95,6 +96,10 @@ main(int argc, char **argv) {
|
||||
}
|
||||
break;
|
||||
|
||||
case 'v':
|
||||
printf(VERSION "\n");
|
||||
exit(0);
|
||||
|
||||
default:
|
||||
usage();
|
||||
}
|
||||
@@ -103,13 +108,13 @@ main(int argc, char **argv) {
|
||||
if (argv[isc_commandline_index] != NULL)
|
||||
conffile = argv[isc_commandline_index];
|
||||
if (conffile == NULL || conffile[0] == '\0')
|
||||
conffile = NS_SYSCONFDIR "/named.conf";
|
||||
conffile = NAMED_CONFFILE;
|
||||
|
||||
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
|
||||
|
||||
RUNTIME_CHECK(setup_logging(mctx, &log) == ISC_R_SUCCESS);
|
||||
RUNTIME_CHECK(setup_logging(mctx, &logc) == ISC_R_SUCCESS);
|
||||
|
||||
RUNTIME_CHECK(cfg_parser_create(mctx, log, &parser) == ISC_R_SUCCESS);
|
||||
RUNTIME_CHECK(cfg_parser_create(mctx, logc, &parser) == ISC_R_SUCCESS);
|
||||
|
||||
cfg_parser_setcallback(parser, directory_callback, NULL);
|
||||
|
||||
@@ -117,15 +122,17 @@ main(int argc, char **argv) {
|
||||
ISC_R_SUCCESS)
|
||||
exit(1);
|
||||
|
||||
RUNTIME_CHECK(cfg_check_namedconf(config, log, mctx) == ISC_R_SUCCESS);
|
||||
result = cfg_check_namedconf(config, logc, mctx);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
exit_status = 1;
|
||||
|
||||
cfg_obj_destroy(parser, &config);
|
||||
|
||||
cfg_parser_destroy(&parser);
|
||||
|
||||
isc_log_destroy(&log);
|
||||
isc_log_destroy(&logc);
|
||||
|
||||
isc_mem_destroy(&mctx);
|
||||
|
||||
return (0);
|
||||
return (exit_status);
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
- WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: named-checkconf.docbook,v 1.2 2001/04/10 21:50:19 bwelling Exp $ -->
|
||||
<!-- $Id: named-checkconf.docbook,v 1.3 2001/06/29 01:04:56 gson Exp $ -->
|
||||
|
||||
<refentry>
|
||||
<refentryinfo>
|
||||
@@ -37,6 +37,7 @@
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>named-checkconf</command>
|
||||
<arg><option>-v</option></arg>
|
||||
<arg><option>-t <replaceable class="parameter">directory</replaceable></option></arg>
|
||||
<arg choice="req">filename</arg>
|
||||
</cmdsynopsis>
|
||||
@@ -65,6 +66,16 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-v</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Print the version of the <command>named-checkconf</command>
|
||||
program and exit.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>filename</term>
|
||||
<listitem>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<!--
|
||||
- Copyright (C) 2001 Internet Software Consortium.
|
||||
-
|
||||
- Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
-
|
||||
- THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
|
||||
- DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
@@ -14,9 +14,6 @@
|
||||
- NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
- WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: named-checkconf.html,v 1.2 2001/04/10 21:50:20 bwelling Exp $ -->
|
||||
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
@@ -64,6 +61,9 @@ CLASS="COMMAND"
|
||||
>named-checkconf</B
|
||||
> [<TT
|
||||
CLASS="OPTION"
|
||||
>-v</TT
|
||||
>] [<TT
|
||||
CLASS="OPTION"
|
||||
>-t <TT
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
@@ -75,7 +75,7 @@ CLASS="REPLACEABLE"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN20"
|
||||
NAME="AEN22"
|
||||
></A
|
||||
><H2
|
||||
>DESCRIPTION</H2
|
||||
@@ -90,7 +90,7 @@ CLASS="COMMAND"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN24"
|
||||
NAME="AEN26"
|
||||
></A
|
||||
><H2
|
||||
>OPTIONS</H2
|
||||
@@ -117,6 +117,17 @@ CLASS="FILENAME"
|
||||
</P
|
||||
></DD
|
||||
><DT
|
||||
>-v</DT
|
||||
><DD
|
||||
><P
|
||||
> Print the version of the <B
|
||||
CLASS="COMMAND"
|
||||
>named-checkconf</B
|
||||
>
|
||||
program and exit.
|
||||
</P
|
||||
></DD
|
||||
><DT
|
||||
>filename</DT
|
||||
><DD
|
||||
><P
|
||||
@@ -133,7 +144,7 @@ CLASS="FILENAME"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN38"
|
||||
NAME="AEN45"
|
||||
></A
|
||||
><H2
|
||||
>RETURN VALUES</H2
|
||||
@@ -148,7 +159,7 @@ CLASS="COMMAND"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN42"
|
||||
NAME="AEN49"
|
||||
></A
|
||||
><H2
|
||||
>SEE ALSO</H2
|
||||
@@ -169,7 +180,7 @@ CLASS="CITETITLE"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN49"
|
||||
NAME="AEN56"
|
||||
></A
|
||||
><H2
|
||||
>AUTHOR</H2
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -12,15 +13,13 @@
|
||||
.\" 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: named-checkzone.8,v 1.8 2001/05/30 20:30:11 bwelling Exp $
|
||||
|
||||
.\"
|
||||
.TH "NAMED-CHECKZONE" "8" "June 13, 2000" "BIND9" ""
|
||||
.SH NAME
|
||||
named-checkzone \- zone file validity checking tool
|
||||
.SH SYNOPSIS
|
||||
.sp
|
||||
\fBnamed-checkzone\fR [ \fB-d\fR ] [ \fB-q\fR ] [ \fB-c \fIclass\fB\fR ] \fBzonename\fR \fBfilename\fR
|
||||
\fBnamed-checkzone\fR [ \fB-d\fR ] [ \fB-q\fR ] [ \fB-v\fR ] [ \fB-c \fIclass\fB\fR ] \fBzonename\fR \fBfilename\fR
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
\fBnamed-checkzone\fR checks the syntax and integrity of
|
||||
@@ -36,6 +35,10 @@ Enable debugging.
|
||||
\fB-q\fR
|
||||
Quiet mode - exit code only.
|
||||
.TP
|
||||
\fB-v\fR
|
||||
Print the version of the \fBnamed-checkzone\fR
|
||||
program and exit.
|
||||
.TP
|
||||
\fB-c \fIclass\fB\fR
|
||||
Specify the class of the zone. If not specified "IN" is assumed.
|
||||
.TP
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: named-checkzone.c,v 1.12 2001/03/03 23:11:36 bwelling Exp $ */
|
||||
/* $Id: named-checkzone.c,v 1.13 2001/06/29 01:04:59 gson Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -61,7 +61,7 @@ static const char *dbtype[] = { "rbt" };
|
||||
static void
|
||||
usage(void) {
|
||||
fprintf(stderr,
|
||||
"usage: named-checkzone [-dq] [-c class] zonename filename\n");
|
||||
"usage: named-checkzone [-dqv] [-c class] zonename filename \n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@@ -128,7 +128,7 @@ main(int argc, char **argv) {
|
||||
char classname_in[] = "IN";
|
||||
char *classname = classname_in;
|
||||
|
||||
while ((c = isc_commandline_parse(argc, argv, "c:dqs")) != EOF) {
|
||||
while ((c = isc_commandline_parse(argc, argv, "c:dqsv")) != EOF) {
|
||||
switch (c) {
|
||||
case 'c':
|
||||
classname = isc_commandline_argument;
|
||||
@@ -139,6 +139,9 @@ main(int argc, char **argv) {
|
||||
case 'q':
|
||||
quiet++;
|
||||
break;
|
||||
case 'v':
|
||||
printf(VERSION "\n");
|
||||
exit(0);
|
||||
default:
|
||||
usage();
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
- WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: named-checkzone.docbook,v 1.2 2001/04/10 21:50:22 bwelling Exp $ -->
|
||||
<!-- $Id: named-checkzone.docbook,v 1.3 2001/06/29 01:05:00 gson Exp $ -->
|
||||
|
||||
<refentry>
|
||||
<refentryinfo>
|
||||
@@ -39,6 +39,7 @@
|
||||
<command>named-checkzone</command>
|
||||
<arg><option>-d</option></arg>
|
||||
<arg><option>-q</option></arg>
|
||||
<arg><option>-v</option></arg>
|
||||
<arg><option>-c <replaceable class="parameter">class</replaceable></option></arg>
|
||||
<arg choice="req">zonename</arg>
|
||||
<arg choice="req">filename</arg>
|
||||
@@ -78,6 +79,16 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-v</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Print the version of the <command>named-checkzone</command>
|
||||
program and exit.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-c <replaceable class="parameter">class</replaceable></term>
|
||||
<listitem>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<!--
|
||||
- Copyright (C) 2001 Internet Software Consortium.
|
||||
-
|
||||
- Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
-
|
||||
- THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
|
||||
- DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
@@ -14,9 +14,6 @@
|
||||
- NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
- WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: named-checkzone.html,v 1.2 2001/04/10 21:50:24 bwelling Exp $ -->
|
||||
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
@@ -70,6 +67,9 @@ CLASS="OPTION"
|
||||
>-q</TT
|
||||
>] [<TT
|
||||
CLASS="OPTION"
|
||||
>-v</TT
|
||||
>] [<TT
|
||||
CLASS="OPTION"
|
||||
>-c <TT
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
@@ -81,7 +81,7 @@ CLASS="REPLACEABLE"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN25"
|
||||
NAME="AEN27"
|
||||
></A
|
||||
><H2
|
||||
>DESCRIPTION</H2
|
||||
@@ -105,7 +105,7 @@ CLASS="COMMAND"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN31"
|
||||
NAME="AEN33"
|
||||
></A
|
||||
><H2
|
||||
>OPTIONS</H2
|
||||
@@ -129,6 +129,17 @@ CLASS="VARIABLELIST"
|
||||
</P
|
||||
></DD
|
||||
><DT
|
||||
>-v</DT
|
||||
><DD
|
||||
><P
|
||||
> Print the version of the <B
|
||||
CLASS="COMMAND"
|
||||
>named-checkzone</B
|
||||
>
|
||||
program and exit.
|
||||
</P
|
||||
></DD
|
||||
><DT
|
||||
>-c <TT
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
@@ -160,7 +171,7 @@ CLASS="REPLACEABLE"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN55"
|
||||
NAME="AEN62"
|
||||
></A
|
||||
><H2
|
||||
>RETURN VALUES</H2
|
||||
@@ -175,7 +186,7 @@ CLASS="COMMAND"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN59"
|
||||
NAME="AEN66"
|
||||
></A
|
||||
><H2
|
||||
>SEE ALSO</H2
|
||||
@@ -200,7 +211,7 @@ CLASS="CITETITLE"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN67"
|
||||
NAME="AEN74"
|
||||
></A
|
||||
><H2
|
||||
>AUTHOR</H2
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
# Microsoft Developer Studio Project File - Name="namedcheckconf" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=namedcheckconf - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "namedcheckconf.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "namedcheckconf.mak" CFG="namedcheckconf - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "namedcheckconf - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "namedcheckconf - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "namedcheckconf - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/isccfg/include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__STDC__" /FR /YX /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/isccfg/win32/Release/libisccfg.lib /nologo /subsystem:console /machine:I386 /out:"../../../Build/Release/named-checkconf.exe"
|
||||
|
||||
!ELSEIF "$(CFG)" == "namedcheckconf - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/isccfg/include" /D "_DEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
|
||||
# SUBTRACT CPP /X /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/isccfg/win32/Debug/libisccfg.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../../Build/Debug/named-checkconf.exe" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "namedcheckconf - Win32 Release"
|
||||
# Name "namedcheckconf - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE="..\check-tool.c"
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE="..\named-checkconf.c"
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE="..\check-tool.h"
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "namedcheckconf"=".\namedcheckconf.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -0,0 +1,216 @@
|
||||
# Microsoft Developer Studio Generated NMAKE File, Based on namedcheckconf.dsp
|
||||
!IF "$(CFG)" == ""
|
||||
CFG=namedcheckconf - Win32 Debug
|
||||
!MESSAGE No configuration specified. Defaulting to namedcheckconf - Win32 Debug.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" != "namedcheckconf - Win32 Release" && "$(CFG)" != "namedcheckconf - Win32 Debug"
|
||||
!MESSAGE Invalid configuration "$(CFG)" specified.
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "namedcheckconf.mak" CFG="namedcheckconf - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "namedcheckconf - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "namedcheckconf - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
!ERROR An invalid configuration is specified.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(OS)" == "Windows_NT"
|
||||
NULL=
|
||||
!ELSE
|
||||
NULL=nul
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" == "namedcheckconf - Win32 Release"
|
||||
|
||||
OUTDIR=.\Release
|
||||
INTDIR=.\Release
|
||||
# Begin Custom Macros
|
||||
OutDir=.\Release
|
||||
# End Custom Macros
|
||||
|
||||
ALL : "..\..\..\Build\Release\named-checkconf.exe" "$(OUTDIR)\namedcheckconf.bsc"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\check-tool.obj"
|
||||
-@erase "$(INTDIR)\check-tool.sbr"
|
||||
-@erase "$(INTDIR)\named-checkconf.obj"
|
||||
-@erase "$(INTDIR)\named-checkconf.sbr"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "$(OUTDIR)\namedcheckconf.bsc"
|
||||
-@erase "..\..\..\Build\Release\named-checkconf.exe"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/isccfg/include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__STDC__" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\namedcheckconf.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\namedcheckconf.bsc"
|
||||
BSC32_SBRS= \
|
||||
"$(INTDIR)\check-tool.sbr" \
|
||||
"$(INTDIR)\named-checkconf.sbr"
|
||||
|
||||
"$(OUTDIR)\namedcheckconf.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
|
||||
$(BSC32) @<<
|
||||
$(BSC32_FLAGS) $(BSC32_SBRS)
|
||||
<<
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/isccfg/win32/Release/libisccfg.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\named-checkconf.pdb" /machine:I386 /out:"../../../Build/Release/named-checkconf.exe"
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\check-tool.obj" \
|
||||
"$(INTDIR)\named-checkconf.obj"
|
||||
|
||||
"..\..\..\Build\Release\named-checkconf.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ELSEIF "$(CFG)" == "namedcheckconf - Win32 Debug"
|
||||
|
||||
OUTDIR=.\Debug
|
||||
INTDIR=.\Debug
|
||||
# Begin Custom Macros
|
||||
OutDir=.\Debug
|
||||
# End Custom Macros
|
||||
|
||||
ALL : "..\..\..\Build\Debug\named-checkconf.exe" "$(OUTDIR)\namedcheckconf.bsc"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\check-tool.obj"
|
||||
-@erase "$(INTDIR)\check-tool.sbr"
|
||||
-@erase "$(INTDIR)\named-checkconf.obj"
|
||||
-@erase "$(INTDIR)\named-checkconf.sbr"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "$(INTDIR)\vc60.pdb"
|
||||
-@erase "$(OUTDIR)\named-checkconf.pdb"
|
||||
-@erase "$(OUTDIR)\namedcheckconf.bsc"
|
||||
-@erase "..\..\..\Build\Debug\named-checkconf.exe"
|
||||
-@erase "..\..\..\Build\Debug\named-checkconf.ilk"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/isccfg/include" /D "_DEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\namedcheckconf.bsc"
|
||||
BSC32_SBRS= \
|
||||
"$(INTDIR)\check-tool.sbr" \
|
||||
"$(INTDIR)\named-checkconf.sbr"
|
||||
|
||||
"$(OUTDIR)\namedcheckconf.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
|
||||
$(BSC32) @<<
|
||||
$(BSC32_FLAGS) $(BSC32_SBRS)
|
||||
<<
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/isccfg/win32/Debug/libisccfg.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\named-checkconf.pdb" /debug /machine:I386 /out:"../../../Build/Debug/named-checkconf.exe" /pdbtype:sept
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\check-tool.obj" \
|
||||
"$(INTDIR)\named-checkconf.obj"
|
||||
|
||||
"..\..\..\Build\Debug\named-checkconf.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(NO_EXTERNAL_DEPS)" != "1"
|
||||
!IF EXISTS("namedcheckconf.dep")
|
||||
!INCLUDE "namedcheckconf.dep"
|
||||
!ELSE
|
||||
!MESSAGE Warning: cannot find "namedcheckconf.dep"
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(CFG)" == "namedcheckconf - Win32 Release" || "$(CFG)" == "namedcheckconf - Win32 Debug"
|
||||
SOURCE="..\check-tool.c"
|
||||
|
||||
"$(INTDIR)\check-tool.obj" "$(INTDIR)\check-tool.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
SOURCE="..\named-checkconf.c"
|
||||
|
||||
"$(INTDIR)\named-checkconf.obj" "$(INTDIR)\named-checkconf.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
# Microsoft Developer Studio Project File - Name="namedcheckzone" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=namedcheckzone - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "namedcheckzone.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "namedcheckzone.mak" CFG="namedcheckzone - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "namedcheckzone - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "namedcheckzone - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "namedcheckzone - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__STDC__" /FR /YX /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /machine:I386 /out:"../../../Build/Release/named-checkzone.exe"
|
||||
|
||||
!ELSEIF "$(CFG)" == "namedcheckzone - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /D "_DEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
|
||||
# SUBTRACT CPP /X /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../../Build/Debug/named-checkzone.exe" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "namedcheckzone - Win32 Release"
|
||||
# Name "namedcheckzone - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE="..\check-tool.c"
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE="..\named-checkzone.c"
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE="..\check-tool.h"
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "namedcheckzone"=".\namedcheckzone.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -0,0 +1,216 @@
|
||||
# Microsoft Developer Studio Generated NMAKE File, Based on namedcheckzone.dsp
|
||||
!IF "$(CFG)" == ""
|
||||
CFG=namedcheckzone - Win32 Debug
|
||||
!MESSAGE No configuration specified. Defaulting to namedcheckzone - Win32 Debug.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" != "namedcheckzone - Win32 Release" && "$(CFG)" != "namedcheckzone - Win32 Debug"
|
||||
!MESSAGE Invalid configuration "$(CFG)" specified.
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "namedcheckzone.mak" CFG="namedcheckzone - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "namedcheckzone - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "namedcheckzone - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
!ERROR An invalid configuration is specified.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(OS)" == "Windows_NT"
|
||||
NULL=
|
||||
!ELSE
|
||||
NULL=nul
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" == "namedcheckzone - Win32 Release"
|
||||
|
||||
OUTDIR=.\Release
|
||||
INTDIR=.\Release
|
||||
# Begin Custom Macros
|
||||
OutDir=.\Release
|
||||
# End Custom Macros
|
||||
|
||||
ALL : "..\..\..\Build\Release\named-checkzone.exe" "$(OUTDIR)\namedcheckzone.bsc"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\check-tool.obj"
|
||||
-@erase "$(INTDIR)\check-tool.sbr"
|
||||
-@erase "$(INTDIR)\named-checkzone.obj"
|
||||
-@erase "$(INTDIR)\named-checkzone.sbr"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "$(OUTDIR)\namedcheckzone.bsc"
|
||||
-@erase "..\..\..\Build\Release\named-checkzone.exe"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__STDC__" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\namedcheckzone.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\namedcheckzone.bsc"
|
||||
BSC32_SBRS= \
|
||||
"$(INTDIR)\check-tool.sbr" \
|
||||
"$(INTDIR)\named-checkzone.sbr"
|
||||
|
||||
"$(OUTDIR)\namedcheckzone.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
|
||||
$(BSC32) @<<
|
||||
$(BSC32_FLAGS) $(BSC32_SBRS)
|
||||
<<
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\named-checkzone.pdb" /machine:I386 /out:"../../../Build/Release/named-checkzone.exe"
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\check-tool.obj" \
|
||||
"$(INTDIR)\named-checkzone.obj"
|
||||
|
||||
"..\..\..\Build\Release\named-checkzone.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ELSEIF "$(CFG)" == "namedcheckzone - Win32 Debug"
|
||||
|
||||
OUTDIR=.\Debug
|
||||
INTDIR=.\Debug
|
||||
# Begin Custom Macros
|
||||
OutDir=.\Debug
|
||||
# End Custom Macros
|
||||
|
||||
ALL : "..\..\..\Build\Debug\named-checkzone.exe" "$(OUTDIR)\namedcheckzone.bsc"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\check-tool.obj"
|
||||
-@erase "$(INTDIR)\check-tool.sbr"
|
||||
-@erase "$(INTDIR)\named-checkzone.obj"
|
||||
-@erase "$(INTDIR)\named-checkzone.sbr"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "$(INTDIR)\vc60.pdb"
|
||||
-@erase "$(OUTDIR)\named-checkzone.pdb"
|
||||
-@erase "$(OUTDIR)\namedcheckzone.bsc"
|
||||
-@erase "..\..\..\Build\Debug\named-checkzone.exe"
|
||||
-@erase "..\..\..\Build\Debug\named-checkzone.ilk"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /D "_DEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\namedcheckzone.bsc"
|
||||
BSC32_SBRS= \
|
||||
"$(INTDIR)\check-tool.sbr" \
|
||||
"$(INTDIR)\named-checkzone.sbr"
|
||||
|
||||
"$(OUTDIR)\namedcheckzone.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
|
||||
$(BSC32) @<<
|
||||
$(BSC32_FLAGS) $(BSC32_SBRS)
|
||||
<<
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\named-checkzone.pdb" /debug /machine:I386 /out:"../../../Build/Debug/named-checkzone.exe" /pdbtype:sept
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\check-tool.obj" \
|
||||
"$(INTDIR)\named-checkzone.obj"
|
||||
|
||||
"..\..\..\Build\Debug\named-checkzone.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(NO_EXTERNAL_DEPS)" != "1"
|
||||
!IF EXISTS("namedcheckzone.dep")
|
||||
!INCLUDE "namedcheckzone.dep"
|
||||
!ELSE
|
||||
!MESSAGE Warning: cannot find "namedcheckzone.dep"
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(CFG)" == "namedcheckzone - Win32 Release" || "$(CFG)" == "namedcheckzone - Win32 Debug"
|
||||
SOURCE="..\check-tool.c"
|
||||
|
||||
"$(INTDIR)\check-tool.obj" "$(INTDIR)\check-tool.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
SOURCE="..\named-checkzone.c"
|
||||
|
||||
"$(INTDIR)\named-checkzone.obj" "$(INTDIR)\named-checkzone.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
+12
-3
@@ -13,7 +13,7 @@
|
||||
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.21 2001/02/28 11:33:23 marka Exp $
|
||||
# $Id: Makefile.in,v 1.25 2001/06/08 17:18:06 gson Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
@@ -50,6 +50,10 @@ SRCS = dig.c dighost.c host.c nslookup.c
|
||||
|
||||
MANPAGES = dig.1 host.1
|
||||
|
||||
HTMLPAGES = dig.html host.html
|
||||
|
||||
MANOBJS = ${MANPAGES} ${HTMLPAGES}
|
||||
|
||||
@BIND9_MAKE_RULES@
|
||||
|
||||
dig: dig.@O@ dighost.@O@ ${UOBJS} ${DEPLIBS}
|
||||
@@ -61,7 +65,12 @@ host: host.@O@ dighost.@O@ ${UOBJS} ${DEPLIBS}
|
||||
nslookup: nslookup.@O@ dighost.@O@ ${UOBJS} ${DEPLIBS}
|
||||
${LIBTOOL} ${PURIFY} ${CC} ${CFLAGS} -o $@ nslookup.@O@ dighost.@O@ ${UOBJS} ${LIBS}
|
||||
|
||||
clean distclean::
|
||||
doc man:: ${MANOBJS}
|
||||
|
||||
docclean manclean maintainer-clean::
|
||||
rm -f ${MANOBJS}
|
||||
|
||||
clean distclean maintainer-clean::
|
||||
rm -f ${TARGETS}
|
||||
|
||||
installdirs:
|
||||
@@ -72,4 +81,4 @@ install:: dig host nslookup installdirs
|
||||
${LIBTOOL} ${INSTALL_PROGRAM} dig ${DESTDIR}${bindir}
|
||||
${LIBTOOL} ${INSTALL_PROGRAM} host ${DESTDIR}${bindir}
|
||||
${LIBTOOL} ${INSTALL_PROGRAM} nslookup ${DESTDIR}${bindir}
|
||||
for m in ${MANPAGES}; do ${INSTALL_DATA} $$m ${DESTDIR}${mandir}/man1; done
|
||||
for m in ${MANPAGES}; do ${INSTALL_DATA} ${srcdir}/$$m ${DESTDIR}${mandir}/man1; done
|
||||
|
||||
+310
-426
@@ -1,3 +1,4 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -12,455 +13,338 @@
|
||||
.\" 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: dig.1,v 1.8 2001/01/18 05:12:38 gson Exp $
|
||||
|
||||
.Dd Jun 30, 2000
|
||||
.Dt DIG 1
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm dig
|
||||
.Nd DNS lookup utility
|
||||
.Sh SYNOPSIS
|
||||
.Nm dig
|
||||
.Op @server
|
||||
.Op Fl b Ar address
|
||||
.Op Fl c Ar class
|
||||
.Op Fl f Ar filename
|
||||
.Op Fl k Ar filename
|
||||
.Op Fl p Ar port#
|
||||
.Op Fl t Ar type
|
||||
.Op Fl x Ar addr
|
||||
.Op Fl y Ar name:key
|
||||
.Op name
|
||||
.Op type
|
||||
.Op class
|
||||
.Op queryopt ...
|
||||
.Nm dig
|
||||
.Fl h
|
||||
.Nm dig
|
||||
.Op global-queryopt ...
|
||||
.Op query1
|
||||
.Op query2 ...
|
||||
.Sh DESCRIPTION
|
||||
.Pp
|
||||
.Nm dig
|
||||
(domain information groper) is a flexible tool for interrogating DNS
|
||||
name servers.
|
||||
It performs DNS lookups and displays the answers that are returned from
|
||||
the name server(s) that were queried.
|
||||
Most DNS administrators use
|
||||
.Nm dig
|
||||
to troubleshoot DNS problems because of its flexibility, ease of use and
|
||||
clarity of output.
|
||||
Other lookup tools tend to have less functionality than
|
||||
.Nm dig .
|
||||
.Pp
|
||||
Although
|
||||
.Nm dig
|
||||
is normally used with command-line arguments, it also has a batch
|
||||
mode of operation for reading lookup requests from a file.
|
||||
A brief summary of its command-line arguments and options is printed
|
||||
when the
|
||||
.Fl h
|
||||
option is given.
|
||||
Unlike earlier versions, the BIND9 implementation of
|
||||
.Nm dig
|
||||
allows multiple lookups to be issued from the command line.
|
||||
.Pp
|
||||
.\"
|
||||
.TH "DIG" "1" "Jun 30, 2000" "BIND9" ""
|
||||
.SH NAME
|
||||
dig \- DNS lookup utility
|
||||
.SH SYNOPSIS
|
||||
.sp
|
||||
\fBdig\fR [ \fB@server\fR ] [ \fB-b \fIaddress\fB\fR ] [ \fB-c \fIclass\fB\fR ] [ \fB-f \fIfilename\fB\fR ] [ \fB-k \fIfilename\fB\fR ] [ \fB-p \fIport#\fB\fR ] [ \fB-t \fItype\fB\fR ] [ \fB-x \fIaddr\fB\fR ] [ \fB-y \fIname:key\fB\fR ] [ \fBname\fR ] [ \fBtype\fR ] [ \fBclass\fR ] [ \fBqueryopt\fR\fI...\fR ]
|
||||
.sp
|
||||
\fBdig\fR [ \fB-h\fR ]
|
||||
.sp
|
||||
\fBdig\fR [ \fBglobal-queryopt\fR\fI...\fR ] [ \fBquery\fR\fI...\fR ]
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
\fBdig\fR (domain information groper) is a flexible tool
|
||||
for interrogating DNS name servers. It performs DNS lookups and
|
||||
displays the answers that are returned from the name server(s) that
|
||||
were queried. Most DNS administrators use \fBdig\fR to
|
||||
troubleshoot DNS problems because of its flexibility, ease of use and
|
||||
clarity of output. Other lookup tools tend to have less functionality
|
||||
than \fBdig\fR.
|
||||
.PP
|
||||
Although \fBdig\fR is normally used with command-line
|
||||
arguments, it also has a batch mode of operation for reading lookup
|
||||
requests from a file. A brief summary of its command-line arguments
|
||||
and options is printed when the \fB-h\fR option is given.
|
||||
Unlike earlier versions, the BIND9 implementation of
|
||||
\fBdig\fR allows multiple lookups to be issued from the
|
||||
command line.
|
||||
.PP
|
||||
Unless it is told to query a specific name server,
|
||||
.Nm dig
|
||||
will try each of the servers listed in
|
||||
.Pa /etc/resolv.conf .
|
||||
.Pp
|
||||
When no command line arguments or options are given,
|
||||
will perform an NS query for "." (the root).
|
||||
.Sh SIMPLE USAGE
|
||||
.Pp
|
||||
A typical invocation of
|
||||
.Nm dig
|
||||
looks like:
|
||||
.Bd -ragged | -offset indent
|
||||
.Ic dig Ar @server name type
|
||||
.Ed
|
||||
.Pp
|
||||
\fBdig\fR 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).
|
||||
.SH "SIMPLE USAGE"
|
||||
.PP
|
||||
A typical invocation of \fBdig\fR looks like:
|
||||
.sp
|
||||
.nf
|
||||
dig @server name type
|
||||
.sp
|
||||
.fi
|
||||
where:
|
||||
.Bl -tag -width server
|
||||
.It Ar server
|
||||
is the name or IP address of the name server to query.
|
||||
An IPv4 address can be provided in dotted-decimal notation.
|
||||
When the supplied
|
||||
.Ar server
|
||||
argument is a hostname,
|
||||
.Nm dig
|
||||
resolves that name before querying that name server.
|
||||
If no
|
||||
.Ar server
|
||||
argument is provided,
|
||||
.Nm dig
|
||||
consults
|
||||
.Pa /etc/resolv.conf
|
||||
and queries the name servers listed there.
|
||||
The reply from the name server that responds is displayed.
|
||||
.It Ar name
|
||||
.TP
|
||||
\fBserver\fR
|
||||
is the name or IP address of the name server to query. This can be an IPv4
|
||||
address in dotted-decimal notation or an IPv6
|
||||
address in colon-delimited notation. When the supplied
|
||||
\fIserver\fR argument is a hostname,
|
||||
\fBdig\fR resolves that name before querying that name
|
||||
server. If no \fIserver\fR argument is provided,
|
||||
\fBdig\fR consults \fI/etc/resolv.conf\fR
|
||||
and queries the name servers listed there. The reply from the name
|
||||
server that responds is displayed.
|
||||
.TP
|
||||
\fBname\fR
|
||||
is the name of the resource record that is to be looked up.
|
||||
.It Ar type
|
||||
indicates what type of query is required - ANY, A, MX, SIG, etc.
|
||||
.Ar type
|
||||
can be any valid query type.
|
||||
If no
|
||||
.Ar type
|
||||
argument is supplied,
|
||||
.Nm dig
|
||||
will perform a lookup for an A record.
|
||||
.El
|
||||
.Pp
|
||||
.Sh OPTIONS
|
||||
The
|
||||
.Fl b
|
||||
option sets the source IP address of the query to
|
||||
.Ar address .
|
||||
This must be a valid
|
||||
address on one of the host's network interfaces.
|
||||
.Pp
|
||||
.TP
|
||||
\fBtype\fR
|
||||
indicates what type of query is required \(em
|
||||
ANY, A, MX, SIG, etc.
|
||||
\fItype\fR can be any valid query type. If no
|
||||
\fItype\fR argument is supplied,
|
||||
\fBdig\fR will perform a lookup for an A record.
|
||||
.SH "OPTIONS"
|
||||
.PP
|
||||
The \fB-b\fR option sets the source IP address of the query
|
||||
to \fIaddress\fR. This must be a valid address on
|
||||
one of the host's network interfaces.
|
||||
.PP
|
||||
The default query class (IN for internet) is overridden by the
|
||||
.Fl c
|
||||
option.
|
||||
.Ar class
|
||||
is any valid class, such as HS for Hesiod records or CH for
|
||||
CHAOSNET records.
|
||||
.Pp
|
||||
The
|
||||
.Fl f
|
||||
option makes
|
||||
.Nm dig
|
||||
operate in batch mode by reading a list of lookup requests to process
|
||||
from the file
|
||||
.Ar filename .
|
||||
The file contains a number of queries, one per line.
|
||||
Each entry in the file should be organised in the same way they would be
|
||||
presented as queries to
|
||||
.Nm dig
|
||||
using the command-line interface.
|
||||
.Pp
|
||||
\fB-c\fR option. \fIclass\fR is any valid
|
||||
class, such as HS for Hesiod records or CH for CHAOSNET records.
|
||||
.PP
|
||||
The \fB-f\fR option makes \fBdig \fR operate
|
||||
in batch mode by reading a list of lookup requests to process from the
|
||||
file \fIfilename\fR. The file contains a number of
|
||||
queries, one per line. Each entry in the file should be organised in
|
||||
the same way they would be presented as queries to
|
||||
\fBdig\fR using the command-line interface.
|
||||
.PP
|
||||
If a non-standard port number is to be queried, the
|
||||
.Fl p
|
||||
option is used.
|
||||
.Ar port#
|
||||
is the port number that
|
||||
.Nm dig
|
||||
will send its queries instead of the standard DNS port number 53.
|
||||
This option would be used to test a name server that has been configured
|
||||
to listen for queries on a non-standard port number.
|
||||
.Pp
|
||||
The
|
||||
.Fl t
|
||||
option sets the query type to
|
||||
.Ar type .
|
||||
It can be any valid query type which is supported in BIND9.
|
||||
The default query type "A", unless the
|
||||
.Fl x
|
||||
option is supplied to indicate a reverse lookup.
|
||||
A zone transfer can be requested by specifying a type of AXFR.
|
||||
When an incremental zone transfer (IXFR) is required,
|
||||
.Ar type
|
||||
is set to
|
||||
.Dv ixfr=N .
|
||||
\fB-p\fR option is used. \fIport#\fR is
|
||||
the port number that \fBdig\fR will send its queries
|
||||
instead of the standard DNS port number 53. This option would be used
|
||||
to test a name server that has been configured to listen for queries
|
||||
on a non-standard port number.
|
||||
.PP
|
||||
The \fB-t\fR option sets the query type to
|
||||
\fItype\fR. It can be any valid query type which is
|
||||
supported in BIND9. The default query type "A", unless the
|
||||
\fB-x\fR option is supplied to indicate a reverse lookup.
|
||||
A zone transfer can be requested by specifying a type of AXFR. When
|
||||
an incremental zone transfer (IXFR) is required,
|
||||
\fItype\fR is set to ixfr=N.
|
||||
The incremental zone transfer will contain the changes made to the zone
|
||||
since the serial number in the zone's SOA record was
|
||||
.Ar N .
|
||||
.Pp
|
||||
Reverse lookups - mapping addresses to names - are simplified
|
||||
by the
|
||||
.Fl x
|
||||
option.
|
||||
.Ar addr
|
||||
is an IPv4 address in dotted-decimal notation, or a colon-delimited
|
||||
IPv6 address.
|
||||
\fIN\fR.
|
||||
.PP
|
||||
Reverse lookups - mapping addresses to names - are simplified by the
|
||||
\fB-x\fR option. \fIaddr\fR is an IPv4
|
||||
address in dotted-decimal notation, or a colon-delimited IPv6 address.
|
||||
When this option is used, there is no need to provide the
|
||||
.Ar name ,
|
||||
.Ar class
|
||||
and
|
||||
.Ar type
|
||||
arguments.
|
||||
.Nm dig
|
||||
\fIname\fR, \fIclass\fR and
|
||||
\fItype\fR arguments. \fBdig\fR
|
||||
automatically performs a lookup for a name like
|
||||
.Dv 11.12.13.10.in-addr.arpa
|
||||
and sets the query type and class to PTR and IN respectively.
|
||||
By default, IPv6 addresses are looked up using the
|
||||
IP6.ARPA domain and binary labels as defined in RFC2874.
|
||||
To use the older RFC1886 method using the IP6.INT domain and "nibble" labels,
|
||||
specify the
|
||||
.Fl n
|
||||
(nibble) option.
|
||||
.Pp
|
||||
To sign the DNS queries sent by
|
||||
.Nm dig
|
||||
and their responses using transaction signatures (TSIG),
|
||||
specify a TSIG key file using the
|
||||
.Fl k
|
||||
option. You can also specify the TSIG key itself on the command
|
||||
line using the
|
||||
.Fl y
|
||||
option;
|
||||
.Ar name
|
||||
is the name of the TSIG key and
|
||||
.Ar key
|
||||
is the actual key. The key is a base-64 encoded string,
|
||||
typically generated by
|
||||
.Xr dnssec-keygen 8 .
|
||||
Caution should be taken when using the
|
||||
.Fl y
|
||||
option on multi-user systems as the key can be visible
|
||||
in the output from
|
||||
.Xr ps 1
|
||||
or in the shell's history file.
|
||||
When using TSIG authentication with
|
||||
.Nm dig ,
|
||||
the name server that is queried needs to know the key and algorithm
|
||||
that is being used.
|
||||
In BIND, this is done by providing appropriate
|
||||
.Dv key
|
||||
and
|
||||
.Dv server
|
||||
statements in
|
||||
.Pa named.conf .
|
||||
.Sh QUERY OPTIONS
|
||||
.Nm dig
|
||||
provides a number of query options which affect the way in which
|
||||
lookups are made and the results displayed.
|
||||
Some of these set or reset flag bits in the query header,
|
||||
some determine which sections of the answer get printed,
|
||||
and others determine the timeout and retry strategies.
|
||||
.Pp
|
||||
Each query option is identified by a keyword preceded by a
|
||||
plus sign: \*q+\*q.
|
||||
Some keywords set or reset an option.
|
||||
These may be preceded by the string \*qno\*q to negate the meaning of
|
||||
that keyword.
|
||||
Other keywords assign values to options like the timeout interval.
|
||||
They have the form
|
||||
.Dv +keyword=value .
|
||||
11.12.13.10.in-addr.arpa and sets the query type and
|
||||
class to PTR and IN respectively. By default, IPv6 addresses are
|
||||
looked up using the IP6.ARPA domain and binary labels as defined in
|
||||
RFC2874. To use the older RFC1886 method using the IP6.INT domain and
|
||||
"nibble" labels, specify the \fB-n\fR (nibble) option.
|
||||
.PP
|
||||
To sign the DNS queries sent by \fBdig\fR and their
|
||||
responses using transaction signatures (TSIG), specify a TSIG key file
|
||||
using the \fB-k\fR option. You can also specify the TSIG
|
||||
key itself on the command line using the \fB-y\fR option;
|
||||
\fIname\fR is the name of the TSIG key and
|
||||
\fIkey\fR is the actual key. The key is a base-64
|
||||
encoded string, typically generated by \fBdnssec-keygen\fR(8).
|
||||
Caution should be taken when using the \fB-y\fR option on
|
||||
multi-user systems as the key can be visible in the output from
|
||||
\fBps\fR(1) or in the shell's history file. When
|
||||
using TSIG authentication with \fBdig\fR, the name
|
||||
server that is queried needs to know the key and algorithm that is
|
||||
being used. In BIND, this is done by providing appropriate
|
||||
\fBkey\fR and \fBserver\fR statements in
|
||||
\fInamed.conf\fR.
|
||||
.SH "QUERY OPTIONS"
|
||||
.PP
|
||||
\fBdig\fR provides a number of query options which affect
|
||||
the way in which lookups are made and the results displayed. Some of
|
||||
these set or reset flag bits in the query header, some determine which
|
||||
sections of the answer get printed, and others determine the timeout
|
||||
and retry strategies.
|
||||
.PP
|
||||
Each query option is identified by a keyword preceded by a plus sign
|
||||
(+). Some keywords set or reset an option. These may be preceded
|
||||
by the string no to negate the meaning of that keyword. Other
|
||||
keywords assign values to options like the timeout interval. They
|
||||
have the form \fB+keyword=value\fR.
|
||||
The query options are:
|
||||
.Bl -tag -width +[no]additional
|
||||
.It +[no]tcp
|
||||
Use [do not use] TCP when querying name servers.
|
||||
The default behaviour is to use UDP unless an AXFR or IXFR query is
|
||||
requested, in which case a TCP connection is used.
|
||||
.It +[no]vc
|
||||
Use [do not use] TCP when querying name servers.
|
||||
This alternate syntax to
|
||||
.Ar +[no]tcp
|
||||
is provided for backwards compatibility.
|
||||
The "vc" stands for "virtual circuit".
|
||||
.It +[no]ignore
|
||||
Ignore truncation in UDP responses instead of
|
||||
retrying with TCP. By default, TCP retries are
|
||||
performed.
|
||||
.It +domain=somename
|
||||
.TP
|
||||
\fB+[no]tcp\fR
|
||||
Use [do not use] TCP when querying name servers. The default
|
||||
behaviour is to use UDP unless an AXFR or IXFR query is requested, in
|
||||
which case a TCP connection is used.
|
||||
.TP
|
||||
\fB+[no]vc\fR
|
||||
Use [do not use] TCP when querying name servers. This alternate
|
||||
syntax to \fI+[no]tcp\fR is provided for backwards
|
||||
compatibility. The "vc" stands for "virtual circuit".
|
||||
.TP
|
||||
\fB+[no]ignore\fR
|
||||
Ignore truncation in UDP responses instead of retrying with TCP. By
|
||||
default, TCP retries are performed.
|
||||
.TP
|
||||
\fB+domain=somename\fR
|
||||
Set the search list to contain the single domain
|
||||
.Ar somename ,
|
||||
as if specified in a
|
||||
.Dv domain
|
||||
directive in
|
||||
.Pa /etc/resolv.conf ,
|
||||
and enable search list processing as if the
|
||||
.Ar +search
|
||||
option were given.
|
||||
.It +[no]search
|
||||
Use [do not use] the search list defined by the
|
||||
searchlist
|
||||
or
|
||||
domain
|
||||
directive in
|
||||
.Pa resolv.conf
|
||||
(if any).
|
||||
\fIsomename\fR, as if specified in a
|
||||
\fBdomain\fR directive in
|
||||
\fI/etc/resolv.conf\fR, and enable search list
|
||||
processing as if the \fI+search\fR option were given.
|
||||
.TP
|
||||
\fB+[no]search\fR
|
||||
Use [do not use] the search list defined by the searchlist or domain
|
||||
directive in \fIresolv.conf\fR (if any).
|
||||
The search list is not used by default.
|
||||
.It +[no]defname
|
||||
Deprecated, treated as a synonym for
|
||||
.Ar +[no]search
|
||||
.It +[no]aaonly
|
||||
This option does nothing.
|
||||
It is provided for compatibilty with old versions of
|
||||
.Nm dig
|
||||
where it set an unimplemented resolver flag.
|
||||
.It +[no]adflag
|
||||
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.
|
||||
.It +[no]cdflag
|
||||
Set [do not set] the CD (checking disabled) bit in the query.
|
||||
This requests the server to not perform DNSSEC validation
|
||||
of responses.
|
||||
.It +[no]recursive
|
||||
.TP
|
||||
\fB+[no]defname\fR
|
||||
Deprecated, treated as a synonym for \fI+[no]search\fR
|
||||
.TP
|
||||
\fB+[no]aaonly\fR
|
||||
This option does nothing. It is provided for compatibilty with old
|
||||
versions of \fBdig\fR where it set an unimplemented
|
||||
resolver flag.
|
||||
.TP
|
||||
\fB+[no]adflag\fR
|
||||
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.
|
||||
.TP
|
||||
\fB+[no]cdflag\fR
|
||||
Set [do not set] the CD (checking disabled) bit in the query. This
|
||||
requests the server to not perform DNSSEC validation of responses.
|
||||
.TP
|
||||
\fB+[no]recursive\fR
|
||||
Toggle the setting of the RD (recursion desired) bit in the query.
|
||||
This bit is set by default, which means
|
||||
.Nm dig .
|
||||
normally sends recursive queries.
|
||||
Recursion is automatically disabled when the
|
||||
.Ar +nssearch
|
||||
or
|
||||
.Ar +trace
|
||||
query options are used.
|
||||
.It +[no]nssearch
|
||||
When this option is set,
|
||||
.Nm dig
|
||||
attempts to find the authoritative name servers for the zone containing
|
||||
the name being looked up and
|
||||
display the SOA record that each name server has for the zone.
|
||||
.It +[no]trace
|
||||
This bit is set by default, which means \fBdig\fR
|
||||
normally sends recursive queries. Recursion is automatically disabled
|
||||
when the \fI+nssearch\fR or
|
||||
\fI+trace\fR query options are used.
|
||||
.TP
|
||||
\fB+[no]nssearch\fR
|
||||
When this option is set, \fBdig\fR attempts to find the
|
||||
authoritative name servers for the zone containing the name being
|
||||
looked up and display the SOA record that each name server has for the
|
||||
zone.
|
||||
.TP
|
||||
\fB+[no]trace\fR
|
||||
Toggle tracing of the delegation path from the root name servers for
|
||||
the name being looked up.
|
||||
Tracing is disabled by default.
|
||||
When tracing is enabled,
|
||||
.Nm dig
|
||||
makes iterative queries to resolve the name being looked up.
|
||||
It will follow referrals from the root servers, showing
|
||||
the answer from each server that was used to resolve the lookup.
|
||||
.It +[no]cmd
|
||||
the name being looked up. Tracing is disabled by default. When
|
||||
tracing is enabled, \fBdig\fR makes iterative queries to
|
||||
resolve the name being looked up. It will follow referrals from the
|
||||
root servers, showing the answer from each server that was used to
|
||||
resolve the lookup.
|
||||
.TP
|
||||
\fB+[no]cmd\fR
|
||||
toggles the printing of the initial comment in the output identifying
|
||||
the version of
|
||||
.Nm dig
|
||||
and the query options that have been applied.
|
||||
This comment is printed by default.
|
||||
.It +[no]short
|
||||
Provide a terse answer.
|
||||
The default is to print the answer in a verbose form.
|
||||
.It +[no]identify
|
||||
the version of \fBdig\fR and the query options that have
|
||||
been applied. This comment is printed by default.
|
||||
.TP
|
||||
\fB+[no]short\fR
|
||||
Provide a terse answer. The default is to print the answer in a
|
||||
verbose form.
|
||||
.TP
|
||||
\fB+[no]identify\fR
|
||||
Show [or do not show] the IP address and port number that supplied the
|
||||
answer when the
|
||||
.Ar +short
|
||||
option is enabled.
|
||||
If short form answers are requested, the default is not to show
|
||||
the source address and port number of the server that provided the
|
||||
answer.
|
||||
.It +[no]comments
|
||||
Toggle the display of comment lines in the output.
|
||||
The default is to print comments.
|
||||
.It +[no]stats
|
||||
This query option toggles the printing of statistics: when the query was
|
||||
made, the size of the reply and so on.
|
||||
The default behaviour is to print the query statistics.
|
||||
.It +[no]qr
|
||||
answer when the \fI+short\fR option is enabled. If
|
||||
short form answers are requested, the default is not to show the
|
||||
source address and port number of the server that provided the answer.
|
||||
.TP
|
||||
\fB+[no]comments\fR
|
||||
Toggle the display of comment lines in the output. The default is to
|
||||
print comments.
|
||||
.TP
|
||||
\fB+[no]stats\fR
|
||||
This query option toggles the printing of statistics: when the query
|
||||
was made, the size of the reply and so on. The default behaviour is
|
||||
to print the query statistics.
|
||||
.TP
|
||||
\fB+[no]qr\fR
|
||||
Print [do not print] the query as it is sent.
|
||||
before sending the query. By default, the query is not printed.
|
||||
.It +[no]question
|
||||
By default, the query is not printed.
|
||||
.TP
|
||||
\fB+[no]question\fR
|
||||
Print [do not print] the question section of a query when an answer is
|
||||
returned.
|
||||
The default is to print the question section as a comment.
|
||||
.It +[no]answer
|
||||
Display [do not display] the answer section of a reply.
|
||||
The default is to display it.
|
||||
.It +[no]authority
|
||||
Display [do not display] the authority section of a reply.
|
||||
The default is to display it.
|
||||
.It +[no]additional
|
||||
returned. The default is to print the question section as a comment.
|
||||
.TP
|
||||
\fB+[no]answer\fR
|
||||
Display [do not display] the answer section of a reply. The default
|
||||
is to display it.
|
||||
.TP
|
||||
\fB+[no]authority\fR
|
||||
Display [do not display] the authority section of a reply. The
|
||||
default is to display it.
|
||||
.TP
|
||||
\fB+[no]additional\fR
|
||||
Display [do not display] the additional section of a reply.
|
||||
The default is to display it.
|
||||
.It +[no]all
|
||||
Set or clear all display flags
|
||||
.It +time=T
|
||||
.TP
|
||||
\fB+[no]all\fR
|
||||
Set or clear all display flags.
|
||||
.TP
|
||||
\fB+time=T\fR
|
||||
Sets the timeout for a query to
|
||||
.Dv T
|
||||
seconds.
|
||||
The default time out is 5 seconds.
|
||||
An attempt to set
|
||||
.Dv T
|
||||
to less than 1 will result in a query timeout of 1 second being applied.
|
||||
.It +tries=A
|
||||
\fIT\fR seconds. The default time out is 5 seconds.
|
||||
An attempt to set \fIT\fR to less than 1 will result
|
||||
in a query timeout of 1 second being applied.
|
||||
.TP
|
||||
\fB+tries=A\fR
|
||||
Sets the number of times to retry UDP queries to server to
|
||||
.Dv T
|
||||
instead of the default, 3.
|
||||
If
|
||||
.Dv T
|
||||
is less than or equal to zero, the number of retries is silently rounded
|
||||
up to 1.
|
||||
.It +ndots=D
|
||||
\fIT\fR instead of the default, 3. If
|
||||
\fIT\fR is less than or equal to zero, the number of
|
||||
retries is silently rounded up to 1.
|
||||
.TP
|
||||
\fB+ndots=D\fR
|
||||
Set the number of dots that have to appear in
|
||||
.Ar name
|
||||
to
|
||||
.Dv D
|
||||
for it to be considered absolute. The default value is that
|
||||
defined using the ndots statement in
|
||||
.Pa /etc/resolv.conf ,
|
||||
or 1 if no ndots statement is present. Names with fewer
|
||||
dots are interpreted as relative names and will be searched
|
||||
for in the domains listed in the
|
||||
.Dv search
|
||||
or
|
||||
.Dv domain
|
||||
directive in
|
||||
.Pa /etc/resolv.conf .
|
||||
.It +bufsize=B
|
||||
\fIname\fR to \fID\fR for it to be
|
||||
considered absolute. The default value is that defined using the
|
||||
ndots statement in \fI/etc/resolv.conf\fR, or 1 if no
|
||||
ndots statement is present. Names with fewer dots are interpreted as
|
||||
relative names and will be searched for in the domains listed in the
|
||||
\fBsearch\fR or \fBdomain\fR directive in
|
||||
\fI/etc/resolv.conf\fR.
|
||||
.TP
|
||||
\fB+bufsize=B\fR
|
||||
Set the UDP message buffer size advertised using EDNS0 to
|
||||
.Dv B
|
||||
bytes.
|
||||
The maximum and minimum sizes of this buffer are 65535 and 0
|
||||
respectively.
|
||||
Values outside this range are rounded up or down appropriately.
|
||||
.El
|
||||
.Sh MULTIPLE QUERIES
|
||||
.Pp
|
||||
The BIND 9
|
||||
implementation of
|
||||
.Nm dig
|
||||
supports specifying multiple queries on the command line
|
||||
(in addition to supporting the
|
||||
.Fl f
|
||||
batch file option).
|
||||
Each of those queries can be supplied with its own set of flags,
|
||||
options and query options.
|
||||
.Pp
|
||||
In this case,
|
||||
.Ar query1 ,
|
||||
.Ar query2
|
||||
and so on represent an individual query in the command-line syntax described
|
||||
above.
|
||||
Each consists of any of the standard options and flags, the name to be looked
|
||||
up, an optional query type and class and any query options that should
|
||||
be applied to that query.
|
||||
.Pp
|
||||
A global set of query options, which should be applied to all queries, can
|
||||
also be supplied.
|
||||
These global query options must precede the first tuple of name, class, type,
|
||||
options, flags, and query options supplied on the command line.
|
||||
Any global query options can be overridden by a
|
||||
query-specific set of query options.
|
||||
For example:
|
||||
.Bd -literal
|
||||
\fIB\fR bytes. The maximum and minimum sizes of this
|
||||
buffer are 65535 and 0 respectively. Values outside this range are
|
||||
rounded up or down appropriately.
|
||||
.TP
|
||||
\fB+[no]multiline\fR
|
||||
Print records like the SOA records in a verbose multi-line
|
||||
format with human-readable comments. The default is to print
|
||||
each record on a single line, to facilitate machine parsing
|
||||
of the \fBdig\fR output.
|
||||
.SH "MULTIPLE QUERIES"
|
||||
.PP
|
||||
The BIND 9 implementation of \fBdig \fR supports
|
||||
specifying multiple queries on the command line (in addition to
|
||||
supporting the \fB-f\fR batch file option). Each of those
|
||||
queries can be supplied with its own set of flags, options and query
|
||||
options.
|
||||
.PP
|
||||
In this case, each \fIquery\fR argument represent an
|
||||
individual query in the command-line syntax described above. Each
|
||||
consists of any of the standard options and flags, the name to be
|
||||
looked up, an optional query type and class and any query options that
|
||||
should be applied to that query.
|
||||
.PP
|
||||
A global set of query options, which should be applied to all queries,
|
||||
can also be supplied. These global query options must precede the
|
||||
first tuple of name, class, type, options, flags, and query options
|
||||
supplied on the command line. Any global query options (except
|
||||
the \fB+[no]cmd\fR option) can be
|
||||
overridden by a query-specific set of query options. For example:
|
||||
.sp
|
||||
.nf
|
||||
dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
.Ed
|
||||
.Pp
|
||||
shows how
|
||||
.Nm dig
|
||||
could be used from the command line to make three lookups: an ANY query
|
||||
for
|
||||
.Dv www.isc.org ,
|
||||
a reverse lookup of 127.0.0.1
|
||||
and
|
||||
a query for the NS records of
|
||||
.Dv isc.org .
|
||||
A global query option of
|
||||
.Ar +qr
|
||||
is applied, so that
|
||||
.Nm dig
|
||||
shows the initial query it made for each lookup.
|
||||
The final query has a local query option of
|
||||
.Ar +noqr
|
||||
which means that
|
||||
.Nm dig
|
||||
will not print the initial query when it looks up the
|
||||
NS records for
|
||||
.Dv isc.org .
|
||||
.Sh FILES
|
||||
.Pa /etc/resolv.conf
|
||||
.Sh SEE ALSO
|
||||
.Xr host 1 ,
|
||||
.Xr resolver 5 ,
|
||||
.Xr named 8 ,
|
||||
.Xr dnssec-keygen 8 ,
|
||||
.Xr RFC1035 .
|
||||
.Sh BUGS
|
||||
.sp
|
||||
.fi
|
||||
shows how \fBdig\fR could be used from the command line
|
||||
to make three lookups: an ANY query for www.isc.org, a
|
||||
reverse lookup of 127.0.0.1 and a query for the NS records of
|
||||
isc.org.
|
||||
A global query option of \fI+qr\fR is applied, so
|
||||
that \fBdig\fR shows the initial query it made for each
|
||||
lookup. The final query has a local query option of
|
||||
\fI+noqr\fR which means that \fBdig\fR
|
||||
will not print the initial query when it looks up the NS records for
|
||||
isc.org.
|
||||
.SH "FILES"
|
||||
.PP
|
||||
\fI/etc/resolv.conf\fR
|
||||
.SH "SEE ALSO"
|
||||
.PP
|
||||
\fBhost\fR(1),
|
||||
\fBnamed\fR(8),
|
||||
\fBdnssec-keygen\fR(8),
|
||||
\fIRFC1035\fR.
|
||||
.SH "BUGS"
|
||||
.PP
|
||||
There are probably too many query options.
|
||||
|
||||
+64
-102
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dig.c,v 1.145 2001/05/08 15:56:01 gson Exp $ */
|
||||
/* $Id: dig.c,v 1.157.2.3 2001/11/15 01:24:10 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
#include <stdlib.h>
|
||||
@@ -38,6 +38,7 @@
|
||||
#include <dns/rdataset.h>
|
||||
#include <dns/rdatatype.h>
|
||||
#include <dns/rdataclass.h>
|
||||
#include <dns/result.h>
|
||||
|
||||
#include <dig/dig.h>
|
||||
|
||||
@@ -59,8 +60,6 @@ extern in_port_t port;
|
||||
extern unsigned int timeout;
|
||||
extern isc_mem_t *mctx;
|
||||
extern dns_messageid_t id;
|
||||
extern char *rootspace[BUFSIZE];
|
||||
extern isc_buffer_t rootbuf;
|
||||
extern int sendcount;
|
||||
extern int ndots;
|
||||
extern int tries;
|
||||
@@ -78,19 +77,16 @@ extern isc_boolean_t free_now;
|
||||
dig_lookup_t *default_lookup = NULL;
|
||||
|
||||
extern isc_boolean_t debugging, memdebugging;
|
||||
char *batchname = NULL;
|
||||
FILE *batchfp = NULL;
|
||||
char *argv0;
|
||||
static char *batchname = NULL;
|
||||
static FILE *batchfp = NULL;
|
||||
static char *argv0;
|
||||
|
||||
char domainopt[DNS_NAME_MAXTEXT];
|
||||
static char domainopt[DNS_NAME_MAXTEXT];
|
||||
|
||||
isc_boolean_t short_form = ISC_FALSE, printcmd = ISC_TRUE,
|
||||
static isc_boolean_t short_form = ISC_FALSE, printcmd = ISC_TRUE,
|
||||
nibble = ISC_FALSE, plusquest = ISC_FALSE, pluscomm = ISC_FALSE,
|
||||
multiline = ISC_FALSE;
|
||||
|
||||
isc_uint16_t bufsize = 0;
|
||||
isc_boolean_t forcecomment = ISC_FALSE;
|
||||
|
||||
static const char *opcodetext[] = {
|
||||
"QUERY",
|
||||
"IQUERY",
|
||||
@@ -188,6 +184,7 @@ help(void) {
|
||||
" +[no]answer (Control display of answer)\n"
|
||||
" +[no]authority (Control display of authority)\n"
|
||||
" +[no]additional (Control display of additional)\n"
|
||||
" +[no]stats (Control display of statistics)\n"
|
||||
" +[no]short (Disable everything except short\n"
|
||||
" form of answer)\n"
|
||||
" +[no]all (Set or clear all display flags)\n"
|
||||
@@ -218,7 +215,7 @@ received(int bytes, isc_sockaddr_t *from, dig_query_t *query) {
|
||||
result = isc_time_now(&now);
|
||||
check_result(result, "isc_time_now");
|
||||
|
||||
if (query->lookup->stats) {
|
||||
if (query->lookup->stats && !short_form) {
|
||||
diff = isc_time_microdiff(&now, &query->time_sent);
|
||||
printf(";; Query time: %ld msec\n", (long int)diff/1000);
|
||||
printf(";; SERVER: %s(%s)\n", fromtext, query->servname);
|
||||
@@ -254,8 +251,7 @@ received(int bytes, isc_sockaddr_t *from, dig_query_t *query) {
|
||||
* XXX print_trying
|
||||
*/
|
||||
void
|
||||
trying(int frmsize, char *frm, dig_lookup_t *lookup) {
|
||||
UNUSED(frmsize);
|
||||
trying(char *frm, dig_lookup_t *lookup) {
|
||||
UNUSED(frm);
|
||||
UNUSED(lookup);
|
||||
}
|
||||
@@ -350,7 +346,6 @@ short_answer(dns_message_t *msg, dns_messagetextflag_t flags,
|
||||
*/
|
||||
isc_result_t
|
||||
printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
|
||||
isc_boolean_t did_flag = ISC_FALSE;
|
||||
isc_result_t result;
|
||||
dns_messagetextflag_t flags;
|
||||
isc_buffer_t *buf = NULL;
|
||||
@@ -363,7 +358,8 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
|
||||
style = &dns_master_style_debug;
|
||||
|
||||
if (query->lookup->cmdline[0] != 0) {
|
||||
fputs(query->lookup->cmdline, stdout);
|
||||
if (!short_form)
|
||||
fputs(query->lookup->cmdline, stdout);
|
||||
query->lookup->cmdline[0]=0;
|
||||
}
|
||||
debug("printmessage(%s %s %s)", headers ? "headers" : "noheaders",
|
||||
@@ -396,34 +392,21 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
|
||||
"id: %u\n",
|
||||
opcodetext[msg->opcode], rcodetext[msg->rcode],
|
||||
msg->id);
|
||||
printf(";; flags: ");
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_QR) != 0) {
|
||||
printf("qr");
|
||||
did_flag = ISC_TRUE;
|
||||
}
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_AA) != 0) {
|
||||
printf("%saa", did_flag ? " " : "");
|
||||
did_flag = ISC_TRUE; }
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_TC) != 0) {
|
||||
printf("%stc", did_flag ? " " : "");
|
||||
did_flag = ISC_TRUE;
|
||||
}
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_RD) != 0) {
|
||||
printf("%srd", did_flag ? " " : "");
|
||||
did_flag = ISC_TRUE;
|
||||
}
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_RA) != 0) {
|
||||
printf("%sra", did_flag ? " " : "");
|
||||
did_flag = ISC_TRUE;
|
||||
}
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_AD) != 0) {
|
||||
printf("%sad", did_flag ? " " : "");
|
||||
did_flag = ISC_TRUE;
|
||||
}
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_CD) != 0) {
|
||||
printf("%scd", did_flag ? " " : "");
|
||||
did_flag = ISC_TRUE;
|
||||
}
|
||||
printf(";; flags:");
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_QR) != 0)
|
||||
printf(" qr");
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_AA) != 0)
|
||||
printf(" aa");
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_TC) != 0)
|
||||
printf(" tc");
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_RD) != 0)
|
||||
printf(" rd");
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_RA) != 0)
|
||||
printf(" ra");
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_AD) != 0)
|
||||
printf(" ad");
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_CD) != 0)
|
||||
printf(" cd");
|
||||
|
||||
printf("; QUERY: %u, ANSWER: %u, "
|
||||
"AUTHORITY: %u, ADDITIONAL: %u\n",
|
||||
@@ -605,7 +588,7 @@ reorder_args(int argc, char *argv[]) {
|
||||
}
|
||||
|
||||
static isc_uint32_t
|
||||
parse_int(char *arg, const char *desc, isc_uint32_t max) {
|
||||
parse_uint(char *arg, const char *desc, isc_uint32_t max) {
|
||||
char *endp;
|
||||
isc_uint32_t tmp;
|
||||
|
||||
@@ -669,6 +652,8 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
lookup->section_answer = state;
|
||||
lookup->section_additional = state;
|
||||
lookup->comments = state;
|
||||
lookup->stats = state;
|
||||
printcmd = state;
|
||||
break;
|
||||
case 'n': /* answer */
|
||||
lookup->section_answer = state;
|
||||
@@ -690,10 +675,8 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
goto need_value;
|
||||
if (!state)
|
||||
goto invalid_option;
|
||||
lookup->udpsize = parse_int(value, "buffer size",
|
||||
COMMSIZE);
|
||||
if (lookup->udpsize <= 0)
|
||||
lookup->udpsize = 0;
|
||||
lookup->udpsize = (isc_uint16_t) parse_uint(value,
|
||||
"buffer size", COMMSIZE);
|
||||
if (lookup->udpsize > COMMSIZE)
|
||||
lookup->udpsize = COMMSIZE;
|
||||
break;
|
||||
@@ -761,9 +744,7 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
goto need_value;
|
||||
if (!state)
|
||||
goto invalid_option;
|
||||
ndots = parse_int(value, "ndots", MAXNDOTS);
|
||||
if (ndots < 0)
|
||||
ndots = 0;
|
||||
ndots = parse_uint(value, "ndots", MAXNDOTS);
|
||||
break;
|
||||
case 's': /* nssearch */
|
||||
lookup->ns_search_only = state;
|
||||
@@ -776,7 +757,7 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
lookup->section_additional = ISC_FALSE;
|
||||
lookup->section_authority = ISC_FALSE;
|
||||
lookup->section_question = ISC_FALSE;
|
||||
lookup->rdtype = dns_rdatatype_soa;
|
||||
lookup->rdtype = dns_rdatatype_ns;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
short_form = ISC_TRUE;
|
||||
}
|
||||
@@ -812,6 +793,7 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
if (state) {
|
||||
printcmd = ISC_FALSE;
|
||||
lookup->section_additional = ISC_FALSE;
|
||||
lookup->section_answer = ISC_TRUE;
|
||||
lookup->section_authority = ISC_FALSE;
|
||||
lookup->section_question = ISC_FALSE;
|
||||
lookup->comments = ISC_FALSE;
|
||||
@@ -836,8 +818,8 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
goto need_value;
|
||||
if (!state)
|
||||
goto invalid_option;
|
||||
timeout = parse_int(value, "timeout", MAXTIMEOUT);
|
||||
if (timeout <= 0)
|
||||
timeout = parse_uint(value, "timeout", MAXTIMEOUT);
|
||||
if (timeout == 0)
|
||||
timeout = 1;
|
||||
break;
|
||||
case 'r':
|
||||
@@ -860,9 +842,9 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
goto need_value;
|
||||
if (!state)
|
||||
goto invalid_option;
|
||||
lookup->retries = parse_int(value, "retries",
|
||||
lookup->retries = parse_uint(value, "retries",
|
||||
MAXTRIES);
|
||||
if (lookup->retries <= 0)
|
||||
if (lookup->retries == 0)
|
||||
lookup->retries = 1;
|
||||
break;
|
||||
default:
|
||||
@@ -874,32 +856,9 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
}
|
||||
break;
|
||||
case 'v':
|
||||
#ifdef DNS_OPT_NEWCODES_LIVE
|
||||
switch (cmd[1]) {
|
||||
default:
|
||||
case 'c': /* vc, and default */
|
||||
#endif /* DNS_OPT_NEWCODES_LIVE */
|
||||
if (!is_batchfile)
|
||||
lookup->tcp_mode = state;
|
||||
break;
|
||||
#ifdef DNS_OPT_NEWCODES_LIVE
|
||||
case 'i': /* view */
|
||||
if (value == NULL)
|
||||
goto need_value;
|
||||
if (!state)
|
||||
goto invalid_option;
|
||||
strncpy(lookup->viewname, value, MXNAME);
|
||||
break;
|
||||
}
|
||||
if (!is_batchfile)
|
||||
lookup->tcp_mode = state;
|
||||
break;
|
||||
case 'z': /* zone */
|
||||
if (value == NULL)
|
||||
goto need_value;
|
||||
if (!state)
|
||||
goto invalid_option;
|
||||
strncpy(lookup->zonename, value, MXNAME);
|
||||
break;
|
||||
#endif /* DNS_OPT_NEWCODES_LIVE */
|
||||
default:
|
||||
invalid_option:
|
||||
need_value:
|
||||
@@ -933,8 +892,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
if (strlen(option) > 1) {
|
||||
value_from_next = ISC_FALSE;
|
||||
value = &option[1];
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
value_from_next = ISC_TRUE;
|
||||
value = next;
|
||||
}
|
||||
@@ -977,8 +935,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
(*lookup)->rdclass = rdclass;
|
||||
(*lookup)->rdclassset = ISC_TRUE;
|
||||
}
|
||||
else
|
||||
} else
|
||||
fprintf(stderr, ";; Warning, ignoring "
|
||||
"invalid class %s\n",
|
||||
value);
|
||||
@@ -991,20 +948,23 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
keyfile[sizeof(keyfile)-1]=0;
|
||||
return (value_from_next);
|
||||
case 'p':
|
||||
port = parse_int(value, "port number", MAXPORT);
|
||||
port = (in_port_t) parse_uint(value, "port number", MAXPORT);
|
||||
return (value_from_next);
|
||||
case 't':
|
||||
*open_type_class = ISC_FALSE;
|
||||
if (strncasecmp(value, "ixfr=", 5) == 0) {
|
||||
rdtype = dns_rdatatype_ixfr;
|
||||
result = ISC_R_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
tr.base = value;
|
||||
tr.length = strlen(value);
|
||||
result = dns_rdatatype_fromtext(&rdtype,
|
||||
(isc_textregion_t *)&tr);
|
||||
if (result == ISC_R_SUCCESS &&
|
||||
rdtype == dns_rdatatype_ixfr)
|
||||
{
|
||||
result = DNS_R_UNKNOWN;
|
||||
}
|
||||
}
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
if ((*lookup)->rdtypeset) {
|
||||
@@ -1015,13 +975,11 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
(*lookup)->rdtype = dns_rdatatype_ixfr;
|
||||
(*lookup)->rdtypeset = ISC_TRUE;
|
||||
(*lookup)->ixfr_serial =
|
||||
parse_int(&value[5], "serial number",
|
||||
parse_uint(&value[5], "serial number",
|
||||
MAXSERIAL);
|
||||
(*lookup)->section_question = plusquest;
|
||||
(*lookup)->comments = pluscomm;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
(*lookup)->rdtype = rdtype;
|
||||
(*lookup)->rdtypeset = ISC_TRUE;
|
||||
if (rdtype == dns_rdatatype_axfr) {
|
||||
@@ -1219,13 +1177,20 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only,
|
||||
if (strncmp(rv[0], "ixfr=", 5) == 0) {
|
||||
rdtype = dns_rdatatype_ixfr;
|
||||
result = ISC_R_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
tr.base = rv[0];
|
||||
tr.length = strlen(rv[0]);
|
||||
result = dns_rdatatype_fromtext(&rdtype,
|
||||
(isc_textregion_t *)&tr);
|
||||
if (result == ISC_R_SUCCESS &&
|
||||
rdtype == dns_rdatatype_ixfr)
|
||||
{
|
||||
result = DNS_R_UNKNOWN;
|
||||
fprintf(stderr, ";; Warning, "
|
||||
"ixfr requires a "
|
||||
"serial number\n");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (result == ISC_R_SUCCESS)
|
||||
{
|
||||
@@ -1237,14 +1202,12 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only,
|
||||
lookup->rdtype = dns_rdatatype_ixfr;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
lookup->ixfr_serial =
|
||||
parse_int(&rv[0][5],
|
||||
parse_uint(&rv[0][5],
|
||||
"serial number",
|
||||
MAXSERIAL);
|
||||
lookup->section_question = plusquest;
|
||||
lookup->comments = pluscomm;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
lookup->rdtype = rdtype;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
if (rdtype == dns_rdatatype_axfr) {
|
||||
@@ -1438,4 +1401,3 @@ main(int argc, char **argv) {
|
||||
isc_app_finish();
|
||||
return (exitcode);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,533 @@
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
|
||||
<!--
|
||||
- Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
- THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
|
||||
- DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
- INTERNET SOFTWARE CONSORTIUM 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: dig.docbook,v 1.4.2.1 2001/11/08 00:15:23 gson Exp $ -->
|
||||
|
||||
<refentry>
|
||||
|
||||
<refentryinfo>
|
||||
<date>Jun 30, 2000</date>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>dig</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo>BIND9</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>dig</refname>
|
||||
<refpurpose>DNS lookup utility</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>dig</command>
|
||||
<arg choice=opt>@server</arg>
|
||||
<arg><option>-b <replaceable class="parameter">address</replaceable></option></arg>
|
||||
<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>-p <replaceable class="parameter">port#</replaceable></option></arg>
|
||||
<arg><option>-t <replaceable class="parameter">type</replaceable></option></arg>
|
||||
<arg><option>-x <replaceable class="parameter">addr</replaceable></option></arg>
|
||||
<arg><option>-y <replaceable class="parameter">name:key</replaceable></option></arg>
|
||||
<arg choice=opt>name</arg>
|
||||
<arg choice=opt>type</arg>
|
||||
<arg choice=opt>class</arg>
|
||||
<arg choice=opt rep=repeat>queryopt</arg>
|
||||
</cmdsynopsis>
|
||||
|
||||
<cmdsynopsis>
|
||||
<command>dig</command>
|
||||
<arg><option>-h</option></arg>
|
||||
</cmdsynopsis>
|
||||
|
||||
<cmdsynopsis>
|
||||
<command>dig</command>
|
||||
<arg choice=opt rep=repeat>global-queryopt</arg>
|
||||
<arg choice=opt rep=repeat>query</arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>DESCRIPTION</title>
|
||||
<para>
|
||||
<command>dig</command> (domain information groper) is a flexible tool
|
||||
for interrogating DNS name servers. It performs DNS lookups and
|
||||
displays the answers that are returned from the name server(s) that
|
||||
were queried. Most DNS administrators use <command>dig</command> to
|
||||
troubleshoot DNS problems because of its flexibility, ease of use and
|
||||
clarity of output. Other lookup tools tend to have less functionality
|
||||
than <command>dig</command>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Although <command>dig</command> is normally used with command-line
|
||||
arguments, it also has a batch mode of operation for reading lookup
|
||||
requests from a file. A brief summary of its command-line arguments
|
||||
and options is printed when the <option>-h</option> option is given.
|
||||
Unlike earlier versions, the BIND9 implementation of
|
||||
<command>dig</command> allows multiple lookups to be issued from the
|
||||
command line.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Unless it is told to query a specific name server,
|
||||
<command>dig</command> will try each of the servers listed in
|
||||
<filename>/etc/resolv.conf</filename>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
When no command line arguments or options are given, will perform an
|
||||
NS query for "." (the root).
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>SIMPLE USAGE</title>
|
||||
|
||||
<para>
|
||||
A typical invocation of <command>dig</command> looks like:
|
||||
<programlisting> dig @server name type </programlisting> where:
|
||||
|
||||
<variablelist>
|
||||
|
||||
<varlistentry><term><constant>server</constant></term>
|
||||
<listitem><para>
|
||||
is the name or IP address of the name server to query. This can be an IPv4
|
||||
address in dotted-decimal notation or an IPv6
|
||||
address in colon-delimited notation. When the supplied
|
||||
<parameter>server</parameter> argument is a hostname,
|
||||
<command>dig</command> resolves that name before querying that name
|
||||
server. If no <parameter>server</parameter> argument is provided,
|
||||
<command>dig</command> consults <filename>/etc/resolv.conf</filename>
|
||||
and queries the name servers listed there. The reply from the name
|
||||
server that responds is displayed.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><constant>name</constant></term>
|
||||
<listitem><para>
|
||||
is the name of the resource record that is to be looked up.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><constant>type</constant></term>
|
||||
<listitem><para>
|
||||
indicates what type of query is required —
|
||||
ANY, A, MX, SIG, etc.
|
||||
<parameter>type</parameter> can be any valid query type. If no
|
||||
<parameter>type</parameter> argument is supplied,
|
||||
<command>dig</command> will perform a lookup for an A record.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>OPTIONS</title>
|
||||
|
||||
<para>
|
||||
The <option>-b</option> option sets the source IP address of the query
|
||||
to <parameter>address</parameter>. This must be a valid address on
|
||||
one of the host's network interfaces.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The default query class (IN for internet) is overridden by the
|
||||
<option>-c</option> option. <parameter>class</parameter> is any valid
|
||||
class, such as HS for Hesiod records or CH for CHAOSNET records.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <option>-f</option> option makes <command>dig </command> operate
|
||||
in batch mode by reading a list of lookup requests to process from the
|
||||
file <parameter>filename</parameter>. The file contains a number of
|
||||
queries, one per line. Each entry in the file should be organised in
|
||||
the same way they would be presented as queries to
|
||||
<command>dig</command> using the command-line interface.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If a non-standard port number is to be queried, the
|
||||
<option>-p</option> option is used. <parameter>port#</parameter> is
|
||||
the port number that <command>dig</command> will send its queries
|
||||
instead of the standard DNS port number 53. This option would be used
|
||||
to test a name server that has been configured to listen for queries
|
||||
on a non-standard port number.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <option>-t</option> option sets the query type to
|
||||
<parameter>type</parameter>. It can be any valid query type which is
|
||||
supported in BIND9. The default query type "A", unless the
|
||||
<option>-x</option> option is supplied to indicate a reverse lookup.
|
||||
A zone transfer can be requested by specifying a type of AXFR. When
|
||||
an incremental zone transfer (IXFR) is required,
|
||||
<parameter>type</parameter> is set to <literal>ixfr=N</literal>.
|
||||
The incremental zone transfer will contain the changes made to the zone
|
||||
since the serial number in the zone's SOA record was
|
||||
<parameter>N</parameter>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Reverse lookups - mapping addresses to names - are simplified by the
|
||||
<option>-x</option> option. <parameter>addr</parameter> is an IPv4
|
||||
address in dotted-decimal notation, or a colon-delimited IPv6 address.
|
||||
When this option is used, there is no need to provide the
|
||||
<parameter>name</parameter>, <parameter>class</parameter> and
|
||||
<parameter>type</parameter> arguments. <command>dig</command>
|
||||
automatically performs a lookup for a name like
|
||||
<literal>11.12.13.10.in-addr.arpa</literal> and sets the query type and
|
||||
class to PTR and IN respectively. By default, IPv6 addresses are
|
||||
looked up using the IP6.ARPA domain and binary labels as defined in
|
||||
RFC2874. To use the older RFC1886 method using the IP6.INT domain and
|
||||
"nibble" labels, specify the <option>-n</option> (nibble) option.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To sign the DNS queries sent by <command>dig</command> and their
|
||||
responses using transaction signatures (TSIG), specify a TSIG key file
|
||||
using the <option>-k</option> option. You can also specify the TSIG
|
||||
key itself on the command line using the <option>-y</option> option;
|
||||
<parameter>name</parameter> is the name of the TSIG key and
|
||||
<parameter>key</parameter> is the actual key. The key is a base-64
|
||||
encoded string, typically generated by <citerefentry>
|
||||
<refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum>
|
||||
</citerefentry>.
|
||||
|
||||
Caution should be taken when using the <option>-y</option> option on
|
||||
multi-user systems as the key can be visible in the output from
|
||||
<citerefentry> <refentrytitle>ps</refentrytitle><manvolnum>1
|
||||
</manvolnum> </citerefentry> or in the shell's history file. When
|
||||
using TSIG authentication with <command>dig</command>, the name
|
||||
server that is queried needs to know the key and algorithm that is
|
||||
being used. In BIND, this is done by providing appropriate
|
||||
<command>key</command> and <command>server</command> statements in
|
||||
<filename>named.conf</filename>.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>QUERY OPTIONS</title>
|
||||
|
||||
<para>
|
||||
<command>dig</command> provides a number of query options which affect
|
||||
the way in which lookups are made and the results displayed. Some of
|
||||
these set or reset flag bits in the query header, some determine which
|
||||
sections of the answer get printed, and others determine the timeout
|
||||
and retry strategies.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Each query option is identified by a keyword preceded by a plus sign
|
||||
(<literal>+</literal>). Some keywords set or reset an option. These may be preceded
|
||||
by the string <literal>no</literal> to negate the meaning of that keyword. Other
|
||||
keywords assign values to options like the timeout interval. They
|
||||
have the form <option>+keyword=value</option>.
|
||||
The query options are:
|
||||
|
||||
<variablelist>
|
||||
|
||||
<varlistentry><term><option>+[no]tcp</option></term>
|
||||
<listitem><para>
|
||||
Use [do not use] TCP when querying name servers. The default
|
||||
behaviour is to use UDP unless an AXFR or IXFR query is requested, in
|
||||
which case a TCP connection is used.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]vc</option></term>
|
||||
<listitem><para>
|
||||
Use [do not use] TCP when querying name servers. This alternate
|
||||
syntax to <parameter>+[no]tcp</parameter> is provided for backwards
|
||||
compatibility. The "vc" stands for "virtual circuit".
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]ignore</option></term>
|
||||
<listitem><para>
|
||||
Ignore truncation in UDP responses instead of retrying with TCP. By
|
||||
default, TCP retries are performed.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+domain=somename</option></term>
|
||||
<listitem><para>
|
||||
Set the search list to contain the single domain
|
||||
<parameter>somename</parameter>, as if specified in a
|
||||
<command>domain</command> directive in
|
||||
<filename>/etc/resolv.conf</filename>, and enable search list
|
||||
processing as if the <parameter>+search</parameter> option were given.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]search</option></term>
|
||||
<listitem><para>
|
||||
Use [do not use] the search list defined by the searchlist or domain
|
||||
directive in <filename>resolv.conf</filename> (if any).
|
||||
The search list is not used by default.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]defname</option></term>
|
||||
<listitem><para>
|
||||
Deprecated, treated as a synonym for <parameter>+[no]search</parameter>
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]aaonly</option></term>
|
||||
<listitem><para>
|
||||
This option does nothing. It is provided for compatibilty with old
|
||||
versions of <command>dig</command> where it set an unimplemented
|
||||
resolver flag.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<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>
|
||||
|
||||
<varlistentry><term><option>+[no]cdflag</option></term>
|
||||
<listitem><para>
|
||||
Set [do not set] the CD (checking disabled) bit in the query. This
|
||||
requests the server to not perform DNSSEC validation of responses.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]recursive</option></term>
|
||||
<listitem><para>
|
||||
Toggle the setting of the RD (recursion desired) bit in the query.
|
||||
This bit is set by default, which means <command>dig</command>
|
||||
normally sends recursive queries. Recursion is automatically disabled
|
||||
when the <parameter>+nssearch</parameter> or
|
||||
<parameter>+trace</parameter> query options are used.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]nssearch</option></term>
|
||||
<listitem><para>
|
||||
When this option is set, <command>dig</command> attempts to find the
|
||||
authoritative name servers for the zone containing the name being
|
||||
looked up and display the SOA record that each name server has for the
|
||||
zone.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]trace</option></term>
|
||||
<listitem><para>
|
||||
Toggle tracing of the delegation path from the root name servers for
|
||||
the name being looked up. Tracing is disabled by default. When
|
||||
tracing is enabled, <command>dig</command> makes iterative queries to
|
||||
resolve the name being looked up. It will follow referrals from the
|
||||
root servers, showing the answer from each server that was used to
|
||||
resolve the lookup.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]cmd</option></term>
|
||||
<listitem><para>
|
||||
toggles the printing of the initial comment in the output identifying
|
||||
the version of <command>dig</command> and the query options that have
|
||||
been applied. This comment is printed by default.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]short</option></term>
|
||||
<listitem><para>
|
||||
Provide a terse answer. The default is to print the answer in a
|
||||
verbose form.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]identify</option></term>
|
||||
<listitem><para>
|
||||
Show [or do not show] the IP address and port number that supplied the
|
||||
answer when the <parameter>+short</parameter> option is enabled. If
|
||||
short form answers are requested, the default is not to show the
|
||||
source address and port number of the server that provided the answer.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]comments</option></term>
|
||||
<listitem><para>
|
||||
Toggle the display of comment lines in the output. The default is to
|
||||
print comments.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]stats</option></term>
|
||||
<listitem><para>
|
||||
This query option toggles the printing of statistics: when the query
|
||||
was made, the size of the reply and so on. The default behaviour is
|
||||
to print the query statistics.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]qr</option></term>
|
||||
<listitem><para>
|
||||
Print [do not print] the query as it is sent.
|
||||
By default, the query is not printed.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]question</option></term>
|
||||
<listitem><para>
|
||||
Print [do not print] the question section of a query when an answer is
|
||||
returned. The default is to print the question section as a comment.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]answer</option></term>
|
||||
<listitem><para>
|
||||
Display [do not display] the answer section of a reply. The default
|
||||
is to display it.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]authority</option></term>
|
||||
<listitem><para>
|
||||
Display [do not display] the authority section of a reply. The
|
||||
default is to display it.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]additional</option></term>
|
||||
<listitem><para>
|
||||
Display [do not display] the additional section of a reply.
|
||||
The default is to display it.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]all</option></term>
|
||||
<listitem><para>
|
||||
Set or clear all display flags.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+time=T</option></term>
|
||||
<listitem><para>
|
||||
|
||||
Sets the timeout for a query to
|
||||
<parameter>T</parameter> seconds. The default time out is 5 seconds.
|
||||
An attempt to set <parameter>T</parameter> to less than 1 will result
|
||||
in a query timeout of 1 second being applied.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+tries=A</option></term>
|
||||
<listitem><para>
|
||||
Sets the number of times to retry UDP queries to server to
|
||||
<parameter>T</parameter> instead of the default, 3. If
|
||||
<parameter>T</parameter> is less than or equal to zero, the number of
|
||||
retries is silently rounded up to 1.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+ndots=D</option></term>
|
||||
<listitem><para>
|
||||
Set the number of dots that have to appear in
|
||||
<parameter>name</parameter> to <parameter>D</parameter> for it to be
|
||||
considered absolute. The default value is that defined using the
|
||||
ndots statement in <filename>/etc/resolv.conf</filename>, or 1 if no
|
||||
ndots statement is present. Names with fewer dots are interpreted as
|
||||
relative names and will be searched for in the domains listed in the
|
||||
<option>search</option> or <option>domain</option> directive in
|
||||
<filename>/etc/resolv.conf</filename>.
|
||||
</para></listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+bufsize=B</option></term>
|
||||
<listitem><para>
|
||||
Set the UDP message buffer size advertised using EDNS0 to
|
||||
<parameter>B</parameter> bytes. The maximum and minimum sizes of this
|
||||
buffer are 65535 and 0 respectively. Values outside this range are
|
||||
rounded up or down appropriately.
|
||||
</para>
|
||||
</listitem></varlistentry>
|
||||
|
||||
<varlistentry><term><option>+[no]multiline</option></term>
|
||||
<listitem><para>
|
||||
Print records like the SOA records in a verbose multi-line
|
||||
format with human-readable comments. The default is to print
|
||||
each record on a single line, to facilitate machine parsing
|
||||
of the <command>dig</command> output.
|
||||
</para>
|
||||
</listitem></varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>MULTIPLE QUERIES</title>
|
||||
|
||||
<para>
|
||||
The BIND 9 implementation of <command>dig </command> supports
|
||||
specifying multiple queries on the command line (in addition to
|
||||
supporting the <option>-f</option> batch file option). Each of those
|
||||
queries can be supplied with its own set of flags, options and query
|
||||
options.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In this case, each <parameter>query</parameter> argument represent an
|
||||
individual query in the command-line syntax described above. Each
|
||||
consists of any of the standard options and flags, the name to be
|
||||
looked up, an optional query type and class and any query options that
|
||||
should be applied to that query.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
A global set of query options, which should be applied to all queries,
|
||||
can also be supplied. These global query options must precede the
|
||||
first tuple of name, class, type, options, flags, and query options
|
||||
supplied on the command line. Any global query options (except
|
||||
the <option>+[no]cmd</option> option) can be
|
||||
overridden by a query-specific set of query options. For example:
|
||||
<programlisting>
|
||||
dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
</programlisting>
|
||||
shows how <command>dig</command> could be used from the command line
|
||||
to make three lookups: an ANY query for <literal>www.isc.org</literal>, a
|
||||
reverse lookup of 127.0.0.1 and a query for the NS records of
|
||||
<literal>isc.org</literal>.
|
||||
|
||||
A global query option of <parameter>+qr</parameter> is applied, so
|
||||
that <command>dig</command> shows the initial query it made for each
|
||||
lookup. The final query has a local query option of
|
||||
<parameter>+noqr</parameter> which means that <command>dig</command>
|
||||
will not print the initial query when it looks up the NS records for
|
||||
<literal>isc.org</literal>.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>FILES</title>
|
||||
<para>
|
||||
<filename>/etc/resolv.conf</filename>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>SEE ALSO</title>
|
||||
<para>
|
||||
<citerefentry>
|
||||
<refentrytitle>host</refentrytitle><manvolnum>1</manvolnum>
|
||||
</citerefentry>,
|
||||
<citerefentry>
|
||||
<refentrytitle>named</refentrytitle><manvolnum>8</manvolnum>
|
||||
</citerefentry>,
|
||||
<citerefentry>
|
||||
<refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum>
|
||||
</citerefentry>,
|
||||
<citetitle>RFC1035</citetitle>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>BUGS </title>
|
||||
<para>
|
||||
There are probably too many query options.
|
||||
</para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
+1109
File diff suppressed because it is too large
Load Diff
+416
-677
File diff suppressed because it is too large
Load Diff
+103
-188
@@ -1,3 +1,4 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -12,203 +13,117 @@
|
||||
.\" 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: host.1,v 1.7 2001/01/09 21:47:11 bwelling Exp $
|
||||
|
||||
.Dd Jun 30, 2000
|
||||
.Dt HOST 1
|
||||
.Os BIND9 9
|
||||
.ds vT BIND9 Programmer's Manual
|
||||
.Sh NAME
|
||||
.Nm host
|
||||
.Nd DNS lookup utility
|
||||
.Sh SYNOPSIS
|
||||
.Nm host
|
||||
.Op Fl aCdlnrTwv
|
||||
.Op Fl c Ar class
|
||||
.Op Fl N Ar ndots
|
||||
.Op Fl R Ar number
|
||||
.Op Fl t Ar type
|
||||
.Op Fl W Ar wait
|
||||
.Ar name
|
||||
.Op Ar server
|
||||
.Sh DESCRIPTION
|
||||
.Nm host
|
||||
.\"
|
||||
.TH "HOST" "1" "Jun 30, 2000" "BIND9" ""
|
||||
.SH NAME
|
||||
host \- DNS lookup utility
|
||||
.SH SYNOPSIS
|
||||
.sp
|
||||
\fBhost\fR [ \fB-aCdlnrTwv\fR ] [ \fB-c \fIclass\fB\fR ] [ \fB-N \fIndots\fB\fR ] [ \fB-R \fInumber\fB\fR ] [ \fB-t \fItype\fB\fR ] [ \fB-W \fIwait\fB\fR ] \fBname\fR [ \fBserver\fR ]
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
\fBhost\fR
|
||||
is a simple utility for performing DNS lookups.
|
||||
It is normally used to convert names to IP addresses and vice versa.
|
||||
When no arguments or options are given,
|
||||
.Nm host
|
||||
\fBhost\fR
|
||||
prints a short summary of its command line arguments and options.
|
||||
.Pp
|
||||
.Ar name
|
||||
is the domain name that is to be looked up.
|
||||
It can also be a dotted-decimal IPv4 address
|
||||
or a colon-delimited IPv6 address,
|
||||
in which case
|
||||
.Nm host
|
||||
will by default perform a reverse lookup for that address.
|
||||
.Ar server
|
||||
is an optional argument which is either the name or IP address of the
|
||||
name server that
|
||||
.Nm host
|
||||
.PP
|
||||
\fIname\fR is the domain name that is to be looked
|
||||
up. It can also be a dotted-decimal IPv4 address or a colon-delimited
|
||||
IPv6 address, in which case \fBhost\fR will by default
|
||||
perform a reverse lookup for that address.
|
||||
\fIserver\fR is an optional argument which is either
|
||||
the name or IP address of the name server that \fBhost\fR
|
||||
should query instead of the server or servers listed in
|
||||
.Pa /etc/resolv.conf .
|
||||
.Pp
|
||||
The
|
||||
.Fl a
|
||||
(all) option is equivalent to setting the
|
||||
.Fl v
|
||||
option and asking
|
||||
.Nm host
|
||||
to make a query of type ANY.
|
||||
.Pp
|
||||
When the
|
||||
.Fl C
|
||||
option is used,
|
||||
.Nm host
|
||||
\fI/etc/resolv.conf\fR.
|
||||
.PP
|
||||
The \fB-a\fR (all) option is equivalent to setting the
|
||||
\fB-v\fR option and asking \fBhost\fR to make
|
||||
a query of type ANY.
|
||||
.PP
|
||||
When the \fB-C\fR option is used, \fBhost\fR
|
||||
will attempt to display the SOA records for zone
|
||||
.Ar name
|
||||
from all the listed authoritative name servers for that zone.
|
||||
The list of name servers is defined by the NS records that are found for
|
||||
the zone.
|
||||
.Pp
|
||||
The
|
||||
.Fl c
|
||||
option instructs to make a DNS query of class
|
||||
.Ar class .
|
||||
This can be used to lookup Hesiod or Chaosnet class resource records.
|
||||
The default class is IN: Internet.
|
||||
.Pp
|
||||
Verbose output is generated by
|
||||
.Nm host
|
||||
when the
|
||||
.Fl d
|
||||
or
|
||||
.Fl v
|
||||
option is used.
|
||||
The two options are equivalent.
|
||||
They have been provided for backwards compatibility.
|
||||
In previous versions, the
|
||||
.Fl d
|
||||
option switched on debugging traces and
|
||||
.Fl v
|
||||
enabled verbose output.
|
||||
.Pp
|
||||
List mode is selected by the
|
||||
.Fl l
|
||||
option.
|
||||
This makes
|
||||
.Nm host
|
||||
perform a zone transfer for zone
|
||||
.Ar name .
|
||||
The argument is provided for compatibility with older implemementations.
|
||||
This option is equivalent to making a query of type AXFR.
|
||||
.Pp
|
||||
The
|
||||
.Fl n
|
||||
\fIname\fR from all the listed authoritative name
|
||||
servers for that zone. The list of name servers is defined by the NS
|
||||
records that are found for the zone.
|
||||
.PP
|
||||
The \fB-c\fR option instructs to make a DNS query of class
|
||||
\fIclass\fR. This can be used to lookup Hesiod or
|
||||
Chaosnet class resource records. The default class is IN (Internet).
|
||||
.PP
|
||||
Verbose output is generated by \fBhost\fR when the
|
||||
\fB-d\fR or \fB-v\fR option is used. The two
|
||||
options are equivalent. They have been provided for backwards
|
||||
compatibility. In previous versions, the \fB-d\fR option
|
||||
switched on debugging traces and \fB-v\fR enabled verbose
|
||||
output.
|
||||
.PP
|
||||
List mode is selected by the \fB-l\fR option. This makes
|
||||
\fBhost\fR perform a zone transfer for zone
|
||||
\fIname\fR. The argument is provided for
|
||||
compatibility with older implemementations. This option is equivalent
|
||||
to making a query of type AXFR.
|
||||
.PP
|
||||
The \fB-n\fR
|
||||
option specifies that reverse lookups of IPv6 addresses should
|
||||
use the IP6.INT domain and "nibble" labels as defined in RFC1886.
|
||||
The default is to use IP6.ARPA and binary labels as defined in RFC2874.
|
||||
.Pp
|
||||
The
|
||||
.Fl N
|
||||
option sets the number of dots that have to be in
|
||||
.Ar name
|
||||
for it to be considered absolute. The default value is that
|
||||
defined using the ndots statement in
|
||||
.Pa /etc/resolv.conf ,
|
||||
or 1 if no ndots statement is present. Names with fewer
|
||||
dots are interpreted as relative names and will be searched
|
||||
for in the domains listed in the
|
||||
.Dv search
|
||||
or
|
||||
.Dv domain
|
||||
directive in
|
||||
.Pa /etc/resolv.conf .
|
||||
.Pp
|
||||
.PP
|
||||
The \fB-N\fR option sets the number of dots that have to be
|
||||
in \fIname\fR for it to be considered absolute. The
|
||||
default value is that defined using the ndots statement in
|
||||
\fI/etc/resolv.conf\fR, or 1 if no ndots statement is
|
||||
present. Names with fewer dots are interpreted as relative names and
|
||||
will be searched for in the domains listed in the \fBsearch\fR
|
||||
or \fBdomain\fR directive in
|
||||
\fI/etc/resolv.conf\fR.
|
||||
.PP
|
||||
The number of UDP retries for a lookup can be changed with the
|
||||
.Fl R
|
||||
option.
|
||||
.Ar number
|
||||
indicates how many times
|
||||
.Nm host
|
||||
will repeat a query that does not get answered.
|
||||
The default number of retries is 1.
|
||||
If
|
||||
.Ar number
|
||||
is negative or zero, the number of retries will default to 1.
|
||||
.Pp
|
||||
Non-recursive queries can be made via the
|
||||
.Fl r
|
||||
option.
|
||||
Setting this option clears the
|
||||
.Dv RD
|
||||
- recursion desired - bit in the query which
|
||||
.Nm host
|
||||
makes.
|
||||
This should mean that the name server receiving the query will not attempt
|
||||
to resolve
|
||||
.Ar name .
|
||||
The
|
||||
.Fl r
|
||||
option enables
|
||||
.Nm host
|
||||
to mimic the behaviour of a name server by making non-recursive queries
|
||||
and expecting to receive answers to those queries that are usually
|
||||
\fB-R\fR option. \fInumber\fR indicates
|
||||
how many times \fBhost\fR will repeat a query that does
|
||||
not get answered. The default number of retries is 1. If
|
||||
\fInumber\fR is negative or zero, the number of
|
||||
retries will default to 1.
|
||||
.PP
|
||||
Non-recursive queries can be made via the \fB-r\fR option.
|
||||
Setting this option clears the \fBRD\fR \(em recursion
|
||||
desired \(em bit in the query which \fBhost\fR makes.
|
||||
This should mean that the name server receiving the query will not
|
||||
attempt to resolve \fIname\fR. The
|
||||
\fB-r\fR option enables \fBhost\fR to mimic
|
||||
the behaviour 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
|
||||
.Nm host
|
||||
uses UDP when making queries.
|
||||
The
|
||||
.Fl T
|
||||
option makes it use a TCP connection when querying the name server.
|
||||
TCP will be automatically selected for queries that require it,
|
||||
such as zone transfer (AXFR) requests.
|
||||
.Pp
|
||||
The
|
||||
.Fl t
|
||||
option is used to select the query type.
|
||||
.Ar type
|
||||
can be any recognised query type: CNAME, NS, SOA, SIG, KEY, AXFR, etc.
|
||||
When no query type is specified,
|
||||
.Nm host
|
||||
automatically selects an appropriate query type.
|
||||
By default it looks for A records, but if the
|
||||
.Fl C
|
||||
option was given, queries will be made for SOA records,
|
||||
and if
|
||||
.Ar name
|
||||
is a dotted-decimal IPv4 address or colon-delimited IPv6 address,
|
||||
.Nm host
|
||||
will query for PTR records.
|
||||
.Pp
|
||||
.PP
|
||||
By default \fBhost\fR uses UDP when making queries. The
|
||||
\fB-T\fR option makes it use a TCP connection when querying
|
||||
the name server. TCP will be automatically selected for queries that
|
||||
require it, such as zone transfer (AXFR) requests.
|
||||
.PP
|
||||
The \fB-t\fR option is used to select the query type.
|
||||
\fItype\fR can be any recognised 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
|
||||
\fB-C\fR option was given, queries will be made for SOA
|
||||
records, and if \fIname\fR is a dotted-decimal IPv4
|
||||
address or colon-delimited IPv6 address, \fBhost\fR will
|
||||
query for PTR records.
|
||||
.PP
|
||||
The time to wait for a reply can be controlled through the
|
||||
.Fl W
|
||||
and
|
||||
.Fl w
|
||||
options.
|
||||
The
|
||||
.Fl W
|
||||
option makes
|
||||
.Nm host
|
||||
wait for
|
||||
.Ar wait
|
||||
seconds.
|
||||
If
|
||||
.Ar wait
|
||||
is less than one,
|
||||
the wait interval is set to one second.
|
||||
When the
|
||||
.Fl w
|
||||
option is used,
|
||||
.Nm host
|
||||
will effectively wait forever for a reply.
|
||||
The time to wait for a response will be set to the number of seconds
|
||||
given by the hardware's maximum value for an integer quantity.
|
||||
.Sh FILES
|
||||
.Pa /etc/resolv.conf
|
||||
.Sh SEE ALSO
|
||||
.Xr dig 1 ,
|
||||
.Xr resolver 5
|
||||
.Xr named 8 .
|
||||
\fB-W\fR and \fB-w\fR options. The
|
||||
\fB-W\fR option makes \fBhost\fR wait for
|
||||
\fIwait\fR seconds. If \fIwait\fR
|
||||
is less than one, the wait interval is set to one second. When the
|
||||
\fB-w\fR option is used, \fBhost\fR will
|
||||
effectively wait forever for a reply. The time to wait for a response
|
||||
will be set to the number of seconds given by the hardware's maximum
|
||||
value for an integer quantity.
|
||||
.SH "FILES"
|
||||
.PP
|
||||
\fI/etc/resolv.conf\fR
|
||||
.SH "SEE ALSO"
|
||||
.PP
|
||||
\fBdig\fR(1),
|
||||
\fBnamed\fR(8).
|
||||
|
||||
+30
-48
@@ -15,14 +15,12 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: host.c,v 1.66 2001/03/14 18:08:17 bwelling Exp $ */
|
||||
/* $Id: host.c,v 1.76 2001/08/27 21:31:29 gson Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
|
||||
extern int h_errno;
|
||||
|
||||
#include <isc/app.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/netaddr.h>
|
||||
@@ -54,7 +52,7 @@ extern int tries;
|
||||
extern char *progname;
|
||||
extern isc_task_t *global_task;
|
||||
|
||||
isc_boolean_t short_form = ISC_TRUE, listed_server = ISC_FALSE;
|
||||
static isc_boolean_t short_form = ISC_TRUE, listed_server = ISC_FALSE;
|
||||
|
||||
static const char *opcodetext[] = {
|
||||
"QUERY",
|
||||
@@ -240,50 +238,53 @@ received(int bytes, isc_sockaddr_t *from, dig_query_t *query)
|
||||
isc_sockaddr_format(from, fromtext, sizeof(fromtext));
|
||||
result = isc_time_now(&now);
|
||||
check_result(result, "isc_time_now");
|
||||
diff = isc_time_microdiff(&now, &query->time_sent);
|
||||
diff = (int) isc_time_microdiff(&now, &query->time_sent);
|
||||
printf("Received %u bytes from %s in %d ms\n",
|
||||
bytes, fromtext, diff/1000);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
trying(int frmsize, char *frm, dig_lookup_t *lookup) {
|
||||
trying(char *frm, dig_lookup_t *lookup) {
|
||||
UNUSED(lookup);
|
||||
|
||||
if (!short_form)
|
||||
printf("Trying \"%.*s\"\n", frmsize, frm);
|
||||
printf("Trying \"%s\"\n", frm);
|
||||
}
|
||||
|
||||
static void
|
||||
say_message(dns_name_t *name, const char *msg, dns_rdata_t *rdata,
|
||||
dig_query_t *query)
|
||||
{
|
||||
isc_buffer_t *b = NULL, *b2 = NULL;
|
||||
isc_region_t r, r2;
|
||||
isc_buffer_t *b = NULL;
|
||||
char namestr[DNS_NAME_FORMATSIZE];
|
||||
isc_region_t r;
|
||||
isc_result_t result;
|
||||
unsigned int bufsize = BUFSIZ;
|
||||
|
||||
result = isc_buffer_allocate(mctx, &b, BUFSIZE);
|
||||
dns_name_format(name, namestr, sizeof(namestr));
|
||||
retry:
|
||||
result = isc_buffer_allocate(mctx, &b, bufsize);
|
||||
check_result(result, "isc_buffer_allocate");
|
||||
result = isc_buffer_allocate(mctx, &b2, BUFSIZE);
|
||||
check_result(result, "isc_buffer_allocate");
|
||||
result = dns_name_totext(name, ISC_FALSE, b);
|
||||
check_result(result, "dns_name_totext");
|
||||
isc_buffer_usedregion(b, &r);
|
||||
result = dns_rdata_totext(rdata, NULL, b2);
|
||||
result = dns_rdata_totext(rdata, NULL, b);
|
||||
if (result == ISC_R_NOSPACE) {
|
||||
isc_buffer_free(&b);
|
||||
bufsize *= 2;
|
||||
goto retry;
|
||||
}
|
||||
check_result(result, "dns_rdata_totext");
|
||||
isc_buffer_usedregion(b2, &r2);
|
||||
isc_buffer_usedregion(b, &r);
|
||||
if (query->lookup->identify_previous_line) {
|
||||
printf("Nameserver %s:\n\t",
|
||||
query->servname);
|
||||
}
|
||||
printf("%.*s %s %.*s", (int)r.length, (char *)r.base,
|
||||
msg, (int)r2.length, (char *)r2.base);
|
||||
printf("%s %s %.*s", namestr,
|
||||
msg, (int)r.length, (char *)r.base);
|
||||
if (query->lookup->identify) {
|
||||
printf(" on server %s", query->servname);
|
||||
}
|
||||
printf("\n");
|
||||
isc_buffer_free(&b);
|
||||
isc_buffer_free(&b2);
|
||||
}
|
||||
|
||||
|
||||
@@ -417,44 +418,25 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
|
||||
dns_rdataset_t *opt, *tsig = NULL;
|
||||
dns_name_t *tsigname;
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
isc_buffer_t *b = NULL;
|
||||
isc_region_t r;
|
||||
|
||||
UNUSED(headers);
|
||||
|
||||
/*
|
||||
* Special case. If we're doing an ns_search_only query, but we're
|
||||
* still following pointers, haven't gotten to the real NS records
|
||||
* yet, don't print anything.
|
||||
*/
|
||||
if (query->lookup->ns_search_only && !query->lookup->ns_search_only_leafnode)
|
||||
return (ISC_R_SUCCESS);
|
||||
|
||||
if (listed_server) {
|
||||
char sockstr[ISC_SOCKADDR_FORMATSIZE];
|
||||
|
||||
printf("Using domain server:\n");
|
||||
printf("Name: %s\n", query->servname);
|
||||
result = isc_buffer_allocate(mctx, &b, MXNAME);
|
||||
check_result(result, "isc_buffer_allocate");
|
||||
result = isc_sockaddr_totext(&query->sockaddr, b);
|
||||
check_result(result, "isc_sockaddr_totext");
|
||||
printf("Address: %.*s\n",
|
||||
(int)isc_buffer_usedlength(b),
|
||||
(char*)isc_buffer_base(b));
|
||||
isc_buffer_free(&b);
|
||||
isc_sockaddr_format(&query->sockaddr, sockstr,
|
||||
sizeof(sockstr));
|
||||
printf("Address: %s\n", sockstr);
|
||||
printf("Aliases: \n\n");
|
||||
}
|
||||
|
||||
if (msg->rcode != 0) {
|
||||
result = isc_buffer_allocate(mctx, &b, MXNAME);
|
||||
check_result(result, "isc_buffer_allocate");
|
||||
result = dns_name_totext(query->lookup->name, ISC_FALSE,
|
||||
b);
|
||||
check_result(result, "dns_name_totext");
|
||||
isc_buffer_usedregion(b, &r);
|
||||
printf("Host %.*s not found: %d(%s)\n",
|
||||
(int)r.length, (char *)r.base,
|
||||
char namestr[DNS_NAME_FORMATSIZE];
|
||||
dns_name_format(query->lookup->name, namestr, sizeof(namestr));
|
||||
printf("Host %s not found: %d(%s)\n", namestr,
|
||||
msg->rcode, rcodetext[msg->rcode]);
|
||||
isc_buffer_free(&b);
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
if (!short_form) {
|
||||
@@ -641,7 +623,7 @@ parse_args(isc_boolean_t is_batchfile, int argc, char **argv) {
|
||||
break;
|
||||
case 'C':
|
||||
debug("showing all SOAs");
|
||||
lookup->rdtype = dns_rdatatype_soa;
|
||||
lookup->rdtype = dns_rdatatype_ns;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
lookup->rdclass = dns_rdataclass_in;
|
||||
lookup->rdclassset = ISC_TRUE;
|
||||
|
||||
@@ -0,0 +1,202 @@
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
|
||||
<!--
|
||||
- Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
- THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
|
||||
- DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
- INTERNET SOFTWARE CONSORTIUM 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: host.docbook,v 1.2 2001/06/08 17:18:13 gson Exp $ -->
|
||||
|
||||
<refentry>
|
||||
|
||||
<refentryinfo>
|
||||
<date>Jun 30, 2000</date>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>host</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo>BIND9</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>host</refname>
|
||||
<refpurpose>DNS lookup utility</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>host</command>
|
||||
<arg><option>-aCdlnrTwv</option></arg>
|
||||
<arg><option>-c <replaceable class="parameter">class</replaceable></option></arg>
|
||||
<arg><option>-N <replaceable class="parameter">ndots</replaceable></option></arg>
|
||||
<arg><option>-R <replaceable class="parameter">number</replaceable></option></arg>
|
||||
<arg><option>-t <replaceable class="parameter">type</replaceable></option></arg>
|
||||
<arg><option>-W <replaceable class="parameter">wait</replaceable></option></arg>
|
||||
<arg choice=req>name</arg>
|
||||
<arg choice=opt>server</arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>DESCRIPTION</title>
|
||||
<para>
|
||||
<command>host</command>
|
||||
is a simple utility for performing DNS lookups.
|
||||
It is normally used to convert names to IP addresses and vice versa.
|
||||
When no arguments or options are given,
|
||||
<command>host</command>
|
||||
prints a short summary of its command line arguments and options.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<parameter>name</parameter> is the domain name that is to be looked
|
||||
up. It can also be a dotted-decimal IPv4 address or a colon-delimited
|
||||
IPv6 address, in which case <command>host</command> will by default
|
||||
perform a reverse lookup for that address.
|
||||
<parameter>server</parameter> is an optional argument which is either
|
||||
the name or IP address of the name server that <command>host</command>
|
||||
should query instead of the server or servers listed in
|
||||
<filename>/etc/resolv.conf</filename>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <option>-a</option> (all) option is equivalent to setting the
|
||||
<option>-v</option> option and asking <command>host</command> to make
|
||||
a query of type ANY.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
When the <option>-C</option> option is used, <command>host</command>
|
||||
will attempt to display the SOA records for zone
|
||||
<parameter>name</parameter> from all the listed authoritative name
|
||||
servers for that zone. The list of name servers is defined by the NS
|
||||
records that are found for the zone.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <option>-c</option> option instructs to make a DNS query of class
|
||||
<parameter>class</parameter>. This can be used to lookup Hesiod or
|
||||
Chaosnet class resource records. The default class is IN (Internet).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Verbose output is generated by <command>host</command> when the
|
||||
<option>-d</option> or <option>-v</option> option is used. The two
|
||||
options are equivalent. They have been provided for backwards
|
||||
compatibility. In previous versions, the <option>-d</option> option
|
||||
switched on debugging traces and <option>-v</option> enabled verbose
|
||||
output.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
List mode is selected by the <option>-l</option> option. This makes
|
||||
<command>host</command> perform a zone transfer for zone
|
||||
<parameter>name</parameter>. The argument is provided for
|
||||
compatibility with older implemementations. This option is equivalent
|
||||
to making a query of type AXFR.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <option>-n</option>
|
||||
option specifies that reverse lookups of IPv6 addresses should
|
||||
use the IP6.INT domain and "nibble" labels as defined in RFC1886.
|
||||
The default is to use IP6.ARPA and binary labels as defined in RFC2874.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <option>-N</option> option sets the number of dots that have to be
|
||||
in <parameter>name</parameter> for it to be considered absolute. The
|
||||
default value is that defined using the ndots statement in
|
||||
<filename>/etc/resolv.conf</filename>, or 1 if no ndots statement is
|
||||
present. Names with fewer dots are interpreted as relative names and
|
||||
will be searched for in the domains listed in the <type>search</type>
|
||||
or <type>domain</type> directive in
|
||||
<filename>/etc/resolv.conf</filename>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The number of UDP retries for a lookup can be changed with the
|
||||
<option>-R</option> option. <parameter>number</parameter> indicates
|
||||
how many times <command>host</command> will repeat a query that does
|
||||
not get answered. The default number of retries is 1. If
|
||||
<parameter>number</parameter> is negative or zero, the number of
|
||||
retries will default to 1.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Non-recursive queries can be made via the <option>-r</option> option.
|
||||
Setting this option clears the <type>RD</type> — recursion
|
||||
desired — bit in the query which <command>host</command> makes.
|
||||
This should mean that the name server receiving the query will not
|
||||
attempt to resolve <parameter>name</parameter>. The
|
||||
<option>-r</option> option enables <command>host</command> to mimic
|
||||
the behaviour 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.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
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
|
||||
require it, such as zone transfer (AXFR) requests.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <option>-t</option> option is used to select the query type.
|
||||
<parameter>type</parameter> can be any recognised query type: CNAME,
|
||||
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
|
||||
<option>-C</option> option was given, queries will be made for SOA
|
||||
records, and if <parameter>name</parameter> is a dotted-decimal IPv4
|
||||
address or colon-delimited IPv6 address, <command>host</command> will
|
||||
query for PTR records.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The time to wait for a reply can be controlled through the
|
||||
<option>-W</option> and <option>-w</option> options. The
|
||||
<option>-W</option> option makes <command>host</command> wait for
|
||||
<parameter>wait</parameter> seconds. If <parameter>wait</parameter>
|
||||
is less than one, the wait interval is set to one second. When the
|
||||
<option>-w</option> option is used, <command>host</command> will
|
||||
effectively wait forever for a reply. The time to wait for a response
|
||||
will be set to the number of seconds given by the hardware's maximum
|
||||
value for an integer quantity.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>FILES</title>
|
||||
<para>
|
||||
<filename>/etc/resolv.conf</filename>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>SEE ALSO</title>
|
||||
<para>
|
||||
<citerefentry>
|
||||
<refentrytitle>dig</refentrytitle><manvolnum>1</manvolnum>
|
||||
</citerefentry>,
|
||||
<citerefentry>
|
||||
<refentrytitle>named</refentrytitle><manvolnum>8</manvolnum>
|
||||
</citerefentry>.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
</refentry>
|
||||
@@ -0,0 +1,440 @@
|
||||
<!--
|
||||
- Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
- THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
|
||||
- DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
- INTERNET SOFTWARE CONSORTIUM 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.
|
||||
-->
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
>host</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"></HEAD
|
||||
><BODY
|
||||
CLASS="REFENTRY"
|
||||
BGCOLOR="#FFFFFF"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#840084"
|
||||
ALINK="#0000FF"
|
||||
><H1
|
||||
><A
|
||||
NAME="AEN1"
|
||||
>host</A
|
||||
></H1
|
||||
><DIV
|
||||
CLASS="REFNAMEDIV"
|
||||
><A
|
||||
NAME="AEN8"
|
||||
></A
|
||||
><H2
|
||||
>Name</H2
|
||||
>host -- DNS lookup utility</DIV
|
||||
><DIV
|
||||
CLASS="REFSYNOPSISDIV"
|
||||
><A
|
||||
NAME="AEN11"
|
||||
></A
|
||||
><H2
|
||||
>Synopsis</H2
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>host</B
|
||||
> [<TT
|
||||
CLASS="OPTION"
|
||||
>-aCdlnrTwv</TT
|
||||
>] [<TT
|
||||
CLASS="OPTION"
|
||||
>-c <TT
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>class</I
|
||||
></TT
|
||||
></TT
|
||||
>] [<TT
|
||||
CLASS="OPTION"
|
||||
>-N <TT
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>ndots</I
|
||||
></TT
|
||||
></TT
|
||||
>] [<TT
|
||||
CLASS="OPTION"
|
||||
>-R <TT
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>number</I
|
||||
></TT
|
||||
></TT
|
||||
>] [<TT
|
||||
CLASS="OPTION"
|
||||
>-t <TT
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>type</I
|
||||
></TT
|
||||
></TT
|
||||
>] [<TT
|
||||
CLASS="OPTION"
|
||||
>-W <TT
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>wait</I
|
||||
></TT
|
||||
></TT
|
||||
>] {name} [server]</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN33"
|
||||
></A
|
||||
><H2
|
||||
>DESCRIPTION</H2
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>host</B
|
||||
>
|
||||
is a simple utility for performing DNS lookups.
|
||||
It is normally used to convert names to IP addresses and vice versa.
|
||||
When no arguments or options are given,
|
||||
<B
|
||||
CLASS="COMMAND"
|
||||
>host</B
|
||||
>
|
||||
prints a short summary of its command line arguments and options.</P
|
||||
><P
|
||||
><TT
|
||||
CLASS="PARAMETER"
|
||||
><I
|
||||
>name</I
|
||||
></TT
|
||||
> is the domain name that is to be looked
|
||||
up. It can also be a dotted-decimal IPv4 address or a colon-delimited
|
||||
IPv6 address, in which case <B
|
||||
CLASS="COMMAND"
|
||||
>host</B
|
||||
> will by default
|
||||
perform a reverse lookup for that address.
|
||||
<TT
|
||||
CLASS="PARAMETER"
|
||||
><I
|
||||
>server</I
|
||||
></TT
|
||||
> is an optional argument which is either
|
||||
the name or IP address of the name server that <B
|
||||
CLASS="COMMAND"
|
||||
>host</B
|
||||
>
|
||||
should query instead of the server or servers listed in
|
||||
<TT
|
||||
CLASS="FILENAME"
|
||||
>/etc/resolv.conf</TT
|
||||
>.</P
|
||||
><P
|
||||
>The <TT
|
||||
CLASS="OPTION"
|
||||
>-a</TT
|
||||
> (all) option is equivalent to setting the
|
||||
<TT
|
||||
CLASS="OPTION"
|
||||
>-v</TT
|
||||
> option and asking <B
|
||||
CLASS="COMMAND"
|
||||
>host</B
|
||||
> to make
|
||||
a query of type ANY.</P
|
||||
><P
|
||||
>When the <TT
|
||||
CLASS="OPTION"
|
||||
>-C</TT
|
||||
> option is used, <B
|
||||
CLASS="COMMAND"
|
||||
>host</B
|
||||
>
|
||||
will attempt to display the SOA records for zone
|
||||
<TT
|
||||
CLASS="PARAMETER"
|
||||
><I
|
||||
>name</I
|
||||
></TT
|
||||
> from all the listed authoritative name
|
||||
servers for that zone. The list of name servers is defined by the NS
|
||||
records that are found for the zone.</P
|
||||
><P
|
||||
>The <TT
|
||||
CLASS="OPTION"
|
||||
>-c</TT
|
||||
> option instructs to make a DNS query of class
|
||||
<TT
|
||||
CLASS="PARAMETER"
|
||||
><I
|
||||
>class</I
|
||||
></TT
|
||||
>. This can be used to lookup Hesiod or
|
||||
Chaosnet class resource records. The default class is IN (Internet).</P
|
||||
><P
|
||||
>Verbose output is generated by <B
|
||||
CLASS="COMMAND"
|
||||
>host</B
|
||||
> when the
|
||||
<TT
|
||||
CLASS="OPTION"
|
||||
>-d</TT
|
||||
> or <TT
|
||||
CLASS="OPTION"
|
||||
>-v</TT
|
||||
> option is used. The two
|
||||
options are equivalent. They have been provided for backwards
|
||||
compatibility. In previous versions, the <TT
|
||||
CLASS="OPTION"
|
||||
>-d</TT
|
||||
> option
|
||||
switched on debugging traces and <TT
|
||||
CLASS="OPTION"
|
||||
>-v</TT
|
||||
> enabled verbose
|
||||
output.</P
|
||||
><P
|
||||
>List mode is selected by the <TT
|
||||
CLASS="OPTION"
|
||||
>-l</TT
|
||||
> option. This makes
|
||||
<B
|
||||
CLASS="COMMAND"
|
||||
>host</B
|
||||
> perform a zone transfer for zone
|
||||
<TT
|
||||
CLASS="PARAMETER"
|
||||
><I
|
||||
>name</I
|
||||
></TT
|
||||
>. The argument is provided for
|
||||
compatibility with older implemementations. This option is equivalent
|
||||
to making a query of type AXFR.</P
|
||||
><P
|
||||
>The <TT
|
||||
CLASS="OPTION"
|
||||
>-n</TT
|
||||
>
|
||||
option specifies that reverse lookups of IPv6 addresses should
|
||||
use the IP6.INT domain and "nibble" labels as defined in RFC1886.
|
||||
The default is to use IP6.ARPA and binary labels as defined in RFC2874.</P
|
||||
><P
|
||||
>The <TT
|
||||
CLASS="OPTION"
|
||||
>-N</TT
|
||||
> option sets the number of dots that have to be
|
||||
in <TT
|
||||
CLASS="PARAMETER"
|
||||
><I
|
||||
>name</I
|
||||
></TT
|
||||
> for it to be considered absolute. The
|
||||
default value is that defined using the ndots statement in
|
||||
<TT
|
||||
CLASS="FILENAME"
|
||||
>/etc/resolv.conf</TT
|
||||
>, or 1 if no ndots statement is
|
||||
present. Names with fewer dots are interpreted as relative names and
|
||||
will be searched for in the domains listed in the <SPAN
|
||||
CLASS="TYPE"
|
||||
>search</SPAN
|
||||
>
|
||||
or <SPAN
|
||||
CLASS="TYPE"
|
||||
>domain</SPAN
|
||||
> directive in
|
||||
<TT
|
||||
CLASS="FILENAME"
|
||||
>/etc/resolv.conf</TT
|
||||
>.</P
|
||||
><P
|
||||
>The number of UDP retries for a lookup can be changed with the
|
||||
<TT
|
||||
CLASS="OPTION"
|
||||
>-R</TT
|
||||
> option. <TT
|
||||
CLASS="PARAMETER"
|
||||
><I
|
||||
>number</I
|
||||
></TT
|
||||
> indicates
|
||||
how many times <B
|
||||
CLASS="COMMAND"
|
||||
>host</B
|
||||
> will repeat a query that does
|
||||
not get answered. The default number of retries is 1. If
|
||||
<TT
|
||||
CLASS="PARAMETER"
|
||||
><I
|
||||
>number</I
|
||||
></TT
|
||||
> is negative or zero, the number of
|
||||
retries will default to 1.</P
|
||||
><P
|
||||
>Non-recursive queries can be made via the <TT
|
||||
CLASS="OPTION"
|
||||
>-r</TT
|
||||
> option.
|
||||
Setting this option clears the <SPAN
|
||||
CLASS="TYPE"
|
||||
>RD</SPAN
|
||||
> — recursion
|
||||
desired — bit in the query which <B
|
||||
CLASS="COMMAND"
|
||||
>host</B
|
||||
> makes.
|
||||
This should mean that the name server receiving the query will not
|
||||
attempt to resolve <TT
|
||||
CLASS="PARAMETER"
|
||||
><I
|
||||
>name</I
|
||||
></TT
|
||||
>. The
|
||||
<TT
|
||||
CLASS="OPTION"
|
||||
>-r</TT
|
||||
> option enables <B
|
||||
CLASS="COMMAND"
|
||||
>host</B
|
||||
> to mimic
|
||||
the behaviour 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.</P
|
||||
><P
|
||||
>By default <B
|
||||
CLASS="COMMAND"
|
||||
>host</B
|
||||
> uses UDP when making queries. The
|
||||
<TT
|
||||
CLASS="OPTION"
|
||||
>-T</TT
|
||||
> option makes it use a TCP connection when querying
|
||||
the name server. TCP will be automatically selected for queries that
|
||||
require it, such as zone transfer (AXFR) requests.</P
|
||||
><P
|
||||
>The <TT
|
||||
CLASS="OPTION"
|
||||
>-t</TT
|
||||
> option is used to select the query type.
|
||||
<TT
|
||||
CLASS="PARAMETER"
|
||||
><I
|
||||
>type</I
|
||||
></TT
|
||||
> can be any recognised query type: CNAME,
|
||||
NS, SOA, SIG, KEY, AXFR, etc. When no query type is specified,
|
||||
<B
|
||||
CLASS="COMMAND"
|
||||
>host</B
|
||||
> automatically selects an appropriate query
|
||||
type. By default it looks for A records, but if the
|
||||
<TT
|
||||
CLASS="OPTION"
|
||||
>-C</TT
|
||||
> option was given, queries will be made for SOA
|
||||
records, and if <TT
|
||||
CLASS="PARAMETER"
|
||||
><I
|
||||
>name</I
|
||||
></TT
|
||||
> is a dotted-decimal IPv4
|
||||
address or colon-delimited IPv6 address, <B
|
||||
CLASS="COMMAND"
|
||||
>host</B
|
||||
> will
|
||||
query for PTR records.</P
|
||||
><P
|
||||
>The time to wait for a reply can be controlled through the
|
||||
<TT
|
||||
CLASS="OPTION"
|
||||
>-W</TT
|
||||
> and <TT
|
||||
CLASS="OPTION"
|
||||
>-w</TT
|
||||
> options. The
|
||||
<TT
|
||||
CLASS="OPTION"
|
||||
>-W</TT
|
||||
> option makes <B
|
||||
CLASS="COMMAND"
|
||||
>host</B
|
||||
> wait for
|
||||
<TT
|
||||
CLASS="PARAMETER"
|
||||
><I
|
||||
>wait</I
|
||||
></TT
|
||||
> seconds. If <TT
|
||||
CLASS="PARAMETER"
|
||||
><I
|
||||
>wait</I
|
||||
></TT
|
||||
>
|
||||
is less than one, the wait interval is set to one second. When the
|
||||
<TT
|
||||
CLASS="OPTION"
|
||||
>-w</TT
|
||||
> option is used, <B
|
||||
CLASS="COMMAND"
|
||||
>host</B
|
||||
> will
|
||||
effectively wait forever for a reply. The time to wait for a response
|
||||
will be set to the number of seconds given by the hardware's maximum
|
||||
value for an integer quantity.</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN105"
|
||||
></A
|
||||
><H2
|
||||
>FILES</H2
|
||||
><P
|
||||
><TT
|
||||
CLASS="FILENAME"
|
||||
>/etc/resolv.conf</TT
|
||||
></P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN109"
|
||||
></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
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
||||
+15
-14
@@ -15,16 +15,19 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dig.h,v 1.67 2001/02/17 01:05:30 gson Exp $ */
|
||||
/* $Id: dig.h,v 1.71.2.3 2001/11/15 01:24:13 marka Exp $ */
|
||||
|
||||
#ifndef DIG_H
|
||||
#define DIG_H
|
||||
|
||||
#include <dns/rdatalist.h>
|
||||
|
||||
#include <dst/dst.h>
|
||||
|
||||
#include <isc/boolean.h>
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/bufferlist.h>
|
||||
#include <isc/formatcheck.h>
|
||||
#include <isc/lang.h>
|
||||
#include <isc/list.h>
|
||||
#include <isc/mem.h>
|
||||
@@ -37,7 +40,9 @@
|
||||
#define MXRD 32
|
||||
#define BUFSIZE 512
|
||||
#define COMMSIZE 0xffff
|
||||
#define RESOLVCONF "/etc/resolv.conf"
|
||||
#ifndef RESOLV_CONF
|
||||
#define RESOLV_CONF "/etc/resolv.conf"
|
||||
#endif
|
||||
#define OUTPUTBUF 32767
|
||||
#define MAXRRLIMIT 0xffffffff
|
||||
#define MAXTIMEOUT 0xffff
|
||||
@@ -82,8 +87,7 @@ struct dig_lookup {
|
||||
pending, /* Pending a successful answer */
|
||||
waiting_connect,
|
||||
doing_xfr,
|
||||
ns_search_only,
|
||||
ns_search_only_leafnode,
|
||||
ns_search_only, /* dig +nssearch, host -C */
|
||||
identify, /* Append an "on server <foo>" message */
|
||||
identify_previous_line, /* Prepend a "Nameserver <foo>:"
|
||||
message, with newline and tab */
|
||||
@@ -92,8 +96,8 @@ struct dig_lookup {
|
||||
aaonly,
|
||||
adflag,
|
||||
cdflag,
|
||||
trace,
|
||||
trace_root,
|
||||
trace, /* dig +trace */
|
||||
trace_root, /* initial query for either +trace or +nssearch */
|
||||
tcp_mode,
|
||||
nibble,
|
||||
comments,
|
||||
@@ -109,6 +113,7 @@ struct dig_lookup {
|
||||
char textname[MXNAME]; /* Name we're going to be looking up */
|
||||
char cmdline[MXNAME];
|
||||
dns_rdatatype_t rdtype;
|
||||
dns_rdatatype_t qrdtype;
|
||||
dns_rdataclass_t rdclass;
|
||||
isc_boolean_t rdtypeset;
|
||||
isc_boolean_t rdclassset;
|
||||
@@ -135,10 +140,6 @@ struct dig_lookup {
|
||||
isc_uint32_t ixfr_serial;
|
||||
isc_buffer_t rdatabuf;
|
||||
char rdatastore[MXNAME];
|
||||
#ifdef DNS_OPT_NEWCODES_LIVE
|
||||
char zonename[MXNAME];
|
||||
char viewname[MXNAME];
|
||||
#endif /* DNS_OPT_NEWCODES_LIVE */
|
||||
dst_context_t *tsigctx;
|
||||
isc_buffer_t *querysig;
|
||||
isc_uint32_t msgcounter;
|
||||
@@ -188,13 +189,13 @@ void
|
||||
get_address(char *host, in_port_t port, isc_sockaddr_t *sockaddr);
|
||||
|
||||
isc_result_t
|
||||
get_reverse(char reverse[MXNAME], char *value, isc_boolean_t nibble);
|
||||
get_reverse(char *reverse, char *value, isc_boolean_t nibble);
|
||||
|
||||
void
|
||||
fatal(const char *format, ...);
|
||||
fatal(const char *format, ...) ISC_FORMAT_PRINTF(1, 2);
|
||||
|
||||
void
|
||||
debug(const char *format, ...);
|
||||
debug(const char *format, ...) ISC_FORMAT_PRINTF(1, 2);
|
||||
|
||||
void
|
||||
check_result(isc_result_t result, const char *msg);
|
||||
@@ -264,7 +265,7 @@ received(int bytes, isc_sockaddr_t *from, dig_query_t *query);
|
||||
*/
|
||||
|
||||
void
|
||||
trying(int frmsize, char *frm, dig_lookup_t *lookup);
|
||||
trying(char *frm, dig_lookup_t *lookup);
|
||||
|
||||
void
|
||||
dighost_shutdown(void);
|
||||
|
||||
+21
-37
@@ -15,14 +15,12 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: nslookup.c,v 1.82 2001/03/16 22:13:41 bwelling Exp $ */
|
||||
/* $Id: nslookup.c,v 1.90 2001/07/30 01:09:14 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
extern int h_errno;
|
||||
|
||||
#include <isc/app.h>
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/commandline.h>
|
||||
@@ -49,14 +47,11 @@ extern ISC_LIST(dig_lookup_t) lookup_list;
|
||||
extern ISC_LIST(dig_server_t) server_list;
|
||||
extern ISC_LIST(dig_searchlist_t) search_list;
|
||||
|
||||
extern isc_boolean_t have_ipv6,
|
||||
usesearch, trace, qr, debugging;
|
||||
extern isc_boolean_t have_ipv6, usesearch, qr, debugging;
|
||||
extern in_port_t port;
|
||||
extern unsigned int timeout;
|
||||
extern isc_mem_t *mctx;
|
||||
extern dns_messageid_t id;
|
||||
extern char *rootspace[BUFSIZE];
|
||||
extern isc_buffer_t rootbuf;
|
||||
extern int sendcount;
|
||||
extern int ndots;
|
||||
extern int tries;
|
||||
@@ -66,24 +61,19 @@ extern isc_taskmgr_t *taskmgr;
|
||||
extern isc_task_t *global_task;
|
||||
extern char *progname;
|
||||
|
||||
isc_boolean_t short_form = ISC_TRUE, printcmd = ISC_TRUE,
|
||||
filter = ISC_FALSE, showallsoa = ISC_FALSE,
|
||||
tcpmode = ISC_FALSE, deprecation_msg = ISC_TRUE;
|
||||
|
||||
isc_uint16_t bufsize = 0;
|
||||
isc_boolean_t identify = ISC_FALSE,
|
||||
trace = ISC_FALSE, ns_search_only = ISC_FALSE,
|
||||
forcecomment = ISC_FALSE, stats = ISC_TRUE,
|
||||
static isc_boolean_t short_form = ISC_TRUE,
|
||||
tcpmode = ISC_FALSE, deprecation_msg = ISC_TRUE,
|
||||
identify = ISC_FALSE, stats = ISC_TRUE,
|
||||
comments = ISC_TRUE, section_question = ISC_TRUE,
|
||||
section_answer = ISC_TRUE, section_authority = ISC_TRUE,
|
||||
section_additional = ISC_TRUE, recurse = ISC_TRUE,
|
||||
aaonly = ISC_FALSE;
|
||||
isc_boolean_t busy = ISC_FALSE, in_use = ISC_FALSE;
|
||||
char defclass[MXRD] = "IN";
|
||||
char deftype[MXRD] = "A";
|
||||
isc_event_t *global_event = NULL;
|
||||
static isc_boolean_t in_use = ISC_FALSE;
|
||||
static char defclass[MXRD] = "IN";
|
||||
static char deftype[MXRD] = "A";
|
||||
static isc_event_t *global_event = NULL;
|
||||
|
||||
char domainopt[DNS_NAME_MAXTEXT];
|
||||
static char domainopt[DNS_NAME_MAXTEXT];
|
||||
|
||||
static const char *rcodetext[] = {
|
||||
"NOERROR",
|
||||
@@ -180,7 +170,7 @@ printsoa(dns_rdata_t *rdata) {
|
||||
|
||||
dns_name_format(&soa.origin, namebuf, sizeof(namebuf));
|
||||
printf("\torigin = %s\n", namebuf);
|
||||
dns_name_format(&soa.mname, namebuf, sizeof(namebuf));
|
||||
dns_name_format(&soa.contact, namebuf, sizeof(namebuf));
|
||||
printf("\tmail addr = %s\n", namebuf);
|
||||
printf("\tserial = %u\n", soa.serial);
|
||||
printf("\trefresh = %u\n", soa.refresh);
|
||||
@@ -391,8 +381,7 @@ received(int bytes, isc_sockaddr_t *from, dig_query_t *query)
|
||||
}
|
||||
|
||||
void
|
||||
trying(int frmsize, char *frm, dig_lookup_t *lookup) {
|
||||
UNUSED(frmsize);
|
||||
trying(char *frm, dig_lookup_t *lookup) {
|
||||
UNUSED(frm);
|
||||
UNUSED(lookup);
|
||||
|
||||
@@ -454,22 +443,17 @@ static void
|
||||
show_settings(isc_boolean_t full, isc_boolean_t serv_only) {
|
||||
dig_server_t *srv;
|
||||
isc_sockaddr_t sockaddr;
|
||||
isc_buffer_t *b = NULL;
|
||||
isc_result_t result;
|
||||
dig_searchlist_t *listent;
|
||||
|
||||
srv = ISC_LIST_HEAD(server_list);
|
||||
|
||||
while (srv != NULL) {
|
||||
result = isc_buffer_allocate(mctx, &b, MXNAME);
|
||||
check_result(result, "isc_buffer_allocate");
|
||||
char sockstr[ISC_SOCKADDR_FORMATSIZE];
|
||||
|
||||
get_address(srv->servername, port, &sockaddr);
|
||||
result = isc_sockaddr_totext(&sockaddr, b);
|
||||
check_result(result, "isc_sockaddr_totext");
|
||||
printf("Default server: %s\nAddress: %.*s\n",
|
||||
srv->servername, (int)isc_buffer_usedlength(b),
|
||||
(char*)isc_buffer_base(b));
|
||||
isc_buffer_free(&b);
|
||||
isc_sockaddr_format(&sockaddr, sockstr, sizeof(sockstr));
|
||||
printf("Default server: %s\nAddress: %s\n",
|
||||
srv->servername, sockstr);
|
||||
if (!full)
|
||||
return;
|
||||
srv = ISC_LIST_NEXT(srv, link);
|
||||
@@ -651,14 +635,14 @@ addlookup(char *opt) {
|
||||
}
|
||||
lookup->rdclass = rdclass;
|
||||
lookup->rdclassset = ISC_TRUE;
|
||||
lookup->trace = ISC_TF(trace || ns_search_only);
|
||||
lookup->trace_root = trace;
|
||||
lookup->ns_search_only = ns_search_only;
|
||||
lookup->trace = ISC_FALSE;
|
||||
lookup->trace_root = lookup->trace;
|
||||
lookup->ns_search_only = ISC_FALSE;
|
||||
lookup->identify = identify;
|
||||
lookup->recurse = recurse;
|
||||
lookup->aaonly = aaonly;
|
||||
lookup->retries = tries;
|
||||
lookup->udpsize = bufsize;
|
||||
lookup->udpsize = 0;
|
||||
lookup->comments = comments;
|
||||
lookup->tcp_mode = tcpmode;
|
||||
lookup->stats = stats;
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
# Microsoft Developer Studio Project File - Name="dig" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=dig - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "dig.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "dig.mak" CFG="dig - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "dig - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "dig - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "dig - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "./" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "WIN32" /D "__STDC__" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /machine:I386 /out:"../../../Build/Release/dig.exe"
|
||||
|
||||
!ELSEIF "$(CFG)" == "dig - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
|
||||
# SUBTRACT CPP /X /u /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../../Build/Debug/dig.exe" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "dig - Win32 Release"
|
||||
# Name "dig - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\dig.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\dighost.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "dig"=".\dig.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -0,0 +1,227 @@
|
||||
# Microsoft Developer Studio Generated NMAKE File, Based on dig.dsp
|
||||
!IF "$(CFG)" == ""
|
||||
CFG=dig - Win32 Debug
|
||||
!MESSAGE No configuration specified. Defaulting to dig - Win32 Debug.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" != "dig - Win32 Release" && "$(CFG)" != "dig - Win32 Debug"
|
||||
!MESSAGE Invalid configuration "$(CFG)" specified.
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "dig.mak" CFG="dig - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "dig - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "dig - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
!ERROR An invalid configuration is specified.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(OS)" == "Windows_NT"
|
||||
NULL=
|
||||
!ELSE
|
||||
NULL=nul
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" == "dig - Win32 Release"
|
||||
|
||||
OUTDIR=.\Release
|
||||
INTDIR=.\Release
|
||||
|
||||
ALL : "..\..\..\Build\Release\dig.exe"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dig.obj"
|
||||
-@erase "$(INTDIR)\dighost.obj"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "..\..\..\Build\Release\dig.exe"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "./" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "WIN32" /D "__STDC__" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\dig.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\dig.bsc"
|
||||
BSC32_SBRS= \
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\dig.pdb" /machine:I386 /out:"../../../Build/Release/dig.exe"
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dig.obj" \
|
||||
"$(INTDIR)\dighost.obj"
|
||||
|
||||
"..\..\..\Build\Release\dig.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ELSEIF "$(CFG)" == "dig - Win32 Debug"
|
||||
|
||||
OUTDIR=.\Debug
|
||||
INTDIR=.\Debug
|
||||
# Begin Custom Macros
|
||||
OutDir=.\Debug
|
||||
# End Custom Macros
|
||||
|
||||
ALL : "..\..\..\Build\Debug\dig.exe" "$(OUTDIR)\dig.bsc"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dig.obj"
|
||||
-@erase "$(INTDIR)\dig.sbr"
|
||||
-@erase "$(INTDIR)\dighost.obj"
|
||||
-@erase "$(INTDIR)\dighost.sbr"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "$(INTDIR)\vc60.pdb"
|
||||
-@erase "$(OUTDIR)\dig.bsc"
|
||||
-@erase "$(OUTDIR)\dig.pdb"
|
||||
-@erase "..\..\..\Build\Debug\dig.exe"
|
||||
-@erase "..\..\..\Build\Debug\dig.ilk"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\dig.bsc"
|
||||
BSC32_SBRS= \
|
||||
"$(INTDIR)\dig.sbr" \
|
||||
"$(INTDIR)\dighost.sbr"
|
||||
|
||||
"$(OUTDIR)\dig.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
|
||||
$(BSC32) @<<
|
||||
$(BSC32_FLAGS) $(BSC32_SBRS)
|
||||
<<
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\dig.pdb" /debug /machine:I386 /out:"../../../Build/Debug/dig.exe" /pdbtype:sept
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dig.obj" \
|
||||
"$(INTDIR)\dighost.obj"
|
||||
|
||||
"..\..\..\Build\Debug\dig.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(NO_EXTERNAL_DEPS)" != "1"
|
||||
!IF EXISTS("dig.dep")
|
||||
!INCLUDE "dig.dep"
|
||||
!ELSE
|
||||
!MESSAGE Warning: cannot find "dig.dep"
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(CFG)" == "dig - Win32 Release" || "$(CFG)" == "dig - Win32 Debug"
|
||||
SOURCE=..\dig.c
|
||||
|
||||
!IF "$(CFG)" == "dig - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\dig.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "dig - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\dig.obj" "$(INTDIR)\dig.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
SOURCE=..\dighost.c
|
||||
|
||||
!IF "$(CFG)" == "dig - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\dighost.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "dig - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\dighost.obj" "$(INTDIR)\dighost.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
# Microsoft Developer Studio Project File - Name="host" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=host - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "host.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "host.mak" CFG="host - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "host - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "host - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "host - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "./" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "WIN32" /D "__STDC__" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /machine:I386 /out:"../../../Build/Release/host.exe"
|
||||
|
||||
!ELSEIF "$(CFG)" == "host - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
|
||||
# SUBTRACT CPP /X /u /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../../Build/Debug/host.exe" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "host - Win32 Release"
|
||||
# Name "host - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\dighost.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\host.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "host"=".\host.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -0,0 +1,227 @@
|
||||
# Microsoft Developer Studio Generated NMAKE File, Based on host.dsp
|
||||
!IF "$(CFG)" == ""
|
||||
CFG=host - Win32 Debug
|
||||
!MESSAGE No configuration specified. Defaulting to host - Win32 Debug.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" != "host - Win32 Release" && "$(CFG)" != "host - Win32 Debug"
|
||||
!MESSAGE Invalid configuration "$(CFG)" specified.
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "host.mak" CFG="host - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "host - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "host - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
!ERROR An invalid configuration is specified.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(OS)" == "Windows_NT"
|
||||
NULL=
|
||||
!ELSE
|
||||
NULL=nul
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" == "host - Win32 Release"
|
||||
|
||||
OUTDIR=.\Release
|
||||
INTDIR=.\Release
|
||||
|
||||
ALL : "..\..\..\Build\Release\host.exe"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dighost.obj"
|
||||
-@erase "$(INTDIR)\host.obj"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "..\..\..\Build\Release\host.exe"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "./" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "WIN32" /D "__STDC__" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\host.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\host.bsc"
|
||||
BSC32_SBRS= \
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\host.pdb" /machine:I386 /out:"../../../Build/Release/host.exe"
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dighost.obj" \
|
||||
"$(INTDIR)\host.obj"
|
||||
|
||||
"..\..\..\Build\Release\host.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ELSEIF "$(CFG)" == "host - Win32 Debug"
|
||||
|
||||
OUTDIR=.\Debug
|
||||
INTDIR=.\Debug
|
||||
# Begin Custom Macros
|
||||
OutDir=.\Debug
|
||||
# End Custom Macros
|
||||
|
||||
ALL : "..\..\..\Build\Debug\host.exe" "$(OUTDIR)\host.bsc"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dighost.obj"
|
||||
-@erase "$(INTDIR)\dighost.sbr"
|
||||
-@erase "$(INTDIR)\host.obj"
|
||||
-@erase "$(INTDIR)\host.sbr"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "$(INTDIR)\vc60.pdb"
|
||||
-@erase "$(OUTDIR)\host.bsc"
|
||||
-@erase "$(OUTDIR)\host.pdb"
|
||||
-@erase "..\..\..\Build\Debug\host.exe"
|
||||
-@erase "..\..\..\Build\Debug\host.ilk"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\host.bsc"
|
||||
BSC32_SBRS= \
|
||||
"$(INTDIR)\dighost.sbr" \
|
||||
"$(INTDIR)\host.sbr"
|
||||
|
||||
"$(OUTDIR)\host.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
|
||||
$(BSC32) @<<
|
||||
$(BSC32_FLAGS) $(BSC32_SBRS)
|
||||
<<
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\host.pdb" /debug /machine:I386 /out:"../../../Build/Debug/host.exe" /pdbtype:sept
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dighost.obj" \
|
||||
"$(INTDIR)\host.obj"
|
||||
|
||||
"..\..\..\Build\Debug\host.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(NO_EXTERNAL_DEPS)" != "1"
|
||||
!IF EXISTS("host.dep")
|
||||
!INCLUDE "host.dep"
|
||||
!ELSE
|
||||
!MESSAGE Warning: cannot find "host.dep"
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(CFG)" == "host - Win32 Release" || "$(CFG)" == "host - Win32 Debug"
|
||||
SOURCE=..\dighost.c
|
||||
|
||||
!IF "$(CFG)" == "host - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\dighost.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "host - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\dighost.obj" "$(INTDIR)\dighost.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
SOURCE=..\host.c
|
||||
|
||||
!IF "$(CFG)" == "host - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\host.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "host - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\host.obj" "$(INTDIR)\host.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
# Microsoft Developer Studio Project File - Name="nslookup" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=nslookup - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "nslookup.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "nslookup.mak" CFG="nslookup - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "nslookup - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "nslookup - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "nslookup - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "./" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "WIN32" /D "__STDC__" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /machine:I386 /out:"../../../Build/Release/nslookup.exe"
|
||||
|
||||
!ELSEIF "$(CFG)" == "nslookup - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
|
||||
# SUBTRACT CPP /X /u /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../../Build/Debug/nslookup.exe" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "nslookup - Win32 Release"
|
||||
# Name "nslookup - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\dighost.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\nslookup.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "nslookup"=".\nslookup.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -0,0 +1,227 @@
|
||||
# Microsoft Developer Studio Generated NMAKE File, Based on nslookup.dsp
|
||||
!IF "$(CFG)" == ""
|
||||
CFG=nslookup - Win32 Debug
|
||||
!MESSAGE No configuration specified. Defaulting to nslookup - Win32 Debug.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" != "nslookup - Win32 Release" && "$(CFG)" != "nslookup - Win32 Debug"
|
||||
!MESSAGE Invalid configuration "$(CFG)" specified.
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "nslookup.mak" CFG="nslookup - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "nslookup - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "nslookup - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
!ERROR An invalid configuration is specified.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(OS)" == "Windows_NT"
|
||||
NULL=
|
||||
!ELSE
|
||||
NULL=nul
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" == "nslookup - Win32 Release"
|
||||
|
||||
OUTDIR=.\Release
|
||||
INTDIR=.\Release
|
||||
|
||||
ALL : "..\..\..\Build\Release\nslookup.exe"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dighost.obj"
|
||||
-@erase "$(INTDIR)\nslookup.obj"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "..\..\..\Build\Release\nslookup.exe"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "./" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "WIN32" /D "__STDC__" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\nslookup.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\nslookup.bsc"
|
||||
BSC32_SBRS= \
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\nslookup.pdb" /machine:I386 /out:"../../../Build/Release/nslookup.exe"
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dighost.obj" \
|
||||
"$(INTDIR)\nslookup.obj"
|
||||
|
||||
"..\..\..\Build\Release\nslookup.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ELSEIF "$(CFG)" == "nslookup - Win32 Debug"
|
||||
|
||||
OUTDIR=.\Debug
|
||||
INTDIR=.\Debug
|
||||
# Begin Custom Macros
|
||||
OutDir=.\Debug
|
||||
# End Custom Macros
|
||||
|
||||
ALL : "..\..\..\Build\Debug\nslookup.exe" "$(OUTDIR)\nslookup.bsc"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dighost.obj"
|
||||
-@erase "$(INTDIR)\dighost.sbr"
|
||||
-@erase "$(INTDIR)\nslookup.obj"
|
||||
-@erase "$(INTDIR)\nslookup.sbr"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "$(INTDIR)\vc60.pdb"
|
||||
-@erase "$(OUTDIR)\nslookup.bsc"
|
||||
-@erase "$(OUTDIR)\nslookup.pdb"
|
||||
-@erase "..\..\..\Build\Debug\nslookup.exe"
|
||||
-@erase "..\..\..\Build\Debug\nslookup.ilk"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\nslookup.bsc"
|
||||
BSC32_SBRS= \
|
||||
"$(INTDIR)\dighost.sbr" \
|
||||
"$(INTDIR)\nslookup.sbr"
|
||||
|
||||
"$(OUTDIR)\nslookup.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
|
||||
$(BSC32) @<<
|
||||
$(BSC32_FLAGS) $(BSC32_SBRS)
|
||||
<<
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\nslookup.pdb" /debug /machine:I386 /out:"../../../Build/Debug/nslookup.exe" /pdbtype:sept
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dighost.obj" \
|
||||
"$(INTDIR)\nslookup.obj"
|
||||
|
||||
"..\..\..\Build\Debug\nslookup.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(NO_EXTERNAL_DEPS)" != "1"
|
||||
!IF EXISTS("nslookup.dep")
|
||||
!INCLUDE "nslookup.dep"
|
||||
!ELSE
|
||||
!MESSAGE Warning: cannot find "nslookup.dep"
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(CFG)" == "nslookup - Win32 Release" || "$(CFG)" == "nslookup - Win32 Debug"
|
||||
SOURCE=..\dighost.c
|
||||
|
||||
!IF "$(CFG)" == "nslookup - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\dighost.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "nslookup - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\dighost.obj" "$(INTDIR)\dighost.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
SOURCE=..\nslookup.c
|
||||
|
||||
!IF "$(CFG)" == "nslookup - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\nslookup.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "nslookup - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\nslookup.obj" "$(INTDIR)\nslookup.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.18 2001/03/30 22:50:20 bwelling Exp $
|
||||
# $Id: Makefile.in,v 1.19 2001/06/01 00:44:58 bwelling Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
@@ -90,7 +90,7 @@ installdirs:
|
||||
|
||||
install:: ${TARGETS} installdirs
|
||||
for t in ${TARGETS}; do ${LIBTOOL} ${INSTALL_PROGRAM} $$t ${DESTDIR}${sbindir}; done
|
||||
for m in ${MANPAGES}; do ${INSTALL_DATA} $$m ${DESTDIR}${mandir}/man8; done
|
||||
for m in ${MANPAGES}; do ${INSTALL_DATA} ${srcdir}/$$m ${DESTDIR}${mandir}/man8; done
|
||||
|
||||
clean distclean::
|
||||
rm -f ${TARGETS}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -12,9 +13,7 @@
|
||||
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
||||
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
.\" $Id: dnssec-keygen.8,v 1.17 2001/05/30 20:30:12 bwelling Exp $
|
||||
|
||||
.\"
|
||||
.TH "DNSSEC-KEYGEN" "8" "June 30, 2000" "BIND9" ""
|
||||
.SH NAME
|
||||
dnssec-keygen \- DNSSEC key generation tool
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssec-keygen.c,v 1.47 2001/02/15 23:26:29 bwelling Exp $ */
|
||||
/* $Id: dnssec-keygen.c,v 1.48.2.1 2001/10/05 00:21:44 bwelling Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -40,7 +40,6 @@
|
||||
#include <dns/secalg.h>
|
||||
|
||||
#include <dst/dst.h>
|
||||
#include <dst/result.h>
|
||||
|
||||
#include "dnssectool.h"
|
||||
|
||||
@@ -217,8 +216,6 @@ main(int argc, char **argv) {
|
||||
if (ret != ISC_R_SUCCESS)
|
||||
fatal("unknown algorithm %s", algname);
|
||||
}
|
||||
if (dst_algorithm_supported(alg) == ISC_FALSE)
|
||||
fatal("unsupported algorithm %s", algname);
|
||||
|
||||
if (type != NULL) {
|
||||
if (strcasecmp(type, "NOAUTH") == 0)
|
||||
@@ -344,7 +341,7 @@ main(int argc, char **argv) {
|
||||
dns_name_format(name, namestr, sizeof namestr);
|
||||
alg_format(alg, algstr, sizeof algstr);
|
||||
fatal("failed to generate key %s/%s: %s\n",
|
||||
namestr, algstr, dst_result_totext(ret));
|
||||
namestr, algstr, isc_result_totext(ret));
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<!--
|
||||
- Copyright (C) 2001 Internet Software Consortium.
|
||||
-
|
||||
- Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
-
|
||||
- THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
|
||||
- DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
@@ -14,9 +14,6 @@
|
||||
- NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
- WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dnssec-keygen.html,v 1.3 2001/04/10 21:50:27 bwelling Exp $ -->
|
||||
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -12,9 +13,7 @@
|
||||
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
||||
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
.\" $Id: dnssec-makekeyset.8,v 1.14 2001/05/30 20:30:13 bwelling Exp $
|
||||
|
||||
.\"
|
||||
.TH "DNSSEC-MAKEKEYSET" "8" "June 30, 2000" "BIND9" ""
|
||||
.SH NAME
|
||||
dnssec-makekeyset \- DNSSEC zone signing tool
|
||||
@@ -81,7 +80,7 @@ The default is 3600 seconds.
|
||||
Sets the debugging level.
|
||||
.TP
|
||||
\fBkey\fR
|
||||
Lists the keys included in the keyset file. These keys
|
||||
The list of keys to be included in the keyset file. These keys
|
||||
are expressed in the form \fIKnnnn.+aaa+iiiii\fR
|
||||
as generated by \fBdnssec-keygen\fR.
|
||||
.SH "EXAMPLE"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssec-makekeyset.c,v 1.52 2001/05/10 06:04:56 bwelling Exp $ */
|
||||
/* $Id: dnssec-makekeyset.c,v 1.52.2.1 2001/10/05 00:21:45 bwelling Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -214,7 +214,8 @@ main(int argc, char *argv[]) {
|
||||
eflags |= ISC_ENTROPY_GOODONLY;
|
||||
result = dst_lib_init(mctx, ectx, eflags);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("could not initialize dst");
|
||||
fatal("could not initialize dst: %s",
|
||||
isc_result_totext(result));
|
||||
|
||||
isc_stdtime_get(&now);
|
||||
|
||||
@@ -252,7 +253,8 @@ main(int argc, char *argv[]) {
|
||||
result = dst_key_fromnamedfile(argv[i], DST_TYPE_PUBLIC,
|
||||
mctx, &key);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("error loading key from %s", argv[i]);
|
||||
fatal("error loading key from %s: %s", argv[i],
|
||||
isc_result_totext(result));
|
||||
if (rdatalist.rdclass == 0)
|
||||
rdatalist.rdclass = dst_key_class(key);
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
- WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dnssec-makekeyset.docbook,v 1.2 2001/04/10 21:50:30 bwelling Exp $ -->
|
||||
<!-- $Id: dnssec-makekeyset.docbook,v 1.2.2.1 2001/09/14 20:29:32 gson Exp $ -->
|
||||
|
||||
<refentry>
|
||||
<refentryinfo>
|
||||
@@ -166,7 +166,7 @@
|
||||
<term>key</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Lists the keys included in the keyset file. These keys
|
||||
The list of keys to be included in the keyset file. These keys
|
||||
are expressed in the form <filename>Knnnn.+aaa+iiiii</filename>
|
||||
as generated by <command>dnssec-keygen</command>.
|
||||
</para>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<!--
|
||||
- Copyright (C) 2001 Internet Software Consortium.
|
||||
-
|
||||
- Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
-
|
||||
- THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
|
||||
- DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
@@ -14,9 +14,6 @@
|
||||
- NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
- WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dnssec-makekeyset.html,v 1.2 2001/04/10 21:50:31 bwelling Exp $ -->
|
||||
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
@@ -284,7 +281,7 @@ CLASS="REPLACEABLE"
|
||||
>key</DT
|
||||
><DD
|
||||
><P
|
||||
> Lists the keys included in the keyset file. These keys
|
||||
> The list of keys to be included in the keyset file. These keys
|
||||
are expressed in the form <TT
|
||||
CLASS="FILENAME"
|
||||
>Knnnn.+aaa+iiiii</TT
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -12,9 +13,7 @@
|
||||
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
||||
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
.\" $Id: dnssec-signkey.8,v 1.16 2001/05/30 20:30:14 bwelling Exp $
|
||||
|
||||
.\"
|
||||
.TH "DNSSEC-SIGNKEY" "8" "June 30, 2000" "BIND9" ""
|
||||
.SH NAME
|
||||
dnssec-signkey \- DNSSEC key set signing tool
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssec-signkey.c,v 1.50 2001/05/10 06:04:57 bwelling Exp $ */
|
||||
/* $Id: dnssec-signkey.c,v 1.50.2.1 2001/10/05 00:21:46 bwelling Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -247,7 +247,8 @@ main(int argc, char *argv[]) {
|
||||
eflags |= ISC_ENTROPY_GOODONLY;
|
||||
result = dst_lib_init(mctx, ectx, eflags);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("could not initialize dst");
|
||||
fatal("could not initialize dst: %s",
|
||||
isc_result_totext(result));
|
||||
|
||||
isc_stdtime_get(&now);
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<!--
|
||||
- Copyright (C) 2001 Internet Software Consortium.
|
||||
-
|
||||
- Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
-
|
||||
- THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
|
||||
- DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
@@ -14,9 +14,6 @@
|
||||
- NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
- WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dnssec-signkey.html,v 1.2 2001/04/10 21:50:35 bwelling Exp $ -->
|
||||
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -12,9 +13,7 @@
|
||||
.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
||||
.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
.\" $Id: dnssec-signzone.8,v 1.21 2001/05/30 20:30:16 bwelling Exp $
|
||||
|
||||
.\"
|
||||
.TH "DNSSEC-SIGNZONE" "8" "June 30, 2000" "BIND9" ""
|
||||
.SH NAME
|
||||
dnssec-signzone \- DNSSEC zone signing tool
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssec-signzone.c,v 1.138 2001/05/10 06:04:58 bwelling Exp $ */
|
||||
/* $Id: dnssec-signzone.c,v 1.139.2.1 2001/10/05 00:21:48 bwelling Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -100,7 +100,7 @@ static isc_entropy_t *ectx = NULL;
|
||||
static dns_ttl_t zonettl;
|
||||
static FILE *fp;
|
||||
static char *tempfile = NULL;
|
||||
static const dns_master_style_t *masterstyle = &dns_master_style_explicitttl;
|
||||
static const dns_master_style_t *masterstyle;
|
||||
static unsigned int nsigned = 0, nretained = 0, ndropped = 0;
|
||||
static unsigned int nverified = 0, nverifyfailed = 0;
|
||||
static const char *directory;
|
||||
@@ -491,7 +491,8 @@ hasnullkey(dns_rdataset_t *rdataset) {
|
||||
result = dns_dnssec_keyfromrdata(dns_rootname,
|
||||
&rdata, mctx, &key);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("could not convert KEY into internal format");
|
||||
fatal("could not convert KEY into internal format: %s",
|
||||
isc_result_totext(result));
|
||||
if (dst_key_isnullkey(key))
|
||||
found = ISC_TRUE;
|
||||
dst_key_free(&key);
|
||||
@@ -1513,6 +1514,7 @@ main(int argc, char *argv[]) {
|
||||
dns_rdataclass_t rdclass;
|
||||
isc_textregion_t r;
|
||||
isc_task_t **tasks = NULL;
|
||||
masterstyle = &dns_master_style_explicitttl;
|
||||
|
||||
check_result(isc_app_start(), "isc_app_start");
|
||||
|
||||
@@ -1683,7 +1685,8 @@ main(int argc, char *argv[]) {
|
||||
DST_TYPE_PRIVATE,
|
||||
mctx, &newkey);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("cannot load key %s", argv[i]);
|
||||
fatal("cannot load key %s: %s", argv[i],
|
||||
isc_result_totext(result));
|
||||
|
||||
key = ISC_LIST_HEAD(keylist);
|
||||
while (key != NULL) {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<!--
|
||||
- Copyright (C) 2001 Internet Software Consortium.
|
||||
-
|
||||
- Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
- copyright notice and this permission notice appear in all copies.
|
||||
-
|
||||
-
|
||||
- THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
|
||||
- DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
@@ -14,9 +14,6 @@
|
||||
- NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
- WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dnssec-signzone.html,v 1.2 2001/04/10 21:50:38 bwelling Exp $ -->
|
||||
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
|
||||
+21
-98
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssectool.c,v 1.28 2001/03/31 02:12:24 bwelling Exp $ */
|
||||
/* $Id: dnssectool.c,v 1.31.2.1 2001/09/06 00:14:15 gson Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/entropy.h>
|
||||
#include <isc/keyboard.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/time.h>
|
||||
#include <isc/util.h>
|
||||
@@ -43,8 +42,6 @@ extern int verbose;
|
||||
extern const char *program;
|
||||
|
||||
static isc_entropysource_t *source = NULL;
|
||||
static isc_keyboard_t kbd;
|
||||
static isc_boolean_t wantkeyboard = ISC_FALSE;
|
||||
static fatalcallback_t *fatalcallback = NULL;
|
||||
|
||||
void
|
||||
@@ -128,7 +125,7 @@ key_format(const dst_key_t *key, char *cp, unsigned int size) {
|
||||
char algstr[DNS_NAME_FORMATSIZE];
|
||||
|
||||
dns_name_format(dst_key_name(key), namestr, sizeof namestr);
|
||||
alg_format(dst_key_alg(key), algstr, sizeof algstr);
|
||||
alg_format((dns_secalg_t) dst_key_alg(key), algstr, sizeof algstr);
|
||||
snprintf(cp, size, "%s/%s/%d", namestr, algstr, dst_key_id(key));
|
||||
}
|
||||
|
||||
@@ -201,104 +198,30 @@ cleanup_logging(isc_log_t **logp) {
|
||||
logp = NULL;
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
kbdstart(isc_entropysource_t *source, void *arg, isc_boolean_t blocking) {
|
||||
isc_keyboard_t *kbd = (isc_keyboard_t *)arg;
|
||||
static isc_boolean_t first = ISC_TRUE;
|
||||
|
||||
UNUSED(source);
|
||||
|
||||
if (!blocking)
|
||||
return (ISC_R_NOENTROPY);
|
||||
if (first) {
|
||||
if (!wantkeyboard) {
|
||||
fprintf(stderr, "You must use the keyboard to create "
|
||||
"entropy, since your system is lacking\n");
|
||||
fprintf(stderr, "/dev/random (or equivalent)\n\n");
|
||||
}
|
||||
first = ISC_FALSE;
|
||||
}
|
||||
fprintf(stderr, "start typing:\n");
|
||||
return (isc_keyboard_open(kbd));
|
||||
}
|
||||
|
||||
static void
|
||||
kbdstop(isc_entropysource_t *source, void *arg) {
|
||||
isc_keyboard_t *kbd = (isc_keyboard_t *)arg;
|
||||
|
||||
UNUSED(source);
|
||||
|
||||
if (!isc_keyboard_canceled(kbd))
|
||||
fprintf(stderr, "stop typing.\r\n");
|
||||
(void)isc_keyboard_close(kbd, 3);
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
kbdget(isc_entropysource_t *source, void *arg, isc_boolean_t blocking) {
|
||||
isc_keyboard_t *kbd = (isc_keyboard_t *)arg;
|
||||
isc_result_t result;
|
||||
isc_time_t t;
|
||||
isc_uint32_t sample;
|
||||
isc_uint32_t extra;
|
||||
unsigned char c;
|
||||
|
||||
if (!blocking)
|
||||
return (ISC_R_NOTBLOCKING);
|
||||
|
||||
result = isc_keyboard_getchar(kbd, &c);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
|
||||
result = isc_time_now(&t);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
|
||||
sample = isc_time_nanoseconds(&t);
|
||||
extra = c;
|
||||
|
||||
result = isc_entropy_addcallbacksample(source, sample, extra);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
fprintf(stderr, "\r\n");
|
||||
return (result);
|
||||
}
|
||||
|
||||
fprintf(stderr, ".");
|
||||
fflush(stderr);
|
||||
|
||||
return (result);
|
||||
}
|
||||
|
||||
void
|
||||
setup_entropy(isc_mem_t *mctx, const char *randomfile, isc_entropy_t **ectx) {
|
||||
isc_result_t result;
|
||||
int usekeyboard = ISC_ENTROPY_KEYBOARDMAYBE;
|
||||
|
||||
REQUIRE(ectx != NULL);
|
||||
|
||||
if (*ectx == NULL) {
|
||||
result = isc_entropy_create(mctx, ectx);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("could not create entropy object");
|
||||
}
|
||||
|
||||
if (randomfile != NULL && strcmp(randomfile, "keyboard") == 0) {
|
||||
usekeyboard = ISC_ENTROPY_KEYBOARDYES;
|
||||
randomfile = NULL;
|
||||
}
|
||||
|
||||
result = isc_entropy_usebestsource(*ectx, &source, randomfile,
|
||||
usekeyboard);
|
||||
|
||||
result = isc_entropy_create(mctx, ectx);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("could not create entropy object");
|
||||
if (randomfile != NULL && strcasecmp(randomfile, "keyboard") != 0) {
|
||||
result = isc_entropy_createfilesource(*ectx, randomfile);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("could not open randomdev %s: %s", randomfile,
|
||||
isc_result_totext(result));
|
||||
}
|
||||
else {
|
||||
#ifdef PATH_RANDOMDEV
|
||||
if (randomfile == NULL) {
|
||||
result = isc_entropy_createfilesource(*ectx,
|
||||
PATH_RANDOMDEV);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
return;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
wantkeyboard = ISC_TRUE;
|
||||
result = isc_entropy_createcallbacksource(*ectx, kbdstart,
|
||||
kbdget, kbdstop,
|
||||
&kbd, &source);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("failed to open keyboard: %s\n",
|
||||
isc_result_totext(result));
|
||||
}
|
||||
fatal("could not initialize entropy source: %s",
|
||||
isc_result_totext(result));
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssectool.h,v 1.14 2001/03/31 02:12:26 bwelling Exp $ */
|
||||
/* $Id: dnssectool.h,v 1.15 2001/08/08 22:54:16 gson Exp $ */
|
||||
|
||||
#ifndef DNSSECTOOL_H
|
||||
#define DNSSECTOOL_H 1
|
||||
@@ -37,7 +37,7 @@ void
|
||||
check_result(isc_result_t result, const char *message);
|
||||
|
||||
void
|
||||
vbprintf(int level, const char *fmt, ...);
|
||||
vbprintf(int level, const char *fmt, ...) ISC_FORMAT_PRINTF(2, 3);
|
||||
|
||||
void
|
||||
type_format(const dns_rdatatype_t type, char *cp, unsigned int size);
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
# Microsoft Developer Studio Project File - Name="keygen" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=keygen - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "keygen.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "keygen.mak" CFG="keygen - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "keygen - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "keygen - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "keygen - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 user32.lib advapi32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /machine:I386 /out:"../../../Build/Release/dnssec-keygen.exe"
|
||||
|
||||
!ELSEIF "$(CFG)" == "keygen - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
|
||||
# SUBTRACT CPP /X /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 user32.lib advapi32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../../Build/Debug/dnssec-keygen.exe" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "keygen - Win32 Release"
|
||||
# Name "keygen - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE="..\dnssec-keygen.c"
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\dnssectool.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "keygen"=".\keygen.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -0,0 +1,227 @@
|
||||
# Microsoft Developer Studio Generated NMAKE File, Based on keygen.dsp
|
||||
!IF "$(CFG)" == ""
|
||||
CFG=keygen - Win32 Debug
|
||||
!MESSAGE No configuration specified. Defaulting to keygen - Win32 Debug.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" != "keygen - Win32 Release" && "$(CFG)" != "keygen - Win32 Debug"
|
||||
!MESSAGE Invalid configuration "$(CFG)" specified.
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "keygen.mak" CFG="keygen - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "keygen - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "keygen - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
!ERROR An invalid configuration is specified.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(OS)" == "Windows_NT"
|
||||
NULL=
|
||||
!ELSE
|
||||
NULL=nul
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" == "keygen - Win32 Release"
|
||||
|
||||
OUTDIR=.\Release
|
||||
INTDIR=.\Release
|
||||
|
||||
ALL : "..\..\..\Build\Release\dnssec-keygen.exe"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dnssec-keygen.obj"
|
||||
-@erase "$(INTDIR)\dnssectool.obj"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "..\..\..\Build\Release\dnssec-keygen.exe"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\keygen.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\keygen.bsc"
|
||||
BSC32_SBRS= \
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\dnssec-keygen.pdb" /machine:I386 /out:"../../../Build/Release/dnssec-keygen.exe"
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dnssec-keygen.obj" \
|
||||
"$(INTDIR)\dnssectool.obj"
|
||||
|
||||
"..\..\..\Build\Release\dnssec-keygen.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ELSEIF "$(CFG)" == "keygen - Win32 Debug"
|
||||
|
||||
OUTDIR=.\Debug
|
||||
INTDIR=.\Debug
|
||||
# Begin Custom Macros
|
||||
OutDir=.\Debug
|
||||
# End Custom Macros
|
||||
|
||||
ALL : "..\..\..\Build\Debug\dnssec-keygen.exe" "$(OUTDIR)\keygen.bsc"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dnssec-keygen.obj"
|
||||
-@erase "$(INTDIR)\dnssec-keygen.sbr"
|
||||
-@erase "$(INTDIR)\dnssectool.obj"
|
||||
-@erase "$(INTDIR)\dnssectool.sbr"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "$(INTDIR)\vc60.pdb"
|
||||
-@erase "$(OUTDIR)\dnssec-keygen.pdb"
|
||||
-@erase "$(OUTDIR)\keygen.bsc"
|
||||
-@erase "..\..\..\Build\Debug\dnssec-keygen.exe"
|
||||
-@erase "..\..\..\Build\Debug\dnssec-keygen.ilk"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\keygen.bsc"
|
||||
BSC32_SBRS= \
|
||||
"$(INTDIR)\dnssec-keygen.sbr" \
|
||||
"$(INTDIR)\dnssectool.sbr"
|
||||
|
||||
"$(OUTDIR)\keygen.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
|
||||
$(BSC32) @<<
|
||||
$(BSC32_FLAGS) $(BSC32_SBRS)
|
||||
<<
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\dnssec-keygen.pdb" /debug /machine:I386 /out:"../../../Build/Debug/dnssec-keygen.exe" /pdbtype:sept
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dnssec-keygen.obj" \
|
||||
"$(INTDIR)\dnssectool.obj"
|
||||
|
||||
"..\..\..\Build\Debug\dnssec-keygen.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(NO_EXTERNAL_DEPS)" != "1"
|
||||
!IF EXISTS("keygen.dep")
|
||||
!INCLUDE "keygen.dep"
|
||||
!ELSE
|
||||
!MESSAGE Warning: cannot find "keygen.dep"
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(CFG)" == "keygen - Win32 Release" || "$(CFG)" == "keygen - Win32 Debug"
|
||||
SOURCE="..\dnssec-keygen.c"
|
||||
|
||||
!IF "$(CFG)" == "keygen - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssec-keygen.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "keygen - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssec-keygen.obj" "$(INTDIR)\dnssec-keygen.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
SOURCE=..\dnssectool.c
|
||||
|
||||
!IF "$(CFG)" == "keygen - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssectool.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "keygen - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssectool.obj" "$(INTDIR)\dnssectool.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
# Microsoft Developer Studio Project File - Name="makekeyset" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=makekeyset - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "makekeyset.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "makekeyset.mak" CFG="makekeyset - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "makekeyset - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "makekeyset - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "makekeyset - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 user32.lib advapi32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /machine:I386 /out:"../../../Build/Release/dnssec-makekeyset.exe"
|
||||
|
||||
!ELSEIF "$(CFG)" == "makekeyset - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
|
||||
# SUBTRACT CPP /X /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 user32.lib advapi32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../../Build/Debug/dnssec-makekeyset.exe" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "makekeyset - Win32 Release"
|
||||
# Name "makekeyset - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE="..\dnssec-makekeyset.c"
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\dnssectool.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "makekeyset"=".\makekeyset.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -0,0 +1,227 @@
|
||||
# Microsoft Developer Studio Generated NMAKE File, Based on makekeyset.dsp
|
||||
!IF "$(CFG)" == ""
|
||||
CFG=makekeyset - Win32 Debug
|
||||
!MESSAGE No configuration specified. Defaulting to makekeyset - Win32 Debug.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" != "makekeyset - Win32 Release" && "$(CFG)" != "makekeyset - Win32 Debug"
|
||||
!MESSAGE Invalid configuration "$(CFG)" specified.
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "makekeyset.mak" CFG="makekeyset - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "makekeyset - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "makekeyset - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
!ERROR An invalid configuration is specified.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(OS)" == "Windows_NT"
|
||||
NULL=
|
||||
!ELSE
|
||||
NULL=nul
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" == "makekeyset - Win32 Release"
|
||||
|
||||
OUTDIR=.\Release
|
||||
INTDIR=.\Release
|
||||
|
||||
ALL : "..\..\..\Build\Release\dnssec-makekeyset.exe"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dnssec-makekeyset.obj"
|
||||
-@erase "$(INTDIR)\dnssectool.obj"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "..\..\..\Build\Release\dnssec-makekeyset.exe"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\makekeyset.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\makekeyset.bsc"
|
||||
BSC32_SBRS= \
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\dnssec-makekeyset.pdb" /machine:I386 /out:"../../../Build/Release/dnssec-makekeyset.exe"
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dnssec-makekeyset.obj" \
|
||||
"$(INTDIR)\dnssectool.obj"
|
||||
|
||||
"..\..\..\Build\Release\dnssec-makekeyset.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ELSEIF "$(CFG)" == "makekeyset - Win32 Debug"
|
||||
|
||||
OUTDIR=.\Debug
|
||||
INTDIR=.\Debug
|
||||
# Begin Custom Macros
|
||||
OutDir=.\Debug
|
||||
# End Custom Macros
|
||||
|
||||
ALL : "..\..\..\Build\Debug\dnssec-makekeyset.exe" "$(OUTDIR)\makekeyset.bsc"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dnssec-makekeyset.obj"
|
||||
-@erase "$(INTDIR)\dnssec-makekeyset.sbr"
|
||||
-@erase "$(INTDIR)\dnssectool.obj"
|
||||
-@erase "$(INTDIR)\dnssectool.sbr"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "$(INTDIR)\vc60.pdb"
|
||||
-@erase "$(OUTDIR)\dnssec-makekeyset.pdb"
|
||||
-@erase "$(OUTDIR)\makekeyset.bsc"
|
||||
-@erase "..\..\..\Build\Debug\dnssec-makekeyset.exe"
|
||||
-@erase "..\..\..\Build\Debug\dnssec-makekeyset.ilk"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\makekeyset.bsc"
|
||||
BSC32_SBRS= \
|
||||
"$(INTDIR)\dnssec-makekeyset.sbr" \
|
||||
"$(INTDIR)\dnssectool.sbr"
|
||||
|
||||
"$(OUTDIR)\makekeyset.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
|
||||
$(BSC32) @<<
|
||||
$(BSC32_FLAGS) $(BSC32_SBRS)
|
||||
<<
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\dnssec-makekeyset.pdb" /debug /machine:I386 /out:"../../../Build/Debug/dnssec-makekeyset.exe" /pdbtype:sept
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dnssec-makekeyset.obj" \
|
||||
"$(INTDIR)\dnssectool.obj"
|
||||
|
||||
"..\..\..\Build\Debug\dnssec-makekeyset.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(NO_EXTERNAL_DEPS)" != "1"
|
||||
!IF EXISTS("makekeyset.dep")
|
||||
!INCLUDE "makekeyset.dep"
|
||||
!ELSE
|
||||
!MESSAGE Warning: cannot find "makekeyset.dep"
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(CFG)" == "makekeyset - Win32 Release" || "$(CFG)" == "makekeyset - Win32 Debug"
|
||||
SOURCE="..\dnssec-makekeyset.c"
|
||||
|
||||
!IF "$(CFG)" == "makekeyset - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssec-makekeyset.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "makekeyset - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssec-makekeyset.obj" "$(INTDIR)\dnssec-makekeyset.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
SOURCE=..\dnssectool.c
|
||||
|
||||
!IF "$(CFG)" == "makekeyset - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssectool.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "makekeyset - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssectool.obj" "$(INTDIR)\dnssectool.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
# Microsoft Developer Studio Project File - Name="nsupdate" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=nsupdate - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "nsupdate.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "nsupdate.mak" CFG="nsupdate - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "nsupdate - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "nsupdate - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "nsupdate - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "./" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/lwres/win32/include" /I "../../../lib/lwres/include" /I "../../../lib/lwres/win32/include/lwres" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "WIN32" /D "__STDC__" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib ../../../lib/lwres/win32/Release/liblwres.lib user32.lib advapi32.lib ws2_32.lib /nologo /subsystem:console /machine:I386 /out:"../../../Build/Release/nsupdate.exe"
|
||||
|
||||
!ELSEIF "$(CFG)" == "nsupdate - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/lwres/win32/include" /I "../../../lib/lwres/include" /I "../../../lib/lwres/win32/include/lwres" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
|
||||
# SUBTRACT CPP /X /u /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib ../../../lib/lwres/win32/Debug/liblwres.lib user32.lib advapi32.lib ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../../Build/Debug/nsupdate.exe" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "nsupdate - Win32 Release"
|
||||
# Name "nsupdate - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\nsupdate.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "nsupdate"=".\nsupdate.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
# Microsoft Developer Studio Project File - Name="signkey" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=signkey - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "signkey.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "signkey.mak" CFG="signkey - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "signkey - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "signkey - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "signkey - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 user32.lib advapi32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /machine:I386 /out:"../../../Build/Release/dnssec-signkey.exe"
|
||||
|
||||
!ELSEIF "$(CFG)" == "signkey - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
|
||||
# SUBTRACT CPP /X /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 user32.lib advapi32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../../Build/Debug/dnssec-signkey.exe" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "signkey - Win32 Release"
|
||||
# Name "signkey - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE="..\dnssec-signkey.c"
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\dnssectool.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "signkey"=".\signkey.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -0,0 +1,227 @@
|
||||
# Microsoft Developer Studio Generated NMAKE File, Based on signkey.dsp
|
||||
!IF "$(CFG)" == ""
|
||||
CFG=signkey - Win32 Debug
|
||||
!MESSAGE No configuration specified. Defaulting to signkey - Win32 Debug.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" != "signkey - Win32 Release" && "$(CFG)" != "signkey - Win32 Debug"
|
||||
!MESSAGE Invalid configuration "$(CFG)" specified.
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "signkey.mak" CFG="signkey - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "signkey - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "signkey - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
!ERROR An invalid configuration is specified.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(OS)" == "Windows_NT"
|
||||
NULL=
|
||||
!ELSE
|
||||
NULL=nul
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" == "signkey - Win32 Release"
|
||||
|
||||
OUTDIR=.\Release
|
||||
INTDIR=.\Release
|
||||
|
||||
ALL : "..\..\..\Build\Release\dnssec-signkey.exe"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dnssec-signkey.obj"
|
||||
-@erase "$(INTDIR)\dnssectool.obj"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "..\..\..\Build\Release\dnssec-signkey.exe"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\signkey.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\signkey.bsc"
|
||||
BSC32_SBRS= \
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\dnssec-signkey.pdb" /machine:I386 /out:"../../../Build/Release/dnssec-signkey.exe"
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dnssec-signkey.obj" \
|
||||
"$(INTDIR)\dnssectool.obj"
|
||||
|
||||
"..\..\..\Build\Release\dnssec-signkey.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ELSEIF "$(CFG)" == "signkey - Win32 Debug"
|
||||
|
||||
OUTDIR=.\Debug
|
||||
INTDIR=.\Debug
|
||||
# Begin Custom Macros
|
||||
OutDir=.\Debug
|
||||
# End Custom Macros
|
||||
|
||||
ALL : "..\..\..\Build\Debug\dnssec-signkey.exe" "$(OUTDIR)\signkey.bsc"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dnssec-signkey.obj"
|
||||
-@erase "$(INTDIR)\dnssec-signkey.sbr"
|
||||
-@erase "$(INTDIR)\dnssectool.obj"
|
||||
-@erase "$(INTDIR)\dnssectool.sbr"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "$(INTDIR)\vc60.pdb"
|
||||
-@erase "$(OUTDIR)\dnssec-signkey.pdb"
|
||||
-@erase "$(OUTDIR)\signkey.bsc"
|
||||
-@erase "..\..\..\Build\Debug\dnssec-signkey.exe"
|
||||
-@erase "..\..\..\Build\Debug\dnssec-signkey.ilk"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\signkey.bsc"
|
||||
BSC32_SBRS= \
|
||||
"$(INTDIR)\dnssec-signkey.sbr" \
|
||||
"$(INTDIR)\dnssectool.sbr"
|
||||
|
||||
"$(OUTDIR)\signkey.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
|
||||
$(BSC32) @<<
|
||||
$(BSC32_FLAGS) $(BSC32_SBRS)
|
||||
<<
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\dnssec-signkey.pdb" /debug /machine:I386 /out:"../../../Build/Debug/dnssec-signkey.exe" /pdbtype:sept
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dnssec-signkey.obj" \
|
||||
"$(INTDIR)\dnssectool.obj"
|
||||
|
||||
"..\..\..\Build\Debug\dnssec-signkey.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(NO_EXTERNAL_DEPS)" != "1"
|
||||
!IF EXISTS("signkey.dep")
|
||||
!INCLUDE "signkey.dep"
|
||||
!ELSE
|
||||
!MESSAGE Warning: cannot find "signkey.dep"
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(CFG)" == "signkey - Win32 Release" || "$(CFG)" == "signkey - Win32 Debug"
|
||||
SOURCE="..\dnssec-signkey.c"
|
||||
|
||||
!IF "$(CFG)" == "signkey - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssec-signkey.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "signkey - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssec-signkey.obj" "$(INTDIR)\dnssec-signkey.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
SOURCE=..\dnssectool.c
|
||||
|
||||
!IF "$(CFG)" == "signkey - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssectool.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "signkey - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssectool.obj" "$(INTDIR)\dnssectool.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
# Microsoft Developer Studio Project File - Name="signzone" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=signzone - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "signzone.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "signzone.mak" CFG="signzone - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "signzone - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "signzone - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "signzone - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 user32.lib advapi32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /machine:I386 /out:"../../../Build/Release/dnssec-signzone.exe"
|
||||
|
||||
!ELSEIF "$(CFG)" == "signzone - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
|
||||
# SUBTRACT CPP /X /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 user32.lib advapi32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../../Build/Debug/dnssec-signzone.exe" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "signzone - Win32 Release"
|
||||
# Name "signzone - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE="..\dnssec-signzone.c"
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\dnssectool.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "signzone"=".\signzone.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -0,0 +1,227 @@
|
||||
# Microsoft Developer Studio Generated NMAKE File, Based on signzone.dsp
|
||||
!IF "$(CFG)" == ""
|
||||
CFG=signzone - Win32 Debug
|
||||
!MESSAGE No configuration specified. Defaulting to signzone - Win32 Debug.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" != "signzone - Win32 Release" && "$(CFG)" != "signzone - Win32 Debug"
|
||||
!MESSAGE Invalid configuration "$(CFG)" specified.
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "signzone.mak" CFG="signzone - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "signzone - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "signzone - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
!ERROR An invalid configuration is specified.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(OS)" == "Windows_NT"
|
||||
NULL=
|
||||
!ELSE
|
||||
NULL=nul
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" == "signzone - Win32 Release"
|
||||
|
||||
OUTDIR=.\Release
|
||||
INTDIR=.\Release
|
||||
|
||||
ALL : "..\..\..\Build\Release\dnssec-signzone.exe"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dnssec-signzone.obj"
|
||||
-@erase "$(INTDIR)\dnssectool.obj"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "..\..\..\Build\Release\dnssec-signzone.exe"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\signzone.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\signzone.bsc"
|
||||
BSC32_SBRS= \
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\dnssec-signzone.pdb" /machine:I386 /out:"../../../Build/Release/dnssec-signzone.exe"
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dnssec-signzone.obj" \
|
||||
"$(INTDIR)\dnssectool.obj"
|
||||
|
||||
"..\..\..\Build\Release\dnssec-signzone.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ELSEIF "$(CFG)" == "signzone - Win32 Debug"
|
||||
|
||||
OUTDIR=.\Debug
|
||||
INTDIR=.\Debug
|
||||
# Begin Custom Macros
|
||||
OutDir=.\Debug
|
||||
# End Custom Macros
|
||||
|
||||
ALL : "..\..\..\Build\Debug\dnssec-signzone.exe" "$(OUTDIR)\signzone.bsc"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\dnssec-signzone.obj"
|
||||
-@erase "$(INTDIR)\dnssec-signzone.sbr"
|
||||
-@erase "$(INTDIR)\dnssectool.obj"
|
||||
-@erase "$(INTDIR)\dnssectool.sbr"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "$(INTDIR)\vc60.pdb"
|
||||
-@erase "$(OUTDIR)\dnssec-signzone.pdb"
|
||||
-@erase "$(OUTDIR)\signzone.bsc"
|
||||
-@erase "..\..\..\Build\Debug\dnssec-signzone.exe"
|
||||
-@erase "..\..\..\Build\Debug\dnssec-signzone.ilk"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /I "./" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/dns/include" /I "../../../lib/dns/sec/dst/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
RSC=rc.exe
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\signzone.bsc"
|
||||
BSC32_SBRS= \
|
||||
"$(INTDIR)\dnssec-signzone.sbr" \
|
||||
"$(INTDIR)\dnssectool.sbr"
|
||||
|
||||
"$(OUTDIR)\signzone.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
|
||||
$(BSC32) @<<
|
||||
$(BSC32_FLAGS) $(BSC32_SBRS)
|
||||
<<
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=user32.lib advapi32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\dnssec-signzone.pdb" /debug /machine:I386 /out:"../../../Build/Debug/dnssec-signzone.exe" /pdbtype:sept
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\dnssec-signzone.obj" \
|
||||
"$(INTDIR)\dnssectool.obj"
|
||||
|
||||
"..\..\..\Build\Debug\dnssec-signzone.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(NO_EXTERNAL_DEPS)" != "1"
|
||||
!IF EXISTS("signzone.dep")
|
||||
!INCLUDE "signzone.dep"
|
||||
!ELSE
|
||||
!MESSAGE Warning: cannot find "signzone.dep"
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(CFG)" == "signzone - Win32 Release" || "$(CFG)" == "signzone - Win32 Debug"
|
||||
SOURCE="..\dnssec-signzone.c"
|
||||
|
||||
!IF "$(CFG)" == "signzone - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssec-signzone.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "signzone - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssec-signzone.obj" "$(INTDIR)\dnssec-signzone.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
SOURCE=..\dnssectool.c
|
||||
|
||||
!IF "$(CFG)" == "signzone - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssectool.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "signzone - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\dnssectool.obj" "$(INTDIR)\dnssectool.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.73 2001/03/27 19:37:23 halley Exp $
|
||||
# $Id: Makefile.in,v 1.74 2001/06/01 00:45:00 bwelling Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
@@ -121,4 +121,4 @@ installdirs:
|
||||
install:: named lwresd installdirs
|
||||
${LIBTOOL} ${INSTALL_PROGRAM} named ${DESTDIR}${sbindir}
|
||||
(cd ${DESTDIR}${sbindir}; rm -f lwresd; @LN@ named lwresd)
|
||||
for m in ${MANPAGES}; do ${INSTALL_DATA} $$m ${DESTDIR}${mandir}/man8; done
|
||||
for m in ${MANPAGES}; do ${INSTALL_DATA} ${srcdir}/$$m ${DESTDIR}${mandir}/man8; done
|
||||
|
||||
+208
-323
@@ -15,10 +15,11 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: client.c,v 1.169 2001/05/28 05:16:54 marka Exp $ */
|
||||
/* $Id: client.c,v 1.176.2.8 2001/11/16 21:21:42 bwelling Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <isc/formatcheck.h>
|
||||
#include <isc/mutex.h>
|
||||
#include <isc/once.h>
|
||||
#include <isc/print.h>
|
||||
@@ -32,9 +33,6 @@
|
||||
#include <dns/dispatch.h>
|
||||
#include <dns/events.h>
|
||||
#include <dns/message.h>
|
||||
#ifdef DNS_OPT_NEWCODES
|
||||
#include <dns/opt.h>
|
||||
#endif /* DNS_OPT_NEWCODES */
|
||||
#include <dns/rdata.h>
|
||||
#include <dns/rdataclass.h>
|
||||
#include <dns/rdatalist.h>
|
||||
@@ -100,9 +98,8 @@ struct ns_clientmgr {
|
||||
client_list_t inactive; /* To be recycled */
|
||||
};
|
||||
|
||||
#define MANAGER_MAGIC 0x4E53436DU /* NSCm */
|
||||
#define VALID_MANAGER(m) ((m) != NULL && \
|
||||
(m)->magic == MANAGER_MAGIC)
|
||||
#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
|
||||
@@ -176,113 +173,6 @@ static void client_start(isc_task_t *task, isc_event_t *event);
|
||||
static void client_request(isc_task_t *task, isc_event_t *event);
|
||||
static void ns_client_dumpmessage(ns_client_t *client, const char *reason);
|
||||
|
||||
/*
|
||||
* Enter the inactive state.
|
||||
*
|
||||
* Requires:
|
||||
* No requests are outstanding.
|
||||
*/
|
||||
static void
|
||||
client_deactivate(ns_client_t *client) {
|
||||
REQUIRE(NS_CLIENT_VALID(client));
|
||||
|
||||
if (client->interface)
|
||||
ns_interface_detach(&client->interface);
|
||||
|
||||
INSIST(client->naccepts == 0);
|
||||
INSIST(client->recursionquota == NULL);
|
||||
if (client->tcplistener != NULL)
|
||||
isc_socket_detach(&client->tcplistener);
|
||||
|
||||
if (client->udpsocket != NULL)
|
||||
isc_socket_detach(&client->udpsocket);
|
||||
|
||||
if (client->dispatch != NULL)
|
||||
dns_dispatch_detach(&client->dispatch);
|
||||
|
||||
client->attributes = 0;
|
||||
client->mortal = ISC_FALSE;
|
||||
|
||||
LOCK(&client->manager->lock);
|
||||
ISC_LIST_UNLINK(client->manager->active, client, link);
|
||||
ISC_LIST_APPEND(client->manager->inactive, client, link);
|
||||
client->list = &client->manager->inactive;
|
||||
UNLOCK(&client->manager->lock);
|
||||
}
|
||||
|
||||
/*
|
||||
* Clean up a client object and free its memory.
|
||||
* Requires:
|
||||
* The client is in the inactive state.
|
||||
*/
|
||||
|
||||
static void
|
||||
client_free(ns_client_t *client) {
|
||||
isc_boolean_t need_clientmgr_destroy = ISC_FALSE;
|
||||
ns_clientmgr_t *manager = NULL;
|
||||
|
||||
REQUIRE(NS_CLIENT_VALID(client));
|
||||
|
||||
/*
|
||||
* When "shuttingdown" is true, either the task has received
|
||||
* its shutdown event or no shutdown event has ever been
|
||||
* set up. Thus, we have no outstanding shutdown
|
||||
* event at this point.
|
||||
*/
|
||||
REQUIRE(client->state == NS_CLIENTSTATE_INACTIVE);
|
||||
|
||||
INSIST(client->recursionquota == NULL);
|
||||
|
||||
ns_query_free(client);
|
||||
isc_mem_put(client->mctx, client->recvbuf, RECV_BUFFER_SIZE);
|
||||
isc_event_free((isc_event_t **)&client->sendevent);
|
||||
isc_event_free((isc_event_t **)&client->recvevent);
|
||||
isc_timer_detach(&client->timer);
|
||||
|
||||
if (client->tcpbuf != NULL)
|
||||
isc_mem_put(client->mctx, client->tcpbuf, TCP_BUFFER_SIZE);
|
||||
if (client->opt != NULL) {
|
||||
INSIST(dns_rdataset_isassociated(client->opt));
|
||||
dns_rdataset_disassociate(client->opt);
|
||||
dns_message_puttemprdataset(client->message, &client->opt);
|
||||
}
|
||||
#ifdef DNS_OPT_NEWCODES
|
||||
if (client->opt_zone != NULL) {
|
||||
isc_mem_put(client->mctx, client->opt_zone,
|
||||
sizeof(*client->opt_zone));
|
||||
client->opt_zone = NULL;
|
||||
}
|
||||
if (client->opt_view != NULL)
|
||||
isc_buffer_free(&client->opt_view);
|
||||
#endif /* DNS_OPT_NEWCODES */
|
||||
dns_message_destroy(&client->message);
|
||||
if (client->manager != NULL) {
|
||||
manager = client->manager;
|
||||
LOCK(&manager->lock);
|
||||
ISC_LIST_UNLINK(*client->list, client, link);
|
||||
client->list = NULL;
|
||||
if (manager->exiting &&
|
||||
ISC_LIST_EMPTY(manager->active) &&
|
||||
ISC_LIST_EMPTY(manager->inactive))
|
||||
need_clientmgr_destroy = ISC_TRUE;
|
||||
UNLOCK(&manager->lock);
|
||||
}
|
||||
/*
|
||||
* Detaching the task must be done after unlinking from
|
||||
* the manager's lists because the manager accesses
|
||||
* client->task.
|
||||
*/
|
||||
if (client->task != NULL)
|
||||
isc_task_detach(&client->task);
|
||||
|
||||
CTRACE("free");
|
||||
client->magic = 0;
|
||||
isc_mem_put(client->mctx, client, sizeof *client);
|
||||
|
||||
if (need_clientmgr_destroy)
|
||||
clientmgr_destroy(manager);
|
||||
}
|
||||
|
||||
void
|
||||
ns_client_settimeout(ns_client_t *client, unsigned int seconds) {
|
||||
isc_result_t result;
|
||||
@@ -309,6 +199,9 @@ ns_client_settimeout(ns_client_t *client, unsigned int seconds) {
|
||||
*/
|
||||
static isc_boolean_t
|
||||
exit_check(ns_client_t *client) {
|
||||
ns_clientmgr_t *locked_manager = NULL;
|
||||
ns_clientmgr_t *destroy_manager = NULL;
|
||||
|
||||
REQUIRE(NS_CLIENT_VALID(client));
|
||||
|
||||
if (client->state <= client->newstate)
|
||||
@@ -448,12 +341,47 @@ exit_check(ns_client_t *client) {
|
||||
}
|
||||
/* Recv cancel is complete. */
|
||||
|
||||
client_deactivate(client);
|
||||
if (client->nctls > 0) {
|
||||
/* Still waiting for control event to be delivered */
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
|
||||
/* Deactivate the client. */
|
||||
if (client->interface)
|
||||
ns_interface_detach(&client->interface);
|
||||
|
||||
INSIST(client->naccepts == 0);
|
||||
INSIST(client->recursionquota == NULL);
|
||||
if (client->tcplistener != NULL)
|
||||
isc_socket_detach(&client->tcplistener);
|
||||
|
||||
if (client->udpsocket != NULL)
|
||||
isc_socket_detach(&client->udpsocket);
|
||||
|
||||
if (client->dispatch != NULL)
|
||||
dns_dispatch_detach(&client->dispatch);
|
||||
|
||||
client->attributes = 0;
|
||||
client->mortal = ISC_FALSE;
|
||||
|
||||
LOCK(&client->manager->lock);
|
||||
/*
|
||||
* Put the client on the inactive list. If we are aiming for
|
||||
* the "freed" state, it will be removed from the inactive
|
||||
* list shortly, and we need to keep the manager locked until
|
||||
* that has been done, lest the manager decide to reactivate
|
||||
* the dying client inbetween.
|
||||
*/
|
||||
locked_manager = client->manager;
|
||||
ISC_LIST_UNLINK(*client->list, client, link);
|
||||
ISC_LIST_APPEND(client->manager->inactive, client, link);
|
||||
client->list = &client->manager->inactive;
|
||||
client->state = NS_CLIENTSTATE_INACTIVE;
|
||||
INSIST(client->recursionquota == NULL);
|
||||
|
||||
if (client->state == client->newstate) {
|
||||
client->newstate = NS_CLIENTSTATE_MAX;
|
||||
return (ISC_TRUE); /* We're done. */
|
||||
goto unlock;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -461,11 +389,71 @@ exit_check(ns_client_t *client) {
|
||||
INSIST(client->newstate == NS_CLIENTSTATE_FREED);
|
||||
/*
|
||||
* We are trying to free the client.
|
||||
*
|
||||
* When "shuttingdown" is true, either the task has received
|
||||
* its shutdown event or no shutdown event has ever been
|
||||
* set up. Thus, we have no outstanding shutdown
|
||||
* event at this point.
|
||||
*/
|
||||
client_free(client);
|
||||
return (ISC_TRUE);
|
||||
REQUIRE(client->state == NS_CLIENTSTATE_INACTIVE);
|
||||
|
||||
INSIST(client->recursionquota == NULL);
|
||||
|
||||
ns_query_free(client);
|
||||
isc_mem_put(client->mctx, client->recvbuf, RECV_BUFFER_SIZE);
|
||||
isc_event_free((isc_event_t **)&client->sendevent);
|
||||
isc_event_free((isc_event_t **)&client->recvevent);
|
||||
isc_timer_detach(&client->timer);
|
||||
|
||||
if (client->tcpbuf != NULL)
|
||||
isc_mem_put(client->mctx, client->tcpbuf, TCP_BUFFER_SIZE);
|
||||
if (client->opt != NULL) {
|
||||
INSIST(dns_rdataset_isassociated(client->opt));
|
||||
dns_rdataset_disassociate(client->opt);
|
||||
dns_message_puttemprdataset(client->message, &client->opt);
|
||||
}
|
||||
dns_message_destroy(&client->message);
|
||||
if (client->manager != NULL) {
|
||||
ns_clientmgr_t *manager = client->manager;
|
||||
if (locked_manager == NULL) {
|
||||
LOCK(&manager->lock);
|
||||
locked_manager = manager;
|
||||
}
|
||||
ISC_LIST_UNLINK(*client->list, client, link);
|
||||
client->list = NULL;
|
||||
if (manager->exiting &&
|
||||
ISC_LIST_EMPTY(manager->active) &&
|
||||
ISC_LIST_EMPTY(manager->inactive))
|
||||
destroy_manager = manager;
|
||||
}
|
||||
/*
|
||||
* Detaching the task must be done after unlinking from
|
||||
* the manager's lists because the manager accesses
|
||||
* client->task.
|
||||
*/
|
||||
if (client->task != NULL)
|
||||
isc_task_detach(&client->task);
|
||||
|
||||
CTRACE("free");
|
||||
client->magic = 0;
|
||||
isc_mem_put(client->mctx, client, sizeof(*client));
|
||||
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
unlock:
|
||||
if (locked_manager != NULL) {
|
||||
UNLOCK(&locked_manager->lock);
|
||||
locked_manager = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Only now is it safe to destroy the client manager (if needed),
|
||||
* because we have accessed its lock for the last time.
|
||||
*/
|
||||
if (destroy_manager != NULL)
|
||||
clientmgr_destroy(destroy_manager);
|
||||
|
||||
return (ISC_TRUE);
|
||||
}
|
||||
|
||||
@@ -481,6 +469,12 @@ client_start(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
UNUSED(task);
|
||||
|
||||
INSIST(client->nctls == 1);
|
||||
client->nctls--;
|
||||
|
||||
if (exit_check(client))
|
||||
return;
|
||||
|
||||
if (TCP_CLIENT(client)) {
|
||||
client_accept(client);
|
||||
} else {
|
||||
@@ -866,7 +860,8 @@ ns_client_send(ns_client_t *client) {
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto done;
|
||||
result = dns_message_rendersection(client->message,
|
||||
DNS_SECTION_ANSWER, 0);
|
||||
DNS_SECTION_ANSWER,
|
||||
DNS_MESSAGERENDER_PARTIAL);
|
||||
if (result == ISC_R_NOSPACE) {
|
||||
client->message->flags |= DNS_MESSAGEFLAG_TC;
|
||||
goto renderend;
|
||||
@@ -874,7 +869,8 @@ ns_client_send(ns_client_t *client) {
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto done;
|
||||
result = dns_message_rendersection(client->message,
|
||||
DNS_SECTION_AUTHORITY, 0);
|
||||
DNS_SECTION_AUTHORITY,
|
||||
DNS_MESSAGERENDER_PARTIAL);
|
||||
if (result == ISC_R_NOSPACE) {
|
||||
client->message->flags |= DNS_MESSAGEFLAG_TC;
|
||||
goto renderend;
|
||||
@@ -984,75 +980,6 @@ ns_client_error(ns_client_t *client, isc_result_t result) {
|
||||
ns_client_send(client);
|
||||
}
|
||||
|
||||
#ifdef DNS_OPT_NEWCODES
|
||||
static isc_result_t
|
||||
client_addoptattrs(ns_client_t *client, dns_rdata_t *rdata) {
|
||||
isc_result_t result;
|
||||
isc_buffer_t *zonebuf = NULL, *buf = NULL;
|
||||
dns_optlist_t attrlist;
|
||||
dns_optattr_t attrs[CLIENT_NUMATTRS];
|
||||
dns_compress_t cctx;
|
||||
int i, sizeneeded = 0;
|
||||
|
||||
result = dns_compress_init(&cctx, 0, client->mctx);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto fail1;
|
||||
dns_compress_setmethods(&cctx, DNS_COMPRESS_NONE);
|
||||
attrlist.size=2;
|
||||
attrlist.used=0;
|
||||
attrlist.attrs=attrs;
|
||||
for (i=0; i<CLIENT_NUMATTRS; i++) {
|
||||
attrs[i].code = 0;
|
||||
attrs[i].value.base = NULL;
|
||||
attrs[i].value.length = 0;
|
||||
}
|
||||
if (client->opt_zone != NULL) {
|
||||
result = isc_buffer_allocate(client->mctx, &zonebuf,
|
||||
DNS_NAME_MAXWIRE);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto fail2;
|
||||
result = dns_name_towire(dns_fixedname_name(client->opt_zone),
|
||||
&cctx, zonebuf);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto fail2;
|
||||
attrs[attrlist.used].code = DNS_OPTCODE_ZONE;
|
||||
attrs[attrlist.used].value.base = isc_buffer_base(zonebuf);
|
||||
attrs[attrlist.used].value.length =
|
||||
isc_buffer_usedlength(zonebuf);
|
||||
attrlist.used++;
|
||||
sizeneeded += 4 + isc_buffer_usedlength(zonebuf);
|
||||
}
|
||||
if (client->opt_view != NULL) {
|
||||
attrs[attrlist.used].code = DNS_OPTCODE_VIEW;
|
||||
attrs[attrlist.used].value.base =
|
||||
isc_buffer_base(client->opt_view);
|
||||
attrs[attrlist.used].value.length =
|
||||
isc_buffer_usedlength(client->opt_view);
|
||||
attrlist.used++;
|
||||
sizeneeded += 4 + isc_buffer_usedlength(client->opt_view);
|
||||
}
|
||||
if (sizeneeded == 0) {
|
||||
result = ISC_R_SUCCESS;
|
||||
goto fail2;
|
||||
}
|
||||
result = isc_buffer_allocate(client->mctx, &buf, sizeneeded+1);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto fail2;
|
||||
result = dns_opt_add(rdata, &attrlist, buf);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto fail2;
|
||||
dns_message_takebuffer(client->message, &buf);
|
||||
fail2:
|
||||
dns_compress_invalidate(&cctx);
|
||||
fail1:
|
||||
if (buf != NULL)
|
||||
isc_buffer_free(&buf);
|
||||
if (zonebuf != NULL)
|
||||
isc_buffer_free(&zonebuf);
|
||||
return (result);
|
||||
}
|
||||
#endif /* DNS_OPT_NEWCODES */
|
||||
|
||||
static inline isc_result_t
|
||||
client_addopt(ns_client_t *client) {
|
||||
dns_rdataset_t *rdataset;
|
||||
@@ -1098,13 +1025,6 @@ client_addopt(ns_client_t *client) {
|
||||
rdata->type = rdatalist->type;
|
||||
rdata->flags = 0;
|
||||
|
||||
#ifdef DNS_OPT_NEWCODES
|
||||
/*
|
||||
* Set the attributes
|
||||
*/
|
||||
client_addoptattrs(client, rdata);
|
||||
#endif /* DNS_OPT_NEWCODES */
|
||||
|
||||
ISC_LIST_INIT(rdatalist->rdata);
|
||||
ISC_LIST_APPEND(rdatalist->rdata, rdata, link);
|
||||
dns_rdatalist_tordataset(rdatalist, rdataset);
|
||||
@@ -1114,80 +1034,19 @@ client_addopt(ns_client_t *client) {
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
#ifdef DNS_OPT_NEWCODES
|
||||
static void
|
||||
client_getoptattrs(ns_client_t *client, dns_rdataset_t *opt) {
|
||||
dns_optlist_t optlist;
|
||||
dns_optattr_t optattr;
|
||||
isc_result_t result, iresult;
|
||||
isc_buffer_t zonebuf;
|
||||
dns_decompress_t dctx;
|
||||
static inline isc_boolean_t
|
||||
allowed(isc_netaddr_t *addr, dns_acl_t *acl) {
|
||||
int match;
|
||||
isc_result_t result;
|
||||
|
||||
/* If an old set of opts are still around, free them. */
|
||||
if (client->opt_zone != NULL) {
|
||||
isc_mem_put(client->mctx, client->opt_zone,
|
||||
sizeof(*client->opt_zone));
|
||||
client->opt_zone = NULL;
|
||||
}
|
||||
if (client->opt_view != NULL)
|
||||
isc_buffer_free(&client->opt_view);
|
||||
|
||||
/*
|
||||
* If there are any options, extract them here
|
||||
*/
|
||||
optlist.size = 1;
|
||||
optlist.used = 0;
|
||||
optlist.next = 0;
|
||||
optlist.attrs = &optattr;
|
||||
do {
|
||||
result = dns_opt_decodeall(&optlist, opt);
|
||||
if (result == ISC_R_SUCCESS ||
|
||||
result == DNS_R_MOREDATA) {
|
||||
switch (optattr.code) {
|
||||
case DNS_OPTCODE_ZONE:
|
||||
dns_decompress_init(&dctx, 0,
|
||||
DNS_DECOMPRESS_NONE);
|
||||
client->opt_zone = isc_mem_get(
|
||||
client->mctx,
|
||||
sizeof(*client->opt_zone));
|
||||
if (client->opt_zone == NULL)
|
||||
goto zonefail1;
|
||||
dns_fixedname_init(client->opt_zone);
|
||||
isc_buffer_init(&zonebuf,
|
||||
optattr.value.base,
|
||||
optattr.value.length);
|
||||
isc_buffer_add(&zonebuf,optattr.value.length);
|
||||
isc_buffer_setactive(&zonebuf,
|
||||
optattr.value.length);
|
||||
iresult = dns_name_fromwire(
|
||||
dns_fixedname_name(
|
||||
client->opt_zone),
|
||||
&zonebuf,
|
||||
&dctx, ISC_FALSE,
|
||||
NULL);
|
||||
if (iresult != ISC_R_SUCCESS) {
|
||||
dns_fixedname_invalidate(
|
||||
client->opt_zone);
|
||||
zonefail1:
|
||||
dns_decompress_invalidate(&dctx);
|
||||
}
|
||||
break;
|
||||
case DNS_OPTCODE_VIEW:
|
||||
iresult = isc_buffer_allocate(client->mctx,
|
||||
&client->opt_view,
|
||||
optattr.value.length);
|
||||
if (iresult != ISC_R_SUCCESS)
|
||||
break;
|
||||
isc_buffer_putmem(client->opt_view,
|
||||
optattr.value.base,
|
||||
optattr.value.length);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} while (result == DNS_R_MOREDATA);
|
||||
if (acl == NULL)
|
||||
return (ISC_TRUE);
|
||||
result = dns_acl_match(addr, NULL, acl, &ns_g_server->aclenv,
|
||||
&match, NULL);
|
||||
if (result == ISC_R_SUCCESS && match > 0)
|
||||
return (ISC_TRUE);
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
#endif /* DNS_OPT_NEWCODES */
|
||||
|
||||
|
||||
/*
|
||||
* Handle an incoming request event from the socket (UDP case)
|
||||
@@ -1205,9 +1064,11 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
dns_rdataset_t *opt;
|
||||
isc_boolean_t ra; /* Recursion available. */
|
||||
isc_netaddr_t netaddr;
|
||||
isc_netaddr_t destaddr;
|
||||
int match;
|
||||
dns_messageid_t id;
|
||||
unsigned int flags;
|
||||
isc_boolean_t notimp;
|
||||
|
||||
REQUIRE(event != NULL);
|
||||
client = event->ev_arg;
|
||||
@@ -1355,6 +1216,20 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
switch (client->message->opcode) {
|
||||
case dns_opcode_query:
|
||||
case dns_opcode_update:
|
||||
case dns_opcode_notify:
|
||||
notimp = ISC_FALSE;
|
||||
break;
|
||||
case dns_opcode_iquery:
|
||||
default:
|
||||
notimp = ISC_TRUE;
|
||||
break;
|
||||
}
|
||||
|
||||
client->message->rcode = dns_rcode_noerror;
|
||||
|
||||
/*
|
||||
* Deal with EDNS.
|
||||
*/
|
||||
@@ -1374,28 +1249,10 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
if (client->udpsize < 512)
|
||||
client->udpsize = 512;
|
||||
|
||||
#ifdef DNS_OPT_NEWCODES
|
||||
/*
|
||||
* Get the flags out of the OPT record.
|
||||
*/
|
||||
client->extflags = DNS_OPT_FLAGS(opt);
|
||||
|
||||
/*
|
||||
* Set up the rest of the opt stuff
|
||||
*/
|
||||
client_getoptattrs(client, opt);
|
||||
/*
|
||||
* If we're using a fixed zone option (opt_zone), set it to
|
||||
* allow glue here.
|
||||
*/
|
||||
if (client->opt_zone != NULL)
|
||||
client->query.dboptions |= DNS_DBFIND_GLUEOK;
|
||||
#else /* DNS_OPT_NEWCODES */
|
||||
/*
|
||||
* Get the flags out of the OPT record.
|
||||
*/
|
||||
client->extflags = (isc_uint16_t)(opt->ttl & 0xFFFF);
|
||||
#endif /* DNS_OPT_NEWCODES */
|
||||
|
||||
/*
|
||||
* Create an OPT for our reply.
|
||||
@@ -1420,14 +1277,28 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
if (client->message->rdclass == 0) {
|
||||
ns_client_log(client, NS_LOGCATEGORY_CLIENT,
|
||||
NS_LOGMODULE_CLIENT, ISC_LOG_ERROR,
|
||||
NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(1),
|
||||
"message class could not be determined");
|
||||
ns_client_dumpmessage(client,
|
||||
"message class could not be determined");
|
||||
ns_client_error(client, DNS_R_FORMERR);
|
||||
ns_client_error(client, notimp ? DNS_R_NOTIMP : DNS_R_FORMERR);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/*
|
||||
* Determine the destination address. For IPv6, we get this from the
|
||||
* pktinfo structure (if supported). For IPv4, we have to make do with
|
||||
* the address of the interface where the request was received.
|
||||
*/
|
||||
if (client->interface->addr.type.sa.sa_family == AF_INET6) {
|
||||
if ((client->attributes & NS_CLIENTATTR_PKTINFO) != 0)
|
||||
isc_netaddr_fromin6(&destaddr, &client->pktinfo.ipi6_addr);
|
||||
else
|
||||
isc_netaddr_any6(&destaddr);
|
||||
} else {
|
||||
isc_netaddr_fromsockaddr(&destaddr, &client->interface->addr);
|
||||
}
|
||||
|
||||
/*
|
||||
* Find a view that matches the client's source address.
|
||||
*/
|
||||
@@ -1437,11 +1308,10 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
if (client->message->rdclass == view->rdclass ||
|
||||
client->message->rdclass == dns_rdataclass_any)
|
||||
{
|
||||
if (view->matchclients == NULL ||
|
||||
(dns_acl_match(&netaddr, NULL, view->matchclients,
|
||||
&ns_g_server->aclenv,
|
||||
&match, NULL) == ISC_R_SUCCESS &&
|
||||
match > 0))
|
||||
if (allowed(&netaddr, view->matchclients) &&
|
||||
allowed(&destaddr, view->matchdestinations) &&
|
||||
!((flags & DNS_MESSAGEFLAG_RD) == 0 &&
|
||||
view->matchrecursiveonly))
|
||||
{
|
||||
dns_view_attach(view, &client->view);
|
||||
break;
|
||||
@@ -1467,10 +1337,10 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
dns_rdataclass_format(client->message->rdclass, classname,
|
||||
sizeof(classname));
|
||||
ns_client_log(client, NS_LOGCATEGORY_CLIENT,
|
||||
NS_LOGMODULE_CLIENT, ISC_LOG_ERROR,
|
||||
NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(1),
|
||||
"no matching view in class '%s'", classname);
|
||||
ns_client_dumpmessage(client, "no matching view in class");
|
||||
ns_client_error(client, DNS_R_REFUSED);
|
||||
ns_client_error(client, notimp ? DNS_R_NOTIMP : DNS_R_REFUSED);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
@@ -1501,22 +1371,17 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
|
||||
NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3),
|
||||
"request is signed by a nonauthoritative key");
|
||||
/*
|
||||
* Accept update messages signed by unknown keys so that
|
||||
* update forwarding works transparently through slaves
|
||||
* that don't have all the same keys as the master.
|
||||
*/
|
||||
if (!(client->message->tsigstatus == dns_tsigerror_badkey &&
|
||||
client->message->opcode == dns_opcode_update)) {
|
||||
ns_client_error(client, sigresult);
|
||||
goto cleanup;
|
||||
}
|
||||
} else {
|
||||
/* There is a signature, but it is bad. */
|
||||
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
|
||||
NS_LOGMODULE_CLIENT, ISC_LOG_ERROR,
|
||||
"request has invalid signature: %s",
|
||||
isc_result_totext(result));
|
||||
/*
|
||||
* Accept update messages signed by unknown keys so that
|
||||
* update forwarding works transparently through slaves
|
||||
* that don't have all the same keys as the master.
|
||||
*/
|
||||
if (!(client->message->tsigstatus == dns_tsigerror_badkey &&
|
||||
client->message->opcode == dns_opcode_update)) {
|
||||
ns_client_error(client, sigresult);
|
||||
@@ -1627,9 +1492,6 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp)
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup_client;
|
||||
isc_task_setname(client->task, "client", client);
|
||||
result = isc_task_onshutdown(client->task, client_shutdown, client);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup_task;
|
||||
|
||||
client->timer = NULL;
|
||||
result = isc_timer_create(manager->timermgr, isc_timertype_inactive,
|
||||
@@ -1682,6 +1544,7 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp)
|
||||
client->nreads = 0;
|
||||
client->nsends = 0;
|
||||
client->nrecvs = 0;
|
||||
client->nctls = 0;
|
||||
client->references = 0;
|
||||
client->attributes = 0;
|
||||
client->view = NULL;
|
||||
@@ -1694,10 +1557,6 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp)
|
||||
client->opt = NULL;
|
||||
client->udpsize = 512;
|
||||
client->extflags = 0;
|
||||
#ifdef DNS_OPT_NEWCODES
|
||||
client->opt_zone = NULL;
|
||||
client->opt_view = NULL;
|
||||
#endif /* DNS_OPT_NEWCODES */
|
||||
client->next = NULL;
|
||||
client->shutdown = NULL;
|
||||
client->shutdown_arg = NULL;
|
||||
@@ -1729,12 +1588,19 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp)
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup_recvevent;
|
||||
|
||||
result = isc_task_onshutdown(client->task, client_shutdown, client);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup_query;
|
||||
|
||||
CTRACE("create");
|
||||
|
||||
*clientp = client;
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
|
||||
cleanup_query:
|
||||
ns_query_free(client);
|
||||
|
||||
cleanup_recvevent:
|
||||
isc_event_free((isc_event_t **)&client->recvevent);
|
||||
|
||||
@@ -2149,6 +2015,8 @@ ns_clientmgr_createclients(ns_clientmgr_t *manager, unsigned int n,
|
||||
ISC_LIST_APPEND(manager->active, client, link);
|
||||
client->list = &manager->active;
|
||||
|
||||
INSIST(client->nctls == 0);
|
||||
client->nctls++;
|
||||
ev = &client->ctlevent;
|
||||
isc_task_send(client->task, &ev);
|
||||
}
|
||||
@@ -2171,9 +2039,8 @@ ns_client_getsockaddr(ns_client_t *client) {
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
ns_client_checkacl(ns_client_t *client,
|
||||
const char *opname, dns_acl_t *acl,
|
||||
isc_boolean_t default_allow, int log_level)
|
||||
ns_client_checkaclsilent(ns_client_t *client, dns_acl_t *acl,
|
||||
isc_boolean_t default_allow)
|
||||
{
|
||||
isc_result_t result;
|
||||
int match;
|
||||
@@ -2198,18 +2065,31 @@ ns_client_checkacl(ns_client_t *client,
|
||||
goto deny; /* Negative match or no match. */
|
||||
|
||||
allow:
|
||||
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
|
||||
NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3),
|
||||
"%s approved", opname);
|
||||
return (ISC_R_SUCCESS);
|
||||
|
||||
deny:
|
||||
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
|
||||
NS_LOGMODULE_CLIENT,
|
||||
log_level, "%s denied", opname);
|
||||
return (DNS_R_REFUSED);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
ns_client_checkacl(ns_client_t *client,
|
||||
const char *opname, dns_acl_t *acl,
|
||||
isc_boolean_t default_allow, int log_level)
|
||||
{
|
||||
isc_result_t result =
|
||||
ns_client_checkaclsilent(client, acl, default_allow);
|
||||
|
||||
if (result == ISC_R_SUCCESS)
|
||||
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
|
||||
NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3),
|
||||
"%s approved", opname);
|
||||
else
|
||||
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
|
||||
NS_LOGMODULE_CLIENT,
|
||||
log_level, "%s denied", opname);
|
||||
return (result);
|
||||
}
|
||||
|
||||
static void
|
||||
ns_client_name(ns_client_t *client, char *peerbuf, size_t len) {
|
||||
if (client->peeraddr_valid)
|
||||
@@ -2218,6 +2098,11 @@ ns_client_name(ns_client_t *client, char *peerbuf, size_t len) {
|
||||
snprintf(peerbuf, len, "@%p", client);
|
||||
}
|
||||
|
||||
static void
|
||||
ns_client_logv(ns_client_t *client, isc_logcategory_t *category,
|
||||
isc_logmodule_t *module, int level, const char *fmt, va_list ap)
|
||||
ISC_FORMAT_PRINTF(5, 0);
|
||||
|
||||
static void
|
||||
ns_client_logv(ns_client_t *client, isc_logcategory_t *category,
|
||||
isc_logmodule_t *module, int level, const char *fmt, va_list ap)
|
||||
@@ -2266,7 +2151,7 @@ ns_client_dumpmessage(ns_client_t *client, const char *reason) {
|
||||
isc_result_t result;
|
||||
|
||||
/*
|
||||
* Note these a multiline debug messages. We want a newline
|
||||
* Note that these are multiline debug messages. We want a newline
|
||||
* to appear in the log after each message.
|
||||
*/
|
||||
|
||||
@@ -2283,7 +2168,7 @@ ns_client_dumpmessage(ns_client_t *client, const char *reason) {
|
||||
len += 1024;
|
||||
} else if (result == ISC_R_SUCCESS)
|
||||
ns_client_log(client, NS_LOGCATEGORY_UNMATCHED,
|
||||
NS_LOGMODULE_CLIENT, ISC_LOG_INFO,
|
||||
NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(1),
|
||||
"%s\n%.*s", reason,
|
||||
(int)isc_buffer_usedlength(&buffer),
|
||||
buf);
|
||||
|
||||
+33
-12
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: config.c,v 1.8 2001/03/26 21:32:53 bwelling Exp $ */
|
||||
/* $Id: config.c,v 1.11.2.1 2001/09/21 20:30:32 gson Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/rdataclass.h>
|
||||
#include <dns/tsig.h>
|
||||
#include <dns/zone.h>
|
||||
|
||||
#include <named/config.h>
|
||||
@@ -51,9 +52,9 @@ options {\n\
|
||||
fake-iquery no;\n\
|
||||
files default;\n\
|
||||
has-old-clients false;\n\
|
||||
heartbeat-interval 3600;\n\
|
||||
heartbeat-interval 60;\n\
|
||||
host-statistics no;\n\
|
||||
interface-interval 3600;\n\
|
||||
interface-interval 60;\n\
|
||||
listen-on {any;};\n\
|
||||
listen-on-v6 {none;};\n\
|
||||
match-mapped-addresses no;\n\
|
||||
@@ -75,7 +76,7 @@ options {\n\
|
||||
serial-query-rate 20;\n\
|
||||
stacksize default;\n\
|
||||
statistics-file \"named.stats\";\n\
|
||||
statistics-interval 3600;\n\
|
||||
statistics-interval 60;\n\
|
||||
tcp-clients 100;\n\
|
||||
# tkey-dhkey <none>\n\
|
||||
# tkey-gssapi-credential <none>\n\
|
||||
@@ -108,7 +109,7 @@ options {\n\
|
||||
query-source-v6 address *;\n\
|
||||
notify-source *;\n\
|
||||
notify-source-v6 *;\n\
|
||||
cleaning-interval 3600;\n\
|
||||
cleaning-interval 60;\n\
|
||||
min-roots 2;\n\
|
||||
lame-ttl 600;\n\
|
||||
max-ncache-ttl 10800; /* 3 hours */\n\
|
||||
@@ -131,10 +132,10 @@ options {\n\
|
||||
# max-ixfr-log-size <obsolete>\n\
|
||||
transfer-source *;\n\
|
||||
transfer-source-v6 *;\n\
|
||||
max-transfer-time-in 7200;\n\
|
||||
max-transfer-time-out 7200;\n\
|
||||
max-transfer-idle-in 3600;\n\
|
||||
max-transfer-idle-out 3600;\n\
|
||||
max-transfer-time-in 120;\n\
|
||||
max-transfer-time-out 120;\n\
|
||||
max-transfer-idle-in 60;\n\
|
||||
max-transfer-idle-out 60;\n\
|
||||
max-retry-time 1209600; /* 2 weeks */\n\
|
||||
min-retry-time 500;\n\
|
||||
max-refresh-time 2419200; /* 4 weeks */\n\
|
||||
@@ -176,18 +177,24 @@ ns_config_listcount(cfg_obj_t *list) {
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
ns_config_getclass(cfg_obj_t *classobj, dns_rdataclass_t *classp) {
|
||||
ns_config_getclass(cfg_obj_t *classobj, dns_rdataclass_t defclass,
|
||||
dns_rdataclass_t *classp) {
|
||||
char *str;
|
||||
isc_textregion_t r;
|
||||
isc_result_t result;
|
||||
|
||||
if (!cfg_obj_isstring(classobj)) {
|
||||
*classp = dns_rdataclass_in;
|
||||
*classp = defclass;
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
str = cfg_obj_asstring(classobj);
|
||||
r.base = str;
|
||||
r.length = strlen(str);
|
||||
return (dns_rdataclass_fromtext(classp, &r));
|
||||
result = dns_rdataclass_fromtext(classp, &r);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
cfg_obj_log(classobj, ns_g_lctx, ISC_LOG_ERROR,
|
||||
"unknown class '%s'", str);
|
||||
return (result);
|
||||
}
|
||||
|
||||
dns_zonetype_t
|
||||
@@ -435,3 +442,17 @@ ns_config_getport(cfg_obj_t *config, in_port_t *portp) {
|
||||
*portp = (in_port_t)cfg_obj_asuint32(portobj);
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
ns_config_getkeyalgorithm(const char *str, dns_name_t **name)
|
||||
{
|
||||
if (strcasecmp(str, "hmac-md5") == 0 ||
|
||||
strcasecmp(str, "hmac-md5.sig-alg.reg.int") == 0 ||
|
||||
strcasecmp(str, "hmac-md5.sig-alg.reg.int.") == 0)
|
||||
{
|
||||
if (name != NULL)
|
||||
*name = dns_tsig_hmacmd5_name;
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
return (ISC_R_NOTFOUND);
|
||||
}
|
||||
|
||||
+274
-358
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: controlconf.c,v 1.11 2001/05/31 21:49:11 tale Exp $ */
|
||||
/* $Id: controlconf.c,v 1.28.2.6 2001/10/31 23:00:44 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#include <isc/file.h>
|
||||
#include <isc/fsaccess.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/net.h>
|
||||
#include <isc/netaddr.h>
|
||||
#include <isc/print.h>
|
||||
#include <isc/random.h>
|
||||
@@ -36,6 +37,7 @@
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <isccfg/cfg.h>
|
||||
#include <isccfg/check.h>
|
||||
|
||||
#include <isccc/alist.h>
|
||||
#include <isccc/cc.h>
|
||||
@@ -50,6 +52,7 @@
|
||||
|
||||
#include <dst/dst.h>
|
||||
|
||||
#include <named/config.h>
|
||||
#include <named/control.h>
|
||||
#include <named/log.h>
|
||||
#include <named/server.h>
|
||||
@@ -100,20 +103,10 @@ struct controllistener {
|
||||
ISC_LINK(controllistener_t) link;
|
||||
};
|
||||
|
||||
static struct {
|
||||
char name[64];
|
||||
char secret[192];
|
||||
cfg_parser_t *parser;
|
||||
cfg_obj_t *config;
|
||||
isc_sockaddr_t address; /* Last channel that needed automagic. */
|
||||
} automagic_key;
|
||||
|
||||
#define NS_AUTOKEY_BITS 128
|
||||
#define NS_AUTOKEY_NAME "control_autokey"
|
||||
|
||||
struct ns_controls {
|
||||
ns_server_t *server;
|
||||
controllistenerlist_t listeners;
|
||||
isc_boolean_t shuttingdown;
|
||||
};
|
||||
|
||||
static void control_newconn(isc_task_t *task, isc_event_t *event);
|
||||
@@ -186,32 +179,35 @@ maybe_free_connection(controlconnection_t *conn) {
|
||||
|
||||
static void
|
||||
shutdown_listener(controllistener_t *listener) {
|
||||
isc_boolean_t destroy = ISC_TRUE;
|
||||
char socktext[ISC_SOCKADDR_FORMATSIZE];
|
||||
controlconnection_t *conn;
|
||||
controlconnection_t *next;
|
||||
|
||||
listener->exiting = ISC_TRUE;
|
||||
if (!listener->exiting) {
|
||||
char socktext[ISC_SOCKADDR_FORMATSIZE];
|
||||
|
||||
if (!ISC_LIST_EMPTY(listener->connections)) {
|
||||
controlconnection_t *conn;
|
||||
for (conn = ISC_LIST_HEAD(listener->connections);
|
||||
conn != NULL;
|
||||
conn = ISC_LIST_NEXT(conn, link))
|
||||
maybe_free_connection(conn);
|
||||
destroy = ISC_FALSE;
|
||||
ISC_LIST_UNLINK(listener->controls->listeners, listener, link);
|
||||
|
||||
isc_sockaddr_format(&listener->address, socktext,
|
||||
sizeof(socktext));
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_CONTROL, ISC_LOG_NOTICE,
|
||||
"stopping command channel on %s", socktext);
|
||||
listener->exiting = ISC_TRUE;
|
||||
}
|
||||
|
||||
if (listener->sock != NULL) {
|
||||
for (conn = ISC_LIST_HEAD(listener->connections);
|
||||
conn != NULL;
|
||||
conn = next)
|
||||
{
|
||||
next = ISC_LIST_NEXT(conn, link);
|
||||
maybe_free_connection(conn);
|
||||
}
|
||||
|
||||
if (listener->listening)
|
||||
isc_socket_cancel(listener->sock, listener->task,
|
||||
ISC_SOCKCANCEL_ACCEPT);
|
||||
destroy = ISC_FALSE;
|
||||
}
|
||||
|
||||
isc_sockaddr_format(&listener->address, socktext, sizeof(socktext));
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_CONTROL, ISC_LOG_NOTICE,
|
||||
"stopping command channel on %s", socktext);
|
||||
if (destroy)
|
||||
free_listener(listener);
|
||||
maybe_free_listener(listener);
|
||||
}
|
||||
|
||||
static isc_boolean_t
|
||||
@@ -336,13 +332,11 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
conn = event->ev_arg;
|
||||
listener = conn->listener;
|
||||
key = ISC_LIST_HEAD(listener->keys);
|
||||
INSIST(key != NULL);
|
||||
secret.rstart = isc_mem_get(listener->mctx, key->secret.length);
|
||||
if (secret.rstart == NULL)
|
||||
goto cleanup;
|
||||
memcpy(secret.rstart, key->secret.base, key->secret.length);
|
||||
secret.rend = secret.rstart + key->secret.length;
|
||||
secret.rstart = NULL;
|
||||
|
||||
/* 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 &&
|
||||
@@ -351,12 +345,39 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ccregion.rstart = isc_buffer_base(&conn->ccmsg.buffer);
|
||||
ccregion.rend = isc_buffer_used(&conn->ccmsg.buffer);
|
||||
request = NULL;
|
||||
result = isccc_cc_fromwire(&ccregion, &request, &secret);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
log_invalid(&conn->ccmsg, result);
|
||||
|
||||
for (key = ISC_LIST_HEAD(listener->keys);
|
||||
key != NULL;
|
||||
key = ISC_LIST_NEXT(key, link))
|
||||
{
|
||||
ccregion.rstart = isc_buffer_base(&conn->ccmsg.buffer);
|
||||
ccregion.rend = isc_buffer_used(&conn->ccmsg.buffer);
|
||||
secret.rstart = isc_mem_get(listener->mctx, key->secret.length);
|
||||
if (secret.rstart == NULL)
|
||||
goto cleanup;
|
||||
memcpy(secret.rstart, key->secret.base, key->secret.length);
|
||||
secret.rend = secret.rstart + key->secret.length;
|
||||
result = isccc_cc_fromwire(&ccregion, &request, &secret);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
break;
|
||||
else if (result == ISCCC_R_BADAUTH) {
|
||||
/*
|
||||
* For some reason, request is non-NULL when
|
||||
* isccc_cc_fromwire returns ISCCC_R_BADAUTH.
|
||||
*/
|
||||
if (request != NULL)
|
||||
isccc_sexpr_free(&request);
|
||||
isc_mem_put(listener->mctx, secret.rstart,
|
||||
REGION_SIZE(secret));
|
||||
} else {
|
||||
log_invalid(&conn->ccmsg, result);
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
if (key == NULL) {
|
||||
log_invalid(&conn->ccmsg, ISCCC_R_BADAUTH);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
@@ -499,10 +520,10 @@ control_newconn(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
UNUSED(task);
|
||||
|
||||
listener->listening = ISC_FALSE;
|
||||
|
||||
if (nevent->result != ISC_R_SUCCESS) {
|
||||
if (nevent->result == ISC_R_CANCELED) {
|
||||
isc_socket_detach(&listener->sock);
|
||||
listener->listening = ISC_FALSE;
|
||||
shutdown_listener(listener);
|
||||
goto cleanup;
|
||||
}
|
||||
@@ -538,8 +559,8 @@ control_newconn(isc_task_t *task, isc_event_t *event) {
|
||||
isc_event_free(&event);
|
||||
}
|
||||
|
||||
void
|
||||
ns_controls_shutdown(ns_controls_t *controls) {
|
||||
static void
|
||||
controls_shutdown(ns_controls_t *controls) {
|
||||
controllistener_t *listener;
|
||||
controllistener_t *next;
|
||||
|
||||
@@ -552,11 +573,16 @@ ns_controls_shutdown(ns_controls_t *controls) {
|
||||
* call their callbacks.
|
||||
*/
|
||||
next = ISC_LIST_NEXT(listener, link);
|
||||
ISC_LIST_UNLINK(controls->listeners, listener, link);
|
||||
shutdown_listener(listener);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
ns_controls_shutdown(ns_controls_t *controls) {
|
||||
controls_shutdown(controls);
|
||||
controls->shuttingdown = ISC_TRUE;
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
cfgkeylist_find(cfg_obj_t *keylist, const char *keyname, cfg_obj_t **objp) {
|
||||
cfg_listelt_t *element;
|
||||
@@ -622,7 +648,7 @@ controlkeylist_fromcfg(cfg_obj_t *keylist, isc_mem_t *mctx,
|
||||
|
||||
static void
|
||||
register_keys(cfg_obj_t *control, cfg_obj_t *keylist,
|
||||
controlkeylist_t *keyids, isc_mem_t *mctx, char *socktext)
|
||||
controlkeylist_t *keyids, isc_mem_t *mctx, const char *socktext)
|
||||
{
|
||||
controlkey_t *keyid, *next;
|
||||
cfg_obj_t *keydef;
|
||||
@@ -657,7 +683,9 @@ register_keys(cfg_obj_t *control, cfg_obj_t *keylist,
|
||||
algstr = cfg_obj_asstring(algobj);
|
||||
secretstr = cfg_obj_asstring(secretobj);
|
||||
|
||||
if (strcasecmp(algstr, "hmac-md5") != 0) {
|
||||
if (ns_config_getkeyalgorithm(algstr, NULL) !=
|
||||
ISC_R_SUCCESS)
|
||||
{
|
||||
cfg_obj_log(control, ns_g_lctx,
|
||||
ISC_LOG_WARNING,
|
||||
"unsupported algorithm '%s' in "
|
||||
@@ -700,288 +728,129 @@ register_keys(cfg_obj_t *control, cfg_obj_t *keylist,
|
||||
}
|
||||
}
|
||||
|
||||
#define CHECK(x) \
|
||||
do { \
|
||||
result = (x); \
|
||||
if (result != ISC_R_SUCCESS) \
|
||||
goto cleanup; \
|
||||
} while (0)
|
||||
|
||||
static isc_result_t
|
||||
make_automagic_key(isc_mem_t *mctx) {
|
||||
unsigned char key_rawsecret[32];
|
||||
unsigned char key_txtsecret[32];
|
||||
isc_buffer_t key_rawbuffer;
|
||||
isc_buffer_t key_txtbuffer;
|
||||
isc_region_t key_rawregion;
|
||||
isc_uint32_t key_id;
|
||||
get_rndckey(isc_mem_t *mctx, controlkeylist_t *keyids) {
|
||||
isc_result_t result;
|
||||
dst_key_t *key = NULL;
|
||||
cfg_parser_t *pctx = NULL;
|
||||
cfg_obj_t *config = NULL;
|
||||
cfg_obj_t *key = NULL;
|
||||
cfg_obj_t *algobj = NULL;
|
||||
cfg_obj_t *secretobj = NULL;
|
||||
char *algstr = NULL;
|
||||
char *secretstr = NULL;
|
||||
controlkey_t *keyid = NULL;
|
||||
char secret[1024];
|
||||
isc_buffer_t b;
|
||||
|
||||
/*
|
||||
* First generate a secret. The fourth parameter non-zero means
|
||||
* that pseudorandom data is ok; good entropy is not required.
|
||||
*/
|
||||
result = dst_key_generate(dns_rootname, DST_ALG_HMACMD5,
|
||||
NS_AUTOKEY_BITS, 1, 0, DNS_KEYPROTO_ANY,
|
||||
dns_rdataclass_in, mctx, &key);
|
||||
CHECK(cfg_parser_create(mctx, ns_g_lctx, &pctx));
|
||||
CHECK(cfg_parse_file(pctx, ns_g_keyfile, &cfg_type_rndckey, &config));
|
||||
CHECK(cfg_map_get(config, "key", &key));
|
||||
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
isc_buffer_init(&key_rawbuffer, &key_rawsecret,
|
||||
sizeof(key_rawsecret));
|
||||
result = dst_key_tobuffer(key, &key_rawbuffer);
|
||||
keyid = isc_mem_get(mctx, sizeof(*keyid));
|
||||
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)
|
||||
CHECK(ISC_R_NOMEMORY);
|
||||
|
||||
CHECK(cfg_check_key(key, ns_g_lctx));
|
||||
|
||||
(void)cfg_map_get(key, "algorithm", &algobj);
|
||||
(void)cfg_map_get(key, "secret", &secretobj);
|
||||
INSIST(algobj != NULL && secretobj != NULL);
|
||||
|
||||
algstr = cfg_obj_asstring(algobj);
|
||||
secretstr = cfg_obj_asstring(secretobj);
|
||||
|
||||
if (ns_config_getkeyalgorithm(algstr, NULL) != ISC_R_SUCCESS) {
|
||||
cfg_obj_log(key, ns_g_lctx,
|
||||
ISC_LOG_WARNING,
|
||||
"unsupported algorithm '%s' in "
|
||||
"key '%s' for use with command "
|
||||
"channel",
|
||||
algstr, keyid->keyname);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
isc_buffer_init(&key_txtbuffer, &key_txtsecret,
|
||||
sizeof(key_txtsecret));
|
||||
isc_buffer_usedregion(&key_rawbuffer, &key_rawregion);
|
||||
result = isc_base64_totext(&key_rawregion, -1, "\0",
|
||||
&key_txtbuffer);
|
||||
isc_buffer_init(&b, secret, sizeof(secret));
|
||||
result = isc_base64_decodestring(secretstr, &b);
|
||||
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
cfg_obj_log(key, ns_g_lctx, ISC_LOG_WARNING,
|
||||
"secret for key '%s' on command channel: %s",
|
||||
keyid->keyname, isc_result_totext(result));
|
||||
CHECK(result);
|
||||
}
|
||||
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
unsigned int len = isc_buffer_usedlength(&key_txtbuffer);
|
||||
|
||||
INSIST(len < sizeof(automagic_key.secret));
|
||||
|
||||
memcpy(automagic_key.secret, isc_buffer_base(&key_txtbuffer),
|
||||
len);
|
||||
automagic_key.secret[len] = '\0';
|
||||
|
||||
/*
|
||||
* Make a random name for the key and generate the config
|
||||
* file statement for it.
|
||||
*/
|
||||
isc_random_get(&key_id);
|
||||
len = snprintf(automagic_key.name, sizeof(automagic_key.name),
|
||||
NS_AUTOKEY_NAME ".%u", key_id);
|
||||
INSIST(len < sizeof(automagic_key.name));
|
||||
keyid->secret.length = isc_buffer_usedlength(&b);
|
||||
keyid->secret.base = isc_mem_get(mctx,
|
||||
keyid->secret.length);
|
||||
if (keyid->secret.base == NULL) {
|
||||
cfg_obj_log(key, ns_g_lctx, ISC_LOG_WARNING,
|
||||
"couldn't register key '%s': "
|
||||
"out of memory", keyid->keyname);
|
||||
CHECK(ISC_R_NOMEMORY);
|
||||
}
|
||||
memcpy(keyid->secret.base, isc_buffer_base(&b),
|
||||
keyid->secret.length);
|
||||
ISC_LIST_APPEND(*keyids, keyid, link);
|
||||
keyid = NULL;
|
||||
result = ISC_R_SUCCESS;
|
||||
|
||||
if (key != NULL)
|
||||
dst_key_free(&key);
|
||||
|
||||
if (result != ISC_R_SUCCESS)
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_CONTROL, ISC_LOG_WARNING,
|
||||
"could not generate control channel key: %s",
|
||||
isc_result_totext(result));
|
||||
|
||||
cleanup:
|
||||
if (keyid != NULL)
|
||||
free_controlkey(keyid, mctx);
|
||||
if (config != NULL)
|
||||
cfg_obj_destroy(pctx, &config);
|
||||
if (pctx != NULL)
|
||||
cfg_parser_destroy(&pctx);
|
||||
return (result);
|
||||
}
|
||||
|
||||
static void
|
||||
format_automagic_keycfg(isc_buffer_t *conf) {
|
||||
unsigned int len;
|
||||
|
||||
len = snprintf(isc_buffer_base(conf), isc_buffer_length(conf),
|
||||
"key \"%s\" {\n"
|
||||
"\talgorithm hmac-md5;\n"
|
||||
"\tsecret \"%s\";\n"
|
||||
"};\n",
|
||||
automagic_key.name, automagic_key.secret);
|
||||
|
||||
INSIST(len < isc_buffer_length(conf));
|
||||
|
||||
isc_buffer_add(conf, len);
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
parse_automagic_key(isc_mem_t *mctx) {
|
||||
unsigned int len;
|
||||
char cfg_data[512];
|
||||
isc_buffer_t cfg_buffer;
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
cfg_obj_t *cfg = NULL;
|
||||
cfg_parser_t *parser = NULL;
|
||||
|
||||
if (automagic_key.name[0] == '\0')
|
||||
result = make_automagic_key(mctx);
|
||||
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
/*
|
||||
* Fake up a configuration with a dummy inet control
|
||||
* to grab the keylist tuple.
|
||||
*/
|
||||
isc_buffer_init(&cfg_buffer, cfg_data, sizeof(cfg_data));
|
||||
format_automagic_keycfg(&cfg_buffer);
|
||||
len = snprintf(isc_buffer_used(&cfg_buffer),
|
||||
isc_buffer_availablelength(&cfg_buffer),
|
||||
"controls { inet 127.0.0.1 allow { localhost; }"
|
||||
" keys { %s; }; };",
|
||||
automagic_key.name);
|
||||
INSIST(len < isc_buffer_availablelength(&cfg_buffer));
|
||||
isc_buffer_add(&cfg_buffer, len);
|
||||
|
||||
result = cfg_parser_create(mctx, ns_g_lctx, &parser);
|
||||
}
|
||||
|
||||
if (result == ISC_R_SUCCESS)
|
||||
result = cfg_parse_buffer(parser, &cfg_buffer,
|
||||
&cfg_type_namedconf, &cfg);
|
||||
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
automagic_key.parser = parser;
|
||||
automagic_key.config = cfg;
|
||||
} else {
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_CONTROL, ISC_LOG_WARNING,
|
||||
"could not parse autogenerated "
|
||||
"control channel key: %s",
|
||||
isc_result_totext(result));
|
||||
|
||||
if (parser != NULL)
|
||||
cfg_parser_destroy(&parser);
|
||||
}
|
||||
|
||||
return (result);
|
||||
}
|
||||
|
||||
static void
|
||||
finalize_automagic_key(void) {
|
||||
int fsaccess;
|
||||
int i;
|
||||
FILE *fp;
|
||||
isc_result_t result;
|
||||
|
||||
(void)isc_file_remove(ns_g_autorndckeyfile);
|
||||
|
||||
if (automagic_key.parser != NULL) {
|
||||
/*
|
||||
* An automagic key was parsed, so some channel needed it.
|
||||
* Try to write the rndc.conf file.
|
||||
*/
|
||||
char cfg_data[512];
|
||||
char nettext[ISC_NETADDR_FORMATSIZE];
|
||||
isc_buffer_t cfg_buffer;
|
||||
isc_netaddr_t netaddr;
|
||||
|
||||
|
||||
result = isc_stdio_open(ns_g_autorndckeyfile, "w", &fp);
|
||||
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
fsaccess = 0;
|
||||
isc_fsaccess_add(ISC_FSACCESS_OWNER, ISC_FSACCESS_READ,
|
||||
&fsaccess);
|
||||
result = isc_fsaccess_set(ns_g_autorndckeyfile,
|
||||
fsaccess);
|
||||
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
isc_log_write(ns_g_lctx,
|
||||
NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_CONTROL,
|
||||
ISC_LOG_WARNING,
|
||||
"could not set owner-only "
|
||||
"access on %s: %s: "
|
||||
"server control key might be "
|
||||
"exposed to local users",
|
||||
ns_g_autorndckeyfile,
|
||||
isc_result_totext(result));
|
||||
}
|
||||
|
||||
isc_buffer_init(&cfg_buffer, cfg_data,
|
||||
sizeof(cfg_data));
|
||||
format_automagic_keycfg(&cfg_buffer);
|
||||
|
||||
isc_netaddr_fromsockaddr(&netaddr,
|
||||
&automagic_key.address);
|
||||
isc_netaddr_format(&netaddr, nettext, sizeof(nettext));
|
||||
|
||||
i = fputs(isc_buffer_base(&cfg_buffer), fp);
|
||||
|
||||
if (i != EOF)
|
||||
i = fprintf(fp, "options {\n"
|
||||
"\tdefault-server %s;\n"
|
||||
"\tdefault-port %hu;\n"
|
||||
"\tdefault-key \"%s\";\n"
|
||||
"};\n",
|
||||
nettext,
|
||||
isc_sockaddr_getport(
|
||||
&automagic_key.address),
|
||||
automagic_key.name);
|
||||
|
||||
if (i == EOF)
|
||||
isc_log_write(ns_g_lctx,
|
||||
NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_CONTROL,
|
||||
ISC_LOG_WARNING,
|
||||
"could not write %s",
|
||||
ns_g_autorndckeyfile);
|
||||
|
||||
result = isc_stdio_close(fp);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
isc_log_write(ns_g_lctx,
|
||||
NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_CONTROL,
|
||||
ISC_LOG_WARNING,
|
||||
"error closing %s: %s",
|
||||
ns_g_autorndckeyfile,
|
||||
isc_result_totext(result));
|
||||
}
|
||||
|
||||
cfg_obj_destroy(automagic_key.parser, &automagic_key.config);
|
||||
cfg_parser_destroy(&automagic_key.parser);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Ensures that both '*global_keylistp' and '*control_keylistp' are
|
||||
* valid or both are NULL.
|
||||
*/
|
||||
static void
|
||||
get_key_info(isc_mem_t *mctx, cfg_obj_t *config, cfg_obj_t *control,
|
||||
cfg_obj_t **global_keylistp, cfg_obj_t **control_keylistp,
|
||||
isc_boolean_t *explicit_key)
|
||||
get_key_info(cfg_obj_t *config, cfg_obj_t *control,
|
||||
cfg_obj_t **global_keylistp, cfg_obj_t **control_keylistp)
|
||||
{
|
||||
isc_result_t result;
|
||||
cfg_obj_t *control_keylist = NULL;
|
||||
cfg_obj_t *global_keylist = NULL;
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
|
||||
REQUIRE(global_keylistp != NULL && *global_keylistp == NULL);
|
||||
REQUIRE(control_keylistp != NULL && *control_keylistp == NULL);
|
||||
|
||||
control_keylist = cfg_tuple_get(control, "keys");
|
||||
|
||||
if (cfg_obj_isvoid(control_keylist) ||
|
||||
cfg_list_first(control_keylist) == NULL) {
|
||||
cfg_obj_t *controls = NULL;
|
||||
cfg_obj_t *inet = NULL;
|
||||
|
||||
if (automagic_key.parser == NULL)
|
||||
result = parse_automagic_key(mctx);
|
||||
if (!cfg_obj_isvoid(control_keylist) &&
|
||||
cfg_list_first(control_keylist) != NULL) {
|
||||
result = cfg_map_get(config, "key", &global_keylist);
|
||||
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
config = automagic_key.config;
|
||||
|
||||
/*
|
||||
* All of these should succeed.
|
||||
*/
|
||||
(void)cfg_map_get(config, "key", &global_keylist);
|
||||
INSIST(global_keylist != NULL);
|
||||
|
||||
(void)cfg_map_get(config, "controls", &controls);
|
||||
INSIST(controls != NULL);
|
||||
(void)cfg_map_get(cfg_listelt_value
|
||||
(cfg_list_first(controls)),
|
||||
"inet", &inet);
|
||||
INSIST(inet != NULL);
|
||||
control_keylist =
|
||||
cfg_tuple_get(cfg_listelt_value
|
||||
(cfg_list_first(inet)), "keys");
|
||||
INSIST(control_keylist != NULL);
|
||||
*global_keylistp = global_keylist;
|
||||
*control_keylistp = control_keylist;
|
||||
}
|
||||
|
||||
*explicit_key = ISC_FALSE;
|
||||
|
||||
} else {
|
||||
result = cfg_map_get(config, "key", &global_keylist);
|
||||
*explicit_key = config != automagic_key.config
|
||||
? ISC_TRUE : ISC_FALSE;
|
||||
}
|
||||
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
*global_keylistp = global_keylist;
|
||||
*control_keylistp = control_keylist;
|
||||
} else
|
||||
cfg_obj_log(control, ns_g_lctx, ISC_LOG_WARNING,
|
||||
"no key statements for use by control channel");
|
||||
}
|
||||
|
||||
static void
|
||||
update_listener(ns_controls_t *cp,
|
||||
controllistener_t **listenerp, cfg_obj_t *control,
|
||||
cfg_obj_t *config, isc_sockaddr_t *addr,
|
||||
ns_aclconfctx_t *aclconfctx, char *socktext)
|
||||
ns_aclconfctx_t *aclconfctx, const char *socktext)
|
||||
{
|
||||
controllistener_t *listener;
|
||||
cfg_obj_t *allow;
|
||||
@@ -989,7 +858,6 @@ update_listener(ns_controls_t *cp,
|
||||
cfg_obj_t *control_keylist = NULL;
|
||||
dns_acl_t *new_acl = NULL;
|
||||
controlkeylist_t keys;
|
||||
isc_boolean_t explicit_key;
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
|
||||
for (listener = ISC_LIST_HEAD(cp->listeners);
|
||||
@@ -1021,11 +889,11 @@ update_listener(ns_controls_t *cp,
|
||||
* XXXDCL There is one other hazard that has not been dealt with,
|
||||
* the problem that if a key change is being caused by a control
|
||||
* channel reload, then the response will be with the new key
|
||||
* and not able to be decrypted by the client. For this reason,
|
||||
* the automagic key is not regenerated on each reload.
|
||||
* and not able to be decrypted by the client.
|
||||
*/
|
||||
get_key_info(listener->mctx, config, control,
|
||||
&global_keylist, &control_keylist, &explicit_key);
|
||||
if (control != NULL)
|
||||
get_key_info(config, control, &global_keylist,
|
||||
&control_keylist);
|
||||
|
||||
if (control_keylist != NULL) {
|
||||
INSIST(global_keylist != NULL);
|
||||
@@ -1033,18 +901,18 @@ update_listener(ns_controls_t *cp,
|
||||
ISC_LIST_INIT(keys);
|
||||
result = controlkeylist_fromcfg(control_keylist,
|
||||
listener->mctx, &keys);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
free_controlkeylist(&listener->keys, listener->mctx);
|
||||
listener->keys = keys;
|
||||
register_keys(control, global_keylist, &listener->keys,
|
||||
listener->mctx, socktext);
|
||||
}
|
||||
} else {
|
||||
free_controlkeylist(&listener->keys, listener->mctx);
|
||||
result = get_rndckey(listener->mctx, &listener->keys);
|
||||
}
|
||||
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
free_controlkeylist(&listener->keys, listener->mctx);
|
||||
listener->keys = keys;
|
||||
register_keys(control, global_keylist, &listener->keys,
|
||||
listener->mctx, socktext);
|
||||
|
||||
if (! explicit_key)
|
||||
automagic_key.address = listener->address;
|
||||
|
||||
} else if (global_keylist != NULL)
|
||||
if (result != ISC_R_SUCCESS && global_keylist != NULL)
|
||||
/*
|
||||
* This message might be a little misleading since the
|
||||
* "new keys" might in fact be identical to the old ones,
|
||||
@@ -1060,9 +928,14 @@ update_listener(ns_controls_t *cp,
|
||||
/*
|
||||
* Now, keep the old access list unless a new one can be made.
|
||||
*/
|
||||
allow = cfg_tuple_get(control, "allow");
|
||||
result = ns_acl_fromconfig(allow, config, aclconfctx,
|
||||
listener->mctx, &new_acl);
|
||||
if (control != NULL) {
|
||||
allow = cfg_tuple_get(control, "allow");
|
||||
result = ns_acl_fromconfig(allow, config, aclconfctx,
|
||||
listener->mctx, &new_acl);
|
||||
} else {
|
||||
result = dns_acl_any(listener->mctx, &new_acl);
|
||||
}
|
||||
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
dns_acl_detach(&listener->acl);
|
||||
dns_acl_attach(new_acl, &listener->acl);
|
||||
@@ -1080,7 +953,7 @@ update_listener(ns_controls_t *cp,
|
||||
static void
|
||||
add_listener(ns_controls_t *cp, controllistener_t **listenerp,
|
||||
cfg_obj_t *control, cfg_obj_t *config, isc_sockaddr_t *addr,
|
||||
ns_aclconfctx_t *aclconfctx, char *socktext)
|
||||
ns_aclconfctx_t *aclconfctx, const char *socktext)
|
||||
{
|
||||
isc_mem_t *mctx = cp->server->mctx;
|
||||
controllistener_t *listener;
|
||||
@@ -1088,7 +961,6 @@ add_listener(ns_controls_t *cp, controllistener_t **listenerp,
|
||||
cfg_obj_t *global_keylist = NULL;
|
||||
cfg_obj_t *control_keylist = NULL;
|
||||
dns_acl_t *new_acl = NULL;
|
||||
isc_boolean_t explicit_key;
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
|
||||
listener = isc_mem_get(mctx, sizeof(*listener));
|
||||
@@ -1111,30 +983,35 @@ add_listener(ns_controls_t *cp, controllistener_t **listenerp,
|
||||
/*
|
||||
* Make the acl.
|
||||
*/
|
||||
allow = cfg_tuple_get(control, "allow");
|
||||
result = ns_acl_fromconfig(allow, config, aclconfctx, mctx,
|
||||
&new_acl);
|
||||
if (control != NULL) {
|
||||
allow = cfg_tuple_get(control, "allow");
|
||||
result = ns_acl_fromconfig(allow, config, aclconfctx,
|
||||
mctx, &new_acl);
|
||||
} else {
|
||||
result = dns_acl_any(mctx, &new_acl);
|
||||
}
|
||||
}
|
||||
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
dns_acl_attach(new_acl, &listener->acl);
|
||||
dns_acl_detach(&new_acl);
|
||||
|
||||
get_key_info(listener->mctx, config, control,
|
||||
&global_keylist, &control_keylist, &explicit_key);
|
||||
if (config != NULL)
|
||||
get_key_info(config, control, &global_keylist,
|
||||
&control_keylist);
|
||||
|
||||
if (control_keylist != NULL)
|
||||
if (control_keylist != NULL) {
|
||||
result = controlkeylist_fromcfg(control_keylist,
|
||||
listener->mctx,
|
||||
&listener->keys);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
register_keys(control, global_keylist, &listener->keys,
|
||||
listener->mctx, socktext);
|
||||
|
||||
if (! explicit_key)
|
||||
automagic_key.address = listener->address;
|
||||
|
||||
if (result == ISC_R_SUCCESS)
|
||||
register_keys(control, global_keylist,
|
||||
&listener->keys,
|
||||
listener->mctx, socktext);
|
||||
} else
|
||||
result = get_rndckey(mctx, &listener->keys);
|
||||
|
||||
if (result != ISC_R_SUCCESS && control != NULL)
|
||||
cfg_obj_log(control, ns_g_lctx, ISC_LOG_WARNING,
|
||||
"couldn't install keys for "
|
||||
"command channel %s: %s",
|
||||
@@ -1176,9 +1053,15 @@ add_listener(ns_controls_t *cp, controllistener_t **listenerp,
|
||||
free_listener(listener);
|
||||
}
|
||||
|
||||
cfg_obj_log(control, ns_g_lctx, ISC_LOG_WARNING,
|
||||
"couldn't add command channel %s: %s",
|
||||
socktext, isc_result_totext(result));
|
||||
if (control != NULL)
|
||||
cfg_obj_log(control, ns_g_lctx, ISC_LOG_WARNING,
|
||||
"couldn't add command channel %s: %s",
|
||||
socktext, isc_result_totext(result));
|
||||
else
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_CONTROL, ISC_LOG_NOTICE,
|
||||
"couldn't add command channel %s: %s",
|
||||
socktext, isc_result_totext(result));
|
||||
|
||||
*listenerp = NULL;
|
||||
}
|
||||
@@ -1279,34 +1162,66 @@ ns_controls_configure(ns_controls_t *cp, cfg_obj_t *config,
|
||||
listener, link);
|
||||
}
|
||||
}
|
||||
|
||||
finalize_automagic_key();
|
||||
|
||||
/*
|
||||
* ns_control_shutdown() will stop whatever is on the global
|
||||
* listeners list, which currently only has whatever sockaddrs
|
||||
* were in the previous configuration (if any) that do not
|
||||
* remain in the current configuration.
|
||||
*/
|
||||
ns_controls_shutdown(cp);
|
||||
|
||||
/*
|
||||
* Put all of the valid listeners on the listeners list.
|
||||
* Anything already on listeners in the process of shutting
|
||||
* down will be taken care of by listen_done().
|
||||
*/
|
||||
ISC_LIST_APPENDLIST(cp->listeners, new_listeners, link);
|
||||
|
||||
} else {
|
||||
isc_result_t result;
|
||||
int i;
|
||||
|
||||
result = parse_automagic_key(cp->server->mctx);
|
||||
for (i = 0; i < 2; i++) {
|
||||
isc_sockaddr_t addr;
|
||||
|
||||
if (result == ISC_R_SUCCESS)
|
||||
ns_controls_configure(cp, automagic_key.config,
|
||||
aclconfctx);
|
||||
if (i == 0) {
|
||||
struct in_addr localhost;
|
||||
|
||||
if (isc_net_probeipv4() != ISC_R_SUCCESS)
|
||||
continue;
|
||||
localhost.s_addr = htonl(INADDR_LOOPBACK);
|
||||
isc_sockaddr_fromin(&addr, &localhost, 0);
|
||||
} else {
|
||||
if (isc_net_probeipv6() != ISC_R_SUCCESS)
|
||||
continue;
|
||||
isc_sockaddr_fromin6(&addr,
|
||||
&in6addr_loopback, 0);
|
||||
}
|
||||
isc_sockaddr_setport(&addr, NS_CONTROL_PORT);
|
||||
|
||||
isc_sockaddr_format(&addr, socktext, sizeof(socktext));
|
||||
|
||||
update_listener(cp, &listener, NULL, NULL,
|
||||
&addr, NULL, socktext);
|
||||
|
||||
if (listener != NULL)
|
||||
/*
|
||||
* Remove the listener from the old
|
||||
* list, so it won't be shut down.
|
||||
*/
|
||||
ISC_LIST_UNLINK(cp->listeners,
|
||||
listener, link);
|
||||
else
|
||||
/*
|
||||
* This is a new listener.
|
||||
*/
|
||||
add_listener(cp, &listener, NULL, NULL,
|
||||
&addr, NULL, socktext);
|
||||
|
||||
if (listener != NULL)
|
||||
ISC_LIST_APPEND(new_listeners,
|
||||
listener, link);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* ns_control_shutdown() will stop whatever is on the global
|
||||
* listeners list, which currently only has whatever sockaddrs
|
||||
* were in the previous configuration (if any) that do not
|
||||
* remain in the current configuration.
|
||||
*/
|
||||
controls_shutdown(cp);
|
||||
|
||||
/*
|
||||
* Put all of the valid listeners on the listeners list.
|
||||
* Anything already on listeners in the process of shutting
|
||||
* down will be taken care of by listen_done().
|
||||
*/
|
||||
ISC_LIST_APPENDLIST(cp->listeners, new_listeners, link);
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
@@ -1318,6 +1233,7 @@ ns_controls_create(ns_server_t *server, ns_controls_t **ctrlsp) {
|
||||
return (ISC_R_NOMEMORY);
|
||||
controls->server = server;
|
||||
ISC_LIST_INIT(controls->listeners);
|
||||
controls->shuttingdown = ISC_FALSE;
|
||||
*ctrlsp = controls;
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: client.h,v 1.57 2001/03/19 20:52:21 gson Exp $ */
|
||||
/* $Id: client.h,v 1.60.2.2 2001/11/15 02:51:46 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_CLIENT_H
|
||||
#define NAMED_CLIENT_H 1
|
||||
@@ -64,6 +64,7 @@
|
||||
***/
|
||||
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/magic.h>
|
||||
#include <isc/stdtime.h>
|
||||
#include <isc/quota.h>
|
||||
|
||||
@@ -71,9 +72,6 @@
|
||||
#include <dns/types.h>
|
||||
#include <dns/tcpmsg.h>
|
||||
#include <dns/fixedname.h>
|
||||
#ifdef DNS_OPT_NEWCODES
|
||||
#include <dns/opt.h>
|
||||
#endif /* DNS_OPT_NEWCODES */
|
||||
#include <named/types.h>
|
||||
#include <named/query.h>
|
||||
|
||||
@@ -93,6 +91,7 @@ struct ns_client {
|
||||
int nreads;
|
||||
int nsends;
|
||||
int nrecvs;
|
||||
int nctls;
|
||||
int references;
|
||||
unsigned int attributes;
|
||||
isc_task_t * task;
|
||||
@@ -113,10 +112,6 @@ struct ns_client {
|
||||
dns_rdataset_t * opt;
|
||||
isc_uint16_t udpsize;
|
||||
isc_uint16_t extflags;
|
||||
#ifdef DNS_OPT_NEWCODES
|
||||
dns_fixedname_t * opt_zone;
|
||||
isc_buffer_t * opt_view;
|
||||
#endif /* DNS_OPT_NEWCODES */
|
||||
void (*next)(ns_client_t *);
|
||||
void (*shutdown)(void *arg, isc_result_t result);
|
||||
void *shutdown_arg;
|
||||
@@ -151,15 +146,7 @@ struct ns_client {
|
||||
client_list_t *list;
|
||||
};
|
||||
|
||||
#ifdef DNS_OPT_NEWCODES
|
||||
/*
|
||||
* Number of attr fields (opt_zone, opt_view) in above structure. Used in
|
||||
* client_addoptattrs()
|
||||
*/
|
||||
#define CLIENT_NUMATTRS 2
|
||||
#endif /* DNS_OPT_NEWCODES */
|
||||
|
||||
#define NS_CLIENT_MAGIC 0x4E534363U /* NSCc */
|
||||
#define NS_CLIENT_MAGIC ISC_MAGIC('N','S','C','c')
|
||||
#define NS_CLIENT_VALID(c) ISC_MAGIC_VALID(c, NS_CLIENT_MAGIC)
|
||||
|
||||
#define NS_CLIENTATTR_TCP 0x01
|
||||
@@ -268,17 +255,14 @@ ns_client_getsockaddr(ns_client_t *client);
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
ns_client_checkacl(ns_client_t *client,
|
||||
const char *opname, dns_acl_t *acl,
|
||||
isc_boolean_t default_allow,
|
||||
int log_level);
|
||||
ns_client_checkaclsilent(ns_client_t *client,dns_acl_t *acl,
|
||||
isc_boolean_t default_allow);
|
||||
|
||||
/*
|
||||
* Convenience function for client request ACL checking.
|
||||
*
|
||||
* Check the current client request against 'acl'. If 'acl'
|
||||
* is NULL, allow the request iff 'default_allow' is ISC_TRUE.
|
||||
* Log the outcome of the check if deemed appropriate.
|
||||
* Log messages will refer to the request as an 'opname' request.
|
||||
*
|
||||
* Notes:
|
||||
* This is appropriate for checking allow-update,
|
||||
@@ -289,7 +273,6 @@ ns_client_checkacl(ns_client_t *client,
|
||||
*
|
||||
* Requires:
|
||||
* 'client' points to a valid client.
|
||||
* 'opname' points to a null-terminated string.
|
||||
* 'acl' points to a valid ACL, or is NULL.
|
||||
*
|
||||
* Returns:
|
||||
@@ -298,10 +281,27 @@ ns_client_checkacl(ns_client_t *client,
|
||||
* No other return values are possible.
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
ns_client_checkacl(ns_client_t *client,
|
||||
const char *opname, dns_acl_t *acl,
|
||||
isc_boolean_t default_allow,
|
||||
int log_level);
|
||||
/*
|
||||
* Like ns_client_checkacl, but also logs the outcome of the
|
||||
* check at log level 'log_level' if denied, and at debug 3
|
||||
* if approved. Log messages will refer to the request as
|
||||
* an 'opname' request.
|
||||
*
|
||||
* Requires:
|
||||
* Those of ns_client_checkaclsilent(), and:
|
||||
*
|
||||
* 'opname' points to a null-terminated string.
|
||||
*/
|
||||
|
||||
void
|
||||
ns_client_log(ns_client_t *client, isc_logcategory_t *category,
|
||||
isc_logmodule_t *module, int level,
|
||||
const char *fmt, ...);
|
||||
const char *fmt, ...) ISC_FORMAT_PRINTF(5, 6);
|
||||
|
||||
void
|
||||
ns_client_aclmsg(const char *msg, dns_name_t *name, dns_rdataclass_t rdclass,
|
||||
|
||||
@@ -15,9 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: config.h,v 1.1 2001/03/04 21:21:32 bwelling Exp $ */
|
||||
|
||||
/* $Id: config.h,v 1.1 2001/03/04 21:21:32 bwelling Exp $ */
|
||||
/* $Id: config.h,v 1.4 2001/08/09 17:21:06 gson Exp $ */
|
||||
|
||||
#ifndef NAMED_CONFIG_H
|
||||
#define NAMED_CONFIG_H 1
|
||||
@@ -37,7 +35,8 @@ int
|
||||
ns_config_listcount(cfg_obj_t *list);
|
||||
|
||||
isc_result_t
|
||||
ns_config_getclass(cfg_obj_t *classobj, dns_rdataclass_t *classp);
|
||||
ns_config_getclass(cfg_obj_t *classobj, dns_rdataclass_t defclass,
|
||||
dns_rdataclass_t *classp);
|
||||
|
||||
dns_zonetype_t
|
||||
ns_config_getzonetype(cfg_obj_t *zonetypeobj);
|
||||
@@ -63,4 +62,7 @@ ns_config_putipandkeylist(isc_mem_t *mctx, isc_sockaddr_t **addrsp,
|
||||
isc_result_t
|
||||
ns_config_getport(cfg_obj_t *config, in_port_t *portp);
|
||||
|
||||
isc_result_t
|
||||
ns_config_getkeyalgorithm(const char *str, dns_name_t **name);
|
||||
|
||||
#endif /* NAMED_CONFIG_H */
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: globals.h,v 1.57 2001/05/31 10:38:56 tale Exp $ */
|
||||
/* $Id: globals.h,v 1.59 2001/08/08 20:37:31 gson Exp $ */
|
||||
|
||||
#ifndef NAMED_GLOBALS_H
|
||||
#define NAMED_GLOBALS_H 1
|
||||
@@ -76,6 +76,8 @@ EXTERN cfg_obj_t * ns_g_config INIT(NULL);
|
||||
EXTERN cfg_obj_t * ns_g_defaults INIT(NULL);
|
||||
EXTERN const char * ns_g_conffile INIT(NS_SYSCONFDIR
|
||||
"/named.conf");
|
||||
EXTERN const char * ns_g_keyfile INIT(NS_SYSCONFDIR
|
||||
"/rndc.key");
|
||||
EXTERN const char * lwresd_g_conffile INIT(NS_SYSCONFDIR
|
||||
"/lwresd.conf");
|
||||
EXTERN const char * lwresd_g_resolvconffile INIT("/etc"
|
||||
@@ -103,8 +105,6 @@ EXTERN const char * ns_g_defaultpidfile INIT(NS_LOCALSTATEDIR
|
||||
"/run/named.pid");
|
||||
EXTERN const char * lwresd_g_defaultpidfile INIT(NS_LOCALSTATEDIR
|
||||
"/run/lwresd.pid");
|
||||
EXTERN const char * ns_g_autorndckeyfile INIT(NS_LOCALSTATEDIR
|
||||
"/run/named.key");
|
||||
EXTERN const char * ns_g_username INIT(NULL);
|
||||
|
||||
#undef EXTERN
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: interfacemgr.h,v 1.22 2001/01/09 21:40:14 bwelling Exp $ */
|
||||
/* $Id: interfacemgr.h,v 1.23 2001/08/28 03:58:00 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_INTERFACEMGR_H
|
||||
#define NAMED_INTERFACEMGR_H 1
|
||||
@@ -62,7 +62,7 @@
|
||||
*** Types
|
||||
***/
|
||||
|
||||
#define IFACE_MAGIC 0x493A2D29U /* I:-). */
|
||||
#define IFACE_MAGIC ISC_MAGIC('I',':','-',')')
|
||||
#define NS_INTERFACE_VALID(t) ISC_MAGIC_VALID(t, IFACE_MAGIC)
|
||||
|
||||
struct ns_interface {
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwdclient.h,v 1.12 2001/01/22 22:29:04 gson Exp $ */
|
||||
/* $Id: lwdclient.h,v 1.13 2001/08/08 22:54:24 gson Exp $ */
|
||||
|
||||
#ifndef NAMED_LWDCLIENT_H
|
||||
#define NAMED_LWDCLIENT_H 1
|
||||
@@ -224,6 +224,7 @@ void ns_lwdclient_processnoop(ns_lwdclient_t *, lwres_buffer_t *);
|
||||
|
||||
void ns_lwdclient_errorpktsend(ns_lwdclient_t *, isc_uint32_t);
|
||||
|
||||
void ns_lwdclient_log(int level, const char *format, ...);
|
||||
void ns_lwdclient_log(int level, const char *format, ...)
|
||||
ISC_FORMAT_PRINTF(2, 3);
|
||||
|
||||
#endif /* NAMED_LWDCLIENT_H */
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwresd.h,v 1.11 2001/03/04 21:21:34 bwelling Exp $ */
|
||||
/* $Id: lwresd.h,v 1.12 2001/08/28 03:58:02 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_LWRESD_H
|
||||
#define NAMED_LWRESD_H 1
|
||||
@@ -28,7 +28,7 @@
|
||||
#include <dns/types.h>
|
||||
|
||||
struct ns_lwresd {
|
||||
isc_uint32_t magic;
|
||||
unsigned int magic;
|
||||
|
||||
isc_mutex_t lock;
|
||||
dns_view_t *view;
|
||||
@@ -40,7 +40,7 @@ struct ns_lwresd {
|
||||
};
|
||||
|
||||
struct ns_lwreslistener {
|
||||
isc_uint32_t magic;
|
||||
unsigned int magic;
|
||||
|
||||
isc_mutex_t lock;
|
||||
isc_mem_t *mctx;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwsearch.h,v 1.3 2001/01/09 21:40:22 bwelling Exp $ */
|
||||
/* $Id: lwsearch.h,v 1.4 2001/08/28 03:58:03 marka Exp $ */
|
||||
|
||||
#ifndef NAMED_LWSEARCH_H
|
||||
#define NAMED_LWSEARCH_H 1
|
||||
@@ -38,7 +38,7 @@
|
||||
*/
|
||||
|
||||
struct ns_lwsearchlist {
|
||||
isc_uint32_t magic;
|
||||
unsigned int magic;
|
||||
|
||||
isc_mutex_t lock;
|
||||
isc_mem_t *mctx;
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: main.h,v 1.7 2001/01/09 21:40:23 bwelling Exp $ */
|
||||
/* $Id: main.h,v 1.8 2001/08/08 22:54:26 gson Exp $ */
|
||||
|
||||
#ifndef NAMED_MAIN_H
|
||||
#define NAMED_MAIN_H 1
|
||||
|
||||
void
|
||||
ns_main_earlyfatal(const char *format, ...);
|
||||
ns_main_earlyfatal(const char *format, ...) ISC_FORMAT_PRINTF(1, 2);
|
||||
|
||||
#endif /* NAMED_MAIN_H */
|
||||
|
||||
@@ -15,19 +15,22 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: server.h,v 1.57 2001/05/31 01:21:09 bwelling Exp $ */
|
||||
/* $Id: server.h,v 1.58.2.1 2001/09/04 19:38:46 gson Exp $ */
|
||||
|
||||
#ifndef NAMED_SERVER_H
|
||||
#define NAMED_SERVER_H 1
|
||||
|
||||
#include <isc/log.h>
|
||||
#include <isc/sockaddr.h>
|
||||
#include <isc/magic.h>
|
||||
#include <isc/types.h>
|
||||
#include <isc/quota.h>
|
||||
|
||||
#include <dns/types.h>
|
||||
#include <dns/acl.h>
|
||||
|
||||
#include <named/types.h>
|
||||
|
||||
#define NS_EVENTCLASS ISC_EVENTCLASS(0x4E43)
|
||||
#define NS_EVENT_RELOAD (NS_EVENTCLASS + 0)
|
||||
#define NS_EVENT_CLIENTCONTROL (NS_EVENTCLASS + 1)
|
||||
@@ -36,7 +39,7 @@
|
||||
* Name server state. Better here than in lots of separate global variables.
|
||||
*/
|
||||
struct ns_server {
|
||||
isc_uint32_t magic;
|
||||
unsigned int magic;
|
||||
isc_mem_t * mctx;
|
||||
|
||||
isc_task_t * task;
|
||||
@@ -81,9 +84,8 @@ struct ns_server {
|
||||
ns_controls_t * controls; /* Control channels */
|
||||
};
|
||||
|
||||
#define NS_SERVER_MAGIC 0x53564552 /* SVER */
|
||||
#define NS_SERVER_VALID(s) ((s) != NULL && \
|
||||
(s)->magic == NS_SERVER_MAGIC)
|
||||
#define NS_SERVER_MAGIC ISC_MAGIC('S','V','E','R')
|
||||
#define NS_SERVER_VALID(s) ISC_MAGIC_VALID(s, NS_SERVER_MAGIC)
|
||||
|
||||
void
|
||||
ns_server_create(isc_mem_t *mctx, ns_server_t **serverp);
|
||||
|
||||
+80
-67
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: interfacemgr.c,v 1.57 2001/02/27 04:20:44 bwelling Exp $ */
|
||||
/* $Id: interfacemgr.c,v 1.59.2.3 2001/10/22 17:42:05 gson Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -31,8 +31,8 @@
|
||||
#include <named/log.h>
|
||||
#include <named/interfacemgr.h>
|
||||
|
||||
#define IFMGR_MAGIC 0x49464D47U /* IFMG. */
|
||||
#define NS_INTERFACEMGR_VALID(t) ISC_MAGIC_VALID(t, IFMGR_MAGIC)
|
||||
#define IFMGR_MAGIC ISC_MAGIC('I', 'F', 'M', 'G')
|
||||
#define NS_INTERFACEMGR_VALID(t) ISC_MAGIC_VALID(t, IFMGR_MAGIC)
|
||||
|
||||
#define IFMGR_COMMON_LOGARGS \
|
||||
ns_g_lctx, NS_LOGCATEGORY_NETWORK, NS_LOGMODULE_INTERFACEMGR
|
||||
@@ -469,14 +469,14 @@ clearacl(isc_mem_t *mctx, dns_acl_t **aclp) {
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
static void
|
||||
static isc_result_t
|
||||
do_ipv4(ns_interfacemgr_t *mgr) {
|
||||
isc_interfaceiter_t *iter = NULL;
|
||||
isc_result_t result;
|
||||
|
||||
result = isc_interfaceiter_create(mgr->mctx, &iter);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return;
|
||||
return (result);
|
||||
|
||||
result = clearacl(mgr->mctx, &mgr->aclenv.localhost);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
@@ -505,23 +505,32 @@ do_ipv4(ns_interfacemgr_t *mgr) {
|
||||
if ((interface.flags & INTERFACE_F_UP) == 0)
|
||||
continue;
|
||||
|
||||
result = isc_netaddr_masktoprefixlen(&interface.netmask,
|
||||
&prefixlen);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto ignore_interface;
|
||||
elt.type = dns_aclelementtype_ipprefix;
|
||||
elt.negative = ISC_FALSE;
|
||||
elt.u.ip_prefix.address = interface.address;
|
||||
elt.u.ip_prefix.prefixlen = prefixlen;
|
||||
/* XXX suppress duplicates */
|
||||
result = dns_acl_appendelement(mgr->aclenv.localnets, &elt);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto ignore_interface;
|
||||
elt.u.ip_prefix.prefixlen = 32;
|
||||
result = dns_acl_appendelement(mgr->aclenv.localhost, &elt);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto ignore_interface;
|
||||
|
||||
result = isc_netaddr_masktoprefixlen(&interface.netmask,
|
||||
&prefixlen);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
isc_log_write(IFMGR_COMMON_LOGARGS,
|
||||
ISC_LOG_WARNING,
|
||||
"omitting IPv4 interface %s from "
|
||||
"localnets ACL: %s",
|
||||
interface.name,
|
||||
isc_result_totext(result));
|
||||
} else {
|
||||
elt.u.ip_prefix.prefixlen = prefixlen;
|
||||
/* XXX suppress duplicates */
|
||||
result = dns_acl_appendelement(mgr->aclenv.localnets,
|
||||
&elt);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto ignore_interface;
|
||||
}
|
||||
|
||||
for (le = ISC_LIST_HEAD(mgr->listenon4->elts);
|
||||
le != NULL;
|
||||
le = ISC_LIST_NEXT(le, link))
|
||||
@@ -590,18 +599,15 @@ do_ipv4(ns_interfacemgr_t *mgr) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"IPv4: interface iteration failed: %s",
|
||||
isc_result_totext(result));
|
||||
else
|
||||
result = ISC_R_SUCCESS;
|
||||
cleanup_iter:
|
||||
isc_interfaceiter_destroy(&iter);
|
||||
return (result);
|
||||
}
|
||||
|
||||
static isc_boolean_t
|
||||
listenon_is_ip6_none(ns_listenlist_t *p) {
|
||||
ns_listenelt_t *elt;
|
||||
if (ISC_LIST_EMPTY(p->elts))
|
||||
return (ISC_TRUE); /* No listen-on-v6 statements */
|
||||
elt = ISC_LIST_HEAD(p->elts);
|
||||
if (ISC_LIST_NEXT(elt, link) != NULL)
|
||||
return (ISC_FALSE); /* More than one listen-on-v6 stmt */
|
||||
listenon_is_ip6_none(ns_listenelt_t *elt) {
|
||||
if (elt->acl->length == 0)
|
||||
return (ISC_TRUE); /* listen-on-v6 { } */
|
||||
if (elt->acl->length > 1)
|
||||
@@ -613,69 +619,73 @@ listenon_is_ip6_none(ns_listenlist_t *p) {
|
||||
}
|
||||
|
||||
static isc_boolean_t
|
||||
listenon_is_ip6_any(ns_listenlist_t *p, in_port_t *portp) {
|
||||
ns_listenelt_t *elt;
|
||||
if (ISC_LIST_EMPTY(p->elts))
|
||||
return (ISC_FALSE); /* No listen-on-v6 statements */
|
||||
elt = ISC_LIST_HEAD(p->elts);
|
||||
if (ISC_LIST_NEXT(elt, link) != NULL)
|
||||
return (ISC_FALSE); /* More than one listen-on-v6 stmt */
|
||||
listenon_is_ip6_any(ns_listenelt_t *elt) {
|
||||
if (elt->acl->length != 1)
|
||||
return (ISC_FALSE);
|
||||
if (elt->acl->elements[0].negative == ISC_FALSE &&
|
||||
elt->acl->elements[0].type == dns_aclelementtype_any) {
|
||||
*portp = elt->port;
|
||||
elt->acl->elements[0].type == dns_aclelementtype_any)
|
||||
return (ISC_TRUE); /* listen-on-v6 { any; } */
|
||||
}
|
||||
return (ISC_FALSE); /* All others */
|
||||
}
|
||||
|
||||
static void
|
||||
static isc_result_t
|
||||
do_ipv6(ns_interfacemgr_t *mgr) {
|
||||
isc_result_t result;
|
||||
ns_interface_t *ifp;
|
||||
isc_sockaddr_t listen_addr;
|
||||
struct in6_addr in6a;
|
||||
in_port_t port;
|
||||
ns_listenelt_t *le;
|
||||
|
||||
if (listenon_is_ip6_none(mgr->listenon6))
|
||||
return;
|
||||
|
||||
if (! listenon_is_ip6_any(mgr->listenon6, &port)) {
|
||||
isc_log_write(IFMGR_COMMON_LOGARGS,
|
||||
ISC_LOG_ERROR,
|
||||
"bad IPv6 listen-on list: must be 'any' or 'none'");
|
||||
return;
|
||||
}
|
||||
|
||||
in6a = in6addr_any;
|
||||
isc_sockaddr_fromin6(&listen_addr, &in6a, port);
|
||||
|
||||
ifp = find_matching_interface(mgr, &listen_addr);
|
||||
if (ifp != NULL) {
|
||||
ifp->generation = mgr->generation;
|
||||
} else {
|
||||
isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_INFO,
|
||||
"listening on IPv6 interfaces, port %u", port);
|
||||
result = ns_interface_setup(mgr, &listen_addr, "<any>", &ifp);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
for (le = ISC_LIST_HEAD(mgr->listenon6->elts);
|
||||
le != NULL;
|
||||
le = ISC_LIST_NEXT(le, link))
|
||||
{
|
||||
if (listenon_is_ip6_none(le))
|
||||
continue;
|
||||
if (! listenon_is_ip6_any(le)) {
|
||||
isc_log_write(IFMGR_COMMON_LOGARGS,
|
||||
ISC_LOG_ERROR,
|
||||
"listening on IPv6 interfaces failed");
|
||||
/* Continue. */
|
||||
"bad IPv6 listen-on list: "
|
||||
"must be 'any' or 'none'");
|
||||
return (ISC_R_FAILURE);
|
||||
}
|
||||
|
||||
in6a = in6addr_any;
|
||||
isc_sockaddr_fromin6(&listen_addr, &in6a, le->port);
|
||||
|
||||
ifp = find_matching_interface(mgr, &listen_addr);
|
||||
if (ifp != NULL) {
|
||||
ifp->generation = mgr->generation;
|
||||
} else {
|
||||
isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_INFO,
|
||||
"listening on IPv6 interfaces, port %u",
|
||||
le->port);
|
||||
result = ns_interface_setup(mgr, &listen_addr,
|
||||
"<any>", &ifp);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
isc_log_write(IFMGR_COMMON_LOGARGS,
|
||||
ISC_LOG_ERROR,
|
||||
"listening on IPv6 interfaces "
|
||||
"failed");
|
||||
/* Continue. */
|
||||
}
|
||||
}
|
||||
}
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
void
|
||||
ns_interfacemgr_scan(ns_interfacemgr_t *mgr, isc_boolean_t verbose) {
|
||||
isc_boolean_t purge = ISC_TRUE;
|
||||
|
||||
REQUIRE(NS_INTERFACEMGR_VALID(mgr));
|
||||
|
||||
mgr->generation++; /* Increment the generation count. */
|
||||
|
||||
if (isc_net_probeipv6() == ISC_R_SUCCESS)
|
||||
do_ipv6(mgr);
|
||||
if (isc_net_probeipv6() == ISC_R_SUCCESS) {
|
||||
if (do_ipv6(mgr) != ISC_R_SUCCESS)
|
||||
purge = ISC_FALSE;
|
||||
}
|
||||
#ifdef WANT_IPV6
|
||||
else
|
||||
isc_log_write(IFMGR_COMMON_LOGARGS,
|
||||
@@ -683,9 +693,10 @@ ns_interfacemgr_scan(ns_interfacemgr_t *mgr, isc_boolean_t verbose) {
|
||||
"no IPv6 interfaces found");
|
||||
#endif
|
||||
|
||||
if (isc_net_probeipv4() == ISC_R_SUCCESS)
|
||||
do_ipv4(mgr);
|
||||
else
|
||||
if (isc_net_probeipv4() == ISC_R_SUCCESS) {
|
||||
if (do_ipv4(mgr) != ISC_R_SUCCESS)
|
||||
purge = ISC_FALSE;
|
||||
} else
|
||||
isc_log_write(IFMGR_COMMON_LOGARGS,
|
||||
verbose ? ISC_LOG_INFO : ISC_LOG_DEBUG(1),
|
||||
"no IPv4 interfaces found");
|
||||
@@ -696,15 +707,17 @@ ns_interfacemgr_scan(ns_interfacemgr_t *mgr, isc_boolean_t verbose) {
|
||||
* how we catch interfaces that go away or change their
|
||||
* addresses.
|
||||
*/
|
||||
purge_old_interfaces(mgr);
|
||||
if (purge)
|
||||
purge_old_interfaces(mgr);
|
||||
|
||||
if (ISC_LIST_EMPTY(mgr->interfaces)) {
|
||||
/*
|
||||
* Warn if we are not listening on any interface, unless
|
||||
* we're in lwresd-only mode, in which case that is to
|
||||
* be expected.
|
||||
*/
|
||||
if (ISC_LIST_EMPTY(mgr->interfaces) && ! ns_g_lwresdonly)
|
||||
isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_WARNING,
|
||||
"not listening on any interfaces");
|
||||
/*
|
||||
* Continue anyway.
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
+15
-11
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: log.c,v 1.32 2001/05/28 05:16:55 marka Exp $ */
|
||||
/* $Id: log.c,v 1.33.2.1 2001/10/31 22:44:15 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -148,13 +148,15 @@ ns_log_setsafechannels(isc_logconfig_t *lcfg) {
|
||||
NULL, 0);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/*
|
||||
* Setting the debug level to zero should get the output
|
||||
* discarded a bit faster.
|
||||
*/
|
||||
isc_log_setdebuglevel(ns_g_lctx, 0);
|
||||
/*
|
||||
* Setting the debug level to zero should get the output
|
||||
* discarded a bit faster.
|
||||
*/
|
||||
isc_log_setdebuglevel(ns_g_lctx, 0);
|
||||
} else {
|
||||
isc_log_setdebuglevel(ns_g_lctx, ns_g_debuglevel);
|
||||
}
|
||||
|
||||
result = ISC_R_SUCCESS;
|
||||
|
||||
@@ -166,10 +168,12 @@ isc_result_t
|
||||
ns_log_setdefaultcategory(isc_logconfig_t *lcfg) {
|
||||
isc_result_t result;
|
||||
|
||||
result = isc_log_usechannel(lcfg, "default_syslog",
|
||||
ISC_LOGCATEGORY_DEFAULT, NULL);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup;
|
||||
if (! ns_g_logstderr) {
|
||||
result = isc_log_usechannel(lcfg, "default_syslog",
|
||||
ISC_LOGCATEGORY_DEFAULT, NULL);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
result = isc_log_usechannel(lcfg, "default_debug",
|
||||
ISC_LOGCATEGORY_DEFAULT, NULL);
|
||||
|
||||
+6
-6
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: logconf.c,v 1.30 2001/05/28 05:16:57 marka Exp $ */
|
||||
/* $Id: logconf.c,v 1.30.2.3 2001/10/11 02:03:20 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -74,7 +74,7 @@ category_fromconf(cfg_obj_t *ccat, isc_logconfig_t *lctx) {
|
||||
result = isc_log_usechannel(lctx, channelname, category,
|
||||
module);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
isc_log_write(ns_g_lctx, DNS_LOGCATEGORY_CONFIG,
|
||||
isc_log_write(ns_g_lctx, CFG_LOGCATEGORY_CONFIG,
|
||||
NS_LOGMODULE_SERVER, ISC_LOG_ERROR,
|
||||
"logging channel '%s': %s", channelname,
|
||||
isc_result_totext(result));
|
||||
@@ -134,7 +134,7 @@ channel_fromconf(cfg_obj_t *channel, isc_logconfig_t *lctx) {
|
||||
cfg_obj_t *sizeobj = cfg_tuple_get(fileobj, "size");
|
||||
cfg_obj_t *versionsobj = cfg_tuple_get(fileobj, "versions");
|
||||
isc_int32_t versions = ISC_LOG_ROLLNEVER;
|
||||
isc_offset_t size = ISC_OFFSET_MAXIMUM;
|
||||
isc_offset_t size = 0;
|
||||
|
||||
type = ISC_LOG_TOFILE;
|
||||
|
||||
@@ -221,7 +221,7 @@ channel_fromconf(cfg_obj_t *channel, isc_logconfig_t *lctx) {
|
||||
*/
|
||||
result = isc_stdio_open(dest.file.name, "a", &fp);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
isc_log_write(ns_g_lctx, DNS_LOGCATEGORY_CONFIG,
|
||||
isc_log_write(ns_g_lctx, CFG_LOGCATEGORY_CONFIG,
|
||||
NS_LOGMODULE_SERVER, ISC_LOG_ERROR,
|
||||
"logging channel '%s' file '%s': %s",
|
||||
channelname, dest.file.name,
|
||||
@@ -267,12 +267,12 @@ ns_log_configure(isc_logconfig_t *logconf, cfg_obj_t *logstmt) {
|
||||
CHECK(category_fromconf(category, logconf));
|
||||
if (!default_set) {
|
||||
cfg_obj_t *catname = cfg_tuple_get(category, "name");
|
||||
if (strcmp(cfg_obj_asstring(catname), "default"))
|
||||
if (strcmp(cfg_obj_asstring(catname), "default") == 0)
|
||||
default_set = ISC_TRUE;
|
||||
}
|
||||
if (!unmatched_set) {
|
||||
cfg_obj_t *catname = cfg_tuple_get(category, "name");
|
||||
if (strcmp(cfg_obj_asstring(catname), "unmatched"))
|
||||
if (strcmp(cfg_obj_asstring(catname), "unmatched") == 0)
|
||||
unmatched_set = ISC_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwdgnba.c,v 1.12 2001/01/22 22:29:01 gson Exp $ */
|
||||
/* $Id: lwdgnba.c,v 1.13 2001/08/08 22:54:19 gson Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -98,7 +98,7 @@ byaddr_done(isc_task_t *task, isc_event_t *event) {
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto out;
|
||||
ns_lwdclient_log(50, "found name '%.*s'",
|
||||
client->recv_buffer.used - b.used,
|
||||
(int)(client->recv_buffer.used - b.used),
|
||||
(char *)(b.base) + b.used);
|
||||
if (gnba->realname == NULL) {
|
||||
gnba->realname = (char *)(b.base) + b.used;
|
||||
|
||||
+4
-1
@@ -1,3 +1,4 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -12,6 +13,7 @@
|
||||
.\" 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.
|
||||
.\"
|
||||
.TH "LWRESD" "8" "June 30, 2000" "BIND9" ""
|
||||
.SH NAME
|
||||
lwresd \- lightweight resolver daemon
|
||||
@@ -87,7 +89,8 @@ name server that listens for queries on a non-standard
|
||||
port number.
|
||||
.TP
|
||||
\fB-s\fR
|
||||
Write memory usage statistics to \fIstdout\fR on exit.
|
||||
Write memory usage statistics to \fIstdout\fR
|
||||
on exit.
|
||||
.sp
|
||||
.RS
|
||||
.B "Note:"
|
||||
|
||||
+2
-2
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwresd.c,v 1.36 2001/04/02 22:52:07 bwelling Exp $ */
|
||||
/* $Id: lwresd.c,v 1.37 2001/08/07 01:58:55 marka Exp $ */
|
||||
|
||||
/*
|
||||
* Main program for the Lightweight Resolver Daemon.
|
||||
@@ -323,7 +323,7 @@ ns_lwdmanager_create(isc_mem_t *mctx, cfg_obj_t *lwres,
|
||||
if (viewobj != NULL) {
|
||||
vname = cfg_obj_asstring(cfg_tuple_get(viewobj, "name"));
|
||||
obj = cfg_tuple_get(viewobj, "class");
|
||||
result = ns_config_getclass(obj, &vclass);
|
||||
result = ns_config_getclass(obj, dns_rdataclass_in, &vclass);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto fail;
|
||||
} else {
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
- WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: lwresd.docbook,v 1.4 2001/04/11 19:11:06 bwelling Exp $ -->
|
||||
<!-- $Id: lwresd.docbook,v 1.6 2001/06/10 19:54:07 tale Exp $ -->
|
||||
|
||||
<refentry>
|
||||
<refentryinfo>
|
||||
@@ -179,7 +179,8 @@
|
||||
<term>-s</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Write memory usage statistics to <filename>stdout</filename> on exit.
|
||||
Write memory usage statistics to <filename>stdout</filename>
|
||||
on exit.
|
||||
</para>
|
||||
<note>
|
||||
<para>
|
||||
|
||||
@@ -350,7 +350,8 @@ CLASS="REPLACEABLE"
|
||||
> Write memory usage statistics to <TT
|
||||
CLASS="FILENAME"
|
||||
>stdout</TT
|
||||
> on exit.
|
||||
>
|
||||
on exit.
|
||||
</P
|
||||
><DIV
|
||||
CLASS="NOTE"
|
||||
|
||||
+29
-4
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: main.c,v 1.112 2001/05/31 10:37:08 tale Exp $ */
|
||||
/* $Id: main.c,v 1.119 2001/08/08 22:54:20 gson Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
|
||||
#include <isc/app.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/dir.h>
|
||||
#include <isc/entropy.h>
|
||||
#include <isc/file.h>
|
||||
#include <isc/os.h>
|
||||
@@ -63,7 +64,8 @@
|
||||
/* #include "xxdb.h" */
|
||||
|
||||
static isc_boolean_t want_stats = ISC_FALSE;
|
||||
static char program_name[256] = "named";
|
||||
static char program_name[ISC_DIR_NAMEMAX] = "named";
|
||||
static char absolute_conffile[ISC_DIR_PATHMAX];
|
||||
static char saved_command_line[512];
|
||||
|
||||
void
|
||||
@@ -122,6 +124,10 @@ assertion_failed(const char *file, int line, isc_assertiontype_t type,
|
||||
exit(1);
|
||||
}
|
||||
|
||||
static void
|
||||
library_fatal_error(const char *file, int line, const char *format,
|
||||
va_list args) ISC_FORMAT_PRINTF(3, 0);
|
||||
|
||||
static void
|
||||
library_fatal_error(const char *file, int line, const char *format,
|
||||
va_list args)
|
||||
@@ -158,6 +164,10 @@ library_fatal_error(const char *file, int line, const char *format,
|
||||
exit(1);
|
||||
}
|
||||
|
||||
static void
|
||||
library_unexpected_error(const char *file, int line, const char *format,
|
||||
va_list args) ISC_FORMAT_PRINTF(3, 0);
|
||||
|
||||
static void
|
||||
library_unexpected_error(const char *file, int line, const char *format,
|
||||
va_list args)
|
||||
@@ -356,6 +366,8 @@ parse_command_line(int argc, char *argv[]) {
|
||||
usage();
|
||||
ns_main_earlyfatal("extra command line arguments");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
@@ -473,6 +485,21 @@ setup(void) {
|
||||
(void)isc_resource_getlimit(isc_resource_openfiles,
|
||||
&ns_g_initopenfiles);
|
||||
|
||||
/*
|
||||
* If the named configuration filename is relative, prepend the current
|
||||
* directory's name before possibly changing to another directory.
|
||||
*/
|
||||
if (! isc_file_isabsolute(ns_g_conffile)) {
|
||||
result = isc_file_absolutepath(ns_g_conffile,
|
||||
absolute_conffile,
|
||||
sizeof(absolute_conffile));
|
||||
if (result != ISC_R_SUCCESS)
|
||||
ns_main_earlyfatal("could not construct absolute path of "
|
||||
"configuration file: %s",
|
||||
isc_result_totext(result));
|
||||
ns_g_conffile = absolute_conffile;
|
||||
}
|
||||
|
||||
result = create_managers();
|
||||
if (result != ISC_R_SUCCESS)
|
||||
ns_main_earlyfatal("create_managers() failed: %s",
|
||||
@@ -497,8 +524,6 @@ cleanup(void) {
|
||||
*/
|
||||
/* xxdb_clear(); */
|
||||
|
||||
(void)isc_file_remove(ns_g_autorndckeyfile);
|
||||
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN,
|
||||
ISC_LOG_NOTICE, "exiting");
|
||||
ns_log_shutdown();
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
.\"
|
||||
.\" Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -12,6 +13,7 @@
|
||||
.\" 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.
|
||||
.\"
|
||||
.TH "NAMED" "8" "June 30, 2000" "BIND9" ""
|
||||
.SH NAME
|
||||
named \- Internet domain name server
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
- WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: named.docbook,v 1.4 2001/04/11 19:11:07 bwelling Exp $ -->
|
||||
<!-- $Id: named.docbook,v 1.5 2001/06/10 13:57:51 tale Exp $ -->
|
||||
|
||||
<refentry>
|
||||
<refentryinfo>
|
||||
|
||||
+39
-52
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: query.c,v 1.195 2001/05/19 00:08:21 gson Exp $ */
|
||||
/* $Id: query.c,v 1.198.2.1 2001/11/15 01:24:17 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -29,9 +29,6 @@
|
||||
#include <dns/db.h>
|
||||
#include <dns/events.h>
|
||||
#include <dns/message.h>
|
||||
#ifdef DNS_OPT_NEWCODES
|
||||
#include <dns/opt.h>
|
||||
#endif /* DNS_OPT_NEWCODES */
|
||||
#include <dns/rdata.h>
|
||||
#include <dns/rdataclass.h>
|
||||
#include <dns/rdatalist.h>
|
||||
@@ -625,14 +622,33 @@ query_getzonedb(ns_client_t *client, dns_name_t *name, unsigned int options,
|
||||
|
||||
if (check_acl) {
|
||||
isc_boolean_t log = ISC_TF((options & DNS_GETDB_NOLOG) == 0);
|
||||
char msg[DNS_NAME_FORMATSIZE + DNS_RDATACLASS_FORMATSIZE
|
||||
+ sizeof "query '/'"];
|
||||
|
||||
ns_client_aclmsg("query", name, client->view->rdclass,
|
||||
msg, sizeof(msg));
|
||||
result = ns_client_checkacl(client, msg, queryacl,
|
||||
ISC_TRUE,
|
||||
log ? ISC_LOG_INFO : ISC_LOG_DEBUG(3));
|
||||
|
||||
result = ns_client_checkaclsilent(client, queryacl, ISC_TRUE);
|
||||
if (log) {
|
||||
char msg[DNS_NAME_FORMATSIZE + DNS_RDATACLASS_FORMATSIZE
|
||||
+ sizeof "query '/'"];
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
if (isc_log_wouldlog(ns_g_lctx,
|
||||
ISC_LOG_DEBUG(3)))
|
||||
{
|
||||
ns_client_aclmsg("query", name,
|
||||
client->view->rdclass,
|
||||
msg, sizeof(msg));
|
||||
ns_client_log(client,
|
||||
DNS_LOGCATEGORY_SECURITY,
|
||||
NS_LOGMODULE_QUERY,
|
||||
ISC_LOG_DEBUG(3),
|
||||
"%s approved", msg);
|
||||
}
|
||||
} else {
|
||||
ns_client_aclmsg("query", name,
|
||||
client->view->rdclass,
|
||||
msg, sizeof(msg));
|
||||
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
|
||||
NS_LOGMODULE_QUERY, ISC_LOG_INFO,
|
||||
"%s denied", msg);
|
||||
}
|
||||
}
|
||||
|
||||
if (queryacl == client->view->queryacl) {
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
@@ -770,25 +786,6 @@ query_getdb(ns_client_t *client, dns_name_t *name, unsigned int options,
|
||||
{
|
||||
isc_result_t result;
|
||||
|
||||
#ifdef DNS_OPT_NEWCODES_LIVE
|
||||
if (client->opt_zone != NULL) {
|
||||
result = query_getzonedb(client, &(client->opt_zone->name),
|
||||
options, zonep, dbp, versionp);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
*is_zonep = ISC_TRUE;
|
||||
else
|
||||
result = DNS_R_REFUSED;
|
||||
} else {
|
||||
result = query_getzonedb(client, name, options, zonep, dbp,
|
||||
versionp);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
*is_zonep = ISC_TRUE;
|
||||
} else if (result == ISC_R_NOTFOUND) {
|
||||
result = query_getcachedb(client, dbp, options);
|
||||
*is_zonep = ISC_FALSE;
|
||||
}
|
||||
}
|
||||
#else /* DNS_OPT_NEWCODES_LIVE */
|
||||
result = query_getzonedb(client, name, options, zonep, dbp, versionp);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
*is_zonep = ISC_TRUE;
|
||||
@@ -796,7 +793,6 @@ query_getdb(ns_client_t *client, dns_name_t *name, unsigned int options,
|
||||
result = query_getcachedb(client, dbp, options);
|
||||
*is_zonep = ISC_FALSE;
|
||||
}
|
||||
#endif /* DNS_OPT_NEWCODES_LIVE */
|
||||
return (result);
|
||||
}
|
||||
|
||||
@@ -2550,11 +2546,6 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
*/
|
||||
break;
|
||||
case DNS_R_GLUE:
|
||||
#ifdef DNS_OPT_NEWCODES_LIVE
|
||||
if (client->opt_zone != NULL)
|
||||
break;
|
||||
/* Fallthrough if we don't have opt_zone */
|
||||
#endif /* DNS_OPT_NEWCODES_LIVE */
|
||||
case DNS_R_ZONECUT:
|
||||
/*
|
||||
* These cases are handled in the main line below.
|
||||
@@ -2563,13 +2554,6 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
authoritative = ISC_FALSE;
|
||||
break;
|
||||
case ISC_R_NOTFOUND:
|
||||
#ifdef DNS_OPT_NEWCODES_LIVE
|
||||
/*
|
||||
* If we've passed in opt_zone, don't try anything more.
|
||||
*/
|
||||
if (client->opt_zone != NULL)
|
||||
break;
|
||||
#endif /* DNS_OPT_NEWCODES_LIVE */
|
||||
/*
|
||||
* The cache doesn't even have the root NS. Get them from
|
||||
* the hints DB.
|
||||
@@ -2589,6 +2573,17 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
rdataset, sigrdataset);
|
||||
}
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
/*
|
||||
* Nonsensical root hints may require cleanup.
|
||||
*/
|
||||
if (dns_rdataset_isassociated(rdataset))
|
||||
dns_rdataset_disassociate(rdataset);
|
||||
if (sigrdataset != NULL &&
|
||||
dns_rdataset_isassociated(sigrdataset))
|
||||
dns_rdataset_disassociate(sigrdataset);
|
||||
if (node != NULL)
|
||||
dns_db_detachnode(db, &node);
|
||||
|
||||
/*
|
||||
* We don't have any root server hints, but
|
||||
* we may have working forwarders, so try to
|
||||
@@ -2622,14 +2617,6 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
*/
|
||||
/* FALLTHROUGH */
|
||||
case DNS_R_DELEGATION:
|
||||
#ifdef DNS_OPT_NEWCODES_LIVE
|
||||
/*
|
||||
* If we've passed in opt_zone, don't try anything more.
|
||||
*/
|
||||
if (client->opt_zone != NULL) {
|
||||
break;
|
||||
}
|
||||
#endif /* DNS_OPT_NEWCODES_LIVE */
|
||||
authoritative = ISC_FALSE;
|
||||
if (is_zone) {
|
||||
/*
|
||||
|
||||
+77
-23
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: server.c,v 1.328 2001/05/31 01:21:07 bwelling Exp $ */
|
||||
/* $Id: server.c,v 1.339.2.1 2001/09/28 05:35:47 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
#include <dns/zt.h>
|
||||
|
||||
#include <dst/dst.h>
|
||||
#include <dst/result.h>
|
||||
|
||||
#include <named/client.h>
|
||||
#include <named/config.h>
|
||||
@@ -138,6 +139,8 @@ configure_view_acl(cfg_obj_t *vconfig, cfg_obj_t *config,
|
||||
cfg_obj_t *aclobj = NULL;
|
||||
int i = 0;
|
||||
|
||||
if (*aclp != NULL)
|
||||
dns_acl_detach(aclp);
|
||||
if (vconfig != NULL)
|
||||
maps[i++] = cfg_tuple_get(vconfig, "options");
|
||||
if (config != NULL) {
|
||||
@@ -189,7 +192,8 @@ configure_view_dnsseckey(cfg_obj_t *vconfig, cfg_obj_t *key,
|
||||
viewclass = dns_rdataclass_in;
|
||||
else {
|
||||
cfg_obj_t *classobj = cfg_tuple_get(vconfig, "class");
|
||||
CHECK(ns_config_getclass(classobj, &viewclass));
|
||||
CHECK(ns_config_getclass(classobj, dns_rdataclass_in,
|
||||
&viewclass));
|
||||
}
|
||||
keystruct.common.rdclass = viewclass;
|
||||
keystruct.common.rdtype = dns_rdatatype_key;
|
||||
@@ -237,10 +241,17 @@ configure_view_dnsseckey(cfg_obj_t *vconfig, cfg_obj_t *key,
|
||||
return (ISC_R_SUCCESS);
|
||||
|
||||
cleanup:
|
||||
cfg_obj_log(key, ns_g_lctx, ISC_LOG_ERROR,
|
||||
"configuring trusted key for '%s': %s",
|
||||
keynamestr, isc_result_totext(result));
|
||||
result = ISC_R_FAILURE;
|
||||
if (result == DST_R_NOCRYPTO) {
|
||||
cfg_obj_log(key, ns_g_lctx, ISC_LOG_ERROR,
|
||||
"ignoring trusted key for '%s': no crypto support",
|
||||
keynamestr);
|
||||
result = ISC_R_SUCCESS;
|
||||
} else {
|
||||
cfg_obj_log(key, ns_g_lctx, ISC_LOG_ERROR,
|
||||
"configuring trusted key for '%s': %s",
|
||||
keynamestr, isc_result_totext(result));
|
||||
result = ISC_R_FAILURE;
|
||||
}
|
||||
|
||||
if (dstkey != NULL)
|
||||
dst_key_free(&dstkey);
|
||||
@@ -589,7 +600,7 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
|
||||
obj = NULL;
|
||||
result = ns_config_get(maps, "cleaning-interval", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
dns_cache_setcleaninginterval(cache, cfg_obj_asuint32(obj));
|
||||
dns_cache_setcleaninginterval(cache, cfg_obj_asuint32(obj) * 60);
|
||||
|
||||
obj = NULL;
|
||||
result = ns_config_get(maps, "max-cache-size", &obj);
|
||||
@@ -638,19 +649,21 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
|
||||
result = ns_config_get(maps, "lame-ttl", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
lame_ttl = cfg_obj_asuint32(obj);
|
||||
if (lame_ttl > 18000)
|
||||
lame_ttl = 18000;
|
||||
if (lame_ttl > 1800)
|
||||
lame_ttl = 1800;
|
||||
dns_resolver_setlamettl(view->resolver, lame_ttl);
|
||||
|
||||
/*
|
||||
* Set resolver forwarding policy.
|
||||
* A global or view "forwarders" option, if present,
|
||||
* creates an entry for "." in the forwarding table.
|
||||
*/
|
||||
forwardtype = NULL;
|
||||
forwarders = NULL;
|
||||
(void)ns_config_get(maps, "forward", &forwardtype);
|
||||
(void)ns_config_get(maps, "forwarders", &forwarders);
|
||||
CHECK(configure_forward(config, view, dns_rootname, forwarders,
|
||||
forwardtype));
|
||||
if (forwarders != NULL)
|
||||
CHECK(configure_forward(config, view, dns_rootname,
|
||||
forwarders, forwardtype));
|
||||
|
||||
/*
|
||||
* We have default hints for class IN if we need them.
|
||||
@@ -716,10 +729,22 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
|
||||
dns_aclenv_copy(&view->aclenv, &ns_g_server->aclenv);
|
||||
|
||||
/*
|
||||
* Configure the "match-clients" ACL.
|
||||
* Configure the "match-clients" and "match-destinations" ACL.
|
||||
*/
|
||||
CHECK(configure_view_acl(vconfig, config, "match-clients", actx,
|
||||
ns_g_mctx, &view->matchclients));
|
||||
CHECK(configure_view_acl(vconfig, config, "match-destinations", actx,
|
||||
ns_g_mctx, &view->matchdestinations));
|
||||
|
||||
/*
|
||||
* Configure the "match-recursive-only" option.
|
||||
*/
|
||||
obj = NULL;
|
||||
(void) ns_config_get(maps, "match-recursive-only", &obj);
|
||||
if (obj != NULL && cfg_obj_asboolean(obj))
|
||||
view->matchrecursiveonly = ISC_TRUE;
|
||||
else
|
||||
view->matchrecursiveonly = ISC_FALSE;
|
||||
|
||||
/*
|
||||
* Configure other configurable data.
|
||||
@@ -751,17 +776,30 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
|
||||
INSIST(0);
|
||||
|
||||
/*
|
||||
* Set sources where additional data, CNAMEs, and DNAMEs may be found.
|
||||
* Set sources where additional data and CNAME/DNAME
|
||||
* targets for authoritative answers may be found.
|
||||
*/
|
||||
obj = NULL;
|
||||
result = ns_config_get(maps, "additional-from-auth", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
view->additionalfromauth = cfg_obj_asboolean(obj);
|
||||
if (view->recursion && ! view->additionalfromauth) {
|
||||
cfg_obj_log(obj, ns_g_lctx, ISC_LOG_WARNING,
|
||||
"'additional-from-auth no' is only supported "
|
||||
"with 'recursion no'");
|
||||
view->additionalfromauth = ISC_TRUE;
|
||||
}
|
||||
|
||||
obj = NULL;
|
||||
result = ns_config_get(maps, "additional-from-cache", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
view->additionalfromcache = cfg_obj_asboolean(obj);
|
||||
if (view->recursion && ! view->additionalfromcache) {
|
||||
cfg_obj_log(obj, ns_g_lctx, ISC_LOG_WARNING,
|
||||
"'additional-from-cache no' is only supported "
|
||||
"with 'recursion no'");
|
||||
view->additionalfromcache = ISC_TRUE;
|
||||
}
|
||||
|
||||
CHECK(configure_view_acl(vconfig, config, "allow-query",
|
||||
actx, ns_g_mctx, &view->queryacl));
|
||||
@@ -948,6 +986,7 @@ create_authors_zone(cfg_obj_t *options, dns_zonemgr_t *zmgr, dns_view_t *view)
|
||||
"\022Andreas Gustafsson",
|
||||
"\012Bob Halley",
|
||||
"\016David Lawrence",
|
||||
"\013Danny Mayer",
|
||||
"\013Damien Neil",
|
||||
"\013Matt Nelson",
|
||||
"\016Michael Sawyer",
|
||||
@@ -1109,8 +1148,14 @@ configure_forward(cfg_obj_t *config, dns_view_t *view, dns_name_t *origin,
|
||||
|
||||
result = dns_fwdtable_add(view->fwdtable, origin, &addresses,
|
||||
fwdpolicy);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
char namebuf[DNS_NAME_FORMATSIZE];
|
||||
dns_name_format(origin, namebuf, sizeof(namebuf));
|
||||
cfg_obj_log(forwarders, ns_g_lctx, ISC_LOG_WARNING,
|
||||
"could not set up forwarding for domain '%s': %s",
|
||||
namebuf, isc_result_totext(result));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
result = ISC_R_SUCCESS;
|
||||
|
||||
@@ -1144,7 +1189,8 @@ create_view(cfg_obj_t *vconfig, dns_viewlist_t *viewlist, dns_view_t **viewp) {
|
||||
|
||||
viewname = cfg_obj_asstring(cfg_tuple_get(vconfig, "name"));
|
||||
classobj = cfg_tuple_get(vconfig, "class");
|
||||
result = ns_config_getclass(classobj, &viewclass);
|
||||
result = ns_config_getclass(classobj, dns_rdataclass_in,
|
||||
&viewclass);
|
||||
} else {
|
||||
viewname = "_default";
|
||||
viewclass = dns_rdataclass_in;
|
||||
@@ -1205,7 +1251,8 @@ configure_zone(cfg_obj_t *config, cfg_obj_t *zconfig, cfg_obj_t *vconfig,
|
||||
&buffer, dns_rootname, ISC_FALSE, NULL));
|
||||
origin = dns_fixedname_name(&fixorigin);
|
||||
|
||||
CHECK(ns_config_getclass(cfg_tuple_get(zconfig, "class"), &zclass));
|
||||
CHECK(ns_config_getclass(cfg_tuple_get(zconfig, "class"),
|
||||
view->rdclass, &zclass));
|
||||
if (zclass != view->rdclass) {
|
||||
const char *vname = NULL;
|
||||
if (vconfig != NULL)
|
||||
@@ -1245,8 +1292,15 @@ configure_zone(cfg_obj_t *config, cfg_obj_t *zconfig, cfg_obj_t *vconfig,
|
||||
goto cleanup;
|
||||
}
|
||||
if (dns_name_equal(origin, dns_rootname)) {
|
||||
result = configure_hints(view,
|
||||
cfg_obj_asstring(fileobj));
|
||||
char *hintsfile = cfg_obj_asstring(fileobj);
|
||||
result = configure_hints(view, hintsfile);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_SERVER,
|
||||
ISC_LOG_ERROR,
|
||||
"could not configure root hints "
|
||||
"from '%s': %s", hintsfile,
|
||||
isc_result_totext(result));
|
||||
} else {
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_SERVER, ISC_LOG_WARNING,
|
||||
@@ -1254,6 +1308,7 @@ configure_zone(cfg_obj_t *config, cfg_obj_t *zconfig, cfg_obj_t *vconfig,
|
||||
zname);
|
||||
result = ISC_R_SUCCESS;
|
||||
}
|
||||
/* Skip ordinary zone processing. */
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
@@ -1391,8 +1446,7 @@ directory_callback(const char *clausename, cfg_obj_t *obj, void *arg) {
|
||||
*/
|
||||
directory = cfg_obj_asstring(obj);
|
||||
|
||||
if (!isc_file_isabsolute(directory) &&
|
||||
!isc_file_iscurrentdir(directory))
|
||||
if (! isc_file_ischdiridempotent(directory))
|
||||
cfg_obj_log(obj, ns_g_lctx, ISC_LOG_WARNING,
|
||||
"option 'directory' contains relative path '%s'",
|
||||
directory);
|
||||
@@ -1754,7 +1808,7 @@ load_configuration(const char *filename, ns_server_t *server,
|
||||
obj = NULL;
|
||||
result = ns_config_get(maps, "interface-interval", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
interface_interval = cfg_obj_asuint32(obj);
|
||||
interface_interval = cfg_obj_asuint32(obj) * 60;
|
||||
if (interface_interval == 0) {
|
||||
isc_timer_reset(server->interface_timer,
|
||||
isc_timertype_inactive,
|
||||
@@ -1773,7 +1827,7 @@ load_configuration(const char *filename, ns_server_t *server,
|
||||
obj = NULL;
|
||||
result = ns_config_get(maps, "heartbeat-interval", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
heartbeat_interval = cfg_obj_asuint32(obj);
|
||||
heartbeat_interval = cfg_obj_asuint32(obj) * 60;
|
||||
if (heartbeat_interval == 0) {
|
||||
isc_timer_reset(server->heartbeat_timer,
|
||||
isc_timertype_inactive,
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: tsigconf.c,v 1.17 2001/03/22 00:06:57 bwelling Exp $ */
|
||||
/* $Id: tsigconf.c,v 1.21 2001/08/03 18:39:50 bwelling Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
|
||||
#include <named/log.h>
|
||||
|
||||
#include <named/config.h>
|
||||
#include <named/tsigconf.h>
|
||||
|
||||
static isc_result_t
|
||||
@@ -52,6 +53,7 @@ add_initial_keys(cfg_obj_t *list, dns_tsig_keyring_t *ring, isc_mem_t *mctx) {
|
||||
cfg_obj_t *secretobj = NULL;
|
||||
dns_name_t keyname;
|
||||
dns_name_t *alg;
|
||||
char *algstr;
|
||||
char keynamedata[1024];
|
||||
isc_buffer_t keynamesrc, keynamebuf;
|
||||
char *secretstr;
|
||||
@@ -81,9 +83,8 @@ add_initial_keys(cfg_obj_t *list, dns_tsig_keyring_t *ring, isc_mem_t *mctx) {
|
||||
/*
|
||||
* Create the algorithm.
|
||||
*/
|
||||
if (strcasecmp(cfg_obj_asstring(algobj), "hmac-md5") == 0)
|
||||
alg = dns_tsig_hmacmd5_name;
|
||||
else {
|
||||
algstr = cfg_obj_asstring(algobj);
|
||||
if (ns_config_getkeyalgorithm(algstr, &alg) != ISC_R_SUCCESS) {
|
||||
cfg_obj_log(algobj, ns_g_lctx, ISC_LOG_ERROR,
|
||||
"key '%s': the only supported algorithm "
|
||||
"is hmac-md5", keyid);
|
||||
@@ -118,7 +119,7 @@ add_initial_keys(cfg_obj_t *list, dns_tsig_keyring_t *ring, isc_mem_t *mctx) {
|
||||
|
||||
failure:
|
||||
cfg_obj_log(key, ns_g_lctx, ISC_LOG_ERROR,
|
||||
"configuring TSIG key '%s': %s", keyid,
|
||||
"configuring key '%s': %s", keyid,
|
||||
isc_result_totext(ret));
|
||||
|
||||
if (secret != NULL)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user