Handle hostnames with upper-case letters
[webmin.git] / package-updates / save_sched.cgi
1 #!/usr/local/bin/perl
2 # Save scheduled checking options
3
4 require './package-updates-lib.pl';
5 &ReadParse();
6
7 &lock_file($module_config_file);
8 $config{'sched_email'} = $in{'email'};
9 $config{'sched_action'} = $in{'action'};
10 &save_module_config();
11 &unlock_file($module_config_file);
12
13 $oldjob = $job = &find_cron_job();
14 if ($in{'sched_def'}) {
15         if ($job) {
16                 &lock_file(&cron::cron_file($job));
17                 &cron::delete_cron_job($job);
18                 &unlock_file(&cron::cron_file($job));
19                 }
20         $msg = $text{'sched_no'};
21         }
22 else {
23         $job ||= { 'user' => 'root',
24                    'active' => 1,
25                    'command' => $cron_cmd };
26         $job->{'mins'} = $job->{'hours'} = $job->{'days'} =
27                 $job->{'months'} = $job->{'weekdays'} = '*';
28         if ($in{'sched'} eq 'h') {
29                 $job->{'mins'} = int(rand()*60);
30                 }
31         elsif ($in{'sched'} eq 'd') {
32                 $job->{'mins'} = int(rand()*60);
33                 $job->{'hours'} = int(rand()*24);
34                 }
35         elsif ($in{'sched'} eq 'w') {
36                 $job->{'mins'} = int(rand()*60);
37                 $job->{'hours'} = int(rand()*24);
38                 $job->{'weekdays'} = int(rand()*7);
39                 }
40         &lock_file(&cron::cron_file($job));
41         if ($oldjob) {
42                 &cron::change_cron_job($job);
43                 }
44         else {
45                 &cron::create_cron_job($job);
46                 }
47         &unlock_file(&cron::cron_file($job));
48         &lock_file($cron_cmd);
49         &cron::create_wrapper($cron_cmd, $module_name, "update.pl");
50         &unlock_file($cron_cmd);
51         $msg = $text{'sched_yes'};
52         }
53
54 # Tell the user
55 &ui_print_header(undef, $text{'sched_title'}, "");
56
57 print "$msg<p>\n";
58
59 &webmin_log("sched", undef, $in{'sched_def'} ? 0 : 1);
60 &ui_print_footer("index.cgi?mode=$in{'mode'}&search=".
61                  &urlize($in{'search'}), $text{'index_return'});
62