Handle hostnames with upper-case letters
[webmin.git] / bind8 / save_dnssec.cgi
1 #!/usr/local/bin/perl
2 # Turn on or off the DNSSEC key rotation cron job
3
4 require './bind8-lib.pl';
5 &foreign_require("cron", "cron-lib.pl");
6 &ReadParse();
7 &error_setup($text{'dnssec_err'});
8 $access{'defaults'} || &error($text{'dnssec_ecannot'});
9
10 $in{'period'} =~ /^[1-9]\d*$/ || &error($text{'dnssec_eperiod'});
11
12 # Create or delete the cron job
13 $job = &get_dnssec_cron_job();
14 if ($job && !$in{'enabled'}) {
15         # Turn off cron job
16         &lock_file(&cron::cron_file($job));
17         &cron::delete_cron_job($job);
18         &unlock_file(&cron::cron_file($job));
19         }
20 elsif (!$job && $in{'enabled'}) {
21         # Turn on cron job
22         $job = { 'user' => 'root',
23                  'active' => 1,
24                  'command' => $dnssec_cron_cmd,
25                  'mins' => int(rand()*60),
26                  'hours' => int(rand()*24),
27                  'days' => '*',
28                  'months' => '*',
29                  'weekdays' => '*' };
30         &lock_file(&cron::cron_file($job));
31         &cron::create_cron_job($job);
32         &unlock_file(&cron::cron_file($job));
33         }
34 &cron::create_wrapper($dnssec_cron_cmd, $module_name, "resign.pl");
35
36 &lock_file($module_config_file);
37 $config{'dnssec_period'} = $in{'period'};
38 &save_module_config();
39 &unlock_file($module_config_file);
40
41 &webmin_log("dnssec");
42 &redirect("");
43