lib/DNStools/UpdateSerial.pm
changeset 150 3db363880766
parent 138 046d8e631700
--- a/lib/DNStools/UpdateSerial.pm	Thu Jun 30 15:19:33 2011 +0200
+++ b/lib/DNStools/UpdateSerial.pm	Thu Jun 30 16:24:32 2011 +0200
@@ -32,22 +32,22 @@
 use POSIX qw(strftime);
 use if $ENV{DEBUG} => "Smart::Comments";
 
-
 BEGIN {
 
     our ($VERSION, @ISA, @EXPORT);
     use Exporter;
 
     # set the version for version checking
-    $VERSION     = 1.00;
+    $VERSION = 1.00;
+
     # if using RCS/CVS, this may be preferred
     $VERSION = sprintf "%d.%03d", q$Revision: 1.1 $ =~ /(\d+)/g;
 
-    @ISA         = qw(Exporter);
-    @EXPORT      = qw(&uniq &zones &changed_zones &update_index
-    &signature_expired &need_rollover &done_rollover &begin_rollover
-    &end_rollover &unlink_unused_keys &include_keys &sign &update_serial
-    &mk_zone_conf &file_entry &server_reload &dnssec_enabled %config);
+    @ISA    = qw(Exporter);
+    @EXPORT = qw(&uniq &zones &changed_zones &update_index
+      &signature_expired &need_rollover &done_rollover &begin_rollover
+      &end_rollover &unlink_unused_keys &include_keys &sign &update_serial
+      &mk_zone_conf &file_entry &server_reload &dnssec_enabled %config);
 }
 
 our %config;
@@ -111,8 +111,9 @@
             next;
         }
 
-        my $stamp_mtime = (stat _)[9];
-        my $zone_file_mtime  = (stat "$_/$zone")[9] or die "Can't stat '$_/$zone': $!";
+        my $stamp_mtime     = (stat _)[9];
+        my $zone_file_mtime = (stat "$_/$zone")[9]
+          or die "Can't stat '$_/$zone': $!";
 
         # stamp age 'wins' if mtimes are equal because update_serial will both
         # modify the zonefile and update the stamp which both is likely to
@@ -182,7 +183,8 @@
 sub update_serial($) {
 
     my $zone = shift;
-#    say "XXX: $zone: updating serial number";
+
+    #    say "XXX: $zone: updating serial number";
 
     my $file = "$config{master_dir}/$zone/$zone";
     my $in   = IO::File->new($file) or die "Can't open $file: $!\n";
@@ -203,9 +205,9 @@
       or die "Can't rename tmp to $file: $!\n";
 
     my $perms = (stat $file)[2] & 07777 | 040
-        or die "Can't stat '$file': $!";
+      or die "Can't stat '$file': $!";
     chmod $perms, $file
-        or die "Can't 'chmod $perms, $file': $!";
+      or die "Can't 'chmod $perms, $file': $!";
 
     $serial =~ s/\s*//g;
     say " * $zone: serial incremented to $serial";
@@ -213,7 +215,8 @@
     open(my $stamp, ">", dirname($file) . "/.stamp");
 
     say " * $zone: stamp aktualisiert";
-#    say " XXX $zone: stamp '$s' aktualisiert";
+
+    #    say " XXX $zone: stamp '$s' aktualisiert";
 }
 
 sub new_serial($) {
@@ -274,9 +277,9 @@
     }
 
     my $perms = (stat _)[2] & 07777 | 040
-        or die "Can't stat '$izf': $!";
+      or die "Can't stat '$izf': $!";
     chmod $perms, $izf
-        or die "Can't 'chmod $perms, $izf': $!";
+      or die "Can't 'chmod $perms, $izf': $!";
 
     say "** index-zone aktualisiert";
     return $indexzone;
@@ -296,16 +299,18 @@
         my $cf = "$cd/$z";
         my $de = dnssec_enabled $z, "$md/$config{indexzone}/$config{indexzone}";
         my $suf = $de ? '.signed' : '';
-        # TODO: assuming that paths in $md and in zone config snippets match somehow
+
+    # TODO: assuming that paths in $md and in zone config snippets match somehow
         my $zr = qr{\Q$z/$z$suf\E$};
         my $zf = "$md/$z/$z$suf";
 
         my ($files, $changed) = (0, 0);
         my $czf;
         open C, "+<$cf" or die "Cant't open '$cf': $!";
-        my @lines = <C>; # TODO: deal with race condition?
+        my @lines = <C>;    # TODO: deal with race condition?
         my @oldlines;
-        my ($mode, $uid, $gid, $atime, $mtime) = (stat C)[2, 4, 5, 8, 9] or die "Can't stat: $!";
+        my ($mode, $uid, $gid, $atime, $mtime) = (stat C)[2, 4, 5, 8, 9]
+          or die "Can't stat: $!";
         $mode &= 07777;
         for (@lines) {
             next unless /^\s*file\s+"([^"]*)"\s*;\s*$/;
@@ -318,20 +323,24 @@
             }
         }
 
-        die "Multiple file statements found in '$cf' (maybe inside multiline comments)" if $files > 1;
+        die
+"Multiple file statements found in '$cf' (maybe inside multiline comments)"
+          if $files > 1;
         next unless $changed;
 
-        # file statement in config snippet doesnt match, so we make a backup first and write a new config
+# file statement in config snippet doesnt match, so we make a backup first and write a new config
         my $cb = "$cf.bak";
         open B, ">$cb" or die "Can't open '$cb': $!";
         print B @oldlines;
         close B;
         chown $uid, $gid, $cb or die "Can't 'chown $uid, $gid, $cb': $!";
         chmod $mode, $cb or die "Can't 'chmod $mode, $cb': $!";
-        utime $atime, $mtime, $cb or die "Can't 'utime $atime, $mtime, $cb': $!";
+        utime $atime, $mtime, $cb
+          or die "Can't 'utime $atime, $mtime, $cb': $!";
 
         truncate C, 0 or die "Can't truncate C, 0: $!";
         seek C, 0, 0 or die "Can't seek C, 0, 0: $!";
+
         # write back @lines we modified earlier
         print C @lines;
         close C;
@@ -368,12 +377,12 @@
 
 sub done_rollover() {
 
-    # funktion ueberprueft ob ein keyrollover fertig ist
-    # die bedingung dafuer ist das:
-    # - eine datei .index.zsk vorhanden ist
-    # - die letzte änderung an der datei .index.zsk länger her ist als die abl_zeit
-    # - die datei .index.zsk ueber mehr als eine zeile gross ist
-    #   (also mehr als einen Schlüssel enthält)
+# funktion ueberprueft ob ein keyrollover fertig ist
+# die bedingung dafuer ist das:
+# - eine datei .index.zsk vorhanden ist
+# - die letzte änderung an der datei .index.zsk länger her ist als die abl_zeit
+# - die datei .index.zsk ueber mehr als eine zeile gross ist
+#   (also mehr als einen Schlüssel enthält)
     my @r;
     my $now = time;
 
@@ -537,7 +546,8 @@
 
     open I, "<$if" or die "Can't open index zone file '<$if': $!";
     while (<I>) {
-#        say "XXX: match: $_" if /$re/;
+
+        #        say "XXX: match: $_" if /$re/;
         $r = $1 eq 'on' and last if /$re/;
     }
     close I;