--- a/dnssec-sign Thu Jul 29 14:19:56 2010 +0200
+++ b/dnssec-sign Mon Aug 02 11:15:18 2010 +0200
@@ -2,8 +2,22 @@
use strict;
-my $master_dir="/etc/bind/master" ;
-my $sign_alert_time="48"; # zeitraum zwischen signierung und ablauf in h
+my %config;
+open (CONFIG, "dnstools.conf");
+while (<CONFIG>) {
+ chomp;
+ s/#.*//;
+ s/\t//g;
+ s/\s//g;
+
+ next unless length;
+ my ($cname, $ccont) = split (/\s*=\s*/, $_,2);
+ $config{$cname} = $ccont;
+}
+close (CONFIG);
+
+my $master_dir=$config{master_dir} ;
+my $sign_alert_time=$config{sign_alert_time};
my $zone;
my (@manu, @auto);
my @zone_sig_content;
@@ -12,7 +26,8 @@
# prueft zonen aus ARGV und fuegt sie in die liste @manu ein
for (@ARGV) {
- chomp ($zone = `idn --quiet $_`);
+ chomp (my $zone = `idn --quiet "$_"`);
+
if (-e "$master_dir/$zone") {
push @manu, $zone;
} else {
@@ -20,9 +35,6 @@
}
}
-# feststellen des aktuellen zeitpunktes, zuzueglich der $sign_alert_time
-# die ausgabe $time ist im selben format wie in der signed-datei und kann
-# verglichen werden.
chomp (my $unixtime=`date +%s`);
$unixtime = $unixtime + (3600 * $sign_alert_time);
my $time = `date -d \@$unixtime +%Y%m%d%H`;
@@ -40,7 +52,7 @@
@zone_sig_content = <ZONE>;
close (ZONE);
- foreach (@zone_sig_content) {
+ for (@zone_sig_content) {
if (m#SOA.*[0-9]{14}#) {
s#.*([0-9]{10})([0-9]{4}).*#$1#;
if ($_ < $time) {
@@ -56,8 +68,6 @@
s#($master_dir/)(.*)#$2#;
$zone = $_;
-
- print $zone;
if (-e "$master_dir/$zone/.keycounter") {
open (KC, "$master_dir/$zone/.keycounter" );