dnl ###
dnl ### NSC -- BIND Config File Builder
-dnl ### (c) 1997--2003 Martin Mares <mj@ucw.cz>
+dnl ### (c) 1997--2006 Martin Mares <mj@ucw.cz>
dnl ###
include(m4/dnslib.m4)
define(`DO_PRIMARY', `divert(0)zone "$1" in {
type master;
file "ZONEDIR/nsc_file_name($2)";
+ZZ_OPTIONS()dnl
};
divert(-1)')
type slave;
file "BAKDIR/nsc_file_name($1)";
masters { $2; };
+ZZ_OPTIONS()dnl
};
divert(-1)')
# Definition of forwarders for both normal and slave mode
-define(`FORWard', `patsubst(`$@',`,',`; ')')
-define(`FORWArd', `divert(0) forward $1;
+define(`FORWard', `patsubst(`$*',`,',`; ')')
+define(`FORWArd', ` forward $1;
forwarders { FORWard(shift($@),)};
-divert(-1)')
+')
define(`FORWARD', `FORWArd(first, $@)')
define(`SLAVE', `FORWArd(only, $@)')
divert(-1)')
+# Definition of a forwarding zone
+
+define(`FORWARDING', `divert(0)zone "$1" in {
+ type forward;
+ forward only;
+ forwarders { FORWard(shift($@),)};
+ZZ_OPTIONS()dnl
+};
+
+divert(-1)')
+
+# Blackhole zones
+
+define(`BLACKHOLE', `divert(0)zone "$1" in {
+ type master;
+ file "zone/blackhole";
+};
+
+divert(-1)')
+
# Manual insertion of config file material
define(`CONFIG', `divert(0)$1
divert(-1)')
+# Setting domain options
+
+define(`ZZ_OPTIONS', `')
+
+define(`ZONE_OPTIONS', `define(`ZZ_OPTIONS', ifelse(`$1',`',`',`` $1''))')
+
# The preamble
divert(0)dnl