diff -r 6715f8f9d04c -r 7229d1c95ea8 dnssec-sign --- 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 () { + 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 = ; 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" );