local.pm.ex-2
changeset 29 dcebfb4a011c
child 30 b642c116da13
--- /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: