38 |
38 |
39 # prueft zonen aus ARGV und loescht das schluesselmaterial |
39 # prueft zonen aus ARGV und loescht das schluesselmaterial |
40 for (@ARGV) { |
40 for (@ARGV) { |
41 chomp ($zone = `idn --quiet $_`); |
41 chomp ($zone = `idn --quiet $_`); |
42 my $zdir = "$master_dir/$zone"; |
42 my $zdir = "$master_dir/$zone"; |
43 if (-e "$master_dir/$zone") { |
43 unless (-e "$master_dir/$zone") { |
44 |
44 print "$zone ist keine verwaltete zone \n"; |
|
45 } else { |
45 if (-e "$zdir/$zone.signed") { unlink "$zdir/$zone.signed"} |
46 if (-e "$zdir/$zone.signed") { unlink "$zdir/$zone.signed"} |
46 if (-e "$zdir/.keycounter") { unlink "$zdir/.keycounter"} |
47 if (-e "$zdir/.keycounter") { unlink "$zdir/.keycounter"} |
47 if (-e "$zdir/.index.ksk") { unlink "$zdir/.index.ksk"} |
48 if (-e "$zdir/.index.ksk") { unlink "$zdir/.index.ksk"} |
48 if (-e "$zdir/.index.zsk") { unlink "$zdir/.index.zsk"} |
49 if (-e "$zdir/.index.zsk") { unlink "$zdir/.index.zsk"} |
49 if (-e "$zdir/dsset-$zone.") { unlink "$zdir/dsset-$zone."} |
50 if (-e "$zdir/dsset-$zone.") { unlink "$zdir/dsset-$zone."} |
50 if (-e "$zdir/keyset-$zone.") { unlink "$zdir/keyset-$zone."} |
51 if (-e "$zdir/keyset-$zone.") { unlink "$zdir/keyset-$zone."} |
51 |
|
52 for (`ls $master_dir/$zone/K*[key,private]`){ unlink $_} |
52 for (`ls $master_dir/$zone/K*[key,private]`){ unlink $_} |
53 |
|
54 } else { |
|
55 print "$zone ist keine verwaltete zone \n"; |
|
56 } |
53 } |
57 } |
54 } |
58 |
55 |
59 # beendet den key-rollover |
56 # beendet den key-rollover |
60 for (<$master_dir/*>) { |
57 for (<$master_dir/*>) { |
67 # prueft nach der ".index.zsk"-datei und erstellt den zeitpunkt |
64 # prueft nach der ".index.zsk"-datei und erstellt den zeitpunkt |
68 # an dem das key-rollover endet. - $status[9] |
65 # an dem das key-rollover endet. - $status[9] |
69 if (-e "$master_dir/$zone/.index.zsk") { |
66 if (-e "$master_dir/$zone/.index.zsk") { |
70 @status = stat("$master_dir/$zone/.index.zsk"); |
67 @status = stat("$master_dir/$zone/.index.zsk"); |
71 $status[9] += (3600 * $ablauf_zeit); |
68 $status[9] += (3600 * $ablauf_zeit); |
72 } else { next; } |
69 } |
|
70 else { |
|
71 next; |
|
72 } |
73 |
73 |
74 # prueft ob das key-rollover-ende erreicht ist |
74 # prueft ob das key-rollover-ende erreicht ist |
75 unless ($status[9] < $now_time ) { |
75 unless ($status[9] < $now_time ) { |
76 next; |
76 next; |
77 } |
77 } |
78 |
78 |
79 # prueft die anzahl der schluessel in der ".index.zsk" |
79 # prueft die anzahl der schluessel in der ".index.zsk" |
80 # loescht alte schluessel |
80 # loescht alte schluessel |
81 open (INDEX, "$master_dir/$zone/.index.zsk"); |
81 open (INDEX, "$master_dir/$zone/.index.zsk") or die "$master_dir/$zone/.index.zsk: $!\n"; |
82 @index = <INDEX>; |
82 @index = <INDEX>; |
83 $index_wc = @index; |
83 $index_wc = @index; |
84 close (INDEX); |
84 close (INDEX); |
85 if ($index_wc > 1) { |
85 if ($index_wc > 1) { |
86 open (INDEX, ">$master_dir/$zone/.index.zsk"); |
86 open (INDEX, ">$master_dir/$zone/.index.zsk")or die "$master_dir/$zone/.index.zsk: $!\n"; |
87 print INDEX $index[1]; |
87 print INDEX $index[1]; |
88 close (INDEX); |
88 close (INDEX); |
89 push @auto, $zone; |
89 push @auto, $zone; |
90 } |
90 } |
91 |
91 |
92 # prueft die anzahl der schluessel in der ".index.ksk" |
92 # prueft die anzahl der schluessel in der ".index.ksk" |
93 # loescht alte schluessel |
93 # loescht alte schluessel |
94 open (INDEX, "$master_dir/$zone/.index.ksk"); |
94 open (INDEX, "$master_dir/$zone/.index.ksk") or die "$master_dir/$zone/.index.ksk: $!\n"; |
95 @index = <INDEX>; |
95 @index = <INDEX>; |
96 $index_wc = @index; |
96 $index_wc = @index; |
97 close (INDEX); |
97 close (INDEX); |
98 if ($index_wc > 1) { |
98 if ($index_wc > 1) { |
99 open (INDEX, ">$master_dir/$zone/.index.ksk"); |
99 open (INDEX, ">$master_dir/$zone/.index.ksk") or die "$master_dir/$zone/.index.ksk: $!\n"; |
100 print INDEX $index[1]; |
100 print INDEX $index[1]; |
101 close (INDEX); |
101 close (INDEX); |
102 push @auto, $zone; |
102 push @auto, $zone; |
103 } |
103 } |
104 |
104 |
112 my @old_zone_content = (); |
112 my @old_zone_content = (); |
113 my @new_zone_content = (); |
113 my @new_zone_content = (); |
114 my @keylist = (); |
114 my @keylist = (); |
115 my $file; |
115 my $file; |
116 |
116 |
117 open (INDEX, "$master_dir/$zone/.index.zsk"); |
117 open (INDEX, "$master_dir/$zone/.index.zsk") or die "$master_dir/$zone/.index.zsk: $!\n"; |
118 @keylist = <INDEX>; |
118 @keylist = <INDEX>; |
119 close (INDEX); |
119 close (INDEX); |
120 |
120 |
121 open (INDEX, "$master_dir/$zone/.index.ksk"); |
121 open (INDEX, "$master_dir/$zone/.index.ksk") or die "$master_dir/$zone/.index.ksk: $!\n"; |
122 push @keylist, <INDEX>; |
122 push @keylist, <INDEX>; |
123 close (INDEX); |
123 close (INDEX); |
124 |
124 |
125 open (ZONE, "$master_dir/$zone/$zone"); |
125 open (ZONE, "$master_dir/$zone/$zone") or die "$master_dir/$zone/$zone: $!\n"; |
126 @old_zone_content = <ZONE>; |
126 @old_zone_content = <ZONE>; |
127 close (ZONE); |
127 close (ZONE); |
128 |
128 |
129 # kuerzt die schluessel-bezeichnung aus der indexdatei auf die |
129 # kuerzt die schluessel-bezeichnung aus der indexdatei auf die |
130 # id um sie besser vergleichen zu koennen. |
130 # id um sie besser vergleichen zu koennen. |
154 $rm_count = 0; |
154 $rm_count = 0; |
155 |
155 |
156 # schluessel die in der indexdatei standen, werden an die |
156 # schluessel die in der indexdatei standen, werden an die |
157 # zonedatei angehangen. |
157 # zonedatei angehangen. |
158 if ($file =~ /.*key/) { |
158 if ($file =~ /.*key/) { |
159 open (KEYFILE, "$file"); |
159 open (KEYFILE, "$file") or die "$file: $!\n"; |
160 push @new_zone_content, <KEYFILE>; |
160 push @new_zone_content, <KEYFILE>; |
161 close (KEYFILE); |
161 close (KEYFILE); |
162 |
162 |
163 last; |
163 last; |
164 } |
164 } |