local.pm.ex-2
changeset 29 dcebfb4a011c
child 30 b642c116da13
equal deleted inserted replaced
28:396bb8f13f95 29:dcebfb4a011c
       
     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: