5 etcfile=/etc/named/zones-rgc
17 -f) usage=false; check=false; install=true ;;
18 -y) usage=false; check=true; install=true ;;
19 -n) usage=false; check=true; install=false ;;
20 -h) hostdelg=true; hostzone=false ;;
21 -z) hostdelg=true; hostzone=true ;;
23 *) echo >&2 "$0: usage: $0 [-y|-f] [-h|-z] [-q]"; exit 3 ;;
31 usage: named-conf-regen -f|-y|-n [-h|-z]
33 -f install without checking } but you must then
34 -y check and install } ndc reload
37 -h check output from host -C
38 -z check output from host -C and host -val
55 files="$files $currentfile"
72 echo >&2 "$zone $style: $*"
73 warnings=$[$warnings+1]
77 if [ "x`echo \" $2\" | wc -l`" != "x`echo \" $3\" | wc -l`" ]
85 hostout="`host $1 \"$zone\" 2>&1 >/dev/null $2 | egrep -v \
86 '^ \!\!\! .* SOA primary .* is not advertised via NS$'`"
88 if [ "x$hostout" = x ]; then return; fi
91 warning "warnings from host:"
100 echo -n "$zone $style " >&2
108 beginfile primary.zones
111 zone="`echo $f | sed -e 's/_db$//'`"
123 beginfile secondary.zones
125 while read style zone servers
139 set -e; soa="`host -t soa $zone.`"; set +e
140 soaname="`echo \" $soa\" | expand | sed -e '
141 s/^ [^ ][^ ]* *SOA *//; s/ .*$//; q
143 equlines SOA "$soaname" ''
155 echo >&2 "$etcfile: $style"
161 set -e; ns="`host -t ns $zone.`"; set +e
162 nsnames="`echo \" $ns\" | expand | tr A-Z a-z | sed -n '
164 s/^[^ ][^ ]* *ns *\([0-9a-z][-.0-9a-z]*\)$/\1/p
166 equlines NS "$nsnames" "$ns"
167 nsnames="`echo $nsnames | tr '
170 if [ "x$myname" != x ]
175 if [ "x$myname" = "x$ns" ]
183 secondary) names="$soaname" ;;
184 unoff|backup) names="$nsnames" ;;
189 if [ $meadvert = false ]
191 warning "$myname unlisted NS $nsnames"
197 warning "$myname advertised NS $nsnames"
205 set -e; a="`host -t a \"$ns\".`"; set +e
206 taddrs="`echo \" $a\" | expand | sed -n '
208 s/^[^ ][^ ]* *A *\([0-9][.0-9]*\)/\1/p
210 equlines "A $ns" "$a" "$taddrs"
211 addrs="$addrs $taddrs"
221 for server in $servers
229 if [ "x$addr" = "x$server" ]
236 warning "server $server? but $rectype $names" $addrs
251 checkhostout -val localhost
256 if [ $warnings != 0 ]
258 echo >&2 "$warnings warnings "