mirror of
https://github.com/webmin/webmin.git
synced 2026-02-05 23:22:15 +00:00
Compare commits
1349 Commits
2.021
...
dev/patch-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7507433bf1 | ||
|
|
248cb719c0 | ||
|
|
94b7fdf0ec | ||
|
|
d89f6411b6 | ||
|
|
01d08a3605 | ||
|
|
3d9497ff45 | ||
|
|
a6832450d1 | ||
|
|
e41037388c | ||
|
|
a7b3af534b | ||
|
|
87e006ceeb | ||
|
|
fbee8f0588 | ||
|
|
e077b4da94 | ||
|
|
38efad8265 | ||
|
|
4d2a1fa084 | ||
|
|
13b2eca3b1 | ||
|
|
aa4c3b1de6 | ||
|
|
edaab4fd6f | ||
|
|
6fded0862c | ||
|
|
4006b0454e | ||
|
|
5d4ab58baa | ||
|
|
e6c7a60fe6 | ||
|
|
a75781d61a | ||
|
|
45348f5b02 | ||
|
|
548c078813 | ||
|
|
76ccb2b7ed | ||
|
|
61d2081371 | ||
|
|
458916b4d8 | ||
|
|
37451ad905 | ||
|
|
9eec58a1f1 | ||
|
|
178f527afa | ||
|
|
cd1555b3e1 | ||
|
|
2d7cfca67f | ||
|
|
e92a35b3ed | ||
|
|
e35efd0f00 | ||
|
|
a12f385a5b | ||
|
|
5dc7cfafd7 | ||
|
|
35aee74311 | ||
|
|
d04dfdf157 | ||
|
|
41f1adf0df | ||
|
|
1ae01bed8d | ||
|
|
4a6f5d9a6a | ||
|
|
bb3a4bc1e8 | ||
|
|
084c117547 | ||
|
|
0221a092b9 | ||
|
|
535d4173b3 | ||
|
|
20d481e96b | ||
|
|
0256ee47f2 | ||
|
|
6af5ed6e2f | ||
|
|
abeff44b1a | ||
|
|
35298efd8a | ||
|
|
3fa687e716 | ||
|
|
43fc057484 | ||
|
|
70e9a1c00b | ||
|
|
d21188c2ad | ||
|
|
a780103e2f | ||
|
|
4014293760 | ||
|
|
ba3be31335 | ||
|
|
adb3d0bb67 | ||
|
|
cd9bc8b7c4 | ||
|
|
e1ebcf0506 | ||
|
|
17a27dbe00 | ||
|
|
e36e943251 | ||
|
|
95ee1e2f2d | ||
|
|
37cde80bbe | ||
|
|
45852664fe | ||
|
|
00885b1f76 | ||
|
|
cce8911f0f | ||
|
|
3a151469c7 | ||
|
|
e3b94dc458 | ||
|
|
cde548ada3 | ||
|
|
00d0a89630 | ||
|
|
9c971202b3 | ||
|
|
2aa3bce4da | ||
|
|
4103177d1e | ||
|
|
31b6cdc82b | ||
|
|
fd8c634277 | ||
|
|
596ba13b1e | ||
|
|
5e684bf41b | ||
|
|
356c8f7f53 | ||
|
|
185465351a | ||
|
|
8d84e7313a | ||
|
|
71e37adfed | ||
|
|
af912d9539 | ||
|
|
5b31c7df84 | ||
|
|
55b5939194 | ||
|
|
00ddfd4d05 | ||
|
|
2d23a3503e | ||
|
|
a838d11a26 | ||
|
|
5f28a28d8d | ||
|
|
e13df24539 | ||
|
|
4f7924338d | ||
|
|
3a1d609579 | ||
|
|
e441427031 | ||
|
|
469857a41e | ||
|
|
e47c82e7e8 | ||
|
|
a0f6dd935c | ||
|
|
e302b706ec | ||
|
|
8c7fc88d51 | ||
|
|
7b4d905eb6 | ||
|
|
a1a6f669b2 | ||
|
|
0298d884ef | ||
|
|
5a8b3467a1 | ||
|
|
17fb8304c3 | ||
|
|
5cd88dad43 | ||
|
|
c15e7a5e5e | ||
|
|
fad464be47 | ||
|
|
489db4c769 | ||
|
|
cc663af3df | ||
|
|
0b58cd5197 | ||
|
|
dbd16c21cc | ||
|
|
8ddabb35b6 | ||
|
|
8476206da8 | ||
|
|
e0085e82d4 | ||
|
|
b697c134f1 | ||
|
|
5d363d60fe | ||
|
|
f06bc871dc | ||
|
|
45e16aeeac | ||
|
|
9be50b5aef | ||
|
|
80c7c7794c | ||
|
|
decb55b8ff | ||
|
|
d061a190ac | ||
|
|
6d89004446 | ||
|
|
9817085c70 | ||
|
|
ca3362ee84 | ||
|
|
e88ba87eae | ||
|
|
a420c7142f | ||
|
|
6f37dc94bf | ||
|
|
c59a200725 | ||
|
|
e56aa7711c | ||
|
|
b480b4caa3 | ||
|
|
db456ad458 | ||
|
|
9513d85157 | ||
|
|
68b547d55a | ||
|
|
dccc3fb10e | ||
|
|
d6bed07aae | ||
|
|
bb7938a0f5 | ||
|
|
8164480b48 | ||
|
|
4155fdb4c5 | ||
|
|
19efd89c28 | ||
|
|
f911137624 | ||
|
|
d4ac34e4b5 | ||
|
|
5323bda372 | ||
|
|
1b1ac686e3 | ||
|
|
75e9323429 | ||
|
|
554b439bf8 | ||
|
|
2f9a0b3f21 | ||
|
|
f457b971a7 | ||
|
|
f5252d3f09 | ||
|
|
60a9419cc3 | ||
|
|
cc2502737f | ||
|
|
0cbd11335d | ||
|
|
f9198b0fbd | ||
|
|
bb24e2bbdd | ||
|
|
a86eb6ff46 | ||
|
|
d2420038f9 | ||
|
|
26625786cb | ||
|
|
3f2023d174 | ||
|
|
6b190a6cba | ||
|
|
5c465a587c | ||
|
|
61f631c1f7 | ||
|
|
40c1c30ae2 | ||
|
|
d805878186 | ||
|
|
84d46adcee | ||
|
|
b740f9850b | ||
|
|
2641985b98 | ||
|
|
736e514766 | ||
|
|
5ab6ce618d | ||
|
|
1c8257ecff | ||
|
|
ebfd1e9e51 | ||
|
|
70dede0e22 | ||
|
|
35e9f0a01d | ||
|
|
0c8777acef | ||
|
|
04523fdb86 | ||
|
|
b83bcc4723 | ||
|
|
b9bb060250 | ||
|
|
f49f8f2fb1 | ||
|
|
801f1f61d8 | ||
|
|
ede9921ea4 | ||
|
|
cbd7a91d5c | ||
|
|
36c8aa5e7d | ||
|
|
7881b1c6c2 | ||
|
|
4a918ee504 | ||
|
|
078d3acb98 | ||
|
|
6a521ea32c | ||
|
|
0c0639d2e9 | ||
|
|
1c8cee607e | ||
|
|
4ac3a675e8 | ||
|
|
35dfcbe456 | ||
|
|
1d5900eb70 | ||
|
|
e2d6caf359 | ||
|
|
1cc640a8e2 | ||
|
|
13442d4aa4 | ||
|
|
677b39bd61 | ||
|
|
0dc1af46f2 | ||
|
|
bff3e78630 | ||
|
|
d9d4522430 | ||
|
|
0bd657978f | ||
|
|
d59c49b6ce | ||
|
|
fae522a28e | ||
|
|
9dcb1da4f5 | ||
|
|
591161560a | ||
|
|
799ccb3683 | ||
|
|
4e5da791e2 | ||
|
|
4db36071b3 | ||
|
|
8de5c83ca8 | ||
|
|
9b496bf413 | ||
|
|
985129bb70 | ||
|
|
f1804201e6 | ||
|
|
0b1e5f87e1 | ||
|
|
1e94a328ba | ||
|
|
bac62e03c7 | ||
|
|
b1a6beda22 | ||
|
|
b57d57b729 | ||
|
|
cd46f97288 | ||
|
|
1f2a7902c6 | ||
|
|
975ae7b497 | ||
|
|
f252296471 | ||
|
|
f33b433b96 | ||
|
|
6eb674b451 | ||
|
|
690bae82fc | ||
|
|
575c1ca5a3 | ||
|
|
97e4545c58 | ||
|
|
73150b7818 | ||
|
|
c72a24369c | ||
|
|
ed7ac533d4 | ||
|
|
6df08bc645 | ||
|
|
54d2766960 | ||
|
|
c22f7fa8af | ||
|
|
da285e9804 | ||
|
|
db42daab77 | ||
|
|
e2cf926097 | ||
|
|
6f1b0db855 | ||
|
|
1f99616848 | ||
|
|
d10d98421e | ||
|
|
827e02d47d | ||
|
|
1bee7442a6 | ||
|
|
d165a4740a | ||
|
|
4126264a63 | ||
|
|
0d390df894 | ||
|
|
eda29478de | ||
|
|
ea98188a63 | ||
|
|
f6b3bb2ca5 | ||
|
|
f25c71f625 | ||
|
|
657113d0c8 | ||
|
|
470bed602b | ||
|
|
90d197701f | ||
|
|
8473d5e611 | ||
|
|
5f6a6c8425 | ||
|
|
ce5b85c5e2 | ||
|
|
1b7c9bea0d | ||
|
|
548b2ab08e | ||
|
|
d3b46a6675 | ||
|
|
5f28c37cab | ||
|
|
5046081a47 | ||
|
|
1a9a1dc1f5 | ||
|
|
031b84621a | ||
|
|
1d1d1d0c54 | ||
|
|
09167a34a6 | ||
|
|
225013da07 | ||
|
|
614aa056c0 | ||
|
|
6eb3b193b9 | ||
|
|
ba677eedc9 | ||
|
|
5c6c4b9da9 | ||
|
|
65ed7a082e | ||
|
|
5008271d11 | ||
|
|
18d405b91a | ||
|
|
d1f0e77d25 | ||
|
|
e8691fd541 | ||
|
|
c820eb21bd | ||
|
|
6850a50b0d | ||
|
|
27969bc0fb | ||
|
|
d92bdfff8a | ||
|
|
56a1382d4c | ||
|
|
ba9b178905 | ||
|
|
b2ef544331 | ||
|
|
fb2ceb9ae5 | ||
|
|
e1dafea664 | ||
|
|
8621cf8bd0 | ||
|
|
0b21cbdc7c | ||
|
|
d446c7d3d0 | ||
|
|
376eb2c04a | ||
|
|
db674f769e | ||
|
|
46358dc5d7 | ||
|
|
fae806f1a8 | ||
|
|
fdf1c40c28 | ||
|
|
5cb91ab3f9 | ||
|
|
7628a7329d | ||
|
|
613c568f4f | ||
|
|
b43e75e701 | ||
|
|
b53333e8bc | ||
|
|
ec34a26e1a | ||
|
|
4102b5ee1c | ||
|
|
c6cb6397f0 | ||
|
|
550a263ceb | ||
|
|
ff5937b79b | ||
|
|
2fce5e752e | ||
|
|
4202fa5063 | ||
|
|
f24a34f8c5 | ||
|
|
13e343e2d7 | ||
|
|
1648384ce8 | ||
|
|
a73eb0cd96 | ||
|
|
adcd7d8fd5 | ||
|
|
21845e9708 | ||
|
|
e4aee1c27e | ||
|
|
64211e46cb | ||
|
|
407ec904ca | ||
|
|
3001ec8aa4 | ||
|
|
abcdf51d10 | ||
|
|
b3350f5b37 | ||
|
|
56abe45e64 | ||
|
|
a260ad5acd | ||
|
|
31eead4a08 | ||
|
|
48023fe3eb | ||
|
|
ae6592602f | ||
|
|
6963ce9add | ||
|
|
28af4c4991 | ||
|
|
7f8ad9c148 | ||
|
|
83c93d8bdc | ||
|
|
3a275d1d5b | ||
|
|
8f6ce35db6 | ||
|
|
2f5ee346b2 | ||
|
|
44f6361c5c | ||
|
|
7fc71adecc | ||
|
|
1e0f6be4ab | ||
|
|
d54c6bf8e0 | ||
|
|
5c533916ff | ||
|
|
b02f0ef96b | ||
|
|
12c205f3ec | ||
|
|
ea00ff92a2 | ||
|
|
0c0b04ffe0 | ||
|
|
c762d41fa1 | ||
|
|
0704ac640e | ||
|
|
a9d0f8b704 | ||
|
|
203c75f79a | ||
|
|
7734ba1285 | ||
|
|
fb6f27aaaa | ||
|
|
dd9dac860c | ||
|
|
68e4f6c5aa | ||
|
|
527d238da2 | ||
|
|
b292c68123 | ||
|
|
3fc4f05f49 | ||
|
|
75836b1f25 | ||
|
|
e3c4711d77 | ||
|
|
5565113777 | ||
|
|
01a10d1f08 | ||
|
|
60793e9ac5 | ||
|
|
e50898dd05 | ||
|
|
bc27c75027 | ||
|
|
9c4f32246d | ||
|
|
37c91a6330 | ||
|
|
f9f19552dd | ||
|
|
60e424689d | ||
|
|
2c1388b0be | ||
|
|
910619c364 | ||
|
|
893e5ba06f | ||
|
|
5cd605dce5 | ||
|
|
6c3a7d1d5e | ||
|
|
882bf281b1 | ||
|
|
f0127ca722 | ||
|
|
cb7a7d6e22 | ||
|
|
a3f9d0a60f | ||
|
|
24bf147c9a | ||
|
|
f5bb99a431 | ||
|
|
3b38106363 | ||
|
|
e08a4bf078 | ||
|
|
cb95472a27 | ||
|
|
d8b02b5f42 | ||
|
|
2dad993bee | ||
|
|
f31c7a9668 | ||
|
|
cf396e6ec1 | ||
|
|
aae7aa527f | ||
|
|
196b7c72a3 | ||
|
|
3cb936d7c8 | ||
|
|
875e827954 | ||
|
|
06a6817f04 | ||
|
|
e62e0d032e | ||
|
|
919601d1c6 | ||
|
|
da142c95a7 | ||
|
|
78c64ea786 | ||
|
|
fd56523955 | ||
|
|
a6f5e593b0 | ||
|
|
70a15314c0 | ||
|
|
3a5dcc4723 | ||
|
|
e9f382272a | ||
|
|
5c8d5ee75e | ||
|
|
f244805c01 | ||
|
|
26cb81ad2b | ||
|
|
3cc8e71035 | ||
|
|
3a264330ed | ||
|
|
8edffc8f30 | ||
|
|
7fd3b9e725 | ||
|
|
1bd70e7669 | ||
|
|
975ed1c277 | ||
|
|
c1b3b6606e | ||
|
|
b6b8398eb2 | ||
|
|
66e2f1e1e3 | ||
|
|
f82def9a9b | ||
|
|
924a0da014 | ||
|
|
c4f39f56f8 | ||
|
|
6b2b72707e | ||
|
|
e327d0b81b | ||
|
|
e418b4c178 | ||
|
|
f89844171c | ||
|
|
2cbdf62b1b | ||
|
|
e89220e846 | ||
|
|
1df9920aa9 | ||
|
|
732d12a1f4 | ||
|
|
83de10b7c2 | ||
|
|
d00945bdfc | ||
|
|
c136c380be | ||
|
|
807f9cfe34 | ||
|
|
93157a428d | ||
|
|
e3866f6607 | ||
|
|
86bab830b3 | ||
|
|
3c67453d16 | ||
|
|
0df0bb4837 | ||
|
|
a2bb0173b6 | ||
|
|
bed55e7e08 | ||
|
|
3ac0a468b1 | ||
|
|
8da45b832a | ||
|
|
d275ee095b | ||
|
|
bf97df4522 | ||
|
|
fa54da125f | ||
|
|
522051a854 | ||
|
|
c87fc1a15c | ||
|
|
80cc0cb9d2 | ||
|
|
a88ae240f5 | ||
|
|
2b38b7bfb7 | ||
|
|
5a791299e6 | ||
|
|
97203f1245 | ||
|
|
a4a8d970e1 | ||
|
|
8665c5a725 | ||
|
|
28e55d6774 | ||
|
|
de638bcb6a | ||
|
|
e9238d1b24 | ||
|
|
f2476e0a6d | ||
|
|
c2c548a3d6 | ||
|
|
ac26b356ac | ||
|
|
9b744c4632 | ||
|
|
e481cf9dda | ||
|
|
5672f6bfce | ||
|
|
dcee332bff | ||
|
|
8d0aeb6fc9 | ||
|
|
716e1deb5f | ||
|
|
b65af5f3ac | ||
|
|
f3c4eb63e8 | ||
|
|
64924182d2 | ||
|
|
8bad9dd0f8 | ||
|
|
8e1507d8d0 | ||
|
|
dd06d75468 | ||
|
|
f3d2d38214 | ||
|
|
e264daebe0 | ||
|
|
3b67cd6773 | ||
|
|
53834dc5e7 | ||
|
|
09891459ee | ||
|
|
346b9f3af8 | ||
|
|
409a4fbb7b | ||
|
|
fd44191c96 | ||
|
|
3b65ec28ed | ||
|
|
0c6351d3ab | ||
|
|
6126d1d0f3 | ||
|
|
c9ee0d5a4d | ||
|
|
1a39ba639f | ||
|
|
7360544f06 | ||
|
|
b8bd5115b4 | ||
|
|
2175bc25fe | ||
|
|
35bae257f2 | ||
|
|
6926262562 | ||
|
|
167b6a33a3 | ||
|
|
0e2cc49ed0 | ||
|
|
b095aa2b20 | ||
|
|
79b840024a | ||
|
|
8925f396cf | ||
|
|
62c5d73076 | ||
|
|
b0b26f8663 | ||
|
|
f555367eb4 | ||
|
|
1fe336ad39 | ||
|
|
8f157253a3 | ||
|
|
aca2a9a524 | ||
|
|
07fc4621f8 | ||
|
|
d239e77f15 | ||
|
|
627a047028 | ||
|
|
a1844d301d | ||
|
|
d9db632718 | ||
|
|
4b38af6b51 | ||
|
|
46238ef7a1 | ||
|
|
059b47f84d | ||
|
|
62b6b32719 | ||
|
|
02eb35d622 | ||
|
|
4d5b4ef697 | ||
|
|
b3c8706690 | ||
|
|
283fe2e440 | ||
|
|
8e586e6f14 | ||
|
|
7ad30bdc8c | ||
|
|
81ead590c9 | ||
|
|
48b0912cf6 | ||
|
|
e0d743076d | ||
|
|
91c2facff9 | ||
|
|
8e71cfa73a | ||
|
|
9cade51106 | ||
|
|
d0691f273c | ||
|
|
ef41362b57 | ||
|
|
6942ce7f0f | ||
|
|
97d1624bb0 | ||
|
|
a85fa2f8c2 | ||
|
|
c0e20f024a | ||
|
|
1c13b29aa6 | ||
|
|
ba623246a1 | ||
|
|
e36f2051e3 | ||
|
|
c0bc9daff3 | ||
|
|
5c0dc5d613 | ||
|
|
a8f00d69f8 | ||
|
|
514b4f8def | ||
|
|
6cc6429a0f | ||
|
|
76b57bab75 | ||
|
|
104375b5b5 | ||
|
|
03f80d707e | ||
|
|
3718835b23 | ||
|
|
eefb0cb32e | ||
|
|
691798f913 | ||
|
|
dec31a73a2 | ||
|
|
904545de89 | ||
|
|
b9f1d5df1d | ||
|
|
46375d60c2 | ||
|
|
ba29164e1d | ||
|
|
50d8ac3261 | ||
|
|
e8fa36e7fd | ||
|
|
c6b5768bf2 | ||
|
|
0d0e9170b9 | ||
|
|
72f127fe0f | ||
|
|
3cdaaf2950 | ||
|
|
f980e3bb2e | ||
|
|
e199d7e5be | ||
|
|
fb662de8b4 | ||
|
|
35d1fe0eb5 | ||
|
|
b40fe2140d | ||
|
|
4c8d27cf89 | ||
|
|
895217865b | ||
|
|
87e386eb69 | ||
|
|
384913506f | ||
|
|
4d88b1ad2b | ||
|
|
db071c39fb | ||
|
|
766eaf635c | ||
|
|
5dd8b95f5f | ||
|
|
873490367d | ||
|
|
0457c1d1c0 | ||
|
|
59b944ebff | ||
|
|
2e63031e22 | ||
|
|
6137f285f2 | ||
|
|
04557f6e28 | ||
|
|
d7de842f45 | ||
|
|
ba1aa5a498 | ||
|
|
b70a697e66 | ||
|
|
c4c2c5c38e | ||
|
|
bbe7e78516 | ||
|
|
e40fc5568b | ||
|
|
71d94982df | ||
|
|
d48154d6a0 | ||
|
|
949f6fbf8d | ||
|
|
3c97fc5a32 | ||
|
|
4d4468e907 | ||
|
|
fc5a638e24 | ||
|
|
cf6a14b7a6 | ||
|
|
6ddde41728 | ||
|
|
5114308d0d | ||
|
|
2c325b1ee4 | ||
|
|
e087bb718c | ||
|
|
51bdd0d07e | ||
|
|
74fec8b171 | ||
|
|
9d360f1c24 | ||
|
|
148743894f | ||
|
|
6b935f980c | ||
|
|
e751836684 | ||
|
|
b9449c213b | ||
|
|
a3c9770d4f | ||
|
|
3c971dacc1 | ||
|
|
ac1a73c154 | ||
|
|
3a099fabec | ||
|
|
9a1e869a82 | ||
|
|
5c54c614e3 | ||
|
|
cbdc843500 | ||
|
|
82fbca20e4 | ||
|
|
ef7dbb1f77 | ||
|
|
4f15106fa9 | ||
|
|
96bfc34247 | ||
|
|
0289ceed5b | ||
|
|
4e54ce3f85 | ||
|
|
73b2322597 | ||
|
|
05c7b6c3a3 | ||
|
|
1bb70effea | ||
|
|
590c27d202 | ||
|
|
846dff2636 | ||
|
|
b339c76fc7 | ||
|
|
fbabecbe9e | ||
|
|
7706c0795e | ||
|
|
4be368c523 | ||
|
|
b268c1bb66 | ||
|
|
b2f18fb784 | ||
|
|
34e3b4c027 | ||
|
|
3c5edcf184 | ||
|
|
33f4d7a008 | ||
|
|
2d182a2eea | ||
|
|
7f06ccaf53 | ||
|
|
d8fa7f26af | ||
|
|
aa6edf6c55 | ||
|
|
4333435739 | ||
|
|
f01197df71 | ||
|
|
cb41eff450 | ||
|
|
352326f574 | ||
|
|
410fd07287 | ||
|
|
faededeb77 | ||
|
|
f0f8dc2850 | ||
|
|
184e8d627d | ||
|
|
fd2b7c1fc7 | ||
|
|
98192ca099 | ||
|
|
05a93a5e3d | ||
|
|
50a2820a97 | ||
|
|
87f2640ee3 | ||
|
|
4180e3d3ee | ||
|
|
b7d7ea5d8d | ||
|
|
4e09cf0b55 | ||
|
|
3f0ab3fb92 | ||
|
|
836647525a | ||
|
|
8b68eac561 | ||
|
|
0503299773 | ||
|
|
2e8000d191 | ||
|
|
65ffcea0db | ||
|
|
45845b8ca6 | ||
|
|
fead9b108d | ||
|
|
db1c9679ba | ||
|
|
d753fa7a8d | ||
|
|
f6d7e05b14 | ||
|
|
a9288423cc | ||
|
|
ac9e54afba | ||
|
|
f7cf6419d2 | ||
|
|
a9097cbb42 | ||
|
|
6f84ca1c9d | ||
|
|
dff70c3349 | ||
|
|
fe8f3f8494 | ||
|
|
f5f3510a59 | ||
|
|
1e375b4740 | ||
|
|
c573496914 | ||
|
|
73e731722d | ||
|
|
6186376b6b | ||
|
|
31e0151804 | ||
|
|
872ca66b07 | ||
|
|
088aba8cec | ||
|
|
99b8959559 | ||
|
|
94f23e63e7 | ||
|
|
7c449cf4a3 | ||
|
|
2db507e5e8 | ||
|
|
bdeb908df0 | ||
|
|
a133cdfdef | ||
|
|
fe2656acd8 | ||
|
|
64a44a667e | ||
|
|
59cef9a04f | ||
|
|
af629fe3cd | ||
|
|
80368e2a04 | ||
|
|
5237ae8ea2 | ||
|
|
54ad4f7f74 | ||
|
|
0dd94f5957 | ||
|
|
5b2b3f0790 | ||
|
|
ac05a0c43a | ||
|
|
18f3e1273f | ||
|
|
710829c16a | ||
|
|
8ced23d027 | ||
|
|
d834bb6da0 | ||
|
|
cc560b00e5 | ||
|
|
3e4668715a | ||
|
|
053e8dcf22 | ||
|
|
2d7e57c7e1 | ||
|
|
30e6360fa2 | ||
|
|
dda9290ff5 | ||
|
|
15a00d8119 | ||
|
|
9289083171 | ||
|
|
3d482d2bf5 | ||
|
|
318150e6b0 | ||
|
|
8939b060b4 | ||
|
|
4709ff6adf | ||
|
|
31af9f996c | ||
|
|
c716443737 | ||
|
|
fd06605f51 | ||
|
|
c8f6b05987 | ||
|
|
a90dbc5f33 | ||
|
|
7fc16f8948 | ||
|
|
a2f1f24a95 | ||
|
|
825b928168 | ||
|
|
de648c24bd | ||
|
|
907818d2a4 | ||
|
|
60a79e67d4 | ||
|
|
04a3b8b5e6 | ||
|
|
dd1b4bc77b | ||
|
|
5156a472be | ||
|
|
185e7db58d | ||
|
|
f8ec917bc5 | ||
|
|
1016ec5f1d | ||
|
|
8a6d4cfefd | ||
|
|
7cbbdc898a | ||
|
|
8db4074d4d | ||
|
|
f6c48e7a11 | ||
|
|
9ae54e61bd | ||
|
|
e917f33e09 | ||
|
|
38aa06b8c6 | ||
|
|
57e710e8a6 | ||
|
|
0d9d978f72 | ||
|
|
196b886ddb | ||
|
|
4197e61772 | ||
|
|
6dc87705d9 | ||
|
|
4b59570a82 | ||
|
|
33927e07ae | ||
|
|
65444b8865 | ||
|
|
5357b084af | ||
|
|
862bbc36df | ||
|
|
e6105bb757 | ||
|
|
864e0c4918 | ||
|
|
115c5763a3 | ||
|
|
d6e307d59a | ||
|
|
9dc21ace2d | ||
|
|
c500759d83 | ||
|
|
736d30ef76 | ||
|
|
a27095f40f | ||
|
|
60a3b3b4a9 | ||
|
|
f932925b29 | ||
|
|
21e8940860 | ||
|
|
944794aeac | ||
|
|
00bd6cf27f | ||
|
|
1fb3bfa6ef | ||
|
|
da14ecbe46 | ||
|
|
1c48f3761e | ||
|
|
246b0018eb | ||
|
|
2e97b09d10 | ||
|
|
f3cc268f0c | ||
|
|
8c3973c68f | ||
|
|
33b591dfac | ||
|
|
ec0ab05782 | ||
|
|
4b03b80912 | ||
|
|
d312c3e318 | ||
|
|
9439ba0450 | ||
|
|
bea827c0b7 | ||
|
|
b1ee7cbf53 | ||
|
|
f56807c023 | ||
|
|
7b34282488 | ||
|
|
31b48f8dd6 | ||
|
|
8c1a74d245 | ||
|
|
6ae1061900 | ||
|
|
7de3647f0d | ||
|
|
76389ea06c | ||
|
|
8ae4364ee1 | ||
|
|
054f0a254e | ||
|
|
02a5982ff9 | ||
|
|
a835742293 | ||
|
|
2d7f299419 | ||
|
|
3bd37be97b | ||
|
|
62e1b4c785 | ||
|
|
3671a76333 | ||
|
|
f3652c7a87 | ||
|
|
980c4c834c | ||
|
|
df438c59ed | ||
|
|
932f2464bc | ||
|
|
d9ea914889 | ||
|
|
1730540764 | ||
|
|
9454cb4a2b | ||
|
|
355d7b5404 | ||
|
|
9f93c29c5f | ||
|
|
43e671497a | ||
|
|
b14c1c07dc | ||
|
|
f4ad3293bf | ||
|
|
e809329ca0 | ||
|
|
3cc16bb120 | ||
|
|
1eb43eafd2 | ||
|
|
f652def98d | ||
|
|
392fb41a24 | ||
|
|
c14b100845 | ||
|
|
b3b5fff0dc | ||
|
|
ef0a48d83a | ||
|
|
58a15dafc7 | ||
|
|
79f78d5e28 | ||
|
|
51e1c7bef3 | ||
|
|
5b5af3eb20 | ||
|
|
2e93819c1b | ||
|
|
d3a10de65d | ||
|
|
8ef754b477 | ||
|
|
4cbda407f9 | ||
|
|
71cce5c580 | ||
|
|
360c27add5 | ||
|
|
753290b95a | ||
|
|
ae579a2047 | ||
|
|
9746f7ea9e | ||
|
|
e599e0206a | ||
|
|
f37dbd4c3d | ||
|
|
ff42c66129 | ||
|
|
d384e696f7 | ||
|
|
3b36dfa8ad | ||
|
|
2d900e88c8 | ||
|
|
ba25fba714 | ||
|
|
44fe8dd676 | ||
|
|
143fb86567 | ||
|
|
dc721b2e4e | ||
|
|
91a0e71d6f | ||
|
|
30770eae4a | ||
|
|
b355fafe0d | ||
|
|
076e3577ba | ||
|
|
6493bc6564 | ||
|
|
27c6a003d8 | ||
|
|
e9ecd9c09e | ||
|
|
9135fa916b | ||
|
|
8d392af6d3 | ||
|
|
da5b0d2411 | ||
|
|
cae06a79a0 | ||
|
|
1a807f5f58 | ||
|
|
c56ea21638 | ||
|
|
36095d04f8 | ||
|
|
8efeb1c86c | ||
|
|
582549ddb6 | ||
|
|
04e14cc979 | ||
|
|
0cd5feb0a3 | ||
|
|
fd762c2f47 | ||
|
|
9aeab55a88 | ||
|
|
3fb71fb569 | ||
|
|
f4d83f5ebf | ||
|
|
b2f4dd4fe8 | ||
|
|
0c575c5266 | ||
|
|
acc47ce0e7 | ||
|
|
81e5120fc4 | ||
|
|
281cb21cce | ||
|
|
ad084a1ceb | ||
|
|
4b436c2f16 | ||
|
|
51e672b87d | ||
|
|
f21650971e | ||
|
|
eccb7a169c | ||
|
|
77c9d1fa9c | ||
|
|
fb0b6b4044 | ||
|
|
deb172ca82 | ||
|
|
f7dc0add11 | ||
|
|
915781d381 | ||
|
|
dca48f4f00 | ||
|
|
8e47199147 | ||
|
|
437bdd2528 | ||
|
|
bedb091e56 | ||
|
|
323f0cc043 | ||
|
|
df7bf3af4a | ||
|
|
94d3727b41 | ||
|
|
510c7153e4 | ||
|
|
389d061972 | ||
|
|
ad5e279231 | ||
|
|
f9bccb3853 | ||
|
|
3c21733d57 | ||
|
|
0d45d61edc | ||
|
|
eb79f4c169 | ||
|
|
48eb29e547 | ||
|
|
3fe5aa8887 | ||
|
|
50e058d2b6 | ||
|
|
2d85a2951c | ||
|
|
21e4debf24 | ||
|
|
486b323990 | ||
|
|
4b89587726 | ||
|
|
f24fa4af6a | ||
|
|
dda33af768 | ||
|
|
cc05c62609 | ||
|
|
3c113c9278 | ||
|
|
8b09edc5d3 | ||
|
|
643ace4777 | ||
|
|
097e24a7b1 | ||
|
|
f797d29b81 | ||
|
|
aca381b118 | ||
|
|
195ea913df | ||
|
|
7232db4b57 | ||
|
|
f688f29029 | ||
|
|
057f10d868 | ||
|
|
086ebe845a | ||
|
|
3e47779858 | ||
|
|
39132506e8 | ||
|
|
71dc51523a | ||
|
|
93a853f95f | ||
|
|
c0edba233a | ||
|
|
368dacd028 | ||
|
|
b49d4f8147 | ||
|
|
8f3fb71b68 | ||
|
|
01e4a5145d | ||
|
|
f3bc8c9061 | ||
|
|
9e58110854 | ||
|
|
2b2ead4d7d | ||
|
|
827c77c960 | ||
|
|
9db9582f4a | ||
|
|
20f0538c64 | ||
|
|
a026b69736 | ||
|
|
5b760082d9 | ||
|
|
487b11e9be | ||
|
|
8c236004c9 | ||
|
|
1025f8c657 | ||
|
|
14ad4cbf85 | ||
|
|
0a1f12c22b | ||
|
|
a9070e4bc3 | ||
|
|
679a590b0c | ||
|
|
797dd6a59c | ||
|
|
0b72f7f895 | ||
|
|
6472213dcc | ||
|
|
80df962012 | ||
|
|
944236d454 | ||
|
|
43dc4a479e | ||
|
|
9355b4969d | ||
|
|
0cd1d43fef | ||
|
|
44b06c8908 | ||
|
|
d78b8e0e1d | ||
|
|
312f55fe11 | ||
|
|
87b54273ff | ||
|
|
dedfaa49ae | ||
|
|
944400a136 | ||
|
|
d3cdbbcc4b | ||
|
|
ef9e525bd6 | ||
|
|
0754367f48 | ||
|
|
3a7145b2e3 | ||
|
|
8dd96e2aca | ||
|
|
f49539ad96 | ||
|
|
739411a07e | ||
|
|
ea8c76b5b8 | ||
|
|
d191f1ba92 | ||
|
|
444c101d19 | ||
|
|
9017d290bc | ||
|
|
2733f945c5 | ||
|
|
231df9c37f | ||
|
|
dbde3d370b | ||
|
|
1e07f0c93a | ||
|
|
9ed3fd2237 | ||
|
|
629ca21a3a | ||
|
|
0f898b161b | ||
|
|
de53c330d6 | ||
|
|
d9401ff1b7 | ||
|
|
e33c5aa630 | ||
|
|
8ac62d43bd | ||
|
|
c2c3533e4e | ||
|
|
bfe966f6cf | ||
|
|
75b1401e62 | ||
|
|
f1159015ed | ||
|
|
9c348f7909 | ||
|
|
c80d854054 | ||
|
|
f6299b4e29 | ||
|
|
b91e25aa6f | ||
|
|
a268373550 | ||
|
|
8d595a7ac5 | ||
|
|
2065602494 | ||
|
|
d27e37efbf | ||
|
|
85f9402bfe | ||
|
|
6bb6a0de01 | ||
|
|
081dfbe373 | ||
|
|
8d330a95de | ||
|
|
ac5f974d5c | ||
|
|
3f1306e9cf | ||
|
|
8bd7c32c10 | ||
|
|
cf7165ffaa | ||
|
|
dd4c7e6fe1 | ||
|
|
5aa1986a30 | ||
|
|
ff09a096cb | ||
|
|
ca74a730ee | ||
|
|
e208907db1 | ||
|
|
83c0cb66e5 | ||
|
|
675dd4d269 | ||
|
|
f49f068cdc | ||
|
|
f39282e0d0 | ||
|
|
b66a2ac0c2 | ||
|
|
2bc982127d | ||
|
|
21e76d19bf | ||
|
|
5ec3664397 | ||
|
|
be449d6fe2 | ||
|
|
1248c603e6 | ||
|
|
1ba3cdcbc9 | ||
|
|
3e5b68507e | ||
|
|
d11257cf84 | ||
|
|
a2204e46e0 | ||
|
|
61197c485f | ||
|
|
3f39df4203 | ||
|
|
6386ece898 | ||
|
|
ead4e97574 | ||
|
|
209ee473de | ||
|
|
4e06d22d85 | ||
|
|
a70a0de807 | ||
|
|
2788697c25 | ||
|
|
126b96730b | ||
|
|
c24c544225 | ||
|
|
7373913b0b | ||
|
|
90a21972ad | ||
|
|
17c3dbcf81 | ||
|
|
2ae51b03fd | ||
|
|
a353a11653 | ||
|
|
61e80f5d9f | ||
|
|
f931b6dc01 | ||
|
|
2ae5317946 | ||
|
|
50e4738f61 | ||
|
|
46a6379510 | ||
|
|
a0ede6b7e9 | ||
|
|
f27277c4eb | ||
|
|
d53bace45c | ||
|
|
1b689c4eb9 | ||
|
|
5677804487 | ||
|
|
e70d5ce764 | ||
|
|
45d6c8d235 | ||
|
|
a95ccc006b | ||
|
|
9bcf02a9b0 | ||
|
|
8c5a479d3a | ||
|
|
6872d8b6d6 | ||
|
|
036c08bb1d | ||
|
|
61805cee73 | ||
|
|
665c867601 | ||
|
|
3509d76a8c | ||
|
|
e55f6d0908 | ||
|
|
b00f24f0b5 | ||
|
|
07a46ff561 | ||
|
|
5954e40808 | ||
|
|
3e9a0e84fc | ||
|
|
a837b21013 | ||
|
|
a38229817a | ||
|
|
90c36605e8 | ||
|
|
e552c68f7e | ||
|
|
7708bc240c | ||
|
|
f6a3381682 | ||
|
|
fffe6fad63 | ||
|
|
cd1345cf30 | ||
|
|
e8264986af | ||
|
|
472bd9c0e4 | ||
|
|
18552ad5ab | ||
|
|
1bdcc54f21 | ||
|
|
ca5c75785d | ||
|
|
d0e84297eb | ||
|
|
df3b10c449 | ||
|
|
72c5e39121 | ||
|
|
cdd01e41bb | ||
|
|
5fc5fea30a | ||
|
|
a276ca7c14 | ||
|
|
a58fcffcb3 | ||
|
|
12bca2adb8 | ||
|
|
33fd258c71 | ||
|
|
9a69913ccb | ||
|
|
3d67e17cef | ||
|
|
61a40022d7 | ||
|
|
5a7dd1a458 | ||
|
|
74202c964f | ||
|
|
dc7d517989 | ||
|
|
b662f8d0c3 | ||
|
|
191ea97ea7 | ||
|
|
b0f33b6156 | ||
|
|
98b67cd60e | ||
|
|
edffeba60b | ||
|
|
88ae0b68f0 | ||
|
|
303b5ee31a | ||
|
|
f694b01535 | ||
|
|
37857ceeed | ||
|
|
5b8239c239 | ||
|
|
8e3fdf43b0 | ||
|
|
c7198232f5 | ||
|
|
3855a5f480 | ||
|
|
37a03e720c | ||
|
|
58229c1653 | ||
|
|
4ee13f0e20 | ||
|
|
8d66b62fce | ||
|
|
eae51d8492 | ||
|
|
1a0dec8f1e | ||
|
|
991e10a266 | ||
|
|
ec21297448 | ||
|
|
b97acb1e21 | ||
|
|
02236da8bc | ||
|
|
b3ab3f65a8 | ||
|
|
a5ba7ebe05 | ||
|
|
0e93560003 | ||
|
|
35922c6da6 | ||
|
|
71267fb601 | ||
|
|
6a079198bd | ||
|
|
88bd2825ab | ||
|
|
13da04673f | ||
|
|
68d6d831a1 | ||
|
|
23bd2fbe3f | ||
|
|
e56298f55b | ||
|
|
f19acd68b2 | ||
|
|
57df3868b5 | ||
|
|
ff140aab1b | ||
|
|
754f1efc66 | ||
|
|
2d9ddefe50 | ||
|
|
aa01bc8231 | ||
|
|
add8a4eff6 | ||
|
|
11e3fcc3a6 | ||
|
|
87c087dda9 | ||
|
|
605a32f87d | ||
|
|
7988abf900 | ||
|
|
08141fae66 | ||
|
|
2be85afce9 | ||
|
|
e77b97bc5f | ||
|
|
adbd30bacc | ||
|
|
e7a769ccf8 | ||
|
|
349a1f5873 | ||
|
|
f7a13c9f9e | ||
|
|
62d3c08fbd | ||
|
|
9296b12a71 | ||
|
|
2e06ab94b6 | ||
|
|
8938680044 | ||
|
|
ece9d2af52 | ||
|
|
185d2b546e | ||
|
|
d6e21f43ce | ||
|
|
3f470a4bcd | ||
|
|
9e714d7f57 | ||
|
|
8cd0b8ab49 | ||
|
|
1f339f2085 | ||
|
|
385d006c08 | ||
|
|
5db29277e4 | ||
|
|
21f4a9b368 | ||
|
|
121cbc4a95 | ||
|
|
93cc86315d | ||
|
|
76bf9ffd62 | ||
|
|
8319033bfa | ||
|
|
cb6e110f40 | ||
|
|
48abceeebd | ||
|
|
dc530e2faa | ||
|
|
3191805a88 | ||
|
|
d19809b79b | ||
|
|
ed1b7e862c | ||
|
|
d33b1e2681 | ||
|
|
d62f474d12 | ||
|
|
8df605cb15 | ||
|
|
10a56c13b5 | ||
|
|
820e128c14 | ||
|
|
39ef3f8c65 | ||
|
|
ada885ef41 | ||
|
|
6f7e322349 | ||
|
|
1f46918693 | ||
|
|
e29bb0eb53 | ||
|
|
102da88262 | ||
|
|
1f28b054fe | ||
|
|
79426c6aec | ||
|
|
d08d4a22d1 | ||
|
|
c66c078bde | ||
|
|
ec1501b329 | ||
|
|
4bf101d988 | ||
|
|
58a7faa684 | ||
|
|
4ac9d06f3a | ||
|
|
2c93a3c694 | ||
|
|
51595a6a92 | ||
|
|
9d382df56d | ||
|
|
79be97bbe4 | ||
|
|
cbc3078125 | ||
|
|
12822f97e5 | ||
|
|
fab2a1c871 | ||
|
|
c4fdb9524f | ||
|
|
8ffaf20d58 | ||
|
|
9b15a63781 | ||
|
|
fc0efe9ed5 | ||
|
|
c4866735ba | ||
|
|
ee1c42960a | ||
|
|
fb947920ef | ||
|
|
b9c154911a | ||
|
|
95f31ab26b | ||
|
|
e504bd7e8e | ||
|
|
9ecfb06187 | ||
|
|
27d8eea869 | ||
|
|
69d359c4fe | ||
|
|
1df55f32eb | ||
|
|
e92a82142a | ||
|
|
6eb3e42e17 | ||
|
|
146e4d0899 | ||
|
|
8a7abe98f2 | ||
|
|
338df27457 | ||
|
|
76c7ca743a | ||
|
|
3aa58e4523 | ||
|
|
74373af3de | ||
|
|
3996ff205f | ||
|
|
794ca0f651 | ||
|
|
e288f1b955 | ||
|
|
f22bada12c | ||
|
|
6af198b2f1 | ||
|
|
3de93296a9 | ||
|
|
29bb158ef4 | ||
|
|
7b37cedaf6 | ||
|
|
18392aab61 | ||
|
|
702fc7d584 | ||
|
|
cc15a65c47 | ||
|
|
377c64ef47 | ||
|
|
43edaacada | ||
|
|
b1f0c46059 | ||
|
|
6a693e3dc7 | ||
|
|
2436c25a46 | ||
|
|
352e3855db | ||
|
|
46e8076793 | ||
|
|
d308aa8ae8 | ||
|
|
96132e28d6 | ||
|
|
b0731f6e35 | ||
|
|
a4f7cb1f8c | ||
|
|
953c4ed020 | ||
|
|
d5a3eebe85 | ||
|
|
c92395176f | ||
|
|
ab44aa8023 | ||
|
|
152414d631 | ||
|
|
5e9f137adf | ||
|
|
f29d01a7be | ||
|
|
87aa2576c2 | ||
|
|
728ae07eed | ||
|
|
cfd66281eb | ||
|
|
e8526e00b4 | ||
|
|
b5b6c44d5f | ||
|
|
8f1a5a6376 | ||
|
|
9f58118635 | ||
|
|
d34994b5c0 | ||
|
|
07f8f1df4e | ||
|
|
04d75bc526 | ||
|
|
cf9e00060b | ||
|
|
a21ad361d9 | ||
|
|
873c324d0d | ||
|
|
3504c3f389 | ||
|
|
5f17149189 | ||
|
|
baf8a643bb | ||
|
|
1236027445 | ||
|
|
2160a3d47a | ||
|
|
9077922c57 | ||
|
|
a27ae8b7be | ||
|
|
d572edb7ed | ||
|
|
d4dcf6314c | ||
|
|
c7367e0f46 | ||
|
|
8ae1c01b5e | ||
|
|
996227d197 | ||
|
|
2081cf7002 | ||
|
|
3ec090f222 | ||
|
|
7e417a84e8 | ||
|
|
5d955fe3c8 | ||
|
|
117c97fcb9 | ||
|
|
a8748f3e97 | ||
|
|
8f46fbf836 | ||
|
|
1e97b55c9d | ||
|
|
26935dcda6 | ||
|
|
7188b3581a | ||
|
|
e63defe0d3 | ||
|
|
9eb2624deb | ||
|
|
bd2339aae4 | ||
|
|
cfa2e38162 | ||
|
|
3fa50f7222 | ||
|
|
696199033c | ||
|
|
05a34b099f | ||
|
|
b9b2546060 | ||
|
|
fa265c094b | ||
|
|
d915a3aacd | ||
|
|
c145c117af | ||
|
|
f42bb4ef1b | ||
|
|
550c21bca7 | ||
|
|
cc24384fea | ||
|
|
17d4090c45 | ||
|
|
2bbf06af99 | ||
|
|
699c9b9696 | ||
|
|
52450a7b3b | ||
|
|
2be0169902 | ||
|
|
295d3275bb | ||
|
|
7e8788cec3 | ||
|
|
5f46f05ba4 | ||
|
|
c68ffa8eb7 | ||
|
|
9b42e6d92a | ||
|
|
a698576f59 | ||
|
|
9d081e49d9 | ||
|
|
9a1da695cd | ||
|
|
913e326a71 | ||
|
|
1b3db94b73 | ||
|
|
0dc11e7385 | ||
|
|
c03fefd36d | ||
|
|
15c81e8ace | ||
|
|
3683c0e06c | ||
|
|
8c15fc9fdb | ||
|
|
25e5b2f4fc | ||
|
|
41a7d61df4 | ||
|
|
ad93a7cc53 | ||
|
|
7edccbe38b | ||
|
|
6310521982 | ||
|
|
ae544ec580 | ||
|
|
c2bbb27de4 | ||
|
|
797c38b9e6 | ||
|
|
2a1c5ce79c | ||
|
|
e260a96d93 | ||
|
|
4e96552b03 | ||
|
|
9a29c6f98e | ||
|
|
fae07aed8a | ||
|
|
62a3c9f237 | ||
|
|
cdf715ad2e | ||
|
|
33a8c5c8af | ||
|
|
06ae7b8582 | ||
|
|
9cf714d014 | ||
|
|
d1fe5d1bae | ||
|
|
f9c4cacd6c | ||
|
|
ce7e966c1a | ||
|
|
625f4ac93c | ||
|
|
fa311d5288 | ||
|
|
fa42a98acb | ||
|
|
81a8607628 | ||
|
|
2626d01005 | ||
|
|
1e5032c7a3 | ||
|
|
5dc2281e66 | ||
|
|
70fce1f97e | ||
|
|
da1ee58a7c | ||
|
|
4b3ef986bf | ||
|
|
14a07d4959 | ||
|
|
e3d4d2427c | ||
|
|
9bcee57c7c | ||
|
|
896fedf590 | ||
|
|
12e6b19586 | ||
|
|
3f322bee84 | ||
|
|
20d07a17a8 | ||
|
|
24b59c5b85 | ||
|
|
e5249a6e3b | ||
|
|
a3140c03da | ||
|
|
d154935e8f | ||
|
|
db8d712d83 | ||
|
|
d500367bdd | ||
|
|
03d245384d | ||
|
|
a89415739b | ||
|
|
e81c869531 | ||
|
|
690005a04f | ||
|
|
47043a41c5 | ||
|
|
5aaa81eeb6 | ||
|
|
b9ed596e3e | ||
|
|
e07db9663b | ||
|
|
48078357a3 | ||
|
|
9098936fc2 | ||
|
|
b425bdfbb7 | ||
|
|
392c010840 | ||
|
|
91a20d4b08 | ||
|
|
1db77e36eb | ||
|
|
a927647a07 | ||
|
|
0cc62bf748 | ||
|
|
37abb2707b | ||
|
|
31b2f92b88 | ||
|
|
850030ed17 | ||
|
|
c94e5d9aa0 | ||
|
|
215bfe083b | ||
|
|
af11d17cbd | ||
|
|
60141efc8e | ||
|
|
7ea1236eb6 | ||
|
|
a6597f6ebe | ||
|
|
31d69174fc | ||
|
|
364c37d755 | ||
|
|
c9c672a6a7 | ||
|
|
042e7de2f7 | ||
|
|
4b64ef0073 | ||
|
|
db869203db | ||
|
|
36f2e5d077 | ||
|
|
eaaa470818 | ||
|
|
e9f6ab278d | ||
|
|
764533a6e5 | ||
|
|
0f0e6ba516 | ||
|
|
8c0107f241 | ||
|
|
e0738d301b | ||
|
|
c7393d6e17 | ||
|
|
8694adcf93 | ||
|
|
483fb9074b | ||
|
|
a2adf19b80 | ||
|
|
0b8611b4fd | ||
|
|
8c50a2d147 | ||
|
|
03606c8214 | ||
|
|
fad1201240 |
221
.github/build/deb.sh
vendored
Executable file
221
.github/build/deb.sh
vendored
Executable file
@@ -0,0 +1,221 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Copyright @iliajie <ilia@webmin.dev>
|
||||||
|
#
|
||||||
|
# Automatically builds and updates a repo metadata.
|
||||||
|
# Pulls latest changes from GitHub, detects release
|
||||||
|
# version based on what's available in the repo
|
||||||
|
#
|
||||||
|
# (Debian)
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
#
|
||||||
|
# # Pull and build production versions
|
||||||
|
# # of both Webmin and Usermin
|
||||||
|
# ./deb.sh
|
||||||
|
#
|
||||||
|
# # Pull and build devel versions
|
||||||
|
# # of both Webmin and Usermin
|
||||||
|
# ./deb.sh --devel
|
||||||
|
#
|
||||||
|
# # Pull and build production Webmin version 2.101, forcing
|
||||||
|
# # release version 3, displaying detailed output
|
||||||
|
# ./deb.sh webmin 2.101 3 --debug
|
||||||
|
#
|
||||||
|
# # Pull and build production Usermin version 2.000,
|
||||||
|
# # automatically setting release version to minimal
|
||||||
|
# ./deb.sh usermin 2.000
|
||||||
|
#
|
||||||
|
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
# Source build variables
|
||||||
|
source ./vars.sh || exit 1
|
||||||
|
|
||||||
|
# Source build init
|
||||||
|
source ./init.sh || exit 1
|
||||||
|
|
||||||
|
# Source general build functions
|
||||||
|
source ./funcs.sh || exit 1
|
||||||
|
|
||||||
|
# Build product func
|
||||||
|
build_prod() {
|
||||||
|
|
||||||
|
# Pack with English only in devel builds
|
||||||
|
local english_only=0
|
||||||
|
if [[ "'$*'" == *"--devel"* ]]; then
|
||||||
|
english_only=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Always return back to root directory
|
||||||
|
cd "$root" || exit 1
|
||||||
|
|
||||||
|
# Define root
|
||||||
|
local ver=""
|
||||||
|
local prod=$1
|
||||||
|
root_prod="$root/$prod"
|
||||||
|
root_apt="$root_prod/deb"
|
||||||
|
|
||||||
|
# Print build actual date
|
||||||
|
date=$(get_current_date)
|
||||||
|
|
||||||
|
# Print opening header
|
||||||
|
echo "************************************************************************"
|
||||||
|
echo " build start date: $date "
|
||||||
|
echo " package format: DEB "
|
||||||
|
echo " product: $prod "
|
||||||
|
(make_prod_repos "$root_prod") &
|
||||||
|
spinner " package output version:"
|
||||||
|
|
||||||
|
# Pull main project first to get the latest tag
|
||||||
|
cd "$root_prod" || exit 1
|
||||||
|
cmd="git pull $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
rs1=$?
|
||||||
|
# Clean and try again
|
||||||
|
if [ "$rs1" != "0" ]; then
|
||||||
|
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
rs1=$?
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Descend to theme dir
|
||||||
|
cd "authentic-theme" || exit 1
|
||||||
|
cmd="git pull $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
rs2=$?
|
||||||
|
# Clean and try again
|
||||||
|
if [ "$rs2" != "0" ]; then
|
||||||
|
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
rs2=$?
|
||||||
|
fi
|
||||||
|
if [ "$rs1" != "0" ] || [ "$rs2" != "0" ]; then
|
||||||
|
rs=1
|
||||||
|
else
|
||||||
|
rs=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build number
|
||||||
|
date_version=$(get_latest_commit_date_version)
|
||||||
|
|
||||||
|
# Handle other params
|
||||||
|
cd "$root_prod" || exit 1
|
||||||
|
if [[ "'$2'" != *"--"* ]]; then
|
||||||
|
ver=$2
|
||||||
|
fi
|
||||||
|
if [[ "'$3'" != *"--"* ]] && [[ -n "$3" ]]; then
|
||||||
|
rel=$3
|
||||||
|
relval="-$3"
|
||||||
|
else
|
||||||
|
rel=1
|
||||||
|
relval=""
|
||||||
|
fi
|
||||||
|
if [ -z "$ver" ]; then
|
||||||
|
ver=$(get_current_repo_tag)
|
||||||
|
fi
|
||||||
|
if [[ "'$*'" == *"--devel"* ]]; then
|
||||||
|
ver="$ver.$date_version"
|
||||||
|
# Set actual product version
|
||||||
|
echo "${ver}" >"version"
|
||||||
|
fi
|
||||||
|
printf "$ver-$rel\n"
|
||||||
|
echo "************************************************************************"
|
||||||
|
|
||||||
|
echo "Pulling latest changes.."
|
||||||
|
# We need to pull first to get the latest tag,
|
||||||
|
# so here we only report an error if any
|
||||||
|
postcmd $rs
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo "Pre-clean up .."
|
||||||
|
# Make sure directories exist
|
||||||
|
make_dir "$root_repos/"
|
||||||
|
make_dir "$root_apt/"
|
||||||
|
make_dir "$root_prod/newkey/deb/"
|
||||||
|
make_dir "$root_prod/umodules/"
|
||||||
|
make_dir "$root_prod/minimal/"
|
||||||
|
make_dir "$root_prod/tarballs/"
|
||||||
|
|
||||||
|
# Re-create legacy link
|
||||||
|
rm -rf "$root/webadmin"
|
||||||
|
ln -s "$root/webmin" "$root/webadmin"
|
||||||
|
|
||||||
|
# Purge old files
|
||||||
|
purge_dir "$root_prod/newkey/deb"
|
||||||
|
purge_dir "$root_prod/umodules"
|
||||||
|
purge_dir "$root_prod/minimal"
|
||||||
|
purge_dir "$root_prod/tarballs"
|
||||||
|
if [ "$prod" != "" ]; then
|
||||||
|
# XXXX Need to check for
|
||||||
|
# product name exactly
|
||||||
|
rm -f "$root_repos/$prod-latest"*
|
||||||
|
fi
|
||||||
|
postcmd $?
|
||||||
|
echo
|
||||||
|
|
||||||
|
# Descend to project dir
|
||||||
|
cd "$root_prod" || exit 1
|
||||||
|
|
||||||
|
if [ "$english_only" = "1" ]; then
|
||||||
|
echo "Cleaning languages .."
|
||||||
|
cmd="./bin/language-manager --mode=clean --yes $verbosity_level_with_input"
|
||||||
|
eval "$cmd"
|
||||||
|
postcmd $?
|
||||||
|
echo
|
||||||
|
else
|
||||||
|
# Force restore build directory
|
||||||
|
if [ ! -f "lang/ja" ]; then
|
||||||
|
echo "Restoring languages .."
|
||||||
|
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
postcmd $?
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Pre-building package .."
|
||||||
|
eval "$cmd"
|
||||||
|
cmd="./makedist.pl \"${ver}${relval}\" $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
postcmd $?
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo "Building package .."
|
||||||
|
if [ "$relval" == "" ]; then
|
||||||
|
cmd="./makedebian.pl \"$ver\" $verbosity_level"
|
||||||
|
else
|
||||||
|
cmd="./makedebian.pl \"$ver\" \"$rel\" $verbosity_level"
|
||||||
|
fi
|
||||||
|
eval "$cmd"
|
||||||
|
postcmd $?
|
||||||
|
echo
|
||||||
|
|
||||||
|
cd "$root" || exit 1
|
||||||
|
echo "Preparing built files for upload .."
|
||||||
|
cmd="cp -f $root_prod/tarballs/${prod}-${ver}*\.tar.gz $root_repos/${prod}-latest.tar.gz $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
cmd="echo $ver-$rel \($date\) > $root_repos/${prod}-latest.version $verbosity_level_to_file"
|
||||||
|
eval "$cmd"
|
||||||
|
cmd="find $root_apt -name ${prod}_${ver}${relval}*\.deb -exec mv '{}' $root_repos \; $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
cmd="mv -f $root_repos/${prod}_${ver}${relval}*\.deb $root_repos/${prod}-latest.deb $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
postcmd $?
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -n "$1" ] && [[ "'$1'" != *"--"* ]]; then
|
||||||
|
build_prod $@
|
||||||
|
|
||||||
|
cloud_upload_list_upload=("$root_repos/$1*")
|
||||||
|
cloud_upload cloud_upload_list_upload
|
||||||
|
|
||||||
|
cloud_repo_sign_and_update
|
||||||
|
else
|
||||||
|
build_prod webmin $@
|
||||||
|
build_prod usermin $@
|
||||||
|
|
||||||
|
cloud_upload_list_upload=("$root_repos/*")
|
||||||
|
cloud_upload cloud_upload_list_upload
|
||||||
|
|
||||||
|
cloud_repo_sign_and_update
|
||||||
|
fi
|
||||||
163
.github/build/funcs.sh
vendored
Executable file
163
.github/build/funcs.sh
vendored
Executable file
@@ -0,0 +1,163 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Copyright @iliajie <ilia@webmin.dev>
|
||||||
|
#
|
||||||
|
# General build functions
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
# Upload to cloud
|
||||||
|
# Usage:
|
||||||
|
# cloud_upload_list_delete=("$cloud_upload_ssh_dir/repodata")
|
||||||
|
# cloud_upload_list_upload=("$root_repos/*" "$root_repos/repodata")
|
||||||
|
# cloud_upload cloud_upload_list_upload cloud_upload_list_delete
|
||||||
|
cloud_upload() {
|
||||||
|
# Print new block only if definded
|
||||||
|
local ssh_args="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
# Delete files on remote if needed
|
||||||
|
if [ -n "$2" ]; then
|
||||||
|
echo "Deleting given files in $cloud_upload_ssh_host .."
|
||||||
|
local -n arr_del=$2
|
||||||
|
local err=0
|
||||||
|
for d in "${arr_del[@]}"; do
|
||||||
|
if [ -n "$d" ]; then
|
||||||
|
local cmd1="ssh $ssh_args $cloud_upload_ssh_user@$cloud_upload_ssh_host \"rm -rf $d\" $verbosity_level"
|
||||||
|
eval "$cmd1"
|
||||||
|
if [ "$?" != "0" ]; then
|
||||||
|
err=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
postcmd $err
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Upload files to remote
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
echo "Uploading built files to $cloud_upload_ssh_host .."
|
||||||
|
local -n arr_upl=$1
|
||||||
|
local err=0
|
||||||
|
for u in "${arr_upl[@]}"; do
|
||||||
|
if [ -n "$u" ]; then
|
||||||
|
local cmd2="scp $ssh_args -r $u $cloud_upload_ssh_user@$cloud_upload_ssh_host:$cloud_upload_ssh_dir/ $verbosity_level"
|
||||||
|
eval "$cmd2"
|
||||||
|
if [ "$?" != "0" ]; then
|
||||||
|
err=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
postcmd $err
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Sign and update repos metadata in remote
|
||||||
|
cloud_repo_sign_and_update() {
|
||||||
|
echo "Signing and updating repos metadata in $cloud_upload_ssh_host .."
|
||||||
|
local ssh_args="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
|
||||||
|
local remote_cmd="cd ~/.scripts && ./update-repo-packages-signature.bash $cloud_upload_gpg_passphrase"
|
||||||
|
local cmd1="ssh $ssh_args $cloud_upload_ssh_user@$cloud_upload_ssh_host \"$remote_cmd\" $verbosity_level"
|
||||||
|
eval "$cmd1"
|
||||||
|
postcmd $?
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
# Post command func
|
||||||
|
postcmd() {
|
||||||
|
if [ "$1" != "0" ]; then
|
||||||
|
echo ".. failed"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo ".. done"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get max number from array
|
||||||
|
max() {
|
||||||
|
local -n arr_nums=$1
|
||||||
|
IFS=$'\n'
|
||||||
|
echo "${arr_nums[*]}" | sort -nr | head -n1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Mkdir and children dirs
|
||||||
|
make_dir() {
|
||||||
|
if [ ! -d "$1" ]; then
|
||||||
|
mkdir -p "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Remove all content in dir
|
||||||
|
purge_dir() {
|
||||||
|
for file in "$1"/*; do
|
||||||
|
rm -rf "$file"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get latest tag version
|
||||||
|
get_current_repo_tag() {
|
||||||
|
cd "$root_prod" || exit 1
|
||||||
|
tg=$(git rev-list --tags --max-count=1)
|
||||||
|
ds=$(git describe --tags "$tg")
|
||||||
|
echo "$ds" | sed 's/v//'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get latest commit date
|
||||||
|
get_current_date() {
|
||||||
|
echo $(date +'%Y-%m-%d %H:%M:%S %z')
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get latest commit date version
|
||||||
|
get_latest_commit_date_version() {
|
||||||
|
local theme_version
|
||||||
|
local prod_version
|
||||||
|
local max_prod
|
||||||
|
local highest_version
|
||||||
|
|
||||||
|
theme_version=$(git log -n1 --pretty='format:%cd' --date=format:'%Y%m%d%H%M')
|
||||||
|
cd "$root_prod" || exit 1
|
||||||
|
prod_version=$(git log -n1 --pretty='format:%cd' --date=format:'%Y%m%d%H%M')
|
||||||
|
max_prod=("$theme_version" "$prod_version")
|
||||||
|
highest_version=$(max max_prod)
|
||||||
|
echo "$highest_version"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Pull project repo and theme
|
||||||
|
make_prod_repos() {
|
||||||
|
# Webmin or Usermin
|
||||||
|
if [ ! -d "$1" ]; then
|
||||||
|
local repo="webmin/$prod.git"
|
||||||
|
cmd="git clone https://github.com/$repo $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
if [ ! -d "webmin" ]; then
|
||||||
|
cmd="git clone --depth 1 https://github.com/webmin/webmin $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Theme
|
||||||
|
theme="authentic-theme"
|
||||||
|
if [ ! -d "$1/$theme" ]; then
|
||||||
|
cd "$1" || exit 1
|
||||||
|
local repo="webmin/$theme.git"
|
||||||
|
cmd="git clone --depth 1 https://github.com/$repo $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
spinner() {
|
||||||
|
local msg=$1
|
||||||
|
local pid=$!
|
||||||
|
local spin='-\|/'
|
||||||
|
local i=0
|
||||||
|
printf "$msg "
|
||||||
|
while kill -0 $pid 2>/dev/null; do
|
||||||
|
(( i = (i + 1) % 4 ))
|
||||||
|
# No spinner if not an interactive shell
|
||||||
|
if [ -n "$PS1" ]; then
|
||||||
|
printf '%c\b' "${spin:i:1}"
|
||||||
|
fi
|
||||||
|
sleep .1
|
||||||
|
done
|
||||||
|
}
|
||||||
29
.github/build/init.sh
vendored
Normal file
29
.github/build/init.sh
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Copyright @iliajie <ilia@webmin.dev>
|
||||||
|
#
|
||||||
|
# Build init
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
# Set up SSH dev keys
|
||||||
|
if [ -n "$WEBMIN_DEV__SSH_PRV_KEY" ] && [ -n "$WEBMIN_DEV__SSH_PUB_KEY" ]; then
|
||||||
|
# Generate new pair with right permissions
|
||||||
|
cmd="ssh-keygen -t rsa -q -f \"$HOME/.ssh/id_rsa\" -N \"\"$verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
# Import SSH keys from secrets to be able to connect to the remote host
|
||||||
|
echo "$WEBMIN_DEV__SSH_PRV_KEY" > "$HOME/.ssh/id_rsa"
|
||||||
|
echo "$WEBMIN_DEV__SSH_PUB_KEY" > "$HOME/.ssh/id_rsa.pub"
|
||||||
|
|
||||||
|
# Set up SSH production keys
|
||||||
|
elif [ -n "$WEBMIN_PROD__SSH_PRV_KEY" ] && [ -n "$WEBMIN_PROD__SSH_PUB_KEY" ]; then
|
||||||
|
# Generate new pair with right permissions
|
||||||
|
cmd="ssh-keygen -t rsa -q -f \"$HOME/.ssh/id_rsa\" -N \"\"$verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
# Import SSH keys from secrets to be able to connect to the remote host
|
||||||
|
echo "$WEBMIN_PROD__SSH_PRV_KEY" > "$HOME/.ssh/id_rsa"
|
||||||
|
echo "$WEBMIN_PROD__SSH_PUB_KEY" > "$HOME/.ssh/id_rsa.pub"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create symlink to Perl
|
||||||
|
ln -fs /usr/bin/perl /usr/local/bin/perl
|
||||||
243
.github/build/rpm.sh
vendored
Executable file
243
.github/build/rpm.sh
vendored
Executable file
@@ -0,0 +1,243 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Copyright @iliajie <ilia@webmin.dev>
|
||||||
|
#
|
||||||
|
# Automatically builds and updates a repo metadata.
|
||||||
|
# Pulls latest changes from GitHub, detects release
|
||||||
|
# version based on what's available in the repo
|
||||||
|
#
|
||||||
|
# (RHEL)
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
#
|
||||||
|
# # Pull and build production versions
|
||||||
|
# # of both Webmin and Usermin
|
||||||
|
# ./rpm.sh
|
||||||
|
#
|
||||||
|
# # Pull and build devel versions
|
||||||
|
# # of both Webmin and Usermin
|
||||||
|
# ./rpm.sh --devel
|
||||||
|
#
|
||||||
|
# # Pull and build production Webmin version 2.101, forcing
|
||||||
|
# # release version 3, displaying detailed output
|
||||||
|
# ./rpm.sh webmin 2.101 3 --debug
|
||||||
|
#
|
||||||
|
# # Pull and build production Usermin version 2.000,
|
||||||
|
# # automatically setting release version to minimal
|
||||||
|
# ./rpm.sh usermin 2.000
|
||||||
|
#
|
||||||
|
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
# Source build variables
|
||||||
|
source ./vars.sh || exit 1
|
||||||
|
|
||||||
|
# Source build init
|
||||||
|
source ./init.sh || exit 1
|
||||||
|
|
||||||
|
# Source general build functions
|
||||||
|
source ./funcs.sh || exit 1
|
||||||
|
|
||||||
|
# Build product func
|
||||||
|
build_prod() {
|
||||||
|
|
||||||
|
# Pack with English only in devel builds
|
||||||
|
local english_only=0
|
||||||
|
if [[ "'$*'" == *"--devel"* ]]; then
|
||||||
|
english_only=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Always return back to root directory
|
||||||
|
cd "$root" || exit 1
|
||||||
|
|
||||||
|
# Define root
|
||||||
|
local ver=""
|
||||||
|
local prod=$1
|
||||||
|
root_prod="$root/$prod"
|
||||||
|
|
||||||
|
# Print build actual date
|
||||||
|
date=$(get_current_date)
|
||||||
|
|
||||||
|
# Print opening header
|
||||||
|
echo "************************************************************************"
|
||||||
|
echo " build start date: $date "
|
||||||
|
echo " package format: RPM "
|
||||||
|
echo " product: $prod "
|
||||||
|
(make_prod_repos "$root_prod") &
|
||||||
|
spinner " package output version:"
|
||||||
|
|
||||||
|
# Pull main project first to get the latest tag
|
||||||
|
cd "$root_prod" || exit 1
|
||||||
|
cmd="git pull $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
rs1=$?
|
||||||
|
# Clean and try again
|
||||||
|
if [ "$rs1" != "0" ]; then
|
||||||
|
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
rs1=$?
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Pull theme to theme dir
|
||||||
|
cd "authentic-theme" || exit 1
|
||||||
|
cmd="git pull $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
rs2=$?
|
||||||
|
# Clean and try again
|
||||||
|
if [ "$rs2" != "0" ]; then
|
||||||
|
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
rs2=$?
|
||||||
|
fi
|
||||||
|
if [ "$rs1" != "0" ] || [ "$rs2" != "0" ]; then
|
||||||
|
rs=1
|
||||||
|
else
|
||||||
|
rs=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build number
|
||||||
|
date_version=$(get_latest_commit_date_version)
|
||||||
|
|
||||||
|
# Handle other params
|
||||||
|
cd "$root_prod" || exit 1
|
||||||
|
if [[ "'$2'" != *"--"* ]]; then
|
||||||
|
ver=$2
|
||||||
|
fi
|
||||||
|
if [[ "'$3'" != *"--"* ]] && [[ -n "$3" ]]; then
|
||||||
|
rel=$3
|
||||||
|
else
|
||||||
|
rel=1
|
||||||
|
fi
|
||||||
|
if [ -z "$ver" ]; then
|
||||||
|
ver=$(get_current_repo_tag)
|
||||||
|
fi
|
||||||
|
if [[ "'$*'" == *"--devel"* ]]; then
|
||||||
|
ver="$ver.$date_version"
|
||||||
|
# Set actual product version
|
||||||
|
echo "${ver}" >"version"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "$ver-$rel\n"
|
||||||
|
echo "************************************************************************"
|
||||||
|
|
||||||
|
echo "Pulling latest changes.."
|
||||||
|
# We need to pull first to get the latest tag,
|
||||||
|
# so here we only report an error if any
|
||||||
|
postcmd $rs
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo "Pre-clean up .."
|
||||||
|
# Make sure directories exist
|
||||||
|
make_dir "$root_prod/newkey/rpm/"
|
||||||
|
make_dir "$root_prod/umodules/"
|
||||||
|
make_dir "$root_prod/minimal/"
|
||||||
|
make_dir "$root_prod/tarballs/"
|
||||||
|
make_dir "$root_build/BUILD/"
|
||||||
|
make_dir "$root_build/BUILDROOT/"
|
||||||
|
make_dir "$root_build/RPMS/"
|
||||||
|
make_dir "$root_build/SOURCES/"
|
||||||
|
make_dir "$root_build/SPECS/"
|
||||||
|
make_dir "$root_build/SRPMS/"
|
||||||
|
make_dir "$root_repos/"
|
||||||
|
|
||||||
|
# Re-create legacy link
|
||||||
|
rm -rf "$root/webadmin"
|
||||||
|
ln -s "$root/webmin" "$root/webadmin"
|
||||||
|
|
||||||
|
# Purge old files
|
||||||
|
purge_dir "$root_prod/newkey/rpm"
|
||||||
|
purge_dir "$root_prod/umodules"
|
||||||
|
purge_dir "$root_prod/minimal"
|
||||||
|
purge_dir "$root_prod/tarballs"
|
||||||
|
purge_dir "$root_build/BUILD"
|
||||||
|
purge_dir "$root_build/BUILDROOT"
|
||||||
|
purge_dir "$root_build/RPMS"
|
||||||
|
purge_dir "$root_build/SOURCES"
|
||||||
|
purge_dir "$root_build/SPECS"
|
||||||
|
purge_dir "$root_build/SRPMS"
|
||||||
|
rm -rf "$root_repos/repodata"
|
||||||
|
if [ "$prod" != "" ]; then
|
||||||
|
# XXXX Need to check for
|
||||||
|
# product name exactly
|
||||||
|
rm -f "$root_repos/$prod-latest"*
|
||||||
|
fi
|
||||||
|
postcmd $?
|
||||||
|
make_dir "$root_build/RPMS/noarch"
|
||||||
|
echo
|
||||||
|
|
||||||
|
# Descend to project dir
|
||||||
|
cd "$root_prod" || exit 1
|
||||||
|
|
||||||
|
if [ "$english_only" = "1" ]; then
|
||||||
|
echo "Cleaning languages .."
|
||||||
|
cmd="./bin/language-manager --mode=clean --yes $verbosity_level_with_input"
|
||||||
|
eval "$cmd"
|
||||||
|
postcmd $?
|
||||||
|
echo
|
||||||
|
else
|
||||||
|
# Force restore build directory
|
||||||
|
if [ ! -f "lang/ja" ]; then
|
||||||
|
echo "Restoring languages .."
|
||||||
|
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
postcmd $?
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo "Pre-building package .."
|
||||||
|
eval "$cmd"
|
||||||
|
if [ "$rel" = "1" ]; then
|
||||||
|
args="$ver"
|
||||||
|
else
|
||||||
|
args="$ver-$rel"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cmd="./makedist.pl \"$args\" $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
postcmd $?
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo "Building package .."
|
||||||
|
cmd="./makerpm.pl \"$ver\" \"$rel\" $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
postcmd $?
|
||||||
|
echo
|
||||||
|
|
||||||
|
cd "$root" || exit 1
|
||||||
|
echo "Preparing built files for upload .."
|
||||||
|
cmd="cp -f $root_prod/tarballs/$prod-$ver*\.tar.gz $root_repos/${prod}-latest.tar.gz $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
cmd="echo $ver-$rel \($date\) > $root_repos/$prod-latest.version"
|
||||||
|
eval "$cmd"
|
||||||
|
cmd="find $root_rpms -name $prod-$ver-$rel*\.rpm -exec mv '{}' $root_repos \; $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
cmd="mv -f $root_repos/$prod-$ver-$rel*\.rpm $root_repos/${prod}-latest.rpm $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
postcmd $?
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo "Post-clean up .."
|
||||||
|
cd "$root_build" || exit 1
|
||||||
|
for dir in *; do
|
||||||
|
cmd="rm -rf \"$dir/*\" $verbosity_level"
|
||||||
|
eval "$cmd"
|
||||||
|
done
|
||||||
|
postcmd $?
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -n "$1" ] && [[ "'$1'" != *"--"* ]]; then
|
||||||
|
build_prod $@
|
||||||
|
|
||||||
|
cloud_upload_list_upload=("$root_repos/$1*")
|
||||||
|
cloud_upload cloud_upload_list_upload
|
||||||
|
|
||||||
|
cloud_repo_sign_and_update
|
||||||
|
|
||||||
|
else
|
||||||
|
build_prod webmin $@
|
||||||
|
build_prod usermin $@
|
||||||
|
|
||||||
|
cloud_upload_list_upload=("$root_repos/*")
|
||||||
|
cloud_upload cloud_upload_list_upload
|
||||||
|
|
||||||
|
cloud_repo_sign_and_update
|
||||||
|
fi
|
||||||
27
.github/build/vars.sh
vendored
Executable file
27
.github/build/vars.sh
vendored
Executable file
@@ -0,0 +1,27 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Copyright @iliajie <ilia@webmin.dev>
|
||||||
|
#
|
||||||
|
# Build variables
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
# Set defaults
|
||||||
|
root="${ENV_BUILD__ROOT:-$HOME}"
|
||||||
|
root_repos="${ENV_BUILD__ROOT_REPOS:-$root/repo}"
|
||||||
|
root_build="${ENV_BUILD__ROOT_BUILD:-$root/rpmbuild}"
|
||||||
|
root_rpms="${ENV_BUILD__ROOT_RPMS:-$root_build/RPMS/noarch}"
|
||||||
|
|
||||||
|
# Cloud upload config
|
||||||
|
cloud_upload_ssh_user="${ENV_BUILD__CLOUD_UPLOAD_SSH_USER:-webmin.dev}"
|
||||||
|
cloud_upload_ssh_host="${ENV_BUILD__CLOUD_UPLOAD_SSH_HOST:-webmin.dev}"
|
||||||
|
cloud_upload_ssh_dir="${ENV_BUILD__CLOUD_UPLOAD_SSH_DIR:-~/domains/builds.webmin.dev/public_html}"
|
||||||
|
cloud_upload_gpg_passphrase="${WEBMIN_DEV__GPG_PH}"
|
||||||
|
|
||||||
|
# Define verbosity level
|
||||||
|
verbosity_level=' >/dev/null 2>&1 </dev/null'
|
||||||
|
verbosity_level_to_file='2> /dev/null'
|
||||||
|
verbosity_level_with_input=' >/dev/null 2>&1'
|
||||||
|
if [[ "'$*'" == *"--debug"* ]]; then
|
||||||
|
unset verbosity_level verbosity_level_to_file verbosity_level_with_input
|
||||||
|
fi
|
||||||
30
.github/workflows/webmin.dev-deploy-webmin-package.yml
vendored
Normal file
30
.github/workflows/webmin.dev-deploy-webmin-package.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
name: "webmin.dev: Deploy Webmin package"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
if: contains(github.event.head_commit.message, '[build]')
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: awalsh128/cache-apt-pkgs-action@latest
|
||||||
|
with:
|
||||||
|
packages: git tar gzip openssl curl openssh-client rpm perl libjson-pp-perl libdigest-sha-perl liblist-moreutils-perl libencode-detect-perl
|
||||||
|
version: 1.0
|
||||||
|
- uses: szenius/set-timezone@v1.2
|
||||||
|
with:
|
||||||
|
timezoneLinux: "Europe/Nicosia"
|
||||||
|
- name: Build and upload packages
|
||||||
|
env:
|
||||||
|
WEBMIN_DEV__SSH_PRV_KEY: ${{ secrets.WEBMIN_DEV__SSH_PRV_KEY }}
|
||||||
|
WEBMIN_DEV__SSH_PUB_KEY: ${{ secrets.WEBMIN_DEV__SSH_PUB_KEY }}
|
||||||
|
WEBMIN_DEV__GPG_PH: ${{ secrets.WEBMIN_DEV__GPG_PH }}
|
||||||
|
ENV_BUILD__CLOUD_UPLOAD_SSH_HOST: ${{ secrets.WEBMIN_DEV__IP_ADDR }}
|
||||||
|
working-directory: ./.github/build
|
||||||
|
run: |-
|
||||||
|
./deb.sh webmin --devel
|
||||||
|
./rpm.sh webmin --devel
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -21,3 +21,4 @@ core
|
|||||||
tarballs/
|
tarballs/
|
||||||
minimal/
|
minimal/
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
.vscode/settings.json
|
||||||
|
|||||||
74
CHANGELOG.md
74
CHANGELOG.md
@@ -1,5 +1,79 @@
|
|||||||
## Changelog
|
## Changelog
|
||||||
|
|
||||||
|
#### 2.111 (April 16, 2024)
|
||||||
|
* Fix EOL detection for unreleased Linux distributions
|
||||||
|
|
||||||
|
#### 2.110 (April 15, 2024)
|
||||||
|
* Add an API to check if the system is running or approaching its end of life (EOL)
|
||||||
|
* Add support for `systemd-timesyncd` and `chronyd` to the System Time module
|
||||||
|
* Add Ubuntu 24.04 support
|
||||||
|
* Add Squid 6 support
|
||||||
|
* Add latest Devuan Linux support
|
||||||
|
* Add an option to request Let's Encrypt certificates using `certbot` in standalone mode [forum.virtualmin.com/t/123696](http://forum.virtualmin.com/t/webmin-ssl-certificate-with-lets-encrypt-directly-obtain-certificate-without-requiring-apache-or-nginx/123696/)
|
||||||
|
* Add IMAP and SMTP monitors in the System and Server Status module
|
||||||
|
* Fix TLS connection to SMTP servers not working in some cases
|
||||||
|
* Fix ProFTPd module to use actual UI library
|
||||||
|
* Fix to using the `qrencode` command to generate QR codes locally instead of the remote Google Chart API
|
||||||
|
* Fix a number of various other issues
|
||||||
|
|
||||||
|
#### 2.105 (November 09, 2023)
|
||||||
|
* Fix param to read only headers [sourceforge.net/usermin-bugs#501](https://sourceforge.net/p/webadmin/usermin-bugs/501/)
|
||||||
|
* Fix not to set `reuse` flag on initial Let's Encrypt request
|
||||||
|
* Fix to correctly escape mail file names upon deletion
|
||||||
|
* Fix index field in cache file in BIND DNS module
|
||||||
|
|
||||||
|
#### 2.104 (October 16, 2023)
|
||||||
|
* Add support for numbered and bulleted lists in email HTML editor
|
||||||
|
* Add ability to display active file locks in `Webmin Configuration ⇾ File Locking` page
|
||||||
|
* Fix hostname detection on `systemd` systems to avoid excessive logging [#2020](https://github.com/webmin/webmin/issues/2020)
|
||||||
|
* Fix Webmin version display [#2023](https://github.com/webmin/webmin/issues/2023)
|
||||||
|
* Fix to check if UI library is loaded before using it [#2021](https://github.com/webmin/webmin/issues/2021)
|
||||||
|
* Fix the absent init script for legacy systems after the initial installation
|
||||||
|
* Update the Authentic theme to the latest version with various fixes and improvements
|
||||||
|
|
||||||
|
#### 2.103 (October 08, 2023)
|
||||||
|
* Add support for hostname detection using `hostnamectl` command
|
||||||
|
* Add support for other ACME services
|
||||||
|
* Add ability to hide dotfiles in File Manager [#1578](https://github.com/webmin/authentic-theme/issues/1578)
|
||||||
|
* Add `xz`, `zstd` and plain `tar` support when creating archives in File Manager [#2009](https://github.com/webmin/webmin/issues/2009)
|
||||||
|
* Add support for English (United States) (military time) locale
|
||||||
|
* Fix to correctly switch key hash type with ACME services
|
||||||
|
* Fix bug when `backend` wasn't saved correctly in Fail2Ban module [#1992](https://github.com/webmin/webmin/issues/1992)
|
||||||
|
* Fix large files download in Upload and Download module
|
||||||
|
* Fix Google Authentication on RHEL systems derivatives
|
||||||
|
* Update the Authentic theme to the latest version with various fixes and improvements
|
||||||
|
|
||||||
|
#### 2.102 (August 23, 2023)
|
||||||
|
* Add support for Amazon Linux 2023
|
||||||
|
* Fix a bug in Network Configuration module when parsing network size [sourceforge.net/discussion#55377]( https://sourceforge.net/p/webadmin/discussion/55377/thread/78e5aa05f3)
|
||||||
|
* Fix Netplan related bugs in Network Configuration module
|
||||||
|
* Fix Terminal focus bug
|
||||||
|
* Fix to correctly compare Webmin semantic versions
|
||||||
|
* Fix to suppress output from `monitor.pl` command [#1984](https://github.com/webmin/webmin/issues/1984)
|
||||||
|
|
||||||
|
#### 2.101 (August 5, 2023)
|
||||||
|
* Add support for reading gzipped email messages
|
||||||
|
* Add `error_stderr` API
|
||||||
|
* Fix to show correct locale for sudo-capable users [webmin/authentic-theme#1663](https://github.com/webmin/authentic-theme/issues/1663)
|
||||||
|
* Fix new signing key import on Debian and derivatives
|
||||||
|
* Fix to check if password hash format is valid for `yescrypt` and `SHA512`
|
||||||
|
* Fix various XSS related issues
|
||||||
|
* Fix updating Webmin from repository if a package is available
|
||||||
|
|
||||||
|
#### 2.100 (July 22, 2023)
|
||||||
|
* Add support for showing defaults for options in PHP Configuration module
|
||||||
|
* Add significant improvements to email display, reply and compose
|
||||||
|
* Add support for WebGL in the Terminal module
|
||||||
|
* Add screen reader support in Terminal module
|
||||||
|
* Add full support for NetworkManager in Network Configuration module
|
||||||
|
* Fix correctly displaying bridges with Netplan in Network Configuration module
|
||||||
|
* Fix displaying active network interfaces in Network Configuration module
|
||||||
|
* Fix to consider current drive temperature in `smartctl` output #1881
|
||||||
|
* Fix to properly stop Usermin https://github.com/webmin/usermin/issues/89
|
||||||
|
* Fix no to add hashed password to the old password list if it's already in there https://github.com/virtualmin/virtualmin-pro/issues/35
|
||||||
|
* Fix displaying placeholder on input to reflect strftime-style format
|
||||||
|
* Update the Authentic theme to the latest version adding new vertical column layout
|
||||||
|
|
||||||
#### 2.021 (March 19, 2023)
|
#### 2.021 (March 19, 2023)
|
||||||
* Add ability to set locale in Webmin Users module for consistency
|
* Add ability to set locale in Webmin Users module for consistency
|
||||||
* Fix an error when `make_date` is called on undefined value #1860
|
* Fix an error when `make_date` is called on undefined value #1860
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -774,14 +774,16 @@ if ($oldpass ne $user->{'pass'} &&
|
|||||||
my $nolock = $oldpass;
|
my $nolock = $oldpass;
|
||||||
$nolock =~ s/^\!//;
|
$nolock =~ s/^\!//;
|
||||||
$user->{'olds'} ||= [];
|
$user->{'olds'} ||= [];
|
||||||
unshift(@{$user->{'olds'}}, $nolock);
|
if (&indexof($nolock, @{$user->{'olds'}}) < 0) {
|
||||||
if ($miniserv->{'pass_oldblock'}) {
|
unshift(@{$user->{'olds'}}, $nolock);
|
||||||
while(scalar(@{$user->{'olds'}}) >
|
if ($miniserv->{'pass_oldblock'}) {
|
||||||
$miniserv->{'pass_oldblock'}) {
|
while(scalar(@{$user->{'olds'}}) >
|
||||||
pop(@{$user->{'olds'}});
|
$miniserv->{'pass_oldblock'}) {
|
||||||
|
pop(@{$user->{'olds'}});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
$user->{'lastchange'} = time();
|
||||||
}
|
}
|
||||||
$user->{'lastchange'} = time();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -207,7 +207,7 @@ if ($access{'lang'}) {
|
|||||||
if ($access{'locale'}) {
|
if ($access{'locale'}) {
|
||||||
# Current locale
|
# Current locale
|
||||||
eval "use DateTime; use DateTime::Locale; use DateTime::TimeZone;";
|
eval "use DateTime; use DateTime::Locale; use DateTime::TimeZone;";
|
||||||
if (!$@) {
|
if (!$@ && $] > 5.011) {
|
||||||
my $locales = &list_locales();
|
my $locales = &list_locales();
|
||||||
my %localesrev = reverse %{$locales};
|
my %localesrev = reverse %{$locales};
|
||||||
my $locale_auto = &parse_accepted_language();
|
my $locale_auto = &parse_accepted_language();
|
||||||
|
|||||||
@@ -38,7 +38,9 @@ if ($module_name ne 'htaccess') {
|
|||||||
# Need to build list of supported modules
|
# Need to build list of supported modules
|
||||||
local ($ver, $mods, $fullver) = &httpd_info($httpd);
|
local ($ver, $mods, $fullver) = &httpd_info($httpd);
|
||||||
if ($ver) {
|
if ($ver) {
|
||||||
local @mods = map { "$_/$ver" } &configurable_modules();
|
my @allmods = &available_modules();
|
||||||
|
local @mods = map { "$_/$ver" }
|
||||||
|
&configurable_modules(\@allmods);
|
||||||
foreach my $m (@mods) {
|
foreach my $m (@mods) {
|
||||||
if ($m =~ /(\S+)\/(\S+)/) {
|
if ($m =~ /(\S+)\/(\S+)/) {
|
||||||
$httpd_modules{$1} = $2;
|
$httpd_modules{$1} = $2;
|
||||||
@@ -47,10 +49,14 @@ if ($module_name ne 'htaccess') {
|
|||||||
# Call again now that known modules have been set, as
|
# Call again now that known modules have been set, as
|
||||||
# sometimes there are dependencies due to LoadModule
|
# sometimes there are dependencies due to LoadModule
|
||||||
# statements in an IfModule block
|
# statements in an IfModule block
|
||||||
@mods = map { "$_/$ver" } &configurable_modules();
|
undef(@get_config_cache);
|
||||||
|
@allmods = &available_modules();
|
||||||
|
@mods = map { "$_/$ver" }
|
||||||
|
&configurable_modules(\@allmods);
|
||||||
local %site = ( 'size' => $st[7],
|
local %site = ( 'size' => $st[7],
|
||||||
'path' => $httpd,
|
'path' => $httpd,
|
||||||
'modules' => join(' ', @mods),
|
'modules' => join(' ', @mods),
|
||||||
|
'allmodules' => join(' ', @allmods),
|
||||||
'version' => $ver,
|
'version' => $ver,
|
||||||
'fullversion' => $fullver,
|
'fullversion' => $fullver,
|
||||||
'webmin' => &get_webmin_version() );
|
'webmin' => &get_webmin_version() );
|
||||||
@@ -72,6 +78,9 @@ if (&read_file($site_file, \%site)) {
|
|||||||
$httpd_modules{$1} = $2;
|
$httpd_modules{$1} = $2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
foreach $m (split(/\s+/, $site{'allmodules'})) {
|
||||||
|
$all_httpd_modules{$m} = $site{'version'};
|
||||||
|
}
|
||||||
foreach $m (keys %httpd_modules) {
|
foreach $m (keys %httpd_modules) {
|
||||||
if (!-r "$module_root_directory/$m.pl") {
|
if (!-r "$module_root_directory/$m.pl") {
|
||||||
delete($httpd_modules{$m});
|
delete($httpd_modules{$m});
|
||||||
@@ -1825,46 +1834,46 @@ for(my $i=0; $i<$secs; $i++) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
# configurable_modules()
|
# configurable_modules([&all-mods])
|
||||||
# Returns a list of Apaches that are compiled in or dynamically loaded, and
|
# Returns a list of Apaches that are compiled in or dynamically loaded, and
|
||||||
# supported by Webmin.
|
# supported by Webmin.
|
||||||
sub configurable_modules
|
sub configurable_modules
|
||||||
{
|
{
|
||||||
local ($ver, $mods) = &httpd_info(&find_httpd());
|
my ($allmods) = @_;
|
||||||
local @rv;
|
$allmods ||= [ &available_modules() ];
|
||||||
local $m;
|
return grep { -r "$module_root_directory/$_.pl" } @$allmods;
|
||||||
|
}
|
||||||
|
|
||||||
|
# available_modules()
|
||||||
|
# Returns a list of Apaches that are compiled in or dynamically loaded
|
||||||
|
sub available_modules
|
||||||
|
{
|
||||||
|
my ($ver, $mods) = &httpd_info(&find_httpd());
|
||||||
|
my @rv;
|
||||||
|
|
||||||
# Add compiled-in modules
|
# Add compiled-in modules
|
||||||
foreach $m (@$mods) {
|
push(@rv, @$mods);
|
||||||
if (-r "$module_root_directory/$m.pl") {
|
|
||||||
push(@rv, $m);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Add dynamically loaded modules
|
# Add dynamically loaded modules
|
||||||
local $conf = &get_config();
|
my $conf = &get_config();
|
||||||
foreach $l (&find_directive_struct("LoadModule", $conf)) {
|
foreach my $l (&find_directive_struct("LoadModule", $conf)) {
|
||||||
if ($l->{'words'}->[1] =~ /(mod_\S+)\.(so|dll)/ &&
|
if ($l->{'words'}->[1] =~ /(mod_\S+)\.(so|dll)/) {
|
||||||
-r "$module_root_directory/$1.pl") {
|
|
||||||
push(@rv, $1);
|
push(@rv, $1);
|
||||||
}
|
}
|
||||||
elsif ($l->{'words'}->[1] =~ /libssl\.so/ &&
|
elsif ($l->{'words'}->[1] =~ /libssl\.so/) {
|
||||||
-r "$module_root_directory/mod_apachessl.pl") {
|
|
||||||
push(@rv, "mod_apachessl");
|
push(@rv, "mod_apachessl");
|
||||||
}
|
}
|
||||||
elsif ($l->{'words'}->[1] =~ /lib([^\/\s]+)\.(so|dll)/ &&
|
elsif ($l->{'words'}->[1] =~ /lib([^\/\s]+)\.(so|dll)/) {
|
||||||
-r "$module_root_directory/mod_$1.pl") {
|
|
||||||
push(@rv, "mod_$1");
|
push(@rv, "mod_$1");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
undef(@get_config_cache); # Cache is no longer valid
|
|
||||||
|
|
||||||
# Add dynamically loaded modules
|
# Add dynamically loaded modules
|
||||||
if ($config{'apachectl_path'}) {
|
if ($config{'apachectl_path'}) {
|
||||||
&open_execute_command(APACHE,
|
&open_execute_command(APACHE,
|
||||||
"$config{'apachectl_path'} -M 2>/dev/null", 1);
|
"$config{'apachectl_path'} -M 2>/dev/null", 1);
|
||||||
while(<APACHE>) {
|
while(<APACHE>) {
|
||||||
if (/(\S+)_module/ && -r "$module_root_directory/mod_${1}.pl") {
|
if (/(\S+)_module/) {
|
||||||
push(@rv, "mod_${1}");
|
push(@rv, "mod_${1}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
19
apache/config-freebsd-11.0-ALL
Normal file
19
apache/config-freebsd-11.0-ALL
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
show_list=0
|
||||||
|
httpd_dir=/usr/local
|
||||||
|
httpd_path=/usr/local/sbin/httpd
|
||||||
|
apachectl_path=/usr/local/sbin/apachectl
|
||||||
|
httpd_conf=/usr/local/etc/apache24/httpd.conf
|
||||||
|
mime_types=/usr/local/etc/apache24/mime.types
|
||||||
|
srm_conf=/usr/local/etc/apache24/srm.conf
|
||||||
|
access_conf=/usr/local/etc/apache24/access.conf
|
||||||
|
show_order=0
|
||||||
|
max_servers=100
|
||||||
|
test_config=1
|
||||||
|
test_manual=0
|
||||||
|
test_always=0
|
||||||
|
test_apachectl=1
|
||||||
|
auto_mods=1
|
||||||
|
pid_file=/var/run/httpd.pid
|
||||||
|
show_names=0
|
||||||
|
allow_virtualmin=0
|
||||||
|
format_config=1
|
||||||
@@ -5,7 +5,7 @@ mime_types=/etc/apache2/mime.types
|
|||||||
httpd_path=/usr/sbin/httpd
|
httpd_path=/usr/sbin/httpd
|
||||||
start_cmd=systemctl start apache2
|
start_cmd=systemctl start apache2
|
||||||
stop_cmd=systemctl stop apache2
|
stop_cmd=systemctl stop apache2
|
||||||
apply_cmd=systemctl restart apache2
|
apply_cmd=systemctl reload apache2
|
||||||
show_order=0
|
show_order=0
|
||||||
max_servers=100
|
max_servers=100
|
||||||
test_config=1
|
test_config=1
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
show_list=0
|
show_list=0
|
||||||
httpd_dir=/usr/apache2/2.2
|
httpd_dir=/usr/apache2/2.4
|
||||||
httpd_conf=/etc/apache2/2.2/httpd.conf
|
httpd_conf=/etc/apache2/2.4/httpd.conf
|
||||||
httpd_path=/usr/apache2/2.2/bin/httpd
|
httpd_path=/usr/apache2/2.4/bin/httpd
|
||||||
apachectl_path=/usr/apache2/2.2/bin/apachectl
|
apachectl_path=/usr/apache2/2.4/bin/apachectl
|
||||||
pid_file=/var/run/apache2/2.2/httpd.pid
|
pid_file=/var/run/apache2/2.4/httpd.pid
|
||||||
start_cmd=svcadm enable svc:/network/http:apache22
|
start_cmd=svcadm enable svc:/network/http:apache24
|
||||||
stop_cmd=svcadm disable svc:/network/http:apache22
|
stop_cmd=svcadm disable svc:/network/http:apache24
|
||||||
mime_types=
|
mime_types=
|
||||||
srm_conf=
|
srm_conf=
|
||||||
access_conf=
|
access_conf=
|
||||||
|
|||||||
@@ -779,11 +779,23 @@ local(@po, $po, @rv);
|
|||||||
if ($in{'Options_def'}) { return ( [ ] ); }
|
if ($in{'Options_def'}) { return ( [ ] ); }
|
||||||
@po = ("ExecCGI", "FollowSymLinks", "Includes", "IncludesNOEXEC",
|
@po = ("ExecCGI", "FollowSymLinks", "Includes", "IncludesNOEXEC",
|
||||||
"Indexes", "MultiViews", "SymLinksIfOwnerMatch");
|
"Indexes", "MultiViews", "SymLinksIfOwnerMatch");
|
||||||
|
my $abscount = 0;
|
||||||
|
my $pluscount = 0;
|
||||||
foreach $po (@po) {
|
foreach $po (@po) {
|
||||||
if ($in{$po} == 1) { push(@rv, $po); }
|
if ($in{$po} == 1) {
|
||||||
elsif ($in{$po} == 2) { push(@rv, "+$po"); }
|
push(@rv, $po);
|
||||||
elsif ($in{$po} == 3) { push(@rv, "-$po"); }
|
$abscount++;
|
||||||
|
}
|
||||||
|
elsif ($in{$po} == 2) {
|
||||||
|
push(@rv, "+$po");
|
||||||
|
$pluscount++;
|
||||||
|
}
|
||||||
|
elsif ($in{$po} == 3) {
|
||||||
|
push(@rv, "-$po");
|
||||||
|
$pluscount++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
$abscount && $pluscount && &error($text{'core_eoptionsboth'});
|
||||||
return @rv ? ( [ join(' ', @rv) ] ) : ( [ "None" ] );
|
return @rv ? ( [ join(' ', @rv) ] ) : ( [ "None" ] );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1041,7 +1053,7 @@ sub edit_LimitRequestBody
|
|||||||
{
|
{
|
||||||
return (1, $text{'core_maxbody'},
|
return (1, $text{'core_maxbody'},
|
||||||
&opt_input($_[0]->{'value'}, "LimitRequestBody", $text{'core_default'}, 8)
|
&opt_input($_[0]->{'value'}, "LimitRequestBody", $text{'core_default'}, 8)
|
||||||
.$text{'bytes'});
|
.&ui_space(2).$text{'bytes'});
|
||||||
}
|
}
|
||||||
sub save_LimitRequestBody
|
sub save_LimitRequestBody
|
||||||
{
|
{
|
||||||
@@ -1052,7 +1064,7 @@ sub edit_LimitXMLRequestBody
|
|||||||
{
|
{
|
||||||
return (1, $text{'core_maxxml'},
|
return (1, $text{'core_maxxml'},
|
||||||
&opt_input($_[0]->{'value'}, "LimitXMLRequestBody",
|
&opt_input($_[0]->{'value'}, "LimitXMLRequestBody",
|
||||||
$text{'core_default'}, 8).$text{'bytes'});
|
$text{'core_default'}, 8).&ui_space(2).$text{'bytes'});
|
||||||
}
|
}
|
||||||
sub save_LimitXMLRequestBody
|
sub save_LimitXMLRequestBody
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -501,6 +501,7 @@ core_actmod=Aktiewe modules
|
|||||||
core_option=Opsie
|
core_option=Opsie
|
||||||
core_setdir=Stel vir gids in
|
core_setdir=Stel vir gids in
|
||||||
core_merge=Smelt met ouer
|
core_merge=Smelt met ouer
|
||||||
|
core_eoptionsboth=Gidsopsies : Aktiewe opsies moet almal óf gestel vir gids óf saamgevoeg met ouer wees, maar nie albei nie
|
||||||
core_users=Slegs hierdie gebruikers
|
core_users=Slegs hierdie gebruikers
|
||||||
core_groups=Slegs hierdie groepe
|
core_groups=Slegs hierdie groepe
|
||||||
core_allusers=Alle geldige gebruikers
|
core_allusers=Alle geldige gebruikers
|
||||||
|
|||||||
@@ -500,6 +500,7 @@ core_actmod=وحدات نشطة
|
|||||||
core_option=اختيار
|
core_option=اختيار
|
||||||
core_setdir=تعيين للدليل
|
core_setdir=تعيين للدليل
|
||||||
core_merge=دمج مع الوالد
|
core_merge=دمج مع الوالد
|
||||||
|
core_eoptionsboth=خيارات الدليل: يجب أن تكون جميع الخيارات النشطة إما Set For Directory أو Merged With Parent، ولكن ليس كليهما
|
||||||
core_users=فقط هؤلاء المستخدمين
|
core_users=فقط هؤلاء المستخدمين
|
||||||
core_groups=فقط هذه المجموعات
|
core_groups=فقط هذه المجموعات
|
||||||
core_allusers=جميع المستخدمين صالحة
|
core_allusers=جميع المستخدمين صالحة
|
||||||
|
|||||||
@@ -501,6 +501,7 @@ core_actmod=Актыўныя модулі
|
|||||||
core_option=Варыянт
|
core_option=Варыянт
|
||||||
core_setdir=Набор для каталога
|
core_setdir=Набор для каталога
|
||||||
core_merge=Зліццё з бацькам
|
core_merge=Зліццё з бацькам
|
||||||
|
core_eoptionsboth=Параметры каталога : усе актыўныя параметры павінны быць усталяваны для каталога або аб'яднаны з бацькоўскім, але не абодва
|
||||||
core_users=Толькі гэтыя карыстальнікі
|
core_users=Толькі гэтыя карыстальнікі
|
||||||
core_groups=Толькі гэтыя групы
|
core_groups=Толькі гэтыя групы
|
||||||
core_allusers=Усе сапраўдныя карыстальнікі
|
core_allusers=Усе сапраўдныя карыстальнікі
|
||||||
|
|||||||
@@ -9,3 +9,4 @@ core_protocols_http/2=HTTP/2
|
|||||||
core_protocols_h2=HTTP/2 криптиран
|
core_protocols_h2=HTTP/2 криптиран
|
||||||
core_protocols_h2c=HTTP/2 нешифрован
|
core_protocols_h2c=HTTP/2 нешифрован
|
||||||
core_eprotcols=Няма избрани протоколи!
|
core_eprotcols=Няма избрани протоколи!
|
||||||
|
core_eoptionsboth=Опции за директория: Всички активни опции трябва да са или Задани за директория, или Обединени с родител, но не и двете
|
||||||
|
|||||||
@@ -10,3 +10,4 @@ core_protocols_http/2=HTTP/2
|
|||||||
core_protocols_h2=HTTP/2 xifrat
|
core_protocols_h2=HTTP/2 xifrat
|
||||||
core_protocols_h2c=HTTP/2 sense xifrar
|
core_protocols_h2c=HTTP/2 sense xifrar
|
||||||
core_eprotcols=No s'ha seleccionat cap protocol!
|
core_eprotcols=No s'ha seleccionat cap protocol!
|
||||||
|
core_eoptionsboth=Opcions de directori: les opcions actives han d'estar totes configurades per al directori o combinades amb el pare, però no totes dues
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ core_protocols_h2=HTTP/2 šifrováno
|
|||||||
core_protocols_h2c=HTTP/2 nešifrované
|
core_protocols_h2c=HTTP/2 nešifrované
|
||||||
core_eprotcols=Nejsou vybrány žádné protokoly!
|
core_eprotcols=Nejsou vybrány žádné protokoly!
|
||||||
core_minor=Pouze menší verze
|
core_minor=Pouze menší verze
|
||||||
|
core_eoptionsboth=Možnosti adresáře : Všechny aktivní možnosti musí být buď Set For Directory, nebo Merged With Parent, ale ne obojí
|
||||||
|
|
||||||
mod_alias_alias2=alias dokumentu
|
mod_alias_alias2=alias dokumentu
|
||||||
mod_alias_regexp2=alias dokumentu regexp
|
mod_alias_regexp2=alias dokumentu regexp
|
||||||
|
|||||||
@@ -271,6 +271,7 @@ core_optfile=Optagelsesfil pr. Katalog
|
|||||||
core_ecandoc=Du har ikke tilladelse til at bruge dokumentroten '$1'
|
core_ecandoc=Du har ikke tilladelse til at bruge dokumentroten '$1'
|
||||||
core_realm=Autentificeringsrealmets navn
|
core_realm=Autentificeringsrealmets navn
|
||||||
core_minor=Kun mindre version
|
core_minor=Kun mindre version
|
||||||
|
core_eoptionsboth=Indstillinger for bibliotek : Alle aktive indstillinger skal være enten indstillet til bibliotek eller flettet med overordnet, men ikke begge
|
||||||
|
|
||||||
mod_negotiation_cache=Cache-indholdsforhandlede dokumenter?
|
mod_negotiation_cache=Cache-indholdsforhandlede dokumenter?
|
||||||
mod_negotiation_pri=Sprogprioritet for flere visninger
|
mod_negotiation_pri=Sprogprioritet for flere visninger
|
||||||
|
|||||||
@@ -7,3 +7,4 @@ core_protocols_http/2=HTTP/2
|
|||||||
core_protocols_h2=HTTP/2 verschlüsselt
|
core_protocols_h2=HTTP/2 verschlüsselt
|
||||||
core_protocols_h2c=HTTP/2 unverschlüsselt
|
core_protocols_h2c=HTTP/2 unverschlüsselt
|
||||||
core_eprotcols=Keine Protokolle ausgewählt!
|
core_eprotcols=Keine Protokolle ausgewählt!
|
||||||
|
core_eoptionsboth=Verzeichnisoptionen: Alle aktiven Optionen müssen entweder „Für Verzeichnis festlegen“ oder „Mit übergeordnetem Verzeichnis zusammengeführt“ sein, jedoch nicht beides
|
||||||
|
|||||||
@@ -9,3 +9,4 @@ core_protocols_http/2=HTTP/2
|
|||||||
core_protocols_h2=HTTP/2 κρυπτογραφημένο
|
core_protocols_h2=HTTP/2 κρυπτογραφημένο
|
||||||
core_protocols_h2c=HTTP/2 μη κρυπτογραφημένο
|
core_protocols_h2c=HTTP/2 μη κρυπτογραφημένο
|
||||||
core_eprotcols=Δεν επιλέχθηκαν πρωτόκολλα!
|
core_eprotcols=Δεν επιλέχθηκαν πρωτόκολλα!
|
||||||
|
core_eoptionsboth=Επιλογές καταλόγου : Οι ενεργές επιλογές πρέπει να είναι όλες είτε ορισμένες για κατάλογο είτε συγχωνευμένες με γονέα, αλλά όχι και οι δύο
|
||||||
|
|||||||
@@ -501,6 +501,7 @@ core_actmod=Active modules
|
|||||||
core_option=Option
|
core_option=Option
|
||||||
core_setdir=Set for directory
|
core_setdir=Set for directory
|
||||||
core_merge=Merge with parent
|
core_merge=Merge with parent
|
||||||
|
core_eoptionsboth=Directory options : Active options must be all either Set For Directory or Merged With Parent, but not both
|
||||||
core_users=Only these users
|
core_users=Only these users
|
||||||
core_groups=Only these groups
|
core_groups=Only these groups
|
||||||
core_allusers=All valid users
|
core_allusers=All valid users
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ core_protocols_h2c=HTTP/2 sin cifrar
|
|||||||
core_eprotcols=¡No se seleccionaron protocolos!
|
core_eprotcols=¡No se seleccionaron protocolos!
|
||||||
core_ecandoc=No tiene permiso para usar la raíz del documento '$1'
|
core_ecandoc=No tiene permiso para usar la raíz del documento '$1'
|
||||||
core_minor=Solo versión menor
|
core_minor=Solo versión menor
|
||||||
|
core_eoptionsboth=Opciones de directorio: las opciones activas deben estar todas configuradas para directorio o fusionadas con padre, pero no ambas
|
||||||
core_fileowner=Propietario de archivo coincide
|
core_fileowner=Propietario de archivo coincide
|
||||||
core_filegroup=Partidos del propietario del grupo
|
core_filegroup=Partidos del propietario del grupo
|
||||||
|
|
||||||
|
|||||||
@@ -501,6 +501,7 @@ core_actmod=Modulu aktiboak
|
|||||||
core_option=aukera
|
core_option=aukera
|
||||||
core_setdir=Direktorioa ezarri
|
core_setdir=Direktorioa ezarri
|
||||||
core_merge=Gurasoekin elkartu
|
core_merge=Gurasoekin elkartu
|
||||||
|
core_eoptionsboth=Direktorio-aukerak : Aukera aktiboak guztiak direktoriorako ezarrita edo gurasoekin bateratuta egon behar dira, baina ez biak
|
||||||
core_users=Erabiltzaile horiek bakarrik
|
core_users=Erabiltzaile horiek bakarrik
|
||||||
core_groups=Talde horiek bakarrik
|
core_groups=Talde horiek bakarrik
|
||||||
core_allusers=Erabiltzaile baliozko guztiak
|
core_allusers=Erabiltzaile baliozko guztiak
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ core_ecandoc=You are not allowed to use the document root '$1'
|
|||||||
core_minor=فقط نسخه جزئی
|
core_minor=فقط نسخه جزئی
|
||||||
core_uid=شناسه کاربری
|
core_uid=شناسه کاربری
|
||||||
core_euid='$1' is not a valid group ID
|
core_euid='$1' is not a valid group ID
|
||||||
|
core_eoptionsboth=گزینه های دایرکتوری: گزینه های فعال باید همه یا Set For Directory یا Merged with Parent باشند، اما نه هر دو
|
||||||
core_fileowner=مالک پرونده مطابقت دارد
|
core_fileowner=مالک پرونده مطابقت دارد
|
||||||
core_filegroup=مالک گروه مطابقت دارد
|
core_filegroup=مالک گروه مطابقت دارد
|
||||||
|
|
||||||
|
|||||||
@@ -501,6 +501,7 @@ core_actmod=Aktiiviset moduulit
|
|||||||
core_option=Vaihtoehto
|
core_option=Vaihtoehto
|
||||||
core_setdir=Asetettu hakemistoon
|
core_setdir=Asetettu hakemistoon
|
||||||
core_merge=Yhdistä vanhemman kanssa
|
core_merge=Yhdistä vanhemman kanssa
|
||||||
|
core_eoptionsboth=Hakemistovalinnat : Kaikkien aktiivisten asetusten on oltava joko asetettu hakemistoon tai yhdistetty ylätason kanssa, mutta ei molempia
|
||||||
core_users=Vain nämä käyttäjät
|
core_users=Vain nämä käyttäjät
|
||||||
core_groups=Vain nämä ryhmät
|
core_groups=Vain nämä ryhmät
|
||||||
core_allusers=Kaikki kelvolliset käyttäjät
|
core_allusers=Kaikki kelvolliset käyttäjät
|
||||||
|
|||||||
@@ -5,3 +5,4 @@ core_protocols_http/2=HTTP/2
|
|||||||
core_protocols_h2=HTTP/2 crypté
|
core_protocols_h2=HTTP/2 crypté
|
||||||
core_protocols_h2c=HTTP/2 non crypté
|
core_protocols_h2c=HTTP/2 non crypté
|
||||||
core_eprotcols=Aucun protocole sélectionné !
|
core_eprotcols=Aucun protocole sélectionné !
|
||||||
|
core_eoptionsboth=Options du répertoire : les options actives doivent toutes être définies pour le répertoire ou fusionnées avec le parent, mais pas les deux
|
||||||
|
|||||||
@@ -501,6 +501,7 @@ core_actmod=מודולים פעילים
|
|||||||
core_option=אפשרות
|
core_option=אפשרות
|
||||||
core_setdir=הגדר לספרייה
|
core_setdir=הגדר לספרייה
|
||||||
core_merge=התמזגו עם ההורה
|
core_merge=התמזגו עם ההורה
|
||||||
|
core_eoptionsboth=אפשרויות ספרייה : האפשרויות הפעילות חייבות להיות כולן מוגדרות למדריך או התמזגו עם אב, אך לא שתיהן
|
||||||
core_users=רק משתמשים אלה
|
core_users=רק משתמשים אלה
|
||||||
core_groups=רק הקבוצות האלה
|
core_groups=רק הקבוצות האלה
|
||||||
core_allusers=כל המשתמשים התקפים
|
core_allusers=כל המשתמשים התקפים
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ core_protocols_h2=HTTP/2 šifrirano
|
|||||||
core_protocols_h2c=HTTP/2 nešifriran
|
core_protocols_h2c=HTTP/2 nešifriran
|
||||||
core_eprotcols=Nema odabranih protokola!
|
core_eprotcols=Nema odabranih protokola!
|
||||||
core_minor=Samo manja verzija
|
core_minor=Samo manja verzija
|
||||||
|
core_eoptionsboth=Opcije direktorija : sve aktivne opcije moraju biti postavljene za imenik ili spojene s nadređenim, ali ne oboje
|
||||||
|
|
||||||
mod_proxy_seconds=sekundi
|
mod_proxy_seconds=sekundi
|
||||||
|
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ core_protocols_h2c=HTTP/2 titkosítatlan
|
|||||||
core_eprotcols=Nincsenek kiválasztva protokollok!
|
core_eprotcols=Nincsenek kiválasztva protokollok!
|
||||||
core_ecandoc=Nem használhatja a '$1' gyökér dokumentumot
|
core_ecandoc=Nem használhatja a '$1' gyökér dokumentumot
|
||||||
core_minor=Kisebb verzió
|
core_minor=Kisebb verzió
|
||||||
|
core_eoptionsboth=Címtárbeállítások : Az aktív opciók mindegyike címtárhoz beállítva vagy Összevonva a szülővel lehet, de nem mindkettő
|
||||||
core_fileowner=A fájltulajdonos megegyezik
|
core_fileowner=A fájltulajdonos megegyezik
|
||||||
core_filegroup=Csoportos tulajdonos mérkőzések
|
core_filegroup=Csoportos tulajdonos mérkőzések
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ core_eprotcols=Nessun protocollo selezionato!
|
|||||||
core_ecandoc=Non puoi utilizzare la radice del documento '$1'
|
core_ecandoc=Non puoi utilizzare la radice del documento '$1'
|
||||||
core_minor=Solo versione secondaria
|
core_minor=Solo versione secondaria
|
||||||
core_eerrordir=La directory per il file di registro degli errori non esiste
|
core_eerrordir=La directory per il file di registro degli errori non esiste
|
||||||
|
core_eoptionsboth=Opzioni directory: le opzioni attive devono essere tutte impostate per directory o unite con padre, ma non entrambe
|
||||||
core_fileowner=Corrispondenze del proprietario del file
|
core_fileowner=Corrispondenze del proprietario del file
|
||||||
core_filegroup=Partite del proprietario del gruppo
|
core_filegroup=Partite del proprietario del gruppo
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ core_protocols_h2=HTTP/2暗号化
|
|||||||
core_protocols_h2c=HTTP/2暗号化されていない
|
core_protocols_h2c=HTTP/2暗号化されていない
|
||||||
core_eprotcols=プロトコルが選択されていません!
|
core_eprotcols=プロトコルが選択されていません!
|
||||||
core_minor=マイナーバージョンのみ
|
core_minor=マイナーバージョンのみ
|
||||||
|
core_eoptionsboth=ディレクトリ オプション: アクティブなオプションはすべて、「ディレクトリに設定」または「親とマージ」のいずれかである必要がありますが、両方にすることはできません。
|
||||||
|
|
||||||
mod_proxy_seconds=秒
|
mod_proxy_seconds=秒
|
||||||
|
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ core_minor=부 버전 만
|
|||||||
core_maxxml=최대 XML 요청 본문 크기
|
core_maxxml=최대 XML 요청 본문 크기
|
||||||
core_exml=잘못된 XML 요청 본문 크기
|
core_exml=잘못된 XML 요청 본문 크기
|
||||||
core_eerrordir=오류 로그 파일의 디렉토리가 존재하지 않습니다
|
core_eerrordir=오류 로그 파일의 디렉토리가 존재하지 않습니다
|
||||||
|
core_eoptionsboth=디렉터리 옵션: 활성 옵션은 모두 디렉터리에 대해 설정 또는 상위 항목과 병합이어야 하지만 둘 다일 수는 없습니다
|
||||||
core_fileowner=파일 소유자 일치
|
core_fileowner=파일 소유자 일치
|
||||||
core_filegroup=그룹 소유자 일치
|
core_filegroup=그룹 소유자 일치
|
||||||
core_major=메이저 버전 만
|
core_major=메이저 버전 만
|
||||||
|
|||||||
@@ -501,6 +501,7 @@ core_actmod=Aktyvūs moduliai
|
|||||||
core_option=Pasirinkimas
|
core_option=Pasirinkimas
|
||||||
core_setdir=Nustatykite katalogą
|
core_setdir=Nustatykite katalogą
|
||||||
core_merge=Sujungti su tėvu
|
core_merge=Sujungti su tėvu
|
||||||
|
core_eoptionsboth=Katalogo parinktys : visos aktyvios parinktys turi būti nustatytos kaip katalogas arba sujungtos su pirminiu, bet ne abi
|
||||||
core_users=Tik šie vartotojai
|
core_users=Tik šie vartotojai
|
||||||
core_groups=Tik šios grupės
|
core_groups=Tik šios grupės
|
||||||
core_allusers=Visi tinkami vartotojai
|
core_allusers=Visi tinkami vartotojai
|
||||||
|
|||||||
@@ -501,6 +501,7 @@ core_actmod=Aktīvie moduļi
|
|||||||
core_option=Iespēja
|
core_option=Iespēja
|
||||||
core_setdir=Iestatīts direktorijam
|
core_setdir=Iestatīts direktorijam
|
||||||
core_merge=Apvienot ar vecāku
|
core_merge=Apvienot ar vecāku
|
||||||
|
core_eoptionsboth=Direktorija opcijas : visām aktīvajām opcijām ir jābūt iestatītām direktorijam vai sapludinātām ar vecāku, bet ne abām
|
||||||
core_users=Tikai šie lietotāji
|
core_users=Tikai šie lietotāji
|
||||||
core_groups=Tikai šīs grupas
|
core_groups=Tikai šīs grupas
|
||||||
core_allusers=Visi derīgi lietotāji
|
core_allusers=Visi derīgi lietotāji
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ core_protocols_http/2=HTTP/2
|
|||||||
core_protocols_h2=HTTP/2 disulitkan
|
core_protocols_h2=HTTP/2 disulitkan
|
||||||
core_protocols_h2c=HTTP/2 tidak disulitkan
|
core_protocols_h2c=HTTP/2 tidak disulitkan
|
||||||
core_eprotcols=Tiada protokol dipilih!
|
core_eprotcols=Tiada protokol dipilih!
|
||||||
|
core_eoptionsboth=Pilihan direktori : Pilihan aktif mestilah semua sama ada Tetapkan Untuk Direktori atau Digabungkan Dengan Induk, tetapi bukan kedua-duanya
|
||||||
|
|
||||||
mod_negotiation_cache=Dokumen-dokumen yang dirundingkan kandungan cache?
|
mod_negotiation_cache=Dokumen-dokumen yang dirundingkan kandungan cache?
|
||||||
mod_negotiation_pri=Keutamaan bahasa untuk pelbagai tontonan
|
mod_negotiation_pri=Keutamaan bahasa untuk pelbagai tontonan
|
||||||
|
|||||||
@@ -501,6 +501,7 @@ core_actmod=Moduli attivi
|
|||||||
core_option=Għażla
|
core_option=Għażla
|
||||||
core_setdir=Issettjat għad-direttorju
|
core_setdir=Issettjat għad-direttorju
|
||||||
core_merge=Tingħaqad mal-ġenitur
|
core_merge=Tingħaqad mal-ġenitur
|
||||||
|
core_eoptionsboth=Għażliet tad-Direttorju : L-għażliet attivi jridu jkunu kollha jew Issettjati Għal Direttorju jew Magħquda Mal-Ġenitur, iżda mhux it-tnejn
|
||||||
core_users=Dawn l-utenti biss
|
core_users=Dawn l-utenti biss
|
||||||
core_groups=Dawn il-gruppi biss
|
core_groups=Dawn il-gruppi biss
|
||||||
core_allusers=L-utenti validi kollha
|
core_allusers=L-utenti validi kollha
|
||||||
|
|||||||
@@ -14,3 +14,4 @@ core_protocols_http/2=HTTP/2
|
|||||||
core_protocols_h2=HTTP/2 versleuteld
|
core_protocols_h2=HTTP/2 versleuteld
|
||||||
core_protocols_h2c=HTTP/2 niet-versleuteld
|
core_protocols_h2c=HTTP/2 niet-versleuteld
|
||||||
core_eprotcols=Geen protocollen geselecteerd!
|
core_eprotcols=Geen protocollen geselecteerd!
|
||||||
|
core_eoptionsboth=Directory-opties: Actieve opties moeten allemaal Set For Directory of Merged With Parent zijn, maar niet beide
|
||||||
|
|||||||
@@ -5,3 +5,4 @@ core_protocols_http/2=HTTP/2
|
|||||||
core_protocols_h2=HTTP/2 kryptert
|
core_protocols_h2=HTTP/2 kryptert
|
||||||
core_protocols_h2c=HTTP/2 ukryptert
|
core_protocols_h2c=HTTP/2 ukryptert
|
||||||
core_eprotcols=Ingen protokoller valgt!
|
core_eprotcols=Ingen protokoller valgt!
|
||||||
|
core_eoptionsboth=Katalogalternativer : Alle aktive alternativer må enten være satt til katalog eller slått sammen med overordnet, men ikke begge
|
||||||
|
|||||||
@@ -9,3 +9,4 @@ core_protocols_http/2=HTTP/2
|
|||||||
core_protocols_h2=Szyfrowany HTTP/2
|
core_protocols_h2=Szyfrowany HTTP/2
|
||||||
core_protocols_h2c=HTTP/2 nieszyfrowany
|
core_protocols_h2c=HTTP/2 nieszyfrowany
|
||||||
core_eprotcols=Nie wybrano protokołów!
|
core_eprotcols=Nie wybrano protokołów!
|
||||||
|
core_eoptionsboth=Opcje katalogu: wszystkie aktywne opcje muszą być ustawione na katalog lub scalone z nadrzędnym, ale nie na jedno i drugie
|
||||||
|
|||||||
@@ -290,6 +290,7 @@ core_actmod=Módulos ativos
|
|||||||
core_option=Opção
|
core_option=Opção
|
||||||
core_setdir=Definido para o diretório
|
core_setdir=Definido para o diretório
|
||||||
core_merge=Mesclar com o pai
|
core_merge=Mesclar com o pai
|
||||||
|
core_eoptionsboth=Opções de diretório: as opções ativas devem ser todas definidas para o diretório ou mescladas com o pai, mas não ambas
|
||||||
core_users=Somente esses usuários
|
core_users=Somente esses usuários
|
||||||
core_groups=Somente esses grupos
|
core_groups=Somente esses grupos
|
||||||
core_allusers=Todos os usuários válidos
|
core_allusers=Todos os usuários válidos
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ core_protocols_h2=HTTP/2 criptografado
|
|||||||
core_protocols_h2c=HTTP/2 não criptografado
|
core_protocols_h2c=HTTP/2 não criptografado
|
||||||
core_eprotcols=Nenhum protocolo selecionado!
|
core_eprotcols=Nenhum protocolo selecionado!
|
||||||
core_minor=Apenas versão secundária
|
core_minor=Apenas versão secundária
|
||||||
|
core_eoptionsboth=Opções de diretório: as opções ativas devem ser todas definidas para o diretório ou mescladas com o pai, mas não ambas
|
||||||
|
|
||||||
mod_proxy_seconds=segundos
|
mod_proxy_seconds=segundos
|
||||||
|
|
||||||
|
|||||||
@@ -501,6 +501,7 @@ core_actmod=Module active
|
|||||||
core_option=Opțiune
|
core_option=Opțiune
|
||||||
core_setdir=Set pentru director
|
core_setdir=Set pentru director
|
||||||
core_merge=Unire cu părintele
|
core_merge=Unire cu părintele
|
||||||
|
core_eoptionsboth=Opțiuni de director : opțiunile active trebuie să fie toate fie Set for Directory sau Merged With Parent, dar nu ambele
|
||||||
core_users=Numai acești utilizatori
|
core_users=Numai acești utilizatori
|
||||||
core_groups=Numai aceste grupuri
|
core_groups=Numai aceste grupuri
|
||||||
core_allusers=Toți utilizatorii valabili
|
core_allusers=Toți utilizatorii valabili
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ core_protocols_h2=HTTP/2 зашифрованный
|
|||||||
core_protocols_h2c=HTTP/2 незашифрованный
|
core_protocols_h2c=HTTP/2 незашифрованный
|
||||||
core_eprotcols=Протоколы не выбраны!
|
core_eprotcols=Протоколы не выбраны!
|
||||||
core_ecandoc=Вы не можете использовать корневой каталог документа «$1»
|
core_ecandoc=Вы не можете использовать корневой каталог документа «$1»
|
||||||
|
core_eoptionsboth=Параметры каталога: все активные параметры должны быть либо «Установлено для каталога», либо «Объединено с родительским», но не оба одновременно
|
||||||
core_fileowner=Владелец файла соответствует
|
core_fileowner=Владелец файла соответствует
|
||||||
core_filegroup=Совпадения владельца группы
|
core_filegroup=Совпадения владельца группы
|
||||||
|
|
||||||
|
|||||||
@@ -501,6 +501,7 @@ core_actmod=Aktívne moduly
|
|||||||
core_option=voľba
|
core_option=voľba
|
||||||
core_setdir=Nastaviť pre adresár
|
core_setdir=Nastaviť pre adresár
|
||||||
core_merge=Zlúčiť s rodičom
|
core_merge=Zlúčiť s rodičom
|
||||||
|
core_eoptionsboth=Možnosti adresára: Všetky aktívne možnosti musia byť buď Nastaviť pre adresár alebo Zlúčiť s rodičom, ale nie oboje
|
||||||
core_users=Iba títo používatelia
|
core_users=Iba títo používatelia
|
||||||
core_groups=Iba tieto skupiny
|
core_groups=Iba tieto skupiny
|
||||||
core_allusers=Všetci platní používatelia
|
core_allusers=Všetci platní používatelia
|
||||||
|
|||||||
@@ -501,6 +501,7 @@ core_actmod=Aktivni moduli
|
|||||||
core_option=Možnost
|
core_option=Možnost
|
||||||
core_setdir=Nastavite za imenik
|
core_setdir=Nastavite za imenik
|
||||||
core_merge=Spojite se s staršem
|
core_merge=Spojite se s staršem
|
||||||
|
core_eoptionsboth=Možnosti imenika : vse aktivne možnosti morajo biti Nastavljene za imenik ali Združene z nadrejenim, ne pa oboje
|
||||||
core_users=Samo ti uporabniki
|
core_users=Samo ti uporabniki
|
||||||
core_groups=Samo te skupine
|
core_groups=Samo te skupine
|
||||||
core_allusers=Vsi veljavni uporabniki
|
core_allusers=Vsi veljavni uporabniki
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ core_protocols_h2=HTTP/2 krypterad
|
|||||||
core_protocols_h2c=HTTP/2 okrypterad
|
core_protocols_h2c=HTTP/2 okrypterad
|
||||||
core_eprotcols=Inga protokoll har valts!
|
core_eprotcols=Inga protokoll har valts!
|
||||||
core_minor=Endast mindre version
|
core_minor=Endast mindre version
|
||||||
|
core_eoptionsboth=Katalogalternativ : Alla aktiva alternativ måste antingen vara inställda för katalog eller sammanfogade med överordnade, men inte båda
|
||||||
|
|
||||||
mod_proxy_seconds=sekunder
|
mod_proxy_seconds=sekunder
|
||||||
|
|
||||||
|
|||||||
@@ -501,6 +501,7 @@ core_actmod=โมดูลที่ใช้งานอยู่
|
|||||||
core_option=ตัวเลือก
|
core_option=ตัวเลือก
|
||||||
core_setdir=ตั้งไว้สำหรับไดเรกทอรี
|
core_setdir=ตั้งไว้สำหรับไดเรกทอรี
|
||||||
core_merge=รวมกับผู้ปกครอง
|
core_merge=รวมกับผู้ปกครอง
|
||||||
|
core_eoptionsboth=ตัวเลือกไดเร็กทอรี : ตัวเลือกที่ใช้งานอยู่ทั้งหมดจะต้องตั้งค่าสำหรับไดเร็กทอรีหรือผสานกับพาเรนต์ แต่ไม่ใช่ทั้งสองอย่าง
|
||||||
core_users=เฉพาะผู้ใช้เหล่านี้
|
core_users=เฉพาะผู้ใช้เหล่านี้
|
||||||
core_groups=เฉพาะกลุ่มเหล่านี้
|
core_groups=เฉพาะกลุ่มเหล่านี้
|
||||||
core_allusers=ผู้ใช้ที่ถูกต้องทั้งหมด
|
core_allusers=ผู้ใช้ที่ถูกต้องทั้งหมด
|
||||||
|
|||||||
@@ -178,6 +178,7 @@ core_exml=Geçersiz XML isteği gövde boyutu
|
|||||||
core_sroot=Sunucu kökü
|
core_sroot=Sunucu kökü
|
||||||
core_eerrordir=Hata günlüğü dosyası dizini mevcut değil
|
core_eerrordir=Hata günlüğü dosyası dizini mevcut değil
|
||||||
core_merge=Üst öğe ile birleştir
|
core_merge=Üst öğe ile birleştir
|
||||||
|
core_eoptionsboth=Dizin seçenekleri : Etkin seçeneklerin tümü Dizin İçin Ayarla veya Üst Öğeyle Birleştirilmiş olmalıdır, ancak her ikisi birden olmamalıdır
|
||||||
core_fileowner=Dosya sahibi eşleşmeleri
|
core_fileowner=Dosya sahibi eşleşmeleri
|
||||||
core_filegroup=Grup sahibi eşleşmeleri
|
core_filegroup=Grup sahibi eşleşmeleri
|
||||||
core_product=Sadece ürün
|
core_product=Sadece ürün
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ core_eprotcols=Протоколи не вибрано!
|
|||||||
core_ecandoc=Вам не дозволяється використовувати корінь документа "$1"
|
core_ecandoc=Вам не дозволяється використовувати корінь документа "$1"
|
||||||
core_minor=Тільки незначна версія
|
core_minor=Тільки незначна версія
|
||||||
core_eerrordir=Каталог файлу журналу помилок не існує
|
core_eerrordir=Каталог файлу журналу помилок не існує
|
||||||
|
core_eoptionsboth=Параметри каталогу: усі активні параметри мають бути або встановлені для каталогу, або об’єднані з батьківським, але не обидва
|
||||||
core_fileowner=Власник файлу відповідає
|
core_fileowner=Власник файлу відповідає
|
||||||
core_filegroup=Матчі власників групи
|
core_filegroup=Матчі власників групи
|
||||||
core_major=Тільки основна версія
|
core_major=Тільки основна версія
|
||||||
|
|||||||
@@ -501,6 +501,7 @@ core_actmod=فعال ماڈیولز
|
|||||||
core_option=آپشن
|
core_option=آپشن
|
||||||
core_setdir=ڈائریکٹری کے لئے مقرر کریں
|
core_setdir=ڈائریکٹری کے لئے مقرر کریں
|
||||||
core_merge=والدین کے ساتھ ضم کریں
|
core_merge=والدین کے ساتھ ضم کریں
|
||||||
|
core_eoptionsboth=ڈائرکٹری کے اختیارات: فعال اختیارات تمام یا تو ڈائرکٹری کے لیے سیٹ ہونے چاہئیں یا والدین کے ساتھ ضم ہونے چاہئیں، لیکن دونوں نہیں۔
|
||||||
core_users=صرف یہ صارفین
|
core_users=صرف یہ صارفین
|
||||||
core_groups=صرف یہ گروہ
|
core_groups=صرف یہ گروہ
|
||||||
core_allusers=تمام درست استعمال کنندہ
|
core_allusers=تمام درست استعمال کنندہ
|
||||||
|
|||||||
@@ -501,6 +501,7 @@ core_actmod=Các mô-đun hoạt động
|
|||||||
core_option=Lựa chọn
|
core_option=Lựa chọn
|
||||||
core_setdir=Đặt cho thư mục
|
core_setdir=Đặt cho thư mục
|
||||||
core_merge=Hợp nhất với cha mẹ
|
core_merge=Hợp nhất với cha mẹ
|
||||||
|
core_eoptionsboth=Tùy chọn thư mục : Tất cả các tùy chọn hoạt động phải là Set For Directory hoặc Merged With Parent, nhưng không được cả hai
|
||||||
core_users=Chỉ những người dùng này
|
core_users=Chỉ những người dùng này
|
||||||
core_groups=Chỉ những nhóm này
|
core_groups=Chỉ những nhóm này
|
||||||
core_allusers=Tất cả người dùng hợp lệ
|
core_allusers=Tất cả người dùng hợp lệ
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ core_eprotcols=未选择任何协议!
|
|||||||
core_ecandoc=不允许使用文档根目录'$1'
|
core_ecandoc=不允许使用文档根目录'$1'
|
||||||
core_minor=仅次要版本
|
core_minor=仅次要版本
|
||||||
core_eerrordir=错误日志文件目录不存在
|
core_eerrordir=错误日志文件目录不存在
|
||||||
|
core_eoptionsboth=目录选项:活动选项必须全部为“为目录设置”或“与父级合并”,但不能同时为两者
|
||||||
core_fileowner=文件所有者匹配
|
core_fileowner=文件所有者匹配
|
||||||
core_filegroup=群组拥有者比赛
|
core_filegroup=群组拥有者比赛
|
||||||
|
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ core_protocols_h2c=HTTP/2 未加密
|
|||||||
core_eprotcols=未選擇任何協議!
|
core_eprotcols=未選擇任何協議!
|
||||||
core_ecandoc=不允許使用文檔根目錄'$1'
|
core_ecandoc=不允許使用文檔根目錄'$1'
|
||||||
core_minor=僅次要版本
|
core_minor=僅次要版本
|
||||||
|
core_eoptionsboth=目錄選項:活動選項必須全部為“設定目錄”或“與父級合併”,但不能同時為兩者
|
||||||
core_fileowner=文件所有者匹配
|
core_fileowner=文件所有者匹配
|
||||||
core_filegroup=群組擁有者比賽
|
core_filegroup=群組擁有者比賽
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ $rv = [ [ 'ProxyRequests', 0, 13, 'virtual', undef, 11 ],
|
|||||||
[ 'ProxyMaxForwards', 0, 13, 'virtual', 2.0 ],
|
[ 'ProxyMaxForwards', 0, 13, 'virtual', 2.0 ],
|
||||||
[ 'ProxyPreserveHost', 0, 13, 'virtual', 2.031 ],
|
[ 'ProxyPreserveHost', 0, 13, 'virtual', 2.031 ],
|
||||||
[ 'ProxyTimeout', 0, 13, 'virtual', 2.031 ],
|
[ 'ProxyTimeout', 0, 13, 'virtual', 2.031 ],
|
||||||
|
[ 'ProxyPreserveHost', 0, 13, 'virtual', 2.3 ],
|
||||||
[ 'ProxyVia', 0, 13, 'virtual', 2.0 ] ];
|
[ 'ProxyVia', 0, 13, 'virtual', 2.0 ] ];
|
||||||
return &make_directives($rv, $_[0], "mod_proxy");
|
return &make_directives($rv, $_[0], "mod_proxy");
|
||||||
}
|
}
|
||||||
@@ -291,7 +292,16 @@ sub save_ProxyVia
|
|||||||
return &parse_choice("ProxyVia", "");
|
return &parse_choice("ProxyVia", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub edit_ProxyPreserveHost
|
||||||
|
{
|
||||||
|
return (1, $text{'mod_proxy_preserve'},
|
||||||
|
&choice_input($_[0]->{'value'}, "ProxyPreserveHost", "",
|
||||||
|
"$text{'yes'},on", "$text{'no'},off", "$text{'default'},"));
|
||||||
|
}
|
||||||
|
sub save_ProxyPreserveHost
|
||||||
|
{
|
||||||
|
return &parse_choice("ProxyPreserveHost", "");
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ sub edit_SuexecUserGroup
|
|||||||
local $rv;
|
local $rv;
|
||||||
$rv .= sprintf "<input type=radio name=SuexecUserGroup_def value=1 %s> %s\n",
|
$rv .= sprintf "<input type=radio name=SuexecUserGroup_def value=1 %s> %s\n",
|
||||||
$_[0] ? "" : "checked", $text{'suexec_none'};
|
$_[0] ? "" : "checked", $text{'suexec_none'};
|
||||||
|
$rv .= &ui_newline();
|
||||||
$rv .= sprintf "<input type=radio name=SuexecUserGroup_def value=0 %s>\n",
|
$rv .= sprintf "<input type=radio name=SuexecUserGroup_def value=0 %s>\n",
|
||||||
$_[0] ? "checked" : "";
|
$_[0] ? "checked" : "";
|
||||||
$rv .= sprintf "%s <input name=SuexecUserGroup_u size=8 value='%s'> %s\n",
|
$rv .= sprintf "%s <input name=SuexecUserGroup_u size=8 value='%s'> %s\n",
|
||||||
|
|||||||
@@ -99,9 +99,7 @@ print &ui_table_row($text{'index_time'},
|
|||||||
&ui_textbox("hour", undef, 2).":".&ui_textbox("min", "00", 2));
|
&ui_textbox("hour", undef, 2).":".&ui_textbox("min", "00", 2));
|
||||||
|
|
||||||
# Current date and time
|
# Current date and time
|
||||||
my ($date, $time) = split(/\s+/, &make_date(time()));
|
print &ui_table_row($text{'index_cdatetime'}, &make_date(time()));
|
||||||
print &ui_table_row($text{'index_cdate'}, $date);
|
|
||||||
print &ui_table_row($text{'index_ctime'}, $time);
|
|
||||||
|
|
||||||
# Run in directory
|
# Run in directory
|
||||||
print &ui_table_row($text{'index_dir'},
|
print &ui_table_row($text{'index_dir'},
|
||||||
|
|||||||
@@ -10,8 +10,7 @@ index_exec=Run at
|
|||||||
index_created=Created on
|
index_created=Created on
|
||||||
index_dir=Run in directory
|
index_dir=Run in directory
|
||||||
index_return=commands list
|
index_return=commands list
|
||||||
index_cdate=Current date
|
index_cdatetime=Current date and time
|
||||||
index_ctime=Current time
|
|
||||||
index_allow=Allowed scheduled command users
|
index_allow=Allowed scheduled command users
|
||||||
index_amode=Users to allow
|
index_amode=Users to allow
|
||||||
index_amode0=All Unix users
|
index_amode0=All Unix users
|
||||||
|
|||||||
@@ -159,7 +159,9 @@ $rv .= "<table id='show_backup_destination' cellpadding=1 cellspacing=0>";
|
|||||||
# Local file field
|
# Local file field
|
||||||
$rv .= "<tr><td>".&ui_oneradio("$_[0]_mode", 0, undef, $mode == 0)."</td>\n";
|
$rv .= "<tr><td>".&ui_oneradio("$_[0]_mode", 0, undef, $mode == 0)."</td>\n";
|
||||||
$rv .= "<td>$text{'backup_mode0'} </td><td colspan='3'>".
|
$rv .= "<td>$text{'backup_mode0'} </td><td colspan='3'>".
|
||||||
&ui_textbox("$_[0]_file", $mode == 0 ? $path : "", 60).
|
&ui_textbox("$_[0]_file", $mode == 0 ? $path : "", 60, undef, undef,
|
||||||
|
($_[2] != 1 && $config{'date_subs'}) ?
|
||||||
|
'placeholder="/backups/configs-%y-%m-%d-%H-%M-%S.tar.gz"' : undef).
|
||||||
" ".&file_chooser_button("$_[0]_file")."</td> </tr>\n";
|
" ".&file_chooser_button("$_[0]_file")."</td> </tr>\n";
|
||||||
|
|
||||||
# FTP file fields
|
# FTP file fields
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
date_subs=0
|
date_subs=1
|
||||||
webmin_subs=0
|
webmin_subs=0
|
||||||
apply=1
|
apply=1
|
||||||
|
|||||||
@@ -48,13 +48,12 @@ if (@backups) {
|
|||||||
print &ui_columns_end();
|
print &ui_columns_end();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
print "<b>$text{'index_none'}</b><p>\n";
|
print "<strong>$text{'index_none'}</strong><br>\n";
|
||||||
}
|
}
|
||||||
print &ui_link("edit.cgi?new=1", $text{'index_add'});
|
print &ui_link("edit.cgi?new=1", $text{'index_add'});
|
||||||
print "<p>\n";
|
print "\n";
|
||||||
if ($using_strftime && !$config{'date_subs'}) {
|
if ($using_strftime && !$config{'date_subs'}) {
|
||||||
print "<font color=#ff0000><b>$text{'index_nostrftime'}",
|
print &ui_alert_box($text{'index_nostrftime'}, 'warn'),"\n";
|
||||||
"</b></font><p>\n";
|
|
||||||
}
|
}
|
||||||
print &ui_tabs_end_tab();
|
print &ui_tabs_end_tab();
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ index_now2=Restore Now
|
|||||||
index_apply=Apply configurations?
|
index_apply=Apply configurations?
|
||||||
index_test=Just show what will be restored?
|
index_test=Just show what will be restored?
|
||||||
index_jobs=Scheduled Backups
|
index_jobs=Scheduled Backups
|
||||||
index_nostrftime=Warning - some backup jobs use % in their filenames, but strftime substitution is not enabled on the Module Config page.
|
index_nostrftime=Some backup jobs use % in their filenames, but strftime substitution is not enabled on the Module Config page.
|
||||||
index_tabsched=Scheduled backups
|
index_tabsched=Scheduled backups
|
||||||
index_tabbackup=Backup now
|
index_tabbackup=Backup now
|
||||||
index_tabrestore=Restore now
|
index_tabrestore=Restore now
|
||||||
@@ -74,7 +74,7 @@ backup_eserver2=Missing or invalid SSH server
|
|||||||
backup_epath=Missing or invalid absolute path on FTP server
|
backup_epath=Missing or invalid absolute path on FTP server
|
||||||
backup_epath2=Missing or invalid absolute path on SSH server
|
backup_epath2=Missing or invalid absolute path on SSH server
|
||||||
backup_euser=Invalid characters in FTP server login
|
backup_euser=Invalid characters in FTP server login
|
||||||
backup_epass=Invalid characters in FTP server password
|
backup_epass=Invalid characters in FTP server password - @, : and / cannot be used
|
||||||
backup_eport=Missing or invalid FTP server port
|
backup_eport=Missing or invalid FTP server port
|
||||||
backup_esport=Missing or invalid SSH server port
|
backup_esport=Missing or invalid SSH server port
|
||||||
backup_emods=No modules selected
|
backup_emods=No modules selected
|
||||||
|
|||||||
@@ -1,79 +1,79 @@
|
|||||||
index_echeck=$1 Forse non è installato oppure la <a href='$2'>configurazione del modulo</a> non è corretta.
|
index_echeck=$1 Forse non è installato oppure la <a href='$2'>configurazione del modulo</a> non è corretta.
|
||||||
index_edb=Impossibile connettersi al database Bacula: $1 Forse non è impostato o la <a href='$2'>configurazione del modulo</a> non è corretta.
|
index_edb=Impossibile connettersi al database di Bacula: $1 Forse non è impostato o la <a href='$2'>configurazione del modulo</a> non è corretta.
|
||||||
index_eng=Impossibile connettersi al database dei gruppi Bacula: $1. Forse non esiste o la <a href='$2'>configurazione del modulo</a> non è corretta.
|
index_eng=Impossibile connettersi al database dei gruppi di Bacula: $1. Forse non esiste o la <a href='$2'>configurazione del modulo</a> non è corretta.
|
||||||
index_econsole=Il comando della console Bacula $1 non è riuscito a comunicare con il direttore Bacula. Assicurati che la password in $2 sia corretta.
|
index_econsole=Il comando della console Bacula $1 non è riuscito a comunicare con il Director Bacula. Assicurati che la password in $2 sia corretta.
|
||||||
index_econsole2=Il comando della console Bacula $1 non è configurato con un host del regista Bacula valido. Attualmente utilizza $2, che non esiste.
|
index_econsole2=Il comando della console Bacula $1 non è configurato con un host del Director Bacula valido. Attualmente utilizza $2, che non esiste.
|
||||||
index_fixpass=Fai clic qui per correggere la password della console
|
index_fixpass=Fai clic qui per correggere la password della console
|
||||||
index_fixaddr=Fai clic qui per correggere l'host Director di Bacula
|
index_fixaddr=Fai clic qui per correggere l'host del Director di Bacula
|
||||||
index_stop=Ferma Bacula
|
index_stop=Ferma Bacula
|
||||||
index_stopdesc=Fare clic su questo pulsante per chiudere i processi del demone Bacula sopra elencati.
|
index_stopdesc=Fare clic su questo pulsante per chiudere i processi Bacula sopra elencati.
|
||||||
index_start=Inizia Bacula
|
index_start=Avvia Bacula
|
||||||
index_startdesc=Fare clic su questo pulsante per avviare i processi del demone Bacula sopra elencati.
|
index_startdesc=Fare clic su questo pulsante per avviare i processi Bacula sopra elencati.
|
||||||
index_restart=Riavvia Bacula
|
index_restart=Riavvia Bacula
|
||||||
index_restartdesc=Fare clic su questo pulsante per interrompere e riavviare i processi del demone Bacula sopra elencati. Ciò può essere necessario per attivare le configurazioni del dispositivo di archiviazione.
|
index_restartdesc=Fare clic su questo pulsante per interrompere e riavviare i processi Bacula sopra elencati. Ciò può essere necessario per attivare le configurazioni del dispositivo di archiviazione.
|
||||||
index_apply=Applica configurazione
|
index_apply=Applica configurazione
|
||||||
index_applydesc=Fare clic su questo pulsante per attivare la configurazione del regista Bacula mostrata sopra.
|
index_applydesc=Fare clic su questo pulsante per attivare la configurazione del Director Bacula mostrata sopra.
|
||||||
index_boot=Inizia all'avvio
|
index_boot=Avvia con il sistema
|
||||||
index_bootdesc=Modifica questa opzione per controllare se Bacula viene avviato o meno all'avvio del sistema.
|
index_bootdesc=Modifica questa opzione per controllare se Bacula viene avviato o meno all'avvio del sistema.
|
||||||
index_status=Stati del processo:
|
index_status=Stati del processo:
|
||||||
index_up=Su
|
index_up=Attivo
|
||||||
index_down=Giù
|
index_down=Fermo
|
||||||
index_return=indice del modulo
|
index_return=indice del modulo
|
||||||
index_versionbacula=Bacula $1
|
index_versionbacula=Bacula $1
|
||||||
index_versionbareos=Bareos $1
|
index_versionbareos=Bareos $1
|
||||||
index_notrun=I backup e altre operazioni non possono essere eseguiti poiché il daemon di Bacula Directory non è attivo.
|
index_notrun=I backup e altre operazioni non possono essere eseguiti poiché il Director di Bacula non è attivo.
|
||||||
index_eversion=Il tuo sistema utilizza Bacula versione $2, ma questo modulo Webmin supporta solo le versioni $1 e successive.
|
index_eversion=Il tuo sistema utilizza Bacula versione $2, ma questo modulo Webmin supporta solo le versioni $1 e successive.
|
||||||
index_dir=Director Director
|
index_dir=Configurazione Director
|
||||||
index_sd=Configurazione del daemon di archiviazione
|
index_sd=Configurazione dello Storage daemon
|
||||||
index_fd=Configurazione del daemon di file
|
index_fd=Configurazione del File daemon
|
||||||
index_groups=Configurazione del gruppo Bacula
|
index_groups=Configurazione del gruppo Bacula
|
||||||
index_actions=Azioni di backup e ripristino
|
index_actions=Azioni di backup e ripristino
|
||||||
index_ocmin=Contributo di <a href=$2 target=_new>Linmin</a> </a>
|
index_ocmin=Contributo di <a href=$2 target=_new>Linmin</a> </a>
|
||||||
|
|
||||||
connect_emysql=Impossibile caricare il driver DBI del database $1
|
connect_emysql=Impossibile caricare il driver DBI del database $1
|
||||||
connect_elogin=Impossibile accedere al database $1:$2.
|
connect_elogin=Impossibile accedere al database $1: $2.
|
||||||
connect_equery=Il database $1 non sembra contenere tabelle Bacula.
|
connect_equery=Il database $1 non sembra contenere tabelle Bacula.
|
||||||
connect_equery2=Ciò può essere dovuto al fatto che il modulo SQLite Perl installato è troppo nuovo e non supporta il vecchio formato di database SQLite utilizzato da Bacula.
|
connect_equery2=Ciò può essere dovuto al fatto che il modulo SQLite Perl installato è troppo nuovo e non supporta il vecchio formato di database SQLite utilizzato da Bacula.
|
||||||
connect_equery3=Il database $1 non sembra contenere tabelle di gruppo OC Bacula.
|
connect_equery3=Il database $1 non sembra contenere tabelle di gruppo OC Bacula.
|
||||||
esql=Errore SQL : $1
|
esql=Errore SQL: $1
|
||||||
|
|
||||||
check_edir=La directory di configurazione Bacula $1 non è stata trovata sul tuo sistema.
|
check_edir=La directory di configurazione Bacula $1 non è stata trovata sul tuo sistema.
|
||||||
check_ebacula=Il comando di controllo Bacula $1 non è stato trovato.
|
check_ebacula=Il comando di controllo Bacula $1 non è stato trovato.
|
||||||
check_econsole=Il comando della console Bacula $1 non è stato trovato.
|
check_econsole=Il comando della console Bacula $1 non è stato trovato.
|
||||||
check_edirector=Il file di configurazione del direttore Bacula $1 non è stato trovato.
|
check_edirector=Il file di configurazione del Director Bacula $1 non è stato trovato.
|
||||||
check_eclient=Questo sistema sembra essere un <a href='$2'>client Bacula</a> piuttosto che un regista.
|
check_eclient=Questo sistema sembra essere un <a href='$2'>client Bacula</a> piuttosto che un Director.
|
||||||
check_econfigs=Nessun file di configurazione Bacula trovato in $1
|
check_econfigs=Nessun file di configurazione Bacula trovato in $1
|
||||||
check_eservers=Nessun gruppo di server Webmin è stato definito
|
check_eservers=Nessun gruppo di server Webmin è stato definito
|
||||||
check_engmod=Il modulo dei gruppi Bacula OpenCountry non è installato
|
check_engmod=Il modulo dei gruppi Bacula OpenCountry non è installato
|
||||||
|
|
||||||
proc_bacula-sd=Demone di archiviazione
|
proc_bacula-sd=Storage daemon
|
||||||
proc_bacula-fd=Demone di file
|
proc_bacula-fd=File daemon
|
||||||
proc_bacula-dir=Demone di Bacula Director
|
proc_bacula-dir=Bacula Director
|
||||||
proc_bareos-sd=Demone di archiviazione
|
proc_bareos-sd=Storage daemon
|
||||||
proc_bareos-fd=Demone di file
|
proc_bareos-fd=File daemon
|
||||||
proc_bareos-dir=Demone di Bacula Director
|
proc_bareos-dir=Bacula Director
|
||||||
|
|
||||||
stop_err=Impossibile arrestare Bacula
|
stop_err=Impossibile arrestare Bacula
|
||||||
start_err=Impossibile avviare Bacula
|
start_err=Impossibile avviare Bacula
|
||||||
start_einit=Nessuno script init trovato per $1
|
start_einit=Nessuno script init trovato per $1
|
||||||
start_erun=Impossibile avviare $1 : $2
|
start_erun=Impossibile avviare $1: $2
|
||||||
restart_err=Impossibile riavviare Bacula
|
restart_err=Impossibile riavviare Bacula
|
||||||
apply_err=Impossibile applicare la configurazione
|
apply_err=Impossibile applicare la configurazione
|
||||||
apply_failed=È stato rilevato un errore di configurazione
|
apply_failed=È stato rilevato un errore di configurazione
|
||||||
apply_problem=Impossibile applicare la configurazione : $1
|
apply_problem=Impossibile applicare la configurazione: $1
|
||||||
|
|
||||||
jobs_title=Processi di backup
|
jobs_title=Processi di backup
|
||||||
jobs_none=Nessun processo di backup è stato ancora definito.
|
jobs_none=Nessun processo di backup è stata ancora definita.
|
||||||
jobs_name=Nome del lavoro
|
jobs_name=Nome del processo
|
||||||
jobs_deftype=Impostazioni predefinite?
|
jobs_deftype=Impostazioni predefinite?
|
||||||
jobs_type=Tipo di lavoro
|
jobs_type=Tipo di processo
|
||||||
jobs_client=Client per il backup
|
jobs_client=Client di backup
|
||||||
jobs_fileset=File impostato su backup
|
jobs_fileset=Insieme di file di backup
|
||||||
jobs_schedule=Pianificazione del backup
|
jobs_schedule=Pianificazione del processo
|
||||||
jobs_add=Aggiungi un nuovo processo di backup.
|
jobs_add=Aggiungi un nuovo processo di backup.
|
||||||
jobs_delete=Elimina lavori selezionati
|
jobs_delete=Elimina processi selezionati
|
||||||
jobs_return=elenco di lavori
|
jobs_return=lista di processi
|
||||||
jobs_derr=Impossibile eliminare i lavori
|
jobs_derr=Impossibile eliminare i processi.
|
||||||
|
|
||||||
filesets_title=Set di file
|
filesets_title=Set di file
|
||||||
filesets_none=Nessun set di file di backup è stato ancora definito.
|
filesets_none=Nessun set di file di backup è stato ancora definito.
|
||||||
@@ -83,48 +83,48 @@ filesets_add=Aggiungi un nuovo set di file di backup.
|
|||||||
filesets_delete=Elimina set di file selezionati
|
filesets_delete=Elimina set di file selezionati
|
||||||
filesets_return=elenco di set di file
|
filesets_return=elenco di set di file
|
||||||
filesets_derr=Impossibile eliminare i set di file
|
filesets_derr=Impossibile eliminare i set di file
|
||||||
filesets_ednone=Nessuno selezionato
|
filesets_ednone=Nessuna selezione
|
||||||
|
|
||||||
fileset_title1=Crea set di file
|
fileset_title1=Crea set di file
|
||||||
fileset_title2=Modifica set di file
|
fileset_title2=Modifica set di file
|
||||||
fileset_header=Dettagli del set di file di backup
|
fileset_header=Dettagli del set di file di backup
|
||||||
fileset_egone=Il set di file non esiste più!
|
fileset_egone=Il set di file non esiste più!
|
||||||
fileset_name=Nome set file
|
fileset_name=Nome set file
|
||||||
fileset_include=File e directory per il backup
|
fileset_include=File e directory da archiviare
|
||||||
fileset_exclude=File e directory da saltare
|
fileset_exclude=File e directory da saltare
|
||||||
fileset_sig=Tipo di firma del file
|
fileset_sig=Funzione di hash dei file
|
||||||
fileset_none=Nessuna
|
fileset_none=Nessuna
|
||||||
fileset_md5=MD5
|
fileset_md5=MD5
|
||||||
fileset_err=Impossibile salvare il set di file
|
fileset_err=Impossibile salvare il set di file
|
||||||
fileset_ename=Nome set file mancante
|
fileset_ename=Nome set file mancante
|
||||||
fileset_eclash=Un file impostato con lo stesso nome esiste già
|
fileset_eclash=Un set di file con lo stesso nome esiste già
|
||||||
fileset_echild=Questo set di file non può essere eliminato in quanto utilizzato da $1
|
fileset_echild=Questo set di file non può essere eliminato in quanto utilizzato da $1
|
||||||
fileset_comp=Tipo di compressione
|
fileset_comp=Tipo di compressione
|
||||||
fileset_gzipdef=<Livello di compressione predefinito>
|
fileset_gzipdef=<Livello di compressione predefinito>
|
||||||
fileset_lzo=Compressione LZO
|
fileset_lzo=Compressione LZO
|
||||||
fileset_gzip=Livello Gzip $1
|
fileset_gzip=Gzip livello $1
|
||||||
fileset_onefs=Limitare il backup a un file system?
|
fileset_onefs=Limitare il backup a un file system?
|
||||||
|
|
||||||
clients_title=Client di backup
|
clients_title=Client di backup
|
||||||
clients_none=Nessun client di backup è stato ancora definito.
|
clients_none=Nessun client di backup è stato ancora definito.
|
||||||
clients_name=Nome del cliente
|
clients_name=Nome del client
|
||||||
clients_address=Nome host o indirizzo
|
clients_address=Nome host o indirizzo
|
||||||
clients_catalog=Catalogare
|
clients_catalog=Catalogo
|
||||||
clients_add=Aggiungi un nuovo client di backup.
|
clients_add=Aggiungi un nuovo client di backup.
|
||||||
clients_delete=Elimina i clienti selezionati
|
clients_delete=Elimina i client selezionati
|
||||||
clients_return=elenco dei clienti
|
clients_return=elenco dei client
|
||||||
clients_derr=Impossibile eliminare i client
|
clients_derr=Impossibile eliminare i client
|
||||||
|
|
||||||
client_title1=Crea client di backup
|
client_title1=Crea client di backup
|
||||||
client_title2=Modifica client di backup
|
client_title2=Modifica client di backup
|
||||||
client_header=Dettagli del client di cui eseguire il backup
|
client_header=Dettagli del client di cui eseguire il backup
|
||||||
client_egone=Il client non esiste più!
|
client_egone=Il client non esiste più!
|
||||||
client_name=Nome FD client
|
client_name=Nome FD del client
|
||||||
client_address=Nome host o indirizzo IP
|
client_address=Nome host o indirizzo IP
|
||||||
client_port=Porta Bacula FD
|
client_port=Porta Bacula FD
|
||||||
client_pass=Password Bacula FD
|
client_pass=Password Bacula FD
|
||||||
client_catalog=Catalogo da usare
|
client_catalog=Catalogo da usare
|
||||||
client_prune=Eliminare lavori e file scaduti?
|
client_prune=Eliminare processi e file scaduti?
|
||||||
client_fileret=Conserva i file di backup per
|
client_fileret=Conserva i file di backup per
|
||||||
client_jobret=Mantieni processi di backup per
|
client_jobret=Mantieni processi di backup per
|
||||||
client_err=Impossibile salvare il client di backup
|
client_err=Impossibile salvare il client di backup
|
||||||
@@ -134,7 +134,7 @@ client_epass=Password mancante
|
|||||||
client_eaddress=Nome host o indirizzo mancante o non valido
|
client_eaddress=Nome host o indirizzo mancante o non valido
|
||||||
client_eport=Porta FD mancante o non valida
|
client_eport=Porta FD mancante o non valida
|
||||||
client_efileret=Periodo di conservazione dei file mancante o non valido
|
client_efileret=Periodo di conservazione dei file mancante o non valido
|
||||||
client_ejobret=Periodo di conservazione del lavoro mancante o non valido
|
client_ejobret=Periodo di conservazione del processo mancante o non valido
|
||||||
client_echild=Questo client non può essere eliminato in quanto utilizzato da $1
|
client_echild=Questo client non può essere eliminato in quanto utilizzato da $1
|
||||||
client_status=Mostra stato
|
client_status=Mostra stato
|
||||||
|
|
||||||
@@ -144,137 +144,137 @@ job_header=Dettagli del processo di backup
|
|||||||
job_name=Nome del processo di backup
|
job_name=Nome del processo di backup
|
||||||
job_enabled=Processo di backup abilitato?
|
job_enabled=Processo di backup abilitato?
|
||||||
job_def=Tipo predefinito
|
job_def=Tipo predefinito
|
||||||
job_def0=Decisione predefinita
|
job_def0=Definizione predefinita
|
||||||
job_def1=Lavoro autonomo
|
job_def1=Processo isolato
|
||||||
job_def2=Eredita valori predefiniti da $1
|
job_def2=Eredita valori predefiniti da $1
|
||||||
job_type=Tipo di lavoro
|
job_type=Tipo di processo
|
||||||
job_level=Livello di backup
|
job_level=Livello di backup
|
||||||
job_client=Client per il backup
|
job_client=Client per il backup
|
||||||
job_fileset=File impostato su backup
|
job_fileset=Set di file per il backup
|
||||||
job_schedule=Backup nei tempi previsti
|
job_schedule=Pianificazione processo
|
||||||
job_storage=Dispositivo di archiviazione di destinazione
|
job_storage=Storage daemon di destinazione
|
||||||
job_pool=Pool di volumi
|
job_pool=Pool di volumi
|
||||||
job_messages=Destinazione per i messaggi
|
job_messages=Destinazione per i messaggi
|
||||||
job_prority=Priorità di backup
|
job_prority=Priorità di backup
|
||||||
job_err=Impossibile salvare il processo di backup
|
job_err=Impossibile salvare il processo di backup
|
||||||
job_ename=Nome lavoro mancante o non valido
|
job_ename=Nome processo mancante o non valido
|
||||||
job_eclash=Esiste già un lavoro con lo stesso nome
|
job_eclash=Esiste già un processo con lo stesso nome
|
||||||
job_epriority=Numero di priorità mancante o non valido
|
job_epriority=Numero di priorità mancante o non valido
|
||||||
job_echild=Questa definizione di lavoro predefinita non può essere eliminata poiché utilizzata da $1
|
job_echild=Questa definizione predefinita di processo non può essere eliminata poiché utilizzata da $1
|
||||||
job_run=Corri adesso
|
job_run=Esegui ora
|
||||||
job_before=Comando prima del lavoro
|
job_before=Comando prima del processo
|
||||||
job_after=Comando dopo il lavoro
|
job_after=Comando dopo il processo
|
||||||
job_cbefore=Comando prima del lavoro (sul client)
|
job_cbefore=Comando prima del processo (sul client)
|
||||||
job_cafter=Comando dopo processo (sul client)
|
job_cafter=Comando dopo il processo (sul client)
|
||||||
|
|
||||||
schedules_title=Pianificazioni di backup
|
schedules_title=Pianificazioni di backup
|
||||||
schedules_none=Nessuna pianificazione di backup è stata ancora definita.
|
schedules_none=Nessuna pianificazione è stata ancora definita.
|
||||||
schedules_name=Nome programma
|
schedules_name=Nome pianifications
|
||||||
schedules_sched=Esegui livelli e tempi
|
schedules_sched=Livelli e pianificazioni di esecuzione
|
||||||
schedules_add=Aggiungi una nuova pianificazione del backup.
|
schedules_add=Aggiungi una nuova pianificazione del backup.
|
||||||
schedules_delete=Elimina i programmi selezionati
|
schedules_delete=Elimina le pianificazioni selezionate
|
||||||
schedules_return=elenco di programmi
|
schedules_return=elenco di pianificazioni
|
||||||
schedules_derr=Impossibile eliminare le pianificazioni
|
schedules_derr=Impossibile eliminare le pianificazioni
|
||||||
|
|
||||||
schedule_title1=Crea programma di backup
|
schedule_title1=Crea pianificazione di backup
|
||||||
schedule_title2=Modifica pianificazione backup
|
schedule_title2=Modifica pianificazione backup
|
||||||
schedule_header=Dettagli sulla pianificazione del backup
|
schedule_header=Dettagli sulla pianificazione del backup
|
||||||
schedule_name=Nome pianificazione backup
|
schedule_name=Nome pianificazione backup
|
||||||
schedule_runs=Esegui livelli e tempi
|
schedule_runs=Livelli e pianificazioni di esecuzione
|
||||||
schedule_level=Livello di backup
|
schedule_level=Livello di backup
|
||||||
schedule_pool=Volume
|
schedule_pool=Volume
|
||||||
schedule_times=Corri a volte
|
schedule_times=Orari di esecuzione
|
||||||
schedule_err=Impossibile salvare la pianificazione del backup
|
schedule_err=Impossibile salvare la pianificazione del backup
|
||||||
schedule_ename=Nome programma mancante o non valido
|
schedule_ename=Nome pianificazione mancante o non valido
|
||||||
schedule_eclash=Esiste già un programma con lo stesso nome
|
schedule_eclash=Esiste già una pianificazione con lo stesso nome
|
||||||
schedule_etimes=Tempi di backup mancanti nella riga $1
|
schedule_etimes=Orari di esecuzione mancanti nella riga $1
|
||||||
schedule_echild=Questa pianificazione non può essere eliminata in quanto utilizzata da $1
|
schedule_echild=Questa pianificazione non può essere eliminata in quanto utilizzata da $1
|
||||||
|
|
||||||
backup_title=Esegui processo di backup
|
backup_title=Esegui processo di backup
|
||||||
backup_header=Dettagli del processo di backup
|
backup_header=Dettagli del processo di backup
|
||||||
backup_job=Lavoro da eseguire
|
backup_job=Processo da eseguire
|
||||||
backup_jd=$1 (set di file $2 su $3)
|
backup_jd=$1 (set di file $2 su $3)
|
||||||
backup_wait=Aspetta i risultati?
|
backup_wait=Aspetta i risultati?
|
||||||
backup_ok=Esegui il backup ora
|
backup_ok=Esegui il backup ora
|
||||||
backup_run=Avvio del processo di backup $1 ..
|
backup_run=Avvio del processo di backup $1 ..
|
||||||
backup_return=modulo di backup
|
backup_return=modulo di backup
|
||||||
backup_ejob=.. non è riuscito a trovare lavoro!
|
backup_ejob=.. processo non trovato!
|
||||||
backup_eok=.. impossibile avviare il lavoro
|
backup_eok=.. impossibile avviare il processo
|
||||||
backup_running=.. il processo di backup è ora in esecuzione. Al termine, i risultati verranno visualizzati di seguito.
|
backup_running=.. il processo di backup è ora in esecuzione. Al termine, i risultati verranno visualizzati di seguito.
|
||||||
backup_running2=.. il processo di backup è stato avviato in background.
|
backup_running2=.. il processo di backup è stato avviato in background.
|
||||||
backup_done=.. backup completato.
|
backup_done=.. backup completato.
|
||||||
backup_failed=.. il backup non è stato completato correttamente. Controllare il messaggio di errore sopra per i dettagli.
|
backup_failed=.. il backup non è stato completato correttamente. Controllare il messaggio di errore sopra per i dettagli.
|
||||||
|
|
||||||
gbackup_title=Esegui processo di backup del gruppo Bacula
|
gbackup_title=Esegui gruppo di processi di backup
|
||||||
gbackup_run=Avvio del processo di backup $1 su $2 client ..
|
gbackup_run=Avvio del processo di backup $1 su $2 client ..
|
||||||
gbackup_on=Esecuzione del processo di backup sul client $1 :
|
gbackup_on=Esecuzione del processo di backup sul client $1:
|
||||||
gbackup_header=Dettagli del processo di backup del gruppo Bacula
|
gbackup_header=Dettagli del gruppo di processo di backup
|
||||||
gbackup_jd=$1 (set di file $2 sul gruppo $3)
|
gbackup_jd=$1 (set di file $2 sul gruppo $3)
|
||||||
|
|
||||||
dirstatus_title=Stato del direttore
|
dirstatus_title=Stato del Director
|
||||||
dirstatus_sched=Processi di backup pianificati
|
dirstatus_sched=Processi di backup pianificati
|
||||||
dirstatus_name=Nome del lavoro
|
dirstatus_name=Nome del processo
|
||||||
dirstatus_type=genere
|
dirstatus_type=Tipo
|
||||||
dirstatus_level=Livello
|
dirstatus_level=Livello
|
||||||
dirstatus_date=Corri a
|
dirstatus_date=Orari esecuzione
|
||||||
dirstatus_date2=Iniziato alle
|
dirstatus_date2=Iniziato a
|
||||||
dirstatus_volume=Volume
|
dirstatus_volume=Volume
|
||||||
dirstatus_schednone=Nessun processo di backup è attualmente pianificato.
|
dirstatus_schednone=Nessun processo di backup è attualmente pianificato.
|
||||||
dirstatus_id=Esegui ID
|
dirstatus_id=Id di esecuzione
|
||||||
dirstatus_status=Stato attuale
|
dirstatus_status=Stato attuale
|
||||||
dirstatus_run=Esecuzione di processi di backup
|
dirstatus_run=Processi di backup in esecuzione
|
||||||
dirstatus_runnone=Nessun processo di backup è attualmente in esecuzione.
|
dirstatus_runnone=Nessun processo di backup è attualmente in esecuzione.
|
||||||
dirstatus_done=Processi di backup completati
|
dirstatus_done=Processi di backup completati
|
||||||
dirstatus_bytes=Taglia
|
dirstatus_bytes=Dimensione
|
||||||
dirstatus_files=File
|
dirstatus_files=File
|
||||||
dirstatus_status2=Stato
|
dirstatus_status2=Stato
|
||||||
dirstatus_donenone=Nessun processo di backup è stato eseguito.
|
dirstatus_donenone=Nessun processo di backup è stato eseguito.
|
||||||
dirstatus_cancel=Annulla lavori selezionati
|
dirstatus_cancel=Annulla processi selezionati
|
||||||
dirstatus_refresh=Aggiorna la lista
|
dirstatus_refresh=Aggiorna la lista
|
||||||
|
|
||||||
clientstatus_title=Stato del cliente
|
clientstatus_title=Stato del client
|
||||||
clientstatus_err=Impossibile recuperare lo stato da $1 : $2
|
clientstatus_err=Impossibile recuperare lo stato da $1: $2
|
||||||
clientstatus_msg=Stato da $1 : $2
|
clientstatus_msg=Stato da $1: $2
|
||||||
clientstatus_show=Mostra lo stato del client:
|
clientstatus_show=Mostra lo stato del client:
|
||||||
clientstatus_ok=ok
|
clientstatus_ok=OK
|
||||||
clientstatus_on=$1 (su $2)
|
clientstatus_on=$1 (su $2)
|
||||||
|
|
||||||
storages_title=Demoni di archiviazione
|
storages_title=Storage daemon
|
||||||
storages_none=Nessun demone di archiviazione è stato ancora definito.
|
storages_none=Nessuno Storage daemon è stato ancora definito.
|
||||||
storages_name=Nome di archiviazione
|
storages_name=Nome dello Storage daemon
|
||||||
storages_address=Nome host o indirizzo
|
storages_address=Nome host o indirizzo
|
||||||
storages_device=Dispositivo di archiviazione
|
storages_device=Dispositivo di archiviazione
|
||||||
storages_type=Tipo di supporto
|
storages_type=Tipo di supporto
|
||||||
storages_add=Aggiungi un nuovo demone di archiviazione.
|
storages_add=Aggiungi un nuovo Storage daemon.
|
||||||
storages_delete=Elimina i daemon di archiviazione selezionati
|
storages_delete=Elimina gli Storage daemon selezionati
|
||||||
storages_return=elenco di demoni di archiviazione
|
storages_return=elenco di Storage daemon
|
||||||
storages_derr=Impossibile eliminare i daemon di archiviazione
|
storages_derr=Impossibile eliminare gli Storage daemon
|
||||||
|
|
||||||
storage_title1=Crea un demone di archiviazione
|
storage_title1=Crea uno Storage daemon
|
||||||
storage_title2=Modifica demone di archiviazione
|
storage_title2=Modifica demone dello Storage daemon
|
||||||
storage_header=Dettagli del demone di archiviazione remota
|
storage_header=Dettagli dello Storage daemon remoto
|
||||||
storage_egone=Il demone di archiviazione non esiste più!
|
storage_egone=Lo Storage daemon non esiste più!
|
||||||
storage_name=Nome del demone di archiviazione
|
storage_name=Nome dello Storage daemon
|
||||||
storage_address=Nome host o indirizzo IP
|
storage_address=Nome host o indirizzo IP
|
||||||
storage_port=Porta SD Bacula
|
storage_port=Porta SD Bacula
|
||||||
storage_pass=Password SD Bacula
|
storage_pass=Password SD Bacula
|
||||||
storage_device=Nome del dispositivo di archiviazione
|
storage_device=Nome del dispositivo di archiviazione
|
||||||
storage_media=Nome del tipo di supporto
|
storage_media=Nome del tipo di supporto
|
||||||
storage_maxjobs=Numero massimo di lavori simultanei
|
storage_maxjobs=Numero massimo di processi simultanei
|
||||||
storage_other=Altro ..
|
storage_other=Altro..
|
||||||
storage_err=Impossibile salvare il demone di archiviazione
|
storage_err=Impossibile salvare lo Storage daemon
|
||||||
storage_ename=Nome del daemon di archiviazione mancante
|
storage_ename=Nome dello Storage daemon mancante
|
||||||
storage_eclash=Un demone di archiviazione con lo stesso nome esiste già
|
storage_eclash=Uno Storage daemon con lo stesso nome esiste già
|
||||||
storage_epass=Password mancante
|
storage_epass=Password mancante
|
||||||
storage_eaddress=Nome host o indirizzo mancante o non valido
|
storage_eaddress=Nome host o indirizzo mancante o non valido
|
||||||
storage_eport=Porta SD mancante o non valida
|
storage_eport=Porta SD mancante o non valida
|
||||||
storage_edevice=Nome del dispositivo di archiviazione mancante
|
storage_edevice=Nome del dispositivo di archiviazione mancante
|
||||||
storage_emedia=Nome del tipo di supporto mancante
|
storage_emedia=Nome del tipo di supporto mancante
|
||||||
storage_emaxjobs=Numero massimo di lavori simultanei mancanti
|
storage_emaxjobs=Numero massimo di processi simultanei mancanti
|
||||||
storage_echild=Questo client non può essere eliminato in quanto utilizzato da $1
|
storage_echild=Questo Storage daemon non può essere eliminato in quanto utilizzato da $1
|
||||||
storage_status=Mostra stato
|
storage_status=Mostra stato
|
||||||
|
|
||||||
devices_title=Dispositivi di memoria
|
devices_title=Dispositivi di archiviazione
|
||||||
devices_none=Nessun dispositivo di archiviazione è stato ancora definito.
|
devices_none=Nessun dispositivo di archiviazione è stato ancora definito.
|
||||||
devices_name=Nome del dispositivo
|
devices_name=Nome del dispositivo
|
||||||
devices_device=File o directory del dispositivo
|
devices_device=File o directory del dispositivo
|
||||||
@@ -292,7 +292,7 @@ device_name=Nome del dispositivo di archiviazione
|
|||||||
device_device=Dispositivo di archiviazione o directory
|
device_device=Dispositivo di archiviazione o directory
|
||||||
device_media=Nome del tipo di supporto
|
device_media=Nome del tipo di supporto
|
||||||
device_label=Etichettare automaticamente i supporti?
|
device_label=Etichettare automaticamente i supporti?
|
||||||
device_random=Mezzo di accesso casuale?
|
device_random=Dispositivo ad accesso casuale?
|
||||||
device_auto=Montare automaticamente?
|
device_auto=Montare automaticamente?
|
||||||
device_removable=Supporti rimovibili?
|
device_removable=Supporti rimovibili?
|
||||||
device_always=Tieni sempre aperto?
|
device_always=Tieni sempre aperto?
|
||||||
@@ -301,34 +301,34 @@ device_ename=Nome del dispositivo di archiviazione mancante
|
|||||||
device_eclash=Un dispositivo di archiviazione con lo stesso nome esiste già
|
device_eclash=Un dispositivo di archiviazione con lo stesso nome esiste già
|
||||||
device_emedia=Nome del tipo di supporto mancante
|
device_emedia=Nome del tipo di supporto mancante
|
||||||
device_edevice=Dispositivo o directory di archivio mancante o non valido
|
device_edevice=Dispositivo o directory di archivio mancante o non valido
|
||||||
device_echild=Questo client non può essere eliminato in quanto utilizzato da $1
|
device_echild=Questo dispositivo di archiviazione non può essere eliminato in quanto utilizzato da $1
|
||||||
|
|
||||||
storagestatus_title=Stato del demone di archiviazione
|
storagestatus_title=Stato dello Storage daemon
|
||||||
storagestatus_err=Impossibile recuperare lo stato da $1 : $2
|
storagestatus_err=Impossibile recuperare lo stato da $1: $2
|
||||||
storagestatus_msg=Stato da $1 : $2
|
storagestatus_msg=Stato da $1: $2
|
||||||
storagestatus_show=Mostra lo stato del demone di archiviazione:
|
storagestatus_show=Mostra lo stato dello Storage daemon:
|
||||||
storagestatus_ok=ok
|
storagestatus_ok=OK
|
||||||
|
|
||||||
label_title=Volume dell'etichetta
|
label_title=Etichetta volume
|
||||||
label_header=Dettagli del volume da etichettare
|
label_header=Dettagli del volume da etichettare
|
||||||
label_storage=Demone di archiviazione da etichettare
|
label_storage=Storage daemon da etichettare
|
||||||
label_pool=Crea in piscina
|
label_pool=Crea pool
|
||||||
label_label=Nuovo nome dell'etichetta
|
label_label=Nuovo nome dell'etichetta
|
||||||
label_ok=Etichetta ora
|
label_ok=Etichetta ora
|
||||||
label_return=modulo di etichetta
|
label_return=modulo di etichetta
|
||||||
label_run=Volume di etichettatura con $2 sul daemon di archiviazione $1 ..
|
label_run=Etichettatura volume con $2 sullo Storage daemon $1 ..
|
||||||
label_estorage=.. il demone di archiviazione non è stato trovato!
|
label_estorage=.. lo Storage daemon non è stato trovato!
|
||||||
label_eexists=.. l'etichetta specificata esiste già.
|
label_eexists=.. l'etichetta specificata esiste già.
|
||||||
label_efailed=.. etichettatura fallita! Controllare il messaggio di errore sopra per il motivo.
|
label_efailed=.. etichettatura fallita! Controllare il messaggio di errore sopra per il motivo.
|
||||||
label_done=.. etichettatura eseguita correttamente.
|
label_done=.. etichettatura eseguita correttamente.
|
||||||
label_epool=.. impossibile trovare la piscina!
|
label_epool=.. impossibile trovare il pool!
|
||||||
label_err=Etichetta fallita
|
label_err=Etichettatura fallita
|
||||||
label_elabel=Nessuna etichetta inserita
|
label_elabel=Nessuna etichetta inserita
|
||||||
|
|
||||||
pools_title=Pool di volumi
|
pools_title=Pool di volumi
|
||||||
pools_none=Nessun pool di volumi è stato ancora definito.
|
pools_none=Nessun pool di volumi è stato ancora definito.
|
||||||
pools_name=Nome piscina
|
pools_name=Nome pool
|
||||||
pools_type=Tipo di piscina
|
pools_type=Tipo di pool
|
||||||
pools_reten=Periodo di conservazione
|
pools_reten=Periodo di conservazione
|
||||||
pools_add=Aggiungi un nuovo pool di volumi.
|
pools_add=Aggiungi un nuovo pool di volumi.
|
||||||
pools_delete=Elimina pool di volumi selezionati
|
pools_delete=Elimina pool di volumi selezionati
|
||||||
@@ -340,30 +340,30 @@ pool_title2=Modifica pool di volumi
|
|||||||
pool_header=Dettagli del pool di volumi di backup
|
pool_header=Dettagli del pool di volumi di backup
|
||||||
pool_egone=Il pool di volumi non esiste più!
|
pool_egone=Il pool di volumi non esiste più!
|
||||||
pool_name=Nome del pool di volumi
|
pool_name=Nome del pool di volumi
|
||||||
pool_recycle=Ricicli automaticamente i volumi?
|
pool_recycle=Riciclare automaticamente i volumi?
|
||||||
pool_auto=Potare i volumi scaduti?
|
pool_auto=Eliminare i volumi scaduti?
|
||||||
pool_any=Backup su qualsiasi volume nel pool?
|
pool_any=Backup su qualsiasi volume nel pool?
|
||||||
pool_reten=Periodo di conservazione del volume
|
pool_reten=Periodo di conservazione del volume
|
||||||
pool_type=Tipo di pool di volumi
|
pool_type=Tipo di pool di volumi
|
||||||
pool_max=Numero massimo di lavori per volume
|
pool_max=Numero massimo di processi per volume
|
||||||
pool_unlimited=Illimitato
|
pool_unlimited=Illimitato
|
||||||
pool_err=Impossibile salvare il dispositivo di archiviazione
|
pool_err=Impossibile salvare il pool di volumi
|
||||||
pool_ename=Nome del dispositivo di archiviazione mancante
|
pool_ename=Nome del pool di volumi mancante
|
||||||
pool_eclash=Un dispositivo di archiviazione con lo stesso nome esiste già
|
pool_eclash=Un pool di volumi con lo stesso nome esiste già
|
||||||
pool_echild=Questo client non può essere eliminato in quanto utilizzato da $1
|
pool_echild=Questo pool non può essere eliminato in quanto utilizzato da $1
|
||||||
pool_emax=Numero massimo di lavori mancante o non valido per volume
|
pool_emax=Numero massimo di lavori mancante o non valido per volume
|
||||||
pool_ereten=Periodo di conservazione mancante o non valido
|
pool_ereten=Periodo di conservazione mancante o non valido
|
||||||
pool_status=Mostra i volumi
|
pool_status=Mostra i volumi
|
||||||
pool_autolabel=Etichetta automaticamente il prefisso dei volumi
|
pool_autolabel=Etichetta automaticamente il prefisso dei volumi
|
||||||
pool_maxvolsize=Dimensioni massime del volume (ad es. 5G per 5 Gigabyte)
|
pool_maxvolsize=Dimensioni massime del volume (ad es. 5G per 5 Gigabyte)
|
||||||
|
|
||||||
poolstatus_title=Volumi In Piscina
|
poolstatus_title=Volumi in pool
|
||||||
poolstatus_show=Mostra i volumi nel pool:
|
poolstatus_show=Mostra i volumi nel pool:
|
||||||
poolstatus_ok=ok
|
poolstatus_ok=OK
|
||||||
poolstatus_volumes=Volumi nel pool selezionato
|
poolstatus_volumes=Volumi nel pool selezionato
|
||||||
poolstatus_name=Nome volume
|
poolstatus_name=Nome volume
|
||||||
poolstatus_type=Tipo di supporto
|
poolstatus_type=Tipo di supporto
|
||||||
poolstatus_first=Prima usato
|
poolstatus_first=Primo uso
|
||||||
poolstatus_last=Ultimo uso
|
poolstatus_last=Ultimo uso
|
||||||
poolstatus_bytes=Byte scritti
|
poolstatus_bytes=Byte scritti
|
||||||
poolstatus_status=Modalità di backup
|
poolstatus_status=Modalità di backup
|
||||||
@@ -373,116 +373,116 @@ poolstatus_delete=Elimina i volumi selezionati
|
|||||||
|
|
||||||
dvolumes_err=Impossibile eliminare i volumi
|
dvolumes_err=Impossibile eliminare i volumi
|
||||||
dvolumes_enone=Nessuno selezionato
|
dvolumes_enone=Nessuno selezionato
|
||||||
dvolumes_ebacula=Errore Bacula : $1
|
dvolumes_ebacula=Errore Bacula: $1
|
||||||
|
|
||||||
mount_title=Monta o smonta
|
mount_title=Monta o smonta
|
||||||
mount_header=Opzioni di montaggio o disinstallazione dello storage
|
mount_header=Opzioni di montaggio o smontaggio dello storage
|
||||||
mount_storage=Dispositivo di archiviazione
|
mount_storage=Dispositivo di archiviazione
|
||||||
mount_slot=Slot caricatore automatico
|
mount_slot=Slot del caricatore automatico
|
||||||
mount_noslot=Nessuna
|
mount_noslot=Nessuno
|
||||||
mount_slotno=Numero di posto connettore
|
mount_slotno=Numero slot
|
||||||
mount_mount=Mount Storage
|
mount_mount=Monta dispositivo
|
||||||
mount_unmount=Smonta memoria
|
mount_unmount=Smonta dispositivo
|
||||||
mount_run=Volume di montaggio sul dispositivo di archiviazione $1 ..
|
mount_run=Montaggio volume sullo Storage daemon $1 ..
|
||||||
unmount_run=Volume di smontaggio sul dispositivo di memorizzazione $1 ..
|
unmount_run=Smontaggio volume sullo Storage daemon $1 ..
|
||||||
mount_done=.. montato correttamente.
|
mount_done=.. montato correttamente.
|
||||||
unmount_done=.. non montato correttamente.
|
unmount_done=.. non montato correttamente.
|
||||||
mount_failed=.. montaggio fallito! Vedere il messaggio di errore sopra per il motivo.
|
mount_failed=.. montaggio fallito! Vedere il messaggio di errore sopra per il motivo.
|
||||||
unmount_failed=.. disinstallazione fallita! Vedere il messaggio di errore sopra per il motivo.
|
unmount_failed=.. smontaggio fallito! Vedere il messaggio di errore sopra per il motivo.
|
||||||
mount_return=forma di montaggio
|
mount_return=forma di montaggio
|
||||||
mount_err=Impossibile montare il dispositivo di archiviazione
|
mount_err=Impossibile montare il dispositivo di archiviazione
|
||||||
mount_eslot=Numero di slot mancante o non valido
|
mount_eslot=Numero di slot mancante o non valido
|
||||||
|
|
||||||
cancel_err=Impossibile annullare i lavori
|
cancel_err=Impossibile annullare i processi
|
||||||
cancel_enone=Nessuno selezionato
|
cancel_enone=Nessuno selezionato
|
||||||
|
|
||||||
gjobs_title=Processi di backup del gruppo Bacula
|
gjobs_title=Gruppi di processi di backup
|
||||||
gjobs_none=Nessun processo di backup del gruppo Bacula è stato ancora definito.
|
gjobs_none=Nessun gruppo di processi di backup è stato ancora definito.
|
||||||
gjobs_add=Aggiungi un nuovo processo di backup del gruppo Bacula.
|
gjobs_add=Aggiungi un nuovo gruppo di processi di backup.
|
||||||
gjobs_delete=Elimina lavori selezionati
|
gjobs_delete=Elimina processi selezionati
|
||||||
gjobs_return=elenco dei lavori del gruppo Bacula
|
gjobs_return=elenco dei processi del gruppo
|
||||||
gjobs_derr=Impossibile eliminare i lavori del gruppo Bacula
|
gjobs_derr=Impossibile eliminare i processi del gruppo
|
||||||
gjobs_client=Gruppo Bacula per il backup
|
gjobs_client=Client per il gruppo
|
||||||
|
|
||||||
gjob_title1=Crea processo di backup del gruppo Bacula
|
gjob_title1=Crea gruppo di processi di backup
|
||||||
gjob_title2=Modifica processo di backup del gruppo Bacula
|
gjob_title2=Modifica gruppo di processi di backup
|
||||||
gjob_header=Dettagli del processo di backup del gruppo Bacula
|
gjob_header=Dettagli del gruppo di processi di backup
|
||||||
gjob_client=Gruppo Bacula per il backup
|
gjob_client=Client per il gruppo
|
||||||
|
|
||||||
groups_title=Gruppi Bacula
|
groups_title=Gruppi Bacula
|
||||||
groups_none=Nessun gruppo Bacula è stato ancora selezionato per il backup da Bacula.
|
groups_none=Nessun gruppo di processi di backup è stato ancora selezionato.
|
||||||
groups_name=Nome del gruppo
|
groups_name=Nome del gruppo
|
||||||
groups_port=Porta FD
|
groups_port=Porta FD
|
||||||
groups_add=Aggiungi gruppo Bacula:
|
groups_add=Aggiungi gruppo:
|
||||||
groups_ok=Inserisci
|
groups_ok=Inserisci
|
||||||
groups_catalog=Catalogare
|
groups_catalog=Catalogo
|
||||||
groups_delete=Elimina i gruppi Bacula selezionati
|
groups_delete=Elimina i gruppi selezionati
|
||||||
groups_return=elenco di gruppi
|
groups_return=elenco di gruppi
|
||||||
groups_derr=Impossibile eliminare i gruppi
|
groups_derr=Impossibile eliminare i gruppi
|
||||||
groups_noadd=Non esistono gruppi Bacula da selezionare per i backup.
|
groups_noadd=Non esistono gruppi da selezionare per i backup.
|
||||||
groups_info=$1 ($2 membri)
|
groups_info=$1 ($2 membri)
|
||||||
groups_already=Tutti i gruppi Bacula sono già stati aggiunti.
|
groups_already=Tutti i gruppi sono già stati aggiunti.
|
||||||
|
|
||||||
group_title1=Crea gruppo Bacula
|
group_title1=Crea gruppo
|
||||||
group_title2=Modifica gruppo Bacula
|
group_title2=Modifica gruppo
|
||||||
group_header=Dettagli del gruppo Bacula di cui eseguire il backup
|
group_header=Dettagli del gruppo di backup
|
||||||
group_egone=Il gruppo non esiste più!
|
group_egone=Il gruppo non esiste più!
|
||||||
group_egone2=Il gruppo Bacula non esiste più!
|
group_egone2=Il gruppo non esiste più!
|
||||||
group_name=Nome del gruppo Bacula
|
group_name=Nome del gruppo
|
||||||
group_port=Porta Bacula FD
|
group_port=Porta Bacula FD
|
||||||
group_err=Impossibile salvare il gruppo Bacula
|
group_err=Impossibile salvare il gruppo
|
||||||
group_eclash=Un gruppo con lo stesso nome esiste già
|
group_eclash=Un gruppo con lo stesso nome esiste già
|
||||||
group_members=Host nel gruppo Bacula
|
group_members=Host nel gruppo
|
||||||
|
|
||||||
sync_title=Sincronizzazione del gruppo Bacula
|
sync_title=Sincronizzazione del gruppo
|
||||||
sync_header=Opzioni di sincronizzazione client del gruppo Bacula automatico
|
sync_header=Opzioni di sincronizzazione automatica dei client del gruppo
|
||||||
sync_sched=Sincronizzare nei tempi previsti?
|
sync_sched=Sincronizzare su schedulazione?
|
||||||
sync_schedyes=Sì, a volte selezionato di seguito.
|
sync_schedyes=Sì, agli orari selezionati di seguito.
|
||||||
sync_err=Impossibile salvare la sincronizzazione del gruppo Bacula
|
sync_err=Impossibile salvare la sincronizzazione del gruppo
|
||||||
|
|
||||||
log_create_client=Client di backup creato $1
|
log_create_client=Client di backup $1 creato
|
||||||
log_modify_client=Client di backup modificato $1
|
log_modify_client=Client di backup $1 modificato
|
||||||
log_delete_client=Client di backup eliminato $1
|
log_delete_client=Client di backup $1 eliminato
|
||||||
log_delete_clients=Client di backup $1 eliminati
|
log_delete_clients=Eliminati $1 client di backup
|
||||||
log_create_fileset=Set di file creato $1
|
log_create_fileset=Set di file $1 creato
|
||||||
log_modify_fileset=Set di file modificato $1
|
log_modify_fileset=Set di file $1 modificato
|
||||||
log_delete_fileset=Set di file eliminato $1
|
log_delete_fileset=Set di file $1 eliminato
|
||||||
log_delete_filesets=Set di file $1 eliminati
|
log_delete_filesets=Eliminati $1 set di file
|
||||||
log_create_job=Processo di backup creato $1
|
log_create_job=Processo di backup $1 creato
|
||||||
log_modify_job=Processo di backup modificato $1
|
log_modify_job=Processo di backup $1 modificato
|
||||||
log_delete_job=Processo di backup eliminato $1
|
log_delete_job=Processo di backup $1 eliminato
|
||||||
log_delete_jobs=Eliminati $1 processi di backup
|
log_delete_jobs=Eliminati $1 processi di backup
|
||||||
log_create_schedule=Pianificazione del backup creata $1
|
log_create_schedule=Pianificazione del backup $1 creata
|
||||||
log_modify_schedule=Pianificazione del backup modificata $1
|
log_modify_schedule=Pianificazione del backup $1 modificata
|
||||||
log_delete_schedule=Pianificazione del backup eliminata $1
|
log_delete_schedule=Pianificazione del backup $1 eliminata
|
||||||
log_delete_schedules=Pianificazioni di backup $1 eliminate
|
log_delete_schedules=Eliminate $1 pianificazioni di backup
|
||||||
log_create_pool=Pool di volumi creato $1
|
log_create_pool=Pool di volumi $1 creato
|
||||||
log_modify_pool=Pool di volumi modificato $1
|
log_modify_pool=Pool di volumi $1 modificato
|
||||||
log_delete_pool=Pool di volumi eliminati $1
|
log_delete_pool=Pool di volumi $1 eliminati
|
||||||
log_delete_pools=Pool di volumi $1 eliminati
|
log_delete_pools=Eliminati $1 Pool di volumi
|
||||||
log_create_storage=Demone di archiviazione creato $1
|
log_create_storage=Storage daemon $1 creato
|
||||||
log_modify_storage=Demone di archiviazione modificato $1
|
log_modify_storage=Storage daemon $1 modificato
|
||||||
log_delete_storage=Demone di archiviazione eliminato $1
|
log_delete_storage=Storage daemon $1 eliminato
|
||||||
log_delete_storages=Demoni di archiviazione $1 eliminati
|
log_delete_storages=Eliminati $1 Storage daemon
|
||||||
log_create_device=Dispositivo di archiviazione creato $1
|
log_create_device=Dispositivo di archiviazione $1 creato
|
||||||
log_modify_device=Dispositivo di archiviazione modificato $1
|
log_modify_device=Dispositivo di archiviazione $1 modificato
|
||||||
log_delete_device=Dispositivo di archiviazione eliminato $1
|
log_delete_device=Dispositivo di archiviazione $1 eliminato
|
||||||
log_delete_devices=$1 dispositivi di archiviazione eliminati
|
log_delete_devices=$1 dispositivi di archiviazione eliminati
|
||||||
log_create_group=Creato gruppo Bacula $1
|
log_create_group=Creato gruppo $1
|
||||||
log_modify_group=Gruppo Bacula modificato $1
|
log_modify_group=Gruppo $1 modificato
|
||||||
log_delete_group=Gruppo Bacula eliminato $1
|
log_delete_group=Gruppo $1 eliminato
|
||||||
log_delete_groups=$1 gruppi Bacula eliminati
|
log_delete_groups=$1 gruppi eliminati
|
||||||
log_create_gjob=Processo di backup del gruppo Bacula creato $1
|
log_create_gjob=Processo di backup del gruppo $1 creato
|
||||||
log_modify_gjob=Processo di backup del gruppo Bacula modificato $1
|
log_modify_gjob=Processo di backup del gruppo $1 modificato
|
||||||
log_delete_gjob=Processo di backup del gruppo Bacula eliminato $1
|
log_delete_gjob=Processo di backup del gruppo $1 eliminato
|
||||||
log_delete_gjobs=Eliminati $1 processi di backup del gruppo Bacula
|
log_delete_gjobs=Eliminati $1 processi di backup del gruppo
|
||||||
log_create_fdirector=Direttore daemon file creato $1
|
log_create_fdirector=Director daemon file creato $1
|
||||||
log_modify_fdirector=Direttore del demone file modificato $1
|
log_modify_fdirector=Director del demone file modificato $1
|
||||||
log_delete_fdirector=Direttore daemon file eliminato $1
|
log_delete_fdirector=Director daemon file eliminato $1
|
||||||
log_delete_fdirectors=Direttori di daemon file eliminati $1
|
log_delete_fdirectors=Director di daemon file eliminati $1
|
||||||
log_create_sdirector=Direttore del demone di archiviazione creato $1
|
log_create_sdirector=Director del demone di archiviazione creato $1
|
||||||
log_modify_sdirector=Direttore del demone di archiviazione modificato $1
|
log_modify_sdirector=Director del demone di archiviazione modificato $1
|
||||||
log_delete_sdirector=Direttore del demone di archiviazione eliminato $1
|
log_delete_sdirector=Director del demone di archiviazione eliminato $1
|
||||||
log_delete_sdirectors=Registri daemon di archiviazione $1 eliminati
|
log_delete_sdirectors=Registri daemon di archiviazione $1 eliminati
|
||||||
log_stop=Demoni Bacula fermati
|
log_stop=Demoni Bacula fermati
|
||||||
log_start=Demoni Bacula avviati
|
log_start=Demoni Bacula avviati
|
||||||
@@ -494,23 +494,23 @@ log_label=Demone di archiviazione con etichetta $1
|
|||||||
log_mount=Dispositivo di archiviazione montato $1
|
log_mount=Dispositivo di archiviazione montato $1
|
||||||
log_unmount=Dispositivo di archiviazione non montato $1
|
log_unmount=Dispositivo di archiviazione non montato $1
|
||||||
log_sync=Sincronizzazione del gruppo Bacula salvata
|
log_sync=Sincronizzazione del gruppo Bacula salvata
|
||||||
log_director=Configurazione del regista Bacula globale salvata
|
log_director=Configurazione del Director Bacula globale salvata
|
||||||
log_file=Configurazione del demone del file Bacula salvata
|
log_file=Configurazione del demone del file Bacula salvata
|
||||||
log_storagec=Configurazione del demone di archiviazione Bacula salvata
|
log_storagec=Configurazione del demone di archiviazione Bacula salvata
|
||||||
log_fixpass=Risolto il problema con la password del programma della console Bacula
|
log_fixpass=Risolto il problema con la password del programma della console Bacula
|
||||||
|
|
||||||
director_title=Director Director
|
director_title=Configurazione Director
|
||||||
director_header=Opzioni del regista Global Bacula
|
director_header=Opzioni globali Director
|
||||||
director_name=Nome del direttore
|
director_name=Nome del Director
|
||||||
director_port=Ascolta in porto
|
director_port=Porta di ascolto
|
||||||
director_jobs=Numero massimo di lavori simultanei
|
director_jobs=Numero massimo di processi simultanei
|
||||||
director_messages=Destinazione per i messaggi
|
director_messages=Destinazione per i messaggi
|
||||||
director_enone=Nessuna configurazione del regista trovata!
|
director_enone=Nessuna configurazione del Director trovata!
|
||||||
director_dir=Directory di lavoro di Bacula
|
director_dir=Directory di lavoro di Bacula
|
||||||
director_err=Impossibile salvare la configurazione del direttore
|
director_err=Impossibile salvare la configurazione del Director
|
||||||
director_ename=Nome regista mancante o non valido
|
director_ename=Nome Director mancante o non valido
|
||||||
director_eport=Numero porta mancante o non valido
|
director_eport=Numero porta mancante o non valido
|
||||||
director_ejobs=Numero mancante o non valido di lavori simultanei
|
director_ejobs=Numero mancante o non valido di processi simultanei
|
||||||
director_edir=Directory di lavoro mancante o inesistente
|
director_edir=Directory di lavoro mancante o inesistente
|
||||||
|
|
||||||
tls_enable=Abilitare la crittografia TLS?
|
tls_enable=Abilitare la crittografia TLS?
|
||||||
@@ -525,86 +525,86 @@ tls_ekey=File chiave TLS mancante o inesistente
|
|||||||
tls_ecacert=File di certificato CA TLS mancante o inesistente
|
tls_ecacert=File di certificato CA TLS mancante o inesistente
|
||||||
tls_ecerts=Per abilitare TLS, è necessario specificare i file di certificato, chiave e CA.
|
tls_ecerts=Per abilitare TLS, è necessario specificare i file di certificato, chiave e CA.
|
||||||
|
|
||||||
file_title=Configurazione del daemon di file
|
file_title=Configurazione del File daemon
|
||||||
file_header=Opzioni del demone del file Bacula
|
file_header=Opzioni del File daemon
|
||||||
file_name=Nome del demone del file
|
file_name=Nome del File daemon
|
||||||
file_port=Ascolta in porto
|
file_port=Porta di ascolto
|
||||||
file_jobs=Numero massimo di lavori simultanei
|
file_jobs=Numero massimo di processi simultanei
|
||||||
file_dir=Directory di lavoro di Bacula
|
file_dir=Directory di lavoro di Bacula
|
||||||
file_enone=Nessuna configurazione di daemon di file trovata!
|
file_enone=Nessuna configurazione di File daemon trovata!
|
||||||
file_err=Impossibile salvare la configurazione del daemon di file
|
file_err=Impossibile salvare la configurazione del File daemon
|
||||||
file_ename=Nome del daemon di file mancante o non valido
|
file_ename=Nome del File daemon mancante o non valido
|
||||||
file_eport=Numero porta mancante o non valido
|
file_eport=Numero porta mancante o non valido
|
||||||
file_ejobs=Numero mancante o non valido di lavori simultanei
|
file_ejobs=Numero mancante o non valido di processi simultanei
|
||||||
file_edir=Directory di lavoro mancante o inesistente
|
file_edir=Directory di lavoro mancante o inesistente
|
||||||
|
|
||||||
fdirectors_title=File Daemon Director
|
fdirectors_title=Director del File daemon
|
||||||
fdirectors_none=Nessun amministratore è stato ancora definito.
|
fdirectors_none=Nessun Director è stato ancora definito.
|
||||||
fdirectors_name=Nome del direttore
|
fdirectors_name=Nome del Director
|
||||||
fdirectors_pass=Password accettata
|
fdirectors_pass=Password accettata
|
||||||
fdirectors_add=Aggiungi un nuovo regista.
|
fdirectors_add=Aggiungi un nuovo Director.
|
||||||
fdirectors_delete=Elimina i registi selezionati
|
fdirectors_delete=Elimina i Director selezionati
|
||||||
fdirectors_return=elenco dei direttori
|
fdirectors_return=elenco dei Director
|
||||||
fdirectors_derr=Impossibile eliminare i direttori
|
fdirectors_derr=Impossibile eliminare i Director
|
||||||
|
|
||||||
fdirector_title1=Crea File Daemon Director
|
fdirector_title1=Crea Director del File daemon
|
||||||
fdirector_title2=Modifica File Daemon Director
|
fdirector_title2=Modifica Director del File daemon
|
||||||
fdirector_header=Dettagli sul controllo di Remote Director
|
fdirector_header=Dettagli sul controllo del Director remoto
|
||||||
fdirector_egone=Il regista non esiste più!
|
fdirector_egone=Il Director non esiste più!
|
||||||
fdirector_name=Nome del direttore
|
fdirector_name=Nome del Director
|
||||||
fdirector_pass=Password accettata
|
fdirector_pass=Password accettata
|
||||||
fdirector_monitor=Consentire solo il monitoraggio della connessione?
|
fdirector_monitor=Consentire solo il monitoraggio della connessione?
|
||||||
fdirector_err=Impossibile salvare il daemon director del file
|
fdirector_err=Impossibile salvare il Director del File daemon
|
||||||
fdirector_ename=Nome del regista mancante
|
fdirector_ename=Nome del Director mancante
|
||||||
fdirector_eclash=Un regista con lo stesso nome esiste già
|
fdirector_eclash=Un Director con lo stesso nome esiste già
|
||||||
fdirector_epass=Password mancante
|
fdirector_epass=Password mancante
|
||||||
|
|
||||||
sdirectors_title=Direttori dei demoni di archiviazione
|
sdirectors_title=Director degli Storage daemon
|
||||||
sdirectors_none=Nessun amministratore è stato ancora definito.
|
sdirectors_none=Nessun Director è stato ancora definito.
|
||||||
sdirectors_name=Nome del direttore
|
sdirectors_name=Nome del Director
|
||||||
sdirectors_pass=Password accettata
|
sdirectors_pass=Password accettata
|
||||||
sdirectors_add=Aggiungi un nuovo regista.
|
sdirectors_add=Aggiungi un nuovo Director.
|
||||||
sdirectors_delete=Elimina i registi selezionati
|
sdirectors_delete=Elimina i Director selezionati
|
||||||
sdirectors_return=elenco dei direttori
|
sdirectors_return=elenco dei Director
|
||||||
sdirectors_derr=Impossibile eliminare i direttori
|
sdirectors_derr=Impossibile eliminare i Director
|
||||||
|
|
||||||
sdirector_title1=Crea un Daemon Director di archiviazione
|
sdirector_title1=Crea un Director dello Storage daemon
|
||||||
sdirector_title2=Modifica Daemon Director di archiviazione
|
sdirector_title2=Modifica Director dello Storage daemon
|
||||||
sdirector_header=Dettagli sul controllo di Remote Director
|
sdirector_header=Dettagli sul controllo del Director remoto
|
||||||
sdirector_egone=Il regista non esiste più!
|
sdirector_egone=Il Director non esiste più!
|
||||||
sdirector_name=Nome del direttore
|
sdirector_name=Nome del Director
|
||||||
sdirector_pass=Password accettata
|
sdirector_pass=Password accettata
|
||||||
sdirector_monitor=Consentire solo il monitoraggio della connessione?
|
sdirector_monitor=Consentire solo il monitoraggio della connessione?
|
||||||
sdirector_err=Impossibile salvare il daemon director di archiviazione
|
sdirector_err=Impossibile salvare il Director dello Storage daemon
|
||||||
sdirector_ename=Nome del regista mancante
|
sdirector_ename=Nome del Director mancante
|
||||||
sdirector_eclash=Un regista con lo stesso nome esiste già
|
sdirector_eclash=Un Director con lo stesso nome esiste già
|
||||||
sdirector_epass=Password mancante
|
sdirector_epass=Password mancante
|
||||||
|
|
||||||
storagec_title=Configurazione del daemon di archiviazione
|
storagec_title=Configurazione del Director dello Storage daemon
|
||||||
storagec_header=Opzioni del demone di archiviazione Bacula
|
storagec_header=Opzioni dello Storage daemon
|
||||||
storagec_name=Nome del demone
|
storagec_name=Nome del demone
|
||||||
storagec_port=Ascolta in porto
|
storagec_port=Porta di ascolto
|
||||||
storagec_jobs=Numero massimo di lavori simultanei
|
storagec_jobs=Numero massimo di processi simultanei
|
||||||
storagec_enone=Nessuna configurazione del demone di archiviazione trovata!
|
storagec_enone=Nessuna configurazione dello Storage daemon trovata!
|
||||||
storagec_dir=Directory di lavoro di Bacula
|
storagec_dir=Directory di lavoro di Bacula
|
||||||
storagec_err=Impossibile salvare la configurazione del daemon di archiviazione
|
storagec_err=Impossibile salvare la configurazione dello Storage daemon
|
||||||
storagec_ename=Nome del daemon di archiviazione mancante o non valido
|
storagec_ename=Nome dello dello Storage daemon mancante o non valido
|
||||||
storagec_eport=Numero porta mancante o non valido
|
storagec_eport=Numero porta mancante o non valido
|
||||||
storagec_ejobs=Numero mancante o non valido di lavori simultanei
|
storagec_ejobs=Numero mancante o non valido di processi simultanei
|
||||||
storagec_edir=Directory di lavoro mancante o inesistente
|
storagec_edir=Directory di lavoro mancante o inesistente
|
||||||
|
|
||||||
chooser_title=Seleziona Pianifica
|
chooser_title=Seleziona Pianificazione
|
||||||
chooser_monthsh=Mesi da eseguire
|
chooser_monthsh=Mesi in cui eseguire
|
||||||
chooser_months=Mesi dell'anno
|
chooser_months=Mesi dell'anno
|
||||||
chooser_all=Tutti
|
chooser_all=Tutti
|
||||||
chooser_sel=Selezionato sotto. ..
|
chooser_sel=Selezionati sotto. ..
|
||||||
chooser_ok=ok
|
chooser_ok=OK
|
||||||
chooser_timeh=Ora del giorno da eseguire
|
chooser_timeh=Ora del giorno in cui eseguire
|
||||||
chooser_time=Ora e minuti
|
chooser_time=Ora e minuti
|
||||||
chooser_weekdaysh=Giorni della settimana da eseguire
|
chooser_weekdaysh=Giorni della settimana in cui eseguire
|
||||||
chooser_weekdays=Giorni della settimana
|
chooser_weekdays=Giorni della settimana
|
||||||
chooser_weekdaynums=Numeri nel mese
|
chooser_weekdaynums=Numeri nel mese
|
||||||
chooser_daysh=Giorni del mese da eseguire
|
chooser_daysh=Giorni del mese in cui eseguire
|
||||||
chooser_days=Date
|
chooser_days=Date
|
||||||
chooser_err=Impossibile selezionare la pianificazione
|
chooser_err=Impossibile selezionare la pianificazione
|
||||||
chooser_emonths=Nessun mese scelto
|
chooser_emonths=Nessun mese scelto
|
||||||
@@ -621,43 +621,43 @@ chooser_edaysrange=I giorni selezionati del mese devono essere contigui
|
|||||||
weekdaynum_1=Primo
|
weekdaynum_1=Primo
|
||||||
weekdaynum_2=Secondo
|
weekdaynum_2=Secondo
|
||||||
weekdaynum_3=Terzo
|
weekdaynum_3=Terzo
|
||||||
weekdaynum_4=Il quarto
|
weekdaynum_4=Quarto
|
||||||
weekdaynum_5=Quinto
|
weekdaynum_5=Quinto
|
||||||
|
|
||||||
restore_title=Ripristinare il backup
|
restore_title=Ripristina backup
|
||||||
restore_title2=Ripristina backup nel gruppo Bacula
|
restore_title2=Ripristina backup nel gruppo
|
||||||
restore_title3=Ripristina backup gruppo Bacula
|
restore_title3=Ripristina backup gruppo Bacula
|
||||||
restore_header=Opzioni per il ripristino del processo di backup precedente
|
restore_header=Opzioni per il ripristino del processo di backup precedente
|
||||||
restore_job=Lavoro da ripristinare
|
restore_job=Processo da ripristinare
|
||||||
restore_files=File da ripristinare
|
restore_files=File da ripristinare
|
||||||
restore_client=Ripristina su client o gruppo
|
restore_client=Ripristina su client o gruppo
|
||||||
restore_storage=Ripristina dal dispositivo di archiviazione
|
restore_storage=Ripristina dal dispositivo di archiviazione
|
||||||
restore_where=Ripristina nella directory
|
restore_where=Ripristina nella directory
|
||||||
restore_where2=Altra directory principale
|
restore_where2=Altra directory principale
|
||||||
restore_ewhere=Directory mancante in cui ripristinare
|
restore_ewhere=Directory su cui ripristinare mancante
|
||||||
restore_ok=Ripristina ora
|
restore_ok=Ripristina ora
|
||||||
restore_err=Impossibile ripristinare il backup
|
restore_err=Impossibile ripristinare il backup
|
||||||
restore_efiles=Nessun file inserito
|
restore_efiles=Nessun file inserito
|
||||||
restore_ejob=ID lavoro non valido
|
restore_ejob=ID processo non valido
|
||||||
restore_ejobfiles=Nessun file registrato per lavoro
|
restore_ejobfiles=Nessun file archiviato per il processo
|
||||||
restore_run=Avvio del ripristino del processo $1 sul client $2 dalla memoria $3 ..
|
restore_run=Avvio del ripristino del processo $1 sul client $2 dal dispositivo $3 ..
|
||||||
restore_return=modulo di ripristino
|
restore_return=modulo di ripristino
|
||||||
restore_eok=.. impossibile avviare il lavoro
|
restore_eok=.. impossibile avviare il processo
|
||||||
restore_running=.. il ripristino è ora in esecuzione. Al termine, i risultati verranno visualizzati di seguito.
|
restore_running=.. il ripristino è ora in esecuzione. Al termine, i risultati verranno visualizzati di seguito.
|
||||||
restore_running2=.. il ripristino è stato avviato in background.
|
restore_running2=.. il ripristino è stato avviato in background.
|
||||||
restore_done=.. ripristino completato.
|
restore_done=.. ripristino completato.
|
||||||
restore_failed=.. il ripristino non è stato completato correttamente. Controllare il messaggio di errore sopra per i dettagli.
|
restore_failed=.. il ripristino non è stato completato correttamente. Controllare il messaggio di errore sopra per i dettagli.
|
||||||
restore_clist=--Clients--
|
restore_clist=--Client--
|
||||||
restore_glist=--Bacula Gruppi--
|
restore_glist=--Gruppi Bacula--
|
||||||
restore_eclient=Nessun cliente o gruppo Bacula selezionato
|
restore_eclient=Nessun client o gruppo Bacula selezionato
|
||||||
restore_egroup=Il gruppo Bacula non esiste
|
restore_egroup=Il gruppo Bacula non esiste
|
||||||
restore_jlist=- Lavori con sistema singolo--
|
restore_jlist=--Processi sistema singolo--
|
||||||
restore_njlist=--Bacula Groups Jobs--
|
restore_njlist=--Bacula Groups Jobs--
|
||||||
restore_all=--Tutti i clienti del gruppo--
|
restore_all=--Tutti i client del gruppo--
|
||||||
restore_eclients=Nessun membro del backup del gruppo Bacula trovato!
|
restore_eclients=Nessun membro del backup del gruppo Bacula trovato!
|
||||||
restore_eall1=L'opzione <b>Tutti i client di backup</b> deve essere selezionata per <b>Ripristina su client o gruppo</b> quando si esegue un ripristino di processo del gruppo Bacula
|
restore_eall1=L'opzione <b>Tutti i client di backup</b> deve essere selezionata per <b>Ripristina su client o gruppo</b> quando si esegue un processo di ripristino del gruppo Bacula
|
||||||
restore_eall2=L'opzione <b>Tutti i client di backup</b> può essere selezionata solo per <b>Ripristina su client o gruppo</b> quando si esegue un ripristino di processo del gruppo Bacula
|
restore_eall2=L'opzione <b>Tutti i client di backup</b> può essere selezionata solo per <b>Ripristina su client o gruppo</b> quando si esegue un processo di ripristino del gruppo Bacula
|
||||||
restore_enofiles=Nessuno dei file selezionati è nel backup
|
restore_enofiles=Nessuno dei file selezionati è nel backup
|
||||||
restore_level_F=Pieno
|
restore_level_F=Completo
|
||||||
restore_level_D=Differenziale
|
restore_level_D=Differenziale
|
||||||
restore_level_I=incrementale
|
restore_level_I=incrementale
|
||||||
@@ -2,7 +2,8 @@
|
|||||||
# Returns a list of files and directories under some directory
|
# Returns a list of files and directories under some directory
|
||||||
|
|
||||||
$trust_unknown_referers = 1;
|
$trust_unknown_referers = 1;
|
||||||
BEGIN { require './bacula-backup-lib.pl'; }
|
use JSON::PP;
|
||||||
|
require './bacula-backup-lib.pl';
|
||||||
&ReadParse();
|
&ReadParse();
|
||||||
|
|
||||||
# Input sanitization
|
# Input sanitization
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ use File::Basename;
|
|||||||
use File::Find;
|
use File::Find;
|
||||||
use JSON::PP;
|
use JSON::PP;
|
||||||
use HTTP::Tiny;
|
use HTTP::Tiny;
|
||||||
use HTML::Entities;
|
eval "use HTML::Entities";
|
||||||
use List::MoreUtils qw(any uniq);
|
use List::MoreUtils qw(any uniq);
|
||||||
use Cwd qw(cwd);
|
use Cwd qw(cwd);
|
||||||
use Encode qw/encode decode/;
|
use Encode qw/encode decode/;
|
||||||
@@ -61,7 +61,8 @@ sub main
|
|||||||
'allow-symlinks|as!' => \$opt{'allow-symlinks'},
|
'allow-symlinks|as!' => \$opt{'allow-symlinks'},
|
||||||
'git-commit|gc!' => \$opt{'git-commit'},
|
'git-commit|gc!' => \$opt{'git-commit'},
|
||||||
'log|l:s' => \$opt{'log'},
|
'log|l:s' => \$opt{'log'},
|
||||||
'verbose|v:i' => \$opt{'verbose'});
|
'verbose|v:i' => \$opt{'verbose'},
|
||||||
|
'yes|y:i' => \$opt{'assumeyes'});
|
||||||
|
|
||||||
# Print help and exit
|
# Print help and exit
|
||||||
pod2usage(0) if ($opt{'help'});
|
pod2usage(0) if ($opt{'help'});
|
||||||
@@ -70,6 +71,11 @@ sub main
|
|||||||
if (!defined($opt{'verbose'})) {
|
if (!defined($opt{'verbose'})) {
|
||||||
$opt{'verbose'} = 1;
|
$opt{'verbose'} = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Enforce yes for all questions
|
||||||
|
if (defined($opt{'assumeyes'})) {
|
||||||
|
$opt{'assumeyes'} = 1;
|
||||||
|
}
|
||||||
|
|
||||||
# Get current path
|
# Get current path
|
||||||
my $path = cwd;
|
my $path = cwd;
|
||||||
@@ -232,7 +238,7 @@ sub main
|
|||||||
# Just run tests, and exit, without writing anything
|
# Just run tests, and exit, without writing anything
|
||||||
if (@{ $opt{'keys-test'} }) {
|
if (@{ $opt{'keys-test'} }) {
|
||||||
say CYAN, "Translation testing for selected keys is about to start ..", RESET;
|
say CYAN, "Translation testing for selected keys is about to start ..", RESET;
|
||||||
if (prompt('next')) {
|
if (prompt('next', \%opt)) {
|
||||||
go(\%opt, \%data);
|
go(\%opt, \%data);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -245,11 +251,20 @@ sub main
|
|||||||
talk('affected', \%opt, \%data);
|
talk('affected', \%opt, \%data);
|
||||||
|
|
||||||
# Run in overwrite mode
|
# Run in overwrite mode
|
||||||
if ($opt{'mode'} eq 'full') {
|
if ($opt{'mode'} eq 'clean') {
|
||||||
|
# # Execute clean
|
||||||
|
talk('clean-pre', \%opt, \%data);
|
||||||
|
if (prompt('next', \%opt)) {
|
||||||
|
go(\%opt, \%data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Run in overwrite mode
|
||||||
|
elsif ($opt{'mode'} eq 'full') {
|
||||||
|
|
||||||
# Execute force transcode/translate
|
# Execute force transcode/translate
|
||||||
talk('overwrite-pre', \%opt, \%data);
|
talk('overwrite-pre', \%opt, \%data);
|
||||||
if (prompt('next')) {
|
if (prompt('next', \%opt)) {
|
||||||
go(\%opt, \%data);
|
go(\%opt, \%data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -274,7 +289,7 @@ sub main
|
|||||||
talk('sync-pre', \%opt, \%data);
|
talk('sync-pre', \%opt, \%data);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prompt('next')) {
|
if (prompt('next', \%opt)) {
|
||||||
go(\%opt, \%data);
|
go(\%opt, \%data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -537,7 +552,7 @@ sub language_transcode
|
|||||||
eval {$string = decode($encoding, $string)};
|
eval {$string = decode($encoding, $string)};
|
||||||
if ($@) {
|
if ($@) {
|
||||||
say "Error found: $@";
|
say "Error found: $@";
|
||||||
if (!prompt('next')) {
|
if (!prompt('next', $opt)) {
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -949,6 +964,7 @@ sub go
|
|||||||
my $verbose = $opt->{'verbose'} || @{$keys_test};
|
my $verbose = $opt->{'verbose'} || @{$keys_test};
|
||||||
my $mode_sync = $opt->{'mode'} ne 'full';
|
my $mode_sync = $opt->{'mode'} ne 'full';
|
||||||
my $mode_transcode = $opt->{'mode'} eq 'transcode';
|
my $mode_transcode = $opt->{'mode'} eq 'transcode';
|
||||||
|
my $mode_clean = $opt->{'mode'} eq 'clean';
|
||||||
my $allow_symlinks = $opt->{'allow-symlinks'};
|
my $allow_symlinks = $opt->{'allow-symlinks'};
|
||||||
my $verbose_silent_mode = $mode_sync && $verbose != 2;
|
my $verbose_silent_mode = $mode_sync && $verbose != 2;
|
||||||
|
|
||||||
@@ -965,6 +981,12 @@ sub go
|
|||||||
|
|
||||||
# Check if there has been something to process, if not print a message
|
# Check if there has been something to process, if not print a message
|
||||||
my $output;
|
my $output;
|
||||||
|
|
||||||
|
# If cleaning called in this mode, throw an error
|
||||||
|
if ($mode_clean) {
|
||||||
|
say RED, "Error: Cleaning can only be performed when the target type is unset!", RESET;
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
# Build targets first
|
# Build targets first
|
||||||
talk_log(("Transcoding/translating " . CYAN BOLD, $module, RESET . " module's help .."), $data, 1);
|
talk_log(("Transcoding/translating " . CYAN BOLD, $module, RESET . " module's help .."), $data, 1);
|
||||||
@@ -1200,6 +1222,7 @@ sub go
|
|||||||
# Set message type
|
# Set message type
|
||||||
my $message_type_s1 = 'Transcoding/translating';
|
my $message_type_s1 = 'Transcoding/translating';
|
||||||
$message_type_s1 = 'Searching/replacing in' if (@{$values_fix});
|
$message_type_s1 = 'Searching/replacing in' if (@{$values_fix});
|
||||||
|
$message_type_s1 = 'Cleaning in' if ($mode_clean);
|
||||||
|
|
||||||
talk_log(("$message_type_s1 " . BLUE BOLD, $module, RESET . " module .."), $data, 1);
|
talk_log(("$message_type_s1 " . BLUE BOLD, $module, RESET . " module .."), $data, 1);
|
||||||
foreach $language (@{ $data->{'languages_source_list'} }) {
|
foreach $language (@{ $data->{'languages_source_list'} }) {
|
||||||
@@ -1223,6 +1246,51 @@ sub go
|
|||||||
my %language;
|
my %language;
|
||||||
my %language_auto;
|
my %language_auto;
|
||||||
|
|
||||||
|
# If in clean mode delete the file and go next
|
||||||
|
if ($mode_clean) {
|
||||||
|
|
||||||
|
# Language files
|
||||||
|
my $cfile = "$mpath/$code";
|
||||||
|
my $cfileauto = "$cfile.auto";
|
||||||
|
unlink($cfile);
|
||||||
|
unlink($cfileauto);
|
||||||
|
|
||||||
|
# Module files
|
||||||
|
foreach ('module', 'config', 'uconfig') {
|
||||||
|
my %mdata = %{$data};
|
||||||
|
$mdata{'type'} = $_;
|
||||||
|
my (undef, undef, $ffile) = source_data($module, \%mdata, $opt);
|
||||||
|
$ffile =~ s/\/$_\//\//;
|
||||||
|
my $cxfile = "$ffile.$code";
|
||||||
|
my $cxfileauto = "$cxfile.auto";
|
||||||
|
unlink($cxfile);
|
||||||
|
unlink($cxfileauto);
|
||||||
|
}
|
||||||
|
|
||||||
|
# Help files
|
||||||
|
my %hdata = %{$data};
|
||||||
|
$hdata{'type'} = 'help';
|
||||||
|
my (undef, $hpath) = source_data($module, \%hdata, $opt);
|
||||||
|
my @hdelete_targets;
|
||||||
|
if (-d $hpath) {
|
||||||
|
find(
|
||||||
|
{
|
||||||
|
wanted => sub {
|
||||||
|
my $found = $File::Find::name;
|
||||||
|
if ($found =~ /\.$code\./) {
|
||||||
|
push(@hdelete_targets, $found);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
$hpath);
|
||||||
|
unlink(@hdelete_targets);
|
||||||
|
}
|
||||||
|
|
||||||
|
# Go next, don't translate
|
||||||
|
$output++;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
my $message_type_s2 = "Processing";
|
my $message_type_s2 = "Processing";
|
||||||
$message_type_s2 = "Testing translations for selected keys with" if (@{$keys_test});
|
$message_type_s2 = "Testing translations for selected keys with" if (@{$keys_test});
|
||||||
|
|
||||||
@@ -1630,8 +1698,10 @@ sub get_google_translate_token
|
|||||||
|
|
||||||
sub prompt
|
sub prompt
|
||||||
{
|
{
|
||||||
my ($q) = @_;
|
my ($q, $opt) = @_;
|
||||||
|
if ($opt->{'assumeyes'}) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
if ($q eq 'next') {
|
if ($q eq 'next') {
|
||||||
return prompt("Do you want to proceed?");
|
return prompt("Do you want to proceed?");
|
||||||
}
|
}
|
||||||
@@ -1732,6 +1802,10 @@ sub talk
|
|||||||
say GREEN, "Affected languages" . RESET, DARK . " [$languages_count]" . RESET . ": ", YELLOW BOLD,
|
say GREEN, "Affected languages" . RESET, DARK . " [$languages_count]" . RESET . ": ", YELLOW BOLD,
|
||||||
"" . $languages . "", RESET;
|
"" . $languages . "", RESET;
|
||||||
}
|
}
|
||||||
|
if ($what eq 'clean-pre') {
|
||||||
|
say RED, "Danger! ", RESET, WHITE,
|
||||||
|
"The following operation will delete all files related to the affected lang-\nuage, including machine-translated files in all the mentioned modules listed above.",
|
||||||
|
}
|
||||||
if ($what eq 'overwrite-pre') {
|
if ($what eq 'overwrite-pre') {
|
||||||
say RED, "Warning! ", RESET, WHITE,
|
say RED, "Warning! ", RESET, WHITE,
|
||||||
"The following operation will force-translate and overwrite mentioned\nlanguages in all mentioned modules listed above, using ",
|
"The following operation will force-translate and overwrite mentioned\nlanguages in all mentioned modules listed above, using ",
|
||||||
@@ -1829,9 +1903,13 @@ Test translations for "index_stopmsg,trusted_warning" keys, in Russian and Germa
|
|||||||
|
|
||||||
- webmin language-manager -m=bind8 -t=ru,de -kt=index_stopmsg,trusted_warning
|
- webmin language-manager -m=bind8 -t=ru,de -kt=index_stopmsg,trusted_warning
|
||||||
|
|
||||||
|
Clean build directory by removing all kind of language files except English.
|
||||||
|
|
||||||
|
- webmin language-manager --mode=clean
|
||||||
|
|
||||||
=item --mode, -x <sync|full|transcode>
|
=item --mode, -x <sync|full|transcode>
|
||||||
|
|
||||||
Mode can be either <sync> or <full> or <transcode>. Default is set to "sync" and will only keep the keys found on template language file, while missing keys in target languages (translations), will be deleted, and newly added keys to template language file, will be translated. Mode "full" is meant to perform full translation, keeping human translated strings and overwriting all machine translations done in the past (not recommended to run). Mode "transcode" is useful to fix human translated language files, which stored in "utf-8" encoding already, while still having "í" or "é" HTML entities.
|
Mode can be either <sync> or <full> or <transcode> or <clean>. Default is set to "sync" and will only keep the keys found on template language file, while missing keys in target languages (translations), will be deleted, and newly added keys to template language file, will be translated. Mode "full" is meant to perform full translation, keeping human translated strings and overwriting all machine translations done in the past (not recommended to run). Mode "transcode" is useful to fix human translated language files, which stored in "utf-8" encoding already, while still having "í" or "é" HTML entities. Mode "clean" is useful to clean build package by removing all kind of language files except source language.
|
||||||
|
|
||||||
=item --type, -w <lang|ulang|help|config|uconfig|module>
|
=item --type, -w <lang|ulang|help|config|uconfig|module>
|
||||||
|
|
||||||
@@ -1917,4 +1995,4 @@ Verbosely print processed files and provide detailed output. By detault, verbose
|
|||||||
|
|
||||||
=head1 LICENSE AND COPYRIGHT
|
=head1 LICENSE AND COPYRIGHT
|
||||||
|
|
||||||
Copyright 2022 Ilia Rostovtsev <ilia@virtualmin.com>
|
Copyright 2020 Ilia Rostovtsev <ilia@virtualmin.com>
|
||||||
|
|||||||
153
bin/patch
Executable file
153
bin/patch
Executable file
@@ -0,0 +1,153 @@
|
|||||||
|
#!/usr/bin/env perl
|
||||||
|
# patch - Apply a patch to Webmin core or its modules from GitHub or a local file
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
use 5.010;
|
||||||
|
|
||||||
|
use Getopt::Long qw(:config permute pass_through);
|
||||||
|
use Pod::Usage;
|
||||||
|
use File::Basename;
|
||||||
|
use Cwd qw(cwd);
|
||||||
|
|
||||||
|
my %opt;
|
||||||
|
GetOptions(
|
||||||
|
'help|h' => \$opt{'help'},
|
||||||
|
'config|c=s' => \$opt{'config'},
|
||||||
|
);
|
||||||
|
pod2usage(0) if ($opt{'help'});
|
||||||
|
|
||||||
|
# Get Webmin path
|
||||||
|
my $path = cwd;
|
||||||
|
my $lib = "web-lib-funcs.pl";
|
||||||
|
if (!-r "$path/$lib") {
|
||||||
|
$path = dirname(dirname($0));
|
||||||
|
if (!-r "$path/$lib") {
|
||||||
|
$path = $path = Cwd::realpath('..');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Init core
|
||||||
|
my $config_dir = $opt{'config'} || '/etc/webmin';
|
||||||
|
$ENV{'WEBMIN_CONFIG'} = $config_dir;
|
||||||
|
push(@INC, $path);
|
||||||
|
eval 'use WebminCore';
|
||||||
|
init_config();
|
||||||
|
|
||||||
|
# Check if curl is installed
|
||||||
|
if (!has_command('curl')) {
|
||||||
|
print "curl is not installed\n";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check if git is installed
|
||||||
|
if (!has_command('git')) {
|
||||||
|
print "git is not installed\n";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get patch URL or file
|
||||||
|
my $patch = $ARGV[0];
|
||||||
|
|
||||||
|
# Params check
|
||||||
|
if (!$patch) {
|
||||||
|
pod2usage(0);
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Patch check
|
||||||
|
if ($patch !~ /^https?:\/\//) {
|
||||||
|
if (!-r $patch) {
|
||||||
|
print "Patch file $patch doesn't exist\n";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elsif ($patch =~ /^https?:\/\/(github|gitlab)\.com/ &&
|
||||||
|
$patch !~ /\.patch$/ && $patch !~ /\.diff$/) {
|
||||||
|
$patch .= '.patch';
|
||||||
|
}
|
||||||
|
|
||||||
|
# Parse module name from URL
|
||||||
|
my $module = "";
|
||||||
|
if ($patch =~ m{https://(github|gitlab)\.com/[^/]+/([^/]+)/commit/[^/]+}) {
|
||||||
|
$module = $2;
|
||||||
|
$module = "" if ($2 eq 'webmin');
|
||||||
|
# Special handling for some modules
|
||||||
|
$module = $module =~ /^virtualmin-pro$/ ?
|
||||||
|
'virtual-server/pro' :
|
||||||
|
'virtual-server'
|
||||||
|
if $module =~ /^virtualmin-(gpl|pro)$/;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check if module exists
|
||||||
|
if (!-d "$path/$module") {
|
||||||
|
print "Module $module doesn't exist\n";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Download command or cat patch file
|
||||||
|
my $cmd;
|
||||||
|
if ($patch =~ /^https?:\/\//) {
|
||||||
|
$cmd = "curl -s @{[quotemeta($patch)]}";
|
||||||
|
chdir "$path/$module";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$cmd = "cat @{[quotemeta($patch)]}";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Apply patch using Git
|
||||||
|
my $output = `$cmd 2>&1 | git apply --reject --verbose --whitespace=fix 2>&1`;
|
||||||
|
if ($output !~ /applied patch.*?cleanly/i) {
|
||||||
|
print "Patch failed: $output\n";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
print "Patch applied successfully to:\n";
|
||||||
|
print " $1\n" while $output =~ /^Applied patch\s+(\S+)/mg;
|
||||||
|
system("$config_dir/restart");
|
||||||
|
|
||||||
|
=pod
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
patch
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
Apply a patch to Webmin core or its modules from GitHub or a local file.
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
webmin patch patch-url/file
|
||||||
|
|
||||||
|
=head1 OPTIONS
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item --help, -h
|
||||||
|
|
||||||
|
Give this help list.
|
||||||
|
|
||||||
|
=item --config, -c
|
||||||
|
|
||||||
|
Specify the full path to the Webmin configuration directory. Defaults to
|
||||||
|
C</etc/webmin>
|
||||||
|
|
||||||
|
Examples of usage:
|
||||||
|
|
||||||
|
Apply a patch from a URL.
|
||||||
|
|
||||||
|
- webmin patch https://github.com/webmin/webmin/commit/e6a2bb15b0.patch
|
||||||
|
|
||||||
|
- webmin patch https://github.com/virtualmin/virtualmin-gpl/commit/f4433153d
|
||||||
|
|
||||||
|
Apply a patch from local file.
|
||||||
|
|
||||||
|
- cd /usr/libexec/webmin/virtual-server/pro &&
|
||||||
|
webmin patch /root/virtualmin-pro/patches/patch-1.patch
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=head1 LICENSE AND COPYRIGHT
|
||||||
|
|
||||||
|
Copyright 2024 Ilia Ross <ilia@virtualmin.com>
|
||||||
32
bin/webmin
32
bin/webmin
@@ -5,12 +5,9 @@ use strict;
|
|||||||
use warnings;
|
use warnings;
|
||||||
BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Color'; }
|
BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Color'; }
|
||||||
use 5.010; # Version in CentOS 6
|
use 5.010; # Version in CentOS 6
|
||||||
|
|
||||||
use Getopt::Long qw(:config permute pass_through);
|
use Getopt::Long qw(:config permute pass_through);
|
||||||
use Pod::Usage;
|
|
||||||
use Term::ANSIColor qw(:constants);
|
use Term::ANSIColor qw(:constants);
|
||||||
use File::Spec;
|
use Pod::Usage;
|
||||||
use File::Basename;
|
|
||||||
|
|
||||||
my $a0 = $ARGV[0];
|
my $a0 = $ARGV[0];
|
||||||
|
|
||||||
@@ -38,8 +35,12 @@ sub main {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
# Set defaults
|
||||||
$opt{'config'} ||= "/etc/webmin";
|
$opt{'config'} ||= "/etc/webmin";
|
||||||
$opt{'commands'} = $a0;
|
$opt{'commands'} = $a0;
|
||||||
|
|
||||||
|
# Load libs
|
||||||
|
loadlibs(\%opt);
|
||||||
|
|
||||||
my @remain = @ARGV;
|
my @remain = @ARGV;
|
||||||
# List commands?
|
# List commands?
|
||||||
@@ -48,7 +49,6 @@ sub main {
|
|||||||
exit 0;
|
exit 0;
|
||||||
} elsif ($opt{'version'} || $opt{'versions'}) {
|
} elsif ($opt{'version'} || $opt{'versions'}) {
|
||||||
# Load libs
|
# Load libs
|
||||||
my $root = root($opt{'config'});
|
|
||||||
my $ver_checked = sub {
|
my $ver_checked = sub {
|
||||||
my ($ver_remote, $ver_curr) = @_;
|
my ($ver_remote, $ver_curr) = @_;
|
||||||
if ($ver_remote && $ver_curr &&
|
if ($ver_remote && $ver_curr &&
|
||||||
@@ -82,6 +82,7 @@ sub main {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my $root = root($opt{'config'});
|
||||||
if ($root && -d $root) {
|
if ($root && -d $root) {
|
||||||
require("$root/web-lib-funcs.pl");
|
require("$root/web-lib-funcs.pl");
|
||||||
|
|
||||||
@@ -207,6 +208,9 @@ exit main( \@ARGV ) if !caller(0);
|
|||||||
sub run_command {
|
sub run_command {
|
||||||
my ( $optref, $subcmd, $remainref ) = @_;
|
my ( $optref, $subcmd, $remainref ) = @_;
|
||||||
|
|
||||||
|
# Load libs
|
||||||
|
loadlibs($optref);
|
||||||
|
|
||||||
# Figure out the Webmin root directory
|
# Figure out the Webmin root directory
|
||||||
my $root = root($optref->{'config'});
|
my $root = root($optref->{'config'});
|
||||||
|
|
||||||
@@ -237,6 +241,10 @@ sub run_command {
|
|||||||
|
|
||||||
sub get_command_path {
|
sub get_command_path {
|
||||||
my ($root, $subcmd, $optref) = @_;
|
my ($root, $subcmd, $optref) = @_;
|
||||||
|
|
||||||
|
# Load libs
|
||||||
|
loadlibs($optref);
|
||||||
|
|
||||||
# Check for a root-level command (in "$root/bin")
|
# Check for a root-level command (in "$root/bin")
|
||||||
my $command_path;
|
my $command_path;
|
||||||
if ($subcmd) {
|
if ($subcmd) {
|
||||||
@@ -374,6 +382,20 @@ sub root {
|
|||||||
return $root;
|
return $root;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# loadlibs - Load libraries from the Webmin vendor dir
|
||||||
|
# as those may not be installed as dependency, because
|
||||||
|
# Webmin already provides them from package manager
|
||||||
|
# perspective.
|
||||||
|
sub loadlibs {
|
||||||
|
my ($optref) = @_;
|
||||||
|
$optref->{'config'} ||= "/etc/webmin";
|
||||||
|
my $root = root($optref->{'config'});
|
||||||
|
my $libroot = "$root/vendor_perl";
|
||||||
|
eval "use lib '$libroot'";
|
||||||
|
eval "use File::Basename";
|
||||||
|
eval "use File::Spec";
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|||||||
@@ -64,12 +64,12 @@ our $dnssec_dlv_zone = "dlv.isc.org.";
|
|||||||
our @dnssec_dlv_key = ( 257, 3, 5, '"BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URkY62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboMQKtUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VStTDN0YUuWrBNh"' );
|
our @dnssec_dlv_key = ( 257, 3, 5, '"BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URkY62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboMQKtUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VStTDN0YUuWrBNh"' );
|
||||||
|
|
||||||
my $rand_flag;
|
my $rand_flag;
|
||||||
if ($gconfig{'os_type'} =~ /-linux$/ &&
|
if ($gconfig{'os_type'} =~ /-linux$/ &&
|
||||||
|
$config{'force_random'} eq '0' &&
|
||||||
-r "/dev/urandom" &&
|
-r "/dev/urandom" &&
|
||||||
!$config{'force_random'} &&
|
$bind_version =~ /^9\./ &&
|
||||||
$bind_version &&
|
&compare_version_numbers($bind_version, '<', '9.14.2')) {
|
||||||
&compare_version_numbers($bind_version, '9.14') < 0) {
|
# Version: 9.14.2 deprecated the use of -r option
|
||||||
# Version: 9.14.2 deprecated the use of -r option
|
|
||||||
# in favor of using /dev/random [bugs:#5370]
|
# in favor of using /dev/random [bugs:#5370]
|
||||||
$rand_flag = "-r /dev/urandom";
|
$rand_flag = "-r /dev/urandom";
|
||||||
}
|
}
|
||||||
@@ -376,9 +376,22 @@ return @rv ? wantarray ? @rv : $rv[0]
|
|||||||
sub find_value
|
sub find_value
|
||||||
{
|
{
|
||||||
my @v = &find($_[0], $_[1]);
|
my @v = &find($_[0], $_[1]);
|
||||||
if (!@v) { return undef; }
|
if (!@v) {
|
||||||
elsif (wantarray) { return map { $_->{'value'} } @v; }
|
return undef;
|
||||||
else { return $v[0]->{'value'}; }
|
}
|
||||||
|
elsif (wantarray) {
|
||||||
|
return map { &extract_value($_) } @v;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return &extract_value($v[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub extract_value
|
||||||
|
{
|
||||||
|
my ($dir) = @_;
|
||||||
|
return defined($dir->{'value'}) ? $dir->{'value'} :
|
||||||
|
defined($dir->{'values'}) && @{$dir->{'values'}} ? $dir->{'values'}->[0] : undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
# base_directory([&config], [no-cache])
|
# base_directory([&config], [no-cache])
|
||||||
@@ -436,6 +449,9 @@ for(my $i=0; $i<@oldv || $i<@newv; $i++) {
|
|||||||
$newv[$i]->{'line'} = $_[0]->{'eline'};
|
$newv[$i]->{'line'} = $_[0]->{'eline'};
|
||||||
$newv[$i]->{'eline'} =
|
$newv[$i]->{'eline'} =
|
||||||
$_[0]->{'eline'} + scalar(@nl) - 1;
|
$_[0]->{'eline'} + scalar(@nl) - 1;
|
||||||
|
if (!defined($newv[$i]->{'index'})) {
|
||||||
|
$newv[$i]->{'index'} = @$pm ? $pm->[@$pm - 1]->{'index'} + 1 : 0;
|
||||||
|
}
|
||||||
&renumber($parent, $_[0]->{'eline'}-1,
|
&renumber($parent, $_[0]->{'eline'}-1,
|
||||||
$_[0]->{'file'}, scalar(@nl));
|
$_[0]->{'file'}, scalar(@nl));
|
||||||
}
|
}
|
||||||
@@ -456,6 +472,9 @@ for(my $i=0; $i<@oldv || $i<@newv; $i++) {
|
|||||||
$newv[$i]->{'line'} = $_[0]->{'line'}+1;
|
$newv[$i]->{'line'} = $_[0]->{'line'}+1;
|
||||||
$newv[$i]->{'eline'} =
|
$newv[$i]->{'eline'} =
|
||||||
$_[0]->{'line'} + scalar(@nl);
|
$_[0]->{'line'} + scalar(@nl);
|
||||||
|
if (!defined($newv[$i]->{'index'})) {
|
||||||
|
$newv[$i]->{'index'} = 0;
|
||||||
|
}
|
||||||
&renumber($parent, $_[0]->{'line'},
|
&renumber($parent, $_[0]->{'line'},
|
||||||
$_[0]->{'file'}, scalar(@nl));
|
$_[0]->{'file'}, scalar(@nl));
|
||||||
}
|
}
|
||||||
@@ -500,9 +519,8 @@ for(my $i=0; $i<@oldv || $i<@newv; $i++) {
|
|||||||
sub recursive_set_value
|
sub recursive_set_value
|
||||||
{
|
{
|
||||||
my ($dir) = @_;
|
my ($dir) = @_;
|
||||||
if ($dir->{'values'}) {
|
if (!defined($dir->{'value'})) {
|
||||||
my @v = @{$dir->{'values'}};
|
$dir->{'value'} = &extract_value($dir);
|
||||||
$dir->{'value'} = @v ? $v[0] : undef;
|
|
||||||
}
|
}
|
||||||
if ($dir->{'type'} && $dir->{'type'} == 1 && $dir->{'members'}) {
|
if ($dir->{'type'} && $dir->{'type'} == 1 && $dir->{'members'}) {
|
||||||
foreach my $m (@{$dir->{'members'}}) {
|
foreach my $m (@{$dir->{'members'}}) {
|
||||||
@@ -988,7 +1006,7 @@ else {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($access{'dironly'}) {
|
if ($access{'dironly'}) {
|
||||||
# Check directory access control
|
# Check directory access control
|
||||||
return 1 if (!$file);
|
return 1 if (!$file);
|
||||||
$file = &absolute_path($file);
|
$file = &absolute_path($file);
|
||||||
return 0 if (!&allowed_zone_file(\%access, $file));
|
return 0 if (!&allowed_zone_file(\%access, $file));
|
||||||
@@ -1318,9 +1336,9 @@ elsif ($type eq "DMARC") {
|
|||||||
print &ui_table_row($text{'value_dmarcfo'},
|
print &ui_table_row($text{'value_dmarcfo'},
|
||||||
&ui_select("dmarcfo", $dmarc->{'fo'},
|
&ui_select("dmarcfo", $dmarc->{'fo'},
|
||||||
[ [ undef, $text{'default'} ],
|
[ [ undef, $text{'default'} ],
|
||||||
[ 0, $text{'value_dmarcfo0'} ],
|
[ 0, $text{'value_dmarcfo0'} ],
|
||||||
[ 1, $text{'value_dmarcfo1'} ],
|
[ 1, $text{'value_dmarcfo1'} ],
|
||||||
[ 'd', $text{'value_dmarcfod'} ],
|
[ 'd', $text{'value_dmarcfod'} ],
|
||||||
[ 's', $text{'value_dmarcfos'} ] ]));
|
[ 's', $text{'value_dmarcfos'} ] ]));
|
||||||
}
|
}
|
||||||
elsif ($type eq "NSEC3PARAM") {
|
elsif ($type eq "NSEC3PARAM") {
|
||||||
@@ -1474,7 +1492,7 @@ return 1;
|
|||||||
|
|
||||||
# expand_ip6(ip)
|
# expand_ip6(ip)
|
||||||
# Transform compact (with ::) IPv6 address to the unique expanded form
|
# Transform compact (with ::) IPv6 address to the unique expanded form
|
||||||
# (without :: and leading zeroes in all parts)
|
# (without :: and leading zeroes in all parts)
|
||||||
sub expand_ip6
|
sub expand_ip6
|
||||||
{
|
{
|
||||||
my ($ip) = @_;
|
my ($ip) = @_;
|
||||||
@@ -1490,7 +1508,7 @@ return $ip;
|
|||||||
}
|
}
|
||||||
|
|
||||||
# expandall_ip6(ip)
|
# expandall_ip6(ip)
|
||||||
# Transform IPv6 address to the expanded form containing all internal 0's
|
# Transform IPv6 address to the expanded form containing all internal 0's
|
||||||
sub expandall_ip6
|
sub expandall_ip6
|
||||||
{
|
{
|
||||||
my ($ip) = @_;
|
my ($ip) = @_;
|
||||||
@@ -1501,7 +1519,7 @@ $ip =~ s/(:|^)(\w)(?=:|$)/:000$2/g;
|
|||||||
return $ip;
|
return $ip;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub time_unit_choice
|
sub time_unit_choice
|
||||||
{
|
{
|
||||||
my ($name, $value) = @_;
|
my ($name, $value) = @_;
|
||||||
return &ui_select($name, $value =~ /^(S?)$/i ? "" :
|
return &ui_select($name, $value =~ /^(S?)$/i ? "" :
|
||||||
@@ -1830,10 +1848,6 @@ sub create_slave_zone
|
|||||||
{
|
{
|
||||||
my $parent = &get_config_parent();
|
my $parent = &get_config_parent();
|
||||||
my $conf = $parent->{'members'};
|
my $conf = $parent->{'members'};
|
||||||
my $opts = &find("options", $conf);
|
|
||||||
if (!$opts) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Check if exists in the view
|
# Check if exists in the view
|
||||||
my @zones;
|
my @zones;
|
||||||
@@ -1927,9 +1941,6 @@ my ($name, $slaves, $viewname, $file, $records) = @_;
|
|||||||
my $parent = &get_config_parent();
|
my $parent = &get_config_parent();
|
||||||
my $conf = $parent->{'members'};
|
my $conf = $parent->{'members'};
|
||||||
my $opts = &find("options", $conf);
|
my $opts = &find("options", $conf);
|
||||||
if (!$opts) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Check if exists in the view
|
# Check if exists in the view
|
||||||
my @zones;
|
my @zones;
|
||||||
@@ -1964,22 +1975,36 @@ if (!$file) {
|
|||||||
push(@{$dir->{'members'}}, { 'name' => 'file',
|
push(@{$dir->{'members'}}, { 'name' => 'file',
|
||||||
'values' => [ $file ] } );
|
'values' => [ $file ] } );
|
||||||
|
|
||||||
# Add slave IPs
|
# Allow transfer from slave IPs
|
||||||
if (@$slaves) {
|
my (@notify, @transfer);
|
||||||
|
foreach my $s (@$slaves) {
|
||||||
|
push(@notify, { 'name' => $s });
|
||||||
|
push(@transfer, { 'name' => $s });
|
||||||
|
}
|
||||||
|
if (@transfer) {
|
||||||
|
my $gat = $opts ? &find("allow-transfer", $opts->{'members'}) : undef;
|
||||||
|
if ($gat) {
|
||||||
|
push(@transfer, @{$gat->{'members'}});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (@notify) {
|
||||||
|
my %done;
|
||||||
|
@notify = grep { !$done{$_->{'name'}}++ } @notify;
|
||||||
my $also = { 'name' => 'also-notify',
|
my $also = { 'name' => 'also-notify',
|
||||||
'type' => 1,
|
'type' => 1,
|
||||||
'members' => [ ] };
|
'members' => \@notify};
|
||||||
my $allow = { 'name' => 'allow-transfer',
|
push(@{$dir->{'members'}}, $also);
|
||||||
'type' => 1,
|
|
||||||
'members' => [ ] };
|
|
||||||
foreach my $s (@$slaves) {
|
|
||||||
push(@{$also->{'members'}}, { 'name' => $s });
|
|
||||||
push(@{$allow->{'members'}}, { 'name' => $s });
|
|
||||||
}
|
|
||||||
push(@{$dir->{'members'}}, $also, $allow);
|
|
||||||
push(@{$dir->{'members'}}, { 'name' => 'notify',
|
push(@{$dir->{'members'}}, { 'name' => 'notify',
|
||||||
'values' => [ 'yes' ] });
|
'values' => [ 'yes' ] });
|
||||||
}
|
}
|
||||||
|
if (@transfer) {
|
||||||
|
my %done;
|
||||||
|
@transfer = grep { !$done{$_->{'name'}}++ } @transfer;
|
||||||
|
my $allow = { 'name' => 'allow-transfer',
|
||||||
|
'type' => 1,
|
||||||
|
'members' => \@transfer };
|
||||||
|
push(@{$dir->{'members'}}, $allow);
|
||||||
|
}
|
||||||
|
|
||||||
# Create the zone file, with records
|
# Create the zone file, with records
|
||||||
my $ZONE;
|
my $ZONE;
|
||||||
@@ -2615,7 +2640,7 @@ my $parent = &get_config_parent();
|
|||||||
my $bconf = &get_config();
|
my $bconf = &get_config();
|
||||||
my $conf = $bconf;
|
my $conf = $bconf;
|
||||||
if ($zone->{'viewindex'} ne '') {
|
if ($zone->{'viewindex'} ne '') {
|
||||||
my $view = $conf->[$zone->{'viewindex'}];
|
my $view = $conf->[$zone->{'viewindex'}];
|
||||||
$conf = $view->{'members'};
|
$conf = $view->{'members'};
|
||||||
$parent = $view;
|
$parent = $view;
|
||||||
}
|
}
|
||||||
@@ -2884,7 +2909,7 @@ foreach my $slave (@slaves) {
|
|||||||
}
|
}
|
||||||
if ($config{'extra_slaves'}) {
|
if ($config{'extra_slaves'}) {
|
||||||
push(@otherslaves,
|
push(@otherslaves,
|
||||||
grep { $_ ne '' }
|
grep { $_ ne '' }
|
||||||
map { &to_ipaddress($_) || &to_ip6address($_) }
|
map { &to_ipaddress($_) || &to_ip6address($_) }
|
||||||
split(/\s+/, $config{'extra_slaves'}));
|
split(/\s+/, $config{'extra_slaves'}));
|
||||||
}
|
}
|
||||||
@@ -3010,7 +3035,7 @@ my %on = map { $_, 1 } @{$_[0]};
|
|||||||
&remote_error_setup(\&slave_error_handler);
|
&remote_error_setup(\&slave_error_handler);
|
||||||
my @slaveerrs;
|
my @slaveerrs;
|
||||||
foreach my $slave (&list_slave_servers()) {
|
foreach my $slave (&list_slave_servers()) {
|
||||||
next if (%on && !$on{$slave->{'host'}});
|
next if (%on && !$on{$slave->{'nsname'}} && !$on{$slave->{'host'}});
|
||||||
|
|
||||||
# Find the PID file
|
# Find the PID file
|
||||||
$slave_error = undef;
|
$slave_error = undef;
|
||||||
@@ -3302,7 +3327,7 @@ return &has_command($config{'signzone'}) &&
|
|||||||
}
|
}
|
||||||
|
|
||||||
# supports_dnssec_client()
|
# supports_dnssec_client()
|
||||||
# Returns 2 if this BIND can send and verify DNSSEC requests, 1 if the
|
# Returns 2 if this BIND can send and verify DNSSEC requests, 1 if the
|
||||||
# dnssec-validation directive is not supported, 0 otherwise
|
# dnssec-validation directive is not supported, 0 otherwise
|
||||||
sub supports_dnssec_client
|
sub supports_dnssec_client
|
||||||
{
|
{
|
||||||
@@ -3327,13 +3352,15 @@ return $alg eq 'RSASHA256' ? ( 2048, 4096 ) :
|
|||||||
$alg eq 'NSEC3DSA' ? ( 512, 1024, 64 ) :
|
$alg eq 'NSEC3DSA' ? ( 512, 1024, 64 ) :
|
||||||
$alg eq 'ECDSAP256SHA256' ? ( 128, 512 ) :
|
$alg eq 'ECDSAP256SHA256' ? ( 128, 512 ) :
|
||||||
$alg eq 'ECDSAP384SHA384' ? ( 128, 512 ) :
|
$alg eq 'ECDSAP384SHA384' ? ( 128, 512 ) :
|
||||||
|
$alg eq 'ED25519' ? ( 1, 512 ) :
|
||||||
|
$alg eq 'ED448' ? ( 1, 512 ) :
|
||||||
( );
|
( );
|
||||||
}
|
}
|
||||||
|
|
||||||
sub list_dnssec_algorithms
|
sub list_dnssec_algorithms
|
||||||
{
|
{
|
||||||
return ("RSASHA1", "RSASHA256", "RSAMD5", "DSA", "DH", "HMAC-MD5",
|
return ("RSASHA1", "RSASHA256", "RSAMD5", "DSA", "DH", "HMAC-MD5",
|
||||||
"NSEC3RSASHA1", "NSEC3DSA", "ECDSAP256SHA256", "ECDSAP384SHA384");
|
"NSEC3RSASHA1", "NSEC3DSA", "ECDSAP256SHA256", "ECDSAP384SHA384", "ED25519", "ED448");
|
||||||
}
|
}
|
||||||
|
|
||||||
# get_keys_dir(&zone|&zone-name)
|
# get_keys_dir(&zone|&zone-name)
|
||||||
@@ -3579,7 +3606,7 @@ for(my $i=$#recs; $i>=0; $i--) {
|
|||||||
if ($recs[$i]->{'type'} eq 'NSEC' ||
|
if ($recs[$i]->{'type'} eq 'NSEC' ||
|
||||||
$recs[$i]->{'type'} eq 'NSEC3' ||
|
$recs[$i]->{'type'} eq 'NSEC3' ||
|
||||||
$recs[$i]->{'type'} eq 'RRSIG' ||
|
$recs[$i]->{'type'} eq 'RRSIG' ||
|
||||||
$recs[$i]->{'type'} eq 'NSEC3PARAM' && $tools ||
|
$recs[$i]->{'type'} eq 'NSEC3PARAM' ||
|
||||||
$recs[$i]->{'type'} eq 'DNSKEY') {
|
$recs[$i]->{'type'} eq 'DNSKEY') {
|
||||||
&delete_record($fn, $recs[$i]);
|
&delete_record($fn, $recs[$i]);
|
||||||
}
|
}
|
||||||
@@ -3620,7 +3647,7 @@ while($tries++ < 10) {
|
|||||||
$out = &backquote_logged(
|
$out = &backquote_logged(
|
||||||
"cd ".quotemeta($dir)." && ".
|
"cd ".quotemeta($dir)." && ".
|
||||||
"$config{'signzone'} -o ".quotemeta($dom).
|
"$config{'signzone'} -o ".quotemeta($dom).
|
||||||
($alg =~ /^(NSEC3|RSASHA256|RSASHA512|ECCGOST|ECDSAP256SHA256|ECDSAP384SHA384)/ ? " -3 - -u" : "").
|
($alg =~ /^(NSEC3|RSASHA256|RSASHA512|ECCGOST|ECDSAP256SHA256|ECDSAP384SHA384|ED25519|ED448)/ ? " -3 - -u" : "").
|
||||||
" -f ".quotemeta($signed)." ".
|
" -f ".quotemeta($signed)." ".
|
||||||
quotemeta($chrootfn)." 2>&1");
|
quotemeta($chrootfn)." 2>&1");
|
||||||
last if (!$?);
|
last if (!$?);
|
||||||
@@ -3692,11 +3719,11 @@ my ($z, $recs, $bump) = @_;
|
|||||||
|
|
||||||
# Check if zones are managed by dnssec-tools
|
# Check if zones are managed by dnssec-tools
|
||||||
my $dom = $z->{'members'} ? $z->{'values'}->[0] : $z->{'name'};
|
my $dom = $z->{'members'} ? $z->{'values'}->[0] : $z->{'name'};
|
||||||
|
|
||||||
# If zone is managed through dnssec-tools use zonesigner for resigning the zone
|
# If zone is managed through dnssec-tools use zonesigner for resigning the zone
|
||||||
if (&check_if_dnssec_tools_managed($dom)) {
|
if (&check_if_dnssec_tools_managed($dom)) {
|
||||||
# Do the signing
|
# Do the signing
|
||||||
my $zonefile = &get_zone_file($z);
|
my $zonefile = &get_zone_file($z);
|
||||||
my $krfile = "$zonefile".".krf";
|
my $krfile = "$zonefile".".krf";
|
||||||
|
|
||||||
&lock_file(&make_chroot($zonefile));
|
&lock_file(&make_chroot($zonefile));
|
||||||
@@ -3878,21 +3905,21 @@ return \%rv;
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub get_dnssectools_config
|
sub get_dnssectools_config
|
||||||
{
|
{
|
||||||
&lock_file($config{'dnssectools_conf'});
|
&lock_file($config{'dnssectools_conf'});
|
||||||
my $lref = &read_file_lines($config{'dnssectools_conf'});
|
my $lref = &read_file_lines($config{'dnssectools_conf'});
|
||||||
my @rv;
|
my @rv;
|
||||||
my $lnum = 0;
|
my $lnum = 0;
|
||||||
foreach my $line (@$lref) {
|
foreach my $line (@$lref) {
|
||||||
my ($n, $v) = split(/\s+/, $line, 2);
|
my ($n, $v) = split(/\s+/, $line, 2);
|
||||||
# Do basic sanity checking
|
# Do basic sanity checking
|
||||||
$v =~ /(\S+)/;
|
$v =~ /(\S+)/;
|
||||||
$v = $1;
|
$v = $1;
|
||||||
if ($n) {
|
if ($n) {
|
||||||
push(@rv, { 'name' => $n, 'value' => $v, 'line' => $lnum });
|
push(@rv, { 'name' => $n, 'value' => $v, 'line' => $lnum });
|
||||||
}
|
}
|
||||||
$lnum++;
|
$lnum++;
|
||||||
}
|
}
|
||||||
&flush_file_lines();
|
&flush_file_lines();
|
||||||
&unlock_file($config{'dnssectools_conf'});
|
&unlock_file($config{'dnssectools_conf'});
|
||||||
return \@rv;
|
return \@rv;
|
||||||
@@ -3907,7 +3934,7 @@ sub save_dnssectools_directive
|
|||||||
|
|
||||||
&lock_file($config{'dnssectools_conf'});
|
&lock_file($config{'dnssectools_conf'});
|
||||||
my $lref = &read_file_lines($config{'dnssectools_conf'});
|
my $lref = &read_file_lines($config{'dnssectools_conf'});
|
||||||
|
|
||||||
foreach my $n (keys %$nv) {
|
foreach my $n (keys %$nv) {
|
||||||
my $old = &find($n, $conf);
|
my $old = &find($n, $conf);
|
||||||
if ($old) {
|
if ($old) {
|
||||||
@@ -3931,14 +3958,14 @@ sub list_dnssec_dne
|
|||||||
}
|
}
|
||||||
|
|
||||||
# list_dnssec_dshash()
|
# list_dnssec_dshash()
|
||||||
# return a list containing the different DS record hash types
|
# return a list containing the different DS record hash types
|
||||||
sub list_dnssec_dshash
|
sub list_dnssec_dshash
|
||||||
{
|
{
|
||||||
return ("SHA1", "SHA256");
|
return ("SHA1", "SHA256");
|
||||||
}
|
}
|
||||||
|
|
||||||
# schedule_dnssec_cronjob()
|
# schedule_dnssec_cronjob()
|
||||||
# schedule a cron job to handle periodic resign operations
|
# schedule a cron job to handle periodic resign operations
|
||||||
sub schedule_dnssec_cronjob
|
sub schedule_dnssec_cronjob
|
||||||
{
|
{
|
||||||
my $job;
|
my $job;
|
||||||
@@ -3971,7 +3998,7 @@ sub schedule_dnssec_cronjob
|
|||||||
&unlock_file($module_config_file);
|
&unlock_file($module_config_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
# dt_sign_zone(zone, nsec3)
|
# dt_sign_zone(zone, nsec3)
|
||||||
# Replaces a zone's file with one containing signed records.
|
# Replaces a zone's file with one containing signed records.
|
||||||
sub dt_sign_zone
|
sub dt_sign_zone
|
||||||
{
|
{
|
||||||
@@ -4010,9 +4037,9 @@ sub dt_sign_zone
|
|||||||
$recs[$i]->{'type'} eq 'RRSIG' ||
|
$recs[$i]->{'type'} eq 'RRSIG' ||
|
||||||
$recs[$i]->{'type'} eq 'DNSKEY') {
|
$recs[$i]->{'type'} eq 'DNSKEY') {
|
||||||
&delete_record($z, $recs[$i]);
|
&delete_record($z, $recs[$i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
©_source_dest($z_chroot, $usz);
|
©_source_dest($z_chroot, $usz);
|
||||||
|
|
||||||
$cmd = "$zonesigner $nsec3param".
|
$cmd = "$zonesigner $nsec3param".
|
||||||
" -genkeys ".
|
" -genkeys ".
|
||||||
@@ -4054,13 +4081,13 @@ sub dt_sign_zone
|
|||||||
|
|
||||||
rollrec_unlock();
|
rollrec_unlock();
|
||||||
&unlock_file($z_chroot);
|
&unlock_file($z_chroot);
|
||||||
|
|
||||||
&dt_rollerd_restart();
|
&dt_rollerd_restart();
|
||||||
&restart_bind();
|
&restart_bind();
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
# dt_resign_zone(zone-name, zonefile, krfile, threshold)
|
# dt_resign_zone(zone-name, zonefile, krfile, threshold)
|
||||||
# Replaces a zone's file with one containing signed records.
|
# Replaces a zone's file with one containing signed records.
|
||||||
sub dt_resign_zone
|
sub dt_resign_zone
|
||||||
{
|
{
|
||||||
@@ -4081,7 +4108,7 @@ sub dt_resign_zone
|
|||||||
rollrec_lock();
|
rollrec_lock();
|
||||||
|
|
||||||
# Remove DNSSEC records and save the unsigned zone file
|
# Remove DNSSEC records and save the unsigned zone file
|
||||||
@recs = &read_zone_file($z, $d);
|
@recs = &read_zone_file($z, $d);
|
||||||
my $tools = &have_dnssec_tools_support();
|
my $tools = &have_dnssec_tools_support();
|
||||||
for(my $i=$#recs; $i>=0; $i--) {
|
for(my $i=$#recs; $i>=0; $i--) {
|
||||||
if ($recs[$i]->{'type'} eq 'NSEC' ||
|
if ($recs[$i]->{'type'} eq 'NSEC' ||
|
||||||
@@ -4090,12 +4117,12 @@ sub dt_resign_zone
|
|||||||
$recs[$i]->{'type'} eq 'RRSIG' ||
|
$recs[$i]->{'type'} eq 'RRSIG' ||
|
||||||
$recs[$i]->{'type'} eq 'DNSKEY') {
|
$recs[$i]->{'type'} eq 'DNSKEY') {
|
||||||
&delete_record($z, $recs[$i]);
|
&delete_record($z, $recs[$i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
©_source_dest($z_chroot, $usz);
|
©_source_dest($z_chroot, $usz);
|
||||||
|
|
||||||
if ($t > 0) {
|
if ($t > 0) {
|
||||||
$threshold = "-threshold ".quotemeta("-$t"."d"." ");
|
$threshold = "-threshold ".quotemeta("-$t"."d"." ");
|
||||||
}
|
}
|
||||||
|
|
||||||
$cmd = "$zonesigner -verbose -verbose".
|
$cmd = "$zonesigner -verbose -verbose".
|
||||||
@@ -4118,7 +4145,7 @@ sub dt_resign_zone
|
|||||||
}
|
}
|
||||||
|
|
||||||
# dt_zskroll_zone(zone-name)
|
# dt_zskroll_zone(zone-name)
|
||||||
# Initiates a zsk rollover operation for the zone
|
# Initiates a zsk rollover operation for the zone
|
||||||
sub dt_zskroll_zone
|
sub dt_zskroll_zone
|
||||||
{
|
{
|
||||||
my ($d) = @_;
|
my ($d) = @_;
|
||||||
@@ -4131,7 +4158,7 @@ sub dt_zskroll_zone
|
|||||||
}
|
}
|
||||||
|
|
||||||
# dt_kskroll_zone(zone-name)
|
# dt_kskroll_zone(zone-name)
|
||||||
# Initiates a ksk rollover operation for the zone
|
# Initiates a ksk rollover operation for the zone
|
||||||
sub dt_kskroll_zone
|
sub dt_kskroll_zone
|
||||||
{
|
{
|
||||||
my ($d) = @_;
|
my ($d) = @_;
|
||||||
@@ -4144,7 +4171,7 @@ sub dt_kskroll_zone
|
|||||||
}
|
}
|
||||||
|
|
||||||
# dt_notify_parentzone(zone-name)
|
# dt_notify_parentzone(zone-name)
|
||||||
# Notifies rollerd that the new DS record has been published in the parent zone
|
# Notifies rollerd that the new DS record has been published in the parent zone
|
||||||
sub dt_notify_parentzone
|
sub dt_notify_parentzone
|
||||||
{
|
{
|
||||||
my ($d) = @_;
|
my ($d) = @_;
|
||||||
@@ -4157,7 +4184,7 @@ sub dt_notify_parentzone
|
|||||||
}
|
}
|
||||||
|
|
||||||
# dt_rollerd_restart()
|
# dt_rollerd_restart()
|
||||||
# Restart the rollerd daemon
|
# Restart the rollerd daemon
|
||||||
sub dt_rollerd_restart
|
sub dt_rollerd_restart
|
||||||
{
|
{
|
||||||
my $rollerd;
|
my $rollerd;
|
||||||
@@ -4169,7 +4196,7 @@ sub dt_rollerd_restart
|
|||||||
return $text{'dt_zone_enocmd'};
|
return $text{'dt_zone_enocmd'};
|
||||||
}
|
}
|
||||||
rollmgr_halt();
|
rollmgr_halt();
|
||||||
$r = $config{"dnssectools_rollrec"};
|
$r = $config{"dnssectools_rollrec"};
|
||||||
$cmd = "$rollerd -rrfile ".quotemeta($r);
|
$cmd = "$rollerd -rrfile ".quotemeta($r);
|
||||||
&execute_command($cmd);
|
&execute_command($cmd);
|
||||||
return undef;
|
return undef;
|
||||||
@@ -4197,9 +4224,9 @@ sub dt_genkrf
|
|||||||
# Identify if this is a zsk or a ksk
|
# Identify if this is a zsk or a ksk
|
||||||
$key->{$f} =~ /(K\Q$dom\E\.\+\d+\+\d+)/;
|
$key->{$f} =~ /(K\Q$dom\E\.\+\d+\+\d+)/;
|
||||||
if ($key->{'ksk'}) {
|
if ($key->{'ksk'}) {
|
||||||
$kskcur = $1;
|
$kskcur = $1;
|
||||||
} else {
|
} else {
|
||||||
$zskcur = $1;
|
$zskcur = $1;
|
||||||
}
|
}
|
||||||
©_source_dest($key->{$f}, $keydir);
|
©_source_dest($key->{$f}, $keydir);
|
||||||
&unlink_file($key->{$f});
|
&unlink_file($key->{$f});
|
||||||
@@ -4210,7 +4237,7 @@ sub dt_genkrf
|
|||||||
return &text('dt_zone_enokey', $dom);
|
return &text('dt_zone_enokey', $dom);
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove the older dsset file
|
# Remove the older dsset file
|
||||||
if ($oldkeydir) {
|
if ($oldkeydir) {
|
||||||
&unlink_file($oldkeydir."/"."dsset-".$dom.".");
|
&unlink_file($oldkeydir."/"."dsset-".$dom.".");
|
||||||
}
|
}
|
||||||
@@ -4236,7 +4263,7 @@ sub dt_genkrf
|
|||||||
|
|
||||||
|
|
||||||
# dt_delete_dnssec_state(&zone)
|
# dt_delete_dnssec_state(&zone)
|
||||||
# Delete all DNSSEC-Tools meta-data for a given zone
|
# Delete all DNSSEC-Tools meta-data for a given zone
|
||||||
sub dt_delete_dnssec_state
|
sub dt_delete_dnssec_state
|
||||||
{
|
{
|
||||||
my ($zone) = @_;
|
my ($zone) = @_;
|
||||||
@@ -4286,14 +4313,14 @@ sub dt_delete_dnssec_state
|
|||||||
$recs[$i]->{'type'} eq 'RRSIG' ||
|
$recs[$i]->{'type'} eq 'RRSIG' ||
|
||||||
$recs[$i]->{'type'} eq 'DNSKEY') {
|
$recs[$i]->{'type'} eq 'DNSKEY') {
|
||||||
&delete_record($z, $recs[$i]);
|
&delete_record($z, $recs[$i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
&bump_soa_record($z, \@recs);
|
&bump_soa_record($z, \@recs);
|
||||||
|
|
||||||
&unlock_file($z_chroot);
|
&unlock_file($z_chroot);
|
||||||
rollrec_unlock();
|
rollrec_unlock();
|
||||||
|
|
||||||
&dt_rollerd_restart();
|
&dt_rollerd_restart();
|
||||||
&restart_bind();
|
&restart_bind();
|
||||||
} else {
|
} else {
|
||||||
# Just delete the dsset- file
|
# Just delete the dsset- file
|
||||||
@@ -4460,4 +4487,3 @@ return $r;
|
|||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ use warnings;
|
|||||||
no warnings 'redefine';
|
no warnings 'redefine';
|
||||||
no warnings 'uninitialized';
|
no warnings 'uninitialized';
|
||||||
# Globals
|
# Globals
|
||||||
our (%access, %text);
|
our (%access, %text, $bind_version);
|
||||||
our $dnssec_dlv_zone;
|
our $dnssec_dlv_zone;
|
||||||
|
|
||||||
require './bind8-lib.pl';
|
require './bind8-lib.pl';
|
||||||
@@ -24,10 +24,12 @@ $tkeys ||= { 'members' => [ ] };
|
|||||||
print &ui_form_start("save_trusted.cgi", "post");
|
print &ui_form_start("save_trusted.cgi", "post");
|
||||||
print &ui_table_start($text{'trusted_header'}, undef, 2);
|
print &ui_table_start($text{'trusted_header'}, undef, 2);
|
||||||
|
|
||||||
# DNSSEC enabled?
|
if (&compare_version_numbers($bind_version, '<', '9.16.0')) {
|
||||||
print &choice_input($text{'trusted_dnssec'}, 'dnssec-enable', $mems,
|
# DNSSEC enabled?
|
||||||
$text{'yes'}, 'yes', $text{'no'}, 'no',
|
print &choice_input($text{'trusted_dnssec'}, 'dnssec-enable', $mems,
|
||||||
$text{'default'}, undef);
|
$text{'yes'}, 'yes', $text{'no'}, 'no',
|
||||||
|
$text{'default'}, undef);
|
||||||
|
}
|
||||||
if (&supports_dnssec_client() == 2) {
|
if (&supports_dnssec_client() == 2) {
|
||||||
print &choice_input($text{'trusted_validation'},
|
print &choice_input($text{'trusted_validation'},
|
||||||
'dnssec-validation', $mems,
|
'dnssec-validation', $mems,
|
||||||
|
|||||||
@@ -17,6 +17,14 @@ my $dom = $zone->{'name'};
|
|||||||
&ui_print_header(&zone_subhead($zone), $text{'master_title'}, "",
|
&ui_print_header(&zone_subhead($zone), $text{'master_title'}, "",
|
||||||
undef, undef, undef, undef, &restart_links($zone));
|
undef, undef, undef, undef, &restart_links($zone));
|
||||||
|
|
||||||
|
my $d = &get_virtualmin_domains($dom);
|
||||||
|
if ($d && $d->{'alias'}) {
|
||||||
|
print &ui_alert_box($text{'master_vminalias'}, 'danger');
|
||||||
|
}
|
||||||
|
elsif ($d) {
|
||||||
|
print &ui_alert_box($text{'master_vmin'}, 'warn');
|
||||||
|
}
|
||||||
|
|
||||||
# Find the record types
|
# Find the record types
|
||||||
my (@rcodes, @recs);
|
my (@rcodes, @recs);
|
||||||
if (!$config{'largezones'}) {
|
if (!$config{'largezones'}) {
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ if (@keyrecs) {
|
|||||||
my $kt = $key->{'ksk'} ? 'ksk' : 'zone';
|
my $kt = $key->{'ksk'} ? 'ksk' : 'zone';
|
||||||
my ($keyrec) = grep { $_->{'values'}->[0] ==
|
my ($keyrec) = grep { $_->{'values'}->[0] ==
|
||||||
($key->{'ksk'} ? 257 : 256) } @keyrecs;
|
($key->{'ksk'} ? 257 : 256) } @keyrecs;
|
||||||
|
next if (!$keyrec);
|
||||||
my $keyline = format_dnssec_public_key(
|
my $keyline = format_dnssec_public_key(
|
||||||
join(" ", $keyrec->{'name'}, $keyrec->{'class'},
|
join(" ", $keyrec->{'name'}, $keyrec->{'class'},
|
||||||
$keyrec->{'type'}, @{$keyrec->{'values'}}));
|
$keyrec->{'type'}, @{$keyrec->{'values'}}));
|
||||||
|
|||||||
@@ -147,6 +147,8 @@ master_defttl=Standaard lewendige tyd vir rekords
|
|||||||
master_edefttl='$1' is nie 'n geldige standaardtyd vir lewering van rekords nie
|
master_edefttl='$1' is nie 'n geldige standaardtyd vir lewering van rekords nie
|
||||||
master_esoagone=Geen SOA-rekord gevind nie!
|
master_esoagone=Geen SOA-rekord gevind nie!
|
||||||
master_einclude=Bykomende sjabloonlêer bestaan nie
|
master_einclude=Bykomende sjabloonlêer bestaan nie
|
||||||
|
master_vmin=Hierdie sone word deur Virtualmin bestuur. Rekords moet geredigeer word met behulp van die Virtualmin UI, om te verseker dat dit ooreenstem met ander virtuele bediener instellings.
|
||||||
|
master_vminalias=Hierdie sone is 'n alias van 'n Virtualmin-domein, wat gesinchroniseer word met sy teiken. Rekords moet nooit hier geredigeer word nie, aangesien enige veranderinge oorgeskryf sal word!
|
||||||
|
|
||||||
delete_title=Vee sone uit
|
delete_title=Vee sone uit
|
||||||
delete_mesg=Is u seker dat u die sone $1 wil verwyder? Alle rekords en die sone-lêer sal uitgevee word.
|
delete_mesg=Is u seker dat u die sone $1 wil verwyder? Alle rekords en die sone-lêer sal uitgevee word.
|
||||||
|
|||||||
@@ -147,6 +147,8 @@ master_defttl=الوقت الافتراضي للعيش للسجلات
|
|||||||
master_edefttl='$1' is not a valid default time-to-live for records
|
master_edefttl='$1' is not a valid default time-to-live for records
|
||||||
master_esoagone=لم يتم العثور على سجل الخدمية!
|
master_esoagone=لم يتم العثور على سجل الخدمية!
|
||||||
master_einclude=ملف القالب الإضافي غير موجود
|
master_einclude=ملف القالب الإضافي غير موجود
|
||||||
|
master_vmin=تتم إدارة هذه المنطقة بواسطة Virtualmin. يجب تحرير السجلات باستخدام Virtualmin UI ، للتأكد من أنها متوافقة مع إعدادات الخادم الظاهري الأخرى.
|
||||||
|
master_vminalias=هذه المنطقة هي اسم مستعار لنطاق Virtualmin ، والذي يتم الاحتفاظ به متزامنًا مع هدفه. يجب عدم تحرير السجلات هنا مطلقًا ، حيث سيتم الكتابة فوق أي تغييرات!
|
||||||
|
|
||||||
delete_title=حذف المنطقة
|
delete_title=حذف المنطقة
|
||||||
delete_mesg=Are you sure you want to delete the zone $1 ? All records and the zone file will be deleted.
|
delete_mesg=Are you sure you want to delete the zone $1 ? All records and the zone file will be deleted.
|
||||||
|
|||||||
@@ -147,6 +147,8 @@ master_defttl=Час жыць да запісаў па змаўчанні
|
|||||||
master_edefttl="$1" не з'яўляецца дапушчальным да запісу часу для запісу па змаўчанні
|
master_edefttl="$1" не з'яўляецца дапушчальным да запісу часу для запісу па змаўчанні
|
||||||
master_esoagone=Запіс SOA не знойдзены!
|
master_esoagone=Запіс SOA не знойдзены!
|
||||||
master_einclude=Дадатковы файл шаблону не існуе
|
master_einclude=Дадатковы файл шаблону не існуе
|
||||||
|
master_vmin=Гэта зона кіруецца Virtualmin. Запісы трэба рэдагаваць з дапамогай інтэрфейсу Virtualmin, каб пераканацца, што яны адпавядаюць наладам іншых віртуальных сервераў.
|
||||||
|
master_vminalias=Гэтая зона з'яўляецца псеўданімам дамена Virtualmin, які падтрымліваецца ў сінхранізацыі з мэтай. Запісы ніколі не павінны рэдагавацца тут, бо любыя змены будуць перазапісаны!
|
||||||
|
|
||||||
delete_title=Выдаліць зону
|
delete_title=Выдаліць зону
|
||||||
delete_mesg=Вы ўпэўнены, што хочаце выдаліць зону $1? Усе запісы і файл зоны будуць выдаленыя.
|
delete_mesg=Вы ўпэўнены, што хочаце выдаліць зону $1? Усе запісы і файл зоны будуць выдаленыя.
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
master_inview=$1 с оглед $2
|
master_inview=$1 с оглед $2
|
||||||
|
master_vmin=Тази зона се управлява от Virtualmin. Записите трябва да се редактират с помощта на потребителския интерфейс на Virtualmin, за да се гарантира, че са съвместими с други настройки на виртуален сървър.
|
||||||
|
master_vminalias=Тази зона е псевдоним на домейн Virtualmin, който се поддържа в синхрон със своята цел. Записите никога не трябва да се редактират тук, тъй като всички промени ще бъдат презаписани!
|
||||||
|
|
||||||
delete_vwarn=Тази зона е свързана с домейна Virtualmin $1 и затова не трябва да се изтрива тук!
|
delete_vwarn=Тази зона е свързана с домейна Virtualmin $1 и затова не трябва да се изтрива тук!
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
master_inview=$1 a la vista $2
|
master_inview=$1 a la vista $2
|
||||||
|
master_vmin=Aquesta zona està gestionada per Virtualmin. Els registres s'han d'editar mitjançant la interfície d'usuari de Virtualmin, per assegurar-se que són coherents amb altres configuracions del servidor virtual.
|
||||||
|
master_vminalias=Aquesta zona és un àlies d'un domini Virtualmin, que es manté sincronitzat amb el seu objectiu. Els registres no s'han d'editar mai aquí, ja que qualsevol canvi es sobreescriurà!
|
||||||
|
|
||||||
delete_onslave=També voleu suprimir-lo dels servidors esclaus?
|
delete_onslave=També voleu suprimir-lo dels servidors esclaus?
|
||||||
delete_errslave=La zona mestra ha suprimit bé, però s'han produït els errors següents en esclaus : $1
|
delete_errslave=La zona mestra ha suprimit bé, però s'han produït els errors següents en esclaus : $1
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ master_movedesc=Přesune tuto zónu do jiného zobrazení a přitom zachová vš
|
|||||||
master_applymsg2=Klepnutím na toto tlačítko použijete změny pouze pro tuto zónu. Toto bude fungovat, pouze pokud byly změny provedeny pro celý server alespoň jednou od vytvoření zóny.
|
master_applymsg2=Klepnutím na toto tlačítko použijete změny pouze pro tuto zónu. Toto bude fungovat, pouze pokud byly změny provedeny pro celý server alespoň jednou od vytvoření zóny.
|
||||||
master_esoagone=Nebyl nalezen žádný záznam SOA!
|
master_esoagone=Nebyl nalezen žádný záznam SOA!
|
||||||
master_einclude=Další soubor šablony neexistuje
|
master_einclude=Další soubor šablony neexistuje
|
||||||
|
master_vmin=Tuto zónu spravuje Virtualmin. Záznamy by měly být upravovány pomocí uživatelského rozhraní Virtualmin, aby bylo zajištěno, že budou konzistentní s ostatními nastaveními virtuálního serveru.
|
||||||
|
master_vminalias=Tato zóna je alias domény Virtualmin, která je synchronizována s jejím cílem. Záznamy by zde nikdy neměly být upravovány, protože jakékoli změny budou přepsány!
|
||||||
|
|
||||||
delete_mesg3=Opravdu chcete odstranit zónu $1?
|
delete_mesg3=Opravdu chcete odstranit zónu $1?
|
||||||
delete_vwarn=Tato zóna je přidružena k doméně Virtualmin $1, a proto by zde neměla být odstraněna!
|
delete_vwarn=Tato zóna je přidružena k doméně Virtualmin $1, a proto by zde neměla být odstraněna!
|
||||||
|
|||||||
@@ -147,6 +147,8 @@ master_defttl=Standard tid til live for poster
|
|||||||
master_edefttl='$1' er ikke en gyldig standard-tid-til-live for poster
|
master_edefttl='$1' er ikke en gyldig standard-tid-til-live for poster
|
||||||
master_esoagone=Ingen SOA-registrering fundet!
|
master_esoagone=Ingen SOA-registrering fundet!
|
||||||
master_einclude=Yderligere skabelonfil findes ikke
|
master_einclude=Yderligere skabelonfil findes ikke
|
||||||
|
master_vmin=Denne zone administreres af Virtualmin. Records bør redigeres ved hjælp af Virtualmin UI for at sikre, at de stemmer overens med andre virtuelle serverindstillinger.
|
||||||
|
master_vminalias=Denne zone er et alias for et Virtualmin-domæne, som holdes synkroniseret med dets mål. Optegnelser bør aldrig redigeres her, da eventuelle ændringer vil blive overskrevet!
|
||||||
|
|
||||||
delete_title=Slet zone
|
delete_title=Slet zone
|
||||||
delete_mesg=Er du sikker på, at du vil slette zonen $1? Alle poster og zonefilen vil blive slettet.
|
delete_mesg=Er du sikker på, at du vil slette zonen $1? Alle poster og zonefilen vil blive slettet.
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
master_inview=$1 im Blick $2
|
master_inview=$1 im Blick $2
|
||||||
|
master_vmin=Diese Zone wird von Virtualmin verwaltet. Datensätze sollten über die Virtualmin-Benutzeroberfläche bearbeitet werden, um sicherzustellen, dass sie mit anderen Einstellungen des virtuellen Servers konsistent sind.
|
||||||
|
master_vminalias=Diese Zone ist ein Alias einer Virtualmin-Domäne, die mit ihrem Ziel synchron gehalten wird. Datensätze sollten hier niemals bearbeitet werden, da alle Änderungen überschrieben werden!
|
||||||
|
|
||||||
delete_vwarn=Diese Zone ist der Virtualmin-Domäne $1 zugeordnet und sollte daher hier nicht gelöscht werden!
|
delete_vwarn=Diese Zone ist der Virtualmin-Domäne $1 zugeordnet und sollte daher hier nicht gelöscht werden!
|
||||||
|
|
||||||
|
|||||||
@@ -147,6 +147,8 @@ master_defttl=Προεπιλεγμένος χρόνος ζωής για αρχε
|
|||||||
master_edefttl=Το '$1' δεν είναι έγκυρη προεπιλεγμένη ώρα για ζωντανή εγγραφή
|
master_edefttl=Το '$1' δεν είναι έγκυρη προεπιλεγμένη ώρα για ζωντανή εγγραφή
|
||||||
master_esoagone=Δεν βρέθηκε αρχείο SOA!
|
master_esoagone=Δεν βρέθηκε αρχείο SOA!
|
||||||
master_einclude=Δεν υπάρχει πρόσθετο αρχείο προτύπου
|
master_einclude=Δεν υπάρχει πρόσθετο αρχείο προτύπου
|
||||||
|
master_vmin=Αυτή η ζώνη διαχειρίζεται το Virtualmin. Οι εγγραφές θα πρέπει να επεξεργάζονται χρησιμοποιώντας το Virtualmin UI, για να διασφαλιστεί ότι είναι συνεπείς με άλλες ρυθμίσεις εικονικού διακομιστή.
|
||||||
|
master_vminalias=Αυτή η ζώνη είναι ένα ψευδώνυμο ενός τομέα Virtualmin, ο οποίος διατηρείται σε συγχρονισμό με τον στόχο του. Οι εγγραφές δεν πρέπει ποτέ να επεξεργάζονται εδώ, καθώς τυχόν αλλαγές θα αντικατασταθούν!
|
||||||
|
|
||||||
delete_title=Διαγραφή Ζώνης
|
delete_title=Διαγραφή Ζώνης
|
||||||
delete_mesg=Είστε βέβαιοι ότι θέλετε να διαγράψετε τη ζώνη $1; Όλες οι εγγραφές και το αρχείο ζώνης θα διαγραφούν.
|
delete_mesg=Είστε βέβαιοι ότι θέλετε να διαγράψετε τη ζώνη $1; Όλες οι εγγραφές και το αρχείο ζώνης θα διαγραφούν.
|
||||||
|
|||||||
@@ -147,6 +147,8 @@ master_defttl=Default time-to-live for records
|
|||||||
master_edefttl='$1' is not a valid default time-to-live for records
|
master_edefttl='$1' is not a valid default time-to-live for records
|
||||||
master_esoagone=No SOA record found!
|
master_esoagone=No SOA record found!
|
||||||
master_einclude=Additional template file does not exist
|
master_einclude=Additional template file does not exist
|
||||||
|
master_vmin=This zone is managed by Virtualmin. Records should be edited using the Virtualmin UI, to ensure they are consistent with other virtual server settings.
|
||||||
|
master_vminalias=This zone is an alias of a Virtualmin domain, which is kept in sync with it's target. Records should never be edited here, as any changes will be overwritten!
|
||||||
|
|
||||||
delete_title=Delete Zone
|
delete_title=Delete Zone
|
||||||
delete_mesg=Are you sure you want to delete the zone $1 ? All records and the zone file will be deleted.
|
delete_mesg=Are you sure you want to delete the zone $1 ? All records and the zone file will be deleted.
|
||||||
|
|||||||
@@ -37,6 +37,8 @@ master_defttl=Tiempo de vida predeterminado para registros
|
|||||||
master_edefttl='$1' no es un tiempo de vida predeterminado válido para los registros
|
master_edefttl='$1' no es un tiempo de vida predeterminado válido para los registros
|
||||||
master_esoagone=¡No se ha encontrado el registro SOA!
|
master_esoagone=¡No se ha encontrado el registro SOA!
|
||||||
master_einclude=El archivo de plantilla adicional no existe
|
master_einclude=El archivo de plantilla adicional no existe
|
||||||
|
master_vmin=Esta zona es administrada por Virtualmin. Los registros deben editarse mediante la interfaz de usuario de Virtualmin para garantizar que sean coherentes con otras configuraciones del servidor virtual.
|
||||||
|
master_vminalias=Esta zona es un alias de un dominio de Virtualmin, que se mantiene sincronizado con su objetivo. Los registros nunca deben editarse aquí, ya que cualquier cambio se sobrescribirá
|
||||||
|
|
||||||
delete_mesg3=¿Está seguro de que desea eliminar la zona $1?
|
delete_mesg3=¿Está seguro de que desea eliminar la zona $1?
|
||||||
delete_vwarn=Esta zona está asociada con el dominio Virtualmin $1, por lo que no debe eliminarse aquí.
|
delete_vwarn=Esta zona está asociada con el dominio Virtualmin $1, por lo que no debe eliminarse aquí.
|
||||||
|
|||||||
@@ -147,6 +147,8 @@ master_defttl=Erregistroen bizitzeko denbora lehenetsia
|
|||||||
master_edefttl='$1' ez da erregistroen denbora bizitzeko balio lehenetsia
|
master_edefttl='$1' ez da erregistroen denbora bizitzeko balio lehenetsia
|
||||||
master_esoagone=Ez da SOA erregistrorik aurkitu!
|
master_esoagone=Ez da SOA erregistrorik aurkitu!
|
||||||
master_einclude=Ez da txantiloi fitxategi gehigarririk existitzen
|
master_einclude=Ez da txantiloi fitxategi gehigarririk existitzen
|
||||||
|
master_vmin=Zona hau Virtualmin-ek kudeatzen du. Erregistroak Virtualmin UI erabiliz editatu behar dira, zerbitzari birtualeko beste ezarpen batzuekin bat datozela ziurtatzeko.
|
||||||
|
master_vminalias=Zona hau Virtualmin domeinu baten alias bat da, zeina helbururekin sinkronizatuta mantentzen dena. Erregistroak ez dira inoiz hemen editatu behar, edozein aldaketa gainidatzi egingo baita!
|
||||||
|
|
||||||
delete_title=Ezabatu zona
|
delete_title=Ezabatu zona
|
||||||
delete_mesg=Ziur $1 zona ezabatu nahi duzula? Erregistro guztiak eta zona fitxategia ezabatuko dira.
|
delete_mesg=Ziur $1 zona ezabatu nahi duzula? Erregistro guztiak eta zona fitxategia ezabatuko dira.
|
||||||
|
|||||||
@@ -30,6 +30,8 @@ master_movedesc=این منطقه را به یک نمای دیگر منتقل م
|
|||||||
master_applymsg2=برای اعمال تغییرات فقط در این منطقه ، روی این دکمه کلیک کنید. این کار فقط در صورتی انجام می شود که حداقل یک بار از زمان ایجاد منطقه ، برای کل سرور اعمال شود.
|
master_applymsg2=برای اعمال تغییرات فقط در این منطقه ، روی این دکمه کلیک کنید. این کار فقط در صورتی انجام می شود که حداقل یک بار از زمان ایجاد منطقه ، برای کل سرور اعمال شود.
|
||||||
master_esoagone=هیچ سابقه SOA یافت نشد!
|
master_esoagone=هیچ سابقه SOA یافت نشد!
|
||||||
master_einclude=پرونده الگوی اضافی وجود ندارد
|
master_einclude=پرونده الگوی اضافی وجود ندارد
|
||||||
|
master_vmin=این منطقه توسط Virtualmin مدیریت می شود. رکوردها باید با استفاده از Virtualmin UI ویرایش شوند تا اطمینان حاصل شود که با سایر تنظیمات سرور مجازی سازگار هستند.
|
||||||
|
master_vminalias=این منطقه نام مستعار یک دامنه Virtualmin است که با هدف خود هماهنگ می شود. سوابق هرگز نباید در اینجا ویرایش شوند، زیرا هر تغییری بازنویسی می شود!
|
||||||
|
|
||||||
delete_mesg3=Are you sure you want to delete the zone $1 ?
|
delete_mesg3=Are you sure you want to delete the zone $1 ?
|
||||||
delete_vwarn=این منطقه با دامنه Virtualmin $1 همراه است و بنابراین نباید در اینجا حذف شود!
|
delete_vwarn=این منطقه با دامنه Virtualmin $1 همراه است و بنابراین نباید در اینجا حذف شود!
|
||||||
|
|||||||
@@ -147,6 +147,8 @@ master_defttl=Tietueiden oletusaika-aika
|
|||||||
master_edefttl='$1' ei ole kelvollinen oletusarvoinen elinaika tietueille
|
master_edefttl='$1' ei ole kelvollinen oletusarvoinen elinaika tietueille
|
||||||
master_esoagone=SOA-tietuetta ei löytynyt!
|
master_esoagone=SOA-tietuetta ei löytynyt!
|
||||||
master_einclude=Muuta mallitiedostoa ei ole
|
master_einclude=Muuta mallitiedostoa ei ole
|
||||||
|
master_vmin=Tätä vyöhykettä hallinnoi Virtualmin. Tietueita tulee muokata Virtualmin-käyttöliittymällä, jotta ne ovat yhdenmukaisia muiden virtuaalipalvelinasetusten kanssa.
|
||||||
|
master_vminalias=Tämä vyöhyke on Virtualmin-verkkotunnuksen alias, joka pidetään synkronoituna kohteensa kanssa. Tietueita ei saa koskaan muokata täällä, sillä kaikki muutokset korvataan!
|
||||||
|
|
||||||
delete_title=Poista vyöhyke
|
delete_title=Poista vyöhyke
|
||||||
delete_mesg=Haluatko varmasti poistaa vyöhykkeen $1? Kaikki tietueet ja vyöhyketiedosto poistetaan.
|
delete_mesg=Haluatko varmasti poistaa vyöhykkeen $1? Kaikki tietueet ja vyöhyketiedosto poistetaan.
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
master_vmin=Cette zone est gérée par Virtualmin. Les enregistrements doivent être modifiés à l'aide de l'interface utilisateur Virtualmin, pour s'assurer qu'ils sont cohérents avec les autres paramètres du serveur virtuel.
|
||||||
|
master_vminalias=Cette zone est un alias d'un domaine Virtualmin, qui est synchronisé avec sa cible. Les enregistrements ne doivent jamais être modifiés ici, car toute modification sera écrasée !
|
||||||
|
|
||||||
slave_format=Format de fichier de zone
|
slave_format=Format de fichier de zone
|
||||||
slave_raw=Binaire brut
|
slave_raw=Binaire brut
|
||||||
slave_text=Texte brut
|
slave_text=Texte brut
|
||||||
|
|||||||
@@ -147,6 +147,8 @@ master_defttl=זמן ברירת המחדל לחיים עבור רשומות
|
|||||||
master_edefttl='$1' אינו זמן ברירת מחדל תקף לחיות עבור רשומות
|
master_edefttl='$1' אינו זמן ברירת מחדל תקף לחיות עבור רשומות
|
||||||
master_esoagone=לא נמצאה רשומת SOA!
|
master_esoagone=לא נמצאה רשומת SOA!
|
||||||
master_einclude=קובץ תבנית נוסף אינו קיים
|
master_einclude=קובץ תבנית נוסף אינו קיים
|
||||||
|
master_vmin=אזור זה מנוהל על ידי Virtualmin. יש לערוך את הרשומות באמצעות ממשק המשתמש של Virtualmin, כדי להבטיח שהן עולות בקנה אחד עם הגדרות שרת וירטואלי אחרות.
|
||||||
|
master_vminalias=אזור זה הוא כינוי של דומיין Virtualmin, אשר נשמר מסונכרן עם היעד שלו. לעולם אין לערוך רשומות כאן, מכיוון שכל השינויים יוחלפו!
|
||||||
|
|
||||||
delete_title=מחק אזור
|
delete_title=מחק אזור
|
||||||
delete_mesg=האם אתה בטוח שברצונך למחוק את האזור $1 ? כל הרשומות וקובץ האזור יימחקו.
|
delete_mesg=האם אתה בטוח שברצונך למחוק את האזור $1 ? כל הרשומות וקובץ האזור יימחקו.
|
||||||
|
|||||||
@@ -147,6 +147,8 @@ master_defttl=Zadano vrijeme za snimanje uživo
|
|||||||
master_edefttl="$1" nije valjano zadano vrijeme za izradu zapisa
|
master_edefttl="$1" nije valjano zadano vrijeme za izradu zapisa
|
||||||
master_esoagone=Nije pronađen SOA zapis!
|
master_esoagone=Nije pronađen SOA zapis!
|
||||||
master_einclude=Dodatna datoteka predloška ne postoji
|
master_einclude=Dodatna datoteka predloška ne postoji
|
||||||
|
master_vmin=Ovom zonom upravlja Virtualmin. Zapise treba uređivati pomoću korisničkog sučelja Virtualmin kako bi se osiguralo da su u skladu s drugim postavkama virtualnog poslužitelja.
|
||||||
|
master_vminalias=Ova zona je pseudonim Virtualmin domene, koja je sinkronizirana sa svojim ciljem. Zapisi se nikada ne smiju uređivati ovdje, jer će sve promjene biti prebrisane!
|
||||||
|
|
||||||
delete_title=Izbriši zonu
|
delete_title=Izbriši zonu
|
||||||
delete_mesg=Jeste li sigurni da želite izbrisati zonu $1? Svi zapisi i zonska datoteka bit će izbrisani.
|
delete_mesg=Jeste li sigurni da želite izbrisati zonu $1? Svi zapisi i zonska datoteka bit će izbrisani.
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ master_inview=$1 a $2 nézetben
|
|||||||
master_egone=A $1 zóna egyetlen nézetben sem létezik
|
master_egone=A $1 zóna egyetlen nézetben sem létezik
|
||||||
master_egone2=A $1 zóna nem létezik!
|
master_egone2=A $1 zóna nem létezik!
|
||||||
master_egone3=A $1 zóna a $2 nézetben nem létezik!
|
master_egone3=A $1 zóna a $2 nézetben nem létezik!
|
||||||
|
master_vmin=Ezt a zónát a Virtualmin kezeli. A rekordokat a Virtualmin UI használatával kell szerkeszteni, hogy konzisztensek legyenek a többi virtuális szerver beállításával.
|
||||||
|
master_vminalias=Ez a zóna egy Virtualmin tartomány álneve, amely szinkronban van a céljával. A rekordokat soha nem szabad itt szerkeszteni, mert az esetleges változtatások felülíródnak!
|
||||||
|
|
||||||
delete_vwarn=Ez a zóna a $1 Virtualmin domainhez van társítva, ezért itt nem szabad törölni!
|
delete_vwarn=Ez a zóna a $1 Virtualmin domainhez van társítva, ezért itt nem szabad törölni!
|
||||||
|
|
||||||
|
|||||||
@@ -47,6 +47,8 @@ master_defttl=Tempo di vita predefinito per i record
|
|||||||
master_edefttl='$1' non è un time-to-live predefinito valido per i record
|
master_edefttl='$1' non è un time-to-live predefinito valido per i record
|
||||||
master_esoagone=Nessun record SOA trovato!
|
master_esoagone=Nessun record SOA trovato!
|
||||||
master_einclude=Non esiste un file modello aggiuntivo
|
master_einclude=Non esiste un file modello aggiuntivo
|
||||||
|
master_vmin=Questa zona è gestita da Virtualmin. I record devono essere modificati utilizzando l'interfaccia utente di Virtualmin, per garantire che siano coerenti con le altre impostazioni del server virtuale.
|
||||||
|
master_vminalias=Questa zona è un alias di un dominio Virtualmin, che viene mantenuto sincronizzato con la sua destinazione. I record non dovrebbero mai essere modificati qui, poiché qualsiasi modifica verrà sovrascritta!
|
||||||
|
|
||||||
delete_mesg3=Sei sicuro di voler eliminare la zona $1?
|
delete_mesg3=Sei sicuro di voler eliminare la zona $1?
|
||||||
delete_onslave=Eliminare anche dai server slave?
|
delete_onslave=Eliminare anche dai server slave?
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ master_inview=ビュー $2の $1
|
|||||||
master_egone=ゾーン$1はどのビューにも存在しません
|
master_egone=ゾーン$1はどのビューにも存在しません
|
||||||
master_egone2=ゾーン$1は存在しません!
|
master_egone2=ゾーン$1は存在しません!
|
||||||
master_egone3=ビュー$2のゾーン$1は存在しません!
|
master_egone3=ビュー$2のゾーン$1は存在しません!
|
||||||
|
master_vmin=このゾーンは Virtualmin によって管理されます。レコードは、他の仮想サーバー設定との一貫性を確保するために、Virtualmin UI を使用して編集する必要があります。
|
||||||
|
master_vminalias=このゾーンは Virtualmin ドメインのエイリアスであり、ターゲットとの同期が保たれます。変更が上書きされるため、ここでレコードを編集しないでください。
|
||||||
|
|
||||||
delete_vwarn=このゾーンはVirtualminドメイン $1に関連付けられているため、ここで削除しないでください!
|
delete_vwarn=このゾーンはVirtualminドメイン $1に関連付けられているため、ここで削除しないでください!
|
||||||
delete_vwarn2=このゾーンはVirtualminドメイン $1および $2に関連付けられているため、ここで削除しないでください!
|
delete_vwarn2=このゾーンはVirtualminドメイン $1および $2に関連付けられているため、ここで削除しないでください!
|
||||||
|
|||||||
@@ -71,6 +71,8 @@ master_defttl=레코드의 기본 수명
|
|||||||
master_edefttl='$1'은 (는) 유효한 기본 유효 기간이 아닙니다.
|
master_edefttl='$1'은 (는) 유효한 기본 유효 기간이 아닙니다.
|
||||||
master_esoagone=SOA 레코드가 없습니다!
|
master_esoagone=SOA 레코드가 없습니다!
|
||||||
master_einclude=추가 템플릿 파일이 없습니다
|
master_einclude=추가 템플릿 파일이 없습니다
|
||||||
|
master_vmin=이 영역은 Virtualmin에서 관리합니다. 다른 가상 서버 설정과 일관성을 유지하려면 Virtualmin UI를 사용하여 레코드를 편집해야 합니다.
|
||||||
|
master_vminalias=이 영역은 대상과 동기화된 상태로 유지되는 Virtualmin 도메인의 별칭입니다. 모든 변경 사항을 덮어쓰게 되므로 여기에서 레코드를 편집하면 안 됩니다!
|
||||||
|
|
||||||
delete_mesg2=루트 영역을 삭제 하시겠습니까? DNS 서버가 더 이상 인터넷에서 주소를 조회하지 못할 수 있습니다.
|
delete_mesg2=루트 영역을 삭제 하시겠습니까? DNS 서버가 더 이상 인터넷에서 주소를 조회하지 못할 수 있습니다.
|
||||||
delete_mesg3=영역 $1을 삭제 하시겠습니까?
|
delete_mesg3=영역 $1을 삭제 하시겠습니까?
|
||||||
|
|||||||
@@ -147,6 +147,8 @@ master_defttl=Numatytasis įrašų gyvavimo laikas
|
|||||||
master_edefttl=„$1“ nėra tinkamas numatytasis įrašų gyvavimo laikas
|
master_edefttl=„$1“ nėra tinkamas numatytasis įrašų gyvavimo laikas
|
||||||
master_esoagone=Nerastas SOA įrašas.
|
master_esoagone=Nerastas SOA įrašas.
|
||||||
master_einclude=Papildomo šablono failo nėra
|
master_einclude=Papildomo šablono failo nėra
|
||||||
|
master_vmin=Šią zoną valdo „Virtualmin“. Įrašai turi būti redaguojami naudojant „Virtualmin“ vartotojo sąsają, siekiant užtikrinti, kad jie atitiktų kitus virtualaus serverio nustatymus.
|
||||||
|
master_vminalias=Ši zona yra „Virtualmin“ domeno slapyvardis, kuris yra sinchronizuojamas su savo taikiniu. Įrašai čia niekada neturėtų būti redaguojami, nes bet kokie pakeitimai bus perrašyti!
|
||||||
|
|
||||||
delete_title=Ištrinti zoną
|
delete_title=Ištrinti zoną
|
||||||
delete_mesg=Ar tikrai norite ištrinti $1 zoną? Visi įrašai ir zonos failai bus ištrinti.
|
delete_mesg=Ar tikrai norite ištrinti $1 zoną? Visi įrašai ir zonos failai bus ištrinti.
|
||||||
|
|||||||
@@ -147,6 +147,8 @@ master_defttl=Noklusētais ierakstu dzīves laiks
|
|||||||
master_edefttl='$1' nav derīgs ierakstu noklusējuma dzīves laiks
|
master_edefttl='$1' nav derīgs ierakstu noklusējuma dzīves laiks
|
||||||
master_esoagone=Nav atrasts neviens SOA ieraksts.
|
master_esoagone=Nav atrasts neviens SOA ieraksts.
|
||||||
master_einclude=Papildu veidnes fails neeksistē
|
master_einclude=Papildu veidnes fails neeksistē
|
||||||
|
master_vmin=Šo zonu pārvalda Virtualmin. Ieraksti ir jārediģē, izmantojot Virtualmin UI, lai nodrošinātu to atbilstību citiem virtuālā servera iestatījumiem.
|
||||||
|
master_vminalias=Šī zona ir Virtualmin domēna aizstājvārds, kas tiek sinhronizēts ar tā mērķi. Ierakstus nekad nevajadzētu rediģēt šeit, jo visas izmaiņas tiks pārrakstītas!
|
||||||
|
|
||||||
delete_title=Dzēst zonu
|
delete_title=Dzēst zonu
|
||||||
delete_mesg=Vai tiešām vēlaties izdzēst zonu $1? Visi ieraksti un zonas fails tiks izdzēsti.
|
delete_mesg=Vai tiešām vēlaties izdzēst zonu $1? Visi ieraksti un zonas fails tiks izdzēsti.
|
||||||
|
|||||||
@@ -147,6 +147,8 @@ master_defttl=Waktu untuk hidup untuk rekod lalai
|
|||||||
master_edefttl='$1' bukan masa lalai yang sah untuk rekod
|
master_edefttl='$1' bukan masa lalai yang sah untuk rekod
|
||||||
master_esoagone=Tiada rekod SOA ditemui!
|
master_esoagone=Tiada rekod SOA ditemui!
|
||||||
master_einclude=Fail templat tambahan tidak wujud
|
master_einclude=Fail templat tambahan tidak wujud
|
||||||
|
master_vmin=Zon ini diuruskan oleh Virtualmin. Rekod hendaklah diedit menggunakan UI Virtualmin, untuk memastikan ia konsisten dengan tetapan pelayan maya yang lain.
|
||||||
|
master_vminalias=Zon ini ialah alias domain Virtualmin, yang disimpan selari dengan sasarannya. Rekod tidak boleh diedit di sini, kerana sebarang perubahan akan ditimpa!
|
||||||
|
|
||||||
delete_title=Padamkan Zon
|
delete_title=Padamkan Zon
|
||||||
delete_mesg=Adakah anda pasti mahu memadamkan zon $1? Semua rekod dan fail zon akan dihapuskan.
|
delete_mesg=Adakah anda pasti mahu memadamkan zon $1? Semua rekod dan fail zon akan dihapuskan.
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user