Compare commits

...

360 Commits
1.720 ... 1.750

Author SHA1 Message Date
Jamie Cameron
a6901947c2 New version bump 2015-05-10 13:42:47 -07:00
Jamie Cameron
8912154c0b New Postfix version 2015-05-10 13:40:53 -07:00
Jamie Cameron
6b34d179bb changelog for pkgsrc support 2015-05-10 11:00:48 -07:00
Jamie Cameron
bb2f091a17 pkgsrc has no local install mode 2015-05-10 10:50:47 -07:00
Jamie Cameron
dfd337009f Translation function for pkgsrc package names 2015-05-10 10:41:07 -07:00
Jamie Cameron
554cba6eba MacOS is supported now, with pkgsrc 2015-05-10 10:28:46 -07:00
Jamie Cameron
9d3e0e85ba Correct version and description display for packages not installed yet 2015-05-10 10:25:29 -07:00
Jamie Cameron
7d670cc449 More work on MacOS pkgsrc support 2015-05-10 09:57:25 -07:00
Jamie Cameron
0cc0a893a2 Get list of files in a package on MacOS 2015-05-09 21:55:38 -07:00
Jamie Cameron
b7190b1927 Start of work on pkgsrc support 2015-05-09 15:36:55 -07:00
Jamie Cameron
68890d8f2b Remove from the distribution modules for ancient software 2015-05-07 16:50:00 -07:00
Jamie Cameron
03f4c9fd56 Dev version bump 2015-05-05 19:55:50 -07:00
Jamie Cameron
c813b1c068 Allow multiple comma-separated IPs 2015-05-05 18:42:38 -07:00
Jamie Cameron
aafb66e45c changelog for launchd support 2015-05-03 10:23:05 -07:00
Jamie Cameron
8f0d32b764 More changes needed to support launchd 2015-05-03 10:14:03 -07:00
Jamie Cameron
62bf3b6cd4 Change the usermin boot script slightly to work with launchd 2015-05-03 10:10:20 -07:00
Jamie Cameron
58a454dc23 Change the webmin boot script slightly to work with launchd 2015-05-03 10:08:10 -07:00
Jamie Cameron
5a74498b87 Mailcap module needs to access the user's config 2015-05-03 10:07:21 -07:00
Jamie Cameron
ac238e37d1 More work on launchd support for MacOS X 2015-05-02 15:33:36 -07:00
Jamie Cameron
9e4269ebae Add command line option to not fork 2015-05-02 15:09:53 -07:00
Jamie Cameron
dfb0db593d New Debian versions 2015-04-29 19:52:55 -07:00
Jamie Cameron
79e2bf69b4 Show at-boot setting 2015-04-28 21:34:52 -07:00
Jamie Cameron
c153fae3d8 Suppress warnings when gpg doesn't output anything http://virtualmin.com/node/36979 2015-04-28 20:57:18 -07:00
Jamie Cameron
c1105d0ac5 Add support for deleting launchd agents 2015-04-26 17:22:38 -07:00
Jamie Cameron
fdffa9ee42 Use consistent comment type 2015-04-26 16:52:34 -07:00
Jamie Cameron
cb008888bf Launchd action creation now working 2015-04-26 16:30:27 -07:00
Jamie Cameron
86ce05ec3b UI for adding a launchd agent 2015-04-26 15:35:31 -07:00
Jamie Cameron
a42fbc5bd0 Param for MAC address is actually hwaddress https://sourceforge.net/p/webadmin/bugs/4589/ 2015-04-26 15:28:09 -07:00
Jamie Cameron
441b9f1502 Show detailed CPU information on MacOS 2015-04-26 10:19:09 -07:00
Jamie Cameron
1e0100b424 Show memory usage in bytes too 2015-04-26 10:03:05 -07:00
Jamie Cameron
288a377e71 Collect RAM and swap usage on macos 2015-04-26 09:50:50 -07:00
Jamie Cameron
12e2aecbda Give credit for translations 2015-04-26 09:23:44 -07:00
Jamie Cameron
2d83ca6cdf Catalan update from Jaume Badiella 2015-04-26 09:23:16 -07:00
Jamie Cameron
f498f36bef Catalan update from Jaume Badiella 2015-04-26 09:23:04 -07:00
Jamie Cameron
2eb957fc04 German translation updates from Raymond Vetter 2015-04-26 09:21:06 -07:00
Jamie Cameron
9cff0de208 Correct function's documented return type 2015-04-25 22:00:29 -07:00
Jamie Cameron
4b2ba48e58 Work on launchd support 2015-04-25 22:00:07 -07:00
Jamie Cameron
d47ee41c32 Fix remote host to run command on after failure in the case where there are multiple hosts http://virtualmin.com/node/36948 2015-04-25 21:54:38 -07:00
Jamie Cameron
22f3d49e5c Show password DB type 2015-04-25 15:02:00 -07:00
Jamie Cameron
a10dd02a49 New Mint versions 2015-04-23 17:03:37 -07:00
Jamie Cameron
52196635a3 Use reload command by default to avoid cache re-read https://sourceforge.net/p/webadmin/bugs/4588/ 2015-04-21 14:52:10 -07:00
Jamie Cameron
59efd239ea Devel version bump 2015-04-17 12:39:51 -07:00
Jamie Cameron
1a1deef64a UNit names can have spaces or funny characters at the start 2015-04-16 19:04:25 -07:00
Jamie Cameron
132ea695bc UNit names can have spaces or funny characters at the start 2015-04-16 19:03:50 -07:00
Jamie Cameron
743d0d59ad Multi-part TXT records are not automatically joined by a space, so when creating an SPF record this has to be explicitly added 2015-04-15 21:19:52 -07:00
Jamie Cameron
7162dbaa8e Detect more IPsec variants 2015-04-15 18:47:25 -07:00
Jamie Cameron
c378e60ec7 Show process sizes using sensible units https://github.com/webmin/webmin/issues/202 2015-04-13 22:34:02 -07:00
Jamie Cameron
9612e05536 give credit for norwegian 2015-04-10 22:31:09 -07:00
Jamie Cameron
f38442bbae Sort users by login 2015-04-08 17:18:22 -07:00
Jamie Cameron
cf0ddafbe0 German translation updates from Raymond Vetter 2015-04-07 20:31:04 -07:00
Jamie Cameron
1727c9917d German translation updates from Raymond Vetter 2015-04-07 20:30:57 -07:00
Jamie Cameron
18d16d7639 Don't append the architecture un-necessarily, as this breaks upgrades that change it http://virtualmin.com/node/36740 2015-04-05 16:19:53 -07:00
Jamie Cameron
3d20f8c56e Jails can apparently have no actions http://virtualmin.com/node/36768 2015-04-05 14:45:13 -07:00
Jamie Cameron
d4264be5fd A max tick time of -1 means unlimited 2015-04-05 12:05:32 -07:00
Jamie Cameron
6d553a10ad Allow max ticks time to be edited 2015-04-05 12:02:40 -07:00
Jamie Cameron
5f4180cf13 Update docs to modern day 2015-04-02 21:08:27 -07:00
Jamie Cameron
4aedfdb006 Update docs to modern day 2015-04-02 21:07:28 -07:00
Jamie Cameron
a3658ff653 fix wording 2015-04-02 20:59:39 -07:00
Jamie Cameron
d040242a7e Also use yum updateinfo to get security updates 2015-04-02 19:12:50 -07:00
Jamie Cameron
019e5e15e6 Semicolon can be a comment character too 2015-04-02 16:57:38 -07:00
Jamie Cameron
2a8797c49c Merge pull request #199 from tandrup/httpOnly-cookies
Add httpOnly to cookies on login page. Solves #4565.
2015-04-01 21:03:44 -07:00
Jamie Cameron
ab1095e529 Disallow TRACE requests, which we don't even support 2015-04-01 16:54:38 -07:00
Mads Mætzke Tandrup
30168f57bb Add httpOnly to cookies on login page. Solves #4565.
Add httpOnly to pam_login and session_login to avoid security scans reporting false positives on cookies without httpOnly
2015-04-01 14:37:02 +02:00
Jamie Cameron
0a2eb1d520 --to-source can be followed by just a :port 2015-03-29 21:47:13 -07:00
Jamie Cameron
ec4f05ec5f Use correct permissions for MH format too 2015-03-29 18:09:18 -07:00
Jamie Cameron
7a9b4d0b2b Use correct permissions when moving email between users http://virtualmin.com/node/36696 2015-03-29 18:07:40 -07:00
Jamie Cameron
b7b6624ee8 Fix escaping of % in commands http://virtualmin.com/node/36673 2015-03-27 15:06:42 -07:00
Jamie Cameron
f455c24054 Make Net::SSLeay mandatory 2015-03-26 20:30:52 -07:00
Jamie Cameron
ee94c220da German translation updates from Raymond Vetter 2015-03-26 20:30:08 -07:00
Jamie Cameron
615f97f47e German translation updates from Raymond Vetter 2015-03-26 20:29:51 -07:00
Jamie Cameron
1ef26769b6 IPfilter live output can contain inet before 'from' http://virtualmin.com/node/36645 2015-03-26 17:22:29 -07:00
Jamie Cameron
04ed6406e7 Add separate command before/after blacklist refresh http://virtualmin.com/node/36643 2015-03-25 23:10:09 -07:00
Jamie Cameron
882dcb7384 Don't wrap regexps unexpectedly http://virtualmin.com/node/36656 2015-03-25 10:26:33 -07:00
Jamie Cameron
f29f13f817 Fix enabling of command block 2015-03-24 20:23:25 -07:00
Jamie Cameron
0a8abc529b German translation updates from Raymond Vetter 2015-03-23 20:22:53 -07:00
Jamie Cameron
72e2faa5b6 Dev version bump 2015-03-21 20:17:35 -07:00
Jamie Cameron
8291e1c98d Under NSLCD, scope and filter are separate directives 2015-03-21 20:09:06 -07:00
Jamie Cameron
df3fa20d6f Add button to restart LDAP client daemon, which is needed to apply settings 2015-03-21 18:01:08 -07:00
Jamie Cameron
4f532659b3 changelog for ldap fixes 2015-03-21 17:20:42 -07:00
Jamie Cameron
e1f086944d Permissions fix 2015-03-21 17:17:53 -07:00
Jamie Cameron
a13bce59e3 Fixes needed for CentOS 7 support 2015-03-21 17:17:39 -07:00
Jamie Cameron
ad46361cb0 for systemd services, the name may have .service appended 2015-03-21 17:11:19 -07:00
Jamie Cameron
fd5f09a816 Add Net::SSLeay as optional dependency to the Webmin RPM 2015-03-21 16:44:51 -07:00
Jamie Cameron
c38570cb9d In some cases, RPM mamay not list the file in the rpm --dump output if there are multiple hard links to it 2015-03-21 13:39:33 -07:00
Jamie Cameron
324732d948 Norwegian update from Stein-Aksel Basma 2015-03-20 15:45:13 -07:00
Jamie Cameron
78c5892c6a Handle different format for base directive in NSLCD http://virtualmin.com/node/36531 2015-03-18 21:53:55 -07:00
Jamie Cameron
a1e74e6659 Deal with long user/group names by requesting UIDs instead 2015-03-17 22:34:15 -07:00
Jamie Cameron
4caa56aa80 Deal with long user/group names by requesting UIDs instead 2015-03-17 22:33:31 -07:00
Jamie Cameron
95c494d9fc Handle un-formatted MAC addresses 2015-03-16 19:01:14 -07:00
Jamie Cameron
2dd92dc2b7 Allow default match mode to be configured 2015-03-16 18:59:29 -07:00
Jamie Cameron
f5580c4046 Exclude release scripts from modules 2015-03-15 11:49:39 -07:00
Jamie Cameron
cefecfb173 Don't modify a list that is being iterated over 2015-03-13 16:41:34 -07:00
Jamie Cameron
181d92ff48 New version bump 2015-03-12 17:32:01 -07:00
Jamie Cameron
d27a31e2d6 Fix dupe string 2015-03-12 17:30:19 -07:00
Jamie Cameron
c07bd9ca04 New windows versions 2015-03-12 17:08:01 -07:00
Jamie Cameron
ce5a1484fe give credit for catalan update 2015-03-10 23:27:18 -07:00
Jamie Cameron
22cb340cb3 More catalana 2015-03-10 23:25:05 -07:00
Jamie Cameron
f27cad3665 Catalan update from Jaume Badiella 2015-03-10 23:23:00 -07:00
Jamie Cameron
701795dc51 Catalan update from Jaume Badiella 2015-03-10 23:22:43 -07:00
Jamie Cameron
1cf1cf12f4 Allow Squid 3.5 https://sourceforge.net/p/webadmin/bugs/4573/ 2015-03-10 23:00:18 -07:00
Jamie Cameron
6790c03792 Filename is not a username 2015-03-10 16:59:21 -07:00
Jamie Cameron
8f38cdac33 Users can actually have numeric names 2015-03-10 16:58:23 -07:00
Jamie Cameron
3a833870ff Fix spelling error 2015-03-08 21:52:19 -07:00
Jamie Cameron
723e5fd0ad Skip packages inside module or theme directores 2015-03-08 12:27:30 -07:00
Jamie Cameron
63132ded2a New dev version bump 2015-03-06 10:42:28 -08:00
Jamie Cameron
968456b408 Include authentic theme 2015-03-05 14:27:13 -08:00
Jamie Cameron
3f53a503db Make the upload tracker a bit larger https://github.com/webmin/webmin/issues/196 2015-03-05 10:17:37 -08:00
Jamie Cameron
31ad58fda8 Use a single line break instead of <p> 2015-03-05 09:31:28 -08:00
Jamie Cameron
005873dcd9 Handle un-readable DBM format files http://virtualmin.com/node/36386 2015-03-04 14:12:29 -08:00
Jamie Cameron
18fdc2a9ba Take summary of disk usage out of header 2015-03-04 14:02:54 -08:00
Jamie Cameron
e11ef0ed93 Don't un-comment or use cace_dir entries that are not paths https://sourceforge.net/p/webadmin/bugs/4523/ 2015-03-04 11:25:54 -08:00
Jamie Cameron
b33a605699 German translation updates from Raymond Vetter 2015-03-02 15:09:34 -08:00
Jamie Cameron
bab827542b Don't use modifiers that don't look valid 2015-02-28 16:15:37 -08:00
Jamie Cameron
ea838d0500 Respect modifiers when generating records https://sourceforge.net/p/webadmin/bugs/4566/ 2015-02-28 16:13:11 -08:00
Jamie Cameron
975e7ad13f Allow saving of generators with modifiers https://sourceforge.net/p/webadmin/bugs/4566/ 2015-02-28 16:03:09 -08:00
Jamie Cameron
34e9b20324 German translation updates from Raymond Vetter 2015-02-28 10:17:42 -08:00
Jamie Cameron
7d42268b80 Properly pass through the referrer header http://virtualmin.com/node/36327 2015-02-27 18:20:18 -08:00
Jamie Cameron
64d1e8f4b4 The output from yum list-sec doesn't always contain the word security 2015-02-26 21:30:09 -08:00
Jamie Cameron
d40b907ad2 Update message to better reflect actual UI http://virtualmin.com/node/36326 2015-02-26 10:56:29 -08:00
Jamie Cameron
e30670bb2e German translation updates from Raymond Vetter 2015-02-25 17:05:41 -08:00
Jamie Cameron
3115b17fa1 Add MostlyLinux support 2015-02-24 16:13:52 -08:00
Jamie Cameron
d3242017bc German translation updates from Raymond Vetter 2015-02-24 14:29:40 -08:00
Jamie Cameron
aeb98e9d77 Merge pull request #192 from bradleykite/master
Allow "transfer-source" to be specified so slave zones within the views ...
2015-02-23 14:28:33 -08:00
Bradley Kite
118f705eb4 Allow "transfer-source" to be specified so slave zones within the views can match the correct view on the master. 2015-02-23 11:06:41 +00:00
Jamie Cameron
f302357943 Allow use of status description in custom email https://sourceforge.net/p/webadmin/bugs/4561/ 2015-02-22 14:37:02 -08:00
Jamie Cameron
a81c833462 German translation updates from Raymond Vetter 2015-02-22 13:18:56 -08:00
Jamie Cameron
d5f2981d02 When looking for the default lib.pl in a clone, the name should be based on the original module 2015-02-21 22:03:06 -08:00
Jamie Cameron
8ed9a84180 Allow module-level vetoing 2015-02-21 09:30:08 -08:00
Jamie Cameron
14af860ed5 Handle case where devices directory doesn't exist, due to remove of Network Manager 2015-02-20 21:56:53 -08:00
Jamie Cameron
dbd29ec126 If a slave zone is in binary format, convert it to text when it becomes a master http://virtualmin.com/node/36245 2015-02-20 16:58:22 -08:00
Jamie Cameron
3fcb565086 German translation updates from Raymond Vetter 2015-02-19 21:31:06 -08:00
Jamie Cameron
c7789ce801 Fix bug that prevents sending email if a single DB backup fails http://virtualmin.com/node/33129 2015-02-19 17:46:43 -08:00
Jamie Cameron
79d3d04fc3 Fix passing of miniserv config https://sourceforge.net/p/webadmin/bugs/4560/ 2015-02-19 10:20:11 -08:00
Jamie Cameron
ad5a6c9688 Fix inconsistency 2015-02-18 22:44:31 -08:00
Jamie Cameron
80a428e0e6 German translation updates from Raymond Vetter 2015-02-18 22:43:05 -08:00
Jamie Cameron
45cd9cf322 Installation into VMs is actually OK, as they can still have the non-hardware time set https://sourceforge.net/p/webadmin/bugs/4534/ 2015-02-18 21:42:49 -08:00
Jamie Cameron
7fd6e5f0ef Show full IMAP response if line cannot be parsed 2015-02-17 21:51:25 -08:00
Jamie Cameron
cf091c95e1 German translation updates from Raymond Vetter 2015-02-15 16:57:24 -08:00
Jamie Cameron
959b355848 Refresh package caches in all modules http://www.virtualmin.com/node/36084 2015-02-13 14:53:37 -08:00
Jamie Cameron
baf5d23a6f Don't use double header https://github.com/webmin/webmin/issues/189 2015-02-11 19:56:43 -08:00
Jamie Cameron
ec1353a720 icons_table function already prints https://sourceforge.net/p/webadmin/bugs/4492/ 2015-02-08 18:59:19 -08:00
Jamie Cameron
9938636224 Clarify param meaning 2015-02-08 10:35:53 -08:00
Jamie Cameron
ac8634bf75 Actually, the inet6 addr: format is only used by the ifconfig command 2015-02-08 10:34:49 -08:00
Jamie Cameron
5a8ae25d02 Handle different output format from ip addr command http://virtualmin.com/comment/edit/143915 2015-02-08 10:33:03 -08:00
Jamie Cameron
990e75724d Remove redundant fallback method http://virtualmin.com/node/36094 2015-02-08 10:30:22 -08:00
Jamie Cameron
8099d2b045 Bring functions for checking allowed IPs into sync http://virtualmin.com/node/36017 2015-02-06 14:34:36 -08:00
Jamie Cameron
0ffdd6c842 German translation updates from Raymond Vetter 2015-02-04 22:03:10 -08:00
Jamie Cameron
61f55a1343 German translation updates from Raymond Vetter 2015-02-04 22:03:07 -08:00
Jamie Cameron
8297c3d42f Pass port flag to backup and restore commands http://virtualmin.com/node/36093 2015-02-03 19:34:41 -08:00
Jamie Cameron
c5c8f0d05f Fix IP matching function when dealing with partial networks http://virtualmin.com/node/36017 2015-02-03 15:31:57 -08:00
Jamie Cameron
a71bf42232 Bugfixes and custom port support 2015-02-02 19:50:27 -08:00
Jamie Cameron
6e873a172a Merge branch 'master' of git@github.com:webmin/webmin 2015-01-31 15:56:06 -08:00
Jamie Cameron
e4766eb2ba German translation updates from Raymond Vetter 2015-01-31 15:55:35 -08:00
Joe Cooper
1c2bdf0f0c Typo 2015-01-30 18:09:38 -06:00
Jamie Cameron
aef1cbbeab Deal with different ifconfig format 2015-01-29 21:20:49 -08:00
Jamie Cameron
dc9cb83946 Add delay before starting to placate systemd 2015-01-29 15:37:12 -08:00
Jamie Cameron
288c05d8f1 Deal with different output format as seen in BareOS 1.4 2015-01-27 21:52:22 -08:00
Jamie Cameron
2f34f1412d Don't link back to virtualmin for root 2015-01-26 20:27:48 -08:00
Jamie Cameron
99e1eda954 Stop setting un-needed var to diable ACL checking 2015-01-26 20:04:38 -08:00
Jamie Cameron
bae3f5e77b Skip ACL check for scripts that aren't run via the web 2015-01-26 20:02:14 -08:00
Jamie Cameron
ada457ed56 German translation updates from Raymond Vetter 2015-01-25 10:24:10 -08:00
Jamie Cameron
f9a2d37e08 Add empty en_GB file at top level, so that .UTF-8 variant gets created 2015-01-24 21:14:49 -08:00
Jamie Cameron
c30ca90170 Show charset 2015-01-24 21:01:50 -08:00
Jamie Cameron
ceb1a57dd8 Don't wrap command in brackets if it already starts with them, as this can cause escaping problems with some shells 2015-01-23 17:20:09 -08:00
Jamie Cameron
cbeaed860b Allow restore of non-module files from the backup https://sourceforge.net/p/webadmin/bugs/4545/ 2015-01-23 16:12:45 -08:00
Jamie Cameron
9054e37d3a German translation updates from Raymond Vetter 2015-01-22 17:46:08 -08:00
Jamie Cameron
1925ba53c4 Handle some odd IP route setup seen on CentOS 7 http://virtualmin.com/node/35910 2015-01-22 08:16:47 -08:00
Jamie Cameron
998407be9a icon for new record type 2015-01-20 22:22:49 -08:00
Jamie Cameron
416ae2b62f icon for new record type 2015-01-20 22:18:06 -08:00
Jamie Cameron
1c38031703 icon for new record type 2015-01-20 22:17:38 -08:00
Jamie Cameron
6d5f109068 Use ; and space as DMARC separators 2015-01-19 17:45:29 -08:00
Jamie Cameron
d05c0c70f4 Fix typo 2015-01-19 16:31:20 -08:00
Jamie Cameron
14d8e45d4f Version bump for DMARC feature 2015-01-19 15:01:06 -08:00
Jamie Cameron
75518c5227 Fix theme name 2015-01-19 14:40:10 -08:00
Jamie Cameron
6b1a006ca1 Fix version 2015-01-19 14:30:04 -08:00
Jamie Cameron
5e68b937d7 Remove bad links 2015-01-19 14:29:28 -08:00
Jamie Cameron
d65ff9a623 Bring back the old blue theme, but with modern code 2015-01-19 14:24:12 -08:00
Jamie Cameron
a116a5e10f Apache 2.4 needs a Require all granted directive to allow access 2015-01-19 11:14:05 -08:00
Jamie Cameron
889d7d2ea0 Fixes for DMARC record editing 2015-01-18 22:39:39 -08:00
Jamie Cameron
754248f6af Support for editing DMARC records, similar to the way SPF is handled 2015-01-18 18:41:07 -08:00
Jamie Cameron
f3fba12703 Add ID for recollect button, so it can be vetod 2015-01-18 11:57:16 -08:00
Jamie Cameron
a71f333ff0 When overwriting a file via a temp file, keep the old permissions. Otherwise, let the umask apply 2015-01-17 23:31:28 -08:00
Jamie Cameron
8c80095878 000 is a valid umask 2015-01-17 23:15:50 -08:00
Jamie Cameron
dad6a7c3e9 Use correct permissions on source and dest folders when copying 2015-01-17 20:18:30 -08:00
Jamie Cameron
50991313bf German translation updates from Raymond Vetter 2015-01-17 15:52:47 -08:00
Jamie Cameron
6b4ec5b3f0 Use modern UI library 2015-01-17 12:03:51 -08:00
Jamie Cameron
88b73eaea4 Allow visible system info sections to be selected in the module ACL 2015-01-17 11:50:23 -08:00
Jamie Cameron
e263e49912 Ignore commented out cache paths that are actually just headings http://virtualmin.com/node/35881 2015-01-17 10:33:20 -08:00
Jamie Cameron
f8dfa52d92 Allow display of system temps in fahrenheit http://virtualmin.com/node/35875 2015-01-16 23:34:34 -08:00
Jamie Cameron
73cc25e127 Fix checking of server type 2015-01-13 18:51:03 -08:00
Jamie Cameron
07e9a01919 MYSQL_PASS can't be used when running as a different user if the user has a .my.cnf file https://www.virtualmin.com/node/35764 2015-01-13 15:58:34 -08:00
Jamie Cameron
04cc026a61 Document function 2015-01-13 15:42:29 -08:00
Jamie Cameron
17c63ef178 Put file handle into a package, so that all callers can use it 2015-01-12 16:37:06 -08:00
Jamie Cameron
51ca560718 Clear out SMTP SSL and port when connecting locally 2015-01-12 16:31:51 -08:00
Jamie Cameron
2c363c3238 German translation updates from Raymond Vetter 2015-01-12 15:50:47 -08:00
Jamie Cameron
12735f1c54 Fix checkbox image 2015-01-11 16:01:57 -08:00
Jamie Cameron
a87593651f Dev version bump 2015-01-11 14:05:12 -08:00
Jamie Cameron
5f54caa5a9 Support easier to use release flag 2015-01-11 10:03:25 -08:00
Jamie Cameron
89897579f5 Use named param 2015-01-11 10:03:15 -08:00
Jamie Cameron
3d18a1b9fd Add support for SSL encrypted SMTP connections 2015-01-11 10:03:02 -08:00
Jamie Cameron
b8073652fd Allow selection of SSL mode for sending email 2015-01-11 09:44:12 -08:00
Jamie Cameron
6cf9f5243c Make default more obvious 2015-01-11 09:34:31 -08:00
Jamie Cameron
5ea42f455e Use webprefix relative path 2015-01-10 20:24:27 -08:00
Jamie Cameron
34d891545e Add webprefix for CGI scripts 2015-01-10 20:22:11 -08:00
Jamie Cameron
0ef822606b Make notifications scarier 2015-01-10 16:16:05 -08:00
Jamie Cameron
69185c1df3 Use proper args in send_mail function 2015-01-09 18:25:54 -08:00
Jamie Cameron
64468f1afa Add webprefix back to links http://sourceforge.net/p/webadmin/bugs/4536 2015-01-09 15:24:42 -08:00
Jamie Cameron
84bb9e4d22 Show current theme even if it should be hidden 2015-01-09 15:13:34 -08:00
Jamie Cameron
3e1cf3c298 Hide themes that are just links 2015-01-09 15:12:17 -08:00
Jamie Cameron
43039ddc43 Explicitly login as root, rather than having mysql commands guess this based on the username 2015-01-09 12:49:46 -08:00
Jamie Cameron
5e2c23e0c2 When deleting from an mbox file, open the temp file with root permissions but only if it doesn't yet exist https://github.com/webmin/webmin/issues/184 2015-01-08 23:27:46 -08:00
Jamie Cameron
fd6b3b3529 Correct encoding on french translation http://virtualmin.com/node/35757 2015-01-08 21:46:15 -08:00
Jamie Cameron
c8f8f55f1b Add webprefix to top-frame links http://sourceforge.net/p/webadmin/bugs/4536 2015-01-08 17:44:06 -08:00
Jamie Cameron
39bf55a410 Fix collection of RAID errors 2015-01-08 17:24:58 -08:00
Jamie Cameron
807de6e9ce Hide password in FTP error message http://virtualmin.com/node/35772 2015-01-08 10:54:12 -08:00
Jamie Cameron
6a30643822 Show error message if some disks have failed, even if there is no failure status https://sourceforge.net/p/webadmin/bugs/4497/ 2015-01-07 17:26:54 -08:00
Jamie Cameron
9d84a6fdca Use correct GID function 2015-01-07 13:57:28 -08:00
Jamie Cameron
c8b4672cc8 Use UUIDs in mdadm.conf when creating new arrays, thanks to Caspar Smit 2015-01-06 16:43:49 -08:00
Jamie Cameron
65ee16aad9 Fix error message 2015-01-06 10:13:21 -08:00
Jamie Cameron
fe4758b8eb Add reload button, and change the reload_postfix function to return an error instead of showing it to the user 2015-01-05 15:26:49 -08:00
Jamie Cameron
49e05cbdfe Users are referred to by username now, not index https://sourceforge.net/p/webadmin/bugs/4532/ 2015-01-05 10:41:16 -08:00
Jamie Cameron
8d9a68461d Also recognize a passphrase prompt http://sourceforge.net/p/webadmin/bugs/4531 2015-01-05 10:33:53 -08:00
Jamie Cameron
3037f233ac Gray theme doesn't do the full left menu yet https://sourceforge.net/p/webadmin/usermin-bugs/431/ 2015-01-05 10:15:02 -08:00
Jamie Cameron
852b8d7576 Don't show invalid bar charts 2015-01-05 09:58:23 -08:00
Jamie Cameron
4d0befa26f Remove vars we never use 2015-01-04 23:03:24 -08:00
Jamie Cameron
d39b7875e9 Actually, let modules choose their preferred sort order 2015-01-04 22:53:46 -08:00
Jamie Cameron
5b8308c011 Ensure sub-category items are sorted 2015-01-04 22:43:38 -08:00
Jamie Cameron
c48e9412e2 Give credit for translations 2015-01-04 15:56:00 -08:00
Jamie Cameron
4f1226697e Norwegian update from Stein-Aksel Basma 2015-01-04 15:55:31 -08:00
Jamie Cameron
fb66b43c67 German translation updates from Raymond Vetter 2015-01-03 22:23:17 -08:00
Jamie Cameron
e3bbfdda7c Show critical module versions 2015-01-01 19:13:28 -08:00
Jamie Cameron
b7eb16fe3a German translation updates from Raymond Vetter 2015-01-01 18:22:50 -08:00
Jamie Cameron
10eb872ec5 Finally fix some long-standing perl warnings about undef strings 2014-12-30 23:19:14 -08:00
Jamie Cameron
95a2815ea6 Declare variable to prevent skipping of options on subsequent calls 2014-12-30 23:07:51 -08:00
Jamie Cameron
38e698aab9 Merge branch 'master' of git@github.com:webmin/webmin 2014-12-30 22:34:52 -08:00
Jamie Cameron
bea0787a10 If searching by file, only open diffs for matching files 2014-12-30 22:33:07 -08:00
Joe Cooper
8ae37f2c09 strict and warnings conversion. remove & from sub calls. 2014-12-30 19:34:55 -06:00
Jamie Cameron
44287db830 Logout link should go to top window 2014-12-30 17:08:11 -08:00
Jamie Cameron
591d8e1f01 Multiple modules may use the same ID 2014-12-30 14:35:41 -08:00
Jamie Cameron
e0c17bc26c Version bump 2014-12-29 22:49:59 -08:00
Jamie Cameron
90c3d79967 Merge branch 'master' of git@github.com:webmin/webmin 2014-12-29 22:37:37 -08:00
Jamie Cameron
c6d9112581 changelog for permissions fix 2014-12-29 22:36:42 -08:00
Joe Cooper
95bb656222 A few perlcritic fixes 2014-12-29 22:50:44 -06:00
Joe Cooper
431f55fd4c Fix image links, convert some local vars to my vars 2014-12-29 22:42:05 -06:00
Jamie Cameron
9a1b5a19d7 Fix function name typo 2014-12-29 13:56:45 -08:00
Jamie Cameron
8116d356cd Fix join warning by converting undefs to empty strings 2014-12-29 09:44:42 -08:00
Jamie Cameron
72235d84a4 Create array before using it 2014-12-28 21:37:03 -08:00
Jamie Cameron
77600ecbcf Add function to safely delete a file 2014-12-28 21:32:23 -08:00
Jamie Cameron
4fa0168437 Don't read a missing file, again 2014-12-28 21:29:15 -08:00
Jamie Cameron
53664157fc Don't read a missing file 2014-12-28 21:28:43 -08:00
Jamie Cameron
86fca5f20b Use correct permissions for folder moves 2014-12-28 17:27:27 -08:00
Jamie Cameron
3eb55ffee4 Remove debug message 2014-12-28 13:42:20 -08:00
Jamie Cameron
c031dfcb18 Allow nested calls to switch function, check perms when copying a folder 2014-12-27 20:26:48 -08:00
Jamie Cameron
cffb8971b3 Deal with modules that don't need a UI for the status monitor 2014-12-27 20:09:22 -08:00
Jamie Cameron
1323ae9191 Increase copy buffer size for more efficiency 2014-12-27 17:16:09 -08:00
Jamie Cameron
b4fa4db0d6 Update more functions to operate as the correct user 2014-12-27 16:40:37 -08:00
Jamie Cameron
200dae2390 Handle relative links to sites-available properly http://virtualmin.com/node/35658 2014-12-27 12:09:06 -08:00
Jamie Cameron
7bfd7ced5d Fix timeout of unkown session error 2014-12-27 11:11:44 -08:00
Jamie Cameron
f098a1a6f1 HTML escape OS and version 2014-12-25 18:17:50 -08:00
Jamie Cameron
f0e7c038ed German translation updates from Raymond Vetter 2014-12-22 23:18:26 -08:00
Jamie Cameron
2ea378e63d Allow modules to veto blocks from other modules 2014-12-22 14:49:33 -08:00
Jamie Cameron
44a8f78212 Merge branch 'master' of git@github.com:webmin/webmin 2014-12-22 14:41:54 -08:00
Jamie Cameron
1a4e3bcab6 Add ID to overall system info 2014-12-22 14:41:41 -08:00
Joe Cooper
be2db73504 Merge branch 'master' of github.com:webmin/webmin 2014-12-21 04:50:37 -06:00
Joe Cooper
236250c344 Revert because something mysterious is broken when variables are
localized and such. I have no idea what, but long file lists get concatenated
when using the new version (or maybe long HTML pages).
2014-12-21 04:49:30 -06:00
Joe Cooper
3595cbde04 Perl path to /usr/local/bin/perl 2014-12-20 19:04:55 -06:00
Joe Cooper
8685fd23e8 Remove strict and warn, as it causes a bunch of warnings when
executing. A bunch of undefined things need to be defined, but
I don't understand it well enough yet to make it happen.
2014-12-20 18:50:03 -06:00
Jamie Cameron
1728a31105 Show headers above sections 2014-12-20 16:01:41 -08:00
Jamie Cameron
3293374843 Support new param for link target 2014-12-20 13:57:37 -08:00
Jamie Cameron
e9030b6d2d Catalan updates 2014-12-20 12:23:34 -08:00
Jamie Cameron
a4b5951dda give credit for translations 2014-12-20 12:22:32 -08:00
Jamie Cameron
e0a1b43518 Catalan update from Jaume Badiella 2014-12-20 12:21:36 -08:00
Jamie Cameron
77c87bc228 Catalan update from Jaume Badiella 2014-12-20 12:21:15 -08:00
Jamie Cameron
8838cf6b50 Support for wide table rows 2014-12-19 19:37:30 -08:00
Jamie Cameron
521cfd6afd Support links on right frame, and add one to refresh system info 2014-12-19 17:09:50 -08:00
Jamie Cameron
a44eb9cd3d Support openable status blocks 2014-12-19 15:22:47 -08:00
Jamie Cameron
4c11ecfaa3 Fix chart that disappeared 2014-12-19 15:16:52 -08:00
Jamie Cameron
81a13478a4 Allow manual editing of all config files 2014-12-18 23:50:28 -08:00
Jamie Cameron
593f8ed232 Timeout must be > 0 2014-12-18 20:23:23 -08:00
Jamie Cameron
38fc48e893 Add validation for timeout field https://sourceforge.net/p/webadmin/bugs/4526/ 2014-12-18 20:21:56 -08:00
Jamie Cameron
ef3cbdda13 Dalvik user agent is used by mobiile browsers 2014-12-18 16:53:18 -08:00
Jamie Cameron
6a2127e3f8 Remove obsolete options 2014-12-18 16:48:02 -08:00
Jamie Cameron
28822295d5 German translation updates from Raymond Vetter 2014-12-17 20:11:37 -08:00
Jamie Cameron
bd1e2ca828 Add param for selecting user to backup as 2014-12-17 14:54:32 -08:00
Jamie Cameron
dc4ea2a94d Complete support for showing warnings on right frame 2014-12-17 14:54:09 -08:00
Jamie Cameron
5eb9821920 Extend API for right frame 2014-12-17 14:08:56 -08:00
Jamie Cameron
0b35796814 Respect commented out squid cache dir https://sourceforge.net/p/webadmin/bugs/4523/ 2014-12-17 10:42:34 -08:00
Jamie Cameron
2ede9a5cae Merge branch 'master' of git@github.com:webmin/webmin 2014-12-16 21:47:19 -08:00
Jamie Cameron
895e5bbbd1 Don't fail just because some system actions can't be looked up https://sourceforge.net/p/webadmin/bugs/4522/ 2014-12-16 21:43:57 -08:00
Joe Cooper
1b5a7b0218 strictures and warnings update 2014-12-16 03:28:00 -06:00
Jamie Cameron
908edc961f Modify mail safely 2014-12-15 22:44:59 -08:00
Jamie Cameron
115683ca39 Use correct permissions when writing mail 2014-12-15 22:36:57 -08:00
Jamie Cameron
b1a0f07c3a More work on using correct permissions for folder ops 2014-12-15 22:31:04 -08:00
Jamie Cameron
a97677018e German translation updates from Raymond Vetter 2014-12-14 19:45:45 -08:00
Jamie Cameron
152ce12fc3 Use folder permissions for opendir 2014-12-14 11:33:33 -08:00
Jamie Cameron
c250754496 Start of work on reading mail folders with permissions of the owner 2014-12-14 11:04:55 -08:00
Jamie Cameron
bff24c157c Allow un-applying when in direct editing mode http://virtualmin.com/node/35467 2014-12-14 10:16:48 -08:00
Jamie Cameron
64a79b77cb Functions for safely reading and writing mail files 2014-12-13 19:58:49 -08:00
Jamie Cameron
adda7e7b87 Remove ancient check clicks function 2014-12-13 18:19:14 -08:00
Jamie Cameron
b6f2167e02 Remove functions that we've marked as useless now 2014-12-13 11:17:09 -08:00
Jamie Cameron
a4ea571e8e Remove useless comments 2014-12-13 11:15:15 -08:00
Jamie Cameron
704a70169a By default use start/stop commands that are compatible with systemd as well http://sourceforge.net/p/webadmin/bugs/4521/ 2014-12-13 10:49:14 -08:00
Jamie Cameron
59f2fd488e Cache negative UUID lookups 2014-12-12 21:21:52 -08:00
Jamie Cameron
7226c6d943 German translation updates from Raymond Vetter 2014-12-11 22:18:11 -08:00
Jamie Cameron
6f72be02b1 Fix typos 2014-12-11 22:17:59 -08:00
Jamie Cameron
bd683637c0 Log resolved hostname on login and logout http://sourceforge.net/p/webadmin/bugs/4520 2014-12-11 17:05:15 -08:00
Jamie Cameron
d2ca839d0a Always delete lock before creating 2014-12-11 13:06:47 -08:00
Jamie Cameron
3fd769a8a1 Force non-root users to enter a server name https://sourceforge.net/p/webadmin/bugs/4519/ 2014-12-11 11:26:58 -08:00
Jamie Cameron
a87400c0ea Add support for charts 2014-12-10 22:01:35 -08:00
Jamie Cameron
a80248b068 BIND needs new zone files to be group readable 2014-12-09 21:23:59 -08:00
Jamie Cameron
217f691850 Set some new mysql.user fields 2014-12-09 21:05:54 -08:00
Jamie Cameron
2a451a411a German translation updates from Raymond Vetter 2014-12-09 19:11:17 -08:00
Jamie Cameron
85ecfa47a4 Delete .lock files that are hard links 2014-12-09 19:08:06 -08:00
Jamie Cameron
4c0e851424 Make temp files unreadable by other users 2014-12-09 19:02:19 -08:00
Jamie Cameron
cc4442b140 Show charts 2014-12-09 17:02:34 -08:00
Jamie Cameron
2cfd48f095 Don't create virtualhost dir if user cannot be determined https://sourceforge.net/p/webadmin/bugs/4518/ 2014-12-09 16:44:15 -08:00
Jamie Cameron
b5772892df Start of work to show status from new API 2014-12-08 23:05:42 -08:00
Jamie Cameron
28ce1fd358 Show CPU and drive temps 2014-12-08 23:04:00 -08:00
Jamie Cameron
6697810b99 Actually there is no need to support a different right.cgi, as this theme will be package with Webmin. Also, remove refereces to Virtualmin. 2014-12-08 22:50:02 -08:00
Jamie Cameron
860fc5464b Strict and warnings complaince 2014-12-08 22:46:30 -08:00
Jamie Cameron
6754be9cd9 Convert gray theme to use new API for modules and left side nagivation 2014-12-08 18:52:18 -08:00
Jamie Cameron
bc105a9038 Clarify meaning of chart type 2014-12-08 18:50:34 -08:00
Jamie Cameron
439ca40645 Remove confusing message 2014-12-08 18:45:08 -08:00
Jamie Cameron
4b723c2c53 If the old blue theme is selected, change it to gray theme 2014-12-08 14:53:13 -08:00
Jamie Cameron
b9a27b27da Blue theme is now just a copy of gray theme for compatibility reasons 2014-12-07 18:15:42 -08:00
Jamie Cameron
a84f077a93 Return old blue theme 2014-12-07 18:12:52 -08:00
Jamie Cameron
4a6d43eb62 Stop linking to blue theme 2014-12-07 18:07:37 -08:00
Jamie Cameron
8e2dddb959 Start creating a separate theme .pl file 2014-12-07 17:55:40 -08:00
Jamie Cameron
b8c98bebfe Start creating a separate theme .pl file 2014-12-07 17:51:30 -08:00
Jamie Cameron
d697f904dc More work on new system inf ofunction 2014-12-07 16:21:26 -08:00
Jamie Cameron
5b9fed246f Start of work on new system info provider 2014-12-07 11:23:10 -08:00
Jamie Cameron
7bb7b9719a Strict and warnings compliance 2014-12-07 10:57:35 -08:00
Jamie Cameron
33b6270467 Define new API function for right-frame info 2014-12-06 15:42:59 -08:00
Jamie Cameron
b34a096b23 Add API function for theme authors to get the menu of Webmin modules 2014-12-06 14:49:48 -08:00
Jamie Cameron
dd114f4bf5 Merge branch 'master' of git@github.com:webmin/webmin 2014-12-05 21:40:35 -08:00
Jamie Cameron
e12e75639a Add support for NSEC3PARAM records 2014-12-05 21:39:46 -08:00
Joe Cooper
9311335206 Fix img link. 2014-12-05 17:19:08 -06:00
Jamie Cameron
b7684cd544 German translation updates from Raymond Vetter 2014-12-05 13:26:10 -08:00
Jamie Cameron
f36b480df8 Use proper params 2014-12-03 20:14:55 -08:00
Jamie Cameron
4c54492b4e Show number of rule users 2014-12-03 20:14:15 -08:00
Jamie Cameron
c2b42e9e38 Work on NSEC3PARAM record type support 2014-12-03 20:13:58 -08:00
Jamie Cameron
cd40c2072c Show number of rule users 2014-12-03 19:24:33 -08:00
Jamie Cameron
4c3da19911 Document new param properly 2014-12-02 20:29:40 -08:00
Jamie Cameron
c8bd68190e Document new param 2014-12-02 20:15:45 -08:00
Jamie Cameron
706cf5c1db Hide SSL icon for non-SSL sites http://virtualmin.com/node/35457 2014-12-01 22:39:00 -08:00
Jamie Cameron
e8232c6be1 Open new usermin port on firewall https://virtualmin.com/node/35448 2014-11-30 20:27:23 -08:00
Jamie Cameron
7ac3b37d14 Port fixes to ip_match function to webmin configuration module 2014-11-30 15:04:16 -08:00
Jamie Cameron
22af9bc18e Just having a dash doesn't mean a string is an IP range https://sourceforge.net/p/webadmin/bugs/4511/ 2014-11-30 15:02:12 -08:00
Jamie Cameron
ecfff11982 Use tar to backup /etc/webmin , and exclude known large directories 2014-11-29 22:58:27 -08:00
Jamie Cameron
870acb09e0 Prevent double inclusion 2014-11-29 15:07:48 -08:00
Jamie Cameron
4affdb6338 Actually export new function 2014-11-29 14:44:03 -08:00
Jamie Cameron
0ca360f610 More strict conversion 2014-11-29 14:43:42 -08:00
Jamie Cameron
ea32cfc6ee Strict and warnings compliance 2014-11-29 14:30:15 -08:00
Jamie Cameron
56ae0eca2e Prevent duplicate require when in strict mode 2014-11-29 14:19:08 -08:00
Jamie Cameron
f9ea811781 Allow caseless match 2014-11-28 17:55:00 -08:00
Jamie Cameron
0aa5a5f465 Don't allow viewing directory index by default http://sourceforge.net/p/webadmin/bugs/4514 2014-11-28 11:28:15 -08:00
Jamie Cameron
a1b6645633 Fix incorrect string https://www.virtualmin.com/node/35413 2014-11-27 23:12:53 -08:00
Jamie Cameron
552ee47540 German translation updates from Raymond Vetter 2014-11-24 19:13:32 -08:00
Jamie Cameron
ac3fdd0d62 German translation updates from Raymond Vetter 2014-11-24 19:13:28 -08:00
Jamie Cameron
86357937f5 Fix item granting to use new server API 2014-11-23 10:27:21 -08:00
1341 changed files with 10685 additions and 7466 deletions

