# HG changeset patch # User Heiko Schlittermann # Date 1293715041 -3600 # Node ID ea0afdd6b02676a8b0ec703056297198f7056fd6 # Parent 86418a892c76dadc91bcb2847d024c8cfae46ad2 unlink_unused_keys diff -r 86418a892c76 -r ea0afdd6b026 update-serial.pl --- a/update-serial.pl Thu Dec 30 12:42:59 2010 +0100 +++ b/update-serial.pl Thu Dec 30 14:17:21 2010 +0100 @@ -21,7 +21,7 @@ sub need_rollover(); sub done_rollover(); sub begin_rollover(@); -sub kill_useless_keys($); +sub unlink_unused_keys($); sub sign_zone; sub update_serial; @@ -474,7 +474,7 @@ say $fh 0; close($fh); - kill_useless_keys($zone); + unlink_unused_keys($zone); &key_to_zonefile($zone); push @r, $zone; } @@ -508,30 +508,27 @@ close(ZONEFILE); } -sub kill_useless_keys($) { +sub unlink_unused_keys($) { # die funktion loescht alle schluessel die nicht in der index.zsk # der uebergebenen zone stehen my $zone = shift; - my @keys = (); + my @keys; my $dir = "$config{master_dir}/$zone"; { # collect the keys and cut everything except the key id + # we cut the basenames (w/o the .private|.key suffix) open(my $zsk, "<$dir/.index.zsk") or die "$dir/.index.zsk: $!\n"; open(my $ksk, "<$dir/.index.ksk") or die "$dir/.index.ksk: $!\n"; - @keys = map { basename $_, ".private", ".key" } (<$zsk>, <$ksk>); + @keys = (<$zsk>, <$ksk>); } - ### @keys - # prueft alle schluesseldateien (ksk, zsk) ob sie in der jeweiligen # indexdatei beschrieben sind. wenn nicht werden sie geloescht. - # ---- <><><><> - for my $file (grep /(?:key|private)$/ => glob "$config{master_dir}/$zone/K*") { - $file = basename $file, ".private", ".key"; - unlink "$file.key", "$file.private" if $file ~~ @keys; + for my $file (glob "$dir/K*.key $dir/K*.private") { + unlink $file if basename($file, ".key", ".private") ~~ @keys; } } @@ -559,7 +556,7 @@ print INDEX $last_key; close(INDEX); } - kill_useless_keys($zone); + unlink_unused_keys($zone); &key_to_zonefile($zone); push @new_serial, $zone; }