dnssec-sign
changeset 22 7229d1c95ea8
parent 21 6715f8f9d04c
child 24 b1234b9824f0
--- 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" );