Compare commits

...

489 Commits
1.800 ... 1.830

Author SHA1 Message Date
Jamie Cameron
fecfdb2f2b I already bumped the version 2016-12-27 13:33:20 -08:00
Jamie Cameron
b091ba221c New version bump 2016-12-27 11:23:03 -08:00
Jamie Cameron
1fd2f398ad Add and use a function to save the MySQL version number 2016-12-26 21:11:11 -08:00
Jamie Cameron
ad381d1447 Differentiate remote and local mysql versions 2016-12-24 22:33:26 -08:00
Jamie Cameron
1004cedd4e Merge branch 'master' of git@github.com:webmin/webmin 2016-12-22 21:38:48 -08:00
Jamie Cameron
837d98d6bc Fix case where a non-root user is downloading in the browser https://virtualmin.com/node/44972 2016-12-22 21:36:36 -08:00
Joe Cooper
f16522157d Update README 2016-12-22 20:26:17 -08:00
Jamie Cameron
ca071daec2 New version bump 2016-12-21 14:47:19 -08:00
Jamie Cameron
90fa9332e9 Fix perl typo 2016-12-21 14:31:18 -08:00
Jamie Cameron
b6984eb5fd New Debian and Mint versions 2016-12-20 17:26:06 -08:00
Jamie Cameron
dc5a5fb4e7 Make challenge file world-readable, to ensure Apache can read it 2016-12-20 09:00:20 -08:00
Jamie Cameron
05ebd304fe Filter out duplicate updates 2016-12-18 11:07:00 -08:00
Jamie Cameron
dc69277ab3 German translation updates from Raymond Vetter 2016-12-18 10:36:28 -08:00
Jamie Cameron
7fd09d1a95 German translation updates from Raymond Vetter 2016-12-18 10:36:22 -08:00
Jamie Cameron
7dae254be4 Fix perl warning 2016-12-16 21:46:56 -08:00
Jamie Cameron
ce6b5fed71 German translation update from Abrax 2016-12-14 22:00:44 -08:00
Jamie Cameron
62049ffa47 Expand supported Squid versions 2016-12-14 09:36:23 -08:00
Jamie Cameron
2e6308372d Don't prompt for password 2016-12-11 19:54:47 -08:00
Jamie Cameron
e87f8ef1f5 Handle new format diretives for the root DN and password 2016-12-11 11:08:48 -08:00
Jamie Cameron
12b3e98bec Shell script needs to start with /bin/sh 2016-12-10 22:44:12 -08:00
Jamie Cameron
319c3c1f42 Fix inconsistent quoting https://github.com/webmin/webmin/issues/470 2016-12-09 10:01:04 -08:00
Jamie Cameron
6a7c775d83 Filter out any JS in action descriptions 2016-12-06 21:09:56 -08:00
Jamie Cameron
e43ec7e4c0 HTML escape record values 2016-12-06 20:35:06 -08:00
Jamie Cameron
3bee204db2 Fix permissions check for dleting zones, that was breaking access to zones in views https://sourceforge.net/p/webadmin/bugs/4853/ 2016-12-06 15:18:24 -08:00
Jamie Cameron
96c6793301 Don't ignore selection for files that start with 0 https://www.virtualmin.com/node/44669 2016-12-06 07:46:28 -08:00
Jamie Cameron
f786638c29 If a command is already in the previous list, move it to the top https://github.com/webmin/webmin/issues/469 2016-12-05 14:50:18 -08:00
Jamie Cameron
bb2f90ee5b Disallow backslash in passwords https://virtualmin.com/node/44451 2016-12-04 10:25:48 -08:00
Jamie Cameron
6676f6c660 Merge branch 'master' of git@github.com:webmin/webmin 2016-12-04 10:13:43 -08:00
Jamie Cameron
0e38b9e7a0 Cert file could be a link, so copy the target rather than the link 2016-12-04 10:03:11 -08:00
Jamie Cameron
afa7f0d82b Merge pull request #467 from qooob/master
Unambiguous table header
2016-12-02 14:22:05 -08:00
Ilia Rostovtsev
bf7873b3e0 Unambiguous table header 2016-12-02 09:43:21 +03:00
Ilia Rostovtsev
e1fa75f314 Unambiguous table header 2016-12-02 09:43:01 +03:00
Ilia Rostovtsev
8aa6cc1c08 Unambiguous table header 2016-12-02 09:42:48 +03:00
Ilia Rostovtsev
f06acc1a92 Unambiguous table header 2016-12-02 09:42:33 +03:00
Ilia Rostovtsev
675e0f032a Unambiguous table header 2016-12-02 09:42:07 +03:00
Ilia Rostovtsev
917ff95a90 Unambiguous table header 2016-12-02 09:41:24 +03:00
Ilia Rostovtsev
c415c46b37 Unambiguous table header 2016-12-02 09:40:36 +03:00
Jamie Cameron
e5760f78ac Drop two old themes from the standard package 2016-11-30 17:16:24 -08:00
Jamie Cameron
88907f3079 Show previously used names if any https://www.virtualmin.com/node/41951 2016-11-30 15:52:33 -08:00
Jamie Cameron
f700928156 Merge branch 'master' of git@github.com:webmin/webmin 2016-11-30 15:50:39 -08:00
Jamie Cameron
149c4aad4f Some records don't have values (like ttl) https://sourceforge.net/p/webadmin/bugs/4851/ 2016-11-30 15:48:43 -08:00
Jamie Cameron
9bc5766fa1 Merge pull request #465 from qooob/master
SeLinux/attributes listing and control - Security strengthening/2
2016-11-30 13:51:41 -08:00
Jamie Cameron
c36f4e2af1 Merge pull request #466 from qooob/patch-1
`stat()` -> `lstat()` seems better
2016-11-30 13:21:04 -08:00
Ilia Rostovtsev
3b66f444f8 stat() -> lstat() seems better 2016-11-30 15:00:57 +03:00
Ilia Rostovtsev
75700873ff SeLinux/attributes listing and control - Security strengthening/2 2016-11-30 13:48:46 +03:00
Ilia Rostovtsev
86dfb7f686 SeLinux/attributes listing and control - Security strengthening/2 2016-11-30 13:47:06 +03:00
Jamie Cameron
47b26ce53e Merge pull request #464 from qooob/master
SeLinux/attributes listing and control - Security strengthening
2016-11-29 14:00:16 -08:00
Ilia Rostovtsev
28c5b02c4a SeLinux/attributes listing and control - Security strengthening 2016-11-30 00:13:36 +03:00
Jamie Cameron
5c8540a832 Merge pull request #463 from qooob/master
SeLinux/attributes listing and control
2016-11-29 10:06:17 -08:00
Ilia Rostovtsev
5835afd971 SeLinux/attributes listing and control 2016-11-29 16:44:02 +03:00
Ilia Rostovtsev
ff0ba4822d SeLinux/attributes listing and control 2016-11-29 16:43:32 +03:00
Ilia Rostovtsev
df1334f3af SeLinux/attributes listing and control 2016-11-29 16:42:36 +03:00
Ilia Rostovtsev
7621053e6c SeLinux/attributes listing and control 2016-11-29 16:42:17 +03:00
Ilia Rostovtsev
21b431f59b SeLinux/attributes listing and control 2016-11-29 16:41:52 +03:00
Ilia Rostovtsev
5a47843eb6 SeLinux/attributes listing and control 2016-11-29 16:40:56 +03:00
Ilia Rostovtsev
cde06ff828 SeLinux/attributes listing and control 2016-11-29 16:40:17 +03:00
Ilia Rostovtsev
d438f002a9 SeLinux/attributes listing and control 2016-11-29 16:39:43 +03:00
Ilia Rostovtsev
aa0f31c93d SeLinux/attributes listing and control 2016-11-29 16:39:22 +03:00
Ilia Rostovtsev
0e52919e83 SeLinux/attributes listing and control 2016-11-29 16:39:02 +03:00
Ilia Rostovtsev
fdb811e1a6 SeLinux/attributes listing and control 2016-11-29 16:38:43 +03:00
Ilia Rostovtsev
d653841a1d SeLinux/attributes listing and control 2016-11-29 16:38:06 +03:00
Ilia Rostovtsev
1957217e75 SeLinux/attributes listing and control 2016-11-29 16:37:38 +03:00
Ilia Rostovtsev
cca0d50a6b SeLinux/attributes listing and control 2016-11-29 16:36:58 +03:00
Ilia Rostovtsev
dffc6c10b2 SeLinux/attributes listing and control 2016-11-29 16:36:24 +03:00
Ilia Rostovtsev
043690aee8 SeLinux/attributes listing and control 2016-11-29 16:36:11 +03:00
Ilia Rostovtsev
c03e3a5c97 SeLinux/attributes listing and control 2016-11-29 16:35:07 +03:00
Ilia Rostovtsev
2c94d548f2 SeLinux/attributes listing and control 2016-11-29 16:33:02 +03:00
Ilia Rostovtsev
0df9e25be2 SeLinux/attributes listing and control 2016-11-29 16:32:43 +03:00
Ilia Rostovtsev
ed66605896 SeLinux/attributes listing and control 2016-11-29 16:32:24 +03:00
Ilia Rostovtsev
70b534ef3c SeLinux/attributes listing and control 2016-11-29 16:31:57 +03:00
Ilia Rostovtsev
b085b2142f SeLinux/attributes listing and control 2016-11-29 16:31:02 +03:00
Jamie Cameron
c51b7ca4fd Try both upper and lower case P flags https://www.virtualmin.com/node/44318 2016-11-28 15:01:32 -08:00
Jamie Cameron
3e592861d4 Merge branch 'master' of git@github.com:webmin/webmin 2016-11-26 17:22:35 -08:00
Jamie Cameron
f505abccd5 Fix perl warning by failing fast if directory doesn't exist https://sourceforge.net/p/webadmin/bugs/4849/ 2016-11-26 17:15:54 -08:00
Jamie Cameron
592d47067a Merge pull request #460 from qooob/patch-39
Typo
2016-11-25 09:47:05 -08:00
Ilia Rostovtsev
37c7f1aaa7 Typo 2016-11-25 15:16:38 +03:00
Jamie Cameron
2b7688d445 Trying to limit the level of recursion when parsing turns out to be infinitely expensive :-( 2016-11-18 15:14:49 -08:00
Jamie Cameron
a508348cca Make missing perl module clearer 2016-11-18 13:42:19 -08:00
Jamie Cameron
84de87f7ed Take fixed version into account when checking for a new version 2016-11-14 20:34:34 -08:00
Jamie Cameron
c8ef4468c3 Stop including the X1 let's encrypt cert https://www.virtualmin.com/node/43460 2016-11-11 18:46:43 -08:00
Jamie Cameron
79cc63c016 / is not an actual chroot 2016-11-10 11:25:16 -08:00
Jamie Cameron
c0a72633e8 Add support for pre-theme-change functions as well 2016-11-10 10:12:59 -08:00
Jamie Cameron
f3c063644d theme pre/post functions have to be exported 2016-11-10 10:04:25 -08:00
Jamie Cameron
cda820a418 MySQL 5.7.16 doesn't support the hosts table https://www.virtualmin.com/node/43131 2016-11-09 20:56:08 -08:00
Jamie Cameron
c38725d371 Load theme library first, so tha the old theme's functions are available 2016-11-04 08:35:21 -07:00
Jamie Cameron
9af0e28e02 Suppress message when backing up to browser https://www.virtualmin.com/node/43291 2016-11-02 22:09:52 -07:00
Jamie Cameron
d8a2a373e4 Add post-theme-change function 2016-11-01 20:39:06 -07:00
Jamie Cameron
d03f6fdc67 Support views without needing to login to MySQL 2016-10-30 22:43:49 -07:00
Jamie Cameron
1e3b845bf1 Deal with invalid keys without crashing 2016-10-30 22:19:45 -07:00
Jamie Cameron
eab1118184 Fix saving of groups https://sourceforge.net/p/webadmin/bugs/4844/ 2016-10-30 20:26:30 -07:00
Jamie Cameron
a19b85d570 Limit level of recursion possible for the most expensive regexp https://www.virtualmin.com/node/43153 2016-10-28 16:53:59 -07:00
Jamie Cameron
0a08ee52ea mysql 5.5+ always supports views 2016-10-27 23:18:35 -07:00
Jamie Cameron
f34ca656a5 Fix another use of nocreateuser permission https://github.com/webmin/webmin/issues/449 2016-10-26 22:03:51 -07:00
Jamie Cameron
0ca5b18938 Disallow colon in default value https://sourceforge.net/p/webadmin/bugs/4839/ 2016-10-26 21:44:03 -07:00
Jamie Cameron
a85db57cdd Merge branch 'master' of git@github.com:webmin/webmin 2016-10-24 17:17:01 -07:00
Jamie Cameron
f8f13738a1 Fix perl warning https://www.virtualmin.com/node/39161 2016-10-24 17:09:19 -07:00
Jamie Cameron
85ce8657f7 Merge pull request #446 from augustr/fix-bind8-lib-comparison
Fix bind version comparison in bind8-lib
2016-10-22 16:39:41 -07:00
August Rydberg
07abd58e8b Fix bind version comparison in bind8-lib 2016-10-22 09:49:37 +02:00
Jamie Cameron
475cc4fbdf Strip out unsafe HTML from error messages 2016-10-21 15:46:23 -07:00
Jamie Cameron
bb0312469e Support all NFS security options https://github.com/webmin/webmin/issues/443 2016-10-19 22:03:28 -07:00
Jamie Cameron
095879911f MAC addresses must have a :, - or . in them 2016-10-19 21:27:20 -07:00
Jamie Cameron
99afee45aa If host entered is 12 hex bytes in any format, convert to standard format 2016-10-19 21:25:15 -07:00
Jamie Cameron
cf956129cb German translation updates from Raymond Vetter 2016-10-18 12:37:10 -07:00
Jamie Cameron
078131f4f6 German translation updates from Raymond Vetter 2016-10-18 12:37:02 -07:00
Jamie Cameron
04f2b51bab Fix some perl warnings https://sourceforge.net/p/webadmin/bugs/4837/ 2016-10-17 21:09:04 -07:00
Jamie Cameron
2a65b999ca source line is not part of an interface https://www.virtualmin.com/node/43038 2016-10-16 15:22:59 -07:00
Jamie Cameron
5486730fd6 Fix incorrect field name 2016-10-16 11:33:47 -07:00
Jamie Cameron
f7f3e3b5ac Show the TLSA numeric codes 2016-10-16 11:18:50 -07:00
Jamie Cameron
c3f86c7f39 Strip comments from public key text 2016-10-16 10:48:11 -07:00
Jamie Cameron
ac7f52d6d1 forgotten checkin for sms subject update 2016-10-14 16:56:25 -07:00
Jamie Cameron
15e2f4a114 Remove the .service suffix https://github.com/webmin/webmin/issues/430 2016-10-14 16:54:07 -07:00
Jamie Cameron
338f801be4 Don't try to clear out file that doesn't exist 2016-10-14 12:29:37 -07:00
Jamie Cameron
b6189c6a43 dev version bump 2016-10-14 11:26:37 -07:00
Jamie Cameron
c9345028d7 Allow setting of subject line for SMS emails 2016-10-14 11:08:00 -07:00
Jamie Cameron
56270624d1 Don't assume that a specific file was edited https://www.virtualmin.com/node/42988 2016-10-12 20:45:54 -07:00
Jamie Cameron
ab561465ba Allow multiple masquerade IPs https://github.com/webmin/webmin/issues/438 2016-10-11 18:01:39 -07:00
Jamie Cameron
b2511a047c In new packages mode, don't show the whole list by default 2016-10-10 15:56:27 -07:00
Jamie Cameron
5e89e16f06 PFS support in usermin too 2016-10-09 22:07:16 -07:00
Jamie Cameron
0bf336d761 Fix PFS support by creating and using DH params file https://github.com/webmin/webmin/issues/413 2016-10-09 21:56:23 -07:00
Jamie Cameron
42157fdfed Default to using the built-in lets encrypt client, because the official client has an unreliable output format 2016-10-09 10:44:14 -07:00
Jamie Cameron
7ee7ed19f4 Merge pull request #437 from deserted/master
increase specificity of regex to avoid problems with new output from certbot/letsencrypt client
2016-10-09 10:37:36 -07:00
Tim Allingham
a04eb85879 increase specificity of regex to avoid problems with new output from certbot/letsencrypt client 2016-10-09 21:00:12 +11:00
Jamie Cameron
0353111336 Enable IPv6 by default for new installs https://sourceforge.net/p/webadmin/bugs/4824/ 2016-10-05 16:43:54 -07:00
Jamie Cameron
b35b58cb94 Initialize a forgotten var that causes zones nested under views to break https://github.com/webmin/webmin/issues/411 2016-10-04 16:33:55 -07:00
Jamie Cameron
f7337c7f27 Clear out JS file 2016-10-03 09:03:28 -07:00
Jamie Cameron
d2b43d2eaa TLSA record support 2016-10-02 20:30:36 -07:00
Jamie Cameron
7ff9e6501a Fix ordering of number-string-number version check, as it needs to come before number-string 2016-10-02 11:31:43 -07:00
Jamie Cameron
18bae5be08 Use a separate mode input to determine whether the system time, hardware time or NTP time are being set. This is needed because authentic theme changes the values of submit buttons 2016-10-02 00:01:29 -07:00
Jamie Cameron
b6bc89aa31 German translation updates from Raymond Vetter 2016-10-01 15:05:33 -07:00
Jamie Cameron
8c8afc0cbb Fix missing space 2016-10-01 15:04:50 -07:00
Jamie Cameron
e8120afc9e New version bump 2016-10-01 15:02:38 -07:00
Jamie Cameron
ce3074ad47 Add missing slash 2016-10-01 14:57:41 -07:00
Jamie Cameron
27ea3f50c0 Fix comparison of versions like 5foo7 and 5foo10 https://github.com/webmin/webmin/issues/282 2016-10-01 10:37:45 -07:00
Jamie Cameron
ac77da0e75 Merge branch 'master' of git@github.com:webmin/webmin 2016-09-30 15:36:59 -07:00
Jamie Cameron
8ab998b123 Fix creation of new actions 2016-09-30 15:36:47 -07:00
Jamie Cameron
a40052a3f0 Merge pull request #432 from cornec81/master
firewall6 modules changes
2016-09-30 14:04:03 -07:00
Jamie Cameron
c6cd892f15 Fail fast if file can't be opened 2016-09-30 14:01:44 -07:00
Corne Cornelius
12b0364e62 silly perl path fix 2016-09-30 20:03:32 +00:00
Corne Cornelius
0883226098 firewall6: bug fixes and pager 2016-09-30 19:57:44 +00:00
Jamie Cameron
7208412de2 let's encrypt output can be a symlink, so always de-reference it https://www.virtualmin.com/node/42419 2016-09-29 16:28:54 -07:00
Jamie Cameron
ceae4b5228 LDAP client check doesn't handle new-style nslcd format https://www.virtualmin.com/node/42113 2016-09-25 09:40:12 -07:00
Jamie Cameron
f308101805 Also use list-unit-files to find disabled units https://github.com/webmin/webmin/issues/430 2016-09-24 15:55:43 -07:00
Jamie Cameron
371d2b008f ATA mode no longer needs to be on by default, as it breaks on some drives https://sourceforge.net/p/webadmin/bugs/4821/ 2016-09-19 19:57:34 -07:00
Jamie Cameron
5f39cfdd39 Properly deal with the case where a directive is missing https://www.virtualmin.com/node/41676 2016-09-19 17:55:15 -07:00
Jamie Cameron
53f087cafa Fix protocol check https://sourceforge.net/p/webadmin/bugs/4820/ 2016-09-18 16:02:39 -07:00
Jamie Cameron
481d2b6d4b German translation updates from Raymond Vetter 2016-09-17 16:21:11 -07:00
Jamie Cameron
e3192f2f19 German translation updates from Raymond Vetter 2016-09-17 16:21:04 -07:00
Jamie Cameron
186d49c1a0 Option has been renamed in IPv6 https://sourceforge.net/p/webadmin/bugs/4819/ 2016-09-17 10:23:58 -07:00
Jamie Cameron
003424a60e Support new format comments https://sourceforge.net/p/webadmin/bugs/4818/ 2016-09-16 21:15:54 -07:00
Jamie Cameron
c2657aab8a Clear zone list on each iteration https://github.com/webmin/webmin/issues/411 2016-09-15 20:53:38 -07:00
Jamie Cameron
3cceb09daa Upgrade form is no longer GET https://sourceforge.net/p/webadmin/usermin-bugs/455/ 2016-09-12 21:34:12 -07:00
Jamie Cameron
9e57a7df51 German translation updates from Raymond Vetter 2016-09-12 20:24:00 -07:00
Jamie Cameron
4cfb984694 German translation updates from Raymond Vetter 2016-09-12 20:24:00 -07:00
Jamie Cameron
220897472f Fix typo 2016-09-12 20:21:43 -07:00
Jamie Cameron
dc69374aaa let's encrypt cert size option 2016-09-11 09:49:18 -07:00
Jamie Cameron
ac4d68f2ce Close HTTP connection on failure, to avoid dangling file handles https://www.virtualmin.com/node/41967 2016-09-09 16:25:11 -07:00
Jamie Cameron
202d672855 dev version bump 2016-09-08 21:44:19 -07:00
Jamie Cameron
2f5ee3eb33 Handle gentoo's apache cofnig check output https://www.virtualmin.com/node/41961 2016-09-08 20:04:49 -07:00
Jamie Cameron
b2d4380577 Add depenency on time::local, so that on systems like Fedora 24 the needed Perl modules get installed https://github.com/webmin/webmin/issues/405 2016-09-06 21:12:36 -07:00
Jamie Cameron
d93ae142f2 Allow password reading from stdin 2016-08-31 22:03:57 -07:00
Jamie Cameron
c8cebbb4b9 German translation updates from Raymond Vetter 2016-08-29 20:40:41 -07:00
Jamie Cameron
db8407ab09 German translation updates from Raymond Vetter 2016-08-29 20:40:35 -07:00
Jamie Cameron
ebfcf159c7 Don't replace a new update with an older one in the same cycle https://www.virtualmin.com/node/41721 2016-08-27 17:48:31 -07:00
Jamie Cameron
8748d785b4 German translation updates from Raymond Vetter 2016-08-27 10:31:50 -07:00
Jamie Cameron
25d31738ec German translation updates from Raymond Vetter 2016-08-27 10:31:45 -07:00
Jamie Cameron
499fba0b8c Forgotten checkin from previous work to validation options files 2016-08-27 09:09:30 -07:00
Jamie Cameron
00bd87ae86 Download all the Let's Encrypt CA files 2016-08-27 09:07:21 -07:00
Jamie Cameron
2bf3dcbf38 Catalan update from Jaume Badiella 2016-08-27 09:06:01 -07:00
Jamie Cameron
6586126d6b Catalan update from Jaume Badiella 2016-08-27 09:05:13 -07:00
Jamie Cameron
8b358c438d Fix default also notify field https://www.virtualmin.com/node/41824 2016-08-26 23:19:08 -07:00
Jamie Cameron
cb481287ac Force stop before starting, just in case the init system thinks we're already started 2016-08-24 21:45:21 -07:00
Jamie Cameron
7e6982a0cf Use title from clone, if any 2016-08-24 21:01:01 -07:00
Jamie Cameron
700afdb0cc Fix perl warning 2016-08-24 20:30:39 -07:00
Jamie Cameron
000405b749 Skip fuse filesystemss 2016-08-23 21:41:39 -07:00
Jamie Cameron
a14864e932 Turkish translation from Melih akpınar 2016-08-21 20:43:47 -07:00
Jamie Cameron
36048fe4cd Option to download mysql backup 2016-08-20 18:46:34 -07:00
Jamie Cameron
e461576cd9 Merge pull request #415 from ymulleneers/patch-1
Copy jobs do not have destination tape
2016-08-19 22:26:05 -07:00
ymulleneers
7188abc556 Copy jobs do not have destination tapes
copy jobs do not have any destination tape (here called volume) (=> ? on the 7th or latest field)
example (spaces removed) : Full Backup 11 19-Aug-16 17:50 ykfdc1-Copyjob
2016-08-19 12:15:44 +02:00
Jamie Cameron
55fb44f34c open_execute_command doesn't work with file handle vars https://sourceforge.net/p/webadmin/bugs/4801/ 2016-08-17 20:12:57 -07:00
Jamie Cameron
b7bbeb457b Don't try to read missing zone file https://sourceforge.net/p/webadmin/bugs/4801/ 2016-08-15 20:29:18 -07:00
Jamie Cameron
e1e6fd43e0 Don't attempt to run named- v if not installed https://sourceforge.net/p/webadmin/bugs/4802/ 2016-08-15 09:01:35 -07:00
Jamie Cameron
46239c247f Fix IPv6 ICMP type option https://sourceforge.net/p/webadmin/bugs/4807/ 2016-08-14 17:36:01 -07:00
Jamie Cameron
22c8d8d041 Assume IPFW version 2, since it's been out for ages https://github.com/webmin/webmin/issues/410 2016-08-14 17:09:28 -07:00
Jamie Cameron
792b4d2bd7 Fix perl error 2016-08-14 11:41:33 -07:00
Jamie Cameron
031dd76538 Perl expects arrays to exist https://sourceforge.net/p/webadmin/bugs/4805/ 2016-08-14 10:22:30 -07:00
Jamie Cameron
74efe3465e Allow version override https://github.com/webmin/webmin/issues/410 2016-08-13 12:23:44 -07:00
Jamie Cameron
b08445e9c4 Fix perl error about use of unitialized arrays 2016-08-12 21:46:03 -07:00
Jamie Cameron
959adc098f Deal with invalid version file https://sourceforge.net/p/webadmin/bugs/4802/ 2016-08-11 20:35:49 -07:00
Jamie Cameron
54c7f75bf9 Some records don't have values https://sourceforge.net/p/webadmin/bugs/4800/ 2016-08-11 20:27:02 -07:00
Jamie Cameron
4dfaaaff09 Don't crash if there are no records of some type https://www.virtualmin.com/node/41676 2016-08-10 13:41:28 -07:00
Jamie Cameron
52180cea58 Work-around for chance that clients may call this API with a string list https://www.virtualmin.com/node/41674 2016-08-10 13:30:45 -07:00
Jamie Cameron
c8f403c5f6 Fix some warnings 2016-08-07 22:11:30 -07:00
Jamie Cameron
162e181c21 New version bump 2016-08-07 17:24:16 -07:00
Jamie Cameron
7f73d135a3 Don't read from non-existent file 2016-08-07 16:58:20 -07:00
Jamie Cameron
65c2b20b15 Fix small perl warning 2016-08-07 16:56:14 -07:00
Jamie Cameron
457c4d85e3 Remove unused UI mode which is hard for themes to support https://github.com/webmin/webmin/issues/409 2016-08-02 22:08:02 -07:00
Jamie Cameron
57a918dc1b Merge branch 'master' of git@github.com:webmin/webmin 2016-08-02 21:30:56 -07:00
Jamie Cameron
ee373ab2be Update Let's Encrypt agreement URL https://www.virtualmin.com/node/41565 2016-08-02 21:30:24 -07:00
Jamie Cameron
fb26abb000 Merge pull request #407 from maanas/master
Clone rules are added after the original Rule
2016-07-25 20:28:48 -07:00
Maanas Royy
48bfce7cb1 Clone rules are added after the original Rule
In the existing state the clone rules are added in the bottom of the firewall wall rule list. Generally the clone rules are for similar interface, port, etc and most of the time after adding they need to be arranged. The change enable the clone rule to be placed after the original rule. This will allow a better comparison and arrangement of the firewall rules.
2016-07-26 06:45:47 +05:30
Jamie Cameron
b77193c95d German translation updates from Raymond Vetter 2016-07-24 21:18:09 -07:00
Jamie Cameron
3effb160b5 Fix comments 2016-07-24 17:46:56 -07:00
Jamie Cameron
5881b223b4 inet6 constants are now in the Socket package https://www.virtualmin.com/node/40065 2016-07-24 13:12:25 -07:00
Jamie Cameron
0055290c76 German translation updates from Raymond Vetter 2016-07-23 18:34:07 -07:00
Jamie Cameron
253defe365 Fix slapd path on SuSE https://sourceforge.net/p/webadmin/bugs/4792/ 2016-07-22 08:12:43 -07:00
Jamie Cameron
cd950f1c0a Don't allow twofactor to be disabled if any users are enrolled https://sourceforge.net/p/webadmin/bugs/4788/ 2016-07-22 07:52:42 -07:00
Jamie Cameron
ded6d9a37f Fix config for SuSE Linux https://sourceforge.net/p/webadmin/bugs/4791/ 2016-07-20 22:29:17 -07:00
Jamie Cameron
401ff8466a New OSX version 2016-07-13 21:13:15 -07:00
Jamie Cameron
7de1f09c9f Use the correct var for the file handle https://github.com/webmin/webmin/issues/404 2016-07-11 02:12:34 -07:00
Jamie Cameron
8f18e8cdf4 Use formal parameters https://github.com/webmin/webmin/issues/403 2016-07-11 02:09:01 -07:00
Jamie Cameron
17cea3d3a2 Allow change of renewal only 2016-07-10 17:51:35 -07:00
Jamie Cameron
60800e3b6b Allow LV creation based on original LV size 2016-07-06 07:58:03 -07:00
Jamie Cameron
8c07bc9f30 Merge branch 'master' of git@github.com:webmin/webmin 2016-07-06 02:32:35 -07:00
Jamie Cameron
0f8119a6d5 Support logfiles with spaces in them, via quoted strings https://www.virtualmin.com/node/41316 2016-07-06 02:31:18 -07:00
Jamie Cameron
d40ff8a547 Merge pull request #401 from pwahle87/master
firewall6 module / fixes for ICMPv6
2016-07-06 08:44:56 +08:00
pwahle87
fb3524471a Update setup.cgi
Fixed icmpv6
2016-07-05 05:47:30 +02:00
pwahle87
132fa7a16b Update save_rule.cgi
Fixed icmpv6
check_ipmask disabled because the regex needs to be adjusted
2016-07-05 05:44:32 +02:00
pwahle87
0d87686862 Update edit_rule.cgi
Fixed icmpv6
Fixed icmpv6 reject types
2016-07-05 05:33:40 +02:00
Jamie Cameron
4ec1e182d5 error if options file doesn't exist 2016-07-04 03:17:16 -07:00
Jamie Cameron
e6765ece27 fix perl errors if dmarc components are missing 2016-07-03 16:57:51 -07:00
Jamie Cameron
e9376f3fc5 Skip zones with no type, to avoid perl warnuings 2016-07-03 16:44:32 -07:00
Jamie Cameron
46f264e22c fix yet another perl warning 2016-07-03 07:18:00 -07:00
Jamie Cameron
bb672844c7 fix another perl warning 2016-07-03 07:09:23 -07:00
Jamie Cameron
0e8d291d63 fix perl warnings 2016-07-03 07:02:23 -07:00
Jamie Cameron
c5a51403d1 name may not be defined 2016-07-03 02:15:07 -07:00
Jamie Cameron
6ed37aeef0 Merge branch 'master' of git@github.com:webmin/webmin 2016-07-02 16:36:14 -07:00
Jamie Cameron
04f8997509 German translation updates from Raymond Vetter 2016-07-02 03:38:20 -07:00
Jamie Cameron
6bd51824d1 New linux mint version 2016-07-02 18:37:05 +08:00
Jamie Cameron
c4f74a0f9d Error out if cannot create directory https://sourceforge.net/p/webadmin/bugs/4782/ 2016-06-30 15:47:06 -07:00
Jamie Cameron
357ab56b6d Fix perms 2016-06-29 17:55:21 -07:00
Jamie Cameron
2af0b05c29 Add missing text 2016-06-29 17:54:24 -07:00
Jamie Cameron
15bcab87c7 Support new-style quota 2016-06-29 17:52:54 -07:00
Jamie Cameron
1c4afe2f11 Re-factor confdir setting 2d4640f00a 2016-06-28 18:01:28 -07:00
Jamie Cameron
7e72bcdbaf Use common function for creating logged event descriptions 2016-06-25 16:45:11 -07:00
Jamie Cameron
bbff90bea4 Get rid of undefined var warning 2016-06-25 16:33:52 -07:00
Jamie Cameron
347b7e87cf Fix a bunch of minor warnings and unitialized vars 2016-06-23 23:15:12 -07:00
Jamie Cameron
085865ec9a Some fields may not be set 2016-06-23 22:45:36 -07:00
Jamie Cameron
bcd16e5ade Transfer 'query' field into table, selection and where if possible 2016-06-22 22:44:14 -07:00
Jamie Cameron
613efe4ace Fix warnings 2016-06-20 19:43:20 -07:00
Jamie Cameron
a5ffa5e309 Remove useless my 2016-06-20 19:19:45 -07:00
Jamie Cameron
80170f9b80 fix typo 2016-06-20 19:17:06 -07:00
Jamie Cameron
1fef37a8a1 Add missed variable 2016-06-20 19:16:32 -07:00
Jamie Cameron
71949364be dev version bump 2016-06-20 19:11:31 -07:00
Jamie Cameron
941f110eda github is sending the HTTP header X-Geo-Block-List: with no value, which causes webmin to stop processing headers at this point. This causes remaining headers to be included in the downloaded file 2016-06-19 12:22:50 -07:00
Jamie Cameron
2d4640f00a use get_paths, as it supports the case where the webmin user isn't a unix user 2016-06-18 22:10:46 -07:00
Jamie Cameron
ce8e0411e4 Arrays shouldn't be quoted https://sourceforge.net/p/webadmin/bugs/4777/ 2016-06-18 18:33:20 -07:00
Jamie Cameron
d49c16cb31 German translation updates from Raymond Vetter 2016-06-18 16:45:38 -07:00
Jamie Cameron
f74c22a66d Merge branch 'master' of git@github.com:webmin/webmin 2016-06-18 15:32:27 -07:00
Jamie Cameron
e59cac6f51 Merge pull request #391 from swelljoe/at-strictwarn
at module strict/warn conversion
2016-06-18 15:28:46 -07:00
Jamie Cameron
633d60900c set forgotten time_now array https://github.com/webmin/webmin/issues/392 2016-06-18 11:46:26 -07:00
Joe Cooper
d5b9cefb2c strict/warn 2016-06-17 23:23:48 -07:00
Joe Cooper
ac9a3b7c41 strict/warn 2016-06-17 23:15:07 -07:00
Joe Cooper
edccc4ea10 strict/warn 2016-06-17 23:12:11 -07:00
Joe Cooper
90d0244950 strict/warn 2016-06-17 23:11:03 -07:00
Joe Cooper
7ec8bc71e0 strict/warn 2016-06-17 23:08:57 -07:00
Joe Cooper
ecca77fdad strict/warn 2016-06-17 22:38:16 -07:00
Joe Cooper
265a775ccb strict/warn 2016-06-17 22:31:30 -07:00
Joe Cooper
91052e76b0 strict/warn 2016-06-17 22:28:54 -07:00
Joe Cooper
abba5c7377 strict/warn 2016-06-17 22:23:58 -07:00
Joe Cooper
6316210b9d strict/warn 2016-06-17 22:21:23 -07:00
Joe Cooper
fe6d99777e strict/warn 2016-06-17 22:11:42 -07:00
Joe Cooper
f8c1571e15 strict/warn 2016-06-17 22:07:25 -07:00
Joe Cooper
5870f40481 strict/warn 2016-06-17 22:04:36 -07:00
Joe Cooper
9c98a7f820 strict/warn 2016-06-17 22:03:37 -07:00
Joe Cooper
ce8e6bf481 strict/warn 2016-06-17 21:59:39 -07:00
Joe Cooper
90fc05e34a strict/warn 2016-06-17 21:58:31 -07:00
Jamie Cameron
49ed6fc377 Merge pull request #389 from swelljoe/master
strict/warn updates for ajaxterm and  typo fix for apache-lib.pl
2016-06-16 21:09:45 -07:00
Joe Cooper
f818ead2db strict/warn 2016-06-16 19:24:46 -07:00
Joe Cooper
eb6b294bed typo fix 2016-06-16 18:52:47 -07:00
Jamie Cameron
30bf7beb02 Forward and other multi-value fields need to be preserved 2016-06-15 16:54:42 -07:00
Jamie Cameron
8d6124321f remote_user_info is already set correctly https://sourceforge.net/p/webadmin/bugs/4773/ 2016-06-14 22:54:46 -07:00
Joe Cooper
ccc715a11e strict/warnings but doesn't work...no idea why 2016-06-14 01:59:36 -07:00
Joe Cooper
490b035f72 Merge remote-tracking branch 'upstream/master' 2016-06-14 01:01:52 -07:00
Jamie Cameron
025be61e1e Completed webmin logging via email 2016-06-11 18:51:46 -07:00
Jamie Cameron
005857ccd1 UI for configuring log to email 2016-06-11 18:06:19 -07:00
Jamie Cameron
31a5ec771d Upload should allow overwriting of a file https://sourceforge.net/p/webadmin/bugs/4774/ 2016-06-11 17:23:38 -07:00
Jamie Cameron
1ed25a0bbf Merge branch 'master' of git@github.com:webmin/webmin 2016-06-11 14:46:43 -07:00
Jamie Cameron
a0db27968b Support a new hwclock output format https://github.com/webmin/webmin/issues/379 2016-06-11 14:46:27 -07:00
Jamie Cameron
1f516d66f5 German translation updates from Raymond Vetter 2016-06-11 14:42:50 -07:00
Jamie Cameron
f2b21bc503 Merge pull request #385 from qooob/patch-37
Adding ability to extract `.rpm` and `.deb` files in case dependencie…
2016-06-10 08:49:10 -07:00
Jamie Cameron
7698818eec Merge branch 'master' of git@github.com:webmin/webmin 2016-06-09 22:01:17 -07:00
Jamie Cameron
21fe9cddf7 Allow start and end dates to be set for quick autoreplies https://www.virtualmin.com/node/40987 2016-06-09 22:00:11 -07:00
Jamie Cameron
bf3e1cb064 Merge pull request #386 from qooob/patch-38
Checking for dependencies to be able to extract .rpm/.deb
2016-06-09 19:53:18 -07:00
Ilia Rostovtsev
ff2976fd85 Checking for dependencies to be able to extract .rpm/.deb 2016-06-09 14:44:16 +04:00
Ilia Rostovtsev
ecd98c0030 Adding ability to extract .rpm and .deb files in case dependencies are installed 2016-06-09 14:41:58 +04:00
Jamie Cameron
7fe32a5dce Request a 2048-bit key from let's encrypt 2016-06-07 21:49:29 -07:00
Jamie Cameron
6a12fe7d23 If the URL cannot be downloaded locally, just warn instead of crashing 2016-06-06 20:49:00 -07:00
Jamie Cameron
08c55bac64 Include status message in email 2016-06-05 21:57:23 -07:00
Jamie Cameron
f4f9b32db0 Always disable or enable if the action exists 2016-06-05 16:21:59 -07:00
Jamie Cameron
6c366fd394 German translation updates from Raymond Vetter 2016-06-04 21:30:35 -07:00
Jamie Cameron
17f3235798 UI for log to email feature 2016-06-04 16:49:33 -07:00
Jamie Cameron
a0fd8f3694 Missing part of recording failed logins feature 2016-06-04 16:48:24 -07:00
Jamie Cameron
d28761ce88 explain what's going on here 2016-06-04 16:46:28 -07:00
Jamie Cameron
a9f6a4528f When looking up by folder name, transform the ID properly 2016-06-04 16:37:43 -07:00
Jamie Cameron
1e65d4b153 tgz and gz are MIME types 2016-06-04 16:37:13 -07:00
Jamie Cameron
d80a0203bd Use exclude file 2016-06-04 16:36:51 -07:00
Jamie Cameron
bdcabcfbe9 Handle case where there is no new group 2016-06-04 16:36:23 -07:00
Jamie Cameron
2cc32ee64a German translation updates from Raymond Vetter 2016-06-04 16:34:58 -07:00
Jamie Cameron
ae85145e43 German translation updates from Raymond Vetter 2016-06-04 16:34:57 -07:00
Jamie Cameron
0cfe643700 Add IPv6 firewall module to standard distributuion 2016-06-04 13:04:01 -07:00
Jamie Cameron
147990a30a Merge branch 'master' of git@github.com:webmin/webmin 2016-06-04 12:57:40 -07:00
Jamie Cameron
b4b309d6d7 Session DB value can sometimes be empty https://sourceforge.net/p/webadmin/bugs/4762/ 2016-06-04 12:40:03 -07:00
Jamie Cameron
b837846128 Merge pull request #383 from swelljoe/bind8-strictwarn
Finish up strict/warn for bind8 module
2016-06-03 16:52:48 -07:00
Joe Cooper
522bd05fff Merge remote-tracking branch 'upstream/master' into bind8-strictwarn 2016-06-03 14:59:39 -07:00
Joe Cooper
678f8ec6da strict/warn, bugifx for missing @views 2016-06-03 14:57:30 -07:00
Joe Cooper
a6983f8df7 strict/warn, close $OUT filehandle 2016-06-03 14:48:13 -07:00
Joe Cooper
5186ab8125 strict/warn 2016-06-03 14:45:55 -07:00
Joe Cooper
e9655ed5e9 strict/warn 2016-06-03 14:44:28 -07:00
Joe Cooper
9bd529fce4 strict/warn 2016-06-03 14:42:57 -07:00
Joe Cooper
21b516b52e strict/warn 2016-06-03 14:41:50 -07:00
Joe Cooper
7d1b4a66f4 strict/warn 2016-06-03 14:40:40 -07:00
Joe Cooper
8a1a182099 strict/warn 2016-06-03 14:39:47 -07:00
Joe Cooper
a6984f6be5 strict/warn 2016-06-03 14:37:59 -07:00
Jamie Cameron
6d1900f94a Add missing views variable https://github.com/webmin/webmin/issues/382 2016-06-03 14:32:40 -07:00
Joe Cooper
0bc3eb6430 strict/warn 2016-06-03 14:31:34 -07:00
Joe Cooper
caa329d749 strict/warn 2016-06-03 14:30:37 -07:00
Jamie Cameron
2e9039434b Fix incorrect variable name https://github.com/webmin/webmin/issues/380 2016-06-03 08:47:00 -07:00
Joe Cooper
a4c8e4a7bb strict/warn 2016-06-03 01:30:57 -07:00
Joe Cooper
b0e9415d01 strict/warn 2016-06-03 01:29:19 -07:00
Joe Cooper
99e46e7e3f Make $dnssec_dlv_zone our 2016-06-03 01:27:17 -07:00
Joe Cooper
e223f899e5 strict/warn 2016-06-03 01:24:10 -07:00
Joe Cooper
20c9d9f0f1 strict/warn 2016-06-03 01:15:14 -07:00
Joe Cooper
e422ae0eaf strict/warn 2016-06-03 01:12:26 -07:00
Joe Cooper
40780e96b1 strict/warn 2016-06-03 01:08:51 -07:00
Joe Cooper
2f6e937f21 strict/warn 2016-06-03 01:01:06 -07:00
Joe Cooper
3eb49c27ed strict/warn 2016-06-03 00:58:01 -07:00
Joe Cooper
90196c3f88 strict/warn 2016-06-03 00:41:31 -07:00
Joe Cooper
2d7ba714ac Oops, open_tempfile and open_lock_tempfile are not open(), so shouldn't
be three argument style (for now).
2016-06-03 00:36:35 -07:00
Joe Cooper
fb4595b38d strict/warn 2016-06-03 00:36:15 -07:00
Joe Cooper
adfd154341 strict/warn #380
XXX This one is hairy! But, self-contained in this one file, so fine for
now.
2016-06-02 21:35:42 -07:00
Jamie Cameron
9f23977794 First version of the IPv6 iptables module, ported by Patrick Wahle 2016-06-02 20:56:06 -07:00
Joe Cooper
6a80732b71 strict/warn 2016-06-02 19:42:14 -07:00
Joe Cooper
88db96cf31 strict/warn 2016-06-02 19:38:59 -07:00
Joe Cooper
10cbab5fe8 strict/warn 2016-06-02 19:34:44 -07:00
Joe Cooper
a8a1cdc05b strict/warn 2016-06-02 19:30:01 -07:00
Joe Cooper
ad26beb5b4 strict/warn 2016-06-02 19:25:58 -07:00
Joe Cooper
3a2f028f7e make $uscore and $star global
XXX could be better encapsulated
2016-06-02 19:23:50 -07:00
Joe Cooper
566a07c477 strict/warn 2016-06-02 19:23:31 -07:00
Joe Cooper
e96c1cac11 strict/warn 2016-06-02 19:16:36 -07:00
Joe Cooper
379a5a00cd strict/warn 2016-06-02 19:15:26 -07:00
Joe Cooper
e7265843d3 strict/warn 2016-06-02 19:13:33 -07:00
Joe Cooper
ca93abc540 strict/warn 2016-06-02 19:11:04 -07:00
Joe Cooper
c446449496 strict/warn 2016-06-02 19:09:33 -07:00
Joe Cooper
bb07d2d1e7 make dnssec_cron_cmd available to other files
XXX Could be improved/encapsulated in a dnssec config object or something.
2016-06-02 18:52:05 -07:00
Joe Cooper
3233f47cf2 strict/warn 2016-06-02 18:49:05 -07:00
Joe Cooper
e11e9dc86f strict/warn 2016-06-02 18:46:57 -07:00
Jamie Cameron
8938385d67 German translation updates from Raymond Vetter 2016-06-02 17:44:18 -07:00
Jamie Cameron
3ca97055c4 Merge pull request #378 from swelljoe/strictwarn
strict/warn updates, plus a couple of bug fixes to previous commits
2016-06-02 17:34:53 -07:00
Jamie Cameron
ab17eff7cf Force consistent locale for hwclock command https://github.com/webmin/webmin/issues/379 2016-06-02 17:18:09 -07:00
Joe Cooper
b46a5ce93a strict/warn 2016-06-02 01:17:26 -07:00
Joe Cooper
2136ee98ec strict/warn 2016-06-02 01:13:54 -07:00
Joe Cooper
bee4a4029b strict/warn 2016-06-02 01:12:45 -07:00
Joe Cooper
cf1991d78d strict/warn 2016-06-02 01:04:41 -07:00
Joe Cooper
0df6939988 strict/warn 2016-06-02 01:03:32 -07:00
Joe Cooper
ed265ce71f strict/warn, remove $view from can_edit_zone call 2016-06-02 00:59:53 -07:00
Joe Cooper
eaba21745a strict/warn 2016-06-02 00:57:30 -07:00
Joe Cooper
af7b9c8fac strict/warn 2016-06-02 00:56:41 -07:00
Joe Cooper
ed9b044f91 strictw/warn 2016-06-02 00:55:21 -07:00
Joe Cooper
5868988c89 strict/warn 2016-06-01 23:52:51 -07:00
Joe Cooper
54c14c668d strict/warn 2016-06-01 23:49:57 -07:00
Joe Cooper
315d517bc3 strict/warn 2016-06-01 23:47:50 -07:00
Joe Cooper
4b4176a40d strict/warn 2016-06-01 23:46:03 -07:00
Joe Cooper
f846fbd43b strict/warn 2016-06-01 23:44:22 -07:00
Joe Cooper
c51d78c804 strict/warn 2016-06-01 23:42:34 -07:00
Joe Cooper
46e629fb9b strict/warn 2016-06-01 23:03:34 -07:00
Joe Cooper
66f656a8db strict/warn 2016-06-01 22:53:41 -07:00
Joe Cooper
1db6880427 strict/warn 2016-06-01 22:18:38 -07:00
Joe Cooper
ff9bb29365 Merge remote-tracking branch 'upstream/master' into strictwarn 2016-06-01 20:54:29 -07:00
Joe Cooper
90d29e43cd strict/warn, remove dead code 2016-06-01 20:46:37 -07:00
Joe Cooper
1fed180246 strict/warn, convert use of @servers::server_types to
servers::get_server_types()
2016-06-01 20:31:13 -07:00
Jamie Cameron
d73b5d7926 Remove dead code https://github.com/webmin/webmin/issues/374 2016-06-01 20:09:39 -07:00
Jamie Cameron
411da84699 Fix incorrect var name https://github.com/webmin/webmin/issues/376 2016-06-01 20:06:30 -07:00
Joe Cooper
bda15c89da Bugfix for old style refs. 2016-06-01 19:32:12 -07:00
Joe Cooper
310d559b3b strict/warn, fix use of reference on $g 2016-06-01 19:28:53 -07:00
Joe Cooper
1fd1190da8 our $bind_version so it can be used in CGIs 2016-06-01 19:28:18 -07:00
Joe Cooper
5b85401283 strict/warn 2016-06-01 19:06:05 -07:00
Joe Cooper
e98fd286f4 strict/warn 2016-06-01 18:57:20 -07:00
Joe Cooper
d54c1a22e0 strict/warn 2016-06-01 17:07:48 -07:00
Joe Cooper
62821c2f19 strict/warn 2016-06-01 16:57:40 -07:00
Joe Cooper
5cf1cad0be strict/warn 2016-06-01 16:54:32 -07:00
Joe Cooper
2951cec66e strict/warn 2016-06-01 16:40:15 -07:00
Joe Cooper
c9b0382b61 strict/warn, and fix bug #376 2016-06-01 03:24:13 -07:00
Joe Cooper
e999beed42 strict/warn, some cleanups. This really needs a rewrite. It's a mess.
Super old school code, and unnecessarly complex.
(I'll tackle it in the near future, if nobody else does.)
2016-06-01 03:11:42 -07:00
Joe Cooper
79f1c9368f strict/warn 2016-06-01 03:02:04 -07:00
Joe Cooper
8412a08be0 strict/warn 2016-06-01 02:54:26 -07:00
Joe Cooper
3887899f3e strict/warn 2016-06-01 02:53:14 -07:00
Joe Cooper
64f39bf8f4 strict/warn 2016-06-01 02:34:01 -07:00
Joe Cooper
0762e3866d strict/warn 2016-06-01 02:32:06 -07:00
Joe Cooper
7b181d742b strict/warn 2016-05-31 23:58:57 -07:00
Joe Cooper
db99121336 strict/warn 2016-05-31 23:55:38 -07:00
Joe Cooper
7560c4a41b strict/warn 2016-05-31 23:40:02 -07:00
Joe Cooper
a7f2a04351 strict/warn 2016-05-31 23:26:58 -07:00
Joe Cooper
962a4225f0 strict/warn 2016-05-31 23:05:59 -07:00
Joe Cooper
dc7d44f150 strict/warn 2016-05-31 23:04:01 -07:00
Jamie Cameron
8d538fae68 Make ipv6revzone available in all CGIs https://github.com/webmin/webmin/issues/369 2016-05-31 20:50:06 -07:00
Jamie Cameron
e9f6416d80 Merge pull request #373 from swelljoe/strictwarn
strict and warnings and Perl Critic updates for more bind8 files
2016-05-31 20:46:05 -07:00
Joe Cooper
ed65f6371d Oops, left a git merge message in. 2016-05-31 18:30:03 -07:00
Joe Cooper
82380e1d32 Merge remote-tracking branch 'upstream/master' into strictwarn 2016-05-31 18:19:02 -07:00
Joe Cooper
1015f7b1b2 Merge remote-tracking branch 'upstream/master' 2016-05-31 18:15:17 -07:00
Joe Cooper
a76b0fbd53 strict/warn, fix undefined var 2016-05-31 18:09:24 -07:00
Jamie Cameron
e2419bfc15 Merge pull request #372 from morissette/patch-1
Hotfix: Update typo from samba-lib.pl preventing add a group
2016-05-31 17:28:32 -07:00
Matthew Harris
89d5793316 Update type from samba-lib.pl
foriegn_require => foreign_require
2016-05-31 19:21:47 -05:00
Jamie Cameron
1bd406d5c8 Declare missing var 2016-05-31 16:57:11 -07:00
Jamie Cameron
ef72775550 Deal with case with dmarc isn't even set 2016-05-31 16:50:36 -07:00
Jamie Cameron
2f626485a6 Fix incorrect var name https://github.com/webmin/webmin/issues/370 2016-05-31 16:48:11 -07:00
Joe Cooper
e87dd429c9 strict/warn 2016-05-30 22:02:16 -07:00
Joe Cooper
0a3658400e strict/warn, define $bconf, remove $view from can_edit_zone call 2016-05-30 21:51:51 -07:00
Joe Cooper
b5602d93c6 strict/warn, fix $bconf undefined bug 2016-05-30 21:47:12 -07:00
Joe Cooper
cdf631f397 strict/warn 2016-05-30 21:34:50 -07:00
Joe Cooper
e25eae389f strict/warn 2016-05-30 21:27:32 -07:00
Joe Cooper
1eb43c8503 Remove comments about $d/$dom; $d is right. #360 2016-05-30 21:13:51 -07:00
Joe Cooper
b0e94be6e3 strict/warn 2016-05-30 21:09:57 -07:00
Joe Cooper
901a64ea3a strict/warn 2016-05-30 20:53:44 -07:00
Jamie Cameron
2ec766071b No need to pass in a view object, as it can be gotten from the zone object https://github.com/webmin/webmin/issues/368 2016-05-30 20:33:31 -07:00
Jamie Cameron
0c18c5f3f9 logging page UI enhancements 2016-05-30 19:25:52 -07:00
Jamie Cameron
18f4da591f Remove useless valigns 2016-05-30 19:19:49 -07:00
Joe Cooper
355d99d232 strict/warn 2016-05-30 18:48:25 -07:00
Joe Cooper
a214f413c5 strict/warn 2016-05-30 18:44:57 -07:00
Joe Cooper
a27441b24c strict/warn 2016-05-30 18:40:11 -07:00
Jamie Cameron
80ee1c5919 There are no masters https://github.com/webmin/webmin/issues/366 2016-05-30 18:31:49 -07:00
Joe Cooper
0f3eb41489 strict/warn 2016-05-30 18:11:46 -07:00
Joe Cooper
d8f861b67e strict/warn 2016-05-30 18:09:58 -07:00
Joe Cooper
cffb3c5d61 strict/warn 2016-05-30 18:05:05 -07:00
Joe Cooper
545e9341ef strict/warn 2016-05-30 17:59:36 -07:00
Joe Cooper
7758195ae3 strict/warn 2016-05-30 17:53:17 -07:00
Joe Cooper
3d45568f37 strict/warn 2016-05-30 17:40:54 -07:00
Joe Cooper
577f5ac754 strict/warn 2016-05-30 17:39:19 -07:00
Joe Cooper
7915579de4 strict/warn 2016-05-30 17:37:14 -07:00
Joe Cooper
8f6e095091 strict/warn 2016-05-30 17:34:08 -07:00
Joe Cooper
f7c7c32427 strict/warn 2016-05-30 17:29:15 -07:00
Joe Cooper
a7ee17f5af strict/warn 2016-05-30 17:26:24 -07:00
Joe Cooper
b9e3a748c1 strict/warn 2016-05-30 17:22:06 -07:00
Joe Cooper
3ef8d17ed5 strict/warn 2016-05-30 17:18:27 -07:00
Joe Cooper
b29520e350 strict/warn 2016-05-30 17:16:22 -07:00
Joe Cooper
30569f5e28 strict/warn 2016-05-30 17:14:20 -07:00
Joe Cooper
2588a507cc strict/warn 2016-05-30 17:12:35 -07:00
Jamie Cameron
1edcc12734 'other' field may be entirely missing 2016-05-30 16:27:53 -07:00
Jamie Cameron
dd5183a0f9 If recording logins is enabled, also record failed logins 2016-05-30 16:16:42 -07:00
Jamie Cameron
dae494fdde changelog for failed logins record 2016-05-30 16:16:20 -07:00
Jamie Cameron
1c9dc7b727 Log failed logins, and display in Webmin Actions Log module 2016-05-30 16:09:51 -07:00
Jamie Cameron
689837875f UI and postinstall for recording failed logins 2016-05-30 15:36:59 -07:00
Jamie Cameron
de1c3b187f strict/warnings compliance 2016-05-30 15:29:10 -07:00
Jamie Cameron
b8951b3f7d -p flag is not valid, should be -P https://www.virtualmin.com/node/40900 2016-05-30 15:22:23 -07:00
Jamie Cameron
7ac845a01b remove debug messages https://sourceforge.net/p/webadmin/bugs/4768/ 2016-05-30 15:09:23 -07:00
Joe Cooper
c76f0720cf strict/warn 2016-05-30 13:19:08 -07:00
Jamie Cameron
f9bbe37763 Fix a whole bunch of perl warning https://sourceforge.net/p/webadmin/bugs/4762/ 2016-05-30 11:09:35 -07:00
Jamie Cameron
238f8ce2d9 Use proper var for zone name https://github.com/webmin/webmin/issues/365 2016-05-30 10:58:53 -07:00
Jamie Cameron
962b43d0d3 Merge pull request #362 from swelljoe/master
strict and warnings compliant. Tighten up scope, fix a few undefined
2016-05-30 09:56:13 -07:00
Jamie Cameron
e5769bd07b Fix perl warnings https://sourceforge.net/p/webadmin/bugs/4762/ 2016-05-30 09:36:44 -07:00
Joe Cooper
2e64eac747 strict/warn 2016-05-30 01:20:20 -07:00
Joe Cooper
a902884e51 strict/warn 2016-05-30 01:14:11 -07:00
Joe Cooper
fd46a3af4a strict/warn 2016-05-30 01:11:43 -07:00
Joe Cooper
4a2e1188ac strict/warn 2016-05-30 01:03:31 -07:00
Joe Cooper
8a761c2075 strict/warnings (except check_zone.cgi which has an undefined $dom) 2016-05-30 00:56:40 -07:00
Joe Cooper
29d607ad22 strict/warn for cgi_args.pl 2016-05-29 23:20:02 -07:00
Joe Cooper
c207f75647 strict/warn for backu_config.pl 2016-05-29 23:17:22 -07:00
Joe Cooper
2620e2cf4a warn/strict for acl_security.pl 2016-05-29 23:13:08 -07:00
Joe Cooper
d0d5806957 Maybe fix $dom issue (made it $d), etc. 2016-05-29 20:32:26 -07:00
Joe Cooper
cd904e9a73 Fix a variable that got borked during merge, I guess 2016-05-29 20:25:41 -07:00
Joe Cooper
2d3c81075d Merge remote-tracking branch 'upstream/master' 2016-05-29 20:23:58 -07:00
Joe Cooper
f3a5631c04 strict and warnings for records-lib.pl
Also make Perl Critic happy, except for return undefs.
2016-05-29 20:07:01 -07:00
Jamie Cameron
a6b71554c5 Pass all params to login script 2016-05-29 16:00:26 -07:00
Jamie Cameron
f219c7eb2f view isn't set or needed https://github.com/webmin/webmin/issues/364 2016-05-29 15:18:58 -07:00
Jamie Cameron
fc41316071 Record logins in webmin actions log by default 2016-05-29 13:28:43 -07:00
Jamie Cameron
bdd0b819d5 Fix perl warning 2016-05-29 11:35:47 -07:00
Jamie Cameron
5afb921074 Fix perl warning 2016-05-29 11:31:52 -07:00
Jamie Cameron
98677fd304 PostgreSQL 9.5 drops the can-create-user permission https://github.com/webmin/webmin/issues/359 2016-05-29 11:09:46 -07:00
Jamie Cameron
5a994bd40a Fix incorrect variable name https://github.com/webmin/webmin/issues/361 2016-05-29 07:38:36 -07:00
Joe Cooper
13f01b3f9e strict and warnings compliant. Tighten up scope, fix a few undefined
variable issues.
2016-05-29 02:56:17 -07:00
Jamie Cameron
c222dac785 preserve password on clone 2016-05-27 17:50:40 -07:00
Jamie Cameron
b1d471fac4 --force-yes is deprecated, and apparently dangerour 2016-05-27 15:08:57 -07:00
Jamie Cameron
c7554ac611 Only treat undef as null 2016-05-27 14:52:40 -07:00
Jamie Cameron
38876ff52e Norwegian update from Stein-Aksel Basma 2016-05-27 14:24:50 -07:00
Jamie Cameron
ba53820a46 Don't disable TLS 1.0 and 1.1 on old openssl versions, as they may not support newer protocols 2016-05-27 14:06:58 -07:00
Jamie Cameron
b828a6b5c6 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-27 10:26:49 -07:00
Jamie Cameron
92a66b5159 Fix more perl warnings https://sourceforge.net/p/webadmin/bugs/4762/ 2016-05-27 09:48:16 -07:00
Jamie Cameron
e66234b1b3 Merge branch 'master' of github.com:webmin/webmin 2016-05-27 09:46:39 -07:00
Jamie Cameron
553e436c54 Redirect to edit form when cloning a group 2016-05-27 09:46:26 -07:00
Jamie Cameron
ce3b84b118 German translation updates from Raymond Vetter 2016-05-26 16:19:56 -07:00
Jamie Cameron
c22919849e Handle case where there are no nameservers https://sourceforge.net/p/webadmin/bugs/4761/ 2016-05-26 16:14:30 -07:00
Jamie Cameron
3fe4bc337a Fix text name 2016-05-26 11:33:35 -07:00
Jamie Cameron
320d63ba2a version bump 2016-05-26 10:49:03 -07:00
Jamie Cameron
4d79a24158 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-26 07:44:12 -07:00
Jamie Cameron
a53b6d96ca On some systems, there is no set_tlsext_host_name function 2016-05-26 07:42:22 -07:00
Jamie Cameron
b0c779923f Merge branch 'master' of github.com:webmin/webmin 2016-05-26 01:09:31 +02:00
Jamie Cameron
f32aa17317 More perl strict enforcement 2016-05-26 00:02:59 +02:00
Jamie Cameron
24cca0d258 strict conversion 2016-05-25 23:38:35 +02:00
Jamie Cameron
52af4d489a Button to clone a group 2016-05-25 23:14:00 +02:00
Jamie Cameron
262bbd3e03 Clone user UI 2016-05-25 19:15:40 +02:00
650 changed files with 21383 additions and 4326 deletions

4
README
View File

@@ -1,4 +1,4 @@
Webmin Version 1.800
Webmin Version 1.830
--------------------
Webmin is a web-based interface for system administration for Unix.
Using any browser that supports tables and forms, you can setup user
@@ -49,6 +49,8 @@ commmand, the sc.exe command and the Win32::Daemon Perl module.
For more information, see http://www.webmin.com/
For documentation, see http://doxfer.webmin.com/
Jamie Cameron
jcameron@webmin.com

View File

@@ -27,7 +27,7 @@ push(@EXPORT, qw(&unique));
push(@EXPORT, qw($config_directory $var_directory $remote_error_handler %month_to_number_map %number_to_month_map $webmin_feedback_address $default_lang $default_charset $module_index_name $module_index_link %in $in @in $progress_callback_prefix $progress_callback_url $wait_for_debug $wait_for_input @matches $theme_no_table $webmin_logfile $pragma_no_cache));
# Functions defined in themes
push(@EXPORT, qw(&theme_post_save_domain &theme_post_save_domains &theme_post_save_server &theme_select_server &theme_select_domain &theme_post_save_folder &theme_post_change_modules &theme_address_button &theme_virtualmin_ui_rating_selector &theme_virtualmin_ui_show_cron_time &theme_virtualmin_ui_parse_cron_time &theme_virtualmin_ui_html_editor_bodytags &theme_virtualmin_ui_show_html_editor));
push(@EXPORT, qw(&theme_post_save_domain &theme_post_save_domains &theme_post_save_server &theme_select_server &theme_select_domain &theme_post_save_folder &theme_post_change_modules &theme_address_button &theme_virtualmin_ui_rating_selector &theme_virtualmin_ui_show_cron_time &theme_virtualmin_ui_parse_cron_time &theme_virtualmin_ui_html_editor_bodytags &theme_virtualmin_ui_show_html_editor &theme_post_change_theme &theme_pre_change_theme));
$called_from_webmin_core = 1;
do "web-lib.pl";

View File

@@ -1,4 +1,3 @@
ssleay=/usr/bin/openssl
select=0
order=0
display=1

View File

@@ -1,4 +1,3 @@
ssleay=/usr/bin/openssl
select=0
order=0
display=1

View File

@@ -1,4 +1,3 @@
ssleay=/usr/bin/openssl
select=0
order=0
display=1

View File

@@ -1,4 +1,3 @@
ssleay=/usr/bin/openssl
select=0
order=0
display=1

View File

@@ -1,4 +1,3 @@
ssleay=/usr/bin/openssl
select=0
order=0
display=1

View File

@@ -1,4 +1,3 @@
ssleay=/usr/sfw/bin/openssl
select=0
order=0
display=1

View File

@@ -1,6 +1,5 @@
line1=Configurable options,11
display=User and group display mode,1,1-Names only,0-Names and modules
select=Display user modules in,1,0-Table,1-Pulldown menu
order=Sort users and groups by,1,0-Order in file,1-Name
line2=System configuration,11
ssleay=Path to openssl or ssleay program,3,Automatic

View File

@@ -1,5 +1,4 @@
line1=Конфигурационни опции,11
select=Показвай юзерските модули в,1,0-таблица,1-Падащо меню
order=Подреди юзери и групи по,1,0-подредба във файл,1-име
line2=Системна конфигурация,11
ssleay=Път към openssl или ssleay програма,0

View File

@@ -1,6 +1,5 @@
line1=Opcions configurables,11
display=Forma de mostrar els usuaris i els grups,1,1-Només els noms,0-Noms i mòduls
select=Mostra els mòduls d'usuaris amb,1,0-Taula,1-Menú desplegable
order=Ordena els usuaris i grups per,1,0-L'ordre del fitxer,1-El nom
line2=Configuració del sistema,11
ssleay=Camí del programa <tt>openssl</tt> o <tt>ssleay</tt>,3,Automàtic

View File

@@ -1,6 +1,5 @@
line1=Možnosti konfigurace,11
display=Mód pro zobrazení uživatele a skupiny,1,1-Pouze jména,0-Jména a moduly
select=Zobrazit moduly uživatele v,1,0-tabulce,1-rozbalovací nabídce
order=Třídit uživatele a skupiny podle,1,0-pořadí v souboru,1-jména
line2=Konfigurace systému,11
ssleay=Cesta k programu openssl nebo ssleay,0

View File

@@ -1,6 +1,5 @@
line1=Konfigurerbare indstillinger,11
display=Bruger og gruppe visnings mode,1,1-Kun navne,0-Navne og moduler
select=Vis brugermoduler i,1.0-Tabel,1-Pulldown menu
order=Sorter brugere og grupper ved,1.0-Sortering i fil,1-Navn
line2=Systemkonfiguration,11
ssleay=Sti til openssl eller ssleay progarm,3,Automatisk

View File

@@ -1,6 +1,5 @@
line1=Konfigurierbare Optionen,11
display=Benutzer- und Gruppenanzeige,1,1-Nur Namen,0-Namen und Module
select=Zeige Benutzermodule als,1,0-Tabelle,1-Auswahlliste
order=Sortiere Benutzer und Gruppen nach,1,0-Reihenfolge in Datei,1-Name
line2=Systemkonfiguration,11
ssleay=Pfad zu <tt>openssl</tt> oder <tt>ssleay</tt>,3,Automatisch

View File

@@ -1,6 +1,5 @@
line1=Opciones Configurables,11
display=Modo de mostrar usuario y grupo,1,1-S&#243;lo nombres,0-Nombres y m&#243;dulos
select=Mostrar m&#243;dulos de usuario en,1,0-Tabla,1-Men&#250; desplegable
order=Clasificar usuarios y grupos por,1,0-Orden en archivo,1-Nombre
line2=Configuraci&#243;n de Sistema,11
ssleay=Trayectoria al programa openssl o ssleay,0

View File

@@ -1,6 +1,5 @@
line1=Konfiguragarri diren aukerak, 11
display=Erabiltzaile eta taldea erakusteko modua, 1,1-Izenak soilik, 0-Izenak eta moduluak
select=Erabiltzaile moduluak erakutsi,1,0-Taulan, 1-
Display user modules in,1,0-Table,1-Pulldown menu
order=Ordenatu erabiltzaile eta taldeak,1,0-Fitxategian ordenatu,1-Izena
line2=Sistemaren konfigurazioa,11

View File

@@ -1,7 +1,6 @@
line1=گزينه‌هاي پيکربندي,11
display=حالت نمايش کاربران و گروه‌ها,1,1-فقط نامها,0-نامها و پيمانه‌ها
select=نمايش پيمانه‌هاي کاربر در,1,0-جدول,1-گزينگان پايين بر
order=مرتب سازي کاربران و گروه‌ها براساس,1,0-ترتيب در پرونده,1-نام
line2=پيکربندي سيستم,11
ssleay=مسير براي openssl يا برنامه ssleay,3,خودکار

View File

@@ -1,6 +1,5 @@
line1=Options configurables,11
display=Mode d'affichage des utilisateurs et des groupes,1,1-Noms seulement,0-Noms et modules
select=Afficher les modules utilisateur par,1,0-Table,1-Menu d&#233;roulant
order=Trier les utilisateurs et les groupes par,1,0-Ordre dans le fichier,1-Nom
line2=Configuration du syst&#232;me,11
ssleay=Chemin d'acc&#232;s au programme openssl ou ssleay,3,Automatique

View File

@@ -1,6 +1,5 @@
line1=Konfigurálható beállítások,11
display=Felhasználó és csoport megjelenítési mód,1,1-Csak a neveket,0-Neveket és modulokat
select=A modulok megjelenítsi módja,1,0-Táblázat,1-Menü
order=Felhasználók és csoportok rendezése,1,0-A fájl rendezése szerint,1-Név szerint
line2=Rendszer konfiguráció,11
ssleay=Az <code>openssl</code> vagy <code>ssleay</code> program teljes elérési útja,0

View File

@@ -1,6 +1,5 @@
line1=Opzioni configurabili,11
display=Modalit&#224; di visualizzazione di utenti e gruppi,1,1-Solo i nomi,0-Nomi e moduli
select=Mostra i moduli utente in,1,0-una tabella,1-un menu a tendina
order=Ordina gli utenti e i gruppi per,1,0-Ordine nel file,1-Nome
line2=Configurazione di sistema,11
ssleay=Percorso al programma openssl o ssleay,3,Automatico

View File

@@ -1,6 +1,5 @@
line1=設定可能なオプション,11
display=ユーザとグループの表示モード,1,1-名前のみ,0-名前とモジュール
select=ユーザモジュールの表示方法,1,0-表,1-プルダウンメニュー
order=ユーザとグループのソート順,1,0-ファイル順,1-名前順
line2=システム設定,11
ssleay=opensslプログラムまたはssleayプログラムのパス,3,自動

View File

@@ -1,6 +1,5 @@
line1=가능한 옵션,11
display=유저와 그룹 출력 모드,1,1-이름만,0-이름과 모듈
select=유저 모듈 출력,1,0-테이블,1-풀다운 메뉴
order=유저와 그룹 정렬,1,0-파일 순,1-이름
line2=시스템 설정,11
ssleay=openssl 또는 ssleay 파일 경로,3,Automatic

View File

@@ -1,6 +1,5 @@
line1=Pilihan konfigurasi,11
display=Mod paparan pengguna dan grup,1,1-Nama sahaja,0-Nama dan modul
select=Paparkan modul pengguna dalam,1,0-Jadual,1-Menu pull-down
order=Tapis pengguna dan grup dengan,1,0-Urutan dalam fail,1-Nama
line2=Konfigurasi sistem,11
ssleay=Lokasi program openssl atau ssleay,3,Automatik

View File

@@ -1,6 +1,5 @@
line1=Instelbare opties,11
display=Gebruiker en groep weergave instelling,1,1-Alleen Namen,0-Namen en modules
select=Geef gebruiker modules weer in,1,0-Tabel,1-Pulldown menu
order=Sorteer gebruikers en groepen op,1,0-Volgorde in bestand,1-Naam
line2=Systeem configuratie,11
ssleay=Pad naar openssl of ssleay programma,3,Automatisch

View File

@@ -1,6 +1,5 @@
line1=Konfigurerbare innstillinger,11
display=Visningsmodus for bruker og gruppe,1,1-Bare navn,0-Navn og moduler
select=Vis brukermoduler i,1,0-Tabell,1-Nedtrekksmeny
order=Sorter brukere og grupper etter,1,0-Rekkef&#248;lge i filen,1-Navn
line2=System konfigurasjon,11
ssleay=Stien til openssl eller ssleay program,0

View File

@@ -1,6 +1,5 @@
line1=Opcje konfiguracyjne,11
display=Tryb wyświetlania użytkowników i grup,1,1-Tylko nazwy,0-Nazwy i moduły
select=Wyświetl moduły użytkownika w,1,0-Tabeli,1-Rozwijanym menu
order=Porządkuj użytkowników i grupy wg,1,0-Kolejności w zbiorze,1-Nazwy
line2=Konfiguracja systemu,11
ssleay=Ścieżka do programu openssl lub ssleay,0

View File

@@ -1,5 +1,4 @@
line1=Op&#231;&#245;es configur&#225;veis,11
select=Exibir m&#243;dulos de usu&#225;rios em,1,0-Tabela,1-Menus
order=Ordenar usu&#225;rios e grupos por,1,0-Ordem no arquivo,1-Nome
line2=Configura&#231;&#227;o do sistema,11
ssleay=Caminho para o programa openssl ou ssleay,0

View File

@@ -1,4 +1,3 @@
select=Показывать модули пользователя в виде,1,0-Таблицы,1-Выпадающего меню
ssleay=Путь к программе openssl или ssleay,0
order=Упорядочивать пользователей и группы по,1,0-Очередности в файле,1-Имени
line1=Настраиваемые параметры,11

View File

@@ -1,6 +1,5 @@
line1=Настраиваемые параметры,11
display=Режим отображения пользователей и групп,1,1-Только имена,0-Имена и модули
select=Показывать модули пользователя в виде,1,0-Таблицы,1-Выпадающего меню
order=Упорядочивать пользователей и группы по,1,0-Очередности в файле,1-Имени
line2=Системные параметры,11
ssleay=Путь к программе openssl или ssleay,0

View File

@@ -1,6 +1,5 @@
line1=Nastaviteľné možnosti,11
display=Spôsob zobrazenia užívateľov a skupín,1,1-Iba mená,0-Mená a moduly
select=Zobraz užívateľské moduly v ,1,0-Tabuľke,1-Rozbaľovacom menu
order=Zoraď užívateľov a skupiny podľa,1,0-Poradia v súbore,1-Mena
line2=Nastavenie Systému,11
ssleay=Cesta k programu openssl alebo ssleay,3,Automatická

View File

@@ -1,2 +1 @@
ssleay=S&#246;kv&#228;g till openssl- eller ssleay-program,0
select=Visa moduler i,1,0-Tabell,1-Rullgardinsmeny

View File

@@ -1,6 +1,5 @@
line1=Yapılandırılabilir seçenekler,11
display=Kullanıcı ve grup görüntüleme biçimi,1,1-Sadece isim,0-İsim ve modüller
select=Kullanıcı modüllerini bu şekilde görüntüle,1,0-Tablo,1-Menü
order=Kullanıcı ve grupları bu şekilde sırala,1,0-Dosyadaki sırası ile,1-İsim ile
line2=Sistem yapılandırması,11
ssleay=Openssl ya da ssleay programı yolu,3,Otomatik

View File

@@ -1,4 +1,3 @@
select=Показувати модулі користувача у виді,1,0-таблиці, що1-випадає меню
ssleay=Шлях до програми openssl чи ssleay,0
order=Упорядковувати користувачів і групи по,1,0-черговості у файлі,1-імені
line1= параметри, ЩоНабудовуються,11

View File

@@ -1,2 +1 @@
ssleay=Openssl 或者 Ssleay 程序的路径,0
select=显示用户模块以,1,0-Table,1-Pulldown 菜单

View File

@@ -1,5 +1,4 @@
line1=組態選項,11
select=顯示使用者模組在,1,0-表格,1-下拉選單
order=排序使用者和全組 依,1,0-檔案內位置,1-名稱
line2=系統組態,11
ssleay=openssl或ssleay程式路徑,0

View File

@@ -28,7 +28,8 @@ if ($in{'joingroup'}) {
foreach my $user (@d) {
my $uinfo = &get_user($user);
next if (!$uinfo);
next if (&indexof($user, @{$newgroup->{'members'}}) >= 0);
next if ($newgroup &&
&indexof($user, @{$newgroup->{'members'}}) >= 0);
# Remove from old group, if any
my $oldgroup = &get_users_group($user);

View File

@@ -73,11 +73,9 @@ else {
# Show usernames and modules
print &ui_subheading($text{'index_users'});
my @rowlinks = ( );
if (!$config{'select'}) {
print &ui_form_start("delete_users.cgi", "post");
push(@rowlinks, &select_all_link("d", $form),
&select_invert_link("d", $form));
}
print &ui_form_start("delete_users.cgi", "post");
push(@rowlinks, &select_all_link("d", $form),
&select_invert_link("d", $form));
push(@rowlinks, ui_link("edit_user.cgi", $text{'index_create'}))
if ($access{'create'});
print &ui_links_row(\@rowlinks);
@@ -104,10 +102,8 @@ else {
}
print &ui_columns_end();
print &ui_links_row(\@rowlinks);
if (!$config{'select'}) {
print &ui_form_end([ [ "delete", $text{'index_delete'} ],
@gbut ]);
}
print &ui_form_end([ [ "delete", $text{'index_delete'} ],
@gbut ]);
$shown_users = 1;
$form++;
}
@@ -136,11 +132,9 @@ if ($access{'groups'}) {
else {
# Show table of groups
my @rowlinks = ( );
if (!$config{'select'}) {
print &ui_form_start("delete_groups.cgi", "post");
push(@rowlinks, &select_all_link("d", $form),
&select_invert_link("d", $form));
}
print &ui_form_start("delete_groups.cgi", "post");
push(@rowlinks, &select_all_link("d", $form),
&select_invert_link("d", $form));
push(@rowlinks,
ui_link("edit_group.cgi", $text{'index_gcreate'}));
print &ui_links_row(\@rowlinks);
@@ -168,9 +162,7 @@ if ($access{'groups'}) {
}
print &ui_columns_end();
print &ui_links_row(\@rowlinks);
if (!$config{'select'}) {
print &ui_form_end([ [ "delete", $text{'index_delete'} ] ]);
}
print &ui_form_end([ [ "delete", $text{'index_delete'} ] ]);
$form++;
}
}
@@ -235,44 +227,22 @@ sub show_modules
my ($type, $who, $mods, $global, $prefix) = @_;
$mods ||= [ ];
my $rv;
if ($config{'select'}) {
# Show as drop-down menu
$rv .= &ui_form_start("edit_acl.cgi");
$rv .= $prefix."<br>\n" if ($prefix);
if (@$mods) {
$rv .= &ui_hidden($type, $who);
if ($access{'acl'}) {
$rv .= &ui_submit($text{'index_edit'});
$rv .= $prefix."<br>\n" if ($prefix);
my @grid;
foreach my $m (sort { $modname{$a} cmp $modname{$b} } @$mods) {
if ($modname{$m}) {
if ($mcan{$m} && $access{'acl'}) {
push(@grid, ui_link("edit_acl.cgi?mod=" .
&urlize($m)."&$type=".&urlize($who),
$modname{$m}));
}
my @opts;
foreach my $m (sort { $modname{$a} cmp $modname{$b} } @$mods) {
if ($modname{$m}) {
push(@opts, [ $m, $modname{$m} ]);
}
}
$rv .= &ui_select("mod", undef, \@opts);
}
$rv .= &ui_form_end();
}
else {
# Show as table
$rv .= $prefix."<br>\n" if ($prefix);
my @grid;
foreach my $m (sort { $modname{$a} cmp $modname{$b} } @$mods) {
if ($modname{$m}) {
if ($mcan{$m} && $access{'acl'}) {
push(@grid, ui_link("edit_acl.cgi?mod=" .
&urlize($m)."&$type=".&urlize($who),
$modname{$m}));
}
else {
push(@grid, $modname{$m});
}
else {
push(@grid, $modname{$m});
}
}
$rv .= &ui_grid_table(\@grid, 3, 100,
[ "width=33%", "width=33%", "width=33%" ]);
}
$rv .= &ui_grid_table(\@grid, 3, 100,
[ "width=33%", "width=33%", "width=33%" ]);
return $rv;
}
@@ -298,7 +268,7 @@ sub user_link
{
my $lck = $_[0]->{'pass'} =~ /^\!/ ? 1 : 0;
my $ro = $_[0]->{'readonly'};
return ($config{'select'} ? "" : &ui_checkbox("d", $_[0]->{'name'}, "", 0)).
return &ui_checkbox("d", $_[0]->{'name'}, "", 0).
($lck ? "<i>" : "").
($ro ? "<b>" : "").
ui_link("$_[1]?$_[2]=".&urlize($_[0]->{'name'}),

View File

@@ -146,6 +146,7 @@ delete_err=No s'ha pogut suprimir l'usuari
delete_eself=No et pots esborrar a tu mateix
delete_ecannot=No tens permís per suprimir usuaris
delete_euser=No tens permís per suprimir aquest usuari
delete_eanonuser=Aquest usuari s'està utilitzant per a l'accés del mòdul anònim
cert_title=Petició de Certificat
cert_issue=Emissió de Certificat
@@ -337,12 +338,20 @@ unix_header=Par
unix_utable=Usuaris Unix permesos
sessions_title=Sessions d'Entrada Actuals
sessions_desc=Les sessions d'entrada actuals de Webmin es llisten a sota. Per cancel·lar una sessió existent i forçar l'usuari a tornar a entrar, fes clic sobre l'ID de la sessió.
sessions_id=ID de sessió
sessions_user=Usuari Webmin
sessions_login=Ha entrat a
sessions_host=Adreça IP
sessions_lview=Visualitza els registres...
sessions_actions=Accions...
sessions_logouts=Mostra també les sessións desconnectades...
sessions_state=Estat
sessions_this=Aquesta entrada
sessions_in=Connectat
sessions_out=Desconnectat
sessions_kill=Desconnecta...
logins_title=Entrades recents a Webmin
hide_title=Amaga els Mòduls No Utilitzats
hide_desc=Els mòduls següents es trauran de la llista d'accés de mòduls de $1, ja que els seus corresponents servidors no estan instal·lats al sistema...

View File

@@ -59,7 +59,7 @@ cert_header=Details des neuen Zertifikats
cert_install=Installiere Ihr Zertifikat in den Browser
cert_issue=Zertifikat ausstellen
cert_key=Schl&#252;sselgr&#246;&#223;e
cert_msg=Hier k&#246;nnen Sie ein SSL-Client-Zertifikat zu beantragen, das Ihnen in Zukunft ohne Eingabe von Benutzername und Kennwort einen sicheren Zugriff auf Webmin gestattet. Da jedoch diese Authentifizierung automatisch geschieht ist es nicht m&#246;glich zu einem anderen Benutzer zu wechseln.
cert_msg=Hier k&#246;nnen Sie ein SSL-Client-Zertifikat zu beantragen, das Ihnen in Zukunft ohne Eingabe von Benutzername und Kennwort einen sicheren Zugriff auf Webmin gestattet. Da jedoch diese Authentifizierung automatisch geschieht, ist es nicht m&#246;glich zu einem anderen Benutzer zu wechseln.
cert_o=Organisation
cert_ou=Abteilung
cert_pickup=<a href='$1'>Klicken Sie hier, um Ihr Zertifikat aufzunehmen und es in Ihrem Browser zu installieren.</a>
@@ -137,7 +137,7 @@ edit_minsize=Minimale Passwortl&#228;nge
edit_mods=Verf&#252;gbare Webminmodule
edit_modsg=Verf&#252;gbare Webminmodule (zus&#228;tzlich zu Modulen der Gruppe)
edit_modules=Module
edit_nochange=Forciere Passwort&#228;nderungstage
edit_nochange=Forciere Passwort&#228;nderungstage?
edit_none=Keine
edit_notabs=Module in Kategorien aufteilen?
edit_overlay=Personal theme overlay
@@ -156,7 +156,7 @@ edit_proto_postgresql=PostgreSQL Datenbank
edit_rbacdeny=RBAC-Zugriffsmodus
edit_rbacdeny0=RBAC kontrolliert nur ausgew&#228;hlte Modul-ACLs
edit_rbacdeny1=RBAC kontrolliert alle Module und ACLs
edit_readonly=Dieser Webminbenutzer sollte &#252;ber das $1 Modul bearbeitet werden. <a href='$2'>Klicken Sie hier</a>, um diese Warnung zu &#252;bergehen und um den Benutzer dennoch zu bearbeiten. Es kann jedoch sein, da&#223; hier vorgenommene &#196;nderungen durch das $1 Modul &#252;berschrieben werden.
edit_readonly=Dieser Webminbenutzer sollte &#252;ber das $1 Modul bearbeitet werden. <a href='$2'>Klicken Sie hier</a>, um diese Warnung zu &#252;bergehen und um den Benutzer dennoch zu bearbeiten. Es kann jedoch sein, dass hier vorgenommene &#196;nderungen durch das $1 Modul &#252;berschrieben werden!
edit_real=Echter Name
edit_return=Webminbenutzer
edit_return2=Webmingruppe
@@ -188,7 +188,7 @@ edit_twofactorprov=Benutze Provider $1 mit ID $2
edit_ui=Optionen des Benutzerinterfaces
edit_unix=Unix-Authentifizierung
edit_user=Benutzername
gdelete_desc=Sind Sie sicher, da&#223; Sie die Gruppe $1 und Benutzer $2 l&#246;schen wollen?
gdelete_desc=Sind Sie sicher, dass Sie die Gruppe $1 und Benutzer $2 l&#246;schen wollen?
gdelete_ecannot=Sie sind nicht berechtigt Gruppen zu l&#246;schen
gdelete_err=Fehler beim L&#246;schen einer Gruppe
gdelete_esub=Gruppen, die Untergruppen enthalten, k&#246;nnen nicht gel&#246;scht werden
@@ -197,7 +197,7 @@ gdelete_ok=Gruppe l&#246;schen
gdelete_title=Gruppe l&#246;schen
gdeletes_err=Konnte Gruppen nicht l&#246;schen
gdeletes_ok=Gruppe l&#246;schen
gdeletes_rusure=Sind Sie sicher, da&#223; Sie die $1 ausgew&#228;hlten Gruppen, inklusive der darin enthaltenen $2 Benutzer, l&#246;schen m&#246;chten? S&#228;mtliche Benutzer- und zugeh&#246;rige Sicherheitseinstellungen gehen definitiv und nicht wiederherstellbar verloren.
gdeletes_rusure=Sind Sie sicher, dass Sie die $1 ausgew&#228;hlten Gruppen, inklusive der darin enthaltenen $2 Benutzer, l&#246;schen m&#246;chten? S&#228;mtliche Benutzer- und zugeh&#246;rige Sicherheitseinstellungen gehen definitiv und nicht wiederherstellbar verloren.
gdeletes_title=Gruppe l&#246;schen
gdeletes_users=Ausgew&#228;hlte Gruppen: $1
gedit_desc=Gruppenbeschreibung
@@ -216,7 +216,7 @@ gsave_enamewebmin=Der Gruppenname 'webmin' ist f&#252;r interne Zwecke reservier
gsave_err=Fehler beim Speichern der Gruppe
hide_clone=(Klone $1)
hide_desc=Das folgende Modul wird von der Zugriffskontrollliste f&#252;r $1 entfernt, da die entsprechenden Server nicht auf Ihrem System installiert sind.
hide_desc2=Bedenken Sie, da&#223; dieses Modul nicht automatisch sichtbar wird, wenn der entsprechende Server nachtr&#228;glich installiert wird. Sie m&#252;ssen den Zugriff &#252;ber dieses Modul erneut einrichten.
hide_desc2=Bedenken Sie, dass dieses Modul nicht automatisch sichtbar wird, wenn der entsprechende Server nachtr&#228;glich installiert wird. Sie m&#252;ssen den Zugriff &#252;ber dieses Modul erneut einrichten.
hide_none=Nichts zu verbergen - $1 hat keinen Zugriff zu irgendeinem Modul dessen entsprechender Server nicht auf Ihrem System installiert ist.
hide_ok=Verberge Module jetzt
hide_title=Verberge nicht benutzte Module
@@ -431,7 +431,7 @@ udeletes_ereadonly=Einer der ausgew&#228;hlten Benutzer ist als nicht bearbeitba
udeletes_err=Konnte Benutzer nicht l&#246;schen
udeletes_jerr=Fehler beim Nutzer zu Gruppe hinzuf&#252;gen
udeletes_ok=Benutzer l&#246;schen
udeletes_rusure=Sind Sie sicher, da&#223; Sie die $1 ausgew&#228;hlten Benutzer l&#246;schen m&#246;chten? S&#228;mtliche Benutzer- und zugeh&#246;rige Sicherheitseinstellungen gehen definitiv und nicht wiederherstellbar verloren.
udeletes_rusure=Sind Sie sicher, dass Sie die $1 ausgew&#228;hlten Benutzer l&#246;schen m&#246;chten? S&#228;mtliche Benutzer- und zugeh&#246;rige Sicherheitseinstellungen gehen definitiv und nicht wiederherstellbar verloren.
udeletes_title=Benutzer l&#246;schen
udeletes_users=Ausgew&#228;hlte Benutzer: $1
unix_all=Erlaube alle Unixbenutzer

View File

@@ -271,6 +271,7 @@ log_switch=Byttet til Webmin bruker $1
log_sync=Endret unix bruker-synkronisering
log_twofactor=Meldte inn bruker $1 til to-faktor autentisering
log_unix=Endret unix bruker-autentisering
logins_title=Siste Webmin innlogginger
make_done=.. ferdig
make_err=Kunne ikke opprette bruker- og gruppe-tabeller
make_exec=Utf&#248;rer SQL $1 ..
@@ -343,11 +344,17 @@ save_euser=Du har ikke tilgang til &#229; editere denne brukeren
schema_desc=F&#248;r Webmin kan bruke en LDAP tjener for lagring av brukere og grupper m&#229; den konfigureres til &#229; bruke skjemaet nedenfor. Dette kan typeisk gj&#248;res ved &#229; lagre skjemadefinisjonen i tt>/etc/ldap/schema</tt> eller <tt>/etc/openldap/schema</tt> som <tt>webmin.schema</tt>, og s&#229; konfigurere tjeneren ti l&#229; laste den skjemafilen.
schema_download=Last ned skjema-fil : <a href=$1>$1</a>
schema_title=Last ned LDAP skjema
sessions_desc=Aktuelle Webmin sesjon logins er listet under. For &#229; kansellere en eksisterende sesjon og tvinge brukeren til &#229; logge inn igjen, klikk p&#229; brukerens sesjon ID.
sessions_actions=Handlinger..
sessions_host=IP adresse
sessions_id=Sessions ID
sessions_login=Logget in p&#229;
sessions_in=Innlogget
sessions_kill=Koble fra..
sessions_login=Innlogget
sessions_logouts=Vis ogs&#229; utloggede sesjoner..
sessions_lview=Se logger..
sessions_out=Logget ut
sessions_state=Tilstand
sessions_this=Denne innloggingen
sessions_title=Aktuell Login Session
sessions_user=Webmin bruker
sql_addto0=Legg til nye brukere i databasen valgt ovenfor

View File

@@ -31,7 +31,7 @@ print &ui_columns_start([ $text{'sessions_id'},
], 100);
foreach my $k (sort { my @a = split(/\s+/, $sessiondb{$a});
my @b = split(/\s+/, $sessiondb{$b}); $b[1] <=> $a[1] }
keys %sessiondb) {
(grep { $sessiondb{$_} } keys %sessiondb)) {
next if ($k =~ /^1111111/);
my ($user, $ltime, $lip) = split(/\s+/, $sessiondb{$k});
next if ($user =~ /^\!/ && !$in{'logouts'});

View File

@@ -41,3 +41,4 @@ desc_ms_MY=Pengguna Webmin
longdesc_de=Erstellt Webmin-Benutzer und konfiguriert, auf welche Module und Funktionen diese berechtigt sind, zugreifen.
longdesc_es=Crear usuarios de webmin y configurar a que modulos y caracteristicas pueden acceder.
longdesc_pl=Twórz u¿ytkowników Webmina i kontroluj, które modu³y i funkcje s± dla nich dostêpne.
longdesc_ca=Crea usuaris Webmin i configura quins mòduls i característiques tenen permès d'accedir.

View File

@@ -16,6 +16,7 @@ my %miniserv;
my @logins;
foreach my $k (keys %sessiondb) {
next if ($k =~ /^1111111/);
next if (!$sessiondb{$k});
my ($user, $ltime, $lip) = split(/\s+/, $sessiondb{$k});
next if ($user ne $remote_user && $user ne "!".$remote_user);
push(@logins, [ $user, $ltime, $lip, $k ]);

View File

@@ -25,3 +25,4 @@ desc_no=ADSL klient
longdesc_ms_MY=Sediakan klien PPP dengan pakej RP-PPPoE.
desc_ms_MY=Klien ADSL
longdesc_pl=Konfigurowanie klienta PPTP z pakietem RP-PPPoE.
longdesc_ca=Configura un client PPP amb el paquet RP-PPPoE.

View File

@@ -1,24 +1,31 @@
#!/usr/local/bin/perl
# Start the Ajaxterm webserver on a random port, then print an iframe for
# a URL that proxies to it
use strict;
use warnings;
BEGIN { push(@INC, ".."); };
use WebminCore;
use Socket;
our(%text, %config, %gconfig);
our $module_root_directory;
our $module_name;
&init_config();
&ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1);
# Check for python
$python = &has_command("python");
my $python = &has_command("python");
if (!$python) {
&ui_print_endpage(&text('index_epython', "<tt>python</tt>"));
}
# Pick a free port
my %miniserv;
&get_miniserv_config(\%miniserv);
$port = $miniserv{'port'} + 1;
$proto = getprotobyname('tcp');
my $port = $miniserv{'port'} + 1;
my $proto = getprotobyname('tcp');
socket(TEST, PF_INET, SOCK_STREAM, $proto) ||
&error("Socket failed : $!");
setsockopt(TEST, SOL_SOCKET, SO_REUSEADDR, pack("l", 1));
@@ -29,17 +36,17 @@ while(1) {
close(TEST);
# Run the Ajaxterm webserver
$pid = fork();
my $pid = fork();
if (!$pid) {
chdir("$module_root_directory/ajaxterm");
$logfile = $ENV{'WEBMIN_VAR'}.'/ajaxterm.log';
untie(*STDIN); open(STDIN, "</dev/null");
untie(*STDOUT); open(STDOUT, ">$logfile");
untie(*STDERR); open(STDERR, ">$logfile");
$shell = &has_command("bash") ||
my $logfile = $ENV{'WEBMIN_VAR'}.'/ajaxterm.log';
untie(*STDIN); open(STDIN, "<", "/dev/null");
untie(*STDOUT); open(STDOUT, ">", $logfile);
untie(*STDERR); open(STDERR, ">", $logfile);
my $shell = &has_command("bash") ||
&has_command("sh") || "/bin/sh";
@uinfo = getpwnam("root");
$home = $uinfo[7] || "/";
my @uinfo = getpwnam("root");
my $home = $uinfo[7] || "/";
$shell = "$shell -c ".quotemeta("cd '$home' ; exec $shell");
exec($python, "ajaxterm.py", "--port", $port, "--log",
$config{'autologin'} ? ("--command", $shell) : ( ));
@@ -47,7 +54,9 @@ if (!$pid) {
}
# Wait for it to come up
$try = 0;
my $try = 0;
no strict "subs"; # TEST2 is weird. I dunno how to make it lexical without breaking.
no warnings;
while(1) {
my $err;
&open_socket("localhost", $port, TEST2, \$err);
@@ -59,6 +68,8 @@ while(1) {
sleep(1);
}
close(TEST2);
use strict "subs";
use warnings;
# Show the iframe
print "<center>\n";
@@ -74,7 +85,7 @@ if (!fork()) {
untie(*STDIN); close(STDIN);
untie(*STDOUT); close(STDOUT);
untie(*STDERR); close(STDERR);
$statfile = "$ENV{'WEBMIN_VAR'}/ajaxterm/$port";
my $statfile = "$ENV{'WEBMIN_VAR'}/ajaxterm/$port";
while(1) {
my @st = stat($statfile);
if (@st && time() - $st[9] > $config{'timeout'}) {

View File

@@ -9,3 +9,4 @@ desc_hu=Shell hozz
desc_ms_MY=Log masuk Teks
longdesc_ms_MY=Akses shell pada sistem anda tanpa menggunakan klien SSH secara berasingan dengan menggunaka Ajaxterm
longdesc_pl=Dostêp do pow³oki systemowej bez konieczno¶ci u¿ywania oddzielnego klienta SSH, u¿ywaj±c Ajaxterm
longdesc_ca=Accedeix a la shell del sistema sense necessitat d'un client SSH separat utilitzant Ajaxterm

View File

@@ -1,5 +1,7 @@
#!/usr/local/bin/perl
# Proxy an Ajaxterm request to the real port
use strict;
use warnings;
BEGIN { push(@INC, ".."); };
use WebminCore;
@@ -11,29 +13,33 @@ use WebminCore;
# Parse out port
$ENV{'PATH_INFO'} =~ /^\/(\d+)(.*)$/ ||
&error("Missing or invalid PATH_INFO");
$port = $1;
$path = $2;
my $port = $1;
my $path = $2;
$| = 1;
$meth = $ENV{'REQUEST_METHOD'};
my $meth = $ENV{'REQUEST_METHOD'};
# Connect to the Ajaxterm server, send HTTP request
$con = &make_http_connection("localhost", $port, 0, $meth, $path);
my $con = &make_http_connection("localhost", $port, 0, $meth, $path);
&error($con) if (!ref($con));
&write_http_connection($con, "Host: localhost\r\n");
&write_http_connection($con, "User-agent: Webmin\r\n");
$cl = $ENV{'CONTENT_LENGTH'};
my $cl = $ENV{'CONTENT_LENGTH'};
&write_http_connection($con, "Content-length: $cl\r\n") if ($cl);
&write_http_connection($con, "Content-type: $ENV{'CONTENT_TYPE'}\r\n")
if ($ENV{'CONTENT_TYPE'});
&write_http_connection($con, "\r\n");
my $post;
if ($cl) {
&read_fully(STDIN, \$post, $cl);
&read_fully(\*STDIN, \$post, $cl);
&write_http_connection($con, $post);
}
# read back the headers
$dummy = &read_http_connection($con);
my $dummy = &read_http_connection($con);
my %header;
my $headers;
while(1) {
my $headline;
($headline = &read_http_connection($con)) =~ s/\r|\n//g;
last if (!$headline);
$headline =~ /^(\S+):\s+(.*)$/ || &error("Bad header");
@@ -43,16 +49,17 @@ while(1) {
print $headers,"\n";
# read back contents
while($buf = &read_http_connection($con, 1024)) {
while(my $buf = &read_http_connection($con, 1024)) {
print $buf;
}
&close_http_connection($con);
# Touch status file to indicate it is still running
$statusdir = $ENV{'WEBMIN_VAR'}."/ajaxterm";
my $statusdir = $ENV{'WEBMIN_VAR'}."/ajaxterm";
if (!-d $statusdir) {
&make_dir($statusdir, 0700);
}
&open_tempfile(TOUCH, ">$statusdir/$port", 0, 1);
&close_tempfile(TOUCH);
my $TOUCH;
&open_tempfile($TOUCH, ">$statusdir/$port", 0, 1);
&close_tempfile($TOUCH);

View File

@@ -10,7 +10,7 @@ $access{'types'} eq '*' && $access{'virts'} eq '*' ||
$conf = &get_config();
@files = grep { -f $_ } &unique(map { $_->{'file'} } @$conf);
$in{'file'} = $files[0] if (!$in{'file'});
$in{'file'} = $files[0] if ($in{'file'} eq '');
print "<form action=allmanual_form.cgi>\n";
print "<input type=submit value='$text{'manual_file'}'>\n";
print "<select name=file>\n";

View File

@@ -676,8 +676,8 @@ elsif (!$olddir && $newdir) {
# Update the line numbers and filenames in a list of directives
sub recursive_set_lines_files
{
local ($dirs, $line, $file) = @_;
foreach my $d (@$dirs) {
my ($dirs, $line, $file) = @_;
foreach my $dir (@$dirs) {
$dir->{'line'} = $line;
$dir->{'file'} = $file;
if ($dir->{'type'}) {
@@ -1393,7 +1393,7 @@ if ($httpd_modules{'core'} >= 1.301) {
}
}
local $out = &backquote_command("$cmd 2>&1");
if ($out && $out !~ /syntax\s+ok/i) {
if ($out && $out !~ /(syntax|Checking).*\s+ok/i) {
return $out;
}
}

View File

@@ -20,7 +20,7 @@ httpd_version=Versi
apachectl_path=Camí de l'ordre apachectl,3,Cap
start_cmd=Ordre per iniciar Apache,3,Utilitza apachectl o inicia manualment
stop_cmd=Ordre per aturar Apache,3,Utilitza apachectl o mata el procés
,restart-Executa les ordres d'inici i aturada.
apply_cmd=Ordre per aplicar la configuració,10,-Utilitza apachectl o senyal HUP,restart-Executa els ordres d'inici i aturada
graceful_cmd=Ordre per rellegir la configuració,3,La mateixa que per aplicar-la
httpd_conf=Camí de httpd.conf o apache2.conf,3,Automàtic
srm_conf=Camí de srm.conf,3,Automàtic

View File

@@ -40,3 +40,4 @@ longdesc_ms_MY=Mengkonfigurasi hampir kesemua arahan Apache dan ciri-ciri yang a
desc_ms_MY=Pelayan Web Apache
longdesc_de=Konfiguriert fast alle Apache-Direktiven und Features.
longdesc_pl=Konfiguracja niemal wszystkich opcji i dyrektyw Apache.
longdesc_ca=Configura gairebé totes les directives característiques d'Apache.

View File

@@ -1,3 +1,6 @@
use strict;
use warnings;
our (%text, %in);
require 'at-lib.pl';

View File

@@ -1,10 +1,14 @@
# at-lib.pl
# Functions for listing and creating at jobs
use strict;
use warnings;
our (%text, %config);
our $remote_user;
BEGIN { push(@INC, ".."); };
use WebminCore;
&init_config();
%access = &get_module_acl();
our %access = &get_module_acl();
do "$config{'at_style'}-lib.pl";
@@ -13,9 +17,9 @@ do "$config{'at_style'}-lib.pl";
# the given width
sub wrap_lines
{
local @rv;
local $w = $_[1];
foreach $rest (split(/\n/, $_[0])) {
my @rv;
my $w = $_[1];
foreach my $rest (split(/\n/, $_[0])) {
if ($rest =~ /\S/) {
while(length($rest) > $w) {
push(@rv, substr($rest, 0, $w));
@@ -34,7 +38,7 @@ return @rv;
# can_edit_user(&access, user)
sub can_edit_user
{
local %umap;
my %umap;
map { $umap{$_}++; } split(/\s+/, $_[0]->{'users'});
if ($_[0]->{'mode'} == 1 && !$umap{$_[1]} ||
$_[0]->{'mode'} == 2 && $umap{$_[1]}) { return 0; }
@@ -50,13 +54,16 @@ else {
# Returns a list of all users in the cron allow file
sub list_allowed
{
local(@rv, $_);
local $_;
my @rv;
no strict "subs";
&open_readfile(ALLOW, $config{allow_file});
while(<ALLOW>) {
next if (/^\s*#/);
chop; push(@rv, $_) if (/\S/);
}
close(ALLOW);
use strict "subs";
return @rv;
}
@@ -65,13 +72,16 @@ return @rv;
# Return a list of users from the cron deny file
sub list_denied
{
local(@rv, $_);
local $_;
my @rv;
no strict "subs";
&open_readfile(DENY, $config{deny_file});
while(<DENY>) {
next if (/^\s*#/);
chop; push(@rv, $_) if (/\S/);
}
close(DENY);
use strict "subs";
return @rv;
}
@@ -83,11 +93,13 @@ sub save_allowed
&lock_file($config{allow_file});
if (@_) {
local($_);
no strict "subs";
&open_tempfile(ALLOW, ">$config{allow_file}");
foreach my $u (@_) {
&print_tempfile(ALLOW, $u,"\n");
}
&close_tempfile(ALLOW);
use strict "subs";
chmod(0444, $config{allow_file});
}
else {
@@ -103,11 +115,13 @@ sub save_denied
{
&lock_file($config{deny_file});
if (@_ || !-r $config{'allow_file'}) {
no strict "subs";
&open_tempfile(DENY, ">$config{deny_file}");
foreach my $u (@_) {
&print_tempfile(DENY, $u,"\n");
}
&close_tempfile(DENY);
use strict "subs";
chmod(0444, $config{deny_file});
}
else {
@@ -121,7 +135,8 @@ else {
# any deny files.
sub can_use_at
{
local ($user) = @_;
my ($user) = @_;
my (@allow, @deny, @denied);
if (!$config{'allow_file'}) {
return 1; # not supported by OS
}

View File

@@ -1,3 +1,6 @@
use strict;
use warnings;
our %config;
do 'at-lib.pl';
@@ -5,9 +8,9 @@ do 'at-lib.pl';
# Returns files and directories that can be backed up
sub backup_config_files
{
local @rv;
opendir(DIR, $config{'at_dir'});
while($f = readdir(DIR)) {
my @rv;
opendir(my $DIR, $config{'at_dir'});
while(my $f = readdir($DIR)) {
next if ($f eq "." || $f eq ".." || $f eq ".SEQ");
if (!-d "$config{'at_dir'}/$f") {
push(@rv, "$config{'at_dir'}/$f");

View File

@@ -1,3 +1,6 @@
use strict;
use warnings;
our %access;
do 'at-lib.pl';

View File

@@ -1,6 +1,9 @@
#!/usr/local/bin/perl
# create_job.cgi
# Create a new at job
use strict;
use warnings;
our (%access, %text, %in);
require './at-lib.pl';
use Time::Local;
@@ -14,6 +17,7 @@ defined(getpwnam($in{'user'})) || &error($text{'create_euser'});
$in{'hour'} =~ /^\d+$/ && $in{'min'} =~ /^\d+$/ &&
$in{'day'} =~ /^\d+$/ && $in{'year'} =~ /^\d+$/ ||
&error($text{'create_edate'});
my $date;
eval { $date = timelocal(0, $in{'min'}, $in{'hour'},
$in{'day'}, $in{'month'}, $in{'year'}-1900) };
$@ && &error($text{'create_edate'});

View File

@@ -1,12 +1,15 @@
#!/usr/local/bin/perl
# Delete or run an at job
use strict;
use warnings;
our (%text, %in);
require './at-lib.pl';
&ReadParse();
&foreign_require("proc", "proc-lib.pl");
@jobs = &list_atjobs();
($job) = grep { $_->{'id'} eq $in{'id'} } @jobs;
my @jobs = &list_atjobs();
my ($job) = grep { $_->{'id'} eq $in{'id'} } @jobs;
$job || &error($text{'delete_egone'});
if ($in{'run'}) {
@@ -14,19 +17,20 @@ if ($in{'run'}) {
&ui_print_header(undef, $text{'run_title'}, "");
# Create temp script for job
$temp = &transname();
&open_tempfile(TEMP, ">$temp");
&print_tempfile(TEMP, $job->{'cmd'});
&close_tempfile(TEMP);
my $temp = &transname();
my $TEMP;
&open_tempfile($TEMP, ">$temp");
&print_tempfile($TEMP, $job->{'cmd'});
&close_tempfile($TEMP);
chmod(0755, $temp);
print "<p>\n";
print &text('run_output'),"<p>\n";
@uinfo = getpwnam($job->{'user'});
my @uinfo = getpwnam($job->{'user'});
print "<pre>";
&additional_log('exec', undef, $job->{'cmd'});
$got = &proc::safe_process_exec($temp, $uinfo[2], $uinfo[3],
STDOUT, undef, 1);
my $got = &proc::safe_process_exec($temp, $uinfo[2], $uinfo[3],
*STDOUT, undef, 1);
if (!$got) { print "<i>$text{'run_none'}</i>\n"; }
unlink($temp);
print "</pre>\n";
@@ -37,7 +41,7 @@ if ($in{'run'}) {
else {
# Just delete the at job
&error_setup($text{'delete_err'});
%access = &get_module_acl();
my %access = &get_module_acl();
&can_edit_user(\%access, $job->{'user'}) || &error($text{'edit_ecannot'});
&delete_atjob($in{'id'});
&webmin_log("delete", "job", $job->{'user'}, $job);

View File

@@ -1,16 +1,19 @@
#!/usr/local/bin/perl
# Delete multiple at jobs
use strict;
use warnings;
our(%access, %text, %in);
require './at-lib.pl';
&ReadParse();
&error_setup($text{'deletes_err'});
@d = split(/\0/, $in{'d'});
my @d = split(/\0/, $in{'d'});
@d || &error($text{'deletes_enone'});
# Delete each one
@jobs = &list_atjobs();
foreach $d (@d) {
($job) = grep { $_->{'id'} eq $d } @jobs;
my @jobs = &list_atjobs();
foreach my $d (@d) {
my ($job) = grep { $_->{'id'} eq $d } @jobs;
$job || &error($text{'delete_egone'});
&can_edit_user(\%access, $job->{'user'}) ||
&error($text{'edit_ecannot'});

View File

@@ -1,11 +1,14 @@
#!/usr/local/bin/perl
# edit_job.cgi
# Display a command for deletion
use strict;
use warnings;
our (%access, %text, %in);
require './at-lib.pl';
&ReadParse();
@jobs = &list_atjobs();
($job) = grep { $_->{'id'} eq $in{'id'} } @jobs;
my @jobs = &list_atjobs();
my ($job) = grep { $_->{'id'} eq $in{'id'} } @jobs;
$job || &error($text{'edit_ejob'});
&can_edit_user(\%access, $job->{'user'}) || &error($text{'edit_ecannot'});
@@ -16,7 +19,7 @@ print &ui_hidden("id", $in{'id'});
print &ui_table_start($text{'edit_header'}, "width=100%", 4);
# Run as user
@uinfo = getpwnam($job->{'user'});
my @uinfo = getpwnam($job->{'user'});
$uinfo[6] =~ s/,.*$//g;
print &ui_table_row($text{'index_user'},
&html_escape($job->{'user'}).

View File

@@ -1,47 +1,52 @@
# freebsd-lib.pl
use strict;
use warnings;
our (%config);
sub list_atjobs
{
local @rv;
opendir(DIR, $config{'at_dir'});
while($f = readdir(DIR)) {
local $p = "$config{'at_dir'}/$f";
my @rv;
opendir(my $DIR, $config{'at_dir'});
while(my $f = readdir($DIR)) {
my $p = "$config{'at_dir'}/$f";
if ($f =~ /^c(\S{5})(\S+)$/) {
local @st = stat($p);
local $job = { 'id' => hex($1),
my @st = stat($p);
my $job = { 'id' => hex($1),
'date' => hex($2) * 60,
'user' => scalar(getpwuid($st[4])),
'created' => $st[9] };
open(FILE, $p);
while(<FILE>) {
open(my $FILE, $p);
while(<$FILE>) {
$job->{'cmd'} .= $_;
}
close(FILE);
close($FILE);
$job->{'realcmd'} = $job->{'cmd'};
$job->{'realcmd'} =~ s/^[\000-\177]+cd\s+(\S+)\s+\|\|\s+{\n.*\n.*\n.*\n//;
push(@rv, $job);
}
}
closedir(DIR);
closedir($DIR);
return @rv;
}
# create_atjob(user, time, commands, directory, send-mail)
sub create_atjob
{
local @tm = localtime($_[1]);
local $date = sprintf "%2.2d:%2.2d %d.%d.%d",
my @tm = localtime($_[1]);
my $date = sprintf "%2.2d:%2.2d %d.%d.%d",
$tm[2], $tm[1], $tm[3], $tm[4]+1, $tm[5]+1900;
local $mailflag = $_[4] ? "-m" : "";
local $cmd = "cd ".quotemeta($_[3])." ; at $mailflag $date";
local @uinfo = getpwnam($_[0]);
my $mailflag = $_[4] ? "-m" : "";
my $cmd = "cd ".quotemeta($_[3])." ; at $mailflag $date";
my @uinfo = getpwnam($_[0]);
if ($uinfo[2] != $<) {
# Only SU if we are not already the user
$cmd = &command_as_user($_[0], 0, $cmd);
}
no strict "subs";
&open_execute_command(AT, "$cmd >/dev/null 2>&1", 0);
print AT $_[2];
close(AT);
use strict "subs";
&additional_log('exec', undef, "su \"$_[0]\" -c \"cd $_[3] ; at $date\"");
}

View File

@@ -5,6 +5,10 @@
# F&AS : default parameters can be set
# ext_user : default user
# ext_cmd : default command
use strict;
use warnings;
our (%access, %text, %in, %config);
our ($module_name, $remote_user);
require './at-lib.pl';
use POSIX;
@@ -18,13 +22,13 @@ if (!&has_command("at")) {
}
# Show list of existing jobs
@jobs = &list_atjobs();
my @jobs = &list_atjobs();
@jobs = grep { &can_edit_user(\%access, $_->{'user'}) } @jobs;
if (@jobs) {
print &ui_form_start("delete_jobs.cgi", "post");
@jobs = sort { $a->{'id'} <=> $b->{'id'} } @jobs;
@tds = ( "width=5", "nowrap" );
@links = ( &select_all_link("d"), &select_invert_link("d") );
my @tds = ( "width=5", "nowrap" );
my @links = ( &select_all_link("d"), &select_invert_link("d") );
print &ui_links_row(\@links);
print &ui_columns_start([
"",
@@ -33,13 +37,13 @@ if (@jobs) {
$text{'index_exec'},
$text{'index_created'},
$text{'index_cmd'} ], 100, 0, \@tds);
foreach $j (@jobs) {
local @cols;
foreach my $j (@jobs) {
my @cols;
push(@cols, &ui_link("edit_job.cgi?id=".$j->{'id'}, $j->{'id'}) );
push(@cols, &html_escape($j->{'user'}));
$date = localtime($j->{'date'});
my $date = localtime($j->{'date'});
push(@cols, "<tt>$date</tt>");
$created = localtime($j->{'created'});
my $created = localtime($j->{'created'});
push(@cols, "<tt>$created</tt>");
push(@cols, join("<br>", split(/\n/,
&html_escape($j->{'realcmd'}))));
@@ -57,7 +61,8 @@ print &ui_form_start("create_job.cgi");
print &ui_table_start($text{'index_header'}, undef, 2);
# User to run as
$dir = "/";
my $dir = "/";
my ($user, $usel);
if ($access{'mode'} == 1) {
$usel = &ui_select("user", undef,
[ split(/\s+/, $access{'users'}) ]);
@@ -65,7 +70,7 @@ if ($access{'mode'} == 1) {
elsif ($access{'mode'} == 3) {
$usel = "<tt>$remote_user</tt>";
print &ui_hidden("user", $remote_user);
@uinfo = getpwnam($remote_user);
my @uinfo = getpwnam($remote_user);
$dir = $uinfo[7];
}
else {
@@ -74,7 +79,7 @@ else {
print &ui_table_row($text{'index_user'}, $usel, undef, ["valign=middle","valign=middle"]);
# Run date
@now = localtime(time());
my @now = localtime(time());
print &ui_table_row($text{'index_date'},
&ui_textbox("day", $now[3], 2)."/".
&ui_select("month", $now[4],
@@ -87,7 +92,7 @@ print &ui_table_row($text{'index_time'},
&ui_textbox("hour", undef, 2).":".&ui_textbox("min", "00", 2), undef, ["valign=middle","valign=middle"]);
# Current date and time
($date, $time) = split(/\s+/, &make_date(time()));
my ($date, $time) = split(/\s+/, &make_date(time()));
print &ui_table_row($text{'index_cdate'}, $date, undef, ["valign=middle","valign=middle"]);
print &ui_table_row($text{'index_ctime'}, $time, undef, ["valign=middle","valign=middle"]);
@@ -108,8 +113,8 @@ print &ui_form_end([ [ undef, $text{'create'} ] ]);
if ($access{'allow'} && $config{'allow_file'}) {
# Show form to manage allowed and denied users
@allow = &list_allowed();
@deny = &list_denied();
my @allow = &list_allowed();
my @deny = &list_denied();
print &ui_hr();
print &ui_form_start("save_allow.cgi", "post");
print &ui_table_start($text{'index_allow'}, undef, 2);

View File

@@ -1,4 +1,6 @@
# install_check.pl
use strict;
use warnings;
do 'at-lib.pl';

View File

@@ -1,48 +1,53 @@
# linux-lib.pl
use strict;
use warnings;
our (%config);
sub list_atjobs
{
local @rv;
opendir(DIR, $config{'at_dir'});
while($f = readdir(DIR)) {
local $p = "$config{'at_dir'}/$f";
my @rv;
opendir(my $DIR, $config{'at_dir'});
while(my $f = readdir($DIR)) {
my $p = "$config{'at_dir'}/$f";
if ($f =~ /^a(\S{5})(\S+)$/) {
local @st = stat($p);
local $job = { 'id' => hex($1),
my @st = stat($p);
my $job = { 'id' => hex($1),
'date' => hex($2) * 60,
'user' => scalar(getpwuid($st[4])),
'created' => $st[9] };
open(FILE, $p);
while(<FILE>) {
open(my $FILE, "<", $p);
while(<$FILE>) {
$job->{'cmd'} .= $_;
}
close(FILE);
close($FILE);
$job->{'realcmd'} = $job->{'cmd'};
$job->{'realcmd'} =~ s/^[\000-\177]+cd\s+(\S+)\s+\|\|\s+{\n.*\n.*\n.*\n//;
$job->{'realcmd'} =~ s/\$\{SHELL:.*\n\n?//;
push(@rv, $job);
}
}
closedir(DIR);
closedir($DIR);
return @rv;
}
# create_atjob(user, time, commands, directory, send-email)
sub create_atjob
{
local @tm = localtime($_[1]);
local $date = sprintf "%2.2d:%2.2d %d.%d.%d",
my @tm = localtime($_[1]);
my $date = sprintf "%2.2d:%2.2d %d.%d.%d",
$tm[2], $tm[1], $tm[3], $tm[4]+1, $tm[5]+1900;
local $mailflag = $_[4] ? "-m" : "";
local $cmd = "cd ".quotemeta($_[3])." ; at $mailflag $date";
local @uinfo = getpwnam($_[0]);
my $mailflag = $_[4] ? "-m" : "";
my $cmd = "cd ".quotemeta($_[3])." ; at $mailflag $date";
my @uinfo = getpwnam($_[0]);
if ($uinfo[2] != $<) {
# Only SU if we are not already the user
$cmd = &command_as_user($_[0], 0, $cmd);
}
no strict "subs";
&open_execute_command(AT, "$cmd >/dev/null 2>&1", 0);
print AT $_[2];
close(AT);
use strict "subs";
&additional_log('exec', undef, $cmd);
}

View File

@@ -1,5 +1,8 @@
# log_parser.pl
# Functions for parsing this module's logs
use strict;
use warnings;
our %text;
do 'at-lib.pl';
@@ -7,7 +10,7 @@ do 'at-lib.pl';
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
my ($user, $script, $action, $type, $object, $p, $long) = @_;
if ($type eq "job") {
return &text('log_'.$action.'_job',
"<tt>".&html_escape($object)."</tt>");

View File

@@ -1,41 +1,46 @@
# macos-lib.pl
use strict;
use warnings;
our %config;
sub list_atjobs
{
local @rv;
opendir(DIR, $config{'at_dir'});
while($f = readdir(DIR)) {
local $p = "$config{'at_dir'}/$f";
my @rv;
opendir(my $DIR, $config{'at_dir'});
while(my $f = readdir($DIR)) {
my $p = "$config{'at_dir'}/$f";
if ($f =~ /^a(\S+)\.(\d+)$/) {
local @st = stat($p);
local $job = { 'id' => $f,
my @st = stat($p);
my $job = { 'id' => $f,
'date' => hex($1)*60,
'user' => scalar(getpwuid($st[4])),
'created' => $st[9] };
open(FILE, $p);
while(<FILE>) {
open(my $FILE, "<", $p);
while(<$FILE>) {
$job->{'cmd'} .= $_;
}
close(FILE);
close($FILE);
$job->{'realcmd'} = $job->{'cmd'};
$job->{'realcmd'} =~ s/^[\000-\177]+cd\s+(\S+)\n//;
push(@rv, $job);
}
}
closedir(DIR);
closedir($DIR);
return @rv;
}
# create_atjob(user, time, commands, directory, send-email)
sub create_atjob
{
local @tm = localtime($_[1]);
local $date = sprintf "%2.2d:%2.2d %d.%d.%d",
my @tm = localtime($_[1]);
my $date = sprintf "%2.2d:%2.2d %d.%d.%d",
$tm[2], $tm[1], $tm[3], $tm[4]+1, $tm[5]+1900;
local $mailflag = $_[4] ? "-m" : "";
my $mailflag = $_[4] ? "-m" : "";
no strict "subs";
&open_execute_command(AT, "su \"$_[0]\" -c \"cd $_[3] ; at $mailflag $date\" >/dev/null 2>&1", 0);
print AT $_[2];
close(AT);
use strict "subs";
&additional_log('exec', undef, "su \"$_[0]\" -c \"cd $_[3] ; at $mailflag $date\"");
}

View File

@@ -31,3 +31,4 @@ desc_no=Tidsplanlagte kommandoer
longdesc_ms_MY=Jadual pelaksanaan arahan one-off atau skrip.
desc_ms_MY=Perintah Berjadual
longdesc_pl=Harmonogram wykonywania poleceñ lub skryptów.
longdesc_ca=Planifica l'execució d'una ordre o script.

View File

@@ -1,5 +1,8 @@
#!/usr/local/bin/perl
# Update allowed or denied At users
use strict;
use warnings;
our (%access, %text, %in);
require './at-lib.pl';
ReadParse();
@@ -11,13 +14,13 @@ if ($in{'amode'} == 0) {
&save_denied();
}
elsif ($in{'amode'} == 1) {
@users = split(/\s+/, $in{'ausers'});
my @users = split(/\s+/, $in{'ausers'});
@users || &error($text{'allow_eusers'});
&save_allowed(@users);
&save_denied();
}
elsif ($in{'amode'} == 2) {
@users = split(/\s+/, $in{'ausers'});
my @users = split(/\s+/, $in{'ausers'});
@users || &error($text{'allow_eusers'});
&save_allowed();
&save_denied(@users);

View File

@@ -1,49 +1,54 @@
# solaris-lib.pl
use strict;
use warnings;
our %config;
use POSIX;
sub list_atjobs
{
local @rv;
opendir(DIR, $config{'at_dir'});
while($f = readdir(DIR)) {
local $p = "$config{'at_dir'}/$f";
my @rv;
opendir(my $DIR, $config{'at_dir'});
while(my $f = readdir($DIR)) {
my $p = "$config{'at_dir'}/$f";
if ($f =~ /^(\d+)\.a$/) {
local @st = stat($p);
local $job = { 'id' => $f,
my @st = stat($p);
my $job = { 'id' => $f,
'date' => $1,
'user' => scalar(getpwuid($st[4])),
'created' => $st[9] };
open(FILE, $p);
while(<FILE>) {
open(my $FILE, "<", $p);
while(<$FILE>) {
$job->{'cmd'} .= $_;
}
close(FILE);
close($FILE);
$job->{'realcmd'} = $job->{'cmd'};
$job->{'realcmd'} =~ s/^[\000-\177]+#ident.*\ncd\s+\S+\numask\s+\S+\n//;
$job->{'realcmd'} =~ s/^ulimit\s+\S+\n//;
push(@rv, $job);
}
}
closedir(DIR);
closedir($DIR);
return @rv;
}
# create_atjob(user, time, commands, directory, send-email)
sub create_atjob
{
local @tm = localtime($_[1]);
local $date = strftime "%H:%M %b %d", @tm;
local $mailflag = $_[4] ? "-m" : "";
local $cmd = "cd ".quotemeta($_[3])." ; at $mailflag $date";
local @uinfo = getpwnam($_[0]);
my @tm = localtime($_[1]);
my $date = strftime "%H:%M %b %d", @tm;
my $mailflag = $_[4] ? "-m" : "";
my $cmd = "cd ".quotemeta($_[3])." ; at $mailflag $date";
my @uinfo = getpwnam($_[0]);
if ($uinfo[2] != $<) {
# Only SU if we are not already the user
$cmd = &command_as_user($_[0], 0, $cmd);
}
no strict "subs";
&open_execute_command(AT, "$cmd >/dev/null 2>&1", 0);
print AT $_[2];
close(AT);
use strict "subs";
&additional_log('exec', undef, $cmd);
}

View File

@@ -29,3 +29,4 @@ desc_no=Sikkerhetskopier konfig.filer
longdesc_ms_MY=Lakukan salinan secara manual atau berjadual dan mengembalikan fail konfigurasi yang diuruskan oleh modul Webmin.
desc_ms_MY=Backup Fail konfigurasi
longdesc_pl=Rêczne lub zaplanowane tworzenie i przywracanie kopii zapasowych plików konfiguracyjnych modu³ów zarz±dzanych przez Webmina.
longdesc_ca=Porta a terme còpies de seguretat i restauracions manuals o planificades dels fitxers de configuració gestionats pels mòduls de Webmin.

View File

@@ -948,9 +948,11 @@ foreach my $l (split(/\r?\n/, $status)) {
elsif ($l =~ /^Running\s+Jobs/i) { $sect = 2; }
elsif ($l =~ /^Terminated\s+Jobs/i) { $sect = 3; }
if ($sect == 1 && $l =~ /^\s*(\S+)\s+(\S+)\s+(\d+)\s+(\S+\s+\S+(\s+\d+:\d+)?)\s+(\S+)\s+(\S+)\s*$/) {
if ($sect == 1 && $l =~ /^\s*(\S+)\s+(\S+)\s+(\d+)\s+(\S+\s+\S+(\s+\d+:\d+)?)\s+(\S+)\s+(\S+)?\s*$/) {
# Scheduled job, like
# Full Backup 10 27-Jun-14 17:30 ykfdc1-BackupJob wkly_1736
# copy jobs do not have any destination tape (=> ? on the latest field)
# Full Backup 11 19-Aug-16 17:50 ykfdc1-Copyjob
push(@sched, { 'level' => &full_level("$1"),
'type' => $2,
'pri' => $3,

View File

@@ -13,3 +13,4 @@ longdesc_ms_MY=Konfigurasi Bacula untuk melaksanakan salinan dan mengembalikan s
longdesc_de=Konfiguriert Bacula um Sicherungen zu erstellen und manuell oder nach Plan wiederherzustellen, f&#252;r eine oder viele Systeme.
longdesc_pl=Skonfiguruj Bacula do przeprowadzania kopii zapasowej i przywracania rêcznie lub wed³ug harmonogramu na jednym lub wielu systemach.
desc_no=Bacula backupsystem
longdesc_ca=Configura Bacula per portar a terme còpies de seguretat i restauracions manualment o de forma planificada, per a un o més sistemes.

View File

@@ -330,6 +330,7 @@ return undef;
sub process_firewall_line
{
local ($line, $hours, $time_now) = @_;
my @time_now = localtime($time_now);
if ($line =~ /^(\S+)\s+(\d+)\s+(\d+):(\d+):(\d+).*BANDWIDTH_(IN|OUT):(IN=.*)/) {
# Found a valid line
local ($mon, $day, $hr, $min, $sec) = ($1, $2, $3, $4, $5);

View File

@@ -19,3 +19,4 @@ desc_no=Overv&#229;king av b&#229;ndbredde
longdesc_ms_MY=Lihat laporan mengenai penggunaan jalur lebar oleh host, port, protokol dan masa pada sistem Linux.
desc_ms_MY=Pemantauan jalur lebar
longdesc_pl=Raporty na temat wykorzystania transferu przez host, port, protokó³ w okre¶lonym czasie.
longdesc_ca=Visualitza els informes de l'ús d'amplada de banda per host, port, protocol i hores en un sistema Linux.

View File

@@ -146,3 +146,5 @@ Added support for NSEC3PARAM records.
Added support for editing DMARC records, which are specially encoded TXT records for defining the response to SPF and DKIM violations.
---- Changes since 1.770 ----
Automatic creation and deletion of reverse records in partial delegation zones now works the same as in full reverse zones.
---- Changes since 1.810 ----
Added support for editing TLSA (SSL Certificate) records.

View File

@@ -1,11 +1,15 @@
use strict;
use warnings;
require 'bind8-lib.pl';
# Globals from bind8-lib.pl
our (%config, %text, %in);
# acl_security_form(&options)
# Output HTML for editing security options for the bind8 module
sub acl_security_form
{
local $m = $_[0]->{'zones'} eq '*' ? 1 :
my $m = $_[0]->{'zones'} eq '*' ? 1 :
$_[0]->{'zones'} =~ /^\!/ ? 2 : 0;
print "<tr> <td valign=top><b>$text{'acl_zones'}</b></td>\n";
print "<td colspan=3><table cellpadding=0 cellspacing=0> <tr><td valign=top>\n";
@@ -17,24 +21,23 @@ printf "<input type=radio name=zones_def value=2 %s> %s</td>\n",
$m == 2 ? 'checked' : '', $text{'acl_znsel'};
print "<td><select name=zones multiple size=4 width=150>\n";
local $conf = &get_config();
local @zones = grep { $_->{'value'} ne "." }
my $conf = &get_config();
my @zones = grep { $_->{'value'} ne "." }
&find("zone", $conf);
local @views = &find("view", $conf);
local $v;
foreach $v (@views) {
my @views = &find("view", $conf);
foreach my $v (@views) {
push(@zones, grep { $_->{'value'} ne "." }
&find("zone", $v->{'members'}));
}
local ($z, %zcan);
my %zcan;
map { $zcan{$_}++ } split(/\s+/, $_[0]->{'zones'});
foreach $z (sort { $a->{'value'} cmp $b->{'value'} } @zones) {
foreach my $z (sort { $a->{'value'} cmp $b->{'value'} } @zones) {
printf "<option value='%s' %s>%s</option>\n",
$z->{'value'},
$zcan{$z->{'value'}} ? "selected" : "",
&arpa_to_ip($z->{'value'});
}
foreach $v (sort { $a->{'value'} cmp $b->{'value'} } @views) {
foreach my $v (sort { $a->{'value'} cmp $b->{'value'} } @views) {
printf "<option value='%s' %s>%s</option>\n",
'view_'.$v->{'value'},
$zcan{'view_'.$v->{'value'}} ? "selected" : "",
@@ -49,12 +52,12 @@ if (@views) {
[ [ 1, $text{'acl_vall'} ],
[ 0, $text{'acl_vsel'} ] ]),"<br>\n";
print "<select name=inviews multiple size=4 width=150>\n";
local ($v, %vcan);
my %vcan;
map { $vcan{$_}++ } split(/\s+/, $_[0]->{'inviews'});
printf "<option value='%s' %s>%s</option>\n",
"_", $vcan{"_"} ? "selected" : "",
"&lt;".$text{'acl_toplevel'}."&gt;";
foreach $v (sort { $a->{'value'} cmp $b->{'value'} } @views) {
foreach my $v (sort { $a->{'value'} cmp $b->{'value'} } @views) {
printf "<option value='%s' %s>%s</option>\n",
$v->{'value'},
$vcan{$v->{'value'}} ? "selected" : "", $v->{'value'};
@@ -83,7 +86,7 @@ printf "<input type=radio name=defaults value=0 %s> $text{'no'}</td> </tr>\n",
$_[0]->{'defaults'} ? "" : "checked";
print "<tr> <td><b>$text{'acl_ztypes'}</b></td> <td colspan=3>\n";
foreach $t ("master", "slave", "forward", "delegation") {
foreach my $t ("master", "slave", "forward", "delegation") {
printf "<input type=checkbox name=%s %s> %s\n",
$t, $_[0]->{$t} ? "checked" : "", $text{'acl_ztypes_'.$t};
}
@@ -185,7 +188,7 @@ printf "<input type=radio name=views value=0 %s> $text{'no'}</td> </tr>\n",
$_[0]->{'views'} ? "" : "checked";
if (@views) {
local $m = $_[0]->{'vlist'} eq '*' ? 1 :
my $m = $_[0]->{'vlist'} eq '*' ? 1 :
$_[0]->{'vlist'} =~ /^\!/ ? 2 :
$_[0]->{'vlist'} eq '' ? 3 : 0;
print "<tr> <td valign=top><b>$text{'acl_vlist'}</b></td>\n";
@@ -200,9 +203,9 @@ if (@views) {
$m == 3 ? 'checked' : '', $text{'acl_vnone'};
print "<td><select name=vlist multiple size=4 width=150>\n";
local ($v, %vcan);
my ($v, %vcan);
map { $vcan{$_}++ } split(/\s+/, $_[0]->{'vlist'});
foreach $v (sort { $a->{'value'} cmp $b->{'value'} } @views) {
foreach my $v (sort { $a->{'value'} cmp $b->{'value'} } @views) {
printf "<option value='%s' %s>%s</option>\n",
$v->{'value'},
$vcan{$v->{'value'}} ? "selected" : "", $v->{'value'};

View File

@@ -1,31 +1,34 @@
use strict;
use warnings;
do 'bind8-lib.pl';
# Globals from bind8-lib.pl
our (%config, %text, %in);
# backup_config_files()
# Returns files and directories that can be backed up
sub backup_config_files
{
local @rv;
my @rv;
# Add main .conf files
local $conf = &get_config();
my $conf = &get_config();
push(@rv, map { $_->{'file'} } @$conf);
# Add all master and hint zone files
local @views = &find("view", $conf);
local ($v, @zones);
foreach $v (@views) {
local @vz = &find("zone", $v->{'members'});
my @views = &find("view", $conf);
my @zones;
foreach my $v (@views) {
my @vz = &find("zone", $v->{'members'});
push(@zones, @vz);
}
push(@zones, &find("zone", $conf));
local $z;
foreach $z (@zones) {
local $tv = &find_value("type", $z->{'members'});
foreach my $z (@zones) {
my $tv = &find_value("type", $z->{'members'});
next if ($tv ne "master" && $tv ne "hint");
local $file = &find_value("file", $z->{'members'});
my $file = &find_value("file", $z->{'members'});
next if (!$file);
local @recs = &read_zone_file($file, $z->{'value'});
my @recs = &read_zone_file($file, $z->{'value'});
push(@rv, map { $_->{'file'} } @recs);
}
@@ -58,7 +61,7 @@ return undef;
sub post_restore
{
&flush_zone_names();
local $pidfile = &get_pid_file();
my $pidfile = &get_pid_file();
if (&check_pid_file(&make_chroot($pidfile, 1))) {
return &restart_bind();
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,9 @@
use strict;
use warnings;
do 'bind8-lib.pl';
# Globals from bind8-lib.pl
our (%config, %text, %in);
sub cgi_args
{

View File

@@ -1,18 +1,23 @@
#!/usr/local/bin/perl
# Check a zone's records and report problems
use strict;
use warnings;
require './bind8-lib.pl';
# Globals from bind8-lib.pl
our (%access, %text, %in);
&ReadParse();
$access{'apply'} || &error($text{'check_ecannot'});
$zone = &get_zone_name_or_error($in{'zone'}, $in{'view'});
my $zone = &get_zone_name_or_error($in{'zone'}, $in{'view'});
&can_edit_zone($zone) || &error($text{'master_ecannot'});
$desc = &ip6int_to_net(&arpa_to_ip($dom));
my $desc = &ip6int_to_net(&arpa_to_ip($zone->{'name'}));
&ui_print_header($desc, $text{'check_title'}, "",
undef, undef, undef, undef, &restart_links($zone));
$file = &make_chroot($zone->{'file'});
@errs = &check_zone_records($zone);
my $file = &make_chroot($zone->{'file'});
my @errs = &check_zone_records($zone);
if (@errs) {
# Show list of errors
print "<b>",&text('check_errs', "<tt>$file</tt>"),"</b><p>\n";

View File

@@ -1,9 +1,13 @@
#!/usr/local/bin/perl
# Remove some zone from the open list
use strict;
use warnings;
# Globals
our (%in);
require './bind8-lib.pl';
&ReadParse();
@heiropen = &get_heiropen();
my @heiropen = &get_heiropen();
@heiropen = grep { $_ ne $in{'what'} } @heiropen;
&save_heiropen(\@heiropen);
&redirect("index.cgi#$in{'what'}");

View File

@@ -1,21 +1,25 @@
#!/usr/local/bin/perl
# conf_acls.cgi
# Display global ACLs
use strict;
use warnings;
# Globals
our (%text, %access);
require './bind8-lib.pl';
$access{'defaults'} || &error($text{'acls_ecannot'});
&ui_print_header(undef, $text{'acls_title'}, "",
undef, undef, undef, undef, &restart_links());
$conf = &get_config();
@acls = ( &find("acl", $conf), { } );
my $conf = &get_config();
my @acls = ( &find("acl", $conf), { } );
print &ui_form_start("save_acls.cgi", "post");
print &ui_columns_start([ $text{'acls_name'}, $text{'acls_values'} ]);
for($i=0; $i<@acls; $i++) {
@cols = ( );
for(my $i=0; $i<@acls; $i++) {
my @cols = ( );
push(@cols, &ui_textbox("name_$i", $acls[$i]->{'value'}, 15));
@vals = map { join(" ", $_->{'name'}, @{$_->{'values'}}) }
my @vals = map { join(" ", $_->{'name'}, @{$_->{'values'}}) }
@{$acls[$i]->{'members'}};
push(@cols, &ui_textarea("values_$i", join("\n", @vals), 5, 60, "off"));
print &ui_columns_row(\@cols, [ "valign=top" ]);

View File

@@ -1,25 +1,31 @@
#!/usr/local/bin/perl
# Display NDC control interface options
use strict;
use warnings;
# Globals
our (%text, %access);
require './bind8-lib.pl';
$access{'defaults'} || &error($text{'controls_ecannot'});
&ui_print_header(undef, $text{'controls_title'}, "",
undef, undef, undef, undef, &restart_links());
$conf = &get_config();
$controls = &find("controls", $conf);
$inet = &find("inet", $controls->{'members'});
$unix = &find("unix", $controls->{'members'});
my $conf = &get_config();
my $controls = &find("controls", $conf);
my $inet = &find("inet", $controls->{'members'});
my $unix = &find("unix", $controls->{'members'});
print &ui_form_start("save_controls.cgi", "post");
print &ui_table_start($text{'controls_header'}, undef, 2);
# Show options for inet control
my $ip;
my $port;
if ($inet) {
@v = @{$inet->{'values'}};
my @v = @{$inet->{'values'}};
$ip = shift(@v);
while(@v) {
$n = shift(@v);
my $n = shift(@v);
if ($n eq "port") { $port = shift(@v); }
}
}
@@ -44,12 +50,13 @@ print &ui_table_row($text{'controls_keys'},
print &ui_table_hr();
# Show options for local socket control
# Show options for local, socket control
my ($path, $perm, $owner, $group);
if ($unix) {
@v = @{$unix->{'values'}};
my @v = @{$unix->{'values'}};
$path = shift(@v);
while(@v) {
$n = shift(@v);
my $n = shift(@v);
if ($n eq "perm") { $perm = shift(@v); }
elsif ($n eq "owner") { $owner = getpwuid(shift(@v)); }
elsif ($n eq "group") { $group = getgrgid(shift(@v)); }

View File

@@ -1,5 +1,9 @@
#!/usr/local/bin/perl
# Show a form to setup DNSSEC key rotation
use strict;
use warnings;
# Globals
our (%text, %access, %config);
require './bind8-lib.pl';
&ReadParse();
@@ -13,7 +17,7 @@ print &ui_form_start("save_dnssec.cgi", "post");
print &ui_table_start($text{'dnssec_header'}, undef, 2);
# Rotation enabled?
$job = &get_dnssec_cron_job();
my $job = &get_dnssec_cron_job();
print &ui_table_row($text{'dnssec_enabled'},
&ui_yesno_radio("enabled", $job ? 1 : 0));

View File

@@ -1,18 +1,12 @@
#!/usr/local/bin/perl
# Show a form to setup DNSSEC-Tools parameters
use strict;
use warnings;
# Globals
our (%access, %text, %config);
require './bind8-lib.pl';
local $conf;
local $emailaddrs;
local $algorithm;
local $ksklength;
local $zsklength;
local $usensec3;
local $endtime;
local $ksklife;
local $zsklife;
&ReadParse();
$access{'defaults'} || &error($text{'dt_conf_ecannot'});
&ui_print_header(undef, $text{'dt_conf_title'}, "",
@@ -20,51 +14,51 @@ $access{'defaults'} || &error($text{'dt_conf_ecannot'});
print $text{'dt_conf_desc'},"<p>\n";
$conf = get_dnssectools_config();
my $conf = get_dnssectools_config();
print &ui_form_start("save_dnssectools.cgi", "post");
print &ui_table_start($text{'dt_conf_header'}, undef, 2);
$emailaddrs = find_value("admin-email", $conf);
my $emailaddrs = find_value("admin-email", $conf);
print &ui_table_row($text{'dt_conf_email'},
ui_textbox("dt_email", $emailaddrs, 50));
#algorithm; dt_alg
$algorithm = find_value("algorithm", $conf);
my $algorithm = find_value("algorithm", $conf);
print &ui_table_row($text{'dt_conf_algorithm'},
ui_textbox("dt_alg", $algorithm, 50));
#ksklength; dt_ksklen
$ksklength = find_value("ksklength", $conf);
my $ksklength = find_value("ksklength", $conf);
print &ui_table_row($text{'dt_conf_ksklength'},
ui_textbox("dt_ksklen", $ksklength, 50));
#zsklength; dt_zsklen
$zsklength = find_value("zsklength", $conf);
my $zsklength = find_value("zsklength", $conf);
print &ui_table_row($text{'dt_conf_zsklength'},
ui_textbox("dt_zsklen", $zsklength, 50));
#usensec3; dt_nsec3
$usensec3 = find_value("usensec3", $conf);
my $usensec3 = find_value("usensec3", $conf);
print &ui_table_row($text{'dt_conf_nsec3'},
ui_textbox("dt_nsec3", $usensec3, 50));
#endtime; dt_endtime
$endtime = find_value("endtime", $conf);
my $endtime = find_value("endtime", $conf);
print &ui_table_row($text{'dt_conf_endtime'},
ui_textbox("dt_endtime", $endtime, 50));
print &ui_table_hr();
#ksklife; dt_ksklife
$ksklife = find_value("ksklife", $conf);
my $ksklife = find_value("ksklife", $conf);
print &ui_table_row($text{'dt_conf_ksklife'},
ui_textbox("dt_ksklife", $ksklife, 50)." ".
$text{'dnssec_secs'});
#zsklife; dt_zsklife
$zsklife = find_value("zsklife", $conf);
my $zsklife = find_value("zsklife", $conf);
print &ui_table_row($text{'dt_conf_zsklife'},
ui_textbox("dt_zsklife", $zsklife, 50)." ".
$text{'dnssec_secs'});

View File

@@ -1,6 +1,10 @@
#!/usr/local/bin/perl
# conf_files.cgi
# Display global files options
use strict;
use warnings;
# Globals
our (%access, %text);
require './bind8-lib.pl';
$access{'defaults'} || &error($text{'files_ecannot'});
@@ -8,9 +12,9 @@ $access{'defaults'} || &error($text{'files_ecannot'});
undef, undef, undef, undef, &restart_links());
&ReadParse();
$conf = &get_config();
$options = &find("options", $conf);
$mems = $options->{'members'};
my $conf = &get_config();
my $options = &find("options", $conf);
my $mems = $options->{'members'};
# Start of the form
print &ui_form_start("save_files.cgi", "post");
@@ -33,4 +37,3 @@ print &ui_form_end([ [ undef, $text{'save'} ] ]);
&ui_print_footer("", $text{'index_return'});

View File

@@ -1,15 +1,19 @@
#!/usr/local/bin/perl
# conf_forwarding.cgi
# Display global forwarding and transfer options
use strict;
use warnings;
# Globals
our (%access, %text);
require './bind8-lib.pl';
$access{'defaults'} || &error($text{'forwarding_ecannot'});
&ui_print_header(undef, $text{'forwarding_title'}, "",
undef, undef, undef, undef, &restart_links());
$conf = &get_config();
$options = &find("options", $conf);
$mems = $options->{'members'};
my $conf = &get_config();
my $options = &find("options", $conf);
my $mems = $options->{'members'};
# Start of the form
print &ui_form_start("save_forwarding.cgi", "post");

View File

@@ -1,22 +1,27 @@
#!/usr/local/bin/perl
# conf_keys.cgi
# Display options for other DNS servers
use strict;
use warnings;
require './bind8-lib.pl';
# Globals
our (%access, %text);
$access{'defaults'} || &error($text{'keys_ecannot'});
&ui_print_header(undef, $text{'keys_title'}, "",
undef, undef, undef, undef, &restart_links());
$conf = &get_config();
@keys = ( &find("key", $conf), { } );
my $conf = &get_config();
my @keys = ( &find("key", $conf), { } );
# Build table of keys
@table = ( );
for($i=0; $i<@keys; $i++) {
$k = $keys[$i];
@algs = ( "hmac-md5" );
$alg = &find_value("algorithm", $k->{'members'});
$secret = &find_value("secret", $k->{'members'});
my @table = ( );
for(my $i=0; $i<@keys; $i++) {
my $k = $keys[$i];
my @algs = ( "hmac-md5" );
my $alg = &find_value("algorithm", $k->{'members'});
my $secret = &find_value("secret", $k->{'members'});
push(@table, [ &ui_textbox("id_$i", $k->{'value'}, 15),
&ui_select("alg_$i", $alg, \@algs, 1, 0, $alg ? 1 : 0),
&ui_textbox("secret_$i", $secret, 65) ]);

View File

@@ -1,18 +1,22 @@
#!/usr/local/bin/perl
# conf_logging.cgi
# Display global logging options
use strict;
use warnings;
our (%access, %text, %in);
our (@syslog_levels, @severities, @cat_list);
require './bind8-lib.pl';
$access{'defaults'} || &error($text{'logging_ecannot'});
&ui_print_header(undef, $text{'logging_title'}, "",
undef, undef, undef, undef, &restart_links());
&ReadParse();
$conf = &get_config();
$logging = &find("logging", $conf);
$mems = $logging ? $logging->{'members'} : [ ];
my $conf = &get_config();
my $logging = &find("logging", $conf);
my $mems = $logging ? $logging->{'members'} : [ ];
# Start of tabs for channels and categories
@tabs = ( [ "chans", $text{'logging_chans'}, "conf_logging.cgi?mode=chans" ],
my @tabs = ( [ "chans", $text{'logging_chans'}, "conf_logging.cgi?mode=chans" ],
[ "cats", $text{'logging_cats'}, "conf_logging.cgi?mode=cats" ] );
print &ui_tabs_start(\@tabs, "mode", $in{'mode'} || "chans", 1);
@@ -20,8 +24,8 @@ print &ui_tabs_start_tab("mode", "chans");
print $text{'logging_chansdesc'},"<p>\n";
# Add default channels to table
@table = ( );
@defchans = ( { 'name' => 'default_syslog',
my @table = ( );
my @defchans = ( { 'name' => 'default_syslog',
'syslog' => 'daemon',
'severity' => 'info' },
{ 'name' => 'default_debug',
@@ -32,7 +36,7 @@ print $text{'logging_chansdesc'},"<p>\n";
'severity' => 'info' },
{ 'name' => 'null',
'null' => 1 } );
foreach $c (@defchans) {
foreach my $c (@defchans) {
push(@table, [
$c->{'name'},
$c->{'syslog'} ? $c->{'syslog'} :
@@ -47,17 +51,17 @@ foreach $c (@defchans) {
# Add user-defined channels
# XXX
@chans = &find("channel", $mems);
@channames = ( (map { $_->{'value'} } @chans) ,
my @chans = &find("channel", $mems);
my @channames = ( (map { $_->{'value'} } @chans) ,
'default_syslog', 'default_debug', 'default_stderr', 'null' );
push(@chans, { });
for($i=0; $i<@chans; $i++) {
$cmems = $chans[$i]->{'members'};
$file = &find("file", $cmems);
$filestr = $file ? join(" ", @{$file->{'values'}}) : "";
$syslog = &find_value("syslog", $cmems);
$null = &find("null", $cmems);
$stderr = &find("stderr", $cmems);
for(my $i=0; $i<@chans; $i++) {
my $cmems = $chans[$i]->{'members'};
my $file = &find("file", $cmems);
my $filestr = $file ? join(" ", @{$file->{'values'}}) : "";
my $syslog = &find_value("syslog", $cmems);
my $null = &find("null", $cmems);
my $stderr = &find("stderr", $cmems);
my @cols;
# Channel name
@@ -65,7 +69,7 @@ for($i=0; $i<@chans; $i++) {
# Log destination
my @dests;
$to = $file ? 0 : $syslog ? 1 : $stderr ? 3 : $null ? 2 : 0;
my $to = $file ? 0 : $syslog ? 1 : $stderr ? 3 : $null ? 2 : 0;
push(@dests, [ 0, $text{'logging_file'},
&ui_filebox("file_$i", $file->{'value'}, 40) ]);
push(@dests, [ 1, $text{'logging_syslog'},
@@ -76,7 +80,7 @@ for($i=0; $i<@chans; $i++) {
push(@cols, &ui_radio_table("to_$i", $to, \@dests));
# Severity
$sev = &find("severity", $cmems);
my $sev = &find("severity", $cmems);
push(@cols, &ui_select("sev_$i", $sev->{'value'},
[ [ "", "&nbsp;" ],
map { [ $_, $_ eq 'debug' ? $text{'logging_debug'} :
@@ -124,10 +128,10 @@ print $text{'logging_catsdesc'},"<p>\n";
# Build table of categories
@table = ( );
@cats = ( &find("category", $mems), { } );
for($i=0; $i<@cats; $i++) {
my @cats = ( &find("category", $mems), { } );
for(my $i=0; $i<@cats; $i++) {
my %cchan;
foreach $c (@{$cats[$i]->{'members'}}) {
foreach my $c (@{$cats[$i]->{'members'}}) {
$cchan{$c->{'name'}}++;
}
push(@table, [

View File

@@ -1,5 +1,9 @@
#!/usr/local/bin/perl
# Show a page for manually editing named.conf
use strict;
use warnings;
# Globals
our (%access, %text, %in);
require './bind8-lib.pl';
$access{'defaults'} || &error($text{'manual_ecannot'});
@@ -8,8 +12,8 @@ $access{'defaults'} || &error($text{'manual_ecannot'});
undef, undef, undef, undef, &restart_links());
# Work out and show the files
$conf = &get_config();
@files = &get_all_config_files($conf);
my $conf = &get_config();
my @files = &get_all_config_files($conf);
$in{'file'} ||= $files[0];
&indexof($in{'file'}, @files) >= 0 || &error($text{'manual_efile'});
print &ui_form_start("conf_manual.cgi");
@@ -23,7 +27,7 @@ print &ui_form_end();
print &ui_form_start("save_manual.cgi", "form-data");
print &ui_hidden("file", $in{'file'}),"\n";
print &ui_table_start(undef, "width=100%", 2);
$data = &read_file_contents(&make_chroot($in{'file'}));
my $data = &read_file_contents(&make_chroot($in{'file'}));
print &ui_table_row(undef,
&ui_textarea("data", $data, 20, 80, undef, 0, "style='width:100%'"), 2);
print &ui_table_end();

View File

@@ -1,6 +1,10 @@
#!/usr/local/bin/perl
# conf_misc.cgi
# Display miscellaneous options
use strict;
use warnings;
# Globals
our (%access, %text);
require './bind8-lib.pl';
$access{'defaults'} || &error($text{'misc_ecannot'});
@@ -8,9 +12,9 @@ $access{'defaults'} || &error($text{'misc_ecannot'});
undef, undef, undef, undef, &restart_links());
&ReadParse();
$conf = &get_config();
$options = &find("options", $conf);
$mems = $options->{'members'};
my $conf = &get_config();
my $options = &find("options", $conf);
my $mems = $options->{'members'};
# Start of the form
print &ui_form_start("save_misc.cgi", "post");

View File

@@ -1,5 +1,9 @@
#!/usr/local/bin/perl
# Check the whole BIND config and report problems
use strict;
use warnings;
# Globals
our (%access, %text, %config);
require './bind8-lib.pl';
&ReadParse();
@@ -8,8 +12,8 @@ $access{'defaults'} || &error($text{'ncheck_ecannot'});
&ui_print_header(undef, $text{'ncheck_title'}, "",
undef, undef, undef, undef, &restart_links());
$file = &make_chroot($config{'named_conf'});
@errs = &check_bind_config();
my $file = &make_chroot($config{'named_conf'});
my @errs = &check_bind_config();
if (@errs) {
# Show list of errors
print "<b>",&text('ncheck_errs', "<tt>$file</tt>"),"</b><p>\n";

View File

@@ -1,5 +1,9 @@
#!/usr/local/bin/perl
# Display global networking options
use strict;
use warnings;
# Globals
our (%access, %text);
require './bind8-lib.pl';
$access{'defaults'} || &error($text{'net_ecannot'});
@@ -7,26 +11,26 @@ $access{'defaults'} || &error($text{'net_ecannot'});
undef, undef, undef, undef, &restart_links());
&ReadParse();
$conf = &get_config();
$options = &find("options", $conf);
$mems = $options->{'members'};
my $conf = &get_config();
my $options = &find("options", $conf);
my $mems = $options->{'members'};
# Start of form
print &ui_form_start("save_net.cgi", "post");
print &ui_table_start($text{'net_header'}, "width=100%", 4);
# Ports and addresses to listen on
@listen = &find("listen-on", $mems);
$ltable = &ui_radio("listen_def", @listen ? 0 : 1,
my @listen = &find("listen-on", $mems);
my $ltable = &ui_radio("listen_def", @listen ? 0 : 1,
[ [ 1, $text{'default'} ],
[ 0, $text{'net_below'} ] ])."<br>\n";
@table = ( );
my @table = ( );
push(@listen, { });
for($i=0; $i<@listen; $i++) {
$port = $listen[$i]->{'value'} eq 'port' ?
for(my $i=0; $i<@listen; $i++) {
my $port = $listen[$i]->{'value'} eq 'port' ?
$listen[$i]->{'values'}->[1] : undef;
@vals = map { $_->{'name'} } @{$listen[$i]->{'members'}};
my @vals = map { $_->{'name'} } @{$listen[$i]->{'members'}};
push(@table, [
&ui_radio("pdef_$i", $port ? 0 : 1,
[ [ 1, $text{'default'} ],
@@ -42,11 +46,12 @@ $ltable .= &ui_columns_table(
1);
print &ui_table_row($text{'net_listen'}, $ltable, 3);
print &ui_table_hr();
#print &ui_table_hr();
# Source address for queries
$src = &find("query-source", $mems);
$srcstr = join(" ", @{$src->{'values'}});
my $src = &find("query-source", $mems);
my $srcstr = join(" ", $src->{'values'});
my ($sport, $saddr);
$sport = $1 if ($srcstr =~ /port\s+(\d+)/i);
$saddr = $1 if ($srcstr =~ /address\s+([0-9\.]+)/i);
print &ui_table_row($text{'net_saddr'},
@@ -60,7 +65,8 @@ print &ui_table_row($text{'net_sport'},
# Source port for transfers
$src = &find("transfer-source", $mems);
$srcstr = join(" ", @{$src->{'values'}});
$srcstr = join(" ", $src->{'values'});
my ($tport, $taddr);
$tport = $1 if ($srcstr =~ /port\s+(\d+)/i);
$taddr = $1 if ($srcstr =~ /^([0-9\.]+|\*)/i);
print &ui_table_row($text{'net_taddr'},

View File

@@ -1,6 +1,11 @@
#!/usr/local/bin/perl
# Show a form for setting up RNDC
# XXX should check if already working!
use strict;
use warnings;
# Globals
our (%access, %text, %config);
our $module_name;
require './bind8-lib.pl';
$access{'defaults'} || &error($text{'rndc_ecannot'});
@@ -16,6 +21,7 @@ if (!&has_command($config{'rndcconf_cmd'})) {
}
# Check if already working
my $out;
&execute_command("$config{'rndc_cmd'} status", undef, \$out);
if (!$? && $out !~ /failed/) {
print "<b>",$text{'rndc_desc2'},"</b><p>\n";
@@ -23,7 +29,7 @@ if (!$? && $out !~ /failed/) {
# Show form
print &ui_form_start("save_rndc.cgi", "post");
$ex = -s $config{'rndc_conf'};
my $ex = -s $config{'rndc_conf'};
print &text($ex ? 'rndc_rusure' : 'rndc_rusure2',
"<tt>$config{'rndc_conf'}</tt>"),"<p>\n";
print &ui_submit($text{'rndc_ok'});

View File

@@ -1,15 +1,19 @@
#!/usr/local/bin/perl
# conf_servers.cgi
# Display options for other DNS servers
use strict;
use warnings;
# Globals
our (%access, %text);
require './bind8-lib.pl';
$access{'defaults'} || &error($text{'servers_ecannot'});
&ui_print_header(undef, $text{'servers_title'}, "",
undef, undef, undef, undef, &restart_links());
$conf = &get_config();
@servers = ( &find("server", $conf), { } );
@keys = &find("key", $conf);
my $conf = &get_config();
my @servers = ( &find("server", $conf), { } );
my @keys = &find("key", $conf);
print &ui_form_start("save_servers.cgi", "post");
print &ui_columns_start([ $text{'servers_ip'},
@@ -17,34 +21,34 @@ print &ui_columns_start([ $text{'servers_ip'},
$text{'servers_format'},
$text{'servers_trans'},
@keys ? ( $text{'servers_keys'} ) : ( ) ], 100);
for($i=0; $i<@servers; $i++) {
$s = $servers[$i];
@cols = ( );
for(my $i=0; $i<@servers; $i++) {
my $s = $servers[$i];
my @cols = ( );
push(@cols, &ui_textbox("ip_$i", $s->{'value'}, 30));
$bogus = &find_value("bogus", $s->{'members'});
my $bogus = &find_value("bogus", $s->{'members'});
push(@cols, &ui_radio("bogus_$i", lc($bogus) eq 'yes' ? 1 : 0,
[ [ 1, $text{'yes'} ],
[ 0, $text{'no'} ] ]));
$format = &find_value("transfer-format", $s->{'members'});
my $format = &find_value("transfer-format", $s->{'members'});
push(@cols, &ui_radio("format_$i", lc($format),
[ [ 'one-answer', $text{'servers_one'} ],
[ 'many-answers', $text{'servers_many'} ],
[ '', $text{'default'} ] ]));
$trans = &find_value("transfers", $s->{'members'});
my $trans = &find_value("transfers", $s->{'members'});
push(@cols, &ui_textbox("trans_$i", $trans, 8));
if (@keys) {
local %haskey;
$keys = &find("keys", $s->{'members'});
foreach $k (@{$keys->{'members'}}) {
my %haskey;
my $keys = &find("keys", $s->{'members'});
foreach my $k (@{$keys->{'members'}}) {
$haskey{$k->{'name'}}++;
}
$cbs = "";
foreach $k (@keys) {
local $v = $k->{'value'};
my $cbs = "";
foreach my $k (@keys) {
my $v = $k->{'value'};
$cbs .= &ui_checkbox("keys_$i", $v, $v, $haskey{$v}).
"\n";
}

View File

@@ -1,5 +1,10 @@
#!/usr/local/bin/perl
# Show a form for setting up DNSSEC verification and trusted keys
use strict;
use warnings;
# Globals
our (%access, %text);
our $dnssec_dlv_zone;
require './bind8-lib.pl';
&ReadParse();
@@ -7,11 +12,11 @@ $access{'defaults'} || &error($text{'trusted_ecannot'});
&supports_dnssec_client() || &error($text{'trusted_esupport'});
&ui_print_header(undef, $text{'trusted_title'}, "",
undef, undef, undef, undef, &restart_links());
$conf = &get_config();
$options = &find("options", $conf);
$mems = $options->{'members'};
@dlv = &find("dnssec-lookaside", $mems);
$tkeys = &find("trusted-keys", $conf);
my $conf = &get_config();
my $options = &find("options", $conf);
my $mems = $options->{'members'};
my @dlv = &find("dnssec-lookaside", $mems);
my $tkeys = &find("trusted-keys", $conf);
$tkeys ||= { 'members' => [ ] };
# Check if not setup at all
@@ -43,10 +48,10 @@ if (&supports_dnssec_client() == 2) {
print &ui_table_hr();
# Trusted DLVs
@dtable = ( );
$i = 0;
foreach $d (@dlv, { 'values' => [ '.' ] }) {
$dlv = $d->{'values'}->[0];
my @dtable = ( );
my $i = 0;
foreach my $d (@dlv, { 'values' => [ '.' ] }) {
my $dlv = $d->{'values'}->[0];
$dlv = "" if ($dlv eq ".");
push(@dtable, [ &ui_opt_textbox("anchor_$i", $d->{'values'}->[2],
30, $text{'trusted_none'}),
@@ -60,11 +65,11 @@ print &ui_table_row($text{'trusted_dlvs'},
\@dtable), 3);
# Trusted keys
@ktable = ( );
my @ktable = ( );
$i = 0;
foreach $k (@{$tkeys->{'members'}}, { }) {
@v = @{$k->{'values'}};
@wrapped = ( );
foreach my $k (@{$tkeys->{'members'}}, { 'values' => [ ] }) {
my @v = @{$k->{'values'}};
my @wrapped = ( );
while(length($v[3]) > 30) {
push(@wrapped, substr($v[3], 0, 30));
$v[3] = substr($v[3], 30);

View File

@@ -1,6 +1,10 @@
#!/usr/local/bin/perl
# conf_zonedef.cgi
# Display defaults for master zones
use strict;
use warnings;
# Globals
our (%access, %text, %config);
require './bind8-lib.pl';
$access{'defaults'} || &error($text{'zonedef_ecannot'});
@@ -10,6 +14,7 @@ $access{'defaults'} || &error($text{'zonedef_ecannot'});
# Start of defaults for new zones form
print &ui_form_start("save_zonedef.cgi", "post");
print &ui_table_start($text{'zonedef_msg'}, "width=100%", 4);
my %zd;
&get_zone_defaults(\%zd);
# Default refresh time
@@ -33,9 +38,9 @@ print &ui_table_row($text{'master_minimum'},
&time_unit_choice("minunit", $zd{'minunit'}));
# Records for new zones, as a table
@table = ( );
for($i=0; $i<2 || $config{"tmpl_".($i-1)}; $i++) {
@c = split(/\s+/, $config{"tmpl_$i"}, 3);
my @table = ( );
for(my $i=0; $i<2 || $config{"tmpl_".($i-1)}; $i++) {
my @c = split(/\s+/, $config{"tmpl_$i"}, 3);
push(@table, [ &ui_textbox("name_$i", $c[0], 15),
&ui_select("type_$i", $c[1],
[ map { [ $_, $text{"type_".$_} ] }
@@ -89,7 +94,7 @@ if (&supports_dnssec()) {
[ &list_dnssec_algorithms() ]), 3);
# Default size
$sizedef = $config{'tmpl_dnssecsizedef'};
my $sizedef = $config{'tmpl_dnssecsizedef'};
$sizedef = 1 if ($sizedef eq '');
print &ui_table_row($text{'zonedef_size'},
&ui_radio("size_def", $sizedef,
@@ -108,17 +113,18 @@ if (&supports_dnssec()) {
print &ui_table_end();
# Start of table for global BIND options
$conf = &get_config();
$options = &find("options", $conf);
$mems = $options->{'members'};
foreach $c (&find("check-names", $mems)) {
my $conf = &get_config();
my $options = &find("options", $conf);
my $mems = $options->{'members'};
my %check;
foreach my $c (&find("check-names", $mems)) {
$check{$c->{'values'}->[0]} = $c->{'values'}->[1];
}
print &ui_table_start($text{'zonedef_msg2'}, "width=100%", 4);
print &addr_match_input($text{'zonedef_transfer'}, "allow-transfer", $mems);
print &addr_match_input($text{'zonedef_query'}, "allow-query", $mems);
print &addr_match_input($text{'master_notify2'}, "allow-notify", $mems);
print &addr_match_input($text{'master_notify2'}, "also-notify", $mems);
print &ignore_warn_fail($text{'zonedef_cmaster'}, 'master', $check{'master'});
print &ignore_warn_fail($text{'zonedef_cslave'}, 'slave', $check{'slave'});

View File

@@ -1,13 +1,17 @@
#!/usr/local/bin/perl
# convert_master.cgi
# Convert a master zone into a slave
use strict;
use warnings;
# Globals
our (%access, %text, %in, %config);
require './bind8-lib.pl';
&ReadParse();
&error_setup($text{'convert_err'});
$zone = &get_zone_name_or_error($in{'zone'}, $in{'view'});
$zconf = &zone_to_config($zone);
my $zone = &get_zone_name_or_error($in{'zone'}, $in{'view'});
my $zconf = &zone_to_config($zone);
$access{'slave'} || &error($text{'screate_ecannot1'});
&lock_file(&make_chroot($zconf->{'file'}));
@@ -18,7 +22,7 @@ $access{'slave'} || &error($text{'screate_ecannot1'});
# Add a masters section
if ($config{'default_master'}) {
@mdirs = map { { 'name' => $_ } } split(/\s+/, $config{'default_master'});
my @mdirs = map { { 'name' => $_ } } split(/\s+/, $config{'default_master'});
&save_directive($zconf, 'masters', [ { 'name' => 'masters',
'type' => 1,
'members' => \@mdirs } ], 1);

View File

@@ -1,16 +1,20 @@
#!/usr/local/bin/perl
# convert_slave.cgi
# Convert a slave/stub zone into a master
use strict;
use warnings;
# Globals
our (%access, %text, %in);
require './bind8-lib.pl';
&ReadParse();
&error_setup($text{'convert_err'});
$zone = &get_zone_name_or_error($in{'zone'}, $in{'view'});
$zconf = &zone_to_config($zone);
my $zone = &get_zone_name_or_error($in{'zone'}, $in{'view'});
my $zconf = &zone_to_config($zone);
$access{'master'} || &error($text{'mcreate_ecannot'});
$file = &find_value("file", $zconf->{'members'});
my $file = &find_value("file", $zconf->{'members'});
if (!$file) {
&error($text{'convert_efile'});
}
@@ -35,9 +39,9 @@ if (!-s $file) {
if (&is_raw_format_records($file)) {
&has_command("named-compilezone") ||
&error($text{'convert_ebinary'});
$temp = &transname();
my $temp = &transname();
&copy_source_dest($file, $temp);
$out = &backquote_logged("named-compilezone -f raw -F text ".
my $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 ($?);

View File

@@ -1,15 +1,20 @@
#!/usr/local/bin/perl
# create_forward.cgi
# Create a new forward zone
use strict;
use warnings;
# Globals
our (%access, %text, %in, %config);
require './bind8-lib.pl';
&ReadParse();
&error_setup($text{'dcreate_err'});
$access{'delegation'} || &error($text{'dcreate_ecannot'});
$access{'ro'} && &error($text{'master_ero'});
$conf = &get_config();
my $conf = &get_config();
my $vconf;
if ($in{'view'} ne '') {
$view = $conf->[$in{'view'}];
my $view = $conf->[$in{'view'}];
&can_edit_view($view) || &error($text{'master_eviewcannot'});
$vconf = $view->{'members'};
}
@@ -19,7 +24,7 @@ else {
# validate inputs
if ($in{'rev'}) {
local($ipv4);
my $ipv4;
($ipv4 = &check_net_ip($in{'zone'})) ||
$config{'support_aaaa'} &&
(($in{'zone'} =~ /^([\w:]+)(\/\d+)$/) || &check_ip6address($1)) ||
@@ -38,15 +43,14 @@ else {
&error(&text('create_edom', $in{'zone'}));
}
$in{'zone'} =~ s/\.$//;
foreach $z (&find("zone", $vconf)) {
foreach my $z (&find("zone", $vconf)) {
if (lc($z->{'value'}) eq lc($in{'zone'})) {
&error($text{'master_etaken'});
}
}
# Create structure
@mdirs = map { { 'name' => $_ } } @masters;
$dir = { 'name' => 'zone',
my $dir = { 'name' => 'zone',
'values' => [ $in{'zone'} ],
'type' => 1,
'members' => [ { 'name' => 'type',
@@ -59,7 +63,7 @@ $dir = { 'name' => 'zone',
&webmin_log("create", "delegation", $in{'zone'}, \%in);
# Get the new zone's index
$idx = &get_zone_index($in{'zone'}, $in{'view'});
my $idx = &get_zone_index($in{'zone'}, $in{'view'});
&add_zone_access($in{'zone'});
&redirect("edit_delegation.cgi?zone=$in{'zone'}&view=$in{'view'}");

View File

@@ -1,15 +1,20 @@
#!/usr/local/bin/perl
# create_forward.cgi
# Create a new forward zone
use strict;
use warnings;
# Globals
our (%access, %text, %in, %config);
require './bind8-lib.pl';
&ReadParse();
&error_setup($text{'fcreate_err'});
$access{'forward'} || &error($text{'fcreate_ecannot'});
$access{'ro'} && &error($text{'master_ero'});
$conf = &get_config();
my $conf = &get_config();
my $vconf;
if ($in{'view'} ne '') {
$view = $conf->[$in{'view'}];
my $view = $conf->[$in{'view'}];
&can_edit_view($view) || &error($text{'master_eviewcannot'});
$vconf = $view->{'members'};
}
@@ -19,7 +24,7 @@ else {
# validate inputs
if ($in{'rev'}) {
local($ipv4);
my $ipv4;
($ipv4 = &check_net_ip($in{'zone'})) ||
$config{'support_aaaa'} &&
(($in{'zone'} =~ /^([\w:]+)(\/\d+)$/) || &check_ip6address($1)) ||
@@ -38,23 +43,23 @@ else {
&error(&text('create_edom', $in{'zone'}));
}
$in{'zone'} =~ s/\.$//;
@masters = split(/\s+/, $in{'masters'});
foreach $m (@masters) {
my @masters = split(/\s+/, $in{'masters'});
foreach my $m (@masters) {
&check_ipaddress($m) || &check_ip6address($m) ||
&error(&text('create_emaster', $m));
}
#if (!@masters) {
# &error($text{'create_enone'});
# }
foreach $z (&find("zone", $vconf)) {
foreach my $z (&find("zone", $vconf)) {
if (lc($z->{'value'}) eq lc($in{'zone'})) {
&error($text{'master_etaken'});
}
}
# Create structure
@mdirs = map { { 'name' => $_ } } @masters;
$dir = { 'name' => 'zone',
my @mdirs = map { { 'name' => $_ } } @masters;
my $dir = { 'name' => 'zone',
'values' => [ $in{'zone'} ],
'type' => 1,
'members' => [ { 'name' => 'type',
@@ -70,7 +75,7 @@ $dir = { 'name' => 'zone',
&webmin_log("create", "forward", $in{'zone'}, \%in);
# Get the new zone's index
$idx = &get_zone_index($in{'zone'}, $in{'view'});
my $idx = &get_zone_index($in{'zone'}, $in{'view'});
&add_zone_access($in{'zone'});
&redirect("edit_forward.cgi?zone=$in{'zone'}&view=$in{'view'}");

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