View File

@@ -208,3 +208,16 @@ Catalan updates, thanks to Jaume Badiella.
Added additional protected against Shellshock exploits made via the Webmin webserver.
---- Changes since 1.710 ----
SSL v2 and v3 are now disabled by default at Webmin install time, to block the POODLE attack. They can be re-enabled on the SSL Encryption page of the Webmin Configuration module.
---- Changes since 1.720 ----
Deprecated the old blue-theme in favor of the new gray-theme.
Catalan translation updates from Jaume Badiella.
More German translation updates, thanks to Raymond Vetter.
---- Changes since 1.730 ----
More German translation updates, thanks to Raymond Vetter.
Norwegian updates, thanks to Stein-Aksel Basma.
The awesome new Authentic Theme by Ilia Rostovtsev is now included in the Webmin package.
Catalan translation updates from Jaume Badiella.
---- Changes since 1.740 ----
Norwegian updates, thanks to Stein-Aksel Basma.
Catalan translation updates from Jaume Badiella.
More German translation updates, thanks to Raymond Vetter.

2
README
View File

@@ -1,4 +1,4 @@
Webmin Version 1.720
Webmin Version 1.750
--------------------
Webmin is a web-based interface for system administration for Unix.
Using any browser that supports tables and forms, you can setup user

File diff suppressed because one or more lines are too long

View File

@@ -462,7 +462,10 @@ else {
my $deny = $user->{'deny'} || "";
$deny =~ s/:/;/g;
&print_tempfile($fh,
"$user->{'name'}:$user->{'pass'}:$user->{'sync'}:$user->{'cert'}:",
$user->{'name'},":",
$user->{'pass'},":",
($user->{'sync'} || ""),":",
($user->{'cert'} || ""),":",
($allow ? "allow $allow" :
$deny ? "deny $deny" : ""),":",
join(" ", @times),":",
@@ -647,8 +650,10 @@ else {
if ($l =~ /^([^:]+):([^:]*)/ && $1 eq $username) {
&add_old_password($user, "$2", \%miniserv);
&print_tempfile($fh,
"$user->{'name'}:$user->{'pass'}:",
"$user->{'sync'}:$user->{'cert'}:",
$user->{'name'},":",
$user->{'pass'},":",
($user->{'sync'} || ""),":",
($user->{'cert'} || ""),":",
($allow ? "allow $allow" :
$deny ? "deny $deny" : ""),":",
join(" ", @times),":",
@@ -732,7 +737,7 @@ if ($username ne $user->{'name'} && !$user->{'proto'}) {
if ($miniserv{'session'} && $username ne $user->{'name'}) {
# Modify all sessions for the renamed user
&rename_session_user(\&miniserv, $username, $user->{'name'});
&rename_session_user(\%miniserv, $username, $user->{'name'});
}
}

View File

@@ -1,7 +1,9 @@
use strict;
use warnings;
do "acl-lib.pl";
if (!$main::done_foreign_require{"acl","acl-lib.pl"}) {
do "acl-lib.pl";
}
our (%config, $config_directory);
# useradmin_create_user(&details)
@@ -81,7 +83,7 @@ if ($u && $u->{'sync'}) {
}
if ($_[0]->{'user'} ne $_[0]->{'olduser'}) {
if ($_[0]->{'olduser'} && $_[0]->{'user'} ne $_[0]->{'olduser'}) {
# Check other users' acl module acls
foreach my $u (&list_users()) {
my %uaccess = &get_module_acl($u->{'name'});

View File

@@ -1101,19 +1101,20 @@ close(USERS);
# some context (global, virtual, directory or htaccess)
sub config_icons
{
local ($ctx, $prog) = @_;
local($m, $func, $e, %etype, $i, $c);
foreach $m (sort { $a cmp $b } (keys %httpd_modules)) {
$func = $m."_directives";
if (defined(&$func)) {
foreach $e (&$func($httpd_modules{$m})) {
if ($e->{$_[0]}) { $etype{$e->{'type'}}++; }
if ($e->{$ctx}) { $etype{$e->{'type'}}++; }
}
}
}
local (@titles, @links, @icons);
for($i=0; $text{"type_$i"}; $i++) {
if ($etype{$i} && $access_types{$i}) {
push(@links, $_[1]."type=$i");
push(@links, $prog."type=$i");
push(@titles, $text{"type_$i"});
push(@icons, "images/type_icon_$i.gif");
}
@@ -1843,7 +1844,8 @@ if ($config{'link_dir'}) {
opendir(LINKDIR, $config{'link_dir'});
foreach my $f (readdir(LINKDIR)) {
if ($f ne "." && $f ne ".." &&
(&resolve_links($config{'link_dir'}."/".$f) eq $file ||
(&simplify_path(
&resolve_links($config{'link_dir'}."/".$f)) eq $file ||
$short eq $f)) {
&unlink_logged($config{'link_dir'}."/".$f);
}

View File

@@ -3,9 +3,9 @@ httpd_dir=/srv/www
httpd_conf=/etc/apache2/httpd.conf
mime_types=/etc/apache2/mime.types
httpd_path=/usr/sbin/httpd2-prefork
start_cmd=/etc/init.d/apache2 start
stop_cmd=/etc/init.d/apache2 stop
apply_cmd=/etc/init.d/apache2 restart
start_cmd=service apache2 start
stop_cmd=service apache2 stop
apply_cmd=service apache2 restart
show_order=0
max_servers=100
test_config=1

View File

@@ -74,15 +74,14 @@ if (!$in{'name_def'}) {
!$in{'root'} || &allowed_auth_file($in{'root'}) ||
&error(&text('cvirt_eroot3', $in{'root'}));
if ($in{'root'} && !-d $in{'root'}) {
if ($in{'root'} && !-e $in{'root'}) {
# create the document root
mkdir($in{'root'}, 0755) ||
&error(&text('cvirt_eroot2', $in{'root'}, $!));
$user = &find_directive("User", $conf);
$group = &find_directive("Group", $conf);
$uid = $user ? getpwnam($user) : 0;
$gid = $group ? getgrnam($group) : 0;
chown($uid, $gid, $in{'root'});
$user || &error($text{'cvirt_eroot4'});
&set_ownership_permissions($user, $group, undef, $in{'root'});
}
# find file to add to
@@ -215,15 +214,23 @@ push(@mems, @cmems);
if ($in{'adddir'} && $in{'root'}) {
# Add a <Directory> section for the root
push(@mems, { 'name' => 'Directory',
'value' => "\"$in{'root'}\"",
'type' => 1,
'members' => [
$dirsect = { 'name' => 'Directory',
'value' => "\"$in{'root'}\"",
'type' => 1,
'members' => [
{ 'name' => 'allow',
'value' => 'from all' },
{ 'name' => 'Options',
'value' => '+Indexes' },
] });
'value' => 'None' },
],
};
if ($httpd_modules{'core'} >= 2.4) {
# Apache 2.4+ needs a 'Require all granted' line
push(@{$dirsect->{'members'}},
{ 'name' => 'Require',
'value' => 'all granted' });
}
push(@mems, $dirsect);
}
# Save to the file

View File

@@ -417,8 +417,6 @@ if ($access{'create'}) {
&ui_checkbox("nv", 1, $text{'index_nv'}, 1)."<br>" : "").
&ui_checkbox("listen", 1, $text{'index_listen'}, 1));
# Work out sensible default port
# Port
print &ui_table_row($text{'index_port'},
&choice_input(@nvports ? 2 : 0,
@@ -434,8 +432,16 @@ if ($access{'create'}) {
&ui_checkbox("adddir", 1, $text{'index_adddir'}, 1));
# Server name
print &ui_table_row($text{'index_name'},
&opt_input("", "name", $text{'index_auto'}, 30));
if ($access{'virts'} eq '*') {
print &ui_table_row($text{'index_name'},
&opt_input("", "name", $text{'index_auto'}, 30));
}
else {
# Require that non-root users enter a server name, or else it
# will be impossible to grant access to the new virtualhost
print &ui_table_row($text{'index_name'},
&ui_textbox("name", "", 30));
}
# Add to file
print &ui_table_row($text{'index_file'},

View File

@@ -67,6 +67,7 @@ cvirt_ename='$1' no
cvirt_eroot1=Has d'introduir l'arrel dels documents
cvirt_eroot2=No s'ha pogut crear el directori '$1': $2
cvirt_eroot3=No tens permís per utilitzar el directori arrel '$1'
cvirt_eroot4=No hi ha cap usuari definit a la configuracio d'Apache
cvirt_etaken=Ja existeix un servidor virtual amb el mateix nom i el mateix port
cvirt_efile=No s'ha pogut escriure a $1: $2
cvirt_emissing=S'ha afegit el nou servidor virtual a $1, però Apache no està utilitzant aquest fitxer. Comprova la <a href='$2'>configuració del mòdul</a> i assegura't que el 'Fitxer o directori on s'afegeixen els servidors virtuals' és correcte.
@@ -359,6 +360,8 @@ core_ehlimit=$1 no
core_dport=Port per defecte:
core_address=Adreça
core_port=Port
core_portname=Protocol
core_protoany=&lt;Qualsevol&gt;
core_listen=Escolta les adreces i els ports
core_eaddress='$1' no és una adreça vàlida
core_eport='$1' no és un port vàlid

View File

@@ -343,6 +343,7 @@ cvirt_eport='$1' ist kein g&#252;ltiger Port
cvirt_eroot1=Sie m&#252;ssen ein Dokument-Root angeben
cvirt_eroot2=Fehler beim Anlegen des Verzeichnisses '$1' : $2
cvirt_eroot3=Sie sind nicht berechtigt das Root-Verzeichnis '$1' zu benutzen
cvirt_eroot4=Keine Benutzer in der Apache-Konfiguration definiert
cvirt_err=Fehler beim Anlegen des virtuellen Server
cvirt_etaken=Ein virtuellen Server mit dem selben Namen und demselben Port existiert bereits
default_serv=Standard Server

View File

@@ -67,6 +67,7 @@ cvirt_ename='$1' is not a valid server name
cvirt_eroot1=You must enter a document root
cvirt_eroot2=Failed to create directory '$1' : $2
cvirt_eroot3=You are not allowed to use the root directory '$1'
cvirt_eroot4=No User defined in the Apache configuration
cvirt_etaken=A virtual server with the same name and port already exists
cvirt_efile=Failed to write to $1 : $2
cvirt_emissing=The new virtual server was added to $1, but this file is not used by Apache. Check the <a href='$2'>module configuration</a> and make sure the 'File or directory to add virtual servers to' is correct.

View File

@@ -302,10 +302,12 @@ core_outfilter=Bruk output filtere for alle filer
core_overr=Innstillingsfiler kan overstyre..
core_pid=Tjener PID fil
core_port=Port
core_portname=Protokoll
core_proclimit=Prosess begrensing
core_proclimit2=prosess begrensning
core_product=Kun produkt
core_proglog=Program
core_protoany=&lt;Enhver&gt;
core_realm=Navn for autentiseringsomr&#229;de
core_resp=Svar
core_rtout=Tidsavbrudd for foresp&#248;rsel
@@ -341,6 +343,7 @@ cvirt_eport='$1' er ikke en gyldig port
cvirt_eroot1=Du m&#229; oppgi dokumentrot
cvirt_eroot2=Kunne ikke opprette katalog '$1' : $2
cvirt_eroot3=Du har ikke tilgang til &#229; bruke rot-katalogen '$1'
cvirt_eroot4=Ingen bruker definert i Apache konfigurasjonen
cvirt_err=Kunne ikke opprette virtuell tjener
cvirt_etaken=En virtuell tjener med samme navn og port finnes allerede
default_serv=standard tjener

View File

@@ -18,6 +18,10 @@ if ($in{'virt'} && $access{'types'} eq '*') {
"name" => $text{'virt_edit'},
"link" => "manual_form.cgi?virt=$in{'virt'}" };
}
if ($v->{'value'} =~ /:80/ && $v->{'value'} !~ /:443/) {
# Hide SSL icon for non-SSL sites
$access_types{14} = 0;
}
&config_icons("virtual", "edit_virt.cgi?virt=$in{'virt'}&", $sw_icon,
$ed_icon ? $ed_icon : ());

View File

@@ -453,7 +453,8 @@ elsif ($mode == 2) {
return undef;
}
=head2 execute_restore(&mods, source, &files, apply, [show-only])
=head2 execute_restore(&mods, source, &files, apply, [show-only],
[&other-files])
Restore configuration files from the specified source for the listed modules.
Returns undef on success, or an error message.
@@ -461,7 +462,7 @@ Returns undef on success, or an error message.
=cut
sub execute_restore
{
my ($mods, $src, $files, $apply, $show) = @_;
my ($mods, $src, $files, $apply, $show, $others) = @_;
# Fetch file if needed
my ($mode, $user, $pass, $host, $path, $port) = &parse_backup_url($src);
@@ -518,7 +519,7 @@ my @tarfiles = map { "/$_" } split(/\r?\n/, $out);
my %tarfiles = map { $_, 1 } @tarfiles;
# Extract manifests for each module
my %hasmod = map { $_, 1 } @{$_[0]};
my %hasmod = map { $_, 1 } @$mods;
$hasmod{"_others"} = 1;
&execute_command("rm -rf ".quotemeta($manifests_dir));
my $rel_manifests_dir = $manifests_dir;
@@ -548,6 +549,7 @@ while($m = readdir(DIR)) {
push(@files, @mfiles);
}
closedir(DIR);
push(@files, @$others) if ($others);
if (!@files) {
&unlink_file($file) if ($mode != 0);
return $text{'backup_enone2'};
@@ -555,15 +557,15 @@ if (!@files) {
# Get descriptions for each module
my %desc;
foreach my $m (@{$_[0]}) {
foreach my $m (@$mods) {
my %minfo = &get_module_info($m);
$desc{$m} = $minfo{'desc'};
}
# Call module pre functions
foreach my $m (@{$_[0]}) {
foreach my $m (@$mods) {
my $mdir = &module_root_directory($m);
if ($m && &foreign_check($m) && !$_[4] &&
if ($m && &foreign_check($m) && !$show &&
-r "$mdir/backup_config.pl") {
&foreign_require($m, "backup_config.pl");
if (&foreign_defined($m, "pre_restore")) {
@@ -577,7 +579,7 @@ foreach my $m (@{$_[0]}) {
}
# Lock all files being extracted
if (!$_[4]) {
if (!$show) {
my $f;
foreach $f (@files) {
&lock_file($f);
@@ -585,7 +587,7 @@ if (!$_[4]) {
}
# Extract contents (only files specified by manifests)
my $flag = $_[4] ? "t" : "x";
my $flag = $show ? "t" : "x";
my $qfiles = join(" ", map { s/^\///; quotemeta($_) } &unique(@files));
if ($gzipped) {
&execute_command("cd / ; gunzip -c $qfile | tar ${flag}f - $qfiles",
@@ -598,7 +600,7 @@ else {
my $ex = $?;
# Un-lock all files being extracted
if (!$_[4]) {
if (!$show) {
my $f;
foreach $f (@files) {
&unlock_file($f);
@@ -611,16 +613,16 @@ if ($ex) {
return &text('backup_euntar', "<pre>$out</pre>");
}
if ($_[3] && !$_[4]) {
if ($apply && !$show) {
# Call all module apply functions
foreach $m (@{$_[0]}) {
foreach $m (@$mods) {
if (&foreign_defined($m, "post_restore")) {
&foreign_call($m, "post_restore", \@files);
}
}
}
@{$_[2]} = @files;
@$files = split(/\n/, $out);
return undef;
}

View File

@@ -89,6 +89,9 @@ print &ui_table_row($text{'edit_mods2'},
[ map { [ $_->{'dir'}, $_->{'desc'} ] } @mods ],
5, 1));
print &ui_table_row($text{'edit_other2'},
&ui_textarea("others", undef, 3, 50));
print &ui_table_row($text{'edit_dest2'},
&show_backup_destination("src", $config{'dest'}, 1));

View File

@@ -35,6 +35,7 @@ edit_schedyes=S
edit_mods=Mòduls a copiar
edit_dest=Destinació de la còpia
edit_mods2=Mòduls a restaurar
edit_other2=Altres fitxers a restaurar
edit_dest2=Restaura de
edit_what=Inclou en la còpia
edit_webmin=Fitxers de configuració dels mòduls Webmin
@@ -83,6 +84,7 @@ backup_failed=... ha fallat! $1
backup_done=... completa. La mida final de la còpia és de $1 i conté $2 fitxers.
restore_err=La restauració ha fallat
restore_emods=No has seleccionat cap mòdul ni cap altre fitxer
restore_title=Configuració de Restauració
restore_doing=S'està començant la restauració dels fitxers de configuració de mòduls de $1...
restore_testing=S'està extraient el contingut de la còpia de $1...

View File

@@ -43,6 +43,7 @@ edit_mods=Module zum Sichern
edit_mods2=Module zum Zur&#252;ckschreiben
edit_nofiles=Server-Konfigurationsdateien
edit_other=Andere ausgew&#228;hlte Dateien ..
edit_other2=Andere Dateien zum Wiederherstellen
edit_post=Befehle nach dem Backup
edit_pre=Befehle vor dem Backup
edit_return=Sicherungsformular
@@ -99,6 +100,7 @@ nice_upload=Hochgeladene Datei
restore_doing=Starte Wiederherstellung der Modulkonfigurationsdateien von $1 ..
restore_done=.. fertig. $1 Dateien wurde wiederhergestellt.
restore_done2=.. Dateien im Backup sind :
restore_emods=Keine Module oder andere Dateien ausgew&#228;hlt
restore_err=Wiederherstellung gescheitert!
restore_failed=.. gescheitert! $1
restore_testing=Extrahiere Inhalt von Backup von $1 ..

View File

@@ -35,6 +35,7 @@ edit_schedyes=Yes, at times selected below ..
edit_mods=Modules to backup
edit_dest=Backup destination
edit_mods2=Modules to restore
edit_other2=Other files to restore
edit_dest2=Restore from
edit_what=Include in backup
edit_webmin=Webmin module configuration files
@@ -83,6 +84,7 @@ backup_failed=.. failed! $1
backup_done=.. complete. Final backup size was $1, containing $2 files.
restore_err=Restore failed
restore_emods=No modules or other files selected
restore_title=Restore Configuration
restore_doing=Starting restore of module configuration files from $1 ..
restore_testing=Extracting contents of backup from $1 ..

View File

@@ -43,6 +43,7 @@ edit_mods=Moduler som skal sikkerhetskopieres
edit_mods2=Moduler som skal gjenopprettes
edit_nofiles=Tjener konfigurasjonsfiler
edit_other=Andre listede filer ..
edit_other2=Andre filer &#229; gjenopprette
edit_post=Post-sikkerhetskopi kommando
edit_pre=Pre-sikkerhetskopi kommando
edit_return=backup skjema
@@ -99,6 +100,7 @@ nice_upload=lastet opp fil
restore_doing=Starter gjenoppretting av modulkonfigurasjonsfiler fra $1 ..
restore_done=.. fullf&#248;rt. $1 filer ble gjenopprettet.
restore_done2=.. filer i sikkerhetskopien er :
restore_emods=Ingen moduler eller andre filer valgt
restore_err=Gjenoppretting feilet
restore_failed=.. feilet! $1
restore_testing=Pakker ut innhold av sikkerhetskopi fra $1 ..

View File

@@ -11,7 +11,8 @@ our (%in, %text, %config, $module_config_file);
&error_setup($text{'restore_err'});
my $src = &parse_backup_destination("src", \%in);
my @mods = split(/\0/, $in{'mods'});
@mods || &error($text{'restore_emods'});
my @others = split(/[\r\n]+/, $in{'others'});
@mods || @others || &error($text{'restore_emods'});
# Do it ..
my ($mode, $user, $pass, $server, $path, $port) = &parse_backup_url($src);
@@ -27,7 +28,8 @@ if ($mode == 3) {
print &text($in{'test'} ? 'restore_testing' : 'restore_doing',
&nice_dest($src)),"<p>\n";
my @files;
my $err = &execute_restore(\@mods, $src, \@files, $in{'apply'}, $in{'test'});
my $err = &execute_restore(\@mods, $src, \@files, $in{'apply'}, $in{'test'},
\@others);
&unlink_file($src) if ($mode == 3);
if ($err) {
print &text('restore_failed', $err),"<p>\n";

View File

@@ -819,14 +819,17 @@ local $jobs = &console_cmd($h, "show jobs");
local @rv;
local $job;
foreach my $l (split(/\r?\n/, $jobs)) {
if ($l =~ /^Job:\s+name=([^=]*\S)\s/) {
if ($l =~ /^Job:\s+name=([^=]*\S)\s/ ||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
$job = { 'name' => $1 };
push(@rv, $job);
}
elsif ($l =~ /Client:\s+name=([^=]*\S)\s/ && $job) {
elsif (($l =~ /Client:\s+name=([^=]*\S)\s/ ||
$l =~ /^\s*Client\s*=\s*"(.*)"/) && $job) {
$job->{'client'} = $1;
}
elsif ($l =~ /FileSet:\s+name=([^=]*\S)\s/ && $job) {
elsif (($l =~ /FileSet:\s+name=([^=]*\S)\s/ ||
$l =~ /^FileSet\s*=\s*"(.*)"/) && $job) {
$job->{'fileset'} = $1;
}
}
@@ -843,7 +846,8 @@ local $clients = &console_cmd($h, "show clients");
local @rv;
local $client;
foreach my $l (split(/\r?\n/, $clients)) {
if ($l =~ /^Client:\s+name=([^=]*\S)\s/) {
if ($l =~ /^Client:\s+name=([^=]*\S)\s/ ||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
$client = { 'name' => $1 };
if ($l =~ /address=(\S+)/ && $client) {
$client->{'address'} = $1;
@@ -853,6 +857,12 @@ foreach my $l (split(/\r?\n/, $clients)) {
}
push(@rv, $client);
}
elsif ($l =~ /^\s*Address\s*=\s*"(.*)"/ && $client) {
$client->{'address'} = $1;
}
elsif ($l =~ /^\s*FDport\s*=\s*"(.*)"/ && $client) {
$client->{'port'} = $1;
}
}
return @rv;
}
@@ -867,7 +877,8 @@ local $storages = &console_cmd($h, "show storages");
local @rv;
local $storage;
foreach my $l (split(/\r?\n/, $storages)) {
if ($l =~ /^Storage:\s+name=([^=]*\S)\s/) {
if ($l =~ /^Storage:\s+name=([^=]*\S)\s/ ||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
$storage = { 'name' => $1 };
if ($l =~ /address=(\S+)/) {
$storage->{'address'} = $1;
@@ -877,6 +888,12 @@ foreach my $l (split(/\r?\n/, $storages)) {
}
push(@rv, $storage);
}
elsif ($l =~ /^\s*Address\s*=\s*"(.*)"/ && $storage) {
$storage->{'address'} = $1;
}
elsif ($l =~ /^\s*SDport\s*=\s*"(.*)"/ && $storage) {
$storage->{'port'} = $1;
}
}
return @rv;
}
@@ -891,13 +908,17 @@ local $pools = &console_cmd($h, "show pools");
local @rv;
local $pool;
foreach my $l (split(/\r?\n/, $pools)) {
if ($l =~ /^Pool:\s+name=([^=]*\S)\s/) {
if ($l =~ /^Pool:\s+name=([^=]*\S)\s/ ||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
$pool = { 'name' => $1 };
if ($l =~ /PoolType=(\S+)/) {
$pool->{'type'} = $1;
}
push(@rv, $pool);
}
elsif ($l =~ /^\s*PoolType\s*=\s*"(.*)"/ && $pool) {
$pool->{'type'} = $1;
}
}
return @rv;
}

View File

@@ -371,35 +371,57 @@ log_delete_pool=Volume-Pool $1 gel&#246;scht
log_delete_pools=$1 Volume-Pools gel&#246;scht
log_delete_schedule=Backup-Zeitplan $1 gel&#246;scht
log_delete_schedules=$1 Backup-Zeitplan gel&#246;scht
log_delete_sdirector=Speicher-Daemon-Direktor $1 gel&#246;scht
log_delete_sdirectors=$1 Speicher-Daemon-Direktoren gel&#246;scht
log_delete_storage=Storage Daemon $1 gel&#246;scht
log_delete_storages=$1 Storage Daemons gel&#246;scht
log_director=Globale Bacula-Director-Konfiguration gespeichert
log_file=Bacula Datei Daemonkonfiguration gespeichert
log_fixpass=Bacula Konsolenprogramm Passwort behoben
log_gbackup=Bacula Gruppensicherungsjob $1 gestartet
log_label=Speicher-Daemon $1 gelabelt
log_modify_client=Backup Client $1 modifiziert
log_modify_device=Speicher-Ger&#228;t $1 modifiziert
log_modify_fdirector=Datei-Daemon-Direktor $1 modifiziert
log_modify_fileset=Dateisatz $1 modifiziert
log_modify_gjob=Bacula-Gruppe Sicherungsjob $1 modifiziert
log_modify_group=Bakula Gruppe $1 editiert
log_modify_job=Backup-Job $1 modifiziert
log_modify_pool=Volume Pool $1 modifiziert
log_modify_schedule=Backup-Zeitplan $1 ge&#228;ndert
log_modify_sdirector=Speicher-Daemon-Direktor $1 modifiziert
log_modify_storage=Speicher-Daemon $1 modifiziert
log_mount=Speicher-Ger&#228;t $1 gemounted
log_restart=Bacula Daemons wieder gestartet
log_start=Bacula Daemons gestartet
log_stop=Bacula Daemons gestoppt
log_storagec=Bacula Speicher Daemon-Konfiguration gespeichert
log_sync=Bacula-Gruppensynchronisierung gespeichert
log_unmount=Speicher-Ger&#228;t $1 unmounted
mount_done=.. erfolgreicht gemountet.
mount_err=Fehlgeschlagen Speicher-Ger&#228;t zu mounten
mount_eslot=Fehlende oder ung&#252;ltige Slot Nummer
mount_failed=.. mounten fehlgeschlagen! Siehe die Fehlermeldung f&#252;r den Grund oben.
mount_header=Speicher mount oder unmount Optionen
mount_mount=Montierungsspeicher
mount_noslot=Nichts
mount_return=montiert von
mount_run=Mounte Volume auf Speicher-Ger&#228;t $1 ..
mount_slot=Auto-Lader-Slot
mount_slotno=Slotnummer
mount_storage=Speicherger&#228;t
mount_title=Mount oder Unmount
mount_unmount=Unmounte Speicher
pool_any=Sichere an jedes Volume in Pool?
pool_auto=Streiche abgelaufene Volumes?
pool_autolabel=Automatisch Volumes Pr&#228;fix beschriften
pool_echild=Dieser Client kann nicht gel&#246;scht werden, da dieser von $1 genutzt wird
pool_eclash=Ein Speicherger&#228;t mit dem gleichen Namen ist bereits vorhanden
pool_egone=Volume Pool existiert nicht l&#228;nger!
pool_emax=Fehlende oder ung&#252;ltige maximale Anzahl an Jobs pro Volume
pool_ename=Fehlender Speicherger&#228;t-Name
pool_ereten=Fehlende oder ung&#252;ltige Aufbewahrungsfrist
pool_err=Fehlgeschlagen Speicherger&#228;t zu speichern
pool_header=Details vom Backup Volume Pool
pool_max=Maximale Jobs pro Volume
pool_maxvolsize=Maximale Volume Gr&#246;&#223;e (z.B. 5G f&#252;r 5 Gigabyte)
@@ -413,6 +435,7 @@ pool_type=Volume Pool Typ
pool_unlimited=Unlimitiert
pools_add=F&#252;ge einen neuen Volume Pool hinzu.
pools_delete=L&#246;sche ausgew&#228;hlte Datentr&#228;ger-Pools
pools_derr=Fehlgeschlagen Volume-Pools zu l&#246;schen
pools_name=Pool Name
pools_none=Keine Volume Pools wurden bisher definiert.
pools_reten=Aufbewahrungsfrist
@@ -443,6 +466,8 @@ restore_all=--Alle Clients in Gruppe--
restore_client=Wiederherstelle zu Client oder Gruppe
restore_clist=--Clients--
restore_done=...Wiederherstellung komplett.
restore_eall1=Die <b>Alle Clients in Backup</b> Option muss f&#252;r <b>Wiederherstellen zum Client oder Gruppen</b> ausgew&#228;hlt werden, wenn eine Gruppe Bacula Job wiederhergestellt werden soll.
restore_eall2=Die <b>Alle Clients in Backup</b> Option kann nur gew&#228;hlt werden, f&#252;r <b>Stelle Clients und Gruppen wieder her</b>, wenn dabei eine Gruppe Bacula Job wiederhergestellt wird
restore_eclient=Kein Client oder Backup Gruppe ausgew&#228;hlt
restore_eclients=Keine Mitglieder der Bacula-Gruppe gefunden!
restore_efiles=Keine Dateien eingegeben
@@ -483,17 +508,24 @@ schedule_header=Sicherungszeitplan Details
schedule_level=Backup Level
schedule_name=Sicherungszeitplan Name
schedule_pool=Volume
schedule_runs=Level und Zeiten ausf&#252;hren
schedule_times=L&#228;uft um
schedule_title1=Erstelle Backup-Zeitplan
schedule_title2=Editiere Backup-Zeitplan
schedules_add=F&#252;ge einen neuen Backup-Zeitplan hinzu.
schedules_delete=L&#246;sche ausgew&#228;hlte Zeitpl&#228;ne
schedules_derr=Fehlgeschlagen Zeitpl&#228;ne zu l&#246;schen
schedules_name=Zeitplan Name
schedules_none=Keine Sicherungspl&#228;ne wurden bisher festgelegt.
schedules_return=Liste der Zeitpl&#228;ne
schedules_sched=Level und Zeiten ausf&#252;hren
schedules_title=Backup-Zeitpl&#228;ne
sdirector_eclash=Ein Direktor mit dem gleichen Namen ist bereits vorhanden
sdirector_egone=Director existiert nicht l&#228;nger!
sdirector_ename=Fehlender Director Name
sdirector_epass=Fehlendes Passwort
sdirector_err=Fehlgeschlagen Speicherdaemon-Direktor zu speichern
sdirector_header=Details des Steuerung Remote Director
sdirector_monitor=Nur &#220;berwachung der Verbindung erlauben?
sdirector_name=Director Name
sdirector_pass=Akzeptiertes Passwort

View File

@@ -140,3 +140,7 @@ Added a module configuration option to use the SPF type for Sender Permitted Fro
---- Changes since 1.660 ----
Added a warning if the chroot directory that Webmin thinks BIND is using looks wrong.
Slave zone files in raw format can now be displayed by Webmin.
---- Changes since 1.720 ----
Added support for NSEC3PARAM records.
---- Changes since 1.730 ----
Added support for editing DMARC records, which are specially encoded TXT records for defining the response to SPF and DKIM violations.

View File

@@ -1124,6 +1124,58 @@ elsif ($type eq "SPF") {
&ui_opt_textbox("spfexp", $spf->{'exp'}, 40,
$text{'value_spfnoexp'}), 3);
}
elsif ($type eq "DMARC") {
# Like SPF, DMARC records have several attributes encoded in the
# TXT value
local $dmarc = &parse_dmarc(@v);
local @popts = ( [ "none", $text{'value_dmarcnone'} ],
[ "quarantine", $text{'value_dmarcquar'} ],
[ "reject", $text{'value_dmarcreject'} ] );
print &ui_table_row($text{'value_dmarcp'},
&ui_select("dmarcp", $dmarc->{'p'}, \@popts));
print &ui_table_row($text{'value_dmarcpct'},
&ui_textbox("dmarcpct", $dmarc->{'pct'}, 5)."%");
print &ui_table_row($text{'value_dmarcsp'},
&ui_select("dmarcsp", $dmarc->{'sp'},
[ [ "", $text{'value_dmarcnop'} ], @popts ]));
print &ui_table_row($text{'value_dmarcaspf'},
&ui_yesno_radio("dmarcaspf", $dmarc->{'aspf'} eq 's'));
print &ui_table_row($text{'value_dmarcadkim'},
&ui_yesno_radio("dmarcadkim", $dmarc->{'adkim'} eq 's'));
local $rua = $dmarc->{'rua'};
$rua =~ s/^mailto://;
print &ui_table_row($text{'value_dmarcrua'},
&ui_opt_textbox("dmarcrua", $rua, 50, $text{'value_dmarcnor'}), 3);
local $ruf = $dmarc->{'ruf'};
$ruf =~ s/^mailto://;
print &ui_table_row($text{'value_dmarcruf'},
&ui_opt_textbox("dmarcruf", $ruf, 50, $text{'value_dmarcnor'}), 3);
}
elsif ($type eq "NSEC3PARAM") {
# NSEC records have a hash type, flags, number of interations, salt
# length and salt
print &ui_table_row($text{'value_NSEC3PARAM1'},
&ui_select("value0", $v[0] || 1,
[ [ 1, "SHA1" ] ], 1, 0, 1));
print &ui_table_row($text{'value_NSEC3PARAM2'},
&ui_select("value1", $v[1],
[ [ 0, $text{'value_delegated'} ],
[ 1, $text{'value_notdelegated'} ] ]));
print &ui_table_row($text{'value_NSEC3PARAM3'},
&ui_textbox("value2", $v[2], 4));
print &ui_table_row($text{'value_NSEC3PARAM5'},
&ui_textbox("value4", $v[4], 20));
}
else {
# All other types just have a text box
print &ui_table_row($text{'value_other'},
@@ -1938,6 +1990,7 @@ sub restart_bind
if ($config{'restart_cmd'} eq 'restart') {
# Stop and start again
&stop_bind();
sleep(1); # Systemd doesn't like rapid stops and starts
return &start_bind();
}
elsif ($config{'restart_cmd'}) {
@@ -2753,7 +2806,7 @@ $slave_error = $_[0];
sub get_forward_record_types
{
return ("A", "NS", "CNAME", "MX", "HINFO", "TXT", "SPF", "WKS", "RP", "PTR", "LOC", "SRV", "KEY", $config{'support_aaaa'} ? ( "AAAA" ) : ( ), @extra_forward);
return ("A", "NS", "CNAME", "MX", "HINFO", "TXT", "SPF", "DMARC", "WKS", "RP", "PTR", "LOC", "SRV", "KEY", "NSEC3PARAM", $config{'support_aaaa'} ? ( "AAAA" ) : ( ), @extra_forward);
}
sub get_reverse_record_types
@@ -3188,11 +3241,12 @@ foreach my $key (@keys) {
# Remove records
local @recs = &read_zone_file($fn, $dom);
local $tools = &have_dnssec_tools_support();
for(my $i=$#recs; $i>=0; $i--) {
if ($recs[$i]->{'type'} eq 'NSEC' ||
$recs[$i]->{'type'} eq 'NSEC3' ||
$recs[$i]->{'type'} eq 'RRSIG' ||
$recs[$i]->{'type'} eq 'NSEC3PARAM' ||
$recs[$i]->{'type'} eq 'NSEC3PARAM' && $tools ||
$recs[$i]->{'type'} eq 'DNSKEY') {
&delete_record($fn, $recs[$i]);
}
@@ -3600,10 +3654,11 @@ sub dt_sign_zone
# Remove DNSSEC records and save the unsigned zone file
@recs = &read_zone_file($z, $dom);
local $tools = &have_dnssec_tools_support();
for(my $i=$#recs; $i>=0; $i--) {
if ($recs[$i]->{'type'} eq 'NSEC' ||
$recs[$i]->{'type'} eq 'NSEC3' ||
$recs[$i]->{'type'} eq 'NSEC3PARAM' ||
$recs[$i]->{'type'} eq 'NSEC3PARAM' && $tools ||
$recs[$i]->{'type'} eq 'RRSIG' ||
$recs[$i]->{'type'} eq 'DNSKEY') {
&delete_record($z, $recs[$i]);
@@ -3679,10 +3734,11 @@ sub dt_resign_zone
# Remove DNSSEC records and save the unsigned zone file
@recs = &read_zone_file($z, $dom);
local $tools = &have_dnssec_tools_support();
for(my $i=$#recs; $i>=0; $i--) {
if ($recs[$i]->{'type'} eq 'NSEC' ||
$recs[$i]->{'type'} eq 'NSEC3' ||
$recs[$i]->{'type'} eq 'NSEC3PARAM' ||
$recs[$i]->{'type'} eq 'NSEC3PARAM' && $tools ||
$recs[$i]->{'type'} eq 'RRSIG' ||
$recs[$i]->{'type'} eq 'DNSKEY') {
&delete_record($z, $recs[$i]);
@@ -3870,10 +3926,11 @@ sub dt_delete_dnssec_state
# remove DNSSEC records from zonefile
@recs = &read_zone_file($z, $dom);
local $tools = &have_dnssec_tools_support();
for(my $i=$#recs; $i>=0; $i--) {
if ($recs[$i]->{'type'} eq 'NSEC' ||
$recs[$i]->{'type'} eq 'NSEC3' ||
$recs[$i]->{'type'} eq 'NSEC3PARAM' ||
$recs[$i]->{'type'} eq 'NSEC3PARAM' && $tools ||
$recs[$i]->{'type'} eq 'RRSIG' ||
$recs[$i]->{'type'} eq 'DNSKEY') {
&delete_record($z, $recs[$i]);

View File

@@ -14,6 +14,10 @@ $file = &find("file", $zconf->{'members'});
if (!$file) {
&error($text{'convert_efile'});
}
$file = &make_chroot(&absolute_path($file));
if (!-s $file) {
&error(&text('convert_efilesize', $file));
}
&lock_file(&make_chroot($zconf->{'file'}));
# Change the type directive
@@ -26,5 +30,19 @@ if (!$file) {
&flush_file_lines();
&unlock_file(&make_chroot($zconf->{'file'}));
# Convert from binary slave format to text
if (&is_raw_format_records($file)) {
&has_command("named-compilezone") ||
&error($text{'convert_ebinary'});
$temp = &transname();
&copy_source_dest($file, $temp);
$out = &backquote_logged("named-compilezone -f raw -F text ".
"-o $file $zone->{'name'} $temp 2>&1");
&error(&text('convert_ecompile', "<tt>".&html_escape($out)."</tt>"))
if ($?);
&unlink_file($temp);
}
&redirect("");

View File

@@ -19,28 +19,36 @@ $typedesc = $text{"recs_$in{'type'}"} || $in{'type'};
$type = $zone->{'type'};
$file = $zone->{'file'};
$form = 0;
$newname = $in{'newname'} || ($in{'type'} eq 'DMARC' ? '_dmarc' : undef);
if (!$access{'ro'} && $type eq 'master' && $in{'type'} ne 'ALL') {
&record_input($in{'zone'}, $in{'view'}, $in{'type'}, $file, $dom,
undef, undef, $in{'newname'}, $in{'newvalue'});
undef, undef, $newname, $in{'newvalue'});
$form++;
$shown_create_form = 1;
}
# Show search form
print &ui_form_start("edit_recs.cgi");
print &ui_hidden("zone", $in{'zone'}),"\n";
print &ui_hidden("view", $in{'view'}),"\n";
print &ui_hidden("type", $in{'type'}),"\n";
print "<b>$text{'recs_find'}</b>\n";
print &ui_textbox("search", $in{'search'}, 20),"\n";
print &ui_submit($text{'recs_search'}),"<p>\n";
print &ui_form_end();
$form++;
if (!$config{'largezones'} || $in{'search'}) {
# Get all records
@allrecs = grep { !$_->{'generate'} && !$_->{'defttl'} }
&read_zone_file($file, $dom);
$nosearch = 1 if (!@allrecs);
}
if (!$nosearch) {
# Show search form
print &ui_form_start("edit_recs.cgi");
print &ui_hidden("zone", $in{'zone'}),"\n";
print &ui_hidden("view", $in{'view'}),"\n";
print &ui_hidden("type", $in{'type'}),"\n";
print "<b>$text{'recs_find'}</b>\n";
print &ui_textbox("search", $in{'search'}, 20),"\n";
print &ui_submit($text{'recs_search'}),"<p>\n";
print &ui_form_end();
$form++;
}
if (!$config{'largezones'} || $in{'search'}) {
# Get all records
if ($in{'search'}) {
# Limit to records matching some search
foreach $r (@allrecs) {
@@ -74,7 +82,7 @@ else {
if (@recs) {
@recs = &sort_records(@recs);
foreach $v (keys %text) {
if ($v =~ /^value_([A-Z]+)(\d+)/) {
if ($v =~ /^value_([A-Z0-9]+)(\d+)/) {
$hmap{$1}->[$2-1] = $text{$v};
}
}

View File

@@ -44,6 +44,9 @@ print &address_input($text{'master_query'}, "allow-query", $vconf);
print &address_input($text{'master_notify2'}, "also-notify", $vconf);
print &address_input($text{'master_notify3'}, "allow-notify", $vconf);
$src = &find("transfer-source", $vconf);
print &ui_table_row($text{'net_taddr'}, &ui_textbox("transfer-source", $src->{'values'}->[0], 15));
print &ui_table_end();
if ($access{'ro'}) {

BIN
bind8/images/DMARC.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

BIN
bind8/images/NSEC3PARAM.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

View File

@@ -293,6 +293,11 @@ edit_espfip6='$1' no
edit_espfinclude='$1' no és un domini addicional remitent vàlid
edit_espfredirect='$1' no és un nom de domini alternatiu vàlid
edit_espfexp='$1' és un nom de registre vàlid per a un missatge de rebuig
edit_ensec3value2=Hi falfa el nombre d'iteracions o bé no és numèric
edit_ensec3value3=Hi falta la sal no base64 o bé és incorrecta
edit_edmarcpct=El percentatge de missatges ha de ser un enter entre 0 i 100
edit_edmarcrua=Hi falta l'adreça de la informació agregada
edit_edmarcruf=Hi falta l'adreça de la informació forense
text_title=Edició del Fitxer de Registres
text_title2=Visualització del Fitxer de Registres
@@ -369,8 +374,10 @@ type_NS=Servidor de Noms
type_CNAME=Àlies del Nom
type_MX=Servidor de Correu
type_HINFO=Informació del Host
type_NSEC3PARAM=Paràmetres DNSSEC
type_TXT=Text
type_SPF=Remitent Permès des de
type_DMARC=DMARC
type_WKS=Servei Conegut (WKS)
type_RP=Persona Responsable
type_PTR=Adreça Inversa
@@ -387,12 +394,14 @@ edit_MX=Servidor de Correu
edit_HINFO=Informació del Host
edit_TXT=Text
edit_SPF=Remitent Permès des de
edit_DMARC=DMARC
edit_WKS=Servei Conegut (WKS)
edit_RP=Persona Responsable
edit_PTR=Adreça Inversa
edit_LOC=Ubicació
edit_SRV=Adreça del Servei
edit_KEY=Clau Pública
edit_NSEC3PARAM=Paràmetres DNSSEC
recs_defttl=TTL per defecte
recs_A=Adreça
@@ -403,6 +412,7 @@ recs_MX=Servidor de Correu
recs_HINFO=Informació del Host
recs_TXT=Text
recs_SPF=Remitent Permès des de
recs_DMARC=DMARC
recs_WKS=Servei Conegut (WKS)
recs_RP=Persona Responsable
recs_PTR=Adreça Inversa
@@ -410,6 +420,7 @@ recs_LOC=Ubicaci
recs_SRV=Adreça de Servei
recs_ALL=Tot
recs_KEY=Clau Pública
recs_NSEC3PARAM=Paràmetres DNSSEC
recs_delete=Suprimeix els Seleccionats
value_A1=Adreça
@@ -437,6 +448,14 @@ value_KEY2=Protocol
value_KEY3=Algoritme
value_KEY4=Dades de la clau
value_SPF1=Especificació SPF
value_DMARC1=Especificació DMARC
value_NSEC3PARAM1=Algoritme de hash
value_NSEC3PARAM2=Banderes NSEC3
value_NSEC3PARAM3=Nombre d'iteracions del hash
value_NSEC3PARAM4=Llargada de la sal
value_NSEC3PARAM5=Cadena de sal
value_delegated=Zona delegada
value_notdelegated=Una altra zona
value_other=Valors (un per línia)
value_spfa=Permet l'enviament des de l'adreça IP del domini
value_spfmx=Permet l'enviament des dels hosts MX del domini
@@ -456,6 +475,18 @@ value_spfredirect=Utilitza un registre SPF d'un domini alternatiu
value_spfnoredirect=Utilitza el registre d'aquest domini
value_spfexp=Registre TXT pel al motiu del rebuig
value_spfnoexp=Cap
value_dmarcnone=No prenguis cap acció
value_dmarcquar=Posa el coreu en quarantena
value_dmarcreject=Rebutja el correu
value_dmarcp=Política per als correus que no passen SPF o DKIM
value_dmarcpct=Percentatge de missatges a aplicar-hi la política
value_dmarcrua=Envia la informació agregada a
value_dmarcruf=Envia la informació forense a
value_dmarcsp=Política dels subdominis
value_dmarcnop=Igual que aquest domini
value_dmarcaspf=Requereix alineació SPF estricta
value_dmarcadkim=Requereix alineació DKIM estricta
value_dmarcnor=No ho enviïs
warn=Avisa
fail=Falla
@@ -793,6 +824,9 @@ log_dnssec=S'ha canviat la resignatura de la clau
convert_err=No s'ha pogut convertir la zona
convert_efile=Cal especificar un fitxer de registres abans de poder convertir una zona esclava a una de mestra.
convert_efilesize=El fitxer de resistres $1 no existeix o bé està buit
convert_ebinary=L'ordre necessària per convertir una zona esclava binària a format text mestre no està instal·lada
convert_ecompile=La conversió de format binari a text ha fallat: $1
whois_title=Informació WHOIS
whois_header=Resultat de l'ordre $1...
@@ -852,9 +886,9 @@ vdelete_move=Despla
gen_title=Generadors de Registres
gen_desc=Aquesta pàgina permet definir generadors, cadascun dels quals crearà múltiples registres en aquesta zona utilitzant un comptador incremental. Això pot ser útil per a delegar parts de la zona inversa a un altre servidor.
gen_range=Abast
gen_name=Patró d'adreça
gen_name=Patró del nom de registre
gen_type=Tipus
gen_value=Patró de nom de host
gen_value=Patró del valor de registre
gen_cmt=Comentari
gen_skip=cada
gen_show=Mostra els registres generats

File diff suppressed because it is too large Load Diff

View File

@@ -293,6 +293,11 @@ edit_espfip6='$1' is not a valid IPv6 address or IPv6/prefix to allow sending fr
edit_espfinclude='$1' is not a valid additional domain from which mail is sent
edit_espfredirect='$1' is not a valid alternate domain name
edit_espfexp='$1' is a valid record name for a rejection message
edit_ensec3value2=Missing or non-numeric number of iterations
edit_ensec3value3=Missing or non-base64 salt
edit_edmarcpct=Percentage of messages must be an integer between 0 and 100
edit_edmarcrua=Missing aggregate feedback address
edit_edmarcruf=Missing forensic information address
text_title=Edit Records File
text_title2=View Records File
@@ -369,8 +374,10 @@ type_NS=Name Server
type_CNAME=Name Alias
type_MX=Mail Server
type_HINFO=Host Information
type_NSEC3PARAM=DNSSEC Parameters
type_TXT=Text
type_SPF=Sender Permitted From
type_DMARC=DMARC
type_WKS=Well Known Service
type_RP=Responsible Person
type_PTR=Reverse Address
@@ -387,12 +394,14 @@ edit_MX=Mail Server
edit_HINFO=Host Information
edit_TXT=Text
edit_SPF=Sender Permitted From
edit_DMARC=DMARC
edit_WKS=Well Known Service
edit_RP=Responsible Person
edit_PTR=Reverse Address
edit_LOC=Location
edit_SRV=Service Address
edit_KEY=Public Key
edit_NSEC3PARAM=DNSSEC Parameters
recs_defttl=Default TTL
recs_A=Address
@@ -403,6 +412,7 @@ recs_MX=Mail Server
recs_HINFO=Host Information
recs_TXT=Text
recs_SPF=Sender Permitted From
recs_DMARC=DMARC
recs_WKS=Well Known Service
recs_RP=Responsible Person
recs_PTR=Reverse Address
@@ -410,6 +420,7 @@ recs_LOC=Location
recs_SRV=Service Address
recs_ALL=All
recs_KEY=Public Key
recs_NSEC3PARAM=DNSSEC Parameters
recs_delete=Delete Selected
value_A1=Address
@@ -437,6 +448,14 @@ value_KEY2=Protocol
value_KEY3=Algorithm
value_KEY4=Key data
value_SPF1=SPF specification
value_DMARC1=DMARC specification
value_NSEC3PARAM1=Hash algorithm
value_NSEC3PARAM2=NSEC3 flags
value_NSEC3PARAM3=Number of hash iterations
value_NSEC3PARAM4=Length of salt
value_NSEC3PARAM5=Salt string
value_delegated=Delegated zone
value_notdelegated=Other zone
value_other=Values (one per line)
value_spfa=Allow sending from domain's IP address?
value_spfmx=Allow sending from domain's MX hosts?
@@ -456,6 +475,18 @@ value_spfredirect=Use SPF record from alternate domain
value_spfnoredirect=Use this domain's record
value_spfexp=TXT record for rejection reason
value_spfnoexp=None
value_dmarcnone=Take no action
value_dmarcquar=Quarantine email
value_dmarcreject=Reject email
value_dmarcp=Policy for emails that fail SPF or DKIM
value_dmarcpct=Percentage of messages to apply policy
value_dmarcrua=Send aggregate feedback to
value_dmarcruf=Send forensic information to
value_dmarcsp=Policy for sub-domains
value_dmarcnop=Same as this domain
value_dmarcaspf=Require strict SPF alignment
value_dmarcadkim=Require strict DKIM alignment
value_dmarcnor=Don't send
warn=Warn
fail=Fail
@@ -706,7 +737,7 @@ zonedef_this=System hostname ($1)
zonedef_eprins=Missing or invalid default nameserver for master domains
zonedef_dnssec=Create DNSSEC key and sign new zones?
zonedef_dnssec_dt=Automate all DNSSEC operations (ignore other settings below)?
zonedef_dne=Authenticated Denial of Existance Using
zonedef_dne=Authenticated Denial of Existence Using
zonedef_alg=Initial key algorithm
zonedef_size=Initial key size
zonedef_single=Number of keys to create
@@ -793,6 +824,9 @@ log_dnssec=Change DNSSEC key re-signing
convert_err=Failed to convert zone
convert_efile=A records file must be specified before a slave zone can be converted to a master.
convert_efilesize=Records file $1 does not exist or is empty
convert_ebinary=The command needed to convert from a binary slave zone to a text format master is not installed
convert_ecompile=Binary to text format conversion failed : $1
whois_title=WHOIS Information
whois_header=Output from command $1 ..
@@ -852,9 +886,9 @@ vdelete_move=Move to view
gen_title=Record Generators
gen_desc=This page allows you to define generators, each of which will create multiple records in this zone using an incrementing counter. This can be useful for delegating parts of the reverse zone to another server.
gen_range=Range
gen_name=Address pattern
gen_name=Record name pattern
gen_type=Type
gen_value=Hostname pattern
gen_value=Record value pattern
gen_cmt=Comment
gen_skip=every
gen_show=Show generated records

View File

@@ -224,6 +224,7 @@ edit_KEY=Offentlig n&#248;kkel
edit_LOC=Plassering
edit_MX=E-post tjener
edit_NS=Navnetjener
edit_NSEC3PARAM=DNSSEC Parametere
edit_PTR=Revers adresse
edit_RP=Ansvarlig person
edit_SPF=Sender tillatt fra
@@ -258,6 +259,7 @@ edit_eloc=Manglende bredde- og lengdegrad
edit_emx='$1' er ikke en gyldig e-post tjener
edit_ename='$1' er ikke et gyldig oppf&#248;ringsnavn
edit_ens='$1' er ikke en gyldig navnetjener
edit_ensec3value2=Manglende eller ikke-base64 salt
edit_eos=Manglende OS type
edit_eport='$1' er ikke et gyldig portnummer
edit_epri='$1' er ikke en gyldig prioritet
@@ -780,6 +782,7 @@ recs_KEY=Offenlig n&#248;kkel
recs_LOC=Plassering
recs_MX=E-post tjener
recs_NS=Navnetjener
recs_NSEC3PARAM=DNSSEC Parametere
recs_PTR=Revers adresse
recs_RP=Ansvarlig person
recs_SPF=Sender tillatt fra
@@ -979,6 +982,7 @@ type_KEY=Offentlig n&#248;kkel
type_LOC=Plassering
type_MX=E-post tjener
type_NS=Navnetjener
type_NSEC3PARAM=DNSSEC Parametere
type_PTR=Revers adresse
type_RP=Ansvarlig person
type_SPF=Avsender tillatt fra
@@ -1015,6 +1019,11 @@ value_LOC1=Bredde- og lengdegrad
value_MX1=Prioritet
value_MX2=E-post tjener
value_NS1=Navnetjener
value_NSEC3PARAM1=Hash algoritme
value_NSEC3PARAM2=NSEC3 flagg
value_NSEC3PARAM3=Antall hash iterasjoner
value_NSEC3PARAM4=Lengde p&#229; salt
value_NSEC3PARAM5=Salt streng
value_PTR1=Vertsnavn
value_RP1=E-post adresse
value_RP2=Tekst-oppf&#248;ring navn
@@ -1027,6 +1036,8 @@ value_TXT1=Melding
value_WKS1=Adresse
value_WKS2=Protokoll
value_WKS3=Tjenester
value_delegated=Delegert sone
value_notdelegated=Annen sone
value_other=Verdier (en per linje)
value_spfa=Tillat sending fra domenets IP adresse?
value_spfall=Handling for andre avsendere

View File

@@ -282,6 +282,15 @@ while($i < @tok) {
}
}
# If this is a DMARC record .. adjust the class
local $dmarc;
if ($dir{'type'} eq 'TXT' &&
($dmarc=&parse_dmarc(@{$dir{'values'}}))) {
if (!@{$dmarc->{'other'}}) {
$dir{'type'} = 'DMARC';
}
}
push(@rv, \%dir);
# Stop processing if this was an SOA record
@@ -396,9 +405,11 @@ splice(@$lref, $_[1]->{'line'}, 1);
# Returns a string for some zone record
sub make_record
{
local $type = $_[3] eq "SPF" && !$config{'spf_record'} ? "TXT" : $_[3];
return $_[0] . ($_[1] ? "\t$_[1]" : "") . "\t$_[2]\t$type\t$_[4]" .
($_[5] ? "\t;$_[5]" : "");
local ($name, $ttl, $cls, $type, $values, $cmt) = @_;
local $type = $type eq "SPF" && !$config{'spf_record'} ? "TXT" :
$type eq "DMARC" ? "TXT" : $type;
return $name . ($ttl ? "\t".$ttl : "") . "\t" . $cls . "\t" . $type ."\t" .
$values . ($cmt ? "\t;$cmt" : "");
}
# bump_soa_record(file, &records)
@@ -738,6 +749,7 @@ local $rvword;
while(@rv) {
my $w = shift(@rv);
if (length($rvword)+length($w)+1 >= 255) {
$rvword .= " ";
push(@rvwords, $rvword);
$rvword = "";
}
@@ -748,6 +760,57 @@ push(@rvwords, $rvword);
return join("\" \"", @rvwords);
}
# parse_dmarc(text, ...)
# If some text looks like an DMARC TXT record, return a parsed hash ref
sub parse_dmarc
{
my $txt = join(" ", @_);
if ($txt =~ /^v=dmarc1/i) {
local @w = split(/;\s*/, $txt);
local $dmarc = { };
foreach my $w (@w) {
$w = lc($w);
if ($w =~ /^(v|pct|ruf|rua|p|sp|adkim|aspf)=(\S+)$/i) {
$dmarc->{$1} = $2;
}
else {
push(@{$dmarc->{'other'}}, $w);
}
}
return $dmarc;
}
return undef;
}
# join_dmarc(&dmarc)
# Converts a DMARC record structure to a string, designed to be inserted into
# quotes in a TXT record. If it is longer than 255 bytes, it will be split
# into multiple quoted strings.
sub join_dmarc
{
local ($dmarc) = @_;
local @rv = ( "v=DMARC1" );
foreach my $s ("pct", "ruf", "rua", "p", "sp", "adkim", "aspf") {
if ($dmarc->{$s} ne '') {
push(@rv, $s."=".$dmarc->{$s});
}
}
push(@rv, @{$dmarc->{'other'}});
local @rvwords;
local $rvword;
while(@rv) {
my $w = shift(@rv);
if (length($rvword)+length($w)+1 >= 255) {
push(@rvwords, $rvword);
$rvword = "";
}
$rvword .= "; " if ($rvword);
$rvword .= $w;
}
push(@rvwords, $rvword);
return join("\" \"", @rvwords);
}
# join_record_values(&record)
# Given the values for a record, joins them into a space-separated string
# with quoting if needed

View File

@@ -42,7 +42,8 @@ if ($in{'show'}) {
$rhs = $gv[3];
$rhs =~ s/\$\$/\0/g;
$rhs =~ s/\$/$i/g;
#$rhs =~ s/\$/$i/g;
$rhs =~ s/(\$(\{[^\}]*\})?)/&expand_mods($i,$2)/ge;
$rhs =~ s/\0/\$/g;
$rhsfull = &check_ipaddress($rhs) ? $rhs :
$rhs =~ /\.$/ ? $rhs :
@@ -78,11 +79,11 @@ for($i=0; defined($in{"type_$i"}); $i++) {
if ($in{"skip_$i"}) {
$gv[$#gv] .= "/".$in{"skip_$i"};
}
$in{"name_$i"} =~ /^[A-Za-z0-9\.\-$uscore$star\$]+$/ ||
$in{"name_$i"} =~ /^[A-Za-z0-9\.\-$uscore$star\$\{\},]+$/ ||
&error(&text('gen_ename', $i+1));
push(@gv, $in{"name_$i"});
push(@gv, $in{"type_$i"});
$in{"value_$i"} =~ /^[A-Za-z0-9\.\-$uscore$star\$]+$/ ||
$in{"value_$i"} =~ /^[A-Za-z0-9\.\-$uscore$star\$\{\},]+$/ ||
&error(&text('gen_evalue', $i+1));
push(@gv, $in{"value_$i"});
push(@gv, $in{"cmt_$i"}) if ($in{"cmt_$i"});
@@ -108,3 +109,26 @@ for($i=0; defined($in{"type_$i"}); $i++) {
&sign_dnssec_zone_if_key($zone, \@recs);
&redirect("edit_master.cgi?zone=$in{'zone'}&view=$in{'view'}");
sub expand_mods
{
my ($i, $m) = @_;
$m =~ s/^\{//;
$m =~ s/\}$//;
my ($o, $w, $b) = split(/,/, $m);
if ($o !~ /^\-?\d+$/) {
# Disallowed offset
$o = 0;
}
if ($w !~ /^\d+$/) {
# Disallowed width
$w = 0;
}
if ($b !~ /^[doxXnN]$/) {
# Disallowed modifier
$b = undef;
}
$b ||= "d";
$i += $o;
$i = sprintf("%".($w ? "0".$w : "").$b, $i);
return $i;
}

View File

@@ -339,6 +339,59 @@ else {
}
$vals = "\"".&join_spf($spf)."\"";
}
elsif ($in{'type'} eq 'DMARC') {
# Build DMARC record from inputs
$dmarc = $r ? &parse_dmarc(@{$r->{'values'}}) : { };
$dmarc->{'p'} = $in{'dmarcp'};
$in{'dmarcpct'} =~ /^\d+$/ && $in{'dmarcpct'} >= 0 &&
$in{'dmarcpct'} <= 100 || &error($text{'edit_edmarcpct'});
$dmarc->{'pct'} = $in{'dmarcpct'};
if ($in{'dmarcsp'}) {
$dmarc->{'sp'} = $in{'dmarcsp'};
}
else {
delete($dmarc->{'sp'});
}
$dmarc->{'aspf'} = $in{'dmarcaspf'} ? 's' : 'r';
$dmarc->{'adkim'} = $in{'dmarcadkim'} ? 's' : 'r';
if ($in{'dmarcrua_def'}) {
delete($dmarc->{'rua'});
}
else {
$in{'dmarcrua'} =~ /^\S+$/ ||
&error($text{'edit_edmarcrua'});
$in{'dmarcrua'} = 'mailto:'.$in{'dmarcrua'}
if ($in{'dmarcrua'} !~ /^[a-z]+:/i);
$dmarc->{'rua'} = $in{'dmarcrua'};
}
if ($in{'dmarcruf_def'}) {
delete($dmarc->{'ruf'});
}
else {
$in{'dmarcruf'} =~ /^\S+$/ ||
&error($text{'edit_edmarcruf'});
$in{'dmarcruf'} = 'mailto:'.$in{'dmarcruf'}
if ($in{'dmarcruf'} !~ /^[a-z]+:/i);
$dmarc->{'ruf'} = $in{'dmarcruf'};
}
$vals = "\"".&join_dmarc($dmarc)."\"";
}
elsif ($in{'type'} eq 'NSEC3PARAM') {
# Save DNSSEC parameters
$in{'value2'} =~ /^\d+$/ ||
&error($text{'edit_ensec3value2'});
$in{'value4'} =~ /^[a-zA-Z0-9\+\/]+$/ ||
&error($text{'edit_ensec3value2'});
$vals = join(" ", "(", $in{'value0'}, $in{'value1'},
$in{'value2'}, length($in{'value4'}),
$in{'value4'}, ")");
}
else {
# For other record types, just save the lines
$in{'values'} =~ s/\r//g;

View File

@@ -20,6 +20,23 @@ $access{'ro'} && &error($text{'view_ecannot'});
&save_address("allow-query", $view, 1);
&save_address("also-notify", $view, 1);
&save_address("allow-notify", $view, 1);
if ($in{'transfer-source'})
{
&check_ipaddress($in{'transfer-source'}) || &error(&text('net_eaddr', $in{'transfer-source'}));
push(@tvals, $in{'transfer-source'});
if (@tvals)
{
&save_directive($view, 'transfer-source',
[ { 'name' => 'transfer-source',
'values' => \@tvals } ], 1);
}
}
else
{
&save_directive($view, 'transfer-source', [], 1);
}
&flush_file_lines();
&unlock_file(&make_chroot($view->{'file'}));
&webmin_log("view", undef, $view->{'value'}, \%in);

1
blue-theme Symbolic link
View File

@@ -0,0 +1 @@
gray-theme

Binary file not shown.

Before

Width:  |  Height:  |  Size: 800 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 768 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 585 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -1,44 +0,0 @@
left_login=Identificació: $1
left_home=Informació del Sistema
left_oc=Esponsoritzat per OpenCountry
left_feedback=Envia opinions
left_search_webmin=Busca a Webmin:
left_search_usermin=Busca a Usermin:
left_search=Busca:
left_logs=Visualitza els Registres del Mòdul
left_others=Altres
right_header0=Informació del Sistema
right_host=Nom de host del sistema
right_os=Sistema operatiu
right_login=Identificat com a:
right_from=Identificat des de:
right_webmin=Versió Webmin
right_usermin=Versió Usermin
right_cpu=Càrrega mitjana de la CPU
right_cpuinfo=Informació del processador
right_cputype=$5, $8 nuclis
right_load=$1 (1 min) $2 (5 mins) $3 (15 mins)
right_cpuuse=Ús de la CPU
right_cpustats=$1% usuari, $2% nucli, $4% E/S, $3% desocupada
right_real=Memòria real
right_virt=Memòria virtual
right_procs=Processos en execució
right_disk=Espai local en disc
right_used=$1 total, $2 utilitzat
right_out=$1&nbsp;de&nbsp;$2
right_quota=Ús del disc i quota
right_header5=Informació del Compte
right_uquota=Quota de disc i ús
right_time=Hora del sistema
right_uptime=En execució durant
right_updays=$1 dies, $2 hores, $3 minuts
right_uphours=$1 hores, $2 minuts
right_upmins=$1 minuts
right_kernel=Nucli i CPU
right_kernelon=$1 $2 a $3
right_updates=Actualitzacions de paquets
right_upok=Tots els paquets instal·lats estan actualitzats
right_upneed=Hi ha $1 actualitzacions de paquets disponibles
right_upsec=Hi ha $1 actualitzacions de paquets disponibles, de les quals $2 són actualitzacions de seguretat
__norefs=1

View File

@@ -1,43 +0,0 @@
__norefs=1
left_feedback=Feedback versenden
left_home=Systeminformation
left_login=Login: $1
left_logs=Zeige Modul Logs an
left_oc=Gesponsert von OpenCountry
left_others=Andere
left_search=Suchen:
left_search_usermin=Suche Usermin:
left_search_webmin=Suche Webmin:
right_cpu=CPU-Last im Durchschnitt
right_cpuinfo=Prozessorinformation
right_cpustats=$1% Benutzer, $2% Kernel, $4% IO, $3% Leerlauf
right_cputype=$5, $8 cores
right_cpuuse=CPU Auslastung
right_disk=Lokaler Festplattenspeicher
right_from=Eingeloggt von
right_header0=Systeminformation
right_header5=Accountinformationen
right_host=System Hostname
right_kernel=Kernel und CPU
right_kernelon=$1 $2 auf $3
right_load=$1 (1 Minute) $2 (5 Minuten) $3 (15 Minuten)
right_login=Eingeloggt als
right_os=Betriebssystem
right_out=$1&nbsp;von&nbsp;$2
right_procs=Laufende Prozesse
right_quota=Festplattenauslastung und Quota
right_real=Realer Speicher
right_time=Systemzeit
right_updates=Paketupdates
right_updays=$1 Tag(e), $2 Stunde(n), $3 Minute(n)
right_uphours=$1 Stunde(n), $2 Minute(n)
right_upmins=$1 Minute(n)
right_upneed=$1 Paketupdates sind verf&#252;gbar
right_upok=Alle installierten Pakete sind auf dem aktuellen Stand
right_upsec=$1 Paketupdates sind verf&#252;gbar, von dem $2 Sicherheitsupdates sind
right_uptime=System Laufzeit
right_uquota=Festplatten Quota und Auslastung
right_used=$1 gesamt, $2 benutzt
right_usermin=Usermin Version
right_virt=Virtueller Speicher
right_webmin=Webmin Version

View File

@@ -1,31 +0,0 @@
left_feedback=Envoyer un rapport
left_home=Information Syst&#232;me
left_login=Connexion : $1
left_logs=Voir les journaux du module
left_oc=Sponsoris&#233; par "OpenCountry"
left_others=Autres
left_search=Rechercher :
right_cpu=Moyennes de charge CPU
right_cpuinfo=Information sur le CPU
right_disk=Espace disque local
right_header0=Information Syst&#232;me
right_header5=Information sur le compte
right_host=Nom d'h&#244;te du syst&#232;me
right_kernel=Noyau et CPU
right_kernelon=$1 $2 sur $3
right_load=$1 (1 min) $2 (5 mins) $3 (15 mins)
right_os=Syst&#232;me d'exploitation
right_out=$1&nbsp;sur&nbsp;$2
right_procs=Processus en cours
right_real=M&#233;moire r&#233;elle
right_time=Date et heure du syst&#232;me
right_updates=Mises &#224; jours de Paquet
right_updays=$1 jours, $2 heures, $3 minutes
right_uphours=$1 heures, $2 minutes
right_upmins=$1 minutes
right_uptime=Dur&#232;e de fonctionnement du syst&#232;me
right_uquota=Utilisation et quota disque
right_used=$1 total, $2 utilis&#233;
right_usermin=Version de Usermin
right_virt=M&#233;moire virtuelle
right_webmin=Version de Webmin

View File

@@ -1,23 +0,0 @@
left_login=ログイン名: $1
left_home=システム情報
left_oc=提供OpenCountry
right_header0=システム情報
right_host=ホスト名
right_os=オペレーティングシステム
right_login=ログイン中のユーザ
right_from=接続元
right_webmin=Webmin バージョン
right_usermin=Usermin バージョン
right_cpu=CPU 平均負荷
right_load=$1 (1分) $2 (5分) $3 (15分)
right_real=実メモリ
right_virt=仮想メモリ
right_procs=走行プロセス数
right_disk=ローカルディスク容量
right_used=合計 $1 , 使用 $2
right_out=$1&nbsp;of&nbsp;$2
right_quota=ディスク使用量とクオータ
right_header5=アカウント情報
right_uquota=ディスククオータと使用量
right_time=サーバ上の時刻

View File

@@ -1,43 +0,0 @@
__norefs=1
left_feedback=Hantar Maklum Balas
left_home=Maklumat Sistem
left_login=Log masuk: $1
left_logs=Lihat log modul
left_oc=Ditaja oleh OpenCountry
left_others=Lain-lain
left_search=Carian:
left_search_usermin=Carian Usermin:
left_search_webmin=Carian Webmin
right_cpu=Purata beban CPU
right_cpuinfo=Maklumat pemproses
right_cpustats=$1% user, $2% kernel, $4% IO, $3% idle
right_cputype=$5, $8 teras
right_cpuuse=Penggunaan CPU
right_disk=Ruang disk setempat
right_from=Telah log masuk dari
right_header0=Maklumat Sistem
right_header5=Maklumat Akaun
right_host=Nama hos sistem
right_kernel=Kernel dan CPU
right_kernelon=$1 $2 pada $3
right_load=$1 (1 min) $2 (5 min) $3 (15 min)
right_login=Telah log masuk sebagai
right_os=Sistem operasi
right_out=$1&nbsp;daripada&nbsp;$2
right_procs=Proses yang dijalankan
right_quota=Penggunaan disk dan kuota
right_real=Memori sebenar
right_time=Masa pada sistem
right_updates=Pakej kemaskini
right_updays=$1 hari, $2 jam, $3 minit
right_uphours=$1 jam, $2 minit
right_upmins=$1 minit
right_upneed=terdapat $1 pakej kemaskini
right_upok=Semua pakej yang dipasang adalah terkini
right_upsec=terdapat $1 pakej kemaskini, dimana $2 darinya adalah kemaskini keselamatan
right_uptime=Sistem uptime
right_uquota=Kuota disk dan penggunaan
right_used=total $1, $2 digunakan
right_usermin=Versi Usermin
right_virt=Ingatan maya
right_webmin=Versi Webmin

View File

@@ -1,43 +0,0 @@
__norefs=1
left_feedback=Verstuur Opmerkingen
left_home=Systeem Informatie
left_login=Login: $1
left_logs=Bekijk Module's Logs
left_oc=Gesponserd door OpenCountry
left_others=Andere
left_search=Zoek:
left_search_usermin=Zoek Usermin:
left_search_webmin=Zoek Webmin:
right_cpu=CPU belasting gemiddelde
right_cpuinfo=Processor informatie
right_cpustats=$1% gebruiker, $2% kernel, $4% IO, $3% slaapt
right_cputype=$5, $8 cores
right_cpuuse=CPU gebruik
right_disk=Locale harddisk ruimte
right_from=Ingelogd van
right_header0=Systeem Informatie
right_header5=Account Informatie
right_host=Systeem hostnaam
right_kernel=Kernel en CPU
right_kernelon=$1 $2 op $3
right_load=$1 (1 min) $2 (5 minuten) $3 (15 minuten)
right_login=Ingelogd als
right_os=Besturing systeem
right_out=$1&nbsp;van&nbsp;$2
right_procs=Lopende processen
right_quota=Harddisk gebruik en quota
right_real=Echt geheugen
right_time=Systeemtijd
right_updates=Pakketten update's
right_updays=$1 dagen, $2 uur, $3 minuten
right_uphours=$1 uur, $2 minuten
right_upmins=$1 minuten
right_upneed=Er zijn $1 pakketten updates beschikbaar
right_upok=Al de geinstalleerde pakketten zijn up to date
right_upsec=Er zijn $1 pakketten updates beschikbaar, waarvan er $2 veiligheid updates zijn
right_uptime=Systeem werkt nu
right_uquota=Harddisk quota en gebruik
right_used=$1 totaal, $2 gebruikt
right_usermin=Usermin Versie
right_virt=Virtueel geheugen
right_webmin=Webmin versie

View File

@@ -1,43 +0,0 @@
__norefs=1
left_feedback=Send tilbakemelding
left_home=System informasjon
left_login=Brukernavn: $1
left_logs=Vis modulens logger
left_oc=Sponset av OpenCountry
left_others=Andre
left_search=S&#248;k:
left_search_usermin=S&#248;k i Usermin:
left_search_webmin=S&#248;k i Webmin:
right_cpu=CPU gj.snittsbelastninger
right_cpuinfo=Prosessor informasjon
right_cpustats=$1% bruker, $2% kjerne, $4% IO, $3% ledig
right_cputype=$5, $8 kjerner
right_cpuuse=CPU bruk
right_disk=Lokal diskplass
right_from=Logget inn fra
right_header0=System informasjon
right_header5=Konto informasjon
right_host=System vertsnavn
right_kernel=Kjerne og CPU
right_kernelon=$1 $2 p&#229; $3
right_load=$1 (1 min) $2 (5 min.) $3 (15 min.)
right_login=Logget inn som
right_os=Operativsystem
right_out=$1&nbsp;av&nbsp;$2
right_procs=Kj&#248;rende prosesser
right_quota=Diskbruk og kvote
right_real=Fysisk minne
right_time=Tid p&#229; systemet
right_updates=Pakkeoppdateringer
right_updays=$1 dager, $2 timer, $3 minutter
right_uphours=$1 timer, $2 minutter
right_upmins=$1 minutter
right_upneed=$1 pakkeoppdateringer er tilgjengelige
right_upok=Alle installerte pakker er oppdatert
right_upsec=$1 pakkeoppdateringer er tilgjengelige, og $2 av disse er sikkerhetsoppdateringer
right_uptime=System oppetid
right_uquota=Diskkvote og bruk
right_used=$1 totalt, $2 brukt
right_usermin=Usermin versjon
right_virt=Virtuelt minne
right_webmin=Webmin versjon

View File

@@ -1,43 +0,0 @@
__norefs=1
left_feedback=Wyślij informacje zwrotne
left_home=Informacje o systemie
left_login=Login: $1
left_logs=Wyświetl logi modułu
left_oc=Sponsorowana przez OpenCountry
left_others=Inne
left_search=Wyszukaj:
left_search_usermin=Wyszukaj w Usermin:
left_search_webmin=Wyszukaj w Webmin:
right_cpu=Średnie obciążenie CPU
right_cpuinfo=Informacje o procesorze
right_cpustats=$1% użytkownik, $2% jądro, $4% IO, $3% bezczynny
right_cputype=$5, $8 rdzeni
right_cpuuse=Użycie CPU
right_disk=Miejsce na dysku lokalnym
right_from=Formularz logowania
right_header0=Infomacje o systemie
right_header5=Infomacje o koncie
right_host=Nazwa hosta systemu
right_kernel=Jądro i CPU
right_kernelon=$1 $2 na $3
right_load=$1 (1 min) $2 (5 minut) $3 (15 minut)
right_login=Zalogowany jako
right_os=System operacyjny
right_out=$1&nbsp;z&nbsp;$2
right_procs=Uruchomionych procesów
right_quota=Użycie dysku i quota
right_real=Pamięć rzeczywista
right_time=Czas systemowy
right_updates=Uaktualnienia paczek
right_updays=$1 dni, $2 godzin, $3 minut
right_uphours=$1 godzin, $2 minut
right_upmins=$1 minut
right_upneed=Dostępnych $1 uaktualnień paczek
right_upok=Wszystkie zainstalowane paczki są aktualne
right_upsec=Dostępnych jest $1 uaktualnień, z których $2 to uaktualnienia bezpieczeństwa
right_uptime=Czas działania systmu
right_uquota=Quota dyskowa i użycie
right_used=Razem $1, używane $2
right_usermin=Wersja Usermina
right_virt=Pamięć wirtualna
right_webmin=Wersja Webmina

View File

@@ -1,34 +0,0 @@
left_login=Login: $1
left_home=Informações do Sistema
left_oc=Patrocinado por OpenCountry
left_feedback=Enviar Feedback
left_search_webmin=Procurar no Webmin:
left_search_usermin=Procurar no Usermin:
left_search=Procurar:
left_logs=Ver Registros do Módulos
left_others=Outros
right_header0=Informações do Sistema
right_host=Nome de host do sistema
right_os=Sistema operacional
right_login=Conectado como
right_from=Conectado de
right_webmin=Versão do Webmin
right_usermin=Versão do Usermin
right_cpu=Médias de carga da CPU
right_load=$1 (1 minuto) $2 (5 minutos) $3 (15 minutos)
right_real=Memória real
right_virt=Memória virtual
right_procs=Processos em execução
right_disk=Espaço em disco local
right_used=$1 no total, $2 em uso
right_out=$1&nbsp;of&nbsp;$2
right_quota=Uso e cota de espaço em disco
right_header5=Informações da Conta
right_uquota=Cota e uso de espaço em disco
right_time=Tempo no sistema
right_uptime=Tempo de atividade do sistema
right_updays=$1 dias, $2 horas, $3 minutos
right_uphours=$1 horas, $2 minutos
right_upmins=$1 minutos
right_kernel=Kernel e CPU
right_kernelon=$1 $2 em $3

View File

@@ -1,39 +0,0 @@
left_feedback=Отправить отзыв
left_home=Информация о системе
left_login=Логин: $1
left_logs=Просмотреть журнал модулей
left_oc=При поддержке OpenCountry
left_others=Остальные
left_search=Поиск:
left_search_usermin=Поиск Usermin:
left_search_webmin=Поиск Webmin:
right_cpu=Средняя загрузка процессора
right_cpuinfo=Информация о процессоре
right_cpustats=$1% пользователь, $2% ядро, $4% IO, $3% простой
right_cputype=$5, $8 ядер
right_cpuuse=Использование процессора
right_disk=Место на локальном диске
right_header0=Информация о системе
right_header5=Информация об аккаунте
right_host=Имя хоста
right_kernel=Ядро и процессор
right_kernelon=$1 $2 на $3
right_login=Вошел как
right_os=Операционная система
right_procs=Запущенно процессов
right_quota=Использование диск и квота
right_real=Физическая память
right_time=Системное время
right_updates=Обновление пакетов
right_updays=$1 дней, $2 часов, $3 минут
right_uphours=$1 часов, $2 минут
right_upmins=$1 минут
right_upneed=Доступно $1 обновленных пакетов
right_upok=Все установленные пакеты имеют последнюю версию
right_upsec=Доступно $1 обновленных пакетов, из которых $2 содержат обновления безопасности
right_uptime=Uptime системы
right_uquota=Дисковая квота и использование
right_used=$1 всего, $2 используется
right_usermin=Версия Usermin
right_virt=Виртуальная память
right_webmin=Версия Webmin

View File

@@ -1,176 +0,0 @@
#!/usr/bin/perl
# Show the left-side menu of Webmin modules
BEGIN { push(@INC, ".."); };
use WebminCore;
&init_config();
&ReadParse();
%text = &load_language($current_theme);
%gaccess = &get_module_acl(undef, "");
# Work out what modules and categories we have
@cats = &get_visible_modules_categories();
@modules = map { @{$_->{'modules'}} } @cats;
&popup_header();
print <<EOF;
<link rel="stylesheet" type="text/css" href="left.css" />
<script>
function toggleview (id1,id2) {
var obj1 = document.getElementById(id1);
var obj2 = document.getElementById(id2);
(obj1.className=="itemshown") ? obj1.className="itemhidden" : obj1.className="itemshown";
(obj1.className=="itemshown") ? obj2.innerHTML="<img border='0' src='images/open.gif' alt='[&ndash;]'>" : obj2.innerHTML="<img border='0' src='images/closed.gif' alt='[+]'>";
}
// Show the logs for the current module in the right
function show_logs() {
var url = ''+window.parent.frames[1].location;
var sl1 = url.indexOf('//');
var mod = '';
if (sl1 > 0) {
var sl2 = url.indexOf('/', sl1+2);
if (sl2 > 0) {
var sl3 = url.indexOf('/', sl2+1);
if (sl3 > 0) {
mod = url.substring(sl2+1, sl3);
} else {
mod = url.substring(sl2+1);
}
}
}
if (mod && mod.indexOf('.cgi') <= 0) {
// Show one module's logs
window.parent.frames[1].location = 'webminlog/search.cgi?tall=4&uall=1&fall=1&mall=0&module='+mod;
}
else {
// Show all logs
window.parent.frames[1].location = 'webminlog/search.cgi?tall=4&uall=1&fall=1&mall=0&mall=1'
}
}
</script>
</head>
<body>
EOF
# Show login
print &text('left_login', $remote_user),"<br>\n";
if ($gconfig{"notabs_${base_remote_user}"} == 2 ||
$gconfig{"notabs_${base_remote_user}"} == 0 && $gconfig{'notabs'} ||
@modules <= 1) {
# Show all modules in one list
foreach $minfo (@modules) {
$target = $minfo->{'noframe'} ? "_top" : "right";
print "<a target=$target href=$minfo->{'dir'}/>$minfo->{'desc'}</a><br>\n";
}
}
else {
# Show all modules under categories
foreach $c (@cats) {
# Show category opener, plus modules under it
&print_category_opener(
$c->{'code'},
$in{$c->{'code'}} ? 1 : 0,
$c->{'unused'} ?
"<font color=#888888>$c->{'desc'}</font>" :
$c->{'desc'});
$cls = $in{$c->{'code'}} ? "itemshown" : "itemhidden";
print "<div class='$cls' id='$c->{'code'}'>";
foreach my $minfo (@{$c->{'modules'}}) {
&print_category_link("$minfo->{'dir'}/",
$minfo->{'desc'},
undef,
undef,
$minfo->{'noframe'} ? "_top" : "",
);
}
print "</div>\n";
}
}
# Show module/help search form
if (-r "$root_directory/webmin_search.cgi" &&
$gaccess{'webminsearch'}) {
print "<form action=webmin_search.cgi target=right>\n";
print $text{'left_search'},"&nbsp;";
print &ui_textbox("search", undef, 15);
}
print "<div class='leftlink'><hr></div>\n";
# Show current module's log search, if logging
if ($gconfig{'log'} && &foreign_available("webminlog")) {
print "<div class='linkwithicon'><img src=images/logs.gif>\n";
print "<div class='aftericon'><a target=right href='webminlog/' onClick='show_logs(); return false;'>$text{'left_logs'}</a></div></div>\n";
}
# Show info link
print "<div class='linkwithicon'><img src=images/gohome.gif>\n";
print "<div class='aftericon'><a target=right href='right.cgi?open=system&open=status'>$text{'left_home'}</a></div></div>\n";
# Show feedback link, but only if a custom email is set
%gaccess = &get_module_acl(undef, "");
if (&get_product_name() eq 'webmin' && # For Webmin
!$ENV{'ANONYMOUS_USER'} &&
$gconfig{'nofeedbackcc'} != 2 &&
$gaccess{'feedback'} &&
$gconfig{'feedback_to'} ||
&get_product_name() eq 'usermin' && # For Usermin
!$ENV{'ANONYMOUS_USER'} &&
$gconfig{'feedback'}
) {
print "<div class='linkwithicon'><img src=images/mail-small.gif>\n";
print "<div class='aftericon'><a target=right href='feedback_form.cgi'>$text{'left_feedback'}</a></div></div>\n";
}
# Show refesh modules link, for master admin
if (&foreign_available("webmin")) {
print "<div class='linkwithicon'><img src=images/refresh-small.gif>\n";
print "<div class='aftericon'><a target=right href='webmin/refresh_modules.cgi'>$text{'main_refreshmods'}</a></div></div>\n";
}
# Show logout link
&get_miniserv_config(\%miniserv);
if ($miniserv{'logout'} && !$ENV{'SSL_USER'} && !$ENV{'LOCAL_USER'} &&
$ENV{'HTTP_USER_AGENT'} !~ /webmin/i) {
print "<div class='linkwithicon'><img src=images/stock_quit.gif>\n";
if ($main::session_id) {
print "<div class='aftericon'><a target=_top href='session_login.cgi?logout=1'>$text{'main_logout'}</a></div>";
}
else {
print "<div class='aftericon'><a target=_top href='switch_user.cgi'>$text{'main_switch'}</a></div>";
}
print "</div>\n";
}
# Show link back to original Webmin server
if ($ENV{'HTTP_WEBMIN_SERVERS'}) {
print "<div class='linkwithicon'><img src=images/webmin-small.gif>\n";
print "<div class='aftericon'><a target=_top href='$ENV{'HTTP_WEBMIN_SERVERS'}'>$text{'header_servers'}</a></div>";
}
&popup_footer();
# print_category_opener(name, &allcats, label)
# Prints out an open/close twistie for some category
sub print_category_opener
{
local ($c, $status, $label) = @_;
$label = $c eq "others" ? $text{'left_others'} : $label;
local $img = $status ? "open.gif" : "closed.gif";
# Show link to close or open catgory
print "<div class='linkwithicon'>";
print "<a href=\"javascript:toggleview('$c','toggle$c')\" id='toggle$c'><img border='0' src='images/$img' alt='[+]'></a>\n";
print "<div class='aftericon'><a href=\"javascript:toggleview('$c','toggle$c')\" id='toggle$c'><font color=#000000>$label</font></a></div></div>\n";
}
sub print_category_link
{
local ($link, $label, $image, $noimage, $target) = @_;
$target ||= "right";
print "<div class='linkindented'><a target=$target href=$link>$label</a></div>\n";
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 826 B

View File

@@ -1,310 +0,0 @@
#!/usr/local/bin/perl
# Show server or domain information
BEGIN { push(@INC, ".."); };
use WebminCore;
&init_config();
&ReadParse();
&load_theme_library();
if (&get_product_name() eq "usermin") {
$level = 3;
}
else {
$level = 0;
}
%text = &load_language($current_theme);
$bar_width = 300;
foreach $o (split(/\0/, $in{'open'})) {
push(@open, $o);
$open{$o} = 1;
}
$prehead = defined(&WebminCore::theme_prehead) ?
&capture_function_output(\&WebminCore::theme_prehead) : "";
&popup_header(undef, $prehead);
print "<center>\n";
# Webmin logo
if (&get_product_name() eq 'webmin') {
print "<a href=http://www.webmin.com/ target=_new><img src=images/webmin-blue.png border=0></a><p>\n";
}
if ($level == 0) {
# Show general system information
print "<table width=70%>\n";
# Ask status module for collected info
&foreign_require("system-status");
$info = &system_status::get_collected_info();
# Hostname
$ip = $info && $info->{'ips'} ? $info->{'ips'}->[0]->[0] :
&to_ipaddress(get_system_hostname());
$ip = " ($ip)" if ($ip);
print "<tr> <td><b>$text{'right_host'}</b></td>\n";
print "<td>",&get_system_hostname(),$ip,"</td> </tr>\n";
# Operating system
print "<tr> <td><b>$text{'right_os'}</b></td>\n";
if ($gconfig{'os_version'} eq '*') {
print "<td>$gconfig{'real_os_type'}</td> </tr>\n";
}
else {
print "<td>$gconfig{'real_os_type'} $gconfig{'real_os_version'}</td> </tr>\n";
}
# Webmin version
print "<tr> <td><b>$text{'right_webmin'}</b></td>\n";
print "<td>",&get_webmin_version(),"</td> </tr>\n";
# System time
$tm = localtime(time());
print "<tr> <td><b>$text{'right_time'}</b></td>\n";
if (&foreign_available("time")) {
$tm = "<a href=time/>$tm</a>";
}
print "<td>$tm</td> </tr>\n";
# Kernel and CPU
if ($info->{'kernel'}) {
print "<tr> <td><b>$text{'right_kernel'}</b></td>\n";
print "<td>",&text('right_kernelon',
$info->{'kernel'}->{'os'},
$info->{'kernel'}->{'version'},
$info->{'kernel'}->{'arch'}),"</td> </tr>\n";
}
# CPU type and cores
if ($info->{'load'}) {
@c = @{$info->{'load'}};
if (@c > 3) {
print "<tr> <td><b>$text{'right_cpuinfo'}</b></td>\n";
print "<td>",&text('right_cputype', @c),"</td> </tr>\n";
}
}
# System uptime
&foreign_require("proc");
my $uptime;
my ($d, $h, $m) = &proc::get_system_uptime();
if ($d) {
$uptime = &text('right_updays', $d, $h, $m);
}
elsif ($m) {
$uptime = &text('right_uphours', $h, $m);
}
elsif ($m) {
$uptime = &text('right_upmins', $m);
}
if ($uptime) {
print "<tr> <td><b>$text{'right_uptime'}</b></td>\n";
print "<td>$uptime</td> </tr>\n";
}
# Running processes
if (&foreign_check("proc")) {
@procs = &proc::list_processes();
$pr = scalar(@procs);
print "<tr> <td><b>$text{'right_procs'}</b></td>\n";
if (&foreign_available("proc")) {
$pr = "<a href=proc/>$pr</a>";
}
print "<td>$pr</td> </tr>\n";
}
# Load averages
if ($info->{'load'}) {
@c = @{$info->{'load'}};
if (@c) {
print "<tr> <td><b>$text{'right_cpu'}</b></td>\n";
print "<td>",&text('right_load', @c),"</td> </tr>\n";
}
}
# CPU usage
if ($info->{'cpu'}) {
@c = @{$info->{'cpu'}};
print "<tr> <td><b>$text{'right_cpuuse'}</b></td>\n";
print "<td>",&text('right_cpustats', @c),"</td> </tr>\n";
}
# Memory usage
if ($info->{'mem'}) {
@m = @{$info->{'mem'}};
if (@m && $m[0]) {
print "<tr> <td><b>$text{'right_real'}</b></td>\n";
print "<td>",&text('right_used',
&nice_size($m[0]*1024),
&nice_size(($m[0]-$m[1])*1024)),
"</td> </tr>\n";
print "<tr> <td></td>\n";
print "<td>",&bar_chart($m[0], $m[0]-$m[1], 1),
"</td> </tr>\n";
}
if (@m && $m[2]) {
print "<tr> <td><b>$text{'right_virt'}</b></td>\n";
print "<td>",&text('right_used',
&nice_size($m[2]*1024),
&nice_size(($m[2]-$m[3])*1024)),
"</td> </tr>\n";
print "<tr> <td></td>\n";
print "<td>",&bar_chart($m[2], $m[2]-$m[3], 1),
"</td> </tr>\n";
}
}
# Disk space on local drives
if ($info->{'disk_total'}) {
($total, $free) = ($info->{'disk_total'}, $info->{'disk_free'});
print "<tr> <td><b>$text{'right_disk'}</b></td>\n";
print "<td>",&text('right_used',
&nice_size($total),
&nice_size($total-$free)),"</td> </tr>\n";
print "<tr> <td></td>\n";
print "<td>",&bar_chart($total, $total-$free, 1),
"</td> </tr>\n";
}
# Package updates
if ($info->{'poss'}) {
print "<tr> <td><b>$text{'right_updates'}</b></td>\n";
@poss = @{$info->{'poss'}};
@secs = grep { $_->{'security'} } @poss;
if (@poss && @secs) {
$msg = &text('right_upsec', scalar(@poss),
scalar(@secs));
}
elsif (@poss) {
$msg = &text('right_upneed', scalar(@poss));
}
else {
$msg = $text{'right_upok'};
}
if (&foreign_available("package-updates")) {
$msg = "<a href='package-updates/index.cgi?mode=updates'>$msg</a>";
}
print "<td>$msg</td> </tr>\n";
}
print "</table>\n";
# Check for incorrect OS
if (&foreign_check("webmin")) {
&foreign_require("webmin", "webmin-lib.pl");
&webmin::show_webmin_notifications();
}
}
elsif ($level == 3) {
# Show Usermin user's information
print "<h3>$text{'right_header5'}</h3>\n";
print "<table width=70%>\n";
# Host and login info
print "<tr> <td><b>$text{'right_host'}</b></td>\n";
print "<td>",&get_system_hostname(),"</td> </tr>\n";
print "<tr> <td><b>$text{'right_os'}</b></td>\n";
if ($gconfig{'os_version'} eq '*') {
print "<td>$gconfig{'real_os_type'}</td> </tr>\n";
}
else {
print "<td>$gconfig{'real_os_type'} $gconfig{'real_os_version'}</td> </tr>\n";
}
print "<tr> <td><b>$text{'right_usermin'}</b></td>\n";
print "<td>",&get_webmin_version(),"</td> </tr>\n";
# System time
$tm = localtime(time());
print "<tr> <td><b>$text{'right_time'}</b></td>\n";
print "<td>$tm</td> </tr>\n";
# Disk quotas
if (&foreign_installed("quota")) {
&foreign_require("quota", "quota-lib.pl");
$n = &quota::user_filesystems($remote_user);
$usage = 0;
$quota = 0;
for($i=0; $i<$n; $i++) {
if ($quota::filesys{$i,'hblocks'}) {
$quota += $quota::filesys{$i,'hblocks'};
$usage += $quota::filesys{$i,'ublocks'};
}
elsif ($quota::filesys{$i,'sblocks'}) {
$quota += $quota::filesys{$i,'sblocks'};
$usage += $quota::filesys{$i,'ublocks'};
}
}
if ($quota) {
$bsize = $quota::config{'block_size'};
print "<tr> <td><b>$text{'right_uquota'}</b></td>\n";
print "<td>",&text('right_out',
&nice_size($usage*$bsize),
&nice_size($quota*$bsize)),"</td> </tr>\n";
print "<tr> <td></td>\n";
print "<td>",&bar_chart($quota, $usage, 1),
"</td> </tr>\n";
}
}
print "</table>\n";
}
print "</center>\n";
&popup_footer();
# bar_chart(total, used, blue-rest)
# Returns HTML for a bar chart of a single value
sub bar_chart
{
local ($total, $used, $blue) = @_;
local $rv;
$rv .= sprintf "<img src=images/red.gif width=%s height=10>",
int($bar_width*$used/$total)+1;
if ($blue) {
$rv .= sprintf "<img src=images/blue.gif width=%s height=10>",
$bar_width - int($bar_width*$used/$total)-1;
}
else {
$rv .= sprintf "<img src=images/white.gif width=%s height=10>",
$bar_width - int($bar_width*$used/$total)-1;
}
return $rv;
}
# bar_chart_three(total, used1, used2, used3)
# Returns HTML for a bar chart of three values, stacked
sub bar_chart_three
{
local ($total, $used1, $used2, $used3) = @_;
local $rv;
local $w1 = int($bar_width*$used1/$total)+1;
local $w2 = int($bar_width*$used2/$total);
local $w3 = int($bar_width*$used3/$total);
$rv .= sprintf "<img src=images/red.gif width=%s height=10>", $w1;
$rv .= sprintf "<img src=images/purple.gif width=%s height=10>", $w2;
$rv .= sprintf "<img src=images/blue.gif width=%s height=10>", $w3;
$rv .= sprintf "<img src=images/grey.gif width=%s height=10>",
$bar_width - $w1 - $w2 - $w3;
return $rv;
}
# collapsed_header(text, name)
sub collapsed_header
{
local ($text, $name) = @_;
print "<br><font style='font-size:16px'>";
local $others = join("&", map { "open=$_" } grep { $_ ne $name } @open);
$others = "&$others" if ($others);
if ($open{$name}) {
print "<img src=images/open.gif border=0>\n";
print &ui_link("right.cgi?$others",$text);
}
else {
print "<img src=images/closed.gif border=0>\n";
print &ui_link("right.cgi?open=$name$others",$text);
}
print "</font><br>\n";
return $open{$name};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 501 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 626 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -1,12 +0,0 @@
webmin=1
usermin=1
version=1.480
desc=Blue Framed Theme
longdesc=A simple theme with minimal graphics, which uses a categorized layout.
depends=1.336 1.480
desc_nl=Blauw Frame Theme
longdesc_ja_JP.euc=
longdesc_nl=Een eenvoudig grafish theme, welke catagorie layout gebruikt
desc_fr=
longdesc_fr=
desc_ja_JP.euc=

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 B

Some files were not shown because too many files have changed in this diff Show More