Handle hostnames with upper-case letters
[webmin.git] / webmin / change_debug.cgi
1 #!/usr/local/bin/perl
2 # Save debug mode options
3
4 require './webmin-lib.pl';
5 &ReadParse();
6 &error_setup($text{'debug_err'});
7
8 # Validate and store inputs
9 &lock_file("$config_directory/config");
10 $gconfig{'debug_enabled'} = $in{'debug_enabled'};
11
12 # What to log
13 $count = 0;
14 foreach $w (@debug_what_events) {
15         $gconfig{'debug_what_'.$w} = $in{'debug_what_'.$w};
16         $count++ if ($in{'debug_what_'.$w});
17         }
18 $count || &error($text{'debug_ewhat'});
19
20 # Log file
21 if ($in{'debug_file_def'}) {
22         delete($gconfig{'debug_file'});
23         }
24 else {
25         $in{'debug_file'} =~ /^(.*\/)([^\/]+)$/ ||
26                 &error($text{'debug_efile'});
27         -d $1 || &error(&text('debug_edir', "$1"));
28         $gconfig{'debug_file'} = $in{'debug_file'};
29         }
30
31 # Size before clearing
32 if ($in{'debug_size_def'}) {
33         delete($gconfig{'debug_size'});
34         }
35 else {
36         $in{'debug_size'} =~ /^\d+$/ || &error($text{'debug_esize'});
37         $gconfig{'debug_size'} = $in{'debug_size'}*$in{'debug_size_units'};
38         }
39
40 # What to debug
41 $gconfig{'debug_noweb'} = !$in{'debug_web'};
42 $gconfig{'debug_nocmd'} = !$in{'debug_cmd'};
43 $gconfig{'debug_nocron'} = !$in{'debug_cron'};
44
45 # Modules
46 if ($in{'mall'}) {
47         delete($gconfig{'debug_modules'});
48         }
49 else {
50         $in{'modules'} || &error($text{'debug_emodules'});
51         $gconfig{'debug_modules'} = join(' ', split(/\0/, $in{'modules'}));
52         }
53
54 # Write out
55 &write_file("$config_directory/config", \%gconfig);
56 &unlock_file("$config_directory/config");
57
58 &webmin_log("debug");
59 &redirect("");
60