Handle hostnames with upper-case letters
[webmin.git] / webmin / change_log.cgi
1 #!/usr/local/bin/perl
2 # change_log.cgi
3 # Enable or disable logging
4
5 require './webmin-lib.pl';
6 &ReadParse();
7 &error_setup($text{'log_err'});
8
9 &lock_file($ENV{'MINISERV_CONFIG'});
10 &get_miniserv_config(\%miniserv);
11 $miniserv{'log'} = $in{'log'};
12 $miniserv{'loghost'} = $in{'loghost'};
13 $miniserv{'logclf'} = $in{'logclf'};
14 $miniserv{'logclear'} = $in{'logclear'};
15 !$in{'logclear'} || $in{'logtime'} =~ /^[1-9][0-9]*$/ ||
16         &error(&text('log_ehours', $in{'logtime'}));
17 $miniserv{'logtime'} = $in{'logtime'};
18 if ($in{'perms_def'}) {
19         delete($miniserv{'logperms'});
20         }
21 else {
22         $in{'perms'} =~ /^[0-7]{3,4}$/ || &error($text{'log_eperms'});
23         $miniserv{'logperms'} = $in{'perms'};
24         }
25 if (defined($in{'login'})) {
26         if ($in{'login'}) {
27                 # Create and user login wrapper scripts
28                 &foreign_require("cron");
29                 &cron::create_wrapper($record_login_cmd,"","record-login.pl");
30                 &cron::create_wrapper($record_logout_cmd,"","record-logout.pl");
31                 $miniserv{'login_script'} = $record_login_cmd;
32                 $miniserv{'logout_script'} = $record_logout_cmd;
33                 }
34         else {
35                 # Stop using
36                 delete($miniserv{'login_script'});
37                 delete($miniserv{'logout_script'});
38                 }
39         }
40 &put_miniserv_config(\%miniserv);
41 &unlock_file($ENV{'MINISERV_CONFIG'});
42
43 $gconfig{'log'} = $in{'log'};
44 $gconfig{'logtime'} = $in{'logtime'};
45 $gconfig{'logclear'} = $in{'logclear'};
46 $gconfig{'logusers'} =
47         $in{'uall'} ? '' : join(" ", split(/\0/, $in{'users'}));
48 $gconfig{'logmodules'} =
49         $in{'mall'} ? '' : join(" ", split(/\0/, $in{'modules'}));
50 $gconfig{'logfiles'} = $in{'logfiles'};
51 $gconfig{'logfullfiles'} = $in{'logfullfiles'};
52 $gconfig{'logperms'} = $miniserv{'logperms'};
53 !$in{'logfiles'} || &has_command("diff") ||
54         &error(&text('log_ediff', "diff"));
55 $gconfig{'logsyslog'} = $in{'logsyslog'} if (defined($in{'logsyslog'}));
56 &lock_file("$config_directory/config");
57 &write_file("$config_directory/config", \%gconfig);
58 &unlock_file("$config_directory/config");
59
60 &show_restart_page();
61 &webmin_log("log", undef, undef, \%in);
62