made the code looking more common.
--- 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