diff -r d33fd3eee469 -r 3d3e09a0c028 update-serial.pl --- a/update-serial.pl Tue Dec 28 15:35:05 2010 +0100 +++ b/update-serial.pl Tue Dec 28 15:36:19 2010 +0100 @@ -3,6 +3,7 @@ use v5.10; use strict; use warnings; + use FindBin; use File::Basename; use Pod::Usage; @@ -53,10 +54,10 @@ map { $_ => $opt{$_} } grep { defined $opt{$_} } keys %opt ); - our @new_serial; # DO NOT USE - our @end_ro_list; # liste mit zonen deren key-rollover fertig ist - our $bind_dir = $config{bind_dir}; - our $conf_dir = $config{zone_conf_dir}; + our @new_serial; # DO NOT USE + our @end_ro_list; # liste mit zonen deren key-rollover fertig ist + our $bind_dir = $config{bind_dir}; + our $conf_dir = $config{zone_conf_dir}; my @candidates = @ARGV ? zones(@ARGV) : changed_zones; push @candidates, update_index($config{indexzone}); @@ -69,20 +70,19 @@ ### @done_rollover exit; - if (@need_rollover) { - begin_ro; # eine rollover-beginn-sequenz + begin_ro; # eine rollover-beginn-sequenz } if (@end_ro_list) { - end_ro; # eine rollover-end-squenz + end_ro; # eine rollover-end-squenz } if (@new_serial) { #--update_index; # index zone aktuallisieren - update_serial; # serial aktuallisieren - sign_zone; # zone signieren + update_serial; # serial aktuallisieren + sign_zone; # zone signieren } file_entry; # bearbeitet die file-eintraege der konfigurations-datei @@ -166,22 +166,23 @@ # (see external configuration) my @r; - # erzeugt $time (die zeit ab der neu signiert werden soll) - # ... warum eigentlich nur bis zu den Stunden und nicht auch Minuten und Sekunden? +# erzeugt $time (die zeit ab der neu signiert werden soll) +# ... warum eigentlich nur bis zu den Stunden und nicht auch Minuten und Sekunden? my $time = strftime("%Y%m%d%H" => localtime time + 3600 * $sign_alert_time); ## vergleicht fuer alle zonen im ordner $config{master_dir} mit einer ## .signed-datei den zeitpunkt in $time mit dem ablaufdatum der ## signatur, welcher aus der datei .signed ausgelesen wird. - ZONE: while (my $dir = glob "$config{master_dir}/*") { + ZONE: while (my $dir = glob "$config{master_dir}/*") { my $zone = basename $dir; - next if not -e "$dir/$zone.signed"; + next if not -e "$dir/$zone.signed"; - open(my $fh, "$dir/$zone.signed") or die "Can't open $dir/$zone.signed: $!\n"; - push @r, $zone if - /RRSIG\s+SOA[\d ]+(\d{10})\d{4}\s+\(/ ~~ [<$fh>] - and $1 < $time; + open(my $fh, "$dir/$zone.signed") + or die "Can't open $dir/$zone.signed: $!\n"; + push @r, $zone + if /RRSIG\s+SOA[\d ]+(\d{10})\d{4}\s+\(/ ~~ [<$fh>] + and $1 < $time; } return @r; @@ -383,12 +384,12 @@ my $zone = basename dirname $kc; my $key; - { - open(my $fh, $kc) or die "$kc: $!\n"; - chomp($key = <$fh>); - } + { + open(my $fh, $kc) or die "$kc: $!\n"; + chomp($key = <$fh>); + } - push @r, $zone if $config{key_counter_end} <= $key; + push @r, $zone if $config{key_counter_end} <= $key; } return @r; @@ -401,7 +402,7 @@ # - eine datei .index.zsk vorhanden ist # - die datei .index.zsk älter ist, als die rollover-Zeit # - die datei .index.zsk ueber mehr als eine zeile gross ist - # (also mehr als einen Schlüssel enthält) + # (also mehr als einen Schlüssel enthält) my @r; my $now = time; @@ -412,16 +413,16 @@ my $index_wc; # prueft nach der ".index.zsk"-datei und erstellt den zeitpunkt - # an dem das key-rollover endet. - # rollover is done when mtime of the .index.zsk + abl_zeit is - # in the past - next if not -e "$dir/.index.zsk"; - next if (stat _)[9] + 3600 * $config{abl_zeit} >= $now; + # an dem das key-rollover endet. + # rollover is done when mtime of the .index.zsk + abl_zeit is + # in the past + next if not -e "$dir/.index.zsk"; + next if (stat _)[9] + 3600 * $config{abl_zeit} >= $now; # prueft die anzahl der schluessel in der .index.zsk open(my $fh, "$dir/.index.zsk") or die "$dir/.index.zsk: $!\n"; - (<$fh>); - push @r, $zone if $. > 1; + (<$fh>); + push @r, $zone if $. > 1; } return @r;