equal
deleted
inserted
replaced
1 #!/usr/bin/perl -w |
1 #!/usr/bin/perl -w |
2 |
2 |
3 use strict; |
3 use strict; |
4 use FindBin; |
4 use FindBin; |
|
5 |
|
6 sub del_double { |
|
7 my %all; |
|
8 grep { $all{$_} = 0 } @_; |
|
9 return ( keys %all ); |
|
10 } |
5 |
11 |
6 # liest die Konfiguration ein |
12 # liest die Konfiguration ein |
7 my @configs = ( "$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf" ); |
13 my @configs = ( "$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf" ); |
8 my %config; |
14 my %config; |
9 |
15 |
127 } |
133 } |
128 |
134 |
129 # nach abgeschlossenem key-rollover werden fuer die entsprechende zone |
135 # nach abgeschlossenem key-rollover werden fuer die entsprechende zone |
130 # unbenoetigte schluessel entfernt und die vorhandenen schluessel in die |
136 # unbenoetigte schluessel entfernt und die vorhandenen schluessel in die |
131 # zonedatei geschrieben. |
137 # zonedatei geschrieben. |
132 for (@auto) { |
138 for ( &del_double(@auto) ) { |
133 my $zone = $_; |
139 my $zone = $_; |
134 my @old_zone_content = (); |
140 my @old_zone_content = (); |
135 my @new_zone_content = (); |
141 my @new_zone_content = (); |
136 my @kkeylist = (); |
142 my @kkeylist = (); |
137 my @zkeylist = (); |
143 my @zkeylist = (); |
152 @old_zone_content = <ZONE>; |
158 @old_zone_content = <ZONE>; |
153 close(ZONE); |
159 close(ZONE); |
154 |
160 |
155 # kuerzt die schluessel-bezeichnung aus der indexdatei auf die |
161 # kuerzt die schluessel-bezeichnung aus der indexdatei auf die |
156 # id um sie besser vergleichen zu koennen. |
162 # id um sie besser vergleichen zu koennen. |
157 for (@kkeylist, @zkeylist) { |
163 for ( @kkeylist, @zkeylist ) { |
158 chomp; |
164 chomp; |
159 s#K.*\+.*\+(.*)#$1#; |
165 s#K.*\+.*\+(.*)#$1#; |
160 } |
166 } |
161 |
167 |
162 # filtert alle schluessel aus der zonedatei |
168 # filtert alle schluessel aus der zonedatei |
182 # schluessel die in der indexdatei standen, werden an die |
188 # schluessel die in der indexdatei standen, werden an die |
183 # zonedatei angehangen. |
189 # zonedatei angehangen. |
184 if ( $file =~ /.*key/ ) { |
190 if ( $file =~ /.*key/ ) { |
185 |
191 |
186 $file =~ s#/.*/(K.*)#$1#; |
192 $file =~ s#/.*/(K.*)#$1#; |
187 push @new_zone_content, "\$INCLUDE \"$file\"\t\t; dnssec-zsk\n" ; |
193 push @new_zone_content, |
|
194 "\$INCLUDE \"$file\"\t\t; dnssec-zsk\n"; |
188 |
195 |
189 last; |
196 last; |
190 } |
197 } |
191 } |
198 } |
192 } |
199 } |
198 # schluessel die in der indexdatei standen, werden an die |
205 # schluessel die in der indexdatei standen, werden an die |
199 # zonedatei angehangen. |
206 # zonedatei angehangen. |
200 if ( $file =~ /.*key/ ) { |
207 if ( $file =~ /.*key/ ) { |
201 |
208 |
202 $file =~ s#/.*/(K.*)#$1#; |
209 $file =~ s#/.*/(K.*)#$1#; |
203 push @new_zone_content, "\$INCLUDE \"$file\"\t\t; dnssec-ksk\n" ; |
210 push @new_zone_content, |
|
211 "\$INCLUDE \"$file\"\t\t; dnssec-ksk\n"; |
204 |
212 |
205 last; |
213 last; |
206 } |
214 } |
207 } |
215 } |
208 } |
216 } |