# HG changeset patch # User Heiko Schlittermann # Date 1292944816 -3600 # Node ID 04cefcf6f4ac0b326fa0ce0006e1146c96e46916 # Parent 8b487ebf8d994f31e201fe083a22c71ca5352c89 made the code looking more common. diff -r 8b487ebf8d99 -r 04cefcf6f4ac update-serial.pl --- a/update-serial.pl Tue Dec 21 15:39:50 2010 +0100 +++ b/update-serial.pl Tue Dec 21 16:20:16 2010 +0100 @@ -1,16 +1,15 @@ #!/usr/bin/perl +use v5.10; use strict; use warnings; use FindBin; use File::Basename; -sub del_double { - - # entfernt doppelte eintraege in einer liste +sub uniq { my %all; - grep { $all{$_} = 0 } @_; - return (keys %all); + @all{@_} = (); + keys %all; } sub read_conf { @@ -85,8 +84,7 @@ our @new_serial; # erzeugt $time (die zeit ab der neu signiert werden soll) - chomp(my $unixtime = `date +%s`); - $unixtime = $unixtime + (3600 * $sign_alert_time); + my $unixtime = time + (3600 * $sign_alert_time); my $time = `date -d \@$unixtime +%Y%m%d%H`; ## vergleicht fuer alle zonen im ordner $master_dir mit einer @@ -121,7 +119,7 @@ my $zone; my $kc; - for (&del_double(@new_serial)) { + for (uniq(@new_serial)) { $zone = $_; unless (-e "$master_dir/$zone/.index.zsk") { @@ -159,7 +157,7 @@ my $scount; my $serial; - for (&del_double(@new_serial)) { + for (uniq(@new_serial)) { # erhoeht den serial my $zone = $_; @@ -393,7 +391,7 @@ our $master_dir; our @new_serial; - for (&del_double(@begin_ro_list)) { + for (uniq(@begin_ro_list)) { #erzeugt zsks my $zone = $_; @@ -526,41 +524,45 @@ } } -&read_conf; +MAIN: { + + read_conf; -our %config; -our @new_serial; # liste fuer neuen serial -our @begin_ro_list; # liste mit zonen deren key-rollover beginnt -our @end_ro_list; # liste mit zonen deren key-rollover fertig ist -our $master_dir = $config{master_dir}; -our $bind_dir = $config{bind_dir}; -our $conf_dir = $config{zone_conf_dir}; -our $sign_alert_time = $config{sign_alert_time}; -our $indexzone = $config{indexzone}; -our $key_counter_end = $config{key_counter_end}; -our $ablauf_zeit = $config{abl_zeit}; + our %config; + our @new_serial; # liste fuer neuen serial + our @begin_ro_list; # liste mit zonen deren key-rollover beginnt + our @end_ro_list; # liste mit zonen deren key-rollover fertig ist + our $master_dir = $config{master_dir}; + our $bind_dir = $config{bind_dir}; + our $conf_dir = $config{zone_conf_dir}; + our $sign_alert_time = $config{sign_alert_time}; + our $indexzone = $config{indexzone}; + our $key_counter_end = $config{key_counter_end}; + our $ablauf_zeit = $config{abl_zeit}; -&add_argv; -&changed_zone; -&sign_end; + add_argv; + changed_zone; + sign_end; -&to_begin_ro; # prueft nach beginnenden rollover-verfahren -&to_end_ro; # prueft nach endenden rollover-verfahren + to_begin_ro; # prueft nach beginnenden rollover-verfahren + to_end_ro; # prueft nach endenden rollover-verfahren + + if (@begin_ro_list) { + begin_ro; # eine rollover-beginn-sequenz + } + + if (@end_ro_list) { + end_ro; # eine rollover-end-squenz + } -if (@begin_ro_list) { - &begin_ro; # eine rollover-beginn-sequenz -} + if (@new_serial) { + update_index; # index zone aktuallisieren + update_serial; # serial aktuallisieren + sign_zone; # zone signieren + } -if (@end_ro_list) { - &end_ro; # eine rollover-end-squenz + file_entry; # bearbeitet die file-eintraege der konfigurations-datei + mk_zone_conf; # konfiguration zusammenfuegen + server_reload; # server neu laden + } - -if (@new_serial) { - &update_index; # index zone aktuallisieren - &update_serial; # serial aktuallisieren - &sign_zone; # zone signieren -} - -&file_entry; # bearbeitet die file-eintraege der konfigurations-datei -&mk_zone_conf; # konfiguration zusammenfuegen -&server_reload; # server neu laden