equal
deleted
inserted
replaced
|
1 # Example |
|
2 # $Id$ |
|
3 # $URL$ |
|
4 |
|
5 # remove the next line if you know, what you're doing |
|
6 #die "Sure? You should adapt this file to your needs!"; |
|
7 |
|
8 package local; |
|
9 |
|
10 # in: zone name |
|
11 # src ip |
|
12 # out: 0 failure ($@ contains message) |
|
13 # !0 ok ($@ may contain message) |
|
14 sub addZone($$) { |
|
15 my ($zone, $src) = @_; |
|
16 my $hdns = '84.19.194.5'; |
|
17 |
|
18 # Filename ist für das File selbst und auch für die Konfig |
|
19 (my $file = $zone) =~ s/[\/&|]/_/g; |
|
20 |
|
21 # 84.19.194.5 ist die ip unseres hidden master |
|
22 my $transferees = $src eq $hdns ? 'localhost; key hh.schlittermann.de' : 'none'; |
|
23 |
|
24 my $txt = <<__; |
|
25 { |
|
26 type slave; |
|
27 file "/etc/cache/bind/slave/$file"; |
|
28 masters { $src; }; |
|
29 allow-query { any; }; |
|
30 allow-transfer { $transferees; }; |
|
31 }; |
|
32 |
|
33 __ |
|
34 |
|
35 system rndc => ( |
|
36 addzone => $zone, |
|
37 $txt |
|
38 ); |
|
39 |
|
40 if ($?) { |
|
41 warn "rndc addzone $zone failed\n"; |
|
42 return 0; |
|
43 } |
|
44 |
|
45 warn "zone $zone added via rndc addzone\n"; |
|
46 return 1; |
|
47 |
|
48 } |
|
49 |
|
50 1; |
|
51 # vim:sts=4 sw=4 aw ai sm: |