diff -r 396bb8f13f95 -r dcebfb4a011c local.pm.ex-2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/local.pm.ex-2 Mon Jan 19 10:53:16 2015 +0100 @@ -0,0 +1,51 @@ +# Example +# $Id$ +# $URL$ + +# remove the next line if you know, what you're doing +#die "Sure? You should adapt this file to your needs!"; + +package local; + +# in: zone name +# src ip +# out: 0 failure ($@ contains message) +# !0 ok ($@ may contain message) +sub addZone($$) { + my ($zone, $src) = @_; + my $hdns = '84.19.194.5'; + + # Filename ist für das File selbst und auch für die Konfig + (my $file = $zone) =~ s/[\/&|]/_/g; + + # 84.19.194.5 ist die ip unseres hidden master + my $transferees = $src eq $hdns ? 'localhost; key hh.schlittermann.de' : 'none'; + + my $txt = <<__; +{ + type slave; + file "/etc/cache/bind/slave/$file"; + masters { $src; }; + allow-query { any; }; + allow-transfer { $transferees; }; +}; + +__ + + system rndc => ( + addzone => $zone, + $txt + ); + + if ($?) { + warn "rndc addzone $zone failed\n"; + return 0; + } + + warn "zone $zone added via rndc addzone\n"; + return 1; + +} + +1; +# vim:sts=4 sw=4 aw ai sm: