dnl ###
-dnl ### NSC 2.2 -- BIND Config File Builder
-dnl ### (c) 1997--1999 Martin Mares <mj@ucw.cz>
+dnl ### NSC -- BIND Config File Builder
+dnl ### (c) 1997--2006 Martin Mares <mj@ucw.cz>
dnl ###
+include(m4/dnslib.m4)
-# Definition of primary domain
+# Definition of primary domains
-define(`PRIMARY', `divert(0)zone "$1" in {
+define(`DO_PRIMARY', `divert(0)zone "$1" in {
type master;
- file "ZONEDIR/$1";
+ file "ZONEDIR/nsc_file_name($2)";
+ZZ_OPTIONS()dnl
};
divert(-1)')
+define(`PRIMARY', `DO_PRIMARY($1,$1)')
+define(`REVERSE', `DO_PRIMARY(REV($1),nsc_if_v6($1,`nsc_revblock6($1)',`nsc_revaddr($1)'))')
+
# Definition of secondary domain
define(`SECONDARY', `divert(0)zone "$1" in {
type slave;
- file "BAKDIR/$1";
+ file "BAKDIR/nsc_file_name($1)";
masters { $2; };
+ZZ_OPTIONS()dnl
};
divert(-1)')
-# Definition of reverse domain
-
-define(`REVERSE', `divert(0)zone "revaddr($1).in-addr.arpa" in {
- type master;
- file "ZONEDIR/revaddr($1)";
-};
-
-divert(-1)')
-
-# Definition of reverse sub-domain
-
-define(`PARTIAL', `SECONDARY(revaddr($1).in-addr.arpa,$3)')
-define(`PREVERSE', `REVERSE($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, $@)')
define(`CONFIG', `divert(0)$1
divert(-1)')
-# BIND options
+# Setting domain options
-define(`OPTIONS', `divert(0)options {
- directory "ROOT";
- interface-interval 0;
-$1};
+define(`ZZ_OPTIONS', `')
-zone "." in {
- type hint;
- file "root.cache";
-};
+define(`ZONE_OPTIONS', `define(`ZZ_OPTIONS', ifelse(`$1',`',`',`` $1''))')
-divert(-1)')
+# The preamble
divert(0)dnl
`#'
-`#' Name server configuration file
-`#' Generated by mkconf.m4 on curdate
+`#' BIND configuration file
+`#' Generated by NSCVER (mkconf.m4) on CURRENT_DATE
`#' Please don't edit manually
`#'
+options {
+ directory "ROOT";
+ interface-interval 0;
+BIND_OPTIONS
+};
+
+zone "." in {
+ type hint;
+ file "ROOTCACHE";
+};
+
divert(-1)