--- 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;