dig/host/whatever assumes that it is using BIND8 code. mixing BIND4 in
libc with BIND8 code will result in very strange behavior, or program panics.
it is not necessary for dig/host/whatever to obey /etc/nsswitch.conf, actually
dig(1) is explicit about it.
now dist/bind is almost clean BIND822p5, with the following exception:
- /etc/irs.conf will never be visited when running BIND8 toolchain,
to make it less complex. the search order for BIND8 toolchain is
defined in dist/bind/lib/irs/gen.c:default_map_rules().
and usr.sbin/bind compiles them in BSD make framework, with no tricks at all.
"make build" from the top).
XXX
if you do "make obj", you have to reference:
bind/named/obj/pathnames.h
from either of them by using relative path:
${.OBJDIR} = bind/named-xfer/obj or
${.CURDIR} = bind/named-xfer
-I${.OBJDIR}/../named was included but is not the correct one.
I used -I${.CURDIR}/../named/obj, but I'm not sure if it is the right way.
sizeof(_res) must be the same for libc, libresolv and libbind.
libc and libresolve uses bind4 while libbind seems to use bind8.
complete fix would be to share the same codebase among libc and libbind,
but I don't know if importing bind8 into libc/libresolv (or bind9 to
all the places) is the right answer. it involves a big change.
PR: 7966
continue to work as normal. this allows named to run in a chroot jail
with zero loss of functionality. with the bind8 -u <user> flag, we can
also make it run as non-root. "stay tuned."
* always create an "option" section because "named" will complain
otherwise
* don't check if directory exists while converting a "directory"
statement because we might do it on another machine
directives, and add appropriate directives to the zone {} blocks
* change comment delimiter from '//' to '#' (which is more intuitive
for unix config files)
* KNF formatting (single space indenting is hard to read